From 6343b0db47e296dc995b7d2e7540d9c0ccb528d9 Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 17 Mar 2023 10:03:22 +0800 Subject: [PATCH] [Build] Support build with source code of Paddle2ONNX (#1559) * Add notes for tensors * Optimize some apis * move some warnings * Support build with Paddle2ONNX * Add protobuf support * Fix compile on mac * add clearn package script * Add paddle2onnx code * remove submodule * Add onnx ocde * remove softlink * add onnx code * fix error * Add cmake file * fix patchelf * update paddle2onnx * Delete .gitmodules --------- Co-authored-by: PaddleCI Co-authored-by: pangyoki Co-authored-by: jiangjiajun --- CMakeLists.txt | 16 +- FastDeploy.cmake.in | 7 +- cmake/build_paddle2onnx.cmake | 41 + cmake/build_tools.cmake | 57 + cmake/paddle_inference.cmake | 1 + cmake/patchelf.cmake | 26 - .../cpp/infer_paddle_paddle_inference.cc | 1 - paddle2onnx/CMakeLists.txt | 0 paddle2onnx/__init__.py | 65 + paddle2onnx/command.py | 273 + paddle2onnx/convert.py | 83 + paddle2onnx/convert_to_fp16.py | 38 + paddle2onnx/converter.cc | 287 + paddle2onnx/converter.h | 130 + paddle2onnx/cpp2py_export.cc | 128 + paddle2onnx/legacy/__init__.py | 128 + paddle2onnx/legacy/command.py | 287 + paddle2onnx/legacy/constant/__init__.py | 15 + paddle2onnx/legacy/constant/constant.py | 24 + paddle2onnx/legacy/constant/dtypes.py | 84 + .../legacy/constant/op_mapping_status.py | 19 + paddle2onnx/legacy/convert.py | 206 + paddle2onnx/legacy/graph/__init__.py | 17 + paddle2onnx/legacy/graph/dygraph_helper.py | 271 + paddle2onnx/legacy/graph/graph.py | 287 + paddle2onnx/legacy/graph/graph_helper.py | 83 + paddle2onnx/legacy/graph/onnx_graph.py | 333 + paddle2onnx/legacy/graph/paddle_graph.py | 303 + paddle2onnx/legacy/op_mapper/__init__.py | 39 + paddle2onnx/legacy/op_mapper/activation.py | 269 + .../op_mapper/custom_paddle_op/__init__.py | 13 + .../custom_paddle_op/anchor_generator.py | 97 + .../op_mapper/custom_paddle_op/box_clip.py | 56 + .../custom_paddle_op/collect_fpn_proposals.py | 55 + .../custom_paddle_op/deformable_conv.py | 296 + .../distribute_fpn_proposals.py | 100 + .../custom_paddle_op/generate_proposals.py | 223 + .../custom_paddle_op/grid_sampler.py | 151 + .../legacy/op_mapper/detection/__init__.py | 13 + .../legacy/op_mapper/detection/box_coder.py | 363 + .../op_mapper/detection/density_prior_box.py | 125 + .../op_mapper/detection/multiclass_nms.py | 343 + .../legacy/op_mapper/detection/prior_box.py | 176 + .../legacy/op_mapper/detection/yolo_box.py | 506 + paddle2onnx/legacy/op_mapper/logic.py | 280 + paddle2onnx/legacy/op_mapper/mapper_helper.py | 432 + paddle2onnx/legacy/op_mapper/math.py | 1273 + paddle2onnx/legacy/op_mapper/nn.py | 952 + paddle2onnx/legacy/op_mapper/op_mapper.py | 305 + paddle2onnx/legacy/op_mapper/search.py | 233 + .../legacy/op_mapper/sequence/__init__.py | 13 + .../legacy/op_mapper/sequence/im2sequence.py | 78 + paddle2onnx/legacy/op_mapper/tensor.py | 2155 ++ paddle2onnx/legacy/passes/__init__.py | 17 + .../legacy/passes/dumplicate_names_pass.py | 91 + .../legacy/passes/inplace_node_pass.py | 62 + paddle2onnx/legacy/passes/pass_manager.py | 39 + paddle2onnx/mapper/activation.cc | 453 + paddle2onnx/mapper/activation.h | 372 + paddle2onnx/mapper/data_helper.h | 30 + .../mapper/detection/multiclass_nms.cc | 360 + paddle2onnx/mapper/detection/multiclass_nms.h | 62 + paddle2onnx/mapper/detection/roi_align.cc | 43 + paddle2onnx/mapper/detection/roi_align.h | 47 + paddle2onnx/mapper/detection/yolo_box.cc | 254 + paddle2onnx/mapper/detection/yolo_box.h | 53 + paddle2onnx/mapper/elementwise.cc | 188 + paddle2onnx/mapper/elementwise.h | 75 + paddle2onnx/mapper/exporter.cc | 548 + paddle2onnx/mapper/exporter.h | 122 + paddle2onnx/mapper/loop.cc | 195 + paddle2onnx/mapper/mapper.h | 246 + paddle2onnx/mapper/nn/affine_channel.cc | 44 + paddle2onnx/mapper/nn/affine_channel.h | 38 + paddle2onnx/mapper/nn/batch_norm.cc | 45 + paddle2onnx/mapper/nn/batch_norm.h | 39 + paddle2onnx/mapper/nn/conv2d.cc | 81 + paddle2onnx/mapper/nn/conv2d.h | 48 + paddle2onnx/mapper/nn/conv2d_transpose.cc | 66 + paddle2onnx/mapper/nn/conv2d_transpose.h | 58 + paddle2onnx/mapper/nn/conv3d.cc | 82 + paddle2onnx/mapper/nn/conv3d.h | 48 + paddle2onnx/mapper/nn/data_norm.cc | 43 + paddle2onnx/mapper/nn/data_norm.h | 44 + paddle2onnx/mapper/nn/dropout.cc | 66 + paddle2onnx/mapper/nn/dropout.h | 37 + paddle2onnx/mapper/nn/group_norm.cc | 75 + paddle2onnx/mapper/nn/group_norm.h | 40 + paddle2onnx/mapper/nn/instance_norm.cc | 59 + paddle2onnx/mapper/nn/instance_norm.h | 38 + paddle2onnx/mapper/nn/interpolate.cc | 136 + paddle2onnx/mapper/nn/interpolate.h | 57 + paddle2onnx/mapper/nn/layer_norm.cc | 146 + paddle2onnx/mapper/nn/layer_norm.h | 39 + paddle2onnx/mapper/nn/norm.cc | 28 + paddle2onnx/mapper/nn/norm.h | 37 + paddle2onnx/mapper/nn/pad3d.cc | 114 + paddle2onnx/mapper/nn/pad3d.h | 45 + paddle2onnx/mapper/nn/pool2d.cc | 332 + paddle2onnx/mapper/nn/pool2d.h | 67 + paddle2onnx/mapper/nn/pool3d.cc | 262 + paddle2onnx/mapper/nn/pool3d.h | 66 + paddle2onnx/mapper/nn/rnn.cc | 156 + paddle2onnx/mapper/nn/rnn.h | 58 + paddle2onnx/mapper/nn/shape.cc | 29 + paddle2onnx/mapper/nn/shape.h | 32 + .../mapper/nn/softmax_with_cross_entropy.cc | 126 + .../mapper/nn/softmax_with_cross_entropy.h | 40 + paddle2onnx/mapper/onnx_helper.cc | 534 + paddle2onnx/mapper/onnx_helper.h | 561 + .../mapper/quantize/dequantize_linear.cc | 183 + .../mapper/quantize/dequantize_linear.h | 42 + .../mapper/quantize/quantize_linear.cc | 88 + paddle2onnx/mapper/quantize/quantize_linear.h | 45 + paddle2onnx/mapper/quantize_helper.cc | 1205 + paddle2onnx/mapper/quantize_helper.h | 133 + paddle2onnx/mapper/register_mapper.h | 115 + paddle2onnx/mapper/tensor/add_n.cc | 38 + paddle2onnx/mapper/tensor/add_n.h | 31 + paddle2onnx/mapper/tensor/argmax.cc | 73 + paddle2onnx/mapper/tensor/argmax.h | 42 + paddle2onnx/mapper/tensor/argmin.cc | 73 + paddle2onnx/mapper/tensor/argmin.h | 42 + paddle2onnx/mapper/tensor/argsort.cc | 77 + paddle2onnx/mapper/tensor/argsort.h | 37 + paddle2onnx/mapper/tensor/assign.cc | 48 + paddle2onnx/mapper/tensor/assign.h | 31 + paddle2onnx/mapper/tensor/assign_value.cc | 49 + paddle2onnx/mapper/tensor/assign_value.h | 49 + paddle2onnx/mapper/tensor/bmm.cc | 29 + paddle2onnx/mapper/tensor/bmm.h | 31 + paddle2onnx/mapper/tensor/cast.cc | 28 + paddle2onnx/mapper/tensor/cast.h | 36 + paddle2onnx/mapper/tensor/clip.cc | 89 + paddle2onnx/mapper/tensor/clip.h | 32 + paddle2onnx/mapper/tensor/concat.cc | 72 + paddle2onnx/mapper/tensor/concat.h | 37 + paddle2onnx/mapper/tensor/cumsum.cc | 41 + paddle2onnx/mapper/tensor/cumsum.h | 35 + paddle2onnx/mapper/tensor/dist.cc | 67 + paddle2onnx/mapper/tensor/dist.h | 34 + paddle2onnx/mapper/tensor/dot.cc | 41 + paddle2onnx/mapper/tensor/dot.h | 31 + paddle2onnx/mapper/tensor/equal.cc | 44 + paddle2onnx/mapper/tensor/equal.h | 37 + paddle2onnx/mapper/tensor/expand.cc | 40 + paddle2onnx/mapper/tensor/expand.h | 36 + paddle2onnx/mapper/tensor/expand_as.cc | 52 + paddle2onnx/mapper/tensor/expand_as.h | 37 + paddle2onnx/mapper/tensor/expand_v2.cc | 61 + paddle2onnx/mapper/tensor/expand_v2.h | 32 + paddle2onnx/mapper/tensor/eye.cc | 87 + paddle2onnx/mapper/tensor/eye.h | 37 + paddle2onnx/mapper/tensor/fill_constant.cc | 153 + paddle2onnx/mapper/tensor/fill_constant.h | 38 + .../tensor/fill_constant_batch_size_like.cc | 84 + .../tensor/fill_constant_batch_size_like.h | 48 + paddle2onnx/mapper/tensor/fill_like.cc | 48 + paddle2onnx/mapper/tensor/fill_like.h | 46 + paddle2onnx/mapper/tensor/flatten.cc | 75 + paddle2onnx/mapper/tensor/flatten.h | 37 + paddle2onnx/mapper/tensor/flatten2.cc | 40 + paddle2onnx/mapper/tensor/flatten2.h | 37 + paddle2onnx/mapper/tensor/flip.cc | 89 + paddle2onnx/mapper/tensor/flip.h | 40 + paddle2onnx/mapper/tensor/gather.cc | 85 + paddle2onnx/mapper/tensor/gather.h | 41 + paddle2onnx/mapper/tensor/gather_nd.cc | 37 + paddle2onnx/mapper/tensor/gather_nd.h | 32 + paddle2onnx/mapper/tensor/gaussian_random.cc | 64 + paddle2onnx/mapper/tensor/gaussian_random.h | 40 + paddle2onnx/mapper/tensor/greater_equal.cc | 51 + paddle2onnx/mapper/tensor/greater_equal.h | 29 + paddle2onnx/mapper/tensor/greater_than.cc | 39 + paddle2onnx/mapper/tensor/greater_than.h | 28 + paddle2onnx/mapper/tensor/grid_sampler.cc | 41 + paddle2onnx/mapper/tensor/grid_sampler.h | 43 + paddle2onnx/mapper/tensor/index_sample.cc | 44 + paddle2onnx/mapper/tensor/index_sample.h | 32 + paddle2onnx/mapper/tensor/index_select.cc | 29 + paddle2onnx/mapper/tensor/index_select.h | 36 + paddle2onnx/mapper/tensor/less_equal.cc | 51 + paddle2onnx/mapper/tensor/less_equal.h | 29 + paddle2onnx/mapper/tensor/less_than.cc | 39 + paddle2onnx/mapper/tensor/less_than.h | 28 + paddle2onnx/mapper/tensor/linspace.cc | 75 + paddle2onnx/mapper/tensor/linspace.h | 37 + paddle2onnx/mapper/tensor/logical_not.cc | 27 + paddle2onnx/mapper/tensor/logical_not.h | 31 + paddle2onnx/mapper/tensor/logical_op.cc | 36 + paddle2onnx/mapper/tensor/logical_op.h | 31 + paddle2onnx/mapper/tensor/lookup_table.cc | 132 + paddle2onnx/mapper/tensor/lookup_table.h | 39 + paddle2onnx/mapper/tensor/matmul.cc | 61 + paddle2onnx/mapper/tensor/matmul.h | 42 + paddle2onnx/mapper/tensor/matmul_v2.cc | 51 + paddle2onnx/mapper/tensor/matmul_v2.h | 40 + paddle2onnx/mapper/tensor/mean.cc | 29 + paddle2onnx/mapper/tensor/mean.h | 31 + paddle2onnx/mapper/tensor/meshgrid.cc | 46 + paddle2onnx/mapper/tensor/meshgrid.h | 35 + paddle2onnx/mapper/tensor/mul.cc | 50 + paddle2onnx/mapper/tensor/mul.h | 37 + paddle2onnx/mapper/tensor/mv.cc | 33 + paddle2onnx/mapper/tensor/mv.h | 32 + paddle2onnx/mapper/tensor/nonzero.cc | 28 + paddle2onnx/mapper/tensor/nonzero.h | 33 + paddle2onnx/mapper/tensor/not_equal.cc | 45 + paddle2onnx/mapper/tensor/not_equal.h | 29 + paddle2onnx/mapper/tensor/one_hot_v2.cc | 58 + paddle2onnx/mapper/tensor/one_hot_v2.h | 41 + paddle2onnx/mapper/tensor/p_norm.cc | 50 + paddle2onnx/mapper/tensor/p_norm.h | 40 + paddle2onnx/mapper/tensor/partial_ops.cc | 88 + paddle2onnx/mapper/tensor/partial_ops.h | 42 + paddle2onnx/mapper/tensor/pixel_shuffle.cc | 30 + paddle2onnx/mapper/tensor/pixel_shuffle.h | 41 + paddle2onnx/mapper/tensor/pow.cc | 38 + paddle2onnx/mapper/tensor/pow.h | 36 + paddle2onnx/mapper/tensor/range.cc | 76 + paddle2onnx/mapper/tensor/range.h | 36 + paddle2onnx/mapper/tensor/reduce.cc | 144 + paddle2onnx/mapper/tensor/reduce.h | 50 + paddle2onnx/mapper/tensor/reshape2.cc | 54 + paddle2onnx/mapper/tensor/reshape2.h | 32 + paddle2onnx/mapper/tensor/scale.cc | 76 + paddle2onnx/mapper/tensor/scale.h | 39 + paddle2onnx/mapper/tensor/scatter.cc | 77 + paddle2onnx/mapper/tensor/scatter.h | 37 + paddle2onnx/mapper/tensor/scatter_nd_add.cc | 48 + paddle2onnx/mapper/tensor/scatter_nd_add.h | 34 + paddle2onnx/mapper/tensor/set_value.cc | 143 + paddle2onnx/mapper/tensor/set_value.h | 65 + paddle2onnx/mapper/tensor/slice.cc | 175 + paddle2onnx/mapper/tensor/slice.h | 52 + paddle2onnx/mapper/tensor/split.cc | 145 + paddle2onnx/mapper/tensor/split.h | 41 + paddle2onnx/mapper/tensor/squeeze2.cc | 84 + paddle2onnx/mapper/tensor/squeeze2.h | 35 + paddle2onnx/mapper/tensor/stack.cc | 39 + paddle2onnx/mapper/tensor/stack.h | 33 + paddle2onnx/mapper/tensor/take_along_axis.cc | 38 + paddle2onnx/mapper/tensor/take_along_axis.h | 38 + paddle2onnx/mapper/tensor/temporal_shift.cc | 79 + paddle2onnx/mapper/tensor/temporal_shift.h | 41 + paddle2onnx/mapper/tensor/tile.cc | 55 + paddle2onnx/mapper/tensor/tile.h | 28 + paddle2onnx/mapper/tensor/top_k.cc | 44 + paddle2onnx/mapper/tensor/top_k.h | 32 + paddle2onnx/mapper/tensor/top_k_v2.cc | 47 + paddle2onnx/mapper/tensor/top_k_v2.h | 41 + paddle2onnx/mapper/tensor/transpose2.cc | 32 + paddle2onnx/mapper/tensor/transpose2.h | 36 + paddle2onnx/mapper/tensor/unique.cc | 49 + paddle2onnx/mapper/tensor/unique.h | 39 + paddle2onnx/mapper/tensor/unsqueeze2.cc | 94 + paddle2onnx/mapper/tensor/unsqueeze2.h | 38 + paddle2onnx/mapper/tensor/unstack.cc | 36 + paddle2onnx/mapper/tensor/unstack.h | 33 + paddle2onnx/mapper/tensor/where.cc | 31 + paddle2onnx/mapper/tensor/where.h | 36 + paddle2onnx/mappers_registry.h.in | 214 + paddle2onnx/onnx_reader.cc | 124 + paddle2onnx/optimize.py | 46 + paddle2onnx/optimizer/convert_fp32_to_fp16.cc | 843 + paddle2onnx/optimizer/convert_fp32_to_fp16.h | 235 + .../optimizer/eliminate_non_transpose.h | 60 + paddle2onnx/optimizer/fuse_constant_cast.h | 67 + paddle2onnx/optimizer/fuse_constant_reshape.h | 138 + .../optimizer/fuse_constant_unsqueeze.h | 107 + paddle2onnx/optimizer/fuse_paddle_conv_bias.h | 96 + .../fuse_squeeze_act_unsqueeze.h.bak | 102 + .../optimizer/fuse_unsqueeze_conv2d_squeeze.h | 170 + .../optimizer/paddle2onnx_optimizer.cc | 240 + paddle2onnx/optimizer/paddle2onnx_optimizer.h | 58 + .../optimizer/replace_add_to_identity.h | 122 + .../optimizer/replace_mul_to_identity.h | 122 + paddle2onnx/paddle_reader.cc | 78 + paddle2onnx/parser/parser.cc | 862 + paddle2onnx/parser/parser.h | 258 + paddle2onnx/proto/CMakeLists.txt | 11 + paddle2onnx/proto/p2o_paddle.proto | 249 + paddle2onnx/utils.py | 131 + paddle2onnx/utils/utils.h | 80 + scripts/clean_sdk.sh | 7 + .../onnx/.azure-pipelines/Linux-CI.yml | 140 + .../onnx/.azure-pipelines/MacOS-CI.yml | 105 + .../onnx/.azure-pipelines/Windows-CI.yml | 77 + third_party/onnx/.clang-format | 101 + third_party/onnx/.gitattributes | 1 + third_party/onnx/.gitignore | 104 + third_party/onnx/.gitmodules | 7 + third_party/onnx/.lgtm.yml | 12 + third_party/onnx/CMakeLists.txt | 714 + third_party/onnx/CODEOWNERS | 10 + third_party/onnx/CODE_OF_CONDUCT.md | 1 + third_party/onnx/CONTRIBUTING.md | 48 + third_party/onnx/LICENSE | 202 + third_party/onnx/MANIFEST.in | 10 + third_party/onnx/README.md | 287 + third_party/onnx/RELEASE-MANAGEMENT.md | 71 + third_party/onnx/SECURITY.md | 15 + third_party/onnx/VERSION_NUMBER | 1 + third_party/onnx/cmake/ONNXConfig.cmake.in | 23 + .../onnx/cmake/ONNXConfigVersion.cmake.in | 11 + third_party/onnx/cmake/Utils.cmake | 41 + .../onnx/cmake/external/googletest.cmake | 44 + third_party/onnx/cmake/summary.cmake | 41 + third_party/onnx/cmake/unittest.cmake | 98 + third_party/onnx/community/logo_request.md | 12 + third_party/onnx/community/readme.md | 177 + third_party/onnx/community/repo_guidelines.md | 35 + .../onnx/community/sc-election-guidelines.md | 67 + third_party/onnx/community/sigs.md | 20 + third_party/onnx/community/working-groups.md | 37 + third_party/onnx/docs/AddNewOp.md | 98 + third_party/onnx/docs/Broadcasting.md | 72 + third_party/onnx/docs/CIPipelines.md | 32 + third_party/onnx/docs/CONTRIBUTING.md | 118 + third_party/onnx/docs/Changelog-ml.md | 1149 + third_party/onnx/docs/Changelog.md | 21442 +++++++++++++ .../onnx/docs/DefineDifferentiability.md | 108 + third_party/onnx/docs/DimensionDenotation.md | 51 + third_party/onnx/docs/ExternalData.md | 89 + third_party/onnx/docs/Hub.md | 235 + third_party/onnx/docs/IR.md | 474 + .../onnx/docs/ImplementingAnOnnxBackend.md | 123 + .../onnx/docs/ManagingExperimentalOps.md | 34 + third_party/onnx/docs/MetadataProps.md | 35 + third_party/onnx/docs/ONNXIFI.md | 66 + third_party/onnx/docs/ONNXTypes.md | 96 + third_party/onnx/docs/ONNX_logo_main.png | Bin 0 -> 51834 bytes third_party/onnx/docs/OnnxBackendTest.md | 20 + third_party/onnx/docs/OnnxReleases.md | 123 + third_party/onnx/docs/OpConventions.md | 12 + third_party/onnx/docs/Operators-ml.md | 985 + third_party/onnx/docs/Operators.md | 26199 ++++++++++++++++ third_party/onnx/docs/Overview.md | 22 + third_party/onnx/docs/PythonAPIOverview.md | 412 + third_party/onnx/docs/Relicensing.md | 11 + third_party/onnx/docs/ShapeInference.md | 137 + third_party/onnx/docs/Syntax.md | 77 + third_party/onnx/docs/TestCoverage-ml.md | 87 + third_party/onnx/docs/TestCoverage.md | 16718 ++++++++++ third_party/onnx/docs/TypeAnnotations.md | 65 + third_party/onnx/docs/TypeDenotation.md | 56 + third_party/onnx/docs/VersionConverter.md | 51 + third_party/onnx/docs/Versioning.md | 185 + .../onnx/docs/images/onnx_hub_arch.svg | 1 + .../proposals/ArchiveFileFormatProposal.md | 45 + .../onnx/docs/proposals/FunctionsProposal.md | 21 + .../onnx/docs/proposals/NLPinONNXproposal.md | 69 + .../onnx/docs/proposals/ONNXIFIproposal.md | 116 + .../proposals/SymbolicShapeInfProposal.md | 163 + third_party/onnx/onnx/__init__.py | 217 + third_party/onnx/onnx/backend/__init__.py | 1 + third_party/onnx/onnx/backend/base.py | 115 + .../onnx/onnx/backend/sample/__init__.py | 1 + .../onnx/onnx/backend/sample/ops/__init__.py | 25 + .../onnx/onnx/backend/sample/ops/abs.py | 7 + .../onnx/onnx/backend/test/__init__.py | 4 + .../onnx/onnx/backend/test/case/__init__.py | 12 + .../onnx/onnx/backend/test/case/base.py | 43 + .../onnx/backend/test/case/model/__init__.py | 74 + .../onnx/backend/test/case/model/expand.py | 62 + .../onnx/backend/test/case/model/gradient.py | 101 + .../onnx/backend/test/case/model/sequence.py | 355 + .../onnx/backend/test/case/model/shrink.py | 31 + .../onnx/onnx/backend/test/case/model/sign.py | 32 + .../backend/test/case/model/single-relu.py | 30 + .../test/case/model/stringnormalizer.py | 132 + .../onnx/backend/test/case/node/__init__.py | 252 + .../onnx/onnx/backend/test/case/node/abs.py | 25 + .../onnx/onnx/backend/test/case/node/acos.py | 28 + .../onnx/onnx/backend/test/case/node/acosh.py | 28 + .../onnx/backend/test/case/node/adagrad.py | 99 + .../onnx/onnx/backend/test/case/node/adam.py | 121 + .../onnx/onnx/backend/test/case/node/add.py | 49 + .../onnx/onnx/backend/test/case/node/and.py | 82 + .../onnx/backend/test/case/node/argmax.py | 188 + .../onnx/backend/test/case/node/argmin.py | 188 + .../onnx/onnx/backend/test/case/node/asin.py | 28 + .../onnx/onnx/backend/test/case/node/asinh.py | 28 + .../onnx/onnx/backend/test/case/node/atan.py | 28 + .../onnx/onnx/backend/test/case/node/atanh.py | 28 + .../backend/test/case/node/averagepool.py | 360 + .../onnx/backend/test/case/node/batchnorm.py | 119 + .../onnx/backend/test/case/node/bernoulli.py | 56 + .../onnx/backend/test/case/node/bitshift.py | 130 + .../onnx/onnx/backend/test/case/node/cast.py | 95 + .../onnx/backend/test/case/node/castlike.py | 95 + .../onnx/onnx/backend/test/case/node/ceil.py | 28 + .../onnx/onnx/backend/test/case/node/celu.py | 38 + .../onnx/onnx/backend/test/case/node/clip.py | 127 + .../onnx/backend/test/case/node/compress.py | 81 + .../onnx/backend/test/case/node/concat.py | 48 + .../onnx/backend/test/case/node/constant.py | 28 + .../backend/test/case/node/constantofshape.py | 56 + .../onnx/onnx/backend/test/case/node/conv.py | 142 + .../backend/test/case/node/convinteger.py | 44 + .../backend/test/case/node/convtranspose.py | 301 + .../onnx/onnx/backend/test/case/node/cos.py | 28 + .../onnx/onnx/backend/test/case/node/cosh.py | 28 + .../onnx/backend/test/case/node/cumsum.py | 105 + .../backend/test/case/node/depthtospace.py | 90 + .../test/case/node/dequantizelinear.py | 49 + .../onnx/onnx/backend/test/case/node/det.py | 38 + .../onnx/onnx/backend/test/case/node/div.py | 50 + .../onnx/backend/test/case/node/dropout.py | 214 + .../test/case/node/dynamicquantizelinear.py | 54 + .../onnx/backend/test/case/node/einsum.py | 94 + .../onnx/onnx/backend/test/case/node/elu.py | 43 + .../onnx/onnx/backend/test/case/node/equal.py | 38 + .../onnx/onnx/backend/test/case/node/erf.py | 25 + .../onnx/onnx/backend/test/case/node/exp.py | 28 + .../onnx/backend/test/case/node/expand.py | 56 + .../onnx/backend/test/case/node/eyelike.py | 53 + .../onnx/backend/test/case/node/flatten.py | 61 + .../onnx/onnx/backend/test/case/node/floor.py | 28 + .../onnx/backend/test/case/node/gather.py | 73 + .../backend/test/case/node/gatherelements.py | 87 + .../onnx/backend/test/case/node/gathernd.py | 100 + .../onnx/onnx/backend/test/case/node/gemm.py | 183 + .../test/case/node/globalaveragepool.py | 37 + .../backend/test/case/node/globalmaxpool.py | 38 + .../onnx/backend/test/case/node/greater.py | 38 + .../backend/test/case/node/greater_equal.py | 38 + .../onnx/backend/test/case/node/gridsample.py | 374 + .../onnx/onnx/backend/test/case/node/gru.py | 207 + .../onnx/backend/test/case/node/hardmax.py | 95 + .../backend/test/case/node/hardsigmoid.py | 44 + .../onnx/backend/test/case/node/hardswish.py | 29 + .../onnx/backend/test/case/node/identity.py | 65 + .../onnx/onnx/backend/test/case/node/if.py | 207 + .../backend/test/case/node/instancenorm.py | 56 + .../onnx/onnx/backend/test/case/node/isinf.py | 48 + .../onnx/onnx/backend/test/case/node/isnan.py | 22 + .../test/case/node/layernormalization.py | 173 + .../onnx/backend/test/case/node/leakyrelu.py | 43 + .../onnx/onnx/backend/test/case/node/less.py | 38 + .../onnx/backend/test/case/node/less_equal.py | 38 + .../onnx/onnx/backend/test/case/node/log.py | 28 + .../onnx/backend/test/case/node/logsoftmax.py | 98 + .../onnx/onnx/backend/test/case/node/loop.py | 426 + .../onnx/onnx/backend/test/case/node/lrn.py | 59 + .../onnx/onnx/backend/test/case/node/lstm.py | 214 + .../onnx/backend/test/case/node/matmul.py | 39 + .../backend/test/case/node/matmulinteger.py | 36 + .../onnx/onnx/backend/test/case/node/max.py | 56 + .../onnx/backend/test/case/node/maxpool.py | 417 + .../onnx/backend/test/case/node/maxunpool.py | 50 + .../onnx/onnx/backend/test/case/node/mean.py | 41 + .../case/node/meanvariancenormalization.py | 39 + .../onnx/onnx/backend/test/case/node/min.py | 56 + .../onnx/onnx/backend/test/case/node/mod.py | 204 + .../onnx/backend/test/case/node/momentum.py | 145 + .../onnx/onnx/backend/test/case/node/mul.py | 50 + .../onnx/onnx/backend/test/case/node/neg.py | 28 + .../case/node/negativeloglikelihoodloss.py | 477 + .../test/case/node/nonmaxsuppression.py | 224 + .../onnx/backend/test/case/node/nonzero.py | 23 + .../onnx/onnx/backend/test/case/node/not.py | 33 + .../onnx/backend/test/case/node/onehot.py | 106 + .../test/case/node/optionalgetelement.py | 49 + .../test/case/node/optionalhaselement.py | 48 + .../onnx/onnx/backend/test/case/node/or.py | 82 + .../onnx/onnx/backend/test/case/node/pad.py | 80 + .../backend/test/case/node/pool_op_common.py | 75 + .../onnx/onnx/backend/test/case/node/pow.py | 117 + .../onnx/onnx/backend/test/case/node/prelu.py | 40 + .../backend/test/case/node/qlinearconv.py | 45 + .../backend/test/case/node/qlinearmatmul.py | 71 + .../backend/test/case/node/quantizelinear.py | 47 + .../onnx/backend/test/case/node/rangeop.py | 42 + .../onnx/backend/test/case/node/reciprocal.py | 28 + .../backend/test/case/node/reduce_log_sum.py | 62 + .../test/case/node/reduce_log_sum_exp.py | 149 + .../onnx/backend/test/case/node/reducel1.py | 137 + .../onnx/backend/test/case/node/reducel2.py | 150 + .../onnx/backend/test/case/node/reducemax.py | 118 + .../onnx/backend/test/case/node/reducemean.py | 119 + .../onnx/backend/test/case/node/reducemin.py | 117 + .../onnx/backend/test/case/node/reduceprod.py | 115 + .../onnx/backend/test/case/node/reducesum.py | 146 + .../backend/test/case/node/reducesumsquare.py | 119 + .../onnx/onnx/backend/test/case/node/relu.py | 23 + .../onnx/backend/test/case/node/reshape.py | 71 + .../onnx/backend/test/case/node/resize.py | 939 + .../backend/test/case/node/reversesequence.py | 56 + .../onnx/onnx/backend/test/case/node/rnn.py | 184 + .../onnx/backend/test/case/node/roialign.py | 244 + .../onnx/onnx/backend/test/case/node/round.py | 27 + .../onnx/onnx/backend/test/case/node/scan.py | 103 + .../onnx/backend/test/case/node/scatter.py | 86 + .../backend/test/case/node/scatterelements.py | 140 + .../onnx/backend/test/case/node/scatternd.py | 106 + .../onnx/onnx/backend/test/case/node/selu.py | 46 + .../backend/test/case/node/sequence_map.py | 242 + .../backend/test/case/node/sequenceinsert.py | 56 + .../onnx/onnx/backend/test/case/node/shape.py | 58 + .../onnx/backend/test/case/node/shrink.py | 37 + .../onnx/backend/test/case/node/sigmoid.py | 28 + .../onnx/onnx/backend/test/case/node/sign.py | 23 + .../onnx/onnx/backend/test/case/node/sin.py | 28 + .../onnx/onnx/backend/test/case/node/sinh.py | 28 + .../onnx/onnx/backend/test/case/node/size.py | 33 + .../onnx/onnx/backend/test/case/node/slice.py | 150 + .../onnx/backend/test/case/node/softmax.py | 96 + .../test/case/node/softmaxcrossentropy.py | 902 + .../onnx/backend/test/case/node/softplus.py | 28 + .../onnx/backend/test/case/node/softsign.py | 28 + .../backend/test/case/node/spacetodepth.py | 57 + .../onnx/onnx/backend/test/case/node/split.py | 104 + .../onnx/onnx/backend/test/case/node/sqrt.py | 28 + .../onnx/backend/test/case/node/squeeze.py | 37 + .../test/case/node/stringnormalizer.py | 108 + .../onnx/onnx/backend/test/case/node/sub.py | 50 + .../onnx/onnx/backend/test/case/node/sum.py | 41 + .../onnx/onnx/backend/test/case/node/tan.py | 28 + .../onnx/onnx/backend/test/case/node/tanh.py | 28 + .../backend/test/case/node/tfidfvectorizer.py | 206 + .../backend/test/case/node/thresholdedrelu.py | 49 + .../onnx/onnx/backend/test/case/node/tile.py | 56 + .../onnx/onnx/backend/test/case/node/topk.py | 121 + .../onnx/backend/test/case/node/transpose.py | 43 + .../onnx/onnx/backend/test/case/node/trilu.py | 450 + .../onnx/backend/test/case/node/unique.py | 141 + .../onnx/backend/test/case/node/unsqueeze.py | 89 + .../onnx/backend/test/case/node/upsample.py | 37 + .../onnx/onnx/backend/test/case/node/where.py | 40 + .../onnx/onnx/backend/test/case/node/xor.py | 82 + .../onnx/onnx/backend/test/case/test_case.py | 21 + .../onnx/onnx/backend/test/case/utils.py | 29 + .../onnx/onnx/backend/test/cmd_tools.py | 107 + .../backend/test/cpp/driver/test_driver.cc | 273 + .../backend/test/cpp/driver/test_driver.h | 142 + .../onnx/onnx/backend/test/cpp/driver_test.cc | 415 + .../onnx/onnx/backend/test/cpp/gtest_utils.cc | 13 + .../onnx/onnx/backend/test/cpp/gtest_utils.h | 11 + .../onnx/onnx/backend/test/cpp/test_main.cc | 19 + .../test/data/node/test_abs/model.onnx | 13 + .../node/test_abs/test_data_set_0/input_0.pb | 1 + .../node/test_abs/test_data_set_0/output_0.pb | 1 + .../test/data/node/test_acos/model.onnx | 13 + .../node/test_acos/test_data_set_0/input_0.pb | 1 + .../test_acos/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_acos_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | 3 + .../test/data/node/test_acosh/model.onnx | 14 + .../test_acosh/test_data_set_0/input_0.pb | Bin 0 -> 254 bytes .../test_acosh/test_data_set_0/output_0.pb | 1 + .../data/node/test_acosh_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_adagrad/model.onnx | Bin 0 -> 320 bytes .../test_adagrad/test_data_set_0/input_0.pb | 1 + .../test_adagrad/test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_adagrad/test_data_set_0/input_2.pb | Bin 0 -> 13 bytes .../test_adagrad/test_data_set_0/input_3.pb | Bin 0 -> 13 bytes .../test_adagrad/test_data_set_0/input_4.pb | Bin 0 -> 13 bytes .../test_adagrad/test_data_set_0/output_0.pb | 1 + .../test_adagrad/test_data_set_0/output_1.pb | 1 + .../node/test_adagrad_multiple/model.onnx | Bin 0 -> 465 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 18 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_5.pb | Bin 0 -> 18 bytes .../test_data_set_0/input_6.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_7.pb | Bin 0 -> 18 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../test_data_set_0/output_3.pb | 1 + .../test/data/node/test_adam/model.onnx | Bin 0 -> 371 bytes .../node/test_adam/test_data_set_0/input_0.pb | 1 + .../node/test_adam/test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../node/test_adam/test_data_set_0/input_2.pb | 1 + .../node/test_adam/test_data_set_0/input_3.pb | Bin 0 -> 17 bytes .../node/test_adam/test_data_set_0/input_4.pb | 1 + .../node/test_adam/test_data_set_0/input_5.pb | 1 + .../test_adam/test_data_set_0/output_0.pb | 1 + .../test_adam/test_data_set_0/output_1.pb | 1 + .../test_adam/test_data_set_0/output_2.pb | 1 + .../data/node/test_adam_multiple/model.onnx | Bin 0 -> 553 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 18 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_5.pb | Bin 0 -> 18 bytes .../test_data_set_0/input_6.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_7.pb | Bin 0 -> 18 bytes .../test_data_set_0/input_8.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_9.pb | Bin 0 -> 18 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../test_data_set_0/output_3.pb | Bin 0 -> 22 bytes .../test_data_set_0/output_4.pb | 1 + .../test_data_set_0/output_5.pb | 1 + .../test/data/node/test_add/model.onnx | 19 + .../node/test_add/test_data_set_0/input_0.pb | 1 + .../node/test_add/test_data_set_0/input_1.pb | 1 + .../node/test_add/test_data_set_0/output_0.pb | Bin 0 -> 256 bytes .../test/data/node/test_add_bcast/model.onnx | 18 + .../test_add_bcast/test_data_set_0/input_0.pb | 1 + .../test_add_bcast/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 256 bytes .../test/data/node/test_add_uint8/model.onnx | 19 + .../test_add_uint8/test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_add_uint8/test_data_set_0/input_1.pb | 4 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_and2d/model.onnx | 17 + .../test_and2d/test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_and2d/test_data_set_0/input_1.pb | Bin 0 -> 23 bytes .../test_and2d/test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../test/data/node/test_and3d/model.onnx | 20 + .../test_and3d/test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_and3d/test_data_set_0/input_1.pb | Bin 0 -> 73 bytes .../test_and3d/test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../test/data/node/test_and4d/model.onnx | 23 + .../test_and4d/test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../test_and4d/test_data_set_0/input_1.pb | Bin 0 -> 376 bytes .../test_and4d/test_data_set_0/output_0.pb | Bin 0 -> 378 bytes .../data/node/test_and_bcast3v1d/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../data/node/test_and_bcast3v2d/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 31 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../data/node/test_and_bcast4v2d/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 41 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 378 bytes .../data/node/test_and_bcast4v3d/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 133 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 378 bytes .../data/node/test_and_bcast4v4d/model.onnx | 22 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 105 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 378 bytes .../model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 114 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 114 bytes .../test_argmax_keepdims_example/model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../test_argmax_keepdims_random/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 66 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 66 bytes .../model.onnx | Bin 0 -> 156 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 30 bytes .../model.onnx | Bin 0 -> 200 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 30 bytes .../test_argmax_no_keepdims_random/model.onnx | Bin 0 -> 163 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 80 bytes .../model.onnx | Bin 0 -> 207 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 80 bytes .../model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 114 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 114 bytes .../test_argmin_keepdims_example/model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../test_argmin_keepdims_random/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 66 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 66 bytes .../model.onnx | Bin 0 -> 156 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 30 bytes .../model.onnx | Bin 0 -> 200 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 30 bytes .../test_argmin_no_keepdims_random/model.onnx | Bin 0 -> 163 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 80 bytes .../model.onnx | Bin 0 -> 207 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 80 bytes .../test/data/node/test_asin/model.onnx | 13 + .../node/test_asin/test_data_set_0/input_0.pb | 1 + .../test_asin/test_data_set_0/output_0.pb | 1 + .../data/node/test_asin_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_asinh/model.onnx | 14 + .../test_asinh/test_data_set_0/input_0.pb | 1 + .../test_asinh/test_data_set_0/output_0.pb | 1 + .../data/node/test_asinh_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_atan/model.onnx | 13 + .../node/test_atan/test_data_set_0/input_0.pb | 1 + .../test_atan/test_data_set_0/output_0.pb | 1 + .../data/node/test_atan_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_atanh/model.onnx | 14 + .../test_atanh/test_data_set_0/input_0.pb | 1 + .../test_atanh/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_atanh_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_averagepool_1d_default/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_averagepool_2d_ceil/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../test_averagepool_2d_default/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 12304 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 11548 bytes .../node/test_averagepool_2d_pads/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 9424 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 10816 bytes .../model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 9424 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 10816 bytes .../model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 115 bytes .../model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 115 bytes .../model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 51 bytes .../model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../test_averagepool_2d_same_lower/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 12304 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 12304 bytes .../test_averagepool_2d_same_upper/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 12304 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 12304 bytes .../test_averagepool_2d_strides/model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 12304 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1216 bytes .../test_averagepool_3d_default/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 393235 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 357511 bytes .../test_basic_conv_with_padding/model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 115 bytes .../model.onnx | Bin 0 -> 202 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 51 bytes .../node/test_basic_convinteger/model.onnx | Bin 0 -> 196 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../node/test_batchnorm_epsilon/model.onnx | 37 + .../test_data_set_0/input_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | 1 + .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../model.onnx | 48 + .../test_data_set_0/input_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | 1 + .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 2 + .../node/test_batchnorm_example/model.onnx | 35 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | 1 + .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../model.onnx | 46 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | 1 + .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 2 + .../test/data/node/test_bernoulli/model.onnx | 13 + .../test_bernoulli/test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 89 bytes .../node/test_bernoulli_double/model.onnx | 14 + .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 89 bytes .../test_bernoulli_double_expanded/model.onnx | Bin 0 -> 433 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 89 bytes .../node/test_bernoulli_expanded/model.onnx | Bin 0 -> 397 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 89 bytes .../data/node/test_bernoulli_seed/model.onnx | Bin 0 -> 112 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 49 bytes .../test_bernoulli_seed_expanded/model.onnx | Bin 0 -> 439 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 49 bytes .../node/test_bitshift_left_uint16/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../node/test_bitshift_left_uint32/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../node/test_bitshift_left_uint64/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../node/test_bitshift_left_uint8/model.onnx | 17 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_bitshift_right_uint16/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../test_bitshift_right_uint32/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_bitshift_right_uint64/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../node/test_bitshift_right_uint8/model.onnx | 17 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 12 bytes .../test_cast_BFLOAT16_to_FLOAT/model.onnx | 12 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../node/test_cast_DOUBLE_to_FLOAT/model.onnx | 12 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_cast_DOUBLE_to_FLOAT16/model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 111 bytes .../test_data_set_0/output_0.pb | 2 + .../test_cast_FLOAT16_to_DOUBLE/model.onnx | 13 + .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 112 bytes .../test_cast_FLOAT16_to_FLOAT/model.onnx | 13 + .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../test_cast_FLOAT_to_BFLOAT16/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 63 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_cast_FLOAT_to_DOUBLE/model.onnx | 12 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 112 bytes .../test_cast_FLOAT_to_FLOAT16/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 40 bytes .../node/test_cast_FLOAT_to_STRING/model.onnx | 12 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 6 + .../node/test_cast_STRING_to_FLOAT/model.onnx | 12 + .../test_data_set_0/input_0.pb | 7 + .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 16 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../model.onnx | Bin 0 -> 172 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 16 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../test_castlike_DOUBLE_to_FLOAT/model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 111 bytes .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | Bin 0 -> 172 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 111 bytes .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | Bin 0 -> 170 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 17 + .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 112 bytes .../model.onnx | Bin 0 -> 172 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 112 bytes .../test_castlike_FLOAT16_to_FLOAT/model.onnx | 17 + .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/input_1.pb | Bin 0 -> 16 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../model.onnx | Bin 0 -> 171 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/input_1.pb | Bin 0 -> 16 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 63 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 172 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 63 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_castlike_FLOAT_to_DOUBLE/model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 112 bytes .../model.onnx | Bin 0 -> 170 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 112 bytes .../test_castlike_FLOAT_to_FLOAT16/model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 40 bytes .../model.onnx | Bin 0 -> 171 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 40 bytes .../test_castlike_FLOAT_to_STRING/model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 6 + .../model.onnx | Bin 0 -> 170 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 6 + .../test_castlike_STRING_to_FLOAT/model.onnx | 16 + .../test_data_set_0/input_0.pb | 7 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../model.onnx | Bin 0 -> 170 bytes .../test_data_set_0/input_0.pb | 7 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../test/data/node/test_ceil/model.onnx | 13 + .../node/test_ceil/test_data_set_0/input_0.pb | 1 + .../test_ceil/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_ceil_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 17 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../test/data/node/test_celu/model.onnx | Bin 0 -> 122 bytes .../node/test_celu/test_data_set_0/input_0.pb | 2 + .../test_celu/test_data_set_0/output_0.pb | 2 + .../data/node/test_celu_expanded/model.onnx | Bin 0 -> 468 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | 2 + .../test/data/node/test_clip/model.onnx | Bin 0 -> 137 bytes .../node/test_clip/test_data_set_0/input_0.pb | 1 + .../node/test_clip/test_data_set_0/input_1.pb | Bin 0 -> 13 bytes .../node/test_clip/test_data_set_0/input_2.pb | Bin 0 -> 13 bytes .../test_clip/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test_clip_default_inbounds/model.onnx | Bin 0 -> 102 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../model.onnx | Bin 0 -> 107 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 12 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 12 bytes .../test_clip_default_int8_max/model.onnx | Bin 0 -> 136 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 10 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 73 bytes .../test_clip_default_int8_min/model.onnx | Bin 0 -> 134 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 10 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 73 bytes .../node/test_clip_default_max/model.onnx | Bin 0 -> 131 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 13 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_clip_default_min/model.onnx | Bin 0 -> 129 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 13 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_clip_example/model.onnx | Bin 0 -> 129 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 13 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 13 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../data/node/test_clip_inbounds/model.onnx | Bin 0 -> 130 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 13 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 13 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../data/node/test_clip_outbounds/model.onnx | Bin 0 -> 131 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 13 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 13 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../node/test_clip_splitbounds/model.onnx | Bin 0 -> 133 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 13 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 13 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_compress_0/model.onnx | Bin 0 -> 167 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../test/data/node/test_compress_1/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 19 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 28 bytes .../test_compress_default_axis/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 22 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 22 bytes .../test_compress_negative_axis/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 19 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 28 bytes .../node/test_concat_1d_axis_0/model.onnx | Bin 0 -> 159 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 22 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 22 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 30 bytes .../test_concat_1d_axis_negative_1/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 22 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 22 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 30 bytes .../node/test_concat_2d_axis_0/model.onnx | Bin 0 -> 171 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 32 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 32 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 48 bytes .../node/test_concat_2d_axis_1/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 32 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 32 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 48 bytes .../test_concat_2d_axis_negative_1/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 32 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 32 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 48 bytes .../test_concat_2d_axis_negative_2/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 32 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 32 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 48 bytes .../node/test_concat_3d_axis_0/model.onnx | Bin 0 -> 183 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 50 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../node/test_concat_3d_axis_1/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 50 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../node/test_concat_3d_axis_2/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 50 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../test_concat_3d_axis_negative_1/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 50 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../test_concat_3d_axis_negative_2/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 50 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../test_concat_3d_axis_negative_3/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 50 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../test/data/node/test_constant/model.onnx | 7 + .../test_constant/test_data_set_0/output_0.pb | 1 + .../data/node/test_constant_pad/model.onnx | Bin 0 -> 184 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 76 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 154 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 109 bytes .../model.onnx | Bin 0 -> 146 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 17 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 9 bytes .../test_constantofshape_int_zeros/model.onnx | Bin 0 -> 145 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 25 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 252 bytes .../test_conv_with_autopad_same/model.onnx | 26 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 51 bytes .../model.onnx | Bin 0 -> 234 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 156 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../model.onnx | Bin 0 -> 222 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 156 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 39 bytes .../test_conv_with_strides_padding/model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 156 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 63 bytes .../test_convinteger_with_padding/model.onnx | Bin 0 -> 222 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 79 bytes .../model.onnx | Bin 0 -> 206 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../data/node/test_convtranspose/model.onnx | 22 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 87 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 216 bytes .../node/test_convtranspose_1d/model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 53 bytes .../node/test_convtranspose_3d/model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 258 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 234 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1698 bytes .../model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 87 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 304 bytes .../test_convtranspose_dilations/model.onnx | 23 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 31 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 115 bytes .../model.onnx | 28 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 87 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 656 bytes .../model.onnx | 26 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 87 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 656 bytes .../node/test_convtranspose_pad/model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 87 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 656 bytes .../node/test_convtranspose_pads/model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 87 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 184 bytes .../test_convtranspose_with_kernel/model.onnx | 28 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 87 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 656 bytes .../test/data/node/test_cos/model.onnx | 13 + .../node/test_cos/test_data_set_0/input_0.pb | 1 + .../node/test_cos/test_data_set_0/output_0.pb | 3 + .../data/node/test_cos_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_cosh/model.onnx | 13 + .../node/test_cosh/test_data_set_0/input_0.pb | 1 + .../test_cosh/test_data_set_0/output_0.pb | 1 + .../data/node/test_cosh_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_cumsum_1d/model.onnx | Bin 0 -> 110 bytes .../test_cumsum_1d/test_data_set_0/input_0.pb | Bin 0 -> 49 bytes .../test_cumsum_1d/test_data_set_0/input_1.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 49 bytes .../node/test_cumsum_1d_exclusive/model.onnx | Bin 0 -> 138 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 49 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 49 bytes .../node/test_cumsum_1d_reverse/model.onnx | Bin 0 -> 134 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 49 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 49 bytes .../model.onnx | Bin 0 -> 163 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 49 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 49 bytes .../node/test_cumsum_2d_axis_0/model.onnx | Bin 0 -> 125 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 59 bytes .../node/test_cumsum_2d_axis_1/model.onnx | Bin 0 -> 125 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 59 bytes .../test_cumsum_2d_negative_axis/model.onnx | Bin 0 -> 132 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 59 bytes .../test_depthtospace_crd_mode/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 592 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 592 bytes .../model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 208 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 208 bytes .../test_depthtospace_dcr_mode/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 592 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 592 bytes .../node/test_depthtospace_example/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 208 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 208 bytes .../node/test_dequantizelinear/model.onnx | Bin 0 -> 172 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 13 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../test_dequantizelinear_axis/model.onnx | 25 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 27 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 87 bytes .../test/data/node/test_det_2d/model.onnx | Bin 0 -> 82 bytes .../test_det_2d/test_data_set_0/input_0.pb | Bin 0 -> 27 bytes .../test_det_2d/test_data_set_0/output_0.pb | Bin 0 -> 11 bytes .../test/data/node/test_det_nd/model.onnx | 12 + .../test_det_nd/test_data_set_0/input_0.pb | Bin 0 -> 61 bytes .../test_det_nd/test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_div/model.onnx | 19 + .../node/test_div/test_data_set_0/input_0.pb | 1 + .../node/test_div/test_data_set_0/input_1.pb | 1 + .../node/test_div/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test/data/node/test_div_bcast/model.onnx | 18 + .../test_div_bcast/test_data_set_0/input_0.pb | 1 + .../test_div_bcast/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_div_example/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 17 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../test/data/node/test_div_uint8/model.onnx | 19 + .../test_div_uint8/test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_div_uint8/test_data_set_0/input_1.pb | 4 + .../test_data_set_0/output_0.pb | Bin 0 -> 73 bytes .../data/node/test_dropout_default/model.onnx | Bin 0 -> 124 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_dropout_default_mask/model.onnx | Bin 0 -> 158 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 180 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../node/test_dropout_default_old/model.onnx | Bin 0 -> 101 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_dropout_default_ratio/model.onnx | Bin 0 -> 146 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_dropout_random_old/model.onnx | Bin 0 -> 133 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_dynamicquantizelinear/model.onnx | Bin 0 -> 182 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 3073 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 195 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 3528 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 203 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | Bin 0 -> 19 bytes .../model.onnx | Bin 0 -> 3536 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | Bin 0 -> 19 bytes .../test/data/node/test_edge_pad/model.onnx | 21 + .../test_edge_pad/test_data_set_0/input_0.pb | Bin 0 -> 256 bytes .../test_edge_pad/test_data_set_0/input_1.pb | Bin 0 -> 76 bytes .../test_edge_pad/test_data_set_0/output_0.pb | Bin 0 -> 520 bytes .../test_einsum_batch_diagonal/model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 614 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_einsum_batch_matmul/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 254 bytes .../test_data_set_0/input_1.pb | 3 + .../test_data_set_0/output_0.pb | Bin 0 -> 334 bytes .../node/test_einsum_inner_prod/model.onnx | Bin 0 -> 132 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_einsum_sum/model.onnx | 12 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_einsum_transpose/model.onnx | 12 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_elu/model.onnx | Bin 0 -> 112 bytes .../node/test_elu/test_data_set_0/input_0.pb | 1 + .../node/test_elu/test_data_set_0/output_0.pb | 1 + .../data/node/test_elu_default/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_elu_example/model.onnx | Bin 0 -> 104 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_equal/model.onnx | 20 + .../test_equal/test_data_set_0/input_0.pb | Bin 0 -> 254 bytes .../test_equal/test_data_set_0/input_1.pb | Bin 0 -> 254 bytes .../test_equal/test_data_set_0/output_0.pb | Bin 0 -> 73 bytes .../data/node/test_equal_bcast/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 254 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 73 bytes .../test/data/node/test_erf/model.onnx | 15 + .../node/test_erf/test_data_set_0/input_0.pb | Bin 0 -> 12304 bytes .../node/test_erf/test_data_set_0/output_0.pb | Bin 0 -> 12304 bytes .../test/data/node/test_exp/model.onnx | 13 + .../node/test_exp/test_data_set_0/input_0.pb | 1 + .../node/test_exp/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_exp_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../node/test_expand_dim_changed/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 41 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 165 bytes .../node/test_expand_dim_unchanged/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 66 bytes .../model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 91 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 91 bytes .../node/test_eyelike_with_dtype/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 107 bytes .../test_eyelike_without_dtype/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 75 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../data/node/test_flatten_axis0/model.onnx | Bin 0 -> 122 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_flatten_axis1/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_flatten_axis2/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_flatten_axis3/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_flatten_default_axis/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_flatten_negative_axis1/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_flatten_negative_axis2/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_flatten_negative_axis3/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_flatten_negative_axis4/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_floor/model.onnx | 14 + .../test_floor/test_data_set_0/input_0.pb | 1 + .../test_floor/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_floor_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_gather_0/model.onnx | Bin 0 -> 163 bytes .../test_gather_0/test_data_set_0/input_0.pb | 1 + .../test_gather_0/test_data_set_0/input_1.pb | Bin 0 -> 39 bytes .../test_gather_0/test_data_set_0/output_0.pb | 1 + .../test/data/node/test_gather_1/model.onnx | 21 + .../test_gather_1/test_data_set_0/input_0.pb | 1 + .../test_gather_1/test_data_set_0/input_1.pb | Bin 0 -> 39 bytes .../test_gather_1/test_data_set_0/output_0.pb | 1 + .../node/test_gather_2d_indices/model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_gather_elements_0/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 49 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 27 bytes .../node/test_gather_elements_1/model.onnx | Bin 0 -> 168 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 65 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 35 bytes .../model.onnx | Bin 0 -> 183 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 65 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 35 bytes .../test_gather_negative_indices/model.onnx | Bin 0 -> 154 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 52 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 39 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_gathernd_example_float32/model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 48 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 34 bytes .../test_gathernd_example_int32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 30 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 49 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 22 bytes .../model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 48 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 32 bytes .../node/test_gemm_all_attributes/model.onnx | Bin 0 -> 216 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_gemm_alpha/model.onnx | Bin 0 -> 161 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_gemm_beta/model.onnx | Bin 0 -> 159 bytes .../test_gemm_beta/test_data_set_0/input_0.pb | 1 + .../test_gemm_beta/test_data_set_0/input_1.pb | 1 + .../test_gemm_beta/test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_gemm_default_matrix_bias/model.onnx | 21 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../node/test_gemm_default_no_bias/model.onnx | 18 + .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 35 bytes .../test_gemm_default_scalar_bias/model.onnx | Bin 0 -> 149 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 21 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_gemm_default_vector_bias/model.onnx | 21 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../test_gemm_default_zero_bias/model.onnx | 21 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | 1 + .../data/node/test_gemm_transposeA/model.onnx | 22 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 59 bytes .../data/node/test_gemm_transposeB/model.onnx | 22 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_globalaveragepool/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 19 bytes .../data/node/test_globalmaxpool/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_globalmaxpool_precomputed/model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 19 bytes .../test/data/node/test_greater/model.onnx | 19 + .../test_greater/test_data_set_0/input_0.pb | 1 + .../test_greater/test_data_set_0/input_1.pb | 1 + .../test_greater/test_data_set_0/output_0.pb | Bin 0 -> 79 bytes .../data/node/test_greater_bcast/model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 79 bytes .../data/node/test_greater_equal/model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 85 bytes .../node/test_greater_equal_bcast/model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 85 bytes .../model.onnx | 24 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 85 bytes .../test_greater_equal_expanded/model.onnx | 25 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 85 bytes .../test/data/node/test_gridsample/model.onnx | Bin 0 -> 225 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 307 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 160 bytes .../model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 82 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../node/test_gridsample_bicubic/model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 82 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../node/test_gridsample_bilinear/model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 82 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../test_gridsample_border_padding/model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 82 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../node/test_gridsample_nearest/model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 82 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 82 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../test_gridsample_zeros_padding/model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 82 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../data/node/test_gru_batchwise/model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 7 + .../test_data_set_0/output_1.pb | 7 + .../data/node/test_gru_defaults/model.onnx | Bin 0 -> 187 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_gru_seq_length/model.onnx | Bin 0 -> 213 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 85 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../test_gru_with_initial_bias/model.onnx | Bin 0 -> 220 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 49 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | Bin 0 -> 83 bytes .../test_data_set_0/output_0.pb | 1 + .../data/node/test_hardmax_axis_0/model.onnx | Bin 0 -> 123 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_hardmax_axis_1/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_hardmax_axis_2/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_hardmax_default_axis/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_hardmax_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 75 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../test_hardmax_negative_axis/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_hardmax_one_hot/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 27 bytes .../data/node/test_hardsigmoid/model.onnx | Bin 0 -> 144 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_hardsigmoid_default/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_hardsigmoid_example/model.onnx | Bin 0 -> 136 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_hardswish/model.onnx | 13 + .../test_hardswish/test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_hardswish_expanded/model.onnx | Bin 0 -> 258 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test/data/node/test_identity/model.onnx | 15 + .../test_identity/test_data_set_0/input_0.pb | Bin 0 -> 31 bytes .../test_identity/test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../data/node/test_identity_opt/model.onnx | Bin 0 -> 133 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 42 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../node/test_identity_sequence/model.onnx | 9 + .../test_data_set_0/input_0.pb | Bin 0 -> 65 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 65 bytes .../backend/test/data/node/test_if/model.onnx | Bin 0 -> 321 bytes .../node/test_if/test_data_set_0/input_0.pb | 1 + .../node/test_if/test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../test/data/node/test_if_opt/model.onnx | Bin 0 -> 419 bytes .../test_if_opt/test_data_set_0/input_0.pb | Bin 0 -> 11 bytes .../test_if_opt/test_data_set_0/output_0.pb | Bin 0 -> 44 bytes .../test/data/node/test_if_seq/model.onnx | Bin 0 -> 389 bytes .../test_if_seq/test_data_set_0/input_0.pb | 1 + .../test_if_seq/test_data_set_0/output_0.pb | Bin 0 -> 35 bytes .../node/test_instancenorm_epsilon/model.onnx | 27 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../node/test_instancenorm_example/model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 39 bytes .../test/data/node/test_isinf/model.onnx | 12 + .../test_isinf/test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_isinf/test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../data/node/test_isinf_negative/model.onnx | Bin 0 -> 116 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../data/node/test_isinf_positive/model.onnx | Bin 0 -> 116 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../test/data/node/test_isnan/model.onnx | 12 + .../test_isnan/test_data_set_0/input_0.pb | Bin 0 -> 25 bytes .../test_isnan/test_data_set_0/output_0.pb | Bin 0 -> 13 bytes .../model.onnx | Bin 0 -> 259 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 5969 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 30 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6038 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 30 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6631 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 30 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6639 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 310 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6513 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 35 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6590 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 35 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 133 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6582 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 133 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 35 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 7169 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 35 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 71 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 7177 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 71 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 37 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 7185 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 307 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 496 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6017 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 496 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 40 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 254 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 254 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6086 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 254 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 254 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 38 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6078 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 38 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 114 bytes .../test_data_set_0/output_2.pb | 2 + .../model.onnx | Bin 0 -> 6070 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 114 bytes .../test_data_set_0/output_2.pb | 2 + .../model.onnx | 38 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 114 bytes .../test_data_set_0/output_2.pb | 2 + .../model.onnx | Bin 0 -> 6663 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 114 bytes .../test_data_set_0/output_2.pb | 2 + .../model.onnx | 38 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6671 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 40 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/input_2.pb | Bin 0 -> 254 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6679 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/input_2.pb | Bin 0 -> 254 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 42 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 496 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | Bin 0 -> 6687 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 496 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../model.onnx | 37 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 114 bytes .../test_data_set_0/output_2.pb | 2 + .../model.onnx | Bin 0 -> 6271 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 496 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 114 bytes .../test_data_set_0/output_2.pb | 2 + .../test/data/node/test_leakyrelu/model.onnx | 14 + .../test_leakyrelu/test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_leakyrelu_default/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_leakyrelu_example/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_less/model.onnx | 19 + .../node/test_less/test_data_set_0/input_0.pb | 1 + .../node/test_less/test_data_set_0/input_1.pb | 1 + .../test_less/test_data_set_0/output_0.pb | Bin 0 -> 76 bytes .../test/data/node/test_less_bcast/model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 76 bytes .../test/data/node/test_less_equal/model.onnx | 21 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../node/test_less_equal_bcast/model.onnx | 20 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../test_less_equal_bcast_expanded/model.onnx | 26 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../node/test_less_equal_expanded/model.onnx | 27 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 82 bytes .../test/data/node/test_log/model.onnx | 13 + .../node/test_log/test_data_set_0/input_0.pb | Bin 0 -> 254 bytes .../node/test_log/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_log_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 17 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../node/test_logsoftmax_axis_0/model.onnx | Bin 0 -> 129 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../model.onnx | Bin 0 -> 1027 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_logsoftmax_axis_1/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../model.onnx | 31 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_logsoftmax_axis_2/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../model.onnx | 31 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test_logsoftmax_default_axis/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../model.onnx | 32 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_logsoftmax_example_1/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 30 + .../test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_data_set_0/output_0.pb | 1 + .../test_logsoftmax_large_number/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 43 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 30 + .../test_data_set_0/input_0.pb | Bin 0 -> 43 bytes .../test_data_set_0/output_0.pb | 1 + .../test_logsoftmax_negative_axis/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../model.onnx | 32 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test/data/node/test_loop11/model.onnx | Bin 0 -> 726 bytes .../test_loop11/test_data_set_0/input_0.pb | Bin 0 -> 24 bytes .../test_loop11/test_data_set_0/input_1.pb | 1 + .../test_loop11/test_data_set_0/input_2.pb | Bin 0 -> 13 bytes .../test_loop11/test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../test_loop11/test_data_set_0/output_1.pb | Bin 0 -> 38 bytes .../test/data/node/test_loop13_seq/model.onnx | Bin 0 -> 735 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 24 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 111 bytes .../data/node/test_loop16_seq_none/model.onnx | Bin 0 -> 1149 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 24 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | Bin 0 -> 25 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 121 bytes .../test/data/node/test_lrn/model.onnx | Bin 0 -> 166 bytes .../node/test_lrn/test_data_set_0/input_0.pb | Bin 0 -> 2516 bytes .../node/test_lrn/test_data_set_0/output_0.pb | Bin 0 -> 2516 bytes .../data/node/test_lrn_default/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 2516 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 2516 bytes .../data/node/test_lstm_batchwise/model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../data/node/test_lstm_defaults/model.onnx | Bin 0 -> 189 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_lstm_with_initial_bias/model.onnx | Bin 0 -> 222 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 49 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | Bin 0 -> 140 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_lstm_with_peepholes/model.onnx | Bin 0 -> 375 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 45 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | Bin 0 -> 107 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 29 bytes .../test_data_set_0/input_5.pb | Bin 0 -> 45 bytes .../test_data_set_0/input_6.pb | Bin 0 -> 45 bytes .../test_data_set_0/input_7.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_matmul_2d/model.onnx | 16 + .../test_matmul_2d/test_data_set_0/input_0.pb | 1 + .../test_matmul_2d/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_matmul_3d/model.onnx | 19 + .../test_matmul_3d/test_data_set_0/input_0.pb | 1 + .../test_matmul_3d/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_matmul_4d/model.onnx | 22 + .../test_matmul_4d/test_data_set_0/input_0.pb | 1 + .../test_matmul_4d/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_matmulinteger/model.onnx | 26 + .../test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | 1 + .../data/node/test_max_example/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_max_float16/model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 20 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 20 bytes .../data/node/test_max_float32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_max_float64/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 38 bytes .../test/data/node/test_max_int16/model.onnx | 16 + .../test_max_int16/test_data_set_0/input_0.pb | Bin 0 -> 20 bytes .../test_max_int16/test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 20 bytes .../test/data/node/test_max_int32/model.onnx | 16 + .../test_max_int32/test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_max_int32/test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../test/data/node/test_max_int64/model.onnx | 16 + .../test_max_int64/test_data_set_0/input_0.pb | Bin 0 -> 38 bytes .../test_max_int64/test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 38 bytes .../test/data/node/test_max_int8/model.onnx | 16 + .../test_max_int8/test_data_set_0/input_0.pb | 1 + .../test_max_int8/test_data_set_0/input_1.pb | 1 + .../test_max_int8/test_data_set_0/output_0.pb | 1 + .../data/node/test_max_one_input/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_max_two_inputs/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../test/data/node/test_max_uint16/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 20 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 20 bytes .../test/data/node/test_max_uint32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../test/data/node/test_max_uint64/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 38 bytes .../test/data/node/test_max_uint8/model.onnx | 16 + .../test_max_uint8/test_data_set_0/input_0.pb | 1 + .../test_max_uint8/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_maxpool_1d_default/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_maxpool_2d_ceil/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../node/test_maxpool_2d_default/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 12304 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 11548 bytes .../node/test_maxpool_2d_dilations/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../data/node/test_maxpool_2d_pads/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 9424 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 10816 bytes .../model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 115 bytes .../model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 51 bytes .../model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../test_maxpool_2d_same_lower/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 12304 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 12304 bytes .../test_maxpool_2d_same_upper/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 12304 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 12304 bytes .../node/test_maxpool_2d_strides/model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 12304 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1216 bytes .../node/test_maxpool_2d_uint8/model.onnx | 17 + .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../node/test_maxpool_3d_default/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 393235 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 357511 bytes .../model.onnx | 23 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 216 bytes .../model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 115 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 47 bytes .../model.onnx | 29 + .../test_data_set_0/input_0.pb | Bin 0 -> 32 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 48 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 52 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 115 bytes .../model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 32 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 48 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 79 bytes .../data/node/test_mean_example/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_mean_one_input/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_mean_two_inputs/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_min_example/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_min_float16/model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 20 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 20 bytes .../data/node/test_min_float32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_min_float64/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 38 bytes .../test/data/node/test_min_int16/model.onnx | 16 + .../test_min_int16/test_data_set_0/input_0.pb | Bin 0 -> 20 bytes .../test_min_int16/test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 20 bytes .../test/data/node/test_min_int32/model.onnx | 16 + .../test_min_int32/test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_min_int32/test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../test/data/node/test_min_int64/model.onnx | 16 + .../test_min_int64/test_data_set_0/input_0.pb | Bin 0 -> 38 bytes .../test_min_int64/test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 38 bytes .../test/data/node/test_min_int8/model.onnx | 16 + .../test_min_int8/test_data_set_0/input_0.pb | 1 + .../test_min_int8/test_data_set_0/input_1.pb | 1 + .../test_min_int8/test_data_set_0/output_0.pb | 1 + .../data/node/test_min_one_input/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_min_two_inputs/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../test/data/node/test_min_uint16/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 20 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 20 bytes .../test/data/node/test_min_uint32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../test/data/node/test_min_uint64/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 38 bytes .../test/data/node/test_min_uint8/model.onnx | 16 + .../test_min_uint8/test_data_set_0/input_0.pb | 1 + .../test_min_uint8/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_mod_broadcast/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 133 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 13 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 133 bytes .../data/node/test_mod_int64_fmod/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 57 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 57 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 57 bytes .../test_mod_mixed_sign_float16/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_mod_mixed_sign_float32/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../test_mod_mixed_sign_float64/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 57 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 57 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 57 bytes .../node/test_mod_mixed_sign_int16/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../node/test_mod_mixed_sign_int32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../node/test_mod_mixed_sign_int64/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 57 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 57 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 57 bytes .../node/test_mod_mixed_sign_int8/model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../test/data/node/test_mod_uint16/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../test/data/node/test_mod_uint32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_mod_uint64/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../test/data/node/test_mod_uint8/model.onnx | 16 + .../test_mod_uint8/test_data_set_0/input_0.pb | 1 + .../test_mod_uint8/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 12 bytes .../test/data/node/test_momentum/model.onnx | Bin 0 -> 333 bytes .../test_momentum/test_data_set_0/input_0.pb | 1 + .../test_momentum/test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_momentum/test_data_set_0/input_2.pb | 1 + .../test_momentum/test_data_set_0/input_3.pb | Bin 0 -> 17 bytes .../test_momentum/test_data_set_0/input_4.pb | 1 + .../test_momentum/test_data_set_0/output_0.pb | 1 + .../test_momentum/test_data_set_0/output_1.pb | 1 + .../node/test_momentum_multiple/model.onnx | Bin 0 -> 478 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 18 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_5.pb | Bin 0 -> 18 bytes .../test_data_set_0/input_6.pb | Bin 0 -> 14 bytes .../test_data_set_0/input_7.pb | Bin 0 -> 18 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_data_set_0/output_2.pb | 1 + .../test_data_set_0/output_3.pb | 1 + .../test/data/node/test_mul/model.onnx | 19 + .../node/test_mul/test_data_set_0/input_0.pb | 1 + .../node/test_mul/test_data_set_0/input_1.pb | 1 + .../node/test_mul/test_data_set_0/output_0.pb | 3 + .../test/data/node/test_mul_bcast/model.onnx | 18 + .../test_mul_bcast/test_data_set_0/input_0.pb | 1 + .../test_mul_bcast/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../data/node/test_mul_example/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_mul_uint8/model.onnx | 19 + .../test_mul_uint8/test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_mul_uint8/test_data_set_0/input_1.pb | Bin 0 -> 73 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 73 bytes .../test/data/node/test_mvn/model.onnx | 15 + .../node/test_mvn/test_data_set_0/input_0.pb | 2 + .../node/test_mvn/test_data_set_0/output_0.pb | 1 + .../data/node/test_mvn_expanded/model.onnx | Bin 0 -> 1663 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_neg/model.onnx | 13 + .../node/test_neg/test_data_set_0/input_0.pb | 1 + .../node/test_neg/test_data_set_0/output_0.pb | 1 + .../data/node/test_neg_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 17 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../node/test_nesterov_momentum/model.onnx | Bin 0 -> 342 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | Bin 0 -> 17 bytes .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test/data/node/test_nllloss_NC/model.onnx | 17 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_nllloss_NC_expanded/model.onnx | Bin 0 -> 1453 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | 1 + .../data/node/test_nllloss_NCd1/model.onnx | Bin 0 -> 185 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | 1 + .../test_nllloss_NCd1_expanded/model.onnx | Bin 0 -> 1664 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | 1 + .../data/node/test_nllloss_NCd1_ii/model.onnx | Bin 0 -> 209 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | 1 + .../test_nllloss_NCd1_ii_expanded/model.onnx | Bin 0 -> 4701 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 269 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 161 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 5957 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 161 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_nllloss_NCd1_weight/model.onnx | Bin 0 -> 222 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 2641 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_nllloss_NCd1_weight_ii/model.onnx | Bin 0 -> 246 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 5189 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_nllloss_NCd1d2/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 449 bytes .../test_nllloss_NCd1d2_expanded/model.onnx | Bin 0 -> 1545 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 449 bytes .../model.onnx | Bin 0 -> 244 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 6146 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 210 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 1995 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 208 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 1975 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 26 + .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 449 bytes .../model.onnx | Bin 0 -> 2169 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 449 bytes .../model.onnx | Bin 0 -> 252 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | Bin 0 -> 3268 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | Bin 0 -> 250 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 2683 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 274 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 5764 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2180 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 883 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 10822 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 4341 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 2179 bytes .../model.onnx | Bin 0 -> 5425 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 10822 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 4341 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 2179 bytes .../model.onnx | Bin 0 -> 250 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 5353 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 267 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 129627 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51866 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 3037 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 129627 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51866 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 30 + .../test_data_set_0/input_0.pb | Bin 0 -> 129627 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51866 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25944 bytes .../model.onnx | Bin 0 -> 1938 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 129627 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51866 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25944 bytes .../model.onnx | 34 + .../test_data_set_0/input_0.pb | Bin 0 -> 113 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 98 bytes .../model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 113 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 98 bytes .../model.onnx | 35 + .../test_data_set_0/input_0.pb | Bin 0 -> 178 bytes .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/input_2.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 50 bytes .../model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 113 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 74 bytes .../model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 50 bytes .../model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 113 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 98 bytes .../model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 113 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 74 bytes .../model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 210 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 66 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 122 bytes .../model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 113 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 66 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 42 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 122 bytes .../data/node/test_nonzero_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../test/data/node/test_not_2d/model.onnx | 11 + .../test_not_2d/test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_not_2d/test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../test/data/node/test_not_3d/model.onnx | 13 + .../test_not_3d/test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_not_3d/test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../test/data/node/test_not_4d/model.onnx | 15 + .../test_not_4d/test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../test_not_4d/test_data_set_0/output_0.pb | Bin 0 -> 378 bytes .../test_onehot_negative_indices/model.onnx | 23 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 22 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 131 bytes .../node/test_onehot_with_axis/model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 22 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 174 bytes .../test_onehot_with_negative_axis/model.onnx | 24 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 22 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 174 bytes .../node/test_onehot_without_axis/model.onnx | Bin 0 -> 169 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 22 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 156 bytes .../node/test_optional_get_element/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 42 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 30 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 46 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 34 bytes .../node/test_optional_has_element/model.onnx | Bin 0 -> 147 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 42 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 149 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 18 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 13 bytes .../test/data/node/test_or2d/model.onnx | 16 + .../node/test_or2d/test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../node/test_or2d/test_data_set_0/input_1.pb | Bin 0 -> 23 bytes .../test_or2d/test_data_set_0/output_0.pb | Bin 0 -> 24 bytes .../test/data/node/test_or3d/model.onnx | 19 + .../node/test_or3d/test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../node/test_or3d/test_data_set_0/input_1.pb | Bin 0 -> 73 bytes .../test_or3d/test_data_set_0/output_0.pb | Bin 0 -> 74 bytes .../test/data/node/test_or4d/model.onnx | 22 + .../node/test_or4d/test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../node/test_or4d/test_data_set_0/input_1.pb | Bin 0 -> 376 bytes .../test_or4d/test_data_set_0/output_0.pb | Bin 0 -> 377 bytes .../data/node/test_or_bcast3v1d/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 74 bytes .../data/node/test_or_bcast3v2d/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 31 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 74 bytes .../data/node/test_or_bcast4v2d/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 41 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 377 bytes .../data/node/test_or_bcast4v3d/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 133 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 377 bytes .../data/node/test_or_bcast4v4d/model.onnx | 22 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 105 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 377 bytes .../test/data/node/test_pow/model.onnx | 19 + .../node/test_pow/test_data_set_0/input_0.pb | Bin 0 -> 254 bytes .../node/test_pow/test_data_set_0/input_1.pb | 1 + .../node/test_pow/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_pow_bcast_array/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 35 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 35 bytes .../node/test_pow_bcast_scalar/model.onnx | Bin 0 -> 108 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 11 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../data/node/test_pow_example/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../data/node/test_pow_types_float/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../test_pow_types_float32_int32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_pow_types_float32_int64/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_pow_types_float32_uint32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_pow_types_float32_uint64/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../data/node/test_pow_types_int/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_pow_types_int32_float32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_pow_types_int32_int32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_pow_types_int64_float32/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../test_pow_types_int64_int64/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../data/node/test_prelu_broadcast/model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_prelu_example/model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../data/node/test_qlinearconv/model.onnx | Bin 0 -> 358 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | Bin 0 -> 16 bytes .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/input_5.pb | 1 + .../test_data_set_0/input_6.pb | 1 + .../test_data_set_0/input_7.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 64 bytes .../node/test_qlinearmatmul_2D/model.onnx | 46 + .../test_data_set_0/input_0.pb | Bin 0 -> 19 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | Bin 0 -> 23 bytes .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/input_5.pb | 1 + .../test_data_set_0/input_6.pb | 1 + .../test_data_set_0/input_7.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_qlinearmatmul_3D/model.onnx | 49 + .../test_data_set_0/input_0.pb | Bin 0 -> 29 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | Bin 0 -> 37 bytes .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/input_5.pb | 1 + .../test_data_set_0/input_6.pb | 1 + .../test_data_set_0/input_7.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_quantizelinear/model.onnx | Bin 0 -> 168 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../node/test_quantizelinear_axis/model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 87 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 27 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 172 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 22 bytes .../model.onnx | Bin 0 -> 1868 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 22 bytes .../model.onnx | Bin 0 -> 172 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 22 bytes .../model.onnx | Bin 0 -> 1868 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 22 bytes .../test/data/node/test_reciprocal/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_reciprocal_example/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 17 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 23 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 175 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | Bin 0 -> 174 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 175 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | Bin 0 -> 174 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_reduce_log_sum/model.onnx | Bin 0 -> 158 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_reduce_log_sum_asc_axes/model.onnx | Bin 0 -> 167 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_reduce_log_sum_default/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_reduce_log_sum_desc_axes/model.onnx | Bin 0 -> 168 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 191 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | Bin 0 -> 190 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 23 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 177 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | Bin 0 -> 176 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 23 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 179 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | Bin 0 -> 178 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 23 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 177 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | Bin 0 -> 176 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 179 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | Bin 0 -> 178 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 16 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | Bin 0 -> 200 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 12 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 23 bytes .../model.onnx | Bin 0 -> 199 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 12 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 190 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | Bin 0 -> 189 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 229 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 12 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 67 bytes .../model.onnx | Bin 0 -> 228 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 12 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | Bin 0 -> 229 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 12 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 23 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 190 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 41 bytes .../model.onnx | Bin 0 -> 189 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 64 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_reflect_pad/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 256 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 76 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 520 bytes .../test/data/node/test_relu/model.onnx | 13 + .../node/test_relu/test_data_set_0/input_0.pb | 1 + .../test_relu/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../model.onnx | Bin 0 -> 190 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 16 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 20 bytes .../test_reshape_extended_dims/model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_reshape_negative_dim/model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | 1 + .../data/node/test_reshape_one_dim/model.onnx | 17 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_reshape_reduced_dims/model.onnx | 17 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_reshape_zero_dim/model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 184 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 51 bytes .../model.onnx | Bin 0 -> 256 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 51 bytes .../model.onnx | Bin 0 -> 250 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 51 bytes .../model.onnx | Bin 0 -> 186 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 47 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 252 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 47 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 23 bytes .../model.onnx | Bin 0 -> 188 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 47 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 23 bytes .../model.onnx | Bin 0 -> 183 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 51 bytes .../model.onnx | Bin 0 -> 261 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 27 bytes .../model.onnx | Bin 0 -> 187 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 47 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 27 bytes .../model.onnx | Bin 0 -> 363 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 39 bytes .../test_resize_tf_crop_and_resize/model.onnx | Bin 0 -> 291 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 43 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 51 bytes .../model.onnx | Bin 0 -> 182 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 272 bytes .../model.onnx | Bin 0 -> 254 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 272 bytes .../model.onnx | Bin 0 -> 248 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 272 bytes .../model.onnx | Bin 0 -> 242 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 272 bytes .../model.onnx | Bin 0 -> 184 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 31 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 79 bytes .../model.onnx | Bin 0 -> 250 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 31 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 79 bytes .../model.onnx | Bin 0 -> 186 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 31 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 111 bytes .../model.onnx | Bin 0 -> 181 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 376 bytes .../model.onnx | Bin 0 -> 185 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 31 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 240 bytes .../model.onnx | Bin 0 -> 275 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 272 bytes .../model.onnx | Bin 0 -> 283 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 272 bytes .../model.onnx | Bin 0 -> 302 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 79 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 272 bytes .../test_reversesequence_batch/model.onnx | Bin 0 -> 199 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 75 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 53 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../node/test_reversesequence_time/model.onnx | Bin 0 -> 198 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 75 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 53 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../data/node/test_rnn_seq_length/model.onnx | Bin 0 -> 213 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 85 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../test_roialign_aligned_false/model.onnx | Bin 0 -> 350 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 416 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 62 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | 3 + .../test_roialign_aligned_true/model.onnx | Bin 0 -> 342 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 416 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 62 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | 2 + .../test/data/node/test_round/model.onnx | 12 + .../test_round/test_data_set_0/input_0.pb | Bin 0 -> 69 bytes .../test_round/test_data_set_0/output_0.pb | Bin 0 -> 69 bytes .../test/data/node/test_scan9_sum/model.onnx | Bin 0 -> 350 bytes .../test_scan9_sum/test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_scan9_sum/test_data_set_0/input_1.pb | Bin 0 -> 35 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 35 bytes .../test/data/node/test_scan_sum/model.onnx | Bin 0 -> 367 bytes .../test_scan_sum/test_data_set_0/input_0.pb | Bin 0 -> 25 bytes .../test_scan_sum/test_data_set_0/input_1.pb | Bin 0 -> 37 bytes .../test_scan_sum/test_data_set_0/output_0.pb | Bin 0 -> 19 bytes .../test_scan_sum/test_data_set_0/output_1.pb | Bin 0 -> 37 bytes .../model.onnx | 22 + .../test_data_set_0/input_0.pb | Bin 0 -> 34 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../model.onnx | 23 + .../test_data_set_0/input_0.pb | Bin 0 -> 34 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../model.onnx | 22 + .../test_data_set_0/input_0.pb | Bin 0 -> 34 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 65 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 41 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../node/test_scatter_with_axis/model.onnx | Bin 0 -> 199 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 34 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 31 bytes .../node/test_scatter_without_axis/model.onnx | Bin 0 -> 189 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 50 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 65 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 41 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 47 bytes .../test/data/node/test_scatternd/model.onnx | 24 + .../test_scatternd/test_data_set_0/input_0.pb | Bin 0 -> 273 bytes .../test_scatternd/test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_scatternd/test_data_set_0/input_2.pb | Bin 0 -> 148 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 270 bytes .../data/node/test_scatternd_add/model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 273 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 148 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 270 bytes .../node/test_scatternd_multiply/model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 273 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 148 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 270 bytes .../model.onnx | Bin 0 -> 229 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 156 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 1640 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 156 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 280 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 156 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 381 bytes .../model.onnx | Bin 0 -> 1924 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 156 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 381 bytes .../model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 10818 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 4336 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 2176 bytes .../model.onnx | Bin 0 -> 1757 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 10818 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 4336 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 2176 bytes .../model.onnx | 32 + .../test_data_set_0/input_0.pb | Bin 0 -> 10818 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 4336 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 2176 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 10825 bytes .../model.onnx | Bin 0 -> 2056 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 10818 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 4336 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 2176 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 10825 bytes .../model.onnx | Bin 0 -> 210 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 1607 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 257 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 1886 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 2 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 227 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 129623 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51861 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 1581 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 129623 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51861 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 294 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 129623 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51861 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 129630 bytes .../model.onnx | Bin 0 -> 1878 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 129623 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51861 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 129630 bytes .../model.onnx | 30 + .../test_data_set_0/input_0.pb | Bin 0 -> 129623 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51861 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25941 bytes .../model.onnx | Bin 0 -> 1631 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 129623 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51861 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25941 bytes .../model.onnx | 39 + .../test_data_set_0/input_0.pb | Bin 0 -> 129623 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51861 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25941 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 129630 bytes .../model.onnx | Bin 0 -> 1930 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 129623 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 51861 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25941 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 129630 bytes .../test/data/node/test_sce_mean/model.onnx | Bin 0 -> 146 bytes .../test_sce_mean/test_data_set_0/input_0.pb | 1 + .../test_sce_mean/test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_sce_mean/test_data_set_0/output_0.pb | 1 + .../data/node/test_sce_mean_3d/model.onnx | Bin 0 -> 158 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_sce_mean_3d_expanded/model.onnx | Bin 0 -> 1273 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_sce_mean_3d_log_prob/model.onnx | Bin 0 -> 209 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 140 bytes .../model.onnx | Bin 0 -> 1537 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 140 bytes .../node/test_sce_mean_expanded/model.onnx | Bin 0 -> 1220 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_sce_mean_log_prob/model.onnx | Bin 0 -> 194 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 1476 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_sce_mean_no_weight_ii/model.onnx | Bin 0 -> 181 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../test_sce_mean_no_weight_ii_3d/model.onnx | Bin 0 -> 192 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 1490 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 243 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 140 bytes .../model.onnx | Bin 0 -> 1767 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 140 bytes .../test_sce_mean_no_weight_ii_4d/model.onnx | Bin 0 -> 200 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 856 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 350 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 1498 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 856 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 350 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 255 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 856 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 350 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 863 bytes .../model.onnx | Bin 0 -> 1779 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 856 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 350 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 863 bytes .../model.onnx | Bin 0 -> 1437 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 228 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 1707 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../data/node/test_sce_mean_weight/model.onnx | Bin 0 -> 174 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_sce_mean_weight_expanded/model.onnx | Bin 0 -> 1345 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_sce_mean_weight_ii/model.onnx | Bin 0 -> 198 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_sce_mean_weight_ii_3d/model.onnx | Bin 0 -> 209 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 1465 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 260 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 140 bytes .../model.onnx | Bin 0 -> 1739 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 59 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 140 bytes .../test_sce_mean_weight_ii_4d/model.onnx | Bin 0 -> 217 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 856 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 350 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 1473 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 856 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 350 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 272 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 856 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 350 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 863 bytes .../model.onnx | Bin 0 -> 1751 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 856 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 350 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | Bin 0 -> 863 bytes .../model.onnx | Bin 0 -> 1412 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 245 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 1678 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_sce_mean_weight_log_prob/model.onnx | Bin 0 -> 221 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 1609 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test/data/node/test_sce_none/model.onnx | 17 + .../test_sce_none/test_data_set_0/input_0.pb | 1 + .../test_sce_none/test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_sce_none/test_data_set_0/output_0.pb | 1 + .../node/test_sce_none_expanded/model.onnx | Bin 0 -> 1224 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_sce_none_log_prob/model.onnx | 21 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 1480 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../node/test_sce_none_weights/model.onnx | 22 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_sce_none_weights_expanded/model.onnx | Bin 0 -> 1365 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_sce_none_weights_log_prob/model.onnx | 26 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 1629 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test/data/node/test_sce_sum/model.onnx | Bin 0 -> 144 bytes .../test_sce_sum/test_data_set_0/input_0.pb | 1 + .../test_sce_sum/test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_sce_sum/test_data_set_0/output_0.pb | 1 + .../node/test_sce_sum_expanded/model.onnx | Bin 0 -> 1204 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_sce_sum_log_prob/model.onnx | Bin 0 -> 192 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test_sce_sum_log_prob_expanded/model.onnx | Bin 0 -> 1459 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../test/data/node/test_selu/model.onnx | Bin 0 -> 131 bytes .../node/test_selu/test_data_set_0/input_0.pb | 1 + .../test_selu/test_data_set_0/output_0.pb | 2 + .../data/node/test_selu_default/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_selu_example/model.onnx | Bin 0 -> 123 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test_sequence_insert_at_back/model.onnx | 14 + .../test_data_set_0/input_0.pb | Bin 0 -> 108 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 147 bytes .../test_sequence_insert_at_front/model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 108 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 24 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 147 bytes .../model.onnx | 28 + .../test_data_set_0/input_0.pb | 5 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/output_0.pb | 6 + .../model.onnx | Bin 0 -> 2581 bytes .../test_data_set_0/input_0.pb | 5 + .../test_data_set_0/input_1.pb | 2 + .../test_data_set_0/output_0.pb | 6 + .../model.onnx | 29 + .../test_data_set_0/input_0.pb | 3 + .../test_data_set_0/input_1.pb | 4 + .../test_data_set_0/output_0.pb | 3 + .../model.onnx | Bin 0 -> 2500 bytes .../test_data_set_0/input_0.pb | 3 + .../test_data_set_0/input_1.pb | 4 + .../test_data_set_0/output_0.pb | 3 + .../model.onnx | 26 + .../test_data_set_0/input_0.pb | Bin 0 -> 17452 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 106 bytes .../model.onnx | Bin 0 -> 2230 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 17452 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 106 bytes .../model.onnx | 20 + .../test_data_set_0/input_0.pb | 5 + .../test_data_set_0/output_0.pb | 5 + .../model.onnx | 36 + .../test_data_set_0/input_0.pb | 3 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 3 + .../test_data_set_0/output_1.pb | 2 + .../model.onnx | Bin 0 -> 3662 bytes .../test_data_set_0/input_0.pb | 3 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 3 + .../test_data_set_0/output_1.pb | 2 + .../model.onnx | Bin 0 -> 2305 bytes .../test_data_set_0/input_0.pb | 5 + .../test_data_set_0/output_0.pb | 5 + .../model.onnx | 37 + .../test_data_set_0/input_0.pb | 3 + .../test_data_set_0/input_1.pb | 3 + .../test_data_set_0/output_0.pb | 3 + .../test_data_set_0/output_1.pb | 3 + .../model.onnx | Bin 0 -> 3522 bytes .../test_data_set_0/input_0.pb | 3 + .../test_data_set_0/input_1.pb | 3 + .../test_data_set_0/output_0.pb | 3 + .../test_data_set_0/output_1.pb | 3 + .../test/data/node/test_shape/model.onnx | 13 + .../test_shape/test_data_set_0/input_0.pb | 1 + .../test_shape/test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../data/node/test_shape_clip_end/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../node/test_shape_clip_start/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 33 bytes .../data/node/test_shape_end_1/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../node/test_shape_end_negative_1/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../data/node/test_shape_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 35 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../data/node/test_shape_start_1/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../node/test_shape_start_1_end_2/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../test_shape_start_negative_1/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../data/node/test_shrink_hard/model.onnx | Bin 0 -> 107 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 29 bytes .../data/node/test_shrink_soft/model.onnx | Bin 0 -> 123 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 29 bytes .../test/data/node/test_sigmoid/model.onnx | 13 + .../test_sigmoid/test_data_set_0/input_0.pb | 1 + .../test_sigmoid/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_sigmoid_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_sign/model.onnx | 11 + .../node/test_sign/test_data_set_0/input_0.pb | Bin 0 -> 53 bytes .../test_sign/test_data_set_0/output_0.pb | Bin 0 -> 53 bytes .../node/test_simple_rnn_batchwise/model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 77 bytes .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../node/test_simple_rnn_defaults/model.onnx | Bin 0 -> 194 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 227 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 49 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/input_3.pb | Bin 0 -> 51 bytes .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_sin/model.onnx | 13 + .../node/test_sin/test_data_set_0/input_0.pb | 1 + .../node/test_sin/test_data_set_0/output_0.pb | 1 + .../data/node/test_sin_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_sinh/model.onnx | 13 + .../node/test_sinh/test_data_set_0/input_0.pb | 1 + .../test_sinh/test_data_set_0/output_0.pb | 1 + .../data/node/test_sinh_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_size/model.onnx | Bin 0 -> 85 bytes .../node/test_size/test_data_set_0/input_0.pb | 1 + .../test_size/test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../data/node/test_size_example/model.onnx | Bin 0 -> 89 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 35 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 15 bytes .../test/data/node/test_slice/model.onnx | 36 + .../test_slice/test_data_set_0/input_0.pb | Bin 0 -> 4014 bytes .../test_slice/test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_slice/test_data_set_0/input_2.pb | Bin 0 -> 28 bytes .../test_slice/test_data_set_0/input_3.pb | Bin 0 -> 28 bytes .../test_slice/test_data_set_0/input_4.pb | Bin 0 -> 29 bytes .../test_slice/test_data_set_0/output_0.pb | 3 + .../node/test_slice_default_axes/model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 4014 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 36 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 814 bytes .../node/test_slice_default_steps/model.onnx | 30 + .../test_data_set_0/input_0.pb | Bin 0 -> 4014 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 36 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 36 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 814 bytes .../test_slice_end_out_of_bounds/model.onnx | 34 + .../test_data_set_0/input_0.pb | Bin 0 -> 4014 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 22 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 20 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 20 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 3614 bytes .../test/data/node/test_slice_neg/model.onnx | 34 + .../test_slice_neg/test_data_set_0/input_0.pb | Bin 0 -> 4014 bytes .../test_slice_neg/test_data_set_0/input_1.pb | Bin 0 -> 22 bytes .../test_slice_neg/test_data_set_0/input_2.pb | 1 + .../test_slice_neg/test_data_set_0/input_3.pb | Bin 0 -> 20 bytes .../test_slice_neg/test_data_set_0/input_4.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 3614 bytes .../data/node/test_slice_neg_steps/model.onnx | 34 + .../test_data_set_0/input_0.pb | Bin 0 -> 4014 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 36 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 36 bytes .../test_data_set_0/input_4.pb | 1 + .../test_data_set_0/output_0.pb | 3 + .../node/test_slice_negative_axes/model.onnx | 30 + .../test_data_set_0/input_0.pb | Bin 0 -> 4014 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 36 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 36 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 814 bytes .../test_slice_start_out_of_bounds/model.onnx | Bin 0 -> 230 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 4014 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 22 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 20 bytes .../test_data_set_0/input_3.pb | Bin 0 -> 20 bytes .../test_data_set_0/input_4.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 13 bytes .../data/node/test_softmax_axis_0/model.onnx | Bin 0 -> 123 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_softmax_axis_0_expanded/model.onnx | Bin 0 -> 834 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_softmax_axis_1/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_softmax_axis_1_expanded/model.onnx | 29 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../data/node/test_softmax_axis_2/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test_softmax_axis_2_expanded/model.onnx | 29 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_softmax_default_axis/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../model.onnx | 30 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_softmax_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_data_set_0/output_0.pb | 1 + .../test_softmax_example_expanded/model.onnx | 28 + .../test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_softmax_large_number/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 43 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 28 + .../test_data_set_0/input_0.pb | Bin 0 -> 43 bytes .../test_data_set_0/output_0.pb | 1 + .../test_softmax_negative_axis/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../model.onnx | 30 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test/data/node/test_softplus/model.onnx | 13 + .../test_softplus/test_data_set_0/input_0.pb | 1 + .../test_softplus/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_softplus_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_softsign/model.onnx | 13 + .../test_softsign/test_data_set_0/input_0.pb | 1 + .../test_softsign/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../node/test_softsign_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../data/node/test_spacetodepth/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 592 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 592 bytes .../node/test_spacetodepth_example/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 111 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 111 bytes .../node/test_split_equal_parts_1d/model.onnx | Bin 0 -> 202 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 24 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 24 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 24 bytes .../node/test_split_equal_parts_2d/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 63 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 42 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 42 bytes .../model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 24 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 24 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 24 bytes .../test_split_variable_parts_1d/model.onnx | Bin 0 -> 199 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 24 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 32 bytes .../test_split_variable_parts_2d/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 63 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 34 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 50 bytes .../model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 24 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 32 bytes .../test_split_zero_size_splits/model.onnx | Bin 0 -> 219 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 13 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 16 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 16 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 16 bytes .../test/data/node/test_sqrt/model.onnx | 13 + .../node/test_sqrt/test_data_set_0/input_0.pb | 1 + .../test_sqrt/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_sqrt_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_squeeze/model.onnx | 19 + .../test_squeeze/test_data_set_0/input_0.pb | 1 + .../test_squeeze/test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_squeeze/test_data_set_0/output_0.pb | 1 + .../test_squeeze_negative_axes/model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 9 bytes .../model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 12 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test/data/node/test_sub/model.onnx | 19 + .../node/test_sub/test_data_set_0/input_0.pb | 1 + .../node/test_sub/test_data_set_0/input_1.pb | 1 + .../node/test_sub/test_data_set_0/output_0.pb | 1 + .../test/data/node/test_sub_bcast/model.onnx | 18 + .../test_sub_bcast/test_data_set_0/input_0.pb | 1 + .../test_sub_bcast/test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_sub_example/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_sub_uint8/model.onnx | 19 + .../test_sub_uint8/test_data_set_0/input_0.pb | 1 + .../test_sub_uint8/test_data_set_0/input_1.pb | Bin 0 -> 73 bytes .../test_data_set_0/output_0.pb | 8 + .../data/node/test_sum_example/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_sum_one_input/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../data/node/test_sum_two_inputs/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 26 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 26 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 26 bytes .../test/data/node/test_tan/model.onnx | 13 + .../node/test_tan/test_data_set_0/input_0.pb | 1 + .../node/test_tan/test_data_set_0/output_0.pb | 1 + .../data/node/test_tan_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../test/data/node/test_tanh/model.onnx | 13 + .../node/test_tanh/test_data_set_0/input_0.pb | 1 + .../test_tanh/test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../data/node/test_tanh_example/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 21 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../model.onnx | Bin 0 -> 321 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 67 bytes .../model.onnx | Bin 0 -> 321 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 67 bytes .../model.onnx | Bin 0 -> 323 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 67 bytes .../model.onnx | Bin 0 -> 308 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 57 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 37 bytes .../model.onnx | Bin 0 -> 296 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 57 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 21 bytes .../model.onnx | Bin 0 -> 307 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 57 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 37 bytes .../model.onnx | Bin 0 -> 309 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 57 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 37 bytes .../data/node/test_thresholdedrelu/model.onnx | Bin 0 -> 136 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test_thresholdedrelu_default/model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test_thresholdedrelu_example/model.onnx | Bin 0 -> 128 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 29 bytes .../test/data/node/test_tile/model.onnx | 21 + .../node/test_tile/test_data_set_0/input_0.pb | 1 + .../node/test_tile/test_data_set_0/input_1.pb | Bin 0 -> 41 bytes .../test_tile/test_data_set_0/output_0.pb | 2 + .../node/test_tile_precomputed/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 27 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 25 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../test/data/node/test_top_k/model.onnx | 22 + .../test_top_k/test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_top_k/test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_top_k/test_data_set_0/output_0.pb | Bin 0 -> 52 bytes .../test_top_k/test_data_set_0/output_1.pb | Bin 0 -> 89 bytes .../node/test_top_k_negative_axis/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 52 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 89 bytes .../data/node/test_top_k_smallest/model.onnx | Bin 0 -> 210 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 59 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 17 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 52 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 89 bytes .../node/test_training_dropout/model.onnx | Bin 0 -> 158 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 11 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test_training_dropout_default/model.onnx | Bin 0 -> 166 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 11 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../model.onnx | Bin 0 -> 199 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 11 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 73 bytes .../test_training_dropout_mask/model.onnx | Bin 0 -> 191 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 11 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 254 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 73 bytes .../model.onnx | Bin 0 -> 169 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 11 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 202 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 11 bytes .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_data_set_0/output_1.pb | 1 + .../model.onnx | Bin 0 -> 168 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | Bin 0 -> 168 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | Bin 0 -> 168 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | Bin 0 -> 168 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | Bin 0 -> 168 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | Bin 0 -> 168 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../node/test_transpose_default/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../test/data/node/test_tril/model.onnx | Bin 0 -> 104 bytes .../node/test_tril/test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_tril/test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../test/data/node/test_tril_neg/model.onnx | Bin 0 -> 124 bytes .../test_tril_neg/test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_tril_neg/test_data_set_0/input_1.pb | 1 + .../test_tril_neg/test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../node/test_tril_one_row_neg/model.onnx | Bin 0 -> 124 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 133 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 133 bytes .../data/node/test_tril_out_neg/model.onnx | Bin 0 -> 128 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../data/node/test_tril_out_pos/model.onnx | Bin 0 -> 128 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../test/data/node/test_tril_pos/model.onnx | Bin 0 -> 124 bytes .../test_tril_pos/test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_tril_pos/test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_tril_pos/test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../data/node/test_tril_square/model.onnx | Bin 0 -> 119 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 158 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 158 bytes .../data/node/test_tril_square_neg/model.onnx | Bin 0 -> 139 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 158 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 158 bytes .../test/data/node/test_tril_zero/model.onnx | Bin 0 -> 133 bytes .../test_tril_zero/test_data_set_0/input_0.pb | Bin 0 -> 13 bytes .../test_tril_zero/test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 13 bytes .../test/data/node/test_triu/model.onnx | 11 + .../node/test_triu/test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_triu/test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../test/data/node/test_triu_neg/model.onnx | Bin 0 -> 110 bytes .../test_triu_neg/test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_triu_neg/test_data_set_0/input_1.pb | 1 + .../test_triu_neg/test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../data/node/test_triu_one_row/model.onnx | Bin 0 -> 122 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 133 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 133 bytes .../node/test_triu_out_neg_out/model.onnx | Bin 0 -> 118 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../data/node/test_triu_out_pos/model.onnx | Bin 0 -> 114 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../test/data/node/test_triu_pos/model.onnx | Bin 0 -> 110 bytes .../test_triu_pos/test_data_set_0/input_0.pb | Bin 0 -> 172 bytes .../test_triu_pos/test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_triu_pos/test_data_set_0/output_0.pb | Bin 0 -> 172 bytes .../data/node/test_triu_square/model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 158 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 158 bytes .../data/node/test_triu_square_neg/model.onnx | Bin 0 -> 125 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 158 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 158 bytes .../test/data/node/test_triu_zero/model.onnx | Bin 0 -> 111 bytes .../test_triu_zero/test_data_set_0/input_0.pb | Bin 0 -> 11 bytes .../test_triu_zero/test_data_set_0/input_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 11 bytes .../model.onnx | Bin 0 -> 235 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 47 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 71 bytes .../test_data_set_0/output_3.pb | Bin 0 -> 46 bytes .../test_unique_sorted_with_axis/model.onnx | Bin 0 -> 249 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 47 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 35 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 31 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 47 bytes .../test_data_set_0/output_3.pb | Bin 0 -> 30 bytes .../model.onnx | 27 + .../test_data_set_0/input_0.pb | Bin 0 -> 77 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 61 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 39 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 55 bytes .../test_data_set_0/output_3.pb | Bin 0 -> 38 bytes .../model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 47 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 35 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 31 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 47 bytes .../test_data_set_0/output_3.pb | Bin 0 -> 30 bytes .../model.onnx | 23 + .../test_data_set_0/input_0.pb | Bin 0 -> 33 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 47 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 71 bytes .../test_data_set_0/output_3.pb | Bin 0 -> 46 bytes .../node/test_unsqueeze_axis_0/model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_unsqueeze_axis_1/model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_unsqueeze_axis_2/model.onnx | 19 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_unsqueeze_axis_3/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_unsqueeze_negative_axes/model.onnx | 21 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../node/test_unsqueeze_three_axes/model.onnx | 21 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 36 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_unsqueeze_two_axes/model.onnx | 20 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 28 bytes .../test_data_set_0/output_0.pb | 1 + .../test_unsqueeze_unsorted_axes/model.onnx | 21 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | Bin 0 -> 36 bytes .../test_data_set_0/output_0.pb | 1 + .../node/test_upsample_nearest/model.onnx | Bin 0 -> 174 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 31 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 111 bytes .../data/node/test_where_example/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 27 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 27 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 27 bytes .../node/test_where_long_example/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 43 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 43 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 43 bytes .../test/data/node/test_xor2d/model.onnx | 17 + .../test_xor2d/test_data_set_0/input_0.pb | Bin 0 -> 23 bytes .../test_xor2d/test_data_set_0/input_1.pb | Bin 0 -> 23 bytes .../test_xor2d/test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../test/data/node/test_xor3d/model.onnx | 20 + .../test_xor3d/test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_xor3d/test_data_set_0/input_1.pb | Bin 0 -> 73 bytes .../test_xor3d/test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../test/data/node/test_xor4d/model.onnx | 23 + .../test_xor4d/test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../test_xor4d/test_data_set_0/input_1.pb | Bin 0 -> 376 bytes .../test_xor4d/test_data_set_0/output_0.pb | Bin 0 -> 378 bytes .../data/node/test_xor_bcast3v1d/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../data/node/test_xor_bcast3v2d/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 73 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 31 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 75 bytes .../data/node/test_xor_bcast4v2d/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 41 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 378 bytes .../data/node/test_xor_bcast4v3d/model.onnx | 21 + .../test_data_set_0/input_0.pb | Bin 0 -> 376 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 133 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 378 bytes .../data/node/test_xor_bcast4v4d/model.onnx | 22 + .../test_data_set_0/input_0.pb | Bin 0 -> 39 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 105 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 378 bytes .../test_AvgPool1d/model.onnx | Bin 0 -> 234 bytes .../test_AvgPool1d/test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../test_AvgPool1d_stride/model.onnx | Bin 0 -> 234 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 155 bytes .../test_data_set_0/output_0.pb | 1 + .../test_AvgPool2d/model.onnx | Bin 0 -> 180 bytes .../test_AvgPool2d/test_data_set_0/input_0.pb | Bin 0 -> 877 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 229 bytes .../test_AvgPool2d_stride/model.onnx | Bin 0 -> 180 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 877 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 229 bytes .../test_AvgPool3d/model.onnx | Bin 0 -> 196 bytes .../test_AvgPool3d/test_data_set_0/input_0.pb | Bin 0 -> 1551 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 207 bytes .../test_AvgPool3d_stride/model.onnx | Bin 0 -> 196 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 3015 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 196 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1551 bytes .../test_data_set_0/output_0.pb | 3 + .../test_BatchNorm1d_3d_input_eval/model.onnx | Bin 0 -> 378 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 251 bytes .../test_data_set_0/output_0.pb | 1 + .../test_BatchNorm2d_eval/model.onnx | Bin 0 -> 354 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 877 bytes .../test_data_set_0/output_0.pb | 3 + .../test_BatchNorm2d_momentum_eval/model.onnx | Bin 0 -> 354 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 877 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 877 bytes .../test_BatchNorm3d_eval/model.onnx | Bin 0 -> 362 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1551 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1551 bytes .../test_BatchNorm3d_momentum_eval/model.onnx | Bin 0 -> 362 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1551 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1551 bytes .../test_ConstantPad2d/model.onnx | Bin 0 -> 177 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 397 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1861 bytes .../pytorch-converted/test_Conv1d/model.onnx | Bin 0 -> 525 bytes .../test_Conv1d/test_data_set_0/input_0.pb | Bin 0 -> 331 bytes .../test_Conv1d/test_data_set_0/output_0.pb | Bin 0 -> 331 bytes .../test_Conv1d_dilated/model.onnx | Bin 0 -> 525 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 251 bytes .../test_Conv1d_groups/model.onnx | Bin 0 -> 433 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 203 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 203 bytes .../test_Conv1d_pad1/model.onnx | Bin 0 -> 525 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 331 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 411 bytes .../test_Conv1d_pad1size1/model.onnx | 31 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_Conv1d_pad2/model.onnx | Bin 0 -> 685 bytes .../test_data_set_0/input_0.pb | 4 + .../test_data_set_0/output_0.pb | Bin 0 -> 411 bytes .../test_Conv1d_pad2size1/model.onnx | Bin 0 -> 601 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_Conv1d_stride/model.onnx | Bin 0 -> 525 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 331 bytes .../test_data_set_0/output_0.pb | 1 + .../pytorch-converted/test_Conv2d/model.onnx | Bin 0 -> 593 bytes .../test_Conv2d/test_data_set_0/input_0.pb | Bin 0 -> 853 bytes .../test_Conv2d/test_data_set_0/output_0.pb | Bin 0 -> 653 bytes .../test_Conv2d_depthwise/model.onnx | Bin 0 -> 449 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1165 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 525 bytes .../test_Conv2d_depthwise_padded/model.onnx | Bin 0 -> 449 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1165 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1165 bytes .../test_Conv2d_depthwise_strided/model.onnx | Bin 0 -> 449 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1165 bytes .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 609 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1165 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1037 bytes .../test_Conv2d_dilated/model.onnx | Bin 0 -> 513 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1549 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 157 bytes .../test_Conv2d_groups/model.onnx | Bin 0 -> 601 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 973 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 781 bytes .../test_Conv2d_groups_thnn/model.onnx | Bin 0 -> 601 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 973 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 781 bytes .../test_Conv2d_no_bias/model.onnx | Bin 0 -> 546 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | Bin 0 -> 525 bytes .../test_Conv2d_padding/model.onnx | Bin 0 -> 737 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 877 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 301 bytes .../test_Conv2d_strided/model.onnx | Bin 0 -> 737 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 877 bytes .../test_data_set_0/output_0.pb | 3 + .../pytorch-converted/test_Conv3d/model.onnx | Bin 0 -> 1481 bytes .../test_Conv3d/test_data_set_0/input_0.pb | Bin 0 -> 1455 bytes .../test_Conv3d/test_data_set_0/output_0.pb | 1 + .../test_Conv3d_dilated/model.onnx | Bin 0 -> 713 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 3015 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 879 bytes .../test_Conv3d_dilated_strided/model.onnx | Bin 0 -> 713 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 3015 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 271 bytes .../test_Conv3d_groups/model.onnx | Bin 0 -> 1633 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2575 bytes .../test_data_set_0/output_0.pb | 1 + .../test_Conv3d_no_bias/model.onnx | Bin 0 -> 1434 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1455 bytes .../test_data_set_0/output_0.pb | 2 + .../test_Conv3d_stride/model.onnx | Bin 0 -> 713 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 3015 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 271 bytes .../test_Conv3d_stride_padding/model.onnx | Bin 0 -> 713 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 3015 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 879 bytes .../test_ConvTranspose2d/model.onnx | Bin 0 -> 772 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 517 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 3853 bytes .../test_ConvTranspose2d_no_bias/model.onnx | Bin 0 -> 725 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 517 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 3853 bytes .../pytorch-converted/test_ELU/model.onnx | Bin 0 -> 120 bytes .../test_ELU/test_data_set_0/input_0.pb | 1 + .../test_ELU/test_data_set_0/output_0.pb | 1 + .../test_Embedding/model.onnx | 17 + .../test_Embedding/test_data_set_0/input_0.pb | Bin 0 -> 40 bytes .../test_data_set_0/output_0.pb | 1 + .../test_Embedding_sparse/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 40 bytes .../test_data_set_0/output_0.pb | 1 + .../pytorch-converted/test_GLU/model.onnx | 17 + .../test_GLU/test_data_set_0/input_0.pb | Bin 0 -> 128 bytes .../test_GLU/test_data_set_0/output_0.pb | Bin 0 -> 68 bytes .../pytorch-converted/test_GLU_dim/model.onnx | 19 + .../test_GLU_dim/test_data_set_0/input_0.pb | Bin 0 -> 851 bytes .../test_GLU_dim/test_data_set_0/output_0.pb | Bin 0 -> 431 bytes .../test_LeakyReLU/model.onnx | 15 + .../test_LeakyReLU/test_data_set_0/input_0.pb | Bin 0 -> 130 bytes .../test_data_set_0/output_0.pb | 1 + .../test_LeakyReLU_with_negval/model.onnx | Bin 0 -> 126 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | 2 + .../pytorch-converted/test_Linear/model.onnx | Bin 0 -> 585 bytes .../test_Linear/test_data_set_0/input_0.pb | 3 + .../test_Linear/test_data_set_0/output_0.pb | Bin 0 -> 137 bytes .../test_Linear_no_bias/model.onnx | Bin 0 -> 492 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 169 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 137 bytes .../test_LogSoftmax/model.onnx | 15 + .../test_data_set_0/input_0.pb | Bin 0 -> 809 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 809 bytes .../test_MaxPool1d/model.onnx | Bin 0 -> 160 bytes .../test_MaxPool1d/test_data_set_0/input_0.pb | Bin 0 -> 331 bytes .../test_data_set_0/output_0.pb | 3 + .../test_MaxPool1d_stride/model.onnx | Bin 0 -> 160 bytes .../test_data_set_0/input_0.pb | 4 + .../test_data_set_0/output_0.pb | 2 + .../model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 880014 bytes .../test_data_set_0/output_0.pb | 154 + .../test_MaxPool2d/model.onnx | 18 + .../test_MaxPool2d/test_data_set_0/input_0.pb | Bin 0 -> 601 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 205 bytes .../model.onnx | 25 + .../test_data_set_0/input_0.pb | Bin 0 -> 4000017 bytes .../test_data_set_0/output_0.pb | 1 + .../test_MaxPool3d/model.onnx | Bin 0 -> 192 bytes .../test_MaxPool3d/test_data_set_0/input_0.pb | Bin 0 -> 3015 bytes .../test_data_set_0/output_0.pb | 1 + .../test_MaxPool3d_stride/model.onnx | Bin 0 -> 192 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 3015 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 207 bytes .../test_MaxPool3d_stride_padding/model.onnx | 20 + .../test_data_set_0/input_0.pb | Bin 0 -> 3015 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 663 bytes .../test_PReLU_1d/model.onnx | Bin 0 -> 140 bytes .../test_PReLU_1d/test_data_set_0/input_0.pb | Bin 0 -> 106 bytes .../test_PReLU_1d/test_data_set_0/output_0.pb | Bin 0 -> 106 bytes .../test_PReLU_1d_multiparam/model.onnx | Bin 0 -> 148 bytes .../test_data_set_0/input_0.pb | 2 + .../test_data_set_0/output_0.pb | 2 + .../test_PReLU_2d/model.onnx | Bin 0 -> 148 bytes .../test_PReLU_2d/test_data_set_0/input_0.pb | 3 + .../test_PReLU_2d/test_data_set_0/output_0.pb | 3 + .../test_PReLU_2d_multiparam/model.onnx | Bin 0 -> 157 bytes .../test_data_set_0/input_0.pb | 3 + .../test_data_set_0/output_0.pb | 3 + .../test_PReLU_3d/model.onnx | Bin 0 -> 157 bytes .../test_PReLU_3d/test_data_set_0/input_0.pb | Bin 0 -> 2895 bytes .../test_PReLU_3d/test_data_set_0/output_0.pb | Bin 0 -> 2895 bytes .../test_PReLU_3d_multiparam/model.onnx | Bin 0 -> 165 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2895 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 2895 bytes .../test_PixelShuffle/model.onnx | Bin 0 -> 331 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 589 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 589 bytes .../test_PoissonNLLLLoss_no_reduce/model.onnx | Bin 0 -> 569 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 409 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 409 bytes .../pytorch-converted/test_ReLU/model.onnx | 15 + .../test_ReLU/test_data_set_0/input_0.pb | Bin 0 -> 493 bytes .../test_ReLU/test_data_set_0/output_0.pb | Bin 0 -> 493 bytes .../test_ReflectionPad2d/model.onnx | Bin 0 -> 159 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 1549 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 3973 bytes .../test_ReplicationPad2d/model.onnx | Bin 0 -> 156 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 397 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1861 bytes .../pytorch-converted/test_SELU/model.onnx | 13 + .../test_SELU/test_data_set_0/input_0.pb | Bin 0 -> 130 bytes .../test_SELU/test_data_set_0/output_0.pb | 1 + .../pytorch-converted/test_Sigmoid/model.onnx | 15 + .../test_Sigmoid/test_data_set_0/input_0.pb | Bin 0 -> 493 bytes .../test_Sigmoid/test_data_set_0/output_0.pb | 4 + .../pytorch-converted/test_Softmax/model.onnx | 14 + .../test_Softmax/test_data_set_0/input_0.pb | Bin 0 -> 809 bytes .../test_Softmax/test_data_set_0/output_0.pb | Bin 0 -> 809 bytes .../pytorch-converted/test_Softmin/model.onnx | 16 + .../test_Softmin/test_data_set_0/input_0.pb | Bin 0 -> 809 bytes .../test_Softmin/test_data_set_0/output_0.pb | Bin 0 -> 809 bytes .../test_Softplus/model.onnx | 13 + .../test_Softplus/test_data_set_0/input_0.pb | Bin 0 -> 809 bytes .../test_Softplus/test_data_set_0/output_0.pb | Bin 0 -> 809 bytes .../test_Softsign/model.onnx | Bin 0 -> 191 bytes .../test_Softsign/test_data_set_0/input_0.pb | Bin 0 -> 130 bytes .../test_Softsign/test_data_set_0/output_0.pb | 2 + .../pytorch-converted/test_Tanh/model.onnx | 15 + .../test_Tanh/test_data_set_0/input_0.pb | Bin 0 -> 493 bytes .../test_Tanh/test_data_set_0/output_0.pb | Bin 0 -> 493 bytes .../test_ZeroPad2d/model.onnx | Bin 0 -> 177 bytes .../test_ZeroPad2d/test_data_set_0/input_0.pb | Bin 0 -> 397 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1861 bytes .../test_log_softmax_dim3/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 493 bytes .../test_data_set_0/output_0.pb | 3 + .../test_log_softmax_lastdim/model.onnx | 13 + .../test_data_set_0/input_0.pb | Bin 0 -> 1034 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1034 bytes .../test_softmax_functional_dim3/model.onnx | 16 + .../test_data_set_0/input_0.pb | 4 + .../test_data_set_0/output_0.pb | Bin 0 -> 493 bytes .../test_softmax_lastdim/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 1034 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 1034 bytes .../test_operator_add_broadcast/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 56 bytes .../model.onnx | Bin 0 -> 151 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 24 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 56 bytes .../model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 30 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 56 bytes .../model.onnx | Bin 0 -> 151 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 32 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 56 bytes .../test_operator_addconstant/model.onnx | Bin 0 -> 158 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 56 bytes .../test_operator_addmm/model.onnx | Bin 0 -> 245 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 32 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/input_2.pb | 1 + .../test_data_set_0/output_0.pb | 2 + .../test_operator_basic/model.onnx | 25 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_operator_chunk/model.onnx | Bin 0 -> 138 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 18 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 14 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 10 bytes .../test_operator_clip/model.onnx | Bin 0 -> 126 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 56 bytes .../test_operator_concat2/model.onnx | 17 + .../test_data_set_0/input_0.pb | Bin 0 -> 32 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 56 bytes .../test_operator_conv/model.onnx | Bin 0 -> 7746 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 2560015 bytes .../test_data_set_0/output_0.pb | 1 + .../test_operator_convtranspose/model.onnx | Bin 0 -> 617 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 493 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 4333 bytes .../test_operator_exp/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/output_0.pb | 3 + .../test_operator_flatten/model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_operator_index/model.onnx | Bin 0 -> 165 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 12 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 10 bytes .../test_operator_max/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_operator_maxpool/model.onnx | Bin 0 -> 160 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 64012 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 30732 bytes .../test_operator_min/model.onnx | 16 + .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 56 bytes .../test_operator_mm/model.onnx | Bin 0 -> 214 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 32 bytes .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_operator_non_float_params/model.onnx | Bin 0 -> 181 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 40 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 40 bytes .../test_operator_pad/model.onnx | Bin 0 -> 159 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 44 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 120 bytes .../test_operator_params/model.onnx | Bin 0 -> 209 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 24 bytes .../test_data_set_0/output_0.pb | 1 + .../test_operator_permute2/model.onnx | Bin 0 -> 157 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 20 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 20 bytes .../test_operator_pow/model.onnx | 22 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/input_1.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 108 bytes .../test_operator_reduced_mean/model.onnx | Bin 0 -> 144 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 18 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_operator_reduced_sum/model.onnx | Bin 0 -> 143 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 3 + .../model.onnx | 17 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 3 + .../test_operator_repeat/model.onnx | Bin 0 -> 183 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 262 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_operator_selu/model.onnx | 15 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../test_operator_sqrt/model.onnx | 11 + .../test_data_set_0/input_0.pb | Bin 0 -> 56 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 56 bytes .../model.onnx | Bin 0 -> 291 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 81934 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 81934 bytes .../model.onnx | 33 + .../test_data_set_0/input_0.pb | Bin 0 -> 10 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 10 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 10 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 10 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 10 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 10 bytes .../test_operator_view/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 10 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 12 bytes .../data/real/test_bvlc_alexnet/data.json | 1 + .../test/data/real/test_densenet121/data.json | 1 + .../data/real/test_inception_v1/data.json | 1 + .../data/real/test_inception_v2/data.json | 1 + .../test/data/real/test_resnet50/data.json | 1 + .../test/data/real/test_shufflenet/data.json | 1 + .../test/data/real/test_squeezenet/data.json | 1 + .../test/data/real/test_vgg19/data.json | 1 + .../test/data/real/test_zfnet512/data.json | 1 + .../test_expand_shape_model1/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 25 bytes .../test_expand_shape_model2/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 29 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 49 bytes .../test_expand_shape_model3/model.onnx | 18 + .../test_data_set_0/input_0.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 121 bytes .../test_expand_shape_model4/model.onnx | 19 + .../test_data_set_0/input_0.pb | Bin 0 -> 25 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 45 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 340 bytes .../simple/test_gradient_of_add/model.onnx | Bin 0 -> 264 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 11 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 11 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 11 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 15 bytes .../test_gradient_of_add_and_mul/model.onnx | Bin 0 -> 297 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 11 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 11 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 11 bytes .../test_data_set_0/output_1.pb | Bin 0 -> 15 bytes .../test_data_set_0/output_2.pb | Bin 0 -> 15 bytes .../simple/test_sequence_model1/model.onnx | Bin 0 -> 369 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 109 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 61 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 158 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 63 bytes .../simple/test_sequence_model2/model.onnx | Bin 0 -> 320 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 109 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 109 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 109 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 111 bytes .../simple/test_sequence_model3/model.onnx | Bin 0 -> 435 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 109 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 109 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 109 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 111 bytes .../simple/test_sequence_model4/model.onnx | Bin 0 -> 217 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 109 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 109 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 109 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 304 bytes .../simple/test_sequence_model5/model.onnx | 30 + .../test_data_set_0/input_0.pb | Bin 0 -> 109 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 109 bytes .../test_data_set_0/input_2.pb | Bin 0 -> 109 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 306 bytes .../simple/test_sequence_model6/model.onnx | Bin 0 -> 154 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 109 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../simple/test_sequence_model7/model.onnx | Bin 0 -> 207 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../simple/test_sequence_model8/model.onnx | Bin 0 -> 155 bytes .../test_data_set_0/input_0.pb | Bin 0 -> 9 bytes .../test_data_set_0/input_1.pb | Bin 0 -> 38 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 17 bytes .../test/data/simple/test_shrink/model.onnx | Bin 0 -> 113 bytes .../test_shrink/test_data_set_0/input_0.pb | Bin 0 -> 29 bytes .../test_shrink/test_data_set_0/output_0.pb | Bin 0 -> 29 bytes .../data/simple/test_sign_model/model.onnx | 12 + .../test_data_set_0/input_0.pb | Bin 0 -> 37 bytes .../test_data_set_0/output_0.pb | Bin 0 -> 37 bytes .../simple/test_single_relu_model/model.onnx | 12 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 14 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | Bin 0 -> 183 bytes .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | Bin 0 -> 9 bytes .../model.onnx | 13 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../model.onnx | 12 + .../test_data_set_0/input_0.pb | 1 + .../test_data_set_0/output_0.pb | 1 + .../onnx/onnx/backend/test/loader/__init__.py | 60 + .../onnx/onnx/backend/test/report/__init__.py | 41 + .../onnx/onnx/backend/test/report/base.py | 5 + .../onnx/onnx/backend/test/report/coverage.py | 250 + .../onnx/onnx/backend/test/runner/__init__.py | 338 + .../onnx/onnx/backend/test/runner/item.py | 14 + .../onnx/onnx/backend/test/stat_coverage.py | 249 + third_party/onnx/onnx/bin/__init__.py | 1 + third_party/onnx/onnx/bin/checker.py | 24 + third_party/onnx/onnx/checker.cc | 957 + third_party/onnx/onnx/checker.h | 151 + third_party/onnx/onnx/checker.py | 111 + third_party/onnx/onnx/common/array_ref.h | 188 + third_party/onnx/onnx/common/assertions.cc | 34 + third_party/onnx/onnx/common/assertions.h | 84 + third_party/onnx/onnx/common/common.h | 34 + third_party/onnx/onnx/common/constants.h | 35 + third_party/onnx/onnx/common/file_utils.h | 26 + .../onnx/onnx/common/graph_node_list.h | 166 + .../onnx/onnx/common/interned_strings.cc | 78 + .../onnx/onnx/common/interned_strings.h | 233 + third_party/onnx/onnx/common/ir.h | 1417 + .../onnx/onnx/common/ir_pb_converter.cc | 699 + .../onnx/onnx/common/ir_pb_converter.h | 47 + third_party/onnx/onnx/common/model_helpers.cc | 40 + third_party/onnx/onnx/common/model_helpers.h | 26 + third_party/onnx/onnx/common/path.cc | 19 + third_party/onnx/onnx/common/path.h | 22 + .../onnx/onnx/common/platform_helpers.h | 18 + third_party/onnx/onnx/common/status.cc | 86 + third_party/onnx/onnx/common/status.h | 95 + third_party/onnx/onnx/common/stl_backports.h | 69 + third_party/onnx/onnx/common/tensor.h | 419 + third_party/onnx/onnx/common/version.h | 13 + third_party/onnx/onnx/compose.py | 638 + third_party/onnx/onnx/cpp2py_export.cc | 352 + third_party/onnx/onnx/defs/__init__.py | 50 + third_party/onnx/onnx/defs/attr_proto_util.cc | 72 + third_party/onnx/onnx/defs/attr_proto_util.h | 59 + .../onnx/onnx/defs/controlflow/defs.cc | 842 + third_party/onnx/onnx/defs/controlflow/old.cc | 2183 ++ third_party/onnx/onnx/defs/data_propagators.h | 52 + third_party/onnx/onnx/defs/data_type_utils.cc | 470 + third_party/onnx/onnx/defs/data_type_utils.h | 72 + third_party/onnx/onnx/defs/function.cc | 172 + third_party/onnx/onnx/defs/function.h | 195 + third_party/onnx/onnx/defs/gen_doc.py | 377 + .../defs/gen_shape_inference_information.py | 24 + third_party/onnx/onnx/defs/generator/defs.cc | 859 + third_party/onnx/onnx/defs/generator/old.cc | 305 + third_party/onnx/onnx/defs/logical/defs.cc | 317 + third_party/onnx/onnx/defs/logical/old.cc | 336 + third_party/onnx/onnx/defs/math/defs.cc | 3395 ++ third_party/onnx/onnx/defs/math/old.cc | 3609 +++ third_party/onnx/onnx/defs/nn/defs.cc | 2686 ++ third_party/onnx/onnx/defs/nn/old.cc | 2440 ++ .../onnx/onnx/defs/object_detection/defs.cc | 220 + .../onnx/onnx/defs/object_detection/old.cc | 195 + third_party/onnx/onnx/defs/operator_sets.h | 1087 + third_party/onnx/onnx/defs/operator_sets_ml.h | 100 + .../onnx/onnx/defs/operator_sets_preview.h | 38 + .../onnx/onnx/defs/operator_sets_training.h | 26 + third_party/onnx/onnx/defs/optional/defs.cc | 139 + third_party/onnx/onnx/defs/parser.cc | 582 + third_party/onnx/onnx/defs/parser.h | 464 + third_party/onnx/onnx/defs/printer.cc | 257 + third_party/onnx/onnx/defs/printer.h | 41 + .../onnx/onnx/defs/quantization/defs.cc | 204 + .../onnx/onnx/defs/quantization/old.cc | 111 + third_party/onnx/onnx/defs/reduction/defs.cc | 321 + third_party/onnx/onnx/defs/reduction/old.cc | 547 + third_party/onnx/onnx/defs/rnn/defs.cc | 614 + third_party/onnx/onnx/defs/rnn/old.cc | 1215 + third_party/onnx/onnx/defs/schema.cc | 956 + third_party/onnx/onnx/defs/schema.h | 1401 + third_party/onnx/onnx/defs/sequence/defs.cc | 952 + third_party/onnx/onnx/defs/shape_inference.cc | 471 + third_party/onnx/onnx/defs/shape_inference.h | 800 + third_party/onnx/onnx/defs/tensor/defs.cc | 3915 +++ third_party/onnx/onnx/defs/tensor/old.cc | 4514 +++ third_party/onnx/onnx/defs/tensor/utils.cc | 172 + third_party/onnx/onnx/defs/tensor/utils.h | 34 + .../onnx/onnx/defs/tensor_proto_util.cc | 126 + .../onnx/onnx/defs/tensor_proto_util.h | 21 + third_party/onnx/onnx/defs/tensor_util.cc | 58 + third_party/onnx/onnx/defs/tensor_util.h | 15 + .../onnx/onnx/defs/traditionalml/defs.cc | 1268 + .../onnx/onnx/defs/traditionalml/old.cc | 310 + third_party/onnx/onnx/defs/training/defs.cc | 667 + .../onnx/onnx/examples/Protobufs.ipynb | 543 + .../onnx/onnx/examples/check_model.ipynb | 120 + .../onnx/onnx/examples/load_model.ipynb | 94 + .../onnx/onnx/examples/make_model.ipynb | 154 + .../onnx/examples/np_array_tensorproto.ipynb | 136 + .../onnx/examples/resources/single_relu.onnx | 12 + .../examples/resources/single_relu_new.onnx | 12 + .../onnx/onnx/examples/resources/tensor.pb | Bin 0 -> 56 bytes .../examples/resources/two_transposes.onnx | Bin 0 -> 162 bytes .../onnx/onnx/examples/save_model.ipynb | 56 + .../onnx/onnx/examples/shape_inference.ipynb | 103 + third_party/onnx/onnx/external_data_helper.py | 287 + third_party/onnx/onnx/frontend/__init__.py | 1 + third_party/onnx/onnx/gen_proto.py | 232 + third_party/onnx/onnx/helper.py | 1015 + third_party/onnx/onnx/hub.py | 259 + third_party/onnx/onnx/mapping.py | 76 + third_party/onnx/onnx/numpy_helper.py | 362 + third_party/onnx/onnx/onnx-data.in.proto | 150 + third_party/onnx/onnx/onnx-data.proto | 155 + third_party/onnx/onnx/onnx-data.proto3 | 155 + third_party/onnx/onnx/onnx-data_pb.h | 9 + third_party/onnx/onnx/onnx-ml.proto | 834 + third_party/onnx/onnx/onnx-ml.proto3 | 834 + third_party/onnx/onnx/onnx-operators-ml.proto | 136 + .../onnx/onnx/onnx-operators-ml.proto3 | 136 + third_party/onnx/onnx/onnx-operators.in.proto | 131 + third_party/onnx/onnx/onnx-operators.proto | 136 + third_party/onnx/onnx/onnx-operators.proto3 | 136 + third_party/onnx/onnx/onnx-operators_pb.h | 13 + third_party/onnx/onnx/onnx.in.proto | 831 + third_party/onnx/onnx/onnx.proto | 818 + third_party/onnx/onnx/onnx.proto3 | 818 + .../onnx/onnx/onnx_cpp2py_export/__init__.pyi | 5 + .../onnx/onnx/onnx_cpp2py_export/checker.pyi | 20 + .../onnx/onnx/onnx_cpp2py_export/defs.pyi | 131 + .../onnx/onnx/onnx_cpp2py_export/parser.pyi | 9 + .../onnx_cpp2py_export/shape_inference.pyi | 9 + .../onnx_cpp2py_export/version_converter.pyi | 7 + third_party/onnx/onnx/onnx_pb.h | 57 + third_party/onnx/onnx/onnxifi.h | 2007 ++ third_party/onnx/onnx/onnxifi_dummy.c | 200 + third_party/onnx/onnx/onnxifi_ext.h | 230 + third_party/onnx/onnx/onnxifi_loader.c | 216 + third_party/onnx/onnx/onnxifi_loader.h | 113 + third_party/onnx/onnx/onnxifi_utils.cc | 27 + third_party/onnx/onnx/onnxifi_utils.h | 19 + third_party/onnx/onnx/onnxifi_wrapper.c | 987 + third_party/onnx/onnx/parser.py | 40 + third_party/onnx/onnx/proto_utils.h | 64 + third_party/onnx/onnx/py_utils.h | 22 + third_party/onnx/onnx/shape_inference.py | 63 + .../onnx/shape_inference/implementation.cc | 837 + .../onnx/shape_inference/implementation.h | 495 + third_party/onnx/onnx/string_utils.h | 62 + third_party/onnx/onnx/test/__init__.pyi | 2 + .../onnx/onnx/test/automatic_upgrade_test.py | 1097 + third_party/onnx/onnx/test/basic_test.py | 112 + third_party/onnx/onnx/test/checker_test.py | 783 + third_party/onnx/onnx/test/compose_test.py | 799 + .../onnx/test/cpp/data_propagation_test.cc | 399 + .../onnx/test/cpp/function_context_test.cc | 183 + .../onnx/onnx/test/cpp/function_get_test.cc | 22 + .../onnx/test/cpp/function_verify_test.cc | 359 + .../onnx/test/cpp/onnxifi_backend_test.cc | 116 + third_party/onnx/onnx/test/cpp/op_reg_test.cc | 25 + third_party/onnx/onnx/test/cpp/parser_test.cc | 460 + .../onnx/test/cpp/schema_registration_test.cc | 43 + .../onnx/test/cpp/shape_inference_test.cc | 620 + third_party/onnx/onnx/test/cpp/test_main.cc | 13 + third_party/onnx/onnx/test/elu_test.py | 17 + third_party/onnx/onnx/test/function_test.py | 167 + third_party/onnx/onnx/test/helper_test.py | 608 + third_party/onnx/onnx/test/hub_test.py | 83 + .../onnx/onnx/test/numpy_helper_test.py | 76 + third_party/onnx/onnx/test/parser_test.py | 68 + third_party/onnx/onnx/test/relu_test.py | 16 + third_party/onnx/onnx/test/schema_test.py | 23 + .../onnx/onnx/test/shape_inference_test.py | 4180 +++ .../onnx/onnx/test/symbolic_shape_test.py | 153 + .../onnx/onnx/test/test_backend_test.py | 102 + .../onnx/onnx/test/test_external_data.py | 496 + third_party/onnx/onnx/test/test_with_ort.py | 34 + third_party/onnx/onnx/test/tools_test.py | 43 + .../onnx/onnx/test/training_tool_test.py | 103 + third_party/onnx/onnx/test/utils_test.py | 62 + .../onnx/onnx/test/version_converter_test.py | 1555 + third_party/onnx/onnx/tools/__init__.py | 1 + third_party/onnx/onnx/tools/net_drawer.py | 146 + .../onnx/onnx/tools/update_model_dims.py | 79 + third_party/onnx/onnx/utils.py | 196 + third_party/onnx/onnx/version_converter.py | 170 + .../onnx/version_converter/BaseConverter.h | 88 + .../onnx/version_converter/adapters/adapter.h | 65 + .../adapters/axes_attribute_to_input.h | 50 + .../adapters/axes_input_to_attribute.h | 74 + .../adapters/batch_normalization_13_14.h | 29 + .../broadcast_backward_compatibility.h | 48 + .../broadcast_forward_compatibility.h | 78 + .../version_converter/adapters/cast_9_8.h | 29 + .../version_converter/adapters/clip_10_11.h | 50 + .../version_converter/adapters/compatible.h | 23 + .../adapters/dropout_11_12.h | 42 + .../adapters/extend_supported_types.h | 107 + .../version_converter/adapters/gemm_6_7.h | 48 + .../version_converter/adapters/gemm_7_6.h | 53 + .../version_converter/adapters/maxpool_8_7.h | 31 + .../adapters/no_previous_version.h | 26 + .../version_converter/adapters/pad_10_11.h | 48 + .../adapters/remove_consumed_inputs.h | 24 + .../version_converter/adapters/reshape_4_5.h | 44 + .../version_converter/adapters/reshape_5_4.h | 69 + .../version_converter/adapters/resize_10_11.h | 44 + .../version_converter/adapters/scan_8_9.h | 62 + .../version_converter/adapters/scan_9_8.h | 88 + .../adapters/scatter_10_11.h | 38 + .../version_converter/adapters/slice_9_10.h | 51 + .../adapters/softmax_12_13.h | 89 + .../version_converter/adapters/split_12_13.h | 45 + .../version_converter/adapters/split_13_12.h | 70 + .../onnx/version_converter/adapters/sum_8_7.h | 34 + .../version_converter/adapters/topk_9_10.h | 37 + .../version_converter/adapters/transformers.h | 79 + .../adapters/type_restriction.h | 47 + .../version_converter/adapters/upsample_6_7.h | 40 + .../version_converter/adapters/upsample_8_9.h | 44 + .../adapters/upsample_9_10.h | 37 + .../version_converter/adapters/upsample_9_8.h | 81 + .../onnx/onnx/version_converter/convert.cc | 137 + .../onnx/onnx/version_converter/convert.h | 754 + .../onnx/onnx/version_converter/helper.cc | 70 + .../onnx/onnx/version_converter/helper.h | 22 + third_party/onnx/requirements-dev.txt | 11 + third_party/onnx/requirements-release.txt | 8 + third_party/onnx/requirements.txt | 3 + third_party/onnx/setup.cfg | 69 + third_party/onnx/setup.py | 357 + third_party/onnx/tools/__init__.pyi | 2 + third_party/onnx/tools/gen_coverage_report.py | 81 + third_party/onnx/tools/mypy-onnx.py | 23 + third_party/onnx/tools/protobuf-bench.cc | 150 + third_party/onnx/tools/protoc-gen-mypy.bat | 4 + third_party/onnx/tools/protoc-gen-mypy.py | 342 + third_party/onnx/tools/protoc-gen-mypy.sh.in | 4 + third_party/onnx/tools/style.sh | 25 + third_party/onnx/tools/update_doc.bat | 20 + third_party/onnx/tools/update_doc.sh | 34 + third_party/onnx/workflow_scripts/config.py | 15 + .../test_generated_backend.py | 36 + .../onnx/workflow_scripts/test_model_zoo.py | 102 + third_party/optimizer/.clang-format | 7 + third_party/optimizer/.gitignore | 84 + third_party/optimizer/CMakeLists.txt | 152 + third_party/optimizer/LICENSE | 202 + third_party/optimizer/MANIFEST.in | 7 + third_party/optimizer/README.md | 55 + third_party/optimizer/VERSION_NUMBER | 1 + .../cmake/ONNXOptimizerConfig.cmake.in | 24 + .../cmake/ONNXOptimizerConfigVersion.cmake.in | 12 + .../examples/onnx_optimizer_exec.cpp | 31 + .../optimizer/onnxoptimizer/__init__.py | 55 + .../optimizer/onnxoptimizer/cpp2py_export.cc | 42 + .../optimizer/onnxoptimizer/optimize.cc | 52 + .../optimizer/onnxoptimizer/optimize.h | 97 + third_party/optimizer/onnxoptimizer/pass.cc | 108 + third_party/optimizer/onnxoptimizer/pass.h | 259 + .../optimizer/onnxoptimizer/pass_manager.cc | 51 + .../optimizer/onnxoptimizer/pass_manager.h | 54 + .../optimizer/onnxoptimizer/pass_registry.cc | 33 + .../optimizer/onnxoptimizer/pass_registry.h | 103 + .../onnxoptimizer/passes/eliminate_deadend.h | 40 + .../passes/eliminate_duplicate_initializer.h | 154 + .../onnxoptimizer/passes/eliminate_identity.h | 40 + .../passes/eliminate_if_with_const_cond.h | 111 + .../onnxoptimizer/passes/eliminate_nop_cast.h | 42 + .../passes/eliminate_nop_dropout.h | 48 + .../passes/eliminate_nop_flatten.h | 59 + .../passes/eliminate_nop_monotone_argmax.h | 72 + .../onnxoptimizer/passes/eliminate_nop_pad.h | 80 + .../passes/eliminate_nop_transpose.h | 49 + .../passes/eliminate_unused_initializer.h | 80 + .../passes/extract_constant_to_initializer.h | 62 + .../passes/fuse_add_bias_into_conv.h | 184 + .../onnxoptimizer/passes/fuse_bn_into_conv.h | 191 + .../passes/fuse_consecutive_concats.h | 78 + .../passes/fuse_consecutive_log_softmax.h | 53 + .../fuse_consecutive_reduce_unsqueeze.h | 113 + .../passes/fuse_consecutive_squeezes.h | 141 + .../passes/fuse_consecutive_transposes.h | 79 + .../passes/fuse_matmul_add_bias_into_gemm.h | 110 + .../onnxoptimizer/passes/fuse_pad_into_conv.h | 179 + .../passes/fuse_transpose_into_gemm.h | 48 + .../passes/lift_lexical_references.h | 233 + .../optimizer/onnxoptimizer/passes/nop.h | 28 + .../optimizer/onnxoptimizer/passes/split.h | 235 + .../onnxoptimizer/test/optimizer_test.py | 2397 ++ third_party/optimizer/setup.cfg | 75 + third_party/optimizer/setup.py | 334 + third_party/optimizer/tools/mypy-onnx.py | 25 + 5052 files changed, 222092 insertions(+), 32 deletions(-) create mode 100644 cmake/build_paddle2onnx.cmake create mode 100644 cmake/build_tools.cmake delete mode 100644 cmake/patchelf.cmake create mode 100644 paddle2onnx/CMakeLists.txt create mode 100755 paddle2onnx/__init__.py create mode 100755 paddle2onnx/command.py create mode 100755 paddle2onnx/convert.py create mode 100755 paddle2onnx/convert_to_fp16.py create mode 100644 paddle2onnx/converter.cc create mode 100755 paddle2onnx/converter.h create mode 100644 paddle2onnx/cpp2py_export.cc create mode 100755 paddle2onnx/legacy/__init__.py create mode 100755 paddle2onnx/legacy/command.py create mode 100644 paddle2onnx/legacy/constant/__init__.py create mode 100644 paddle2onnx/legacy/constant/constant.py create mode 100644 paddle2onnx/legacy/constant/dtypes.py create mode 100644 paddle2onnx/legacy/constant/op_mapping_status.py create mode 100755 paddle2onnx/legacy/convert.py create mode 100644 paddle2onnx/legacy/graph/__init__.py create mode 100755 paddle2onnx/legacy/graph/dygraph_helper.py create mode 100755 paddle2onnx/legacy/graph/graph.py create mode 100644 paddle2onnx/legacy/graph/graph_helper.py create mode 100755 paddle2onnx/legacy/graph/onnx_graph.py create mode 100755 paddle2onnx/legacy/graph/paddle_graph.py create mode 100644 paddle2onnx/legacy/op_mapper/__init__.py create mode 100755 paddle2onnx/legacy/op_mapper/activation.py create mode 100644 paddle2onnx/legacy/op_mapper/custom_paddle_op/__init__.py create mode 100755 paddle2onnx/legacy/op_mapper/custom_paddle_op/anchor_generator.py create mode 100755 paddle2onnx/legacy/op_mapper/custom_paddle_op/box_clip.py create mode 100755 paddle2onnx/legacy/op_mapper/custom_paddle_op/collect_fpn_proposals.py create mode 100755 paddle2onnx/legacy/op_mapper/custom_paddle_op/deformable_conv.py create mode 100755 paddle2onnx/legacy/op_mapper/custom_paddle_op/distribute_fpn_proposals.py create mode 100755 paddle2onnx/legacy/op_mapper/custom_paddle_op/generate_proposals.py create mode 100755 paddle2onnx/legacy/op_mapper/custom_paddle_op/grid_sampler.py create mode 100644 paddle2onnx/legacy/op_mapper/detection/__init__.py create mode 100755 paddle2onnx/legacy/op_mapper/detection/box_coder.py create mode 100644 paddle2onnx/legacy/op_mapper/detection/density_prior_box.py create mode 100755 paddle2onnx/legacy/op_mapper/detection/multiclass_nms.py create mode 100644 paddle2onnx/legacy/op_mapper/detection/prior_box.py create mode 100755 paddle2onnx/legacy/op_mapper/detection/yolo_box.py create mode 100755 paddle2onnx/legacy/op_mapper/logic.py create mode 100755 paddle2onnx/legacy/op_mapper/mapper_helper.py create mode 100755 paddle2onnx/legacy/op_mapper/math.py create mode 100755 paddle2onnx/legacy/op_mapper/nn.py create mode 100755 paddle2onnx/legacy/op_mapper/op_mapper.py create mode 100755 paddle2onnx/legacy/op_mapper/search.py create mode 100644 paddle2onnx/legacy/op_mapper/sequence/__init__.py create mode 100644 paddle2onnx/legacy/op_mapper/sequence/im2sequence.py create mode 100755 paddle2onnx/legacy/op_mapper/tensor.py create mode 100755 paddle2onnx/legacy/passes/__init__.py create mode 100755 paddle2onnx/legacy/passes/dumplicate_names_pass.py create mode 100755 paddle2onnx/legacy/passes/inplace_node_pass.py create mode 100644 paddle2onnx/legacy/passes/pass_manager.py create mode 100644 paddle2onnx/mapper/activation.cc create mode 100644 paddle2onnx/mapper/activation.h create mode 100644 paddle2onnx/mapper/data_helper.h create mode 100644 paddle2onnx/mapper/detection/multiclass_nms.cc create mode 100644 paddle2onnx/mapper/detection/multiclass_nms.h create mode 100755 paddle2onnx/mapper/detection/roi_align.cc create mode 100755 paddle2onnx/mapper/detection/roi_align.h create mode 100644 paddle2onnx/mapper/detection/yolo_box.cc create mode 100644 paddle2onnx/mapper/detection/yolo_box.h create mode 100644 paddle2onnx/mapper/elementwise.cc create mode 100644 paddle2onnx/mapper/elementwise.h create mode 100644 paddle2onnx/mapper/exporter.cc create mode 100755 paddle2onnx/mapper/exporter.h create mode 100644 paddle2onnx/mapper/loop.cc create mode 100755 paddle2onnx/mapper/mapper.h create mode 100644 paddle2onnx/mapper/nn/affine_channel.cc create mode 100644 paddle2onnx/mapper/nn/affine_channel.h create mode 100644 paddle2onnx/mapper/nn/batch_norm.cc create mode 100644 paddle2onnx/mapper/nn/batch_norm.h create mode 100644 paddle2onnx/mapper/nn/conv2d.cc create mode 100644 paddle2onnx/mapper/nn/conv2d.h create mode 100755 paddle2onnx/mapper/nn/conv2d_transpose.cc create mode 100755 paddle2onnx/mapper/nn/conv2d_transpose.h create mode 100644 paddle2onnx/mapper/nn/conv3d.cc create mode 100755 paddle2onnx/mapper/nn/conv3d.h create mode 100644 paddle2onnx/mapper/nn/data_norm.cc create mode 100644 paddle2onnx/mapper/nn/data_norm.h create mode 100644 paddle2onnx/mapper/nn/dropout.cc create mode 100755 paddle2onnx/mapper/nn/dropout.h create mode 100644 paddle2onnx/mapper/nn/group_norm.cc create mode 100755 paddle2onnx/mapper/nn/group_norm.h create mode 100644 paddle2onnx/mapper/nn/instance_norm.cc create mode 100644 paddle2onnx/mapper/nn/instance_norm.h create mode 100755 paddle2onnx/mapper/nn/interpolate.cc create mode 100755 paddle2onnx/mapper/nn/interpolate.h create mode 100644 paddle2onnx/mapper/nn/layer_norm.cc create mode 100644 paddle2onnx/mapper/nn/layer_norm.h create mode 100755 paddle2onnx/mapper/nn/norm.cc create mode 100644 paddle2onnx/mapper/nn/norm.h create mode 100644 paddle2onnx/mapper/nn/pad3d.cc create mode 100644 paddle2onnx/mapper/nn/pad3d.h create mode 100644 paddle2onnx/mapper/nn/pool2d.cc create mode 100644 paddle2onnx/mapper/nn/pool2d.h create mode 100644 paddle2onnx/mapper/nn/pool3d.cc create mode 100644 paddle2onnx/mapper/nn/pool3d.h create mode 100644 paddle2onnx/mapper/nn/rnn.cc create mode 100644 paddle2onnx/mapper/nn/rnn.h create mode 100644 paddle2onnx/mapper/nn/shape.cc create mode 100644 paddle2onnx/mapper/nn/shape.h create mode 100644 paddle2onnx/mapper/nn/softmax_with_cross_entropy.cc create mode 100644 paddle2onnx/mapper/nn/softmax_with_cross_entropy.h create mode 100644 paddle2onnx/mapper/onnx_helper.cc create mode 100644 paddle2onnx/mapper/onnx_helper.h create mode 100644 paddle2onnx/mapper/quantize/dequantize_linear.cc create mode 100755 paddle2onnx/mapper/quantize/dequantize_linear.h create mode 100755 paddle2onnx/mapper/quantize/quantize_linear.cc create mode 100644 paddle2onnx/mapper/quantize/quantize_linear.h create mode 100755 paddle2onnx/mapper/quantize_helper.cc create mode 100644 paddle2onnx/mapper/quantize_helper.h create mode 100644 paddle2onnx/mapper/register_mapper.h create mode 100644 paddle2onnx/mapper/tensor/add_n.cc create mode 100644 paddle2onnx/mapper/tensor/add_n.h create mode 100644 paddle2onnx/mapper/tensor/argmax.cc create mode 100755 paddle2onnx/mapper/tensor/argmax.h create mode 100644 paddle2onnx/mapper/tensor/argmin.cc create mode 100755 paddle2onnx/mapper/tensor/argmin.h create mode 100644 paddle2onnx/mapper/tensor/argsort.cc create mode 100644 paddle2onnx/mapper/tensor/argsort.h create mode 100644 paddle2onnx/mapper/tensor/assign.cc create mode 100644 paddle2onnx/mapper/tensor/assign.h create mode 100644 paddle2onnx/mapper/tensor/assign_value.cc create mode 100644 paddle2onnx/mapper/tensor/assign_value.h create mode 100644 paddle2onnx/mapper/tensor/bmm.cc create mode 100644 paddle2onnx/mapper/tensor/bmm.h create mode 100644 paddle2onnx/mapper/tensor/cast.cc create mode 100644 paddle2onnx/mapper/tensor/cast.h create mode 100644 paddle2onnx/mapper/tensor/clip.cc create mode 100644 paddle2onnx/mapper/tensor/clip.h create mode 100644 paddle2onnx/mapper/tensor/concat.cc create mode 100644 paddle2onnx/mapper/tensor/concat.h create mode 100644 paddle2onnx/mapper/tensor/cumsum.cc create mode 100644 paddle2onnx/mapper/tensor/cumsum.h create mode 100644 paddle2onnx/mapper/tensor/dist.cc create mode 100644 paddle2onnx/mapper/tensor/dist.h create mode 100755 paddle2onnx/mapper/tensor/dot.cc create mode 100644 paddle2onnx/mapper/tensor/dot.h create mode 100644 paddle2onnx/mapper/tensor/equal.cc create mode 100644 paddle2onnx/mapper/tensor/equal.h create mode 100644 paddle2onnx/mapper/tensor/expand.cc create mode 100644 paddle2onnx/mapper/tensor/expand.h create mode 100644 paddle2onnx/mapper/tensor/expand_as.cc create mode 100644 paddle2onnx/mapper/tensor/expand_as.h create mode 100644 paddle2onnx/mapper/tensor/expand_v2.cc create mode 100644 paddle2onnx/mapper/tensor/expand_v2.h create mode 100644 paddle2onnx/mapper/tensor/eye.cc create mode 100644 paddle2onnx/mapper/tensor/eye.h create mode 100644 paddle2onnx/mapper/tensor/fill_constant.cc create mode 100644 paddle2onnx/mapper/tensor/fill_constant.h create mode 100644 paddle2onnx/mapper/tensor/fill_constant_batch_size_like.cc create mode 100644 paddle2onnx/mapper/tensor/fill_constant_batch_size_like.h create mode 100644 paddle2onnx/mapper/tensor/fill_like.cc create mode 100644 paddle2onnx/mapper/tensor/fill_like.h create mode 100644 paddle2onnx/mapper/tensor/flatten.cc create mode 100644 paddle2onnx/mapper/tensor/flatten.h create mode 100644 paddle2onnx/mapper/tensor/flatten2.cc create mode 100644 paddle2onnx/mapper/tensor/flatten2.h create mode 100644 paddle2onnx/mapper/tensor/flip.cc create mode 100755 paddle2onnx/mapper/tensor/flip.h create mode 100644 paddle2onnx/mapper/tensor/gather.cc create mode 100644 paddle2onnx/mapper/tensor/gather.h create mode 100755 paddle2onnx/mapper/tensor/gather_nd.cc create mode 100755 paddle2onnx/mapper/tensor/gather_nd.h create mode 100644 paddle2onnx/mapper/tensor/gaussian_random.cc create mode 100644 paddle2onnx/mapper/tensor/gaussian_random.h create mode 100644 paddle2onnx/mapper/tensor/greater_equal.cc create mode 100644 paddle2onnx/mapper/tensor/greater_equal.h create mode 100644 paddle2onnx/mapper/tensor/greater_than.cc create mode 100644 paddle2onnx/mapper/tensor/greater_than.h create mode 100644 paddle2onnx/mapper/tensor/grid_sampler.cc create mode 100644 paddle2onnx/mapper/tensor/grid_sampler.h create mode 100644 paddle2onnx/mapper/tensor/index_sample.cc create mode 100755 paddle2onnx/mapper/tensor/index_sample.h create mode 100644 paddle2onnx/mapper/tensor/index_select.cc create mode 100644 paddle2onnx/mapper/tensor/index_select.h create mode 100644 paddle2onnx/mapper/tensor/less_equal.cc create mode 100644 paddle2onnx/mapper/tensor/less_equal.h create mode 100644 paddle2onnx/mapper/tensor/less_than.cc create mode 100644 paddle2onnx/mapper/tensor/less_than.h create mode 100644 paddle2onnx/mapper/tensor/linspace.cc create mode 100644 paddle2onnx/mapper/tensor/linspace.h create mode 100644 paddle2onnx/mapper/tensor/logical_not.cc create mode 100644 paddle2onnx/mapper/tensor/logical_not.h create mode 100644 paddle2onnx/mapper/tensor/logical_op.cc create mode 100644 paddle2onnx/mapper/tensor/logical_op.h create mode 100644 paddle2onnx/mapper/tensor/lookup_table.cc create mode 100644 paddle2onnx/mapper/tensor/lookup_table.h create mode 100644 paddle2onnx/mapper/tensor/matmul.cc create mode 100644 paddle2onnx/mapper/tensor/matmul.h create mode 100644 paddle2onnx/mapper/tensor/matmul_v2.cc create mode 100644 paddle2onnx/mapper/tensor/matmul_v2.h create mode 100644 paddle2onnx/mapper/tensor/mean.cc create mode 100644 paddle2onnx/mapper/tensor/mean.h create mode 100644 paddle2onnx/mapper/tensor/meshgrid.cc create mode 100644 paddle2onnx/mapper/tensor/meshgrid.h create mode 100644 paddle2onnx/mapper/tensor/mul.cc create mode 100644 paddle2onnx/mapper/tensor/mul.h create mode 100644 paddle2onnx/mapper/tensor/mv.cc create mode 100644 paddle2onnx/mapper/tensor/mv.h create mode 100644 paddle2onnx/mapper/tensor/nonzero.cc create mode 100644 paddle2onnx/mapper/tensor/nonzero.h create mode 100644 paddle2onnx/mapper/tensor/not_equal.cc create mode 100644 paddle2onnx/mapper/tensor/not_equal.h create mode 100644 paddle2onnx/mapper/tensor/one_hot_v2.cc create mode 100644 paddle2onnx/mapper/tensor/one_hot_v2.h create mode 100755 paddle2onnx/mapper/tensor/p_norm.cc create mode 100755 paddle2onnx/mapper/tensor/p_norm.h create mode 100755 paddle2onnx/mapper/tensor/partial_ops.cc create mode 100755 paddle2onnx/mapper/tensor/partial_ops.h create mode 100644 paddle2onnx/mapper/tensor/pixel_shuffle.cc create mode 100644 paddle2onnx/mapper/tensor/pixel_shuffle.h create mode 100644 paddle2onnx/mapper/tensor/pow.cc create mode 100644 paddle2onnx/mapper/tensor/pow.h create mode 100644 paddle2onnx/mapper/tensor/range.cc create mode 100644 paddle2onnx/mapper/tensor/range.h create mode 100644 paddle2onnx/mapper/tensor/reduce.cc create mode 100755 paddle2onnx/mapper/tensor/reduce.h create mode 100644 paddle2onnx/mapper/tensor/reshape2.cc create mode 100644 paddle2onnx/mapper/tensor/reshape2.h create mode 100644 paddle2onnx/mapper/tensor/scale.cc create mode 100644 paddle2onnx/mapper/tensor/scale.h create mode 100644 paddle2onnx/mapper/tensor/scatter.cc create mode 100644 paddle2onnx/mapper/tensor/scatter.h create mode 100644 paddle2onnx/mapper/tensor/scatter_nd_add.cc create mode 100644 paddle2onnx/mapper/tensor/scatter_nd_add.h create mode 100644 paddle2onnx/mapper/tensor/set_value.cc create mode 100644 paddle2onnx/mapper/tensor/set_value.h create mode 100644 paddle2onnx/mapper/tensor/slice.cc create mode 100644 paddle2onnx/mapper/tensor/slice.h create mode 100644 paddle2onnx/mapper/tensor/split.cc create mode 100644 paddle2onnx/mapper/tensor/split.h create mode 100644 paddle2onnx/mapper/tensor/squeeze2.cc create mode 100644 paddle2onnx/mapper/tensor/squeeze2.h create mode 100644 paddle2onnx/mapper/tensor/stack.cc create mode 100644 paddle2onnx/mapper/tensor/stack.h create mode 100755 paddle2onnx/mapper/tensor/take_along_axis.cc create mode 100755 paddle2onnx/mapper/tensor/take_along_axis.h create mode 100644 paddle2onnx/mapper/tensor/temporal_shift.cc create mode 100644 paddle2onnx/mapper/tensor/temporal_shift.h create mode 100644 paddle2onnx/mapper/tensor/tile.cc create mode 100644 paddle2onnx/mapper/tensor/tile.h create mode 100755 paddle2onnx/mapper/tensor/top_k.cc create mode 100644 paddle2onnx/mapper/tensor/top_k.h create mode 100755 paddle2onnx/mapper/tensor/top_k_v2.cc create mode 100644 paddle2onnx/mapper/tensor/top_k_v2.h create mode 100644 paddle2onnx/mapper/tensor/transpose2.cc create mode 100644 paddle2onnx/mapper/tensor/transpose2.h create mode 100644 paddle2onnx/mapper/tensor/unique.cc create mode 100644 paddle2onnx/mapper/tensor/unique.h create mode 100644 paddle2onnx/mapper/tensor/unsqueeze2.cc create mode 100644 paddle2onnx/mapper/tensor/unsqueeze2.h create mode 100644 paddle2onnx/mapper/tensor/unstack.cc create mode 100644 paddle2onnx/mapper/tensor/unstack.h create mode 100644 paddle2onnx/mapper/tensor/where.cc create mode 100644 paddle2onnx/mapper/tensor/where.h create mode 100755 paddle2onnx/mappers_registry.h.in create mode 100644 paddle2onnx/onnx_reader.cc create mode 100755 paddle2onnx/optimize.py create mode 100644 paddle2onnx/optimizer/convert_fp32_to_fp16.cc create mode 100755 paddle2onnx/optimizer/convert_fp32_to_fp16.h create mode 100644 paddle2onnx/optimizer/eliminate_non_transpose.h create mode 100644 paddle2onnx/optimizer/fuse_constant_cast.h create mode 100644 paddle2onnx/optimizer/fuse_constant_reshape.h create mode 100644 paddle2onnx/optimizer/fuse_constant_unsqueeze.h create mode 100644 paddle2onnx/optimizer/fuse_paddle_conv_bias.h create mode 100644 paddle2onnx/optimizer/fuse_squeeze_act_unsqueeze.h.bak create mode 100644 paddle2onnx/optimizer/fuse_unsqueeze_conv2d_squeeze.h create mode 100644 paddle2onnx/optimizer/paddle2onnx_optimizer.cc create mode 100644 paddle2onnx/optimizer/paddle2onnx_optimizer.h create mode 100644 paddle2onnx/optimizer/replace_add_to_identity.h create mode 100644 paddle2onnx/optimizer/replace_mul_to_identity.h create mode 100755 paddle2onnx/paddle_reader.cc create mode 100755 paddle2onnx/parser/parser.cc create mode 100644 paddle2onnx/parser/parser.h create mode 100644 paddle2onnx/proto/CMakeLists.txt create mode 100644 paddle2onnx/proto/p2o_paddle.proto create mode 100644 paddle2onnx/utils.py create mode 100644 paddle2onnx/utils/utils.h create mode 100644 scripts/clean_sdk.sh create mode 100644 third_party/onnx/.azure-pipelines/Linux-CI.yml create mode 100644 third_party/onnx/.azure-pipelines/MacOS-CI.yml create mode 100644 third_party/onnx/.azure-pipelines/Windows-CI.yml create mode 100644 third_party/onnx/.clang-format create mode 100644 third_party/onnx/.gitattributes create mode 100644 third_party/onnx/.gitignore create mode 100644 third_party/onnx/.gitmodules create mode 100644 third_party/onnx/.lgtm.yml create mode 100644 third_party/onnx/CMakeLists.txt create mode 100644 third_party/onnx/CODEOWNERS create mode 100644 third_party/onnx/CODE_OF_CONDUCT.md create mode 100644 third_party/onnx/CONTRIBUTING.md create mode 100644 third_party/onnx/LICENSE create mode 100644 third_party/onnx/MANIFEST.in create mode 100644 third_party/onnx/README.md create mode 100644 third_party/onnx/RELEASE-MANAGEMENT.md create mode 100644 third_party/onnx/SECURITY.md create mode 100644 third_party/onnx/VERSION_NUMBER create mode 100644 third_party/onnx/cmake/ONNXConfig.cmake.in create mode 100644 third_party/onnx/cmake/ONNXConfigVersion.cmake.in create mode 100644 third_party/onnx/cmake/Utils.cmake create mode 100644 third_party/onnx/cmake/external/googletest.cmake create mode 100644 third_party/onnx/cmake/summary.cmake create mode 100644 third_party/onnx/cmake/unittest.cmake create mode 100644 third_party/onnx/community/logo_request.md create mode 100644 third_party/onnx/community/readme.md create mode 100644 third_party/onnx/community/repo_guidelines.md create mode 100644 third_party/onnx/community/sc-election-guidelines.md create mode 100644 third_party/onnx/community/sigs.md create mode 100644 third_party/onnx/community/working-groups.md create mode 100644 third_party/onnx/docs/AddNewOp.md create mode 100644 third_party/onnx/docs/Broadcasting.md create mode 100644 third_party/onnx/docs/CIPipelines.md create mode 100644 third_party/onnx/docs/CONTRIBUTING.md create mode 100644 third_party/onnx/docs/Changelog-ml.md create mode 100644 third_party/onnx/docs/Changelog.md create mode 100644 third_party/onnx/docs/DefineDifferentiability.md create mode 100644 third_party/onnx/docs/DimensionDenotation.md create mode 100644 third_party/onnx/docs/ExternalData.md create mode 100644 third_party/onnx/docs/Hub.md create mode 100644 third_party/onnx/docs/IR.md create mode 100644 third_party/onnx/docs/ImplementingAnOnnxBackend.md create mode 100644 third_party/onnx/docs/ManagingExperimentalOps.md create mode 100644 third_party/onnx/docs/MetadataProps.md create mode 100644 third_party/onnx/docs/ONNXIFI.md create mode 100644 third_party/onnx/docs/ONNXTypes.md create mode 100644 third_party/onnx/docs/ONNX_logo_main.png create mode 100644 third_party/onnx/docs/OnnxBackendTest.md create mode 100644 third_party/onnx/docs/OnnxReleases.md create mode 100644 third_party/onnx/docs/OpConventions.md create mode 100644 third_party/onnx/docs/Operators-ml.md create mode 100644 third_party/onnx/docs/Operators.md create mode 100644 third_party/onnx/docs/Overview.md create mode 100644 third_party/onnx/docs/PythonAPIOverview.md create mode 100644 third_party/onnx/docs/Relicensing.md create mode 100644 third_party/onnx/docs/ShapeInference.md create mode 100644 third_party/onnx/docs/Syntax.md create mode 100644 third_party/onnx/docs/TestCoverage-ml.md create mode 100644 third_party/onnx/docs/TestCoverage.md create mode 100644 third_party/onnx/docs/TypeAnnotations.md create mode 100644 third_party/onnx/docs/TypeDenotation.md create mode 100644 third_party/onnx/docs/VersionConverter.md create mode 100644 third_party/onnx/docs/Versioning.md create mode 100644 third_party/onnx/docs/images/onnx_hub_arch.svg create mode 100644 third_party/onnx/docs/proposals/ArchiveFileFormatProposal.md create mode 100644 third_party/onnx/docs/proposals/FunctionsProposal.md create mode 100644 third_party/onnx/docs/proposals/NLPinONNXproposal.md create mode 100644 third_party/onnx/docs/proposals/ONNXIFIproposal.md create mode 100644 third_party/onnx/docs/proposals/SymbolicShapeInfProposal.md create mode 100644 third_party/onnx/onnx/__init__.py create mode 100644 third_party/onnx/onnx/backend/__init__.py create mode 100644 third_party/onnx/onnx/backend/base.py create mode 100644 third_party/onnx/onnx/backend/sample/__init__.py create mode 100644 third_party/onnx/onnx/backend/sample/ops/__init__.py create mode 100644 third_party/onnx/onnx/backend/sample/ops/abs.py create mode 100644 third_party/onnx/onnx/backend/test/__init__.py create mode 100644 third_party/onnx/onnx/backend/test/case/__init__.py create mode 100644 third_party/onnx/onnx/backend/test/case/base.py create mode 100644 third_party/onnx/onnx/backend/test/case/model/__init__.py create mode 100644 third_party/onnx/onnx/backend/test/case/model/expand.py create mode 100644 third_party/onnx/onnx/backend/test/case/model/gradient.py create mode 100644 third_party/onnx/onnx/backend/test/case/model/sequence.py create mode 100644 third_party/onnx/onnx/backend/test/case/model/shrink.py create mode 100644 third_party/onnx/onnx/backend/test/case/model/sign.py create mode 100644 third_party/onnx/onnx/backend/test/case/model/single-relu.py create mode 100644 third_party/onnx/onnx/backend/test/case/model/stringnormalizer.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/__init__.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/abs.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/acos.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/acosh.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/adagrad.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/adam.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/add.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/and.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/argmax.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/argmin.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/asin.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/asinh.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/atan.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/atanh.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/averagepool.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/batchnorm.py create mode 100755 third_party/onnx/onnx/backend/test/case/node/bernoulli.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/bitshift.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/cast.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/castlike.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/ceil.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/celu.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/clip.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/compress.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/concat.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/constant.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/constantofshape.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/conv.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/convinteger.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/convtranspose.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/cos.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/cosh.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/cumsum.py create mode 100755 third_party/onnx/onnx/backend/test/case/node/depthtospace.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/dequantizelinear.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/det.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/div.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/dropout.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/dynamicquantizelinear.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/einsum.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/elu.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/equal.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/erf.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/exp.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/expand.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/eyelike.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/flatten.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/floor.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/gather.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/gatherelements.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/gathernd.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/gemm.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/globalaveragepool.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/globalmaxpool.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/greater.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/greater_equal.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/gridsample.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/gru.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/hardmax.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/hardsigmoid.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/hardswish.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/identity.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/if.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/instancenorm.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/isinf.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/isnan.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/layernormalization.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/leakyrelu.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/less.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/less_equal.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/log.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/logsoftmax.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/loop.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/lrn.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/lstm.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/matmul.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/matmulinteger.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/max.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/maxpool.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/maxunpool.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/mean.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/meanvariancenormalization.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/min.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/mod.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/momentum.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/mul.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/neg.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/negativeloglikelihoodloss.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/nonmaxsuppression.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/nonzero.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/not.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/onehot.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/optionalgetelement.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/optionalhaselement.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/or.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/pad.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/pool_op_common.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/pow.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/prelu.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/qlinearconv.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/qlinearmatmul.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/quantizelinear.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/rangeop.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reciprocal.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reduce_log_sum.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reduce_log_sum_exp.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reducel1.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reducel2.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reducemax.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reducemean.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reducemin.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reduceprod.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reducesum.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reducesumsquare.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/relu.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reshape.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/resize.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/reversesequence.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/rnn.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/roialign.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/round.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/scan.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/scatter.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/scatterelements.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/scatternd.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/selu.py create mode 100755 third_party/onnx/onnx/backend/test/case/node/sequence_map.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/sequenceinsert.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/shape.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/shrink.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/sigmoid.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/sign.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/sin.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/sinh.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/size.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/slice.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/softmax.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/softmaxcrossentropy.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/softplus.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/softsign.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/spacetodepth.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/split.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/sqrt.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/squeeze.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/stringnormalizer.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/sub.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/sum.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/tan.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/tanh.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/tfidfvectorizer.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/thresholdedrelu.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/tile.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/topk.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/transpose.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/trilu.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/unique.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/unsqueeze.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/upsample.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/where.py create mode 100644 third_party/onnx/onnx/backend/test/case/node/xor.py create mode 100644 third_party/onnx/onnx/backend/test/case/test_case.py create mode 100644 third_party/onnx/onnx/backend/test/case/utils.py create mode 100644 third_party/onnx/onnx/backend/test/cmd_tools.py create mode 100644 third_party/onnx/onnx/backend/test/cpp/driver/test_driver.cc create mode 100644 third_party/onnx/onnx/backend/test/cpp/driver/test_driver.h create mode 100644 third_party/onnx/onnx/backend/test/cpp/driver_test.cc create mode 100644 third_party/onnx/onnx/backend/test/cpp/gtest_utils.cc create mode 100644 third_party/onnx/onnx/backend/test/cpp/gtest_utils.h create mode 100644 third_party/onnx/onnx/backend/test/cpp/test_main.cc create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_abs/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_abs/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_abs/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acos/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acos/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acos/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acos_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acos_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acos_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acosh/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acosh/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acosh/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acosh_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acosh_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_acosh_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_5.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_6.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_7.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_5.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_5.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_6.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_7.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_8.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_9.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_5.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add_bcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add_bcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add_bcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add_bcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add_uint8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_add_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and4d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v4d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_example_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_example_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_example_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random_select_last_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random_select_last_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random_select_last_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asin/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asin/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asin/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asin_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asin_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asin_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asinh/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asinh/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asinh/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asinh_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asinh_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_asinh_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atan/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atan/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atan/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atan_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atan_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atan_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atanh/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atanh/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atanh/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atanh_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atanh_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_atanh_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_1d_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_1d_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_1d_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_ceil/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_ceil/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_ceil/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_strides/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_strides/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_strides/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_same_lower/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_same_lower/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_same_lower/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_same_upper/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_same_upper/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_same_upper/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_strides/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_strides/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_strides/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_3d_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_3d_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_averagepool_3d_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_conv_without_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_conv_without_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_conv_without_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_conv_without_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT16_to_DOUBLE/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT16_to_DOUBLE/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT16_to_DOUBLE/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT16_to_FLOAT/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_ceil/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_ceil/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_ceil/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_ceil_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_ceil_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_ceil_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_celu/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_celu/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_celu/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_inbounds/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_inbounds/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_inbounds/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_inbounds/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_inbounds/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_inbounds/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_min/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_min/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_min/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_min/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_negative_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_negative_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_negative_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_negative_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_negative_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_negative_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_negative_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_negative_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_negative_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_negative_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_negative_2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_negative_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constant/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constant/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constant_pad/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constant_pad/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constant_pad/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constant_pad/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constant_pad/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constantofshape_float_ones/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constantofshape_float_ones/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constantofshape_float_ones/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_shape_zero/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_shape_zero/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_shape_zero/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_zeros/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_zeros/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_zeros/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_autopad_same/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_autopad_same/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_autopad_same/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_autopad_same/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_and_asymmetric_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_and_asymmetric_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_and_asymmetric_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_and_asymmetric_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_no_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_no_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_no_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_no_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_without_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_without_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_without_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_without_padding/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convinteger_without_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_1d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_autopad_same/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_autopad_same/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_autopad_same/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_autopad_same/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_kernel_shape/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_kernel_shape/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_kernel_shape/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_kernel_shape/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_output_shape/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_output_shape/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_output_shape/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_output_shape/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pad/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pad/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pad/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pad/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pads/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pads/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pads/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pads/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_with_kernel/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_with_kernel/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_with_kernel/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_convtranspose_with_kernel/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cos/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cos/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cos/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cos_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cos_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cos_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cosh/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cosh/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cosh/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cosh_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cosh_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cosh_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_exclusive/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_exclusive/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_exclusive/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_exclusive/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse_exclusive/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse_exclusive/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse_exclusive/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse_exclusive/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_depthtospace_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_det_2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_det_2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_det_2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_det_nd/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_det_nd/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_det_nd/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_bcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_bcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_bcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_bcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_uint8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_div_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_old/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_old/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_old/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_edge_pad/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_edge_pad/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_edge_pad/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_edge_pad/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_diagonal/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_diagonal/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_diagonal/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_elu/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_elu/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_elu/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_elu_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_elu_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_elu_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_elu_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_elu_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_elu_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_equal/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_equal/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_equal/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_equal/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_erf/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_erf/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_erf/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_exp/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_exp/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_exp/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_exp_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_exp_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_exp_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_expand_dim_unchanged/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_expand_dim_unchanged/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_expand_dim_unchanged/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_expand_dim_unchanged/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_eyelike_with_dtype/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_eyelike_with_dtype/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_eyelike_with_dtype/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_eyelike_without_dtype/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_eyelike_without_dtype/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_eyelike_without_dtype/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_floor/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_floor/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_floor/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_floor_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_floor_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_floor_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_negative_indices/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_negative_indices/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_negative_indices/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_elements_negative_indices/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_negative_indices/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_negative_indices/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_negative_indices/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gather_negative_indices/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_float32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_float32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_float32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_float32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool_precomputed/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool_precomputed/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool_precomputed/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool_precomputed/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool_precomputed/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool_precomputed/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_aligncorners_true/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_aligncorners_true/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_aligncorners_true/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_aligncorners_true/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_bicubic/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_bicubic/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_bicubic/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_bicubic/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_bilinear/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_bilinear/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_bilinear/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_bilinear/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_border_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_border_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_border_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_border_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_nearest/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_nearest/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_nearest/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_nearest/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_reflection_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_reflection_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_reflection_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_reflection_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_zeros_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_zeros_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_zeros_padding/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gridsample_zeros_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_defaults/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_defaults/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_defaults/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_defaults/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_defaults/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_one_hot/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_one_hot/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardmax_one_hot/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardswish/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardswish/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardswish/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_identity/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_identity/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_identity/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_identity_opt/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_identity_opt/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_identity_opt/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_identity_sequence/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_identity_sequence/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_identity_sequence/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_if/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_if/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_if/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_if_opt/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_if_opt/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_if_opt/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_if_seq/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_if_seq/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_if_seq/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_example/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_instancenorm_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isinf/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isinf/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isinf/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isinf_negative/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isinf_negative/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isinf_negative/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isinf_positive/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isinf_positive/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isinf_positive/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isnan/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isnan/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_isnan/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_bcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_log/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_log/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_log/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_log_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_log_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_log_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_large_number/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_large_number/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_large_number/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_large_number_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_large_number_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_large_number_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop11/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop13_seq/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop13_seq/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop13_seq/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop13_seq/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop13_seq/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lrn/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lrn/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lrn/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lrn_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lrn_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lrn_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_defaults/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_defaults/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_defaults/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_defaults/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_defaults/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_5.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_6.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_7.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_float64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_one_input/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_one_input/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_one_input/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_ceil/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_ceil/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_ceil/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_dilations/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_dilations/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_dilations/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_pads/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_pads/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_pads/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_strides/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_strides/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_strides/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_lower/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_lower/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_lower/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_upper/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_upper/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_upper/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_strides/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_strides/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_strides/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_3d_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_3d_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_3d_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_example/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_float64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_one_input/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_one_input/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_one_input/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mod_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_5.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_6.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_7.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_uint8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mul_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mvn/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mvn/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mvn/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_neg/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_neg/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_neg/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_neg_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_neg_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_neg_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_not_2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_not_2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_not_2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_not_3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_not_3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_not_3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_not_4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_not_4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_not_4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_negative_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_negative_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_negative_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_negative_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_with_negative_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_without_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_without_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_without_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_without_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_onehot_without_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_get_element/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_get_element/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_get_element/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_get_element_sequence/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_get_element_sequence/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_get_element_sequence/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_has_element/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_has_element/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_has_element/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_has_element_empty/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_has_element_empty/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_optional_has_element_empty/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or4d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v4d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_bcast_array/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_bcast_array/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_bcast_array/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_bcast_array/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_bcast_scalar/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_bcast_scalar/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_bcast_scalar/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_bcast_scalar/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_int64/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_int64/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_int64/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_int64/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_prelu_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_5.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_6.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_7.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_5.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_6.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_7.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_5.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_6.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_7.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reciprocal/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reciprocal/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reciprocal/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reciprocal_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reciprocal_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reciprocal_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_default_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_default_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_default_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_default_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_default_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_default_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_asc_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_asc_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_asc_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_desc_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_desc_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_desc_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_negative_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_negative_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_negative_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_negative_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_negative_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_negative_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_negative_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_negative_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_max_negative_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_default_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_default_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_default_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_default_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_default_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_default_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_random/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_random/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_random/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_random/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_random/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_random/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_random/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reflect_pad/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reflect_pad/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reflect_pad/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reflect_pad/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_relu/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_relu/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_relu/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_allowzero_reordered/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_allowzero_reordered/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_allowzero_reordered/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_allowzero_reordered/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_extended_dims/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_extended_dims/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_extended_dims/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_extended_dims/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_A_n0p5_exclude_outside/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_A_n0p5_exclude_outside/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_A_n0p5_exclude_outside/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_A_n0p5_exclude_outside/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear_align_corners/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear_align_corners/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear_align_corners/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear_align_corners/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_nearest/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_nearest/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_nearest/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_nearest/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_tf_crop_and_resize/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_A_n0p5_exclude_outside/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_A_n0p5_exclude_outside/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_A_n0p5_exclude_outside/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_A_n0p5_exclude_outside/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_align_corners/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_align_corners/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_align_corners/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_align_corners/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_asymmetric/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_asymmetric/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_asymmetric/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_asymmetric/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reversesequence_batch/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reversesequence_batch/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reversesequence_batch/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reversesequence_batch/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reversesequence_time/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reversesequence_time/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reversesequence_time/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_reversesequence_time/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_round/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_round/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_round/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan9_sum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan9_sum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan9_sum/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan9_sum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan9_sum/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan_sum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan_sum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan_sum/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan_sum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scan_sum/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_duplicate_indices/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_duplicate_indices/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_duplicate_indices/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_duplicate_indices/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_duplicate_indices/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_negative_indices/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_negative_indices/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_negative_indices/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_negative_indices/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_negative_indices/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_add/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_add/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_add/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_add/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_add/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_multiply/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_multiply/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_multiply/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_multiply/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_scatternd_multiply/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_selu/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_selu/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_selu/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_selu_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_selu_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_selu_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_selu_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_selu_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_selu_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_end_negative_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_end_negative_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_end_negative_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shrink_hard/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shrink_hard/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shrink_hard/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shrink_soft/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shrink_soft/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_shrink_soft/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sigmoid/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sigmoid/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sigmoid/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sign/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sign/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sign/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_batchwise/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_batchwise/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_batchwise/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_batchwise/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_batchwise/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_batchwise/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_defaults/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_defaults/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_defaults/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_defaults/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_defaults/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sin/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sin/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sin/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sin_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sin_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sin_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sinh/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sinh/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sinh/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sinh_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sinh_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sinh_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_size/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_size/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_size/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_size_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_size_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_size_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_4.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_example_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_example_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_example_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis_expanded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis_expanded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis_expanded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softplus/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softplus/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softplus/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softplus_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softplus_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softplus_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softsign/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softsign/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softsign/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softsign_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softsign_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_softsign_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_spacetodepth_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_spacetodepth_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_spacetodepth_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sqrt/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sqrt/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sqrt/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_squeeze/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_nochangecase/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_nochangecase/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_nochangecase/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_upper/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_upper/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_upper/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_empty_output/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_empty_output/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_empty_output/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_insensintive_upper_twodim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_insensintive_upper_twodim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_insensintive_upper_twodim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_nostopwords_nochangecase/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_nostopwords_nochangecase/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_nostopwords_nochangecase/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tan/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tan/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tan/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tan_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tan_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tan_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tanh/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tanh/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tanh/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tanh_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tanh_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tanh_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_batch_onlybigrams_skip0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_batch_onlybigrams_skip0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_batch_onlybigrams_skip0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_batch_onlybigrams_skip5/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_batch_onlybigrams_skip5/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_batch_onlybigrams_skip5/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_batch_uniandbigrams_skip5/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_batch_uniandbigrams_skip5/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_batch_uniandbigrams_skip5/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_only_bigrams_skip0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_only_bigrams_skip0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_only_bigrams_skip0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_levelempty/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_levelempty/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_levelempty/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_skip5/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_skip5/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_skip5/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_uniandbigrams_skip5/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_uniandbigrams_skip5/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_uniandbigrams_skip5/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tile/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_negative_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_negative_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_negative_axis/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_negative_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_negative_axis/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_smallest/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_smallest/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_smallest/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_smallest/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_top_k_smallest/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_5/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_5/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_5/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_default/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_default/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_transpose_default/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_neg/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_neg/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_neg/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_neg/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_one_row_neg/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_one_row_neg/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_one_row_neg/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_out_neg/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_out_neg/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_out_neg/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_out_neg/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_out_pos/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_out_pos/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_out_pos/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_out_pos/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_pos/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_pos/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_pos/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_pos/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_square/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_square/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_square/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_square_neg/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_square_neg/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_square_neg/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_square_neg/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_zero/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_zero/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_zero/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_tril_zero/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_neg/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_neg/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_neg/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_neg/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_one_row/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_one_row/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_one_row/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_one_row/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_out_neg_out/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_out_neg_out/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_out_neg_out/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_out_neg_out/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_out_pos/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_out_pos/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_out_pos/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_out_pos/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_pos/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_pos/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_pos/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_pos/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_square/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_square/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_square/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_square_neg/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_square_neg/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_square_neg/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_square_neg/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_zero/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_zero/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_zero/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_triu_zero/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/test_data_set_0/output_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/test_data_set_0/output_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis_3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis_3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis_3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis_3d/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis_3d/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis_3d/test_data_set_0/output_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_without_axis/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_without_axis/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_without_axis/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_without_axis/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_without_axis/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_without_axis/test_data_set_0/output_3.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_long_example/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_long_example/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_long_example/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_long_example/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_where_long_example/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor4d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v1d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v2d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v4d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v4d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v4d/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v4d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d_stride/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d_stride/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d_stride/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d_stride/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d_stride/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d_stride/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm1d_3d_input_eval/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm1d_3d_input_eval/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm1d_3d_input_eval/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_momentum_eval/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_momentum_eval/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_momentum_eval/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_eval/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_eval/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_eval/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_momentum_eval/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_momentum_eval/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_momentum_eval/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConstantPad2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConstantPad2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConstantPad2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_groups/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_groups/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_groups/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_padded/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_padded/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_padded/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_strided/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_strided/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_strided/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_with_multiplier/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_with_multiplier/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_with_multiplier/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_dilated/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_dilated/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_dilated/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups_thnn/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups_thnn/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups_thnn/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_no_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_no_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_no_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_strided/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_strided/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_strided/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated_strided/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated_strided/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated_strided/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_groups/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_groups/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_groups/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d_no_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d_no_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d_no_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ELU/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ELU/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ELU/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding_sparse/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding_sparse/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding_sparse/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear_no_bias/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear_no_bias/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear_no_bias/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LogSoftmax/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LogSoftmax/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LogSoftmax/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d_stride_padding_dilation/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d_stride_padding_dilation/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d_stride_padding_dilation/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride_padding/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride_padding/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride_padding/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d_multiparam/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d_multiparam/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d_multiparam/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d_multiparam/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d_multiparam/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d_multiparam/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d_multiparam/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d_multiparam/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d_multiparam/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PixelShuffle/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PixelShuffle/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PixelShuffle/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PoissonNLLLLoss_no_reduce/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PoissonNLLLLoss_no_reduce/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PoissonNLLLLoss_no_reduce/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReLU/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReLU/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReLU/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReflectionPad2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReflectionPad2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReflectionPad2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReplicationPad2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReplicationPad2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReplicationPad2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Sigmoid/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Sigmoid/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Sigmoid/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmin/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmin/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmin/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softsign/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softsign/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softsign/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Tanh/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Tanh/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Tanh/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ZeroPad2d/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ZeroPad2d/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ZeroPad2d/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_dim3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_dim3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_dim3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_broadcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_broadcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_broadcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_broadcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_broadcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_broadcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_broadcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_broadcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_right_broadcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_right_broadcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_right_broadcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_right_broadcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_singleton_broadcast/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_singleton_broadcast/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_singleton_broadcast/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_singleton_broadcast/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addconstant/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addconstant/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addconstant/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_chunk/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_chunk/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_chunk/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_chunk/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_clip/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_clip/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_clip/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_conv/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_conv/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_conv/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_convtranspose/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_convtranspose/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_convtranspose/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_exp/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_exp/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_exp/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_index/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_index/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_index/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_maxpool/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_maxpool/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_maxpool/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_min/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_min/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_min/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_min/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_non_float_params/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_non_float_params/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_non_float_params/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pad/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pad/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pad/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_params/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_params/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_params/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_permute2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_permute2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_permute2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pow/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pow/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pow/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pow/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_view/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_view/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_view/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/real/test_bvlc_alexnet/data.json create mode 100644 third_party/onnx/onnx/backend/test/data/real/test_densenet121/data.json create mode 100644 third_party/onnx/onnx/backend/test/data/real/test_inception_v1/data.json create mode 100644 third_party/onnx/onnx/backend/test/data/real/test_inception_v2/data.json create mode 100644 third_party/onnx/onnx/backend/test/data/real/test_resnet50/data.json create mode 100644 third_party/onnx/onnx/backend/test/data/real/test_shufflenet/data.json create mode 100644 third_party/onnx/onnx/backend/test/data/real/test_squeezenet/data.json create mode 100644 third_party/onnx/onnx/backend/test/data/real/test_vgg19/data.json create mode 100644 third_party/onnx/onnx/backend/test/data/real/test_zfnet512/data.json create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model4/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model4/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model4/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model4/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/output_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/output_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model1/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model1/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model1/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model1/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model1/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/input_2.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model6/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model6/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model6/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model7/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model7/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model7/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/test_data_set_0/input_1.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_shrink/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_shrink/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_shrink/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sign_model/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sign_model/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_sign_model/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_single_relu_model/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_single_relu_model/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_single_relu_model/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_empty_output/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_empty_output/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_empty_output/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_insensintive_upper_twodim/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_insensintive_upper_twodim/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_insensintive_upper_twodim/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_nostopwords_nochangecase/model.onnx create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_nostopwords_nochangecase/test_data_set_0/input_0.pb create mode 100644 third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_nostopwords_nochangecase/test_data_set_0/output_0.pb create mode 100644 third_party/onnx/onnx/backend/test/loader/__init__.py create mode 100644 third_party/onnx/onnx/backend/test/report/__init__.py create mode 100644 third_party/onnx/onnx/backend/test/report/base.py create mode 100644 third_party/onnx/onnx/backend/test/report/coverage.py create mode 100644 third_party/onnx/onnx/backend/test/runner/__init__.py create mode 100644 third_party/onnx/onnx/backend/test/runner/item.py create mode 100644 third_party/onnx/onnx/backend/test/stat_coverage.py create mode 100644 third_party/onnx/onnx/bin/__init__.py create mode 100644 third_party/onnx/onnx/bin/checker.py create mode 100644 third_party/onnx/onnx/checker.cc create mode 100644 third_party/onnx/onnx/checker.h create mode 100644 third_party/onnx/onnx/checker.py create mode 100644 third_party/onnx/onnx/common/array_ref.h create mode 100644 third_party/onnx/onnx/common/assertions.cc create mode 100644 third_party/onnx/onnx/common/assertions.h create mode 100644 third_party/onnx/onnx/common/common.h create mode 100644 third_party/onnx/onnx/common/constants.h create mode 100644 third_party/onnx/onnx/common/file_utils.h create mode 100644 third_party/onnx/onnx/common/graph_node_list.h create mode 100644 third_party/onnx/onnx/common/interned_strings.cc create mode 100644 third_party/onnx/onnx/common/interned_strings.h create mode 100644 third_party/onnx/onnx/common/ir.h create mode 100644 third_party/onnx/onnx/common/ir_pb_converter.cc create mode 100644 third_party/onnx/onnx/common/ir_pb_converter.h create mode 100644 third_party/onnx/onnx/common/model_helpers.cc create mode 100644 third_party/onnx/onnx/common/model_helpers.h create mode 100644 third_party/onnx/onnx/common/path.cc create mode 100644 third_party/onnx/onnx/common/path.h create mode 100644 third_party/onnx/onnx/common/platform_helpers.h create mode 100644 third_party/onnx/onnx/common/status.cc create mode 100644 third_party/onnx/onnx/common/status.h create mode 100644 third_party/onnx/onnx/common/stl_backports.h create mode 100644 third_party/onnx/onnx/common/tensor.h create mode 100644 third_party/onnx/onnx/common/version.h create mode 100644 third_party/onnx/onnx/compose.py create mode 100644 third_party/onnx/onnx/cpp2py_export.cc create mode 100644 third_party/onnx/onnx/defs/__init__.py create mode 100644 third_party/onnx/onnx/defs/attr_proto_util.cc create mode 100644 third_party/onnx/onnx/defs/attr_proto_util.h create mode 100644 third_party/onnx/onnx/defs/controlflow/defs.cc create mode 100644 third_party/onnx/onnx/defs/controlflow/old.cc create mode 100644 third_party/onnx/onnx/defs/data_propagators.h create mode 100644 third_party/onnx/onnx/defs/data_type_utils.cc create mode 100644 third_party/onnx/onnx/defs/data_type_utils.h create mode 100644 third_party/onnx/onnx/defs/function.cc create mode 100644 third_party/onnx/onnx/defs/function.h create mode 100644 third_party/onnx/onnx/defs/gen_doc.py create mode 100644 third_party/onnx/onnx/defs/gen_shape_inference_information.py create mode 100755 third_party/onnx/onnx/defs/generator/defs.cc create mode 100644 third_party/onnx/onnx/defs/generator/old.cc create mode 100644 third_party/onnx/onnx/defs/logical/defs.cc create mode 100644 third_party/onnx/onnx/defs/logical/old.cc create mode 100644 third_party/onnx/onnx/defs/math/defs.cc create mode 100644 third_party/onnx/onnx/defs/math/old.cc create mode 100644 third_party/onnx/onnx/defs/nn/defs.cc create mode 100644 third_party/onnx/onnx/defs/nn/old.cc create mode 100644 third_party/onnx/onnx/defs/object_detection/defs.cc create mode 100644 third_party/onnx/onnx/defs/object_detection/old.cc create mode 100644 third_party/onnx/onnx/defs/operator_sets.h create mode 100644 third_party/onnx/onnx/defs/operator_sets_ml.h create mode 100644 third_party/onnx/onnx/defs/operator_sets_preview.h create mode 100644 third_party/onnx/onnx/defs/operator_sets_training.h create mode 100644 third_party/onnx/onnx/defs/optional/defs.cc create mode 100644 third_party/onnx/onnx/defs/parser.cc create mode 100644 third_party/onnx/onnx/defs/parser.h create mode 100644 third_party/onnx/onnx/defs/printer.cc create mode 100644 third_party/onnx/onnx/defs/printer.h create mode 100644 third_party/onnx/onnx/defs/quantization/defs.cc create mode 100644 third_party/onnx/onnx/defs/quantization/old.cc create mode 100644 third_party/onnx/onnx/defs/reduction/defs.cc create mode 100644 third_party/onnx/onnx/defs/reduction/old.cc create mode 100644 third_party/onnx/onnx/defs/rnn/defs.cc create mode 100644 third_party/onnx/onnx/defs/rnn/old.cc create mode 100644 third_party/onnx/onnx/defs/schema.cc create mode 100644 third_party/onnx/onnx/defs/schema.h create mode 100644 third_party/onnx/onnx/defs/sequence/defs.cc create mode 100644 third_party/onnx/onnx/defs/shape_inference.cc create mode 100644 third_party/onnx/onnx/defs/shape_inference.h create mode 100755 third_party/onnx/onnx/defs/tensor/defs.cc create mode 100644 third_party/onnx/onnx/defs/tensor/old.cc create mode 100644 third_party/onnx/onnx/defs/tensor/utils.cc create mode 100644 third_party/onnx/onnx/defs/tensor/utils.h create mode 100644 third_party/onnx/onnx/defs/tensor_proto_util.cc create mode 100644 third_party/onnx/onnx/defs/tensor_proto_util.h create mode 100644 third_party/onnx/onnx/defs/tensor_util.cc create mode 100644 third_party/onnx/onnx/defs/tensor_util.h create mode 100644 third_party/onnx/onnx/defs/traditionalml/defs.cc create mode 100644 third_party/onnx/onnx/defs/traditionalml/old.cc create mode 100644 third_party/onnx/onnx/defs/training/defs.cc create mode 100644 third_party/onnx/onnx/examples/Protobufs.ipynb create mode 100644 third_party/onnx/onnx/examples/check_model.ipynb create mode 100644 third_party/onnx/onnx/examples/load_model.ipynb create mode 100644 third_party/onnx/onnx/examples/make_model.ipynb create mode 100644 third_party/onnx/onnx/examples/np_array_tensorproto.ipynb create mode 100644 third_party/onnx/onnx/examples/resources/single_relu.onnx create mode 100644 third_party/onnx/onnx/examples/resources/single_relu_new.onnx create mode 100644 third_party/onnx/onnx/examples/resources/tensor.pb create mode 100644 third_party/onnx/onnx/examples/resources/two_transposes.onnx create mode 100644 third_party/onnx/onnx/examples/save_model.ipynb create mode 100644 third_party/onnx/onnx/examples/shape_inference.ipynb create mode 100644 third_party/onnx/onnx/external_data_helper.py create mode 100644 third_party/onnx/onnx/frontend/__init__.py create mode 100755 third_party/onnx/onnx/gen_proto.py create mode 100644 third_party/onnx/onnx/helper.py create mode 100644 third_party/onnx/onnx/hub.py create mode 100644 third_party/onnx/onnx/mapping.py create mode 100644 third_party/onnx/onnx/numpy_helper.py create mode 100644 third_party/onnx/onnx/onnx-data.in.proto create mode 100644 third_party/onnx/onnx/onnx-data.proto create mode 100644 third_party/onnx/onnx/onnx-data.proto3 create mode 100644 third_party/onnx/onnx/onnx-data_pb.h create mode 100644 third_party/onnx/onnx/onnx-ml.proto create mode 100644 third_party/onnx/onnx/onnx-ml.proto3 create mode 100644 third_party/onnx/onnx/onnx-operators-ml.proto create mode 100644 third_party/onnx/onnx/onnx-operators-ml.proto3 create mode 100644 third_party/onnx/onnx/onnx-operators.in.proto create mode 100644 third_party/onnx/onnx/onnx-operators.proto create mode 100644 third_party/onnx/onnx/onnx-operators.proto3 create mode 100644 third_party/onnx/onnx/onnx-operators_pb.h create mode 100644 third_party/onnx/onnx/onnx.in.proto create mode 100644 third_party/onnx/onnx/onnx.proto create mode 100644 third_party/onnx/onnx/onnx.proto3 create mode 100644 third_party/onnx/onnx/onnx_cpp2py_export/__init__.pyi create mode 100644 third_party/onnx/onnx/onnx_cpp2py_export/checker.pyi create mode 100644 third_party/onnx/onnx/onnx_cpp2py_export/defs.pyi create mode 100644 third_party/onnx/onnx/onnx_cpp2py_export/parser.pyi create mode 100644 third_party/onnx/onnx/onnx_cpp2py_export/shape_inference.pyi create mode 100644 third_party/onnx/onnx/onnx_cpp2py_export/version_converter.pyi create mode 100644 third_party/onnx/onnx/onnx_pb.h create mode 100644 third_party/onnx/onnx/onnxifi.h create mode 100644 third_party/onnx/onnx/onnxifi_dummy.c create mode 100644 third_party/onnx/onnx/onnxifi_ext.h create mode 100644 third_party/onnx/onnx/onnxifi_loader.c create mode 100644 third_party/onnx/onnx/onnxifi_loader.h create mode 100644 third_party/onnx/onnx/onnxifi_utils.cc create mode 100644 third_party/onnx/onnx/onnxifi_utils.h create mode 100644 third_party/onnx/onnx/onnxifi_wrapper.c create mode 100644 third_party/onnx/onnx/parser.py create mode 100644 third_party/onnx/onnx/proto_utils.h create mode 100644 third_party/onnx/onnx/py_utils.h create mode 100644 third_party/onnx/onnx/shape_inference.py create mode 100644 third_party/onnx/onnx/shape_inference/implementation.cc create mode 100644 third_party/onnx/onnx/shape_inference/implementation.h create mode 100644 third_party/onnx/onnx/string_utils.h create mode 100644 third_party/onnx/onnx/test/__init__.pyi create mode 100644 third_party/onnx/onnx/test/automatic_upgrade_test.py create mode 100644 third_party/onnx/onnx/test/basic_test.py create mode 100644 third_party/onnx/onnx/test/checker_test.py create mode 100644 third_party/onnx/onnx/test/compose_test.py create mode 100644 third_party/onnx/onnx/test/cpp/data_propagation_test.cc create mode 100644 third_party/onnx/onnx/test/cpp/function_context_test.cc create mode 100644 third_party/onnx/onnx/test/cpp/function_get_test.cc create mode 100644 third_party/onnx/onnx/test/cpp/function_verify_test.cc create mode 100644 third_party/onnx/onnx/test/cpp/onnxifi_backend_test.cc create mode 100644 third_party/onnx/onnx/test/cpp/op_reg_test.cc create mode 100644 third_party/onnx/onnx/test/cpp/parser_test.cc create mode 100644 third_party/onnx/onnx/test/cpp/schema_registration_test.cc create mode 100644 third_party/onnx/onnx/test/cpp/shape_inference_test.cc create mode 100644 third_party/onnx/onnx/test/cpp/test_main.cc create mode 100644 third_party/onnx/onnx/test/elu_test.py create mode 100644 third_party/onnx/onnx/test/function_test.py create mode 100644 third_party/onnx/onnx/test/helper_test.py create mode 100644 third_party/onnx/onnx/test/hub_test.py create mode 100644 third_party/onnx/onnx/test/numpy_helper_test.py create mode 100644 third_party/onnx/onnx/test/parser_test.py create mode 100644 third_party/onnx/onnx/test/relu_test.py create mode 100644 third_party/onnx/onnx/test/schema_test.py create mode 100644 third_party/onnx/onnx/test/shape_inference_test.py create mode 100644 third_party/onnx/onnx/test/symbolic_shape_test.py create mode 100644 third_party/onnx/onnx/test/test_backend_test.py create mode 100644 third_party/onnx/onnx/test/test_external_data.py create mode 100644 third_party/onnx/onnx/test/test_with_ort.py create mode 100644 third_party/onnx/onnx/test/tools_test.py create mode 100644 third_party/onnx/onnx/test/training_tool_test.py create mode 100644 third_party/onnx/onnx/test/utils_test.py create mode 100644 third_party/onnx/onnx/test/version_converter_test.py create mode 100644 third_party/onnx/onnx/tools/__init__.py create mode 100644 third_party/onnx/onnx/tools/net_drawer.py create mode 100644 third_party/onnx/onnx/tools/update_model_dims.py create mode 100644 third_party/onnx/onnx/utils.py create mode 100644 third_party/onnx/onnx/version_converter.py create mode 100644 third_party/onnx/onnx/version_converter/BaseConverter.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/adapter.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/axes_attribute_to_input.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/axes_input_to_attribute.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/batch_normalization_13_14.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/broadcast_backward_compatibility.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/broadcast_forward_compatibility.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/cast_9_8.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/clip_10_11.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/compatible.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/dropout_11_12.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/extend_supported_types.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/gemm_6_7.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/gemm_7_6.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/maxpool_8_7.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/no_previous_version.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/pad_10_11.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/remove_consumed_inputs.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/reshape_4_5.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/reshape_5_4.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/resize_10_11.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/scan_8_9.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/scan_9_8.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/scatter_10_11.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/slice_9_10.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/softmax_12_13.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/split_12_13.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/split_13_12.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/sum_8_7.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/topk_9_10.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/transformers.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/type_restriction.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/upsample_6_7.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/upsample_8_9.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/upsample_9_10.h create mode 100644 third_party/onnx/onnx/version_converter/adapters/upsample_9_8.h create mode 100644 third_party/onnx/onnx/version_converter/convert.cc create mode 100644 third_party/onnx/onnx/version_converter/convert.h create mode 100644 third_party/onnx/onnx/version_converter/helper.cc create mode 100644 third_party/onnx/onnx/version_converter/helper.h create mode 100644 third_party/onnx/requirements-dev.txt create mode 100644 third_party/onnx/requirements-release.txt create mode 100644 third_party/onnx/requirements.txt create mode 100644 third_party/onnx/setup.cfg create mode 100644 third_party/onnx/setup.py create mode 100644 third_party/onnx/tools/__init__.pyi create mode 100755 third_party/onnx/tools/gen_coverage_report.py create mode 100644 third_party/onnx/tools/mypy-onnx.py create mode 100644 third_party/onnx/tools/protobuf-bench.cc create mode 100644 third_party/onnx/tools/protoc-gen-mypy.bat create mode 100755 third_party/onnx/tools/protoc-gen-mypy.py create mode 100644 third_party/onnx/tools/protoc-gen-mypy.sh.in create mode 100755 third_party/onnx/tools/style.sh create mode 100644 third_party/onnx/tools/update_doc.bat create mode 100755 third_party/onnx/tools/update_doc.sh create mode 100644 third_party/onnx/workflow_scripts/config.py create mode 100644 third_party/onnx/workflow_scripts/test_generated_backend.py create mode 100644 third_party/onnx/workflow_scripts/test_model_zoo.py create mode 100644 third_party/optimizer/.clang-format create mode 100644 third_party/optimizer/.gitignore create mode 100644 third_party/optimizer/CMakeLists.txt create mode 100644 third_party/optimizer/LICENSE create mode 100644 third_party/optimizer/MANIFEST.in create mode 100644 third_party/optimizer/README.md create mode 100644 third_party/optimizer/VERSION_NUMBER create mode 100644 third_party/optimizer/cmake/ONNXOptimizerConfig.cmake.in create mode 100644 third_party/optimizer/cmake/ONNXOptimizerConfigVersion.cmake.in create mode 100644 third_party/optimizer/examples/onnx_optimizer_exec.cpp create mode 100644 third_party/optimizer/onnxoptimizer/__init__.py create mode 100644 third_party/optimizer/onnxoptimizer/cpp2py_export.cc create mode 100644 third_party/optimizer/onnxoptimizer/optimize.cc create mode 100644 third_party/optimizer/onnxoptimizer/optimize.h create mode 100644 third_party/optimizer/onnxoptimizer/pass.cc create mode 100644 third_party/optimizer/onnxoptimizer/pass.h create mode 100644 third_party/optimizer/onnxoptimizer/pass_manager.cc create mode 100644 third_party/optimizer/onnxoptimizer/pass_manager.h create mode 100644 third_party/optimizer/onnxoptimizer/pass_registry.cc create mode 100644 third_party/optimizer/onnxoptimizer/pass_registry.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_deadend.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_duplicate_initializer.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_identity.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_if_with_const_cond.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_nop_cast.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_nop_dropout.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_nop_flatten.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_nop_monotone_argmax.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_nop_pad.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_nop_transpose.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/eliminate_unused_initializer.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/extract_constant_to_initializer.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_add_bias_into_conv.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_bn_into_conv.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_consecutive_concats.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_consecutive_log_softmax.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_consecutive_reduce_unsqueeze.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_consecutive_squeezes.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_consecutive_transposes.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_matmul_add_bias_into_gemm.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_pad_into_conv.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/fuse_transpose_into_gemm.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/lift_lexical_references.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/nop.h create mode 100644 third_party/optimizer/onnxoptimizer/passes/split.h create mode 100644 third_party/optimizer/onnxoptimizer/test/optimizer_test.py create mode 100644 third_party/optimizer/setup.cfg create mode 100644 third_party/optimizer/setup.py create mode 100644 third_party/optimizer/tools/mypy-onnx.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 89b9454ff..47da62291 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,8 +45,10 @@ if(NOT MSVC) endif() endif(NOT MSVC) +include(${PROJECT_SOURCE_DIR}/cmake/build_tools.cmake) if(UNIX AND (NOT APPLE) AND (NOT ANDROID) AND (NOT WITH_TIMVX)) - include(${PROJECT_SOURCE_DIR}/cmake/patchelf.cmake) + download_patchelf() + set(PATCHELF_EXE ${THIRD_PARTY_PATH}/patchelf/bin/patchelf) endif() @@ -423,9 +425,17 @@ if(ENABLE_ENCRYPTION) endif() if(ENABLE_PADDLE2ONNX) + set(BUILD_PADDLE2ONNX ON) add_definitions(-DENABLE_PADDLE2ONNX) - include(${PROJECT_SOURCE_DIR}/cmake/paddle2onnx.cmake) - list(APPEND DEPEND_LIBS external_paddle2onnx) + if(BUILD_PADDLE2ONNX) + download_protobuf() + include(${PROJECT_SOURCE_DIR}/cmake/build_paddle2onnx.cmake) + list(APPEND ALL_DEPLOY_SRCS ${PADDLE2ONNX_ALL_SRCS}) + list(APPEND DEPEND_LIBS p2o_paddle_proto onnx) + else() + include(${PROJECT_SOURCE_DIR}/cmake/paddle2onnx.cmake) + list(APPEND DEPEND_LIBS external_paddle2onnx) + endif() endif(ENABLE_PADDLE2ONNX) if(WITH_CAPI) diff --git a/FastDeploy.cmake.in b/FastDeploy.cmake.in index ff0d82e6c..0e20fb68c 100644 --- a/FastDeploy.cmake.in +++ b/FastDeploy.cmake.in @@ -30,6 +30,7 @@ set(ENABLE_OPENVINO_BACKEND @ENABLE_OPENVINO_BACKEND@) set(ENABLE_POROS_BACKEND @ENABLE_POROS_BACKEND@) set(ENABLE_TRT_BACKEND @ENABLE_TRT_BACKEND@) set(ENABLE_PADDLE2ONNX @ENABLE_PADDLE2ONNX@) +set(BUILD_PADDLE2ONNX @BUILD_PADDLE2ONNX@) set(ENABLE_VISION @ENABLE_VISION@) set(ENABLE_FLYCV @ENABLE_FLYCV@) @@ -346,8 +347,10 @@ if(ENABLE_PADDLE2ONNX) if(ANDROID) message(FATAL_ERROR "Not support fastdeploy-paddle2onnx APIs with Android now!") endif() - find_library(PADDLE2ONNX_LIB paddle2onnx ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle2onnx/lib NO_DEFAULT_PATH) - list(APPEND FASTDEPLOY_LIBS ${PADDLE2ONNX_LIB}) + if(NOT BUILD_PADDLE2ONNX) + find_library(PADDLE2ONNX_LIB paddle2onnx ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/paddle2onnx/lib NO_DEFAULT_PATH) + list(APPEND FASTDEPLOY_LIBS ${PADDLE2ONNX_LIB}) + endif() endif() if(WITH_KUNLUNXIN) diff --git a/cmake/build_paddle2onnx.cmake b/cmake/build_paddle2onnx.cmake new file mode 100644 index 000000000..c7cc15246 --- /dev/null +++ b/cmake/build_paddle2onnx.cmake @@ -0,0 +1,41 @@ +add_definitions(-DMAX_ONNX_OPSET_VERSION=16) +add_definitions(-DPADDLE2ONNX_LIB) + +# Third dependency: onnx +if(NOT TARGET onnx_proto) + if(NOT ONNX_NAMESPACE) + set(ONNX_NAMESPACE "paddle2onnx") + endif() + add_definitions("-DONNX_NAMESPACE=${ONNX_NAMESPACE}") + + set(MSVC_STATIC_CRT ON) + if(ONNX_CUSTOM_PROTOC_PATH) + if(WIN32) + if(MSVC_STATIC_CRT) + # MT + set(ONNX_USE_MSVC_STATIC_RUNTIME ON) + else() + # MD + set(ONNX_USE_MSVC_STATIC_RUNTIME OFF) + endif() + set(ONNX_CUSTOM_PROTOC_PATH "${ONNX_CUSTOM_PROTOC_PATH};$ENV{PATH}") + else() + set(ONNX_CUSTOM_PROTOC_PATH "${ONNX_CUSTOM_PROTOC_PATH}:$ENV{PATH}") + endif() + set(ENV{PATH} ${ONNX_CUSTOM_PROTOC_PATH}) + endif() + + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/onnx) +endif() + +include_directories(${PROJECT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}/third_party/onnx) + +include_directories(${PROJECT_SOURCE_DIR}/third_party/optimizer) +add_subdirectory(${PROJECT_SOURCE_DIR}/paddle2onnx/proto) + +file(GLOB_RECURSE PADDLE2ONNX_ALL_SRCS ${PROJECT_SOURCE_DIR}/paddle2onnx/*.cc ${PROJECT_SOURCE_DIR}/third_party/optimizer/onnxoptimizer/*.cc) +list(REMOVE_ITEM PADDLE2ONNX_ALL_SRCS ${PROJECT_SOURCE_DIR}/paddle2onnx/cpp2py_export.cc ${PROJECT_SOURCE_DIR}/third_party/optimizer/onnxoptimizer/cpp2py_export.cc) + diff --git a/cmake/build_tools.cmake b/cmake/build_tools.cmake new file mode 100644 index 000000000..2a8613c97 --- /dev/null +++ b/cmake/build_tools.cmake @@ -0,0 +1,57 @@ +# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +function(download_patchelf) + if(UNIX AND (NOT APPLE) AND (NOT ANDROID)) + set(PATCHELF_EXE "patchelf") + if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64") + set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/patchelf-0.15.0-aarch64.tar.gz) + download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/patchelf-0.15.0-aarch64.tar.gz ${THIRD_PARTY_PATH}/patchelf) + else() + set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/patchelf-0.15.0-x86_64.tar.gz) + download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/patchelf-0.15.0-x86_64.tar.gz ${THIRD_PARTY_PATH}/patchelf) + endif() + endif() +endfunction() + +function(download_protobuf) + if(WIN32) + if(NOT CMAKE_CL_64) + set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-win-x86-3.16.0.zip) + else() + set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-win-x64-3.16.0.zip) + endif() + set(ORIGIN_ENV_PATH "$ENV{PATH}") + download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/protobuf-win-3.16.0.tgz ${THIRD_PARTY_PATH}/protobuf) + set(ENV{PATH} "${THIRD_PARTY_PATH}\\protobuf\\bin;${ORIGIN_ENV_PATH}") + elseif(APPLE) + if(CURRENT_OSX_ARCH MATCHES "arm64") + set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-osx-arm64-3.16.0.tgz) + else() + set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-osx-x86_64-3.16.0.tgz) + endif() + set(ORIGIN_ENV_PATH "$ENV{PATH}") + download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/protobuf-osx-3.16.0.tgz ${THIRD_PARTY_PATH}/protobuf) + set(ENV{PATH} "${THIRD_PARTY_PATH}/protobuf/bin/:${ORIGIN_ENV_PATH}") + else() + if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64") + set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-linux-aarch64-3.16.0.tgz) + else() + set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/protobuf-linux-x64-3.16.0.tgz) + endif() + set(ORIGIN_ENV_PATH "$ENV{PATH}") + download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/protobuf-linux-3.16.0.tgz ${THIRD_PARTY_PATH}/protobuf) + set(ENV{PATH} "${THIRD_PARTY_PATH}/protobuf/bin/:${ORIGIN_ENV_PATH}") + endif() +endfunction() diff --git a/cmake/paddle_inference.cmake b/cmake/paddle_inference.cmake index fc9cbd8e1..5c125fcc5 100755 --- a/cmake/paddle_inference.cmake +++ b/cmake/paddle_inference.cmake @@ -134,6 +134,7 @@ else() endif(PADDLEINFERENCE_DIRECTORY) if(UNIX AND (NOT APPLE) AND (NOT ANDROID)) + message("?????????????? ${PATCHELF_EXE}") add_custom_target(patchelf_paddle_inference ALL COMMAND bash -c "PATCHELF_EXE=${PATCHELF_EXE} python ${PROJECT_SOURCE_DIR}/scripts/patch_paddle_inference.py ${PADDLEINFERENCE_INSTALL_DIR}/paddle/lib/libpaddle_inference.so" DEPENDS ${LIBRARY_NAME}) endif() diff --git a/cmake/patchelf.cmake b/cmake/patchelf.cmake deleted file mode 100644 index b4b35ba35..000000000 --- a/cmake/patchelf.cmake +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -if(UNIX AND (NOT APPLE) AND (NOT ANDROID)) - set(PATCHELF_EXE "patchelf") - if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64") - set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/patchelf-0.15.0-aarch64.tar.gz) - download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/patchelf-0.15.0-aarch64.tar.gz ${THIRD_PARTY_PATH}/patchelf) - set(PATCHELF_EXE ${THIRD_PARTY_PATH}/patchelf/bin/patchelf) - else() - set(PATCHELF_URL https://bj.bcebos.com/fastdeploy/third_libs/patchelf-0.15.0-x86_64.tar.gz) - download_and_decompress(${PATCHELF_URL} ${CMAKE_CURRENT_BINARY_DIR}/patchelf-0.15.0-x86_64.tar.gz ${THIRD_PARTY_PATH}/patchelf) - set(PATCHELF_EXE ${THIRD_PARTY_PATH}/patchelf/bin/patchelf) - endif() -endif() diff --git a/examples/runtime/cpp/infer_paddle_paddle_inference.cc b/examples/runtime/cpp/infer_paddle_paddle_inference.cc index 454534f93..d271d7a6f 100644 --- a/examples/runtime/cpp/infer_paddle_paddle_inference.cc +++ b/examples/runtime/cpp/infer_paddle_paddle_inference.cc @@ -27,7 +27,6 @@ int main(int argc, char* argv[]) { // https://baidu-paddle.github.io/fastdeploy-api/cpp/html/structfastdeploy_1_1RuntimeOption.html fd::RuntimeOption runtime_option; runtime_option.SetModelPath(model_file, params_file); - runtime_option.UsePaddleInferBackend(); runtime_option.UseCpu(); // If need to configure Paddle Inference backend for more option, we can configure runtime_option.paddle_infer_option diff --git a/paddle2onnx/CMakeLists.txt b/paddle2onnx/CMakeLists.txt new file mode 100644 index 000000000..e69de29bb diff --git a/paddle2onnx/__init__.py b/paddle2onnx/__init__.py new file mode 100755 index 000000000..7d726e8b7 --- /dev/null +++ b/paddle2onnx/__init__.py @@ -0,0 +1,65 @@ +# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from paddle2onnx.utils import logging +from . import command +from .convert import dygraph2onnx +from .convert import program2onnx +from .version import version +from .version import git_version + +__version__ = version +__commit_id__ = git_version + + +def run_convert(model, input_shape_dict=None, scope=None, opset_version=9): + logging.warning( + "[Deprecated] `paddle2onnx.run_convert` will be deprecated in the future version, the recommended usage is `paddle2onnx.export`" + ) + from paddle2onnx.legacy import run_convert + return run_convert(model, input_shape_dict, scope, opset_version) + + +def export(model_file, + params_file="", + save_file=None, + opset_version=11, + auto_upgrade_opset=True, + verbose=True, + enable_onnx_checker=True, + enable_experimental_op=True, + enable_optimize=True, + custom_op_info=None, + deploy_backend="onnxruntime", + calibration_file="", + external_file="", + export_fp16_model=False): + import paddle2onnx.paddle2onnx_cpp2py_export as c_p2o + deploy_backend = deploy_backend.lower() + if custom_op_info is None: + onnx_model_str = c_p2o.export( + model_file, params_file, opset_version, auto_upgrade_opset, verbose, + enable_onnx_checker, enable_experimental_op, enable_optimize, {}, + deploy_backend, calibration_file, external_file, export_fp16_model) + else: + onnx_model_str = c_p2o.export( + model_file, params_file, opset_version, auto_upgrade_opset, verbose, + enable_onnx_checker, enable_experimental_op, enable_optimize, + custom_op_info, deploy_backend, calibration_file, external_file, + export_fp16_model) + if save_file is not None: + with open(save_file, "wb") as f: + f.write(onnx_model_str) + else: + return onnx_model_str diff --git a/paddle2onnx/command.py b/paddle2onnx/command.py new file mode 100755 index 000000000..f72b60ffc --- /dev/null +++ b/paddle2onnx/command.py @@ -0,0 +1,273 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import +from six import text_type as _text_type +import argparse +import ast +import sys +import os +from paddle2onnx.utils import logging + + +def str2list(v): + if len(v) == 0: + return None + v = v.replace(" ", "") + v = eval(v) + return v + + +def arg_parser(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--model_dir", + "-m", + type=_text_type, + default=None, + help="PaddlePaddle model directory, if params stored in single file, you need define '--model_filename' and 'params_filename'." + ) + parser.add_argument( + "--model_filename", + "-mf", + type=_text_type, + default=None, + help="PaddlePaddle model's network file name, which under directory seted by --model_dir" + ) + parser.add_argument( + "--params_filename", + "-pf", + type=_text_type, + default=None, + help="PaddlePaddle model's param file name(param files combined in single file), which under directory seted by --model_dir." + ) + parser.add_argument( + "--save_file", + "-s", + type=_text_type, + default=None, + help="file path to save onnx model") + parser.add_argument( + "--opset_version", + "-ov", + type=int, + default=9, + help="set onnx opset version to export") + parser.add_argument( + "--input_shape_dict", + "-isd", + type=_text_type, + default="None", + help="define input shapes, e.g --input_shape_dict=\"{'image':[1, 3, 608, 608]}\" or" \ + "--input_shape_dict=\"{'image':[1, 3, 608, 608], 'im_shape': [1, 2], 'scale_factor': [1, 2]}\"") + parser.add_argument( + "--enable_dev_version", + type=ast.literal_eval, + default=True, + help="whether to use new version of Paddle2ONNX which is under developing, default True" + ) + parser.add_argument( + "--deploy_backend", + "-d", + type=_text_type, + default="onnxruntime", + choices=["onnxruntime", "tensorrt", "rknn", "others"], + help="Quantize model deploy backend, default onnxruntime.") + parser.add_argument( + "--save_calibration_file", + type=_text_type, + default="calibration.cache", + help="The calibration cache for TensorRT deploy, default calibration.cache." + ) + parser.add_argument( + "--enable_onnx_checker", + type=ast.literal_eval, + default=True, + help="whether check onnx model validity, default True") + parser.add_argument( + "--enable_paddle_fallback", + type=ast.literal_eval, + default=False, + help="whether use PaddleFallback for custom op, default is False") + parser.add_argument( + "--version", + "-v", + action="store_true", + default=False, + help="get version of paddle2onnx") + parser.add_argument( + "--output_names", + "-on", + type=str2list, + default=None, + help="define output names, e.g --output_names=\"[\"output1\"]\" or \ + --output_names=\"[\"output1\", \"output2\", \"output3\"]\" or \ + --output_names=\"{\"Paddleoutput\":\"Onnxoutput\"}\"") + parser.add_argument( + "--enable_auto_update_opset", + type=ast.literal_eval, + default=True, + help="whether enable auto_update_opset, default is True") + parser.add_argument( + "--external_filename", + type=_text_type, + default=None, + help="The filename of external_data when the model is bigger than 2G.") + parser.add_argument( + "--export_fp16_model", + type=ast.literal_eval, + default=False, + help="Whether export FP16 model for ORT-GPU, default False") + return parser + + +def c_paddle_to_onnx(model_file, + params_file="", + save_file=None, + opset_version=7, + auto_upgrade_opset=True, + verbose=True, + enable_onnx_checker=True, + enable_experimental_op=True, + enable_optimize=True, + deploy_backend="onnxruntime", + calibration_file="", + external_file="", + export_fp16_model=False): + import paddle2onnx.paddle2onnx_cpp2py_export as c_p2o + onnx_model_str = c_p2o.export( + model_file, params_file, opset_version, auto_upgrade_opset, verbose, + enable_onnx_checker, enable_experimental_op, enable_optimize, {}, + deploy_backend, calibration_file, external_file, export_fp16_model) + if save_file is not None: + with open(save_file, "wb") as f: + f.write(onnx_model_str) + else: + return onnx_model_str + + +def program2onnx(model_dir, + save_file, + model_filename=None, + params_filename=None, + opset_version=9, + enable_onnx_checker=False, + operator_export_type="ONNX", + input_shape_dict=None, + output_names=None, + auto_update_opset=True): + logging.warning( + "[Deprecated] `paddle2onnx.command.program2onnx` will be deprecated in the future version, the recommended usage is `paddle2onnx.export`" + ) + from paddle2onnx.legacy.command import program2onnx + return program2onnx(model_dir, save_file, model_filename, params_filename, + opset_version, enable_onnx_checker, + operator_export_type, input_shape_dict, output_names, + auto_update_opset) + + +def main(): + if len(sys.argv) < 2: + logging.info("Use \"paddle2onnx -h\" to print the help information") + logging.info( + "For more information, please follow our github repo below:") + logging.info("Github: https://github.com/PaddlePaddle/paddle2onnx.git") + return + + parser = arg_parser() + args = parser.parse_args() + + if args.version: + import paddle2onnx + logging.info("paddle2onnx-{} with python>=3.6, paddlepaddle>=2.0.0". + format(paddle2onnx.__version__)) + return + + assert args.model_dir is not None, "--model_dir should be defined while translating paddle model to onnx" + assert args.save_file is not None, "--save_file should be defined while translating paddle model to onnx" + + input_shape_dict = eval(args.input_shape_dict) + + operator_export_type = "ONNX" + if args.enable_paddle_fallback: + logging.warning( + "[Deprecated] The flag `--enable_paddle_fallback` will be deprecated, and only works while `--enable_dev_version False` now." + ) + operator_export_type = "PaddleFallback" + + if args.output_names is not None and args.enable_dev_version: + logging.warning( + "[Deprecated] The flag `--output_names` is deprecated, if you need to modify the output name, please refer to this tool https://github.com/jiangjiajun/PaddleUtils/tree/main/onnx " + ) + if not isinstance(args.output_names, (list, dict)): + raise TypeError( + "The output_names should be 'list' or 'dict', but received type is %s." + % type(args.output_names)) + + if input_shape_dict is not None and args.enable_dev_version: + logging.warning( + "[Deprecated] The flag `--input_shape_dict` is deprecated, if you need to modify the input shape of PaddlePaddle model, please refer to this tool https://github.com/jiangjiajun/PaddleUtils/tree/main/paddle " + ) + + if args.enable_dev_version: + model_file = os.path.join(args.model_dir, args.model_filename) + if args.params_filename is None: + params_file = "" + else: + params_file = os.path.join(args.model_dir, args.params_filename) + + if args.external_filename is None: + args.external_filename = "external_data" + + base_path = os.path.dirname(args.save_file) + if base_path and not os.path.exists(base_path): + os.mkdir(base_path) + external_file = os.path.join(base_path, args.external_filename) + + calibration_file = args.save_calibration_file + c_paddle_to_onnx( + model_file=model_file, + params_file=params_file, + save_file=args.save_file, + opset_version=args.opset_version, + auto_upgrade_opset=args.enable_auto_update_opset, + verbose=True, + enable_onnx_checker=args.enable_onnx_checker, + enable_experimental_op=True, + enable_optimize=True, + deploy_backend=args.deploy_backend, + calibration_file=calibration_file, + external_file=external_file, + export_fp16_model=args.export_fp16_model) + logging.info("===============Make PaddlePaddle Better!================") + logging.info("A little survey: https://iwenjuan.baidu.com/?code=r8hu2s") + return + + program2onnx( + args.model_dir, + args.save_file, + args.model_filename, + args.params_filename, + opset_version=args.opset_version, + enable_onnx_checker=args.enable_onnx_checker, + operator_export_type=operator_export_type, + input_shape_dict=input_shape_dict, + output_names=args.output_names, + auto_update_opset=args.enable_auto_update_opset) + logging.info("===============Make PaddlePaddle Better!================") + logging.info("A little survey: https://iwenjuan.baidu.com/?code=r8hu2s") + + +if __name__ == "__main__": + main() diff --git a/paddle2onnx/convert.py b/paddle2onnx/convert.py new file mode 100755 index 000000000..50c8db2da --- /dev/null +++ b/paddle2onnx/convert.py @@ -0,0 +1,83 @@ +# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from paddle2onnx.utils import logging + + +def export_onnx(paddle_graph, + save_file, + opset_version=9, + enable_onnx_checker=False, + operator_export_type="ONNX", + verbose=False, + auto_update_opset=True, + output_names=None): + from paddle2onnx.legacy.convert import export_onnx + return export_onnx(paddle_graph, save_file, opset_version, opset_version, + enable_onnx_checker, operator_export_type, verbose, + auto_update_opset, output_names) + + +def dygraph2onnx(layer, save_file, input_spec=None, opset_version=9, **configs): + if "enable_dev_version" in configs and not configs["enable_dev_version"]: + from paddle2onnx.legacy.convert import dygraph2onnx + return dygraph2onnx(layer, save_file, input_spec, opset_version, + **configs) + + import os + import paddle2onnx + import paddle + dirname = os.path.split(save_file)[0] + paddle_model_dir = os.path.join(dirname, + "paddle_model_static_onnx_temp_dir") + model_file = os.path.join(paddle_model_dir, "model.pdmodel") + params_file = os.path.join(paddle_model_dir, "model.pdiparams") + + if os.path.exists(paddle_model_dir): + if os.path.isfile(paddle_model_dir): + logging.info("File {} exists, will remove it.".format( + paddle_model_dir)) + os.remove(paddle_model_dir) + if os.path.isfile(model_file): + os.remove(model_file) + if os.path.isfile(params_file): + os.remove(params_file) + paddle.jit.save(layer, os.path.join(paddle_model_dir, "model"), input_spec) + logging.info("Static PaddlePaddle model saved in {}.".format( + paddle_model_dir)) + if not os.path.isfile(params_file): + params_file = "" + + if save_file is None: + return paddle2onnx.export(model_file, params_file, save_file, + opset_version) + else: + paddle2onnx.export(model_file, params_file, save_file, opset_version) + logging.info("ONNX model saved in {}.".format(save_file)) + + +def program2onnx(program, + scope, + save_file, + feed_var_names=None, + target_vars=None, + opset_version=9, + enable_onnx_checker=False, + operator_export_type="ONNX", + auto_update_opset=True, + **configs): + from paddle2onnx.legacy.convert import program2onnx + return program2onnx(program, scope, save_file, feed_var_names, target_vars, + opset_version, enable_onnx_checker, + operator_export_type, auto_update_opset, **configs) diff --git a/paddle2onnx/convert_to_fp16.py b/paddle2onnx/convert_to_fp16.py new file mode 100755 index 000000000..b0321f5ae --- /dev/null +++ b/paddle2onnx/convert_to_fp16.py @@ -0,0 +1,38 @@ +# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import absolute_import + +import argparse +import sys +from paddle2onnx.utils import logging + + +def parse_arguments(): + parser = argparse.ArgumentParser() + parser.add_argument( + '--input_model_path', + required=True, + help='The path of input onnx model file.') + parser.add_argument( + '--output_model_path', + required=True, + help='The file path to write optimized onnx model file.') + return parser.parse_args() + + +if __name__ == '__main__': + args = parse_arguments() + import paddle2onnx.paddle2onnx_cpp2py_export as c_p2o + c_p2o.convert_to_fp16(args.input_model_path, args.output_model_path) + logging.info("FP16 model saved in {}.".format(args.output_model_path)) diff --git a/paddle2onnx/converter.cc b/paddle2onnx/converter.cc new file mode 100644 index 000000000..53e5d4817 --- /dev/null +++ b/paddle2onnx/converter.cc @@ -0,0 +1,287 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/converter.h" + +#include +#include +#include +#include + +#include "paddle2onnx/mapper/exporter.h" +#include "paddle2onnx/optimizer/convert_fp32_to_fp16.h" + +namespace paddle2onnx { + +PADDLE2ONNX_DECL bool IsExportable(const char* model, const char* params, + int32_t opset_version, + bool auto_upgrade_opset, bool verbose, + bool enable_onnx_checker, + bool enable_experimental_op, + bool enable_optimize, CustomOp* ops, + int op_count, const char* deploy_backend) { + auto parser = PaddleParser(); + if (!parser.Init(model, params)) { + return false; + } + paddle2onnx::ModelExporter me; + std::set unsupported_ops; + if (!me.CheckIfOpSupported(parser, &unsupported_ops, + enable_experimental_op)) { + return false; + } + + // Add custom operator information + if (ops != nullptr && op_count > 0) { + for (int i = 0; i < op_count; ++i) { + std::string op_name(ops[i].op_name, strlen(ops[i].op_name)); + std::string export_op_name(ops[i].export_op_name, + strlen(ops[i].export_op_name)); + if (export_op_name == "paddle2onnx_null") { + export_op_name = op_name; + } + me.custom_ops[op_name] = export_op_name; + } + } + + if (me.GetMinOpset(parser, false) < 0) { + return false; + } + std::string calibration_str; + std::string onnx_model = + me.Run(parser, opset_version, auto_upgrade_opset, verbose, + enable_onnx_checker, enable_experimental_op, enable_optimize, + deploy_backend, &calibration_str); + if (onnx_model.empty()) { + P2OLogger(verbose) << "The exported ONNX model is invalid!" << std::endl; + return false; + } + if (parser.is_quantized_model && "tensorrt" == std::string(deploy_backend) && + calibration_str.empty()) { + P2OLogger(verbose) << "Can not generate calibration cache for TensorRT " + "deploy backend when export quantize model." + << std::endl; + return false; + } + return true; +} + +PADDLE2ONNX_DECL bool IsExportable(const void* model_buffer, int model_size, + const void* params_buffer, int params_size, + int32_t opset_version, + bool auto_upgrade_opset, bool verbose, + bool enable_onnx_checker, + bool enable_experimental_op, + bool enable_optimize, CustomOp* ops, + int op_count, const char* deploy_backend) { + auto parser = PaddleParser(); + if (!parser.Init(model_buffer, model_size, params_buffer, params_size)) { + return false; + } + paddle2onnx::ModelExporter me; + std::set unsupported_ops; + if (!me.CheckIfOpSupported(parser, &unsupported_ops, + enable_experimental_op)) { + return false; + } + + // Add custom operator information + if (ops != nullptr && op_count > 0) { + for (int i = 0; i < op_count; ++i) { + std::string op_name(ops[i].op_name, strlen(ops[i].op_name)); + std::string export_op_name(ops[i].export_op_name, + strlen(ops[i].export_op_name)); + if (export_op_name == "paddle2onnx_null") { + export_op_name = op_name; + } + me.custom_ops[op_name] = export_op_name; + } + } + + if (me.GetMinOpset(parser, false) < 0) { + return false; + } + std::string calibration_str; + std::string onnx_model = + me.Run(parser, opset_version, auto_upgrade_opset, verbose, + enable_onnx_checker, enable_experimental_op, enable_optimize, + deploy_backend, &calibration_str); + if (onnx_model.empty()) { + P2OLogger(verbose) << "The exported ONNX model is invalid!" << std::endl; + return false; + } + if (parser.is_quantized_model && "tensorrt" == std::string(deploy_backend) && + calibration_str.empty()) { + P2OLogger(verbose) << "Can not generate calibration cache for TensorRT " + "deploy backend when export quantize model." + << std::endl; + return false; + } + return true; +} + +PADDLE2ONNX_DECL bool Export( + const char* model, const char* params, char** out, int* out_size, + int32_t opset_version, bool auto_upgrade_opset, bool verbose, + bool enable_onnx_checker, bool enable_experimental_op, bool enable_optimize, + CustomOp* ops, int op_count, const char* deploy_backend, + char** calibration_cache, int* calibration_size, const char* external_file, + bool* save_external, bool export_fp16_model) { + auto parser = PaddleParser(); + P2OLogger(verbose) << "Start to parsing Paddle model..." << std::endl; + if (!parser.Init(model, params)) { + P2OLogger(verbose) << "Paddle model parsing failed." << std::endl; + return false; + } + paddle2onnx::ModelExporter me; + + // Add custom operator information + if (ops != nullptr && op_count > 0) { + for (int i = 0; i < op_count; ++i) { + std::string op_name(ops[i].op_name, strlen(ops[i].op_name)); + std::string export_op_name(ops[i].export_op_name, + strlen(ops[i].export_op_name)); + if (export_op_name == "paddle2onnx_null") { + export_op_name = op_name; + } + me.custom_ops[op_name] = export_op_name; + } + } + + std::string calibration_str; + std::string result = me.Run( + parser, opset_version, auto_upgrade_opset, verbose, enable_onnx_checker, + enable_experimental_op, enable_optimize, deploy_backend, &calibration_str, + external_file, save_external, export_fp16_model); + if (result.empty()) { + P2OLogger(verbose) << "The exported ONNX model is invalid!" << std::endl; + return false; + } + if (parser.is_quantized_model && "tensorrt" == std::string(deploy_backend) && + calibration_str.empty()) { + P2OLogger(verbose) << "Can not generate calibration cache for TensorRT " + "deploy backend when export quantize model." + << std::endl; + return false; + } + *out_size = result.size(); + *out = new char[*out_size](); + memcpy(*out, result.data(), *out_size); + if (calibration_str.size()) { + *calibration_size = calibration_str.size(); + *calibration_cache = new char[*calibration_size](); + memcpy(*calibration_cache, calibration_str.data(), *calibration_size); + } + return true; +} + +PADDLE2ONNX_DECL bool Export( + const void* model_buffer, int64_t model_size, const void* params_buffer, + int64_t params_size, char** out, int* out_size, int32_t opset_version, + bool auto_upgrade_opset, bool verbose, bool enable_onnx_checker, + bool enable_experimental_op, bool enable_optimize, CustomOp* ops, + int op_count, const char* deploy_backend, char** calibration_cache, + int* calibration_size, const char* external_file, bool* save_external, + bool export_fp16_model) { + auto parser = PaddleParser(); + P2OLogger(verbose) << "Start to parsing Paddle model..." << std::endl; + if (!parser.Init(model_buffer, model_size, params_buffer, params_size)) { + P2OLogger(verbose) << "Paddle model parsing failed." << std::endl; + return false; + } + paddle2onnx::ModelExporter me; + + // Add custom operator information + if (ops != nullptr && op_count > 0) { + for (int i = 0; i < op_count; ++i) { + std::string op_name(ops[i].op_name, strlen(ops[i].op_name)); + std::string export_op_name(ops[i].export_op_name, + strlen(ops[i].export_op_name)); + if (export_op_name == "paddle2onnx_null") { + export_op_name = op_name; + } + me.custom_ops[op_name] = export_op_name; + } + } + std::string calibration_str; + std::string result = me.Run( + parser, opset_version, auto_upgrade_opset, verbose, enable_onnx_checker, + enable_experimental_op, enable_optimize, deploy_backend, &calibration_str, + external_file, save_external, export_fp16_model); + if (result.empty()) { + P2OLogger(verbose) << "The exported ONNX model is invalid!" << std::endl; + return false; + } + + if (parser.is_quantized_model && "tensorrt" == std::string(deploy_backend) && + calibration_str.empty()) { + P2OLogger(verbose) << "Can not generate calibration cache for TensorRT " + "deploy backend when export quantize model." + << std::endl; + return false; + } + *out_size = result.size(); + *out = new char[*out_size](); + memcpy(*out, result.data(), *out_size); + if (calibration_str.size()) { + *calibration_size = calibration_str.size(); + *calibration_cache = new char[*calibration_size](); + memcpy(*calibration_cache, calibration_str.data(), *calibration_size); + } + return true; +} + +PADDLE2ONNX_DECL bool ConvertFP32ToFP16(const char* onnx_model, int model_size, + char** out_model, int* out_model_size) { + std::string onnx_proto(onnx_model, onnx_model + model_size); + ONNX_NAMESPACE::ModelProto model; + model.ParseFromString(onnx_proto); + + P2OLogger(true) << "Convert FP32 ONNX model to FP16." << std::endl; + ConvertFp32ToFp16 convert; + convert.Convert(&model); + // save external data file for big model + std::string external_data_file; + if (model.ByteSizeLong() > INT_MAX) { + external_data_file = "external_data"; + } + paddle2onnx::ModelExporter me; + if (external_data_file.size()) { + me.SaveExternalData(model.mutable_graph(), external_data_file); + } + // check model + me.ONNXChecker(model, true); + + std::string result; + if (!model.SerializeToString(&result)) { + P2OLogger(true) + << "Error happenedd while optimizing the exported ONNX model." + << std::endl; + return false; + } + + *out_model_size = result.size(); + *out_model = new char[*out_model_size](); + memcpy(*out_model, result.data(), *out_model_size); + return true; +} + +ModelTensorInfo::~ModelTensorInfo() { + if (shape != nullptr) { + delete[] shape; + shape = nullptr; + rank = 0; + } +} +} // namespace paddle2onnx diff --git a/paddle2onnx/converter.h b/paddle2onnx/converter.h new file mode 100755 index 000000000..0fbed1c98 --- /dev/null +++ b/paddle2onnx/converter.h @@ -0,0 +1,130 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once +#include + +#if defined(_WIN32) +#ifdef PADDLE2ONNX_LIB +#define PADDLE2ONNX_DECL __declspec(dllexport) +#else +#define PADDLE2ONNX_DECL __declspec(dllimport) +#endif // PADDLE2ONNX_LIB +#else +#define PADDLE2ONNX_DECL __attribute__((visibility("default"))) +#endif // _WIN32 + +namespace paddle2onnx { + +struct PADDLE2ONNX_DECL CustomOp { + char op_name[100] = "null"; + // if export_op_name set as "paddle2onnx_null" + // it will automaticly change to `op_name` + char export_op_name[100] = "paddle2onnx_null"; +}; + +PADDLE2ONNX_DECL bool IsExportable( + const char* model, const char* params, int32_t opset_version = 11, + bool auto_upgrade_opset = true, bool verbose = false, + bool enable_onnx_checker = true, bool enable_experimental_op = false, + bool enable_optimize = true, CustomOp* ops = nullptr, int op_count = 0, + const char* deploy_backend = "onnxruntime"); + +PADDLE2ONNX_DECL bool IsExportable( + const void* model_buffer, int model_size, const void* params_buffer, + int params_size, int32_t opset_version = 11, bool auto_upgrade_opset = true, + bool verbose = false, bool enable_onnx_checker = true, + bool enable_experimental_op = false, bool enable_optimize = true, + CustomOp* ops = nullptr, int op_count = 0, + const char* deploy_backend = "onnxruntime"); + +PADDLE2ONNX_DECL bool Export( + const char* model, const char* params, char** out, int* out_size, + int32_t opset_version = 11, bool auto_upgrade_opset = true, + bool verbose = false, bool enable_onnx_checker = true, + bool enable_experimental_op = false, bool enable_optimize = true, + CustomOp* ops = nullptr, int op_count = 0, + const char* deploy_backend = "onnxruntime", + char** calibration_cache = nullptr, int* calibration_size = 0, + const char* external_file = "", bool* save_external = nullptr, + bool export_fp16_model = false); + +PADDLE2ONNX_DECL bool Export( + const void* model_buffer, int64_t model_size, const void* params_buffer, + int64_t params_size, char** out, int* out_size, int32_t opset_version = 11, + bool auto_upgrade_opset = true, bool verbose = false, + bool enable_onnx_checker = true, bool enable_experimental_op = false, + bool enable_optimize = true, CustomOp* ops = nullptr, int op_count = 0, + const char* deploy_backend = "onnxruntime", + char** calibration_cache = nullptr, int* calibration_size = 0, + const char* external_file = "", bool* save_external = nullptr, + bool export_fp16_model = false); + +// Following are inside usage, will remove it maybe +struct PADDLE2ONNX_DECL ModelTensorInfo { + char name[100] = ""; + int64_t* shape = nullptr; + int32_t rank = 0; + // 0: float32 + // 1: double + // 2: uint8 + // 3: int8 + // 4: int32 + // 5: int64 + // 6: float16 + int32_t dtype = 0; + ~ModelTensorInfo(); +}; + +struct PADDLE2ONNX_DECL NMSParameters { + int64_t background_label = -1; + int64_t keep_top_k = 300; + float nms_eta = 1.0; + float nms_threshold = 0.7; + float score_threshold = 0.01; + int64_t nms_top_k = 10000; + bool normalized = true; +}; + +struct PADDLE2ONNX_DECL OnnxReader { + OnnxReader(const char* model_buffer, int buffer_size); + // suppose the maximum number of inputs/outputs is 100 + // suppose the longest string of inputs/outputs is 200 + // suppose the biggest rank will be less than 10 + ModelTensorInfo inputs[100]; + ModelTensorInfo outputs[100]; + int num_inputs; + int num_outputs; +}; + +PADDLE2ONNX_DECL bool RemoveMultiClassNMS(const char* onnx_model, + int model_size, char** out_model, + int* out_model_size); + +PADDLE2ONNX_DECL bool ConvertFP32ToFP16(const char* onnx_model, int model_size, + char** out_model, int* out_model_size); + +struct PADDLE2ONNX_DECL PaddleReader { + PaddleReader(const char* model_buffer, int buffer_size); + // suppose the maximum number of inputs/outputs is 100 + // suppose the longest string of inputs/outputs is 200 + ModelTensorInfo inputs[100]; + ModelTensorInfo outputs[100]; + int num_inputs; + int num_outputs; + bool has_nms = false; + bool is_quantize_model = false; + NMSParameters nms_params; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/cpp2py_export.cc b/paddle2onnx/cpp2py_export.cc new file mode 100644 index 000000000..0537d3c56 --- /dev/null +++ b/paddle2onnx/cpp2py_export.cc @@ -0,0 +1,128 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#include + +#include +#include + +#include "paddle2onnx/converter.h" +#include "paddle2onnx/mapper/exporter.h" +#include "paddle2onnx/optimizer/paddle2onnx_optimizer.h" + +namespace paddle2onnx { + +typedef std::map CustomOpInfo; +PYBIND11_MODULE(paddle2onnx_cpp2py_export, m) { + m.doc() = "Paddle2ONNX: export PaddlePaddle to ONNX"; + m.def("export", [](const std::string& model_filename, + const std::string& params_filename, int opset_version = 9, + bool auto_upgrade_opset = true, bool verbose = true, + bool enable_onnx_checker = true, + bool enable_experimental_op = true, + bool enable_optimize = true, + const CustomOpInfo& info = CustomOpInfo(), + const std::string& deploy_backend = "onnxruntime", + const std::string& calibration_file = "", + const std::string& external_file = "", + const bool& export_fp16_model = false) { + P2OLogger(verbose) << "Start to parse PaddlePaddle model..." << std::endl; + P2OLogger(verbose) << "Model file path: " << model_filename << std::endl; + P2OLogger(verbose) << "Paramters file path: " << params_filename + << std::endl; + if (info.size() == 0) { + char* out = nullptr; + int size = 0; + char* calibration_cache = nullptr; + int cache_size = 0; + bool save_external; + if (!Export(model_filename.c_str(), params_filename.c_str(), &out, &size, + opset_version, auto_upgrade_opset, verbose, + enable_onnx_checker, enable_experimental_op, enable_optimize, + nullptr, 0, deploy_backend.c_str(), &calibration_cache, + &cache_size, external_file.c_str(), &save_external, + export_fp16_model)) { + P2OLogger(verbose) << "Paddle model convert failed." << std::endl; + return pybind11::bytes(""); + } + if (cache_size) { + std::string calibration_cache_str(calibration_cache, + calibration_cache + cache_size); + std::ofstream cache_file; + cache_file.open(calibration_file, std::ios::out); + cache_file << calibration_cache_str; + delete calibration_cache; + calibration_cache = nullptr; + P2OLogger(verbose) << "TensorRT calibration cache path: " + << calibration_file << std::endl; + } + std::string onnx_proto(out, out + size); + delete out; + out = nullptr; + return pybind11::bytes(onnx_proto); + } + + std::vector ops; + ops.resize(info.size()); + int index = 0; + for (auto& item : info) { + strcpy(ops[index].op_name, item.first.c_str()); + strcpy(ops[index].export_op_name, item.second.c_str()); + index += 1; + } + char* out = nullptr; + int size = 0; + char* calibration_cache = nullptr; + int cache_size = 0; + bool save_external; + if (!Export(model_filename.c_str(), params_filename.c_str(), &out, &size, + opset_version, auto_upgrade_opset, verbose, enable_onnx_checker, + enable_experimental_op, enable_optimize, ops.data(), + info.size(), deploy_backend.c_str(), &calibration_cache, + &cache_size, external_file.c_str(), &save_external, + export_fp16_model)) { + P2OLogger(verbose) << "Paddle model convert failed." << std::endl; + return pybind11::bytes(""); + } + if (cache_size) { + std::string calibration_cache_str(calibration_cache, + calibration_cache + cache_size); + std::ofstream cache_file; + cache_file.open(calibration_file, std::ios::out); + cache_file << calibration_cache_str; + delete calibration_cache; + calibration_cache = nullptr; + P2OLogger(verbose) << "TensorRT calibration cache path: " + << calibration_file << std::endl; + } + std::string onnx_proto(out, out + size); + delete out; + out = nullptr; + return pybind11::bytes(onnx_proto); + }); + m.def( + "optimize", + [](const std::string& model_path, const std::string& optimized_model_path, + const std::map>& shape_infos) { + ONNX_NAMESPACE::optimization::OptimizePaddle2ONNX( + model_path, optimized_model_path, shape_infos); + }); + m.def("convert_to_fp16", [](const std::string& fp32_model_path, + const std::string& fp16_model_path) { + paddle2onnx::optimization::Paddle2ONNXFP32ToFP16(fp32_model_path, + fp16_model_path); + }); +} +} // namespace paddle2onnx diff --git a/paddle2onnx/legacy/__init__.py b/paddle2onnx/legacy/__init__.py new file mode 100755 index 000000000..12737e859 --- /dev/null +++ b/paddle2onnx/legacy/__init__.py @@ -0,0 +1,128 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import absolute_import + +__version__ = "0.9.6" + +import paddle +from .convert import dygraph2onnx, program2onnx +from .op_mapper import register_op_mapper +from typing import TypeVar +from paddle2onnx.utils import logging +from paddle2onnx.legacy.op_mapper import OpMapper +from . import command + +OP_WITHOUT_KERNEL_SET = { + 'feed', 'fetch', 'recurrent', 'go', 'rnn_memory_helper_grad', + 'conditional_block', 'while', 'send', 'recv', 'listen_and_serv', + 'fl_listen_and_serv', 'ncclInit', 'select', 'checkpoint_notify', + 'gen_bkcl_id', 'c_gen_bkcl_id', 'gen_nccl_id', 'c_gen_nccl_id', + 'c_comm_init', 'c_sync_calc_stream', 'c_sync_comm_stream', + 'queue_generator', 'dequeue', 'enqueue', 'heter_listen_and_serv', + 'c_wait_comm', 'c_wait_compute', 'c_gen_hccl_id', 'c_comm_init_hccl', + 'copy_cross_scope' +} + + +def process_old_ops_desc(model): + for i in range(len(model.blocks[0].ops)): + if model.blocks[0].ops[i].type == "matmul": + if not model.blocks[0].ops[i].has_attr("head_number"): + model.blocks[0].ops[i]._set_attr("head_number", 1) + elif model.blocks[0].ops[i].type == "yolo_box": + if not model.blocks[0].ops[i].has_attr("iou_aware"): + model.blocks[0].ops[i]._set_attr("iou_aware", False) + if not model.blocks[0].ops[i].has_attr("iou_aware_factor"): + model.blocks[0].ops[i]._set_attr("iou_aware_factor", 0.5) + + +def get_all_registered_ops(save_file=None): + ops = list(OpMapper.OPSETS.keys()) + logging.warning("The number of all registered OPs is: {}".format(len(ops))) + if save_file is None: + return + with open(save_file, "w") as f: + logging.warning("All registered OPs will be written to the file: {}". + format(save_file)) + f.write("Total OPs num: {} \n".format(len(ops))) + for index in range(len(ops)): + op = ops[index] + f.write(str(index + 1) + ". " + op + "\n") + return + + +def run_convert(model, input_shape_dict=None, scope=None, opset_version=9): + paddle_version = paddle.__version__ + if isinstance(model, paddle.static.Program): + process_old_ops_desc(model) + if input_shape_dict is not None: + model_version = model.desc._version() + major_ver = model_version // 1000000 + minor_ver = (model_version - major_ver * 1000000) // 1000 + patch_ver = model_version - major_ver * 1000000 - minor_ver * 1000 + model_version = "{}.{}.{}".format(major_ver, minor_ver, patch_ver) + if model_version != paddle_version: + logging.warning( + "The model is saved by paddlepaddle v{}, but now your paddlepaddle is version of {}, this difference may cause error, it is recommend you reinstall a same version of paddlepaddle for this model". + format(model_version, paddle_version)) + for k, v in input_shape_dict.items(): + model.blocks[0].var(k).desc.set_shape(v) + for i in range(len(model.blocks[0].ops)): + if model.blocks[0].ops[i].type in OP_WITHOUT_KERNEL_SET: + continue + model.blocks[0].ops[i].desc.infer_shape(model.blocks[0].desc) + if scope is None: + scope = paddle.static.global_scope() + input_names = list() + output_vars = list() + for i in range(len(model.blocks[0].ops)): + if model.blocks[0].ops[i].type == "feed": + input_names.append(model.blocks[0].ops[i].output("Out")[0]) + if model.blocks[0].ops[i].type == "fetch": + output_vars.append(model.blocks[0].var(model.blocks[0].ops[i] + .input("X")[0])) + return program2onnx( + model, + scope, + save_file=None, + feed_var_names=input_names, + target_vars=output_vars, + opset_version=opset_version, + enable_onnx_checker=True) + elif isinstance(model, paddle.jit.TranslatedLayer): + process_old_ops_desc(model.program()) + model_version = model.program().desc._version() + major_ver = model_version // 1000000 + minor_ver = (model_version - major_ver * 1000000) // 1000 + patch_ver = model_version - major_ver * 1000000 - minor_ver * 1000 + model_version = "{}.{}.{}".format(major_ver, minor_ver, patch_ver) + if model_version != paddle_version: + logging.warning( + "The model is saved by paddlepaddle v{}, but now your paddlepaddle is version of {}, this difference may cause error, it is recommend you reinstall a same version of paddlepaddle for this model". + format(model_version, paddle_version)) + + if input_shape_dict is not None: + for k, v in input_shape_dict.items(): + model.program().blocks[0].var(k).desc.set_shape(v) + for i in range(len(model.program().blocks[0].ops)): + if model.program().blocks[0].ops[ + i].type in OP_WITHOUT_KERNEL_SET: + continue + model.program().blocks[0].ops[i].desc.infer_shape(model.program( + ).blocks[0].desc) + return dygraph2onnx(model, save_file=None, opset_version=opset_version) + else: + raise Exception( + "Only support model loaded from paddle.static.load_inference_model() or paddle.jit.load()" + ) diff --git a/paddle2onnx/legacy/command.py b/paddle2onnx/legacy/command.py new file mode 100755 index 000000000..eb67b6d9f --- /dev/null +++ b/paddle2onnx/legacy/command.py @@ -0,0 +1,287 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import +from six import text_type as _text_type +import argparse +import ast +import sys +import os +import paddle.fluid as fluid +from paddle2onnx.utils import logging + + +def str2list(v): + if len(v) == 0: + return None + v = v.replace(" ", "") + v = eval(v) + return v + + +def arg_parser(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--model_dir", + "-m", + type=_text_type, + default=None, + help="PaddlePaddle model directory, if params stored in single file, you need define '--model_filename' and 'params_filename'." + ) + parser.add_argument( + "--model_filename", + "-mf", + type=_text_type, + default=None, + help="PaddlePaddle model's network file name, which under directory seted by --model_dir" + ) + parser.add_argument( + "--params_filename", + "-pf", + type=_text_type, + default=None, + help="PaddlePaddle model's param file name(param files combined in single file), which under directory seted by --model_dir." + ) + parser.add_argument( + "--save_file", + "-s", + type=_text_type, + default=None, + help="file path to save onnx model") + parser.add_argument( + "--opset_version", + "-ov", + type=int, + default=9, + help="set onnx opset version to export") + parser.add_argument( + "--input_shape_dict", + "-isd", + type=_text_type, + default="None", + help="define input shapes, e.g --input_shape_dict=\"{'image':[1, 3, 608, 608]}\" or" \ + "--input_shape_dict=\"{'image':[1, 3, 608, 608], 'im_shape': [1, 2], 'scale_factor': [1, 2]}\"") + parser.add_argument( + "--enable_dev_version", + type=ast.literal_eval, + default=False, + help="whether to use new version of Paddle2ONNX which is under developing, default False" + ) + parser.add_argument( + "--enable_onnx_checker", + type=ast.literal_eval, + default=True, + help="whether check onnx model validity, default True") + parser.add_argument( + "--enable_paddle_fallback", + type=ast.literal_eval, + default=False, + help="whether use PaddleFallback for custom op, default is False") + parser.add_argument( + "--version", + "-v", + action="store_true", + default=False, + help="get version of paddle2onnx") + parser.add_argument( + "--output_names", + "-on", + type=str2list, + default=None, + help="define output names, e.g --output_names=\"[\"output1\"]\" or \ + --output_names=\"[\"output1\", \"output2\", \"output3\"]\" or \ + --output_names=\"{\"Paddleoutput\":\"Onnxoutput\"}\"") + parser.add_argument( + "--enable_auto_update_opset", + type=ast.literal_eval, + default=True, + help="whether enable auto_update_opset, default is True") + return parser + + +def c_paddle_to_onnx(model_file, + params_file="", + save_file=None, + opset_version=7, + auto_upgrade_opset=True, + verbose=True, + enable_onnx_checker=True, + enable_experimental_op=True, + enable_optimize=True): + import paddle2onnx.paddle2onnx_cpp2py_export as c_p2o + onnx_model_str = c_p2o.export( + model_file, params_file, opset_version, auto_upgrade_opset, verbose, + enable_onnx_checker, enable_experimental_op, enable_optimize) + if save_file is not None: + with open(save_file, "wb") as f: + f.write(onnx_model_str) + else: + return onnx_model_str + + +def program2onnx(model_dir, + save_file, + model_filename=None, + params_filename=None, + opset_version=9, + enable_onnx_checker=False, + operator_export_type="ONNX", + input_shape_dict=None, + output_names=None, + auto_update_opset=True): + try: + import paddle + except: + logging.error( + "paddlepaddle not installed, use \"pip install paddlepaddle\"") + + v0, v1, v2 = paddle.__version__.split('.') + if v0 == '0' and v1 == '0' and v2 == '0': + logging.warning("You are use develop version of paddlepaddle") + elif int(v0) <= 1 and int(v1) < 8: + raise ImportError("paddlepaddle>=1.8.0 is required") + + import paddle2onnx as p2o + # convert model save with 'paddle.fluid.io.save_inference_model' + if hasattr(paddle, 'enable_static'): + paddle.enable_static() + exe = fluid.Executor(fluid.CPUPlace()) + if model_filename is None and params_filename is None: + [program, feed_var_names, fetch_vars] = fluid.io.load_inference_model( + model_dir, exe) + else: + [program, feed_var_names, fetch_vars] = fluid.io.load_inference_model( + model_dir, + exe, + model_filename=model_filename, + params_filename=params_filename) + + OP_WITHOUT_KERNEL_SET = { + 'feed', 'fetch', 'recurrent', 'go', 'rnn_memory_helper_grad', + 'conditional_block', 'while', 'send', 'recv', 'listen_and_serv', + 'fl_listen_and_serv', 'ncclInit', 'select', 'checkpoint_notify', + 'gen_bkcl_id', 'c_gen_bkcl_id', 'gen_nccl_id', 'c_gen_nccl_id', + 'c_comm_init', 'c_sync_calc_stream', 'c_sync_comm_stream', + 'queue_generator', 'dequeue', 'enqueue', 'heter_listen_and_serv', + 'c_wait_comm', 'c_wait_compute', 'c_gen_hccl_id', 'c_comm_init_hccl', + 'copy_cross_scope' + } + if input_shape_dict is not None: + import paddle2onnx + paddle2onnx.legacy.process_old_ops_desc(program) + paddle_version = paddle.__version__ + model_version = program.desc._version() + major_ver = model_version // 1000000 + minor_ver = (model_version - major_ver * 1000000) // 1000 + patch_ver = model_version - major_ver * 1000000 - minor_ver * 1000 + model_version = "{}.{}.{}".format(major_ver, minor_ver, patch_ver) + if model_version != paddle_version: + logging.warning( + "The model is saved by paddlepaddle v{}, but now your paddlepaddle is version of {}, this difference may cause error, it is recommend you reinstall a same version of paddlepaddle for this model". + format(model_version, paddle_version)) + + for k, v in input_shape_dict.items(): + program.blocks[0].var(k).desc.set_shape(v) + for i in range(len(program.blocks[0].ops)): + if program.blocks[0].ops[i].type in OP_WITHOUT_KERNEL_SET: + continue + program.blocks[0].ops[i].desc.infer_shape(program.blocks[0].desc) + p2o.program2onnx( + program, + fluid.global_scope(), + save_file, + feed_var_names=feed_var_names, + target_vars=fetch_vars, + opset_version=opset_version, + enable_onnx_checker=enable_onnx_checker, + operator_export_type=operator_export_type, + auto_update_opset=auto_update_opset, + output_names=output_names) + + +def main(): + if len(sys.argv) < 2: + logging.info("Use \"paddle2onnx -h\" to print the help information") + logging.info( + "For more information, please follow our github repo below:") + logging.info("Github: https://github.com/PaddlePaddle/paddle2onnx.git") + return + + parser = arg_parser() + args = parser.parse_args() + + if args.version: + import paddle2onnx + logging.info("paddle2onnx-{} with python>=2.7, paddlepaddle>=1.8.0". + format(paddle2onnx.__version__)) + return + + assert args.model_dir is not None, "--model_dir should be defined while translating paddle model to onnx" + assert args.save_file is not None, "--save_file should be defined while translating paddle model to onnx" + + input_shape_dict = eval(args.input_shape_dict) + + operator_export_type = "ONNX" + if args.enable_paddle_fallback: + operator_export_type = "PaddleFallback" + + if args.output_names is not None: + if not isinstance(args.output_names, (list, dict)): + raise TypeError( + "The output_names should be 'list' or 'dict', but received type is %s." + % type(args.output_names)) + + if args.enable_dev_version: + if args.enable_paddle_fallback: + logging.warn( + "--enable_paddle_fallback is deprecated while --enable_dev_version=True." + ) + if args.output_names is not None: + logging.warn( + "--output_names is deprecated while --enable_dev_version=True.") + if input_shape_dict is not None: + logging.warn( + "--input_shape_dict is deprecated while --enable_dev_version=True." + ) + model_file = os.path.join(args.model_dir, args.model_filename) + if args.params_filename is None: + params_file = "" + else: + params_file = os.path.join(args.model_dir, args.params_filename) + return c_paddle_to_onnx( + model_file=model_file, + params_file=params_file, + save_file=args.save_file, + opset_version=args.opset_version, + auto_upgrade_opset=args.enable_auto_update_opset, + verbose=True, + enable_onnx_checker=args.enable_onnx_checker, + enable_experimental_op=True, + enable_optimize=True) + + program2onnx( + args.model_dir, + args.save_file, + args.model_filename, + args.params_filename, + opset_version=args.opset_version, + enable_onnx_checker=args.enable_onnx_checker, + operator_export_type=operator_export_type, + input_shape_dict=input_shape_dict, + output_names=args.output_names, + auto_update_opset=args.enable_auto_update_opset) + + +if __name__ == "__main__": + main() diff --git a/paddle2onnx/legacy/constant/__init__.py b/paddle2onnx/legacy/constant/__init__.py new file mode 100644 index 000000000..4361cadef --- /dev/null +++ b/paddle2onnx/legacy/constant/__init__.py @@ -0,0 +1,15 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from .constant import PRODUCER +from .constant import NodeDomain diff --git a/paddle2onnx/legacy/constant/constant.py b/paddle2onnx/legacy/constant/constant.py new file mode 100644 index 000000000..b8e4fa4fe --- /dev/null +++ b/paddle2onnx/legacy/constant/constant.py @@ -0,0 +1,24 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +PRODUCER = 'PaddlePaddle' + +ONNX_HELPER_VERSION = '1.7.0' + + +class NodeDomain(): + ONNX = 'onnx' + PADDLE = 'paddle' + CUSTOM = 'custom' + RAW = 'raw' diff --git a/paddle2onnx/legacy/constant/dtypes.py b/paddle2onnx/legacy/constant/dtypes.py new file mode 100644 index 000000000..74fc6fe06 --- /dev/null +++ b/paddle2onnx/legacy/constant/dtypes.py @@ -0,0 +1,84 @@ +# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import numpy as np +import paddle.fluid.core as core +from onnx import helper +from onnx import TensorProto + +ONNX = TensorProto + +DTYPE_PADDLE_ONNX_MAP = { + TensorProto.FLOAT16: core.VarDesc.VarType.FP16, + TensorProto.FLOAT: core.VarDesc.VarType.FP32, + TensorProto.DOUBLE: core.VarDesc.VarType.FP64, + TensorProto.INT16: core.VarDesc.VarType.INT16, + TensorProto.INT32: core.VarDesc.VarType.INT32, + TensorProto.INT64: core.VarDesc.VarType.INT64, + TensorProto.BOOL: core.VarDesc.VarType.BOOL, + TensorProto.UINT8: core.VarDesc.VarType.UINT8, + core.VarDesc.VarType.FP16: TensorProto.FLOAT16, + core.VarDesc.VarType.FP32: TensorProto.FLOAT, + core.VarDesc.VarType.FP64: TensorProto.DOUBLE, + core.VarDesc.VarType.INT16: TensorProto.INT16, + core.VarDesc.VarType.INT32: TensorProto.INT32, + core.VarDesc.VarType.INT64: TensorProto.INT64, + core.VarDesc.VarType.BOOL: TensorProto.BOOL, + core.VarDesc.VarType.UINT8: TensorProto.UINT8, +} + +DTYPE_PADDLE_NUMPY_MAP = { + np.float32: core.VarDesc.VarType.FP32, + np.float64: core.VarDesc.VarType.FP64, + np.int16: core.VarDesc.VarType.INT16, + np.int32: core.VarDesc.VarType.INT32, + np.int64: core.VarDesc.VarType.INT64, + np.bool_: core.VarDesc.VarType.BOOL, + core.VarDesc.VarType.FP32: np.float32, + core.VarDesc.VarType.FP64: np.float64, + core.VarDesc.VarType.INT16: np.int16, + core.VarDesc.VarType.INT32: np.int32, + core.VarDesc.VarType.INT64: np.int64, + core.VarDesc.VarType.BOOL: np.bool_ +} + +DTYPE_PADDLE_STR_MAP = { + core.VarDesc.VarType.FP32: 'float32', + core.VarDesc.VarType.FP64: 'float64', + core.VarDesc.VarType.INT16: 'int16', + core.VarDesc.VarType.INT32: 'int32', + core.VarDesc.VarType.INT64: 'int64', + core.VarDesc.VarType.BOOL: 'bool', + 'float32': core.VarDesc.VarType.FP32, + 'float64': core.VarDesc.VarType.FP64, + 'int16': core.VarDesc.VarType.INT16, + 'int32': core.VarDesc.VarType.INT32, + 'int64': core.VarDesc.VarType.INT64, + 'bool': core.VarDesc.VarType.BOOL +} + +DTYPE_ONNX_STR_MAP = { + TensorProto.FLOAT: 'float32', + TensorProto.DOUBLE: 'float64', + TensorProto.INT16: 'int16', + TensorProto.INT32: 'int32', + TensorProto.INT64: 'int64', + TensorProto.BOOL: 'bool', + 'float32': TensorProto.FLOAT, + 'float64': TensorProto.DOUBLE, + 'int16': TensorProto.INT16, + 'int32': TensorProto.INT32, + 'int64': TensorProto.INT64, + 'bool': TensorProto.BOOL, +} diff --git a/paddle2onnx/legacy/constant/op_mapping_status.py b/paddle2onnx/legacy/constant/op_mapping_status.py new file mode 100644 index 000000000..0f9e074cd --- /dev/null +++ b/paddle2onnx/legacy/constant/op_mapping_status.py @@ -0,0 +1,19 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +OP_MAPPING_WAITTING = 0 +OP_MAPPING_NO_REGISTER = 1 +OP_MAPPING_NO_VERSION = 2 +OP_MAPPING_SUCCESSED = 3 +OP_MAPPING_FAILED = 4 diff --git a/paddle2onnx/legacy/convert.py b/paddle2onnx/legacy/convert.py new file mode 100755 index 000000000..86e7d4f6c --- /dev/null +++ b/paddle2onnx/legacy/convert.py @@ -0,0 +1,206 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import os +import six +import paddle +import numpy as np +from paddle.fluid.framework import Variable +from paddle2onnx.utils import check_model, logging +from paddle2onnx.legacy.graph import PaddleGraph, ONNXGraph +from paddle2onnx.legacy.passes import PassManager + + +def export_onnx(paddle_graph, + save_file, + opset_version=9, + enable_onnx_checker=False, + operator_export_type="ONNX", + verbose=False, + auto_update_opset=True, + output_names=None): + onnx_graph = ONNXGraph.build(paddle_graph, opset_version, + operator_export_type, verbose, + auto_update_opset) + onnx_graph = PassManager.run_pass( + onnx_graph, ['dumplicate_names_pass', 'inplace_node_pass']) + onnx_proto = onnx_graph.export_proto(enable_onnx_checker, output_names) + + if save_file is None: + return onnx_proto + + path, _ = os.path.split(save_file) + if path != '' and not os.path.isdir(path): + os.makedirs(path) + with open(save_file, 'wb') as f: + f.write(onnx_proto.SerializeToString()) + logging.info("ONNX model saved in {}".format(save_file)) + + +def program2onnx(program, + scope, + save_file, + feed_var_names=None, + target_vars=None, + opset_version=9, + enable_onnx_checker=False, + operator_export_type="ONNX", + auto_update_opset=True, + **configs): + from paddle import fluid + if hasattr(paddle, 'enable_static'): + paddle.enable_static() + if isinstance(program, paddle.fluid.framework.Program): + if feed_var_names is not None: + if isinstance(feed_var_names, six.string_types): + feed_var_names = [feed_var_names] + else: + if not (bool(feed_var_names) and all( + isinstance(name, six.string_types) + for name in feed_var_names)): + raise TypeError("'feed_var_names' should be a list of str.") + + if target_vars is not None: + if isinstance(target_vars, Variable): + target_vars = [target_vars] + else: + if not (bool(target_vars) and + all(isinstance(var, Variable) for var in target_vars)): + raise TypeError( + "'target_vars' should be a list of variable.") + + paddle_graph = PaddleGraph.build_from_program(program, feed_var_names, + target_vars, scope) + output_names = None + if 'output_names' in configs: + output_names = configs['output_names'] + if output_names is not None and not isinstance(output_names, + (list, dict)): + raise TypeError( + "The output_names should be 'list' or dict, but received type is %s." + % type(output_names)) + return export_onnx( + paddle_graph, + save_file, + opset_version, + enable_onnx_checker, + operator_export_type, + auto_update_opset=auto_update_opset, + output_names=output_names) + else: + raise TypeError( + "the input 'program' should be 'Program', but received type is %s." + % type(program)) + + +def dygraph2onnx(layer, save_file, input_spec=None, opset_version=9, **configs): + from paddle.nn import Layer + from paddle.fluid import core + from paddle.fluid.framework import Variable + from paddle.fluid.dygraph.dygraph_to_static import program_translator + from paddle.fluid import dygraph + if not isinstance(layer, Layer): + raise TypeError( + "the input 'layer' should be 'Layer', 'TranslatedLayer', but received type is %s." + % type(layer)) + + inner_input_spec = None + if input_spec is not None: + if not isinstance(input_spec, list): + raise TypeError( + "The input input_spec should be 'list', but received type is %s." + % type(input_spec)) + inner_input_spec = [] + for var in input_spec: + if isinstance(var, paddle.static.InputSpec): + inner_input_spec.append(var) + elif isinstance(var, (core.VarBase, Variable)): + inner_input_spec.append( + paddle.static.InputSpec.from_tensor(var)) + else: + raise TypeError( + "The element in input_spec list should be 'Variable' or `paddle.static.InputSpec`, but received element's type is %s." + % type(var)) + + output_spec = None + if 'output_spec' in configs: + output_spec = configs['output_spec'] + if not isinstance(output_spec, list): + raise TypeError( + "The output_spec should be 'list', but received type is %s." % + type(output_spec)) + for var in output_spec: + if not isinstance(var, (core.VarBase, Variable)): + raise TypeError( + "The element in output_spec list should be 'Variable', but received element's type is %s." + % type(var)) + + verbose = False + if 'verbose' in configs: + if isinstance(configs['verbose'], bool): + verbose = configs['verbose'] + else: + raise TypeError( + "The verbose should be 'bool', but received type is %s." % + type(configs['verbose'])) + + enable_onnx_checker = False + if 'enable_onnx_checker' in configs: + if isinstance(configs['enable_onnx_checker'], bool): + enable_onnx_checker = configs['enable_onnx_checker'] + else: + raise TypeError( + "The 'enable_onnx_checker' should be 'bool', but received type is %s." + % type(configs['enable_onnx_checker'])) + + operator_export_type = "ONNX" + enable_paddle_fallback = False + if 'enable_paddle_fallback' in configs: + if isinstance(configs['enable_paddle_fallback'], bool): + enable_paddle_fallback = configs['enable_paddle_fallback'] + if enable_paddle_fallback: + operator_export_type = "PaddleFallback" + else: + raise TypeError( + "The 'enable_paddle_fallback' should be 'bool', but received type is %s." + % type(configs['enable_paddle_fallback'])) + + paddle_graph = PaddleGraph.build_from_dygraph(layer, inner_input_spec, + output_spec) + + if 'get_paddle_graph' in configs: + return paddle_graph + + auto_update_opset = True + if 'auto_update_opset' in configs: + if isinstance(configs['auto_update_opset'], bool): + auto_update_opset = configs['auto_update_opset'] + else: + raise TypeError( + "The auto_update_opset should be 'bool', but received type is %s." + % type(configs['auto_update_opset'])) + + output_names = None + if 'output_names' in configs: + output_names = configs['output_names'] + if not isinstance(output_names, (list, dict)): + raise TypeError( + "The output_names should be 'list' or dict, but received type is %s." + % type(output_names)) + + return export_onnx(paddle_graph, save_file, opset_version, + enable_onnx_checker, operator_export_type, verbose, + auto_update_opset, output_names) diff --git a/paddle2onnx/legacy/graph/__init__.py b/paddle2onnx/legacy/graph/__init__.py new file mode 100644 index 000000000..fb87f2254 --- /dev/null +++ b/paddle2onnx/legacy/graph/__init__.py @@ -0,0 +1,17 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from .graph import Graph, Node +from .paddle_graph import PaddleGraph, PaddleNode +from .onnx_graph import ONNXGraph, ONNXNode diff --git a/paddle2onnx/legacy/graph/dygraph_helper.py b/paddle2onnx/legacy/graph/dygraph_helper.py new file mode 100755 index 000000000..1d4b6accb --- /dev/null +++ b/paddle2onnx/legacy/graph/dygraph_helper.py @@ -0,0 +1,271 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import os +import numpy as np +import inspect +import six +import paddle +from paddle.fluid.io import _get_valid_program +from paddle.fluid.dygraph.dygraph_to_static.program_translator import ProgramTranslator, StaticFunction +from paddle.fluid.layers.utils import flatten, pack_sequence_as +from collections import OrderedDict +from paddle.fluid import dygraph +from paddle.fluid.dygraph.jit import declarative +from paddle.fluid import core +from paddle.fluid import layers +from paddle.nn import Layer +from paddle.fluid.framework import Block, ParamBase, Program, Variable, Parameter, program_guard +from paddle.fluid.dygraph.layers import Layer + +from paddle2onnx.utils import logging +from paddle2onnx.legacy.graph.graph_helper import prepend_feed_ops, append_fetch_ops + + +def _get_input_var_names(inputs, input_spec): + name_none_error = "The %s's name is None. " \ + "When using jit.save, please set InputSepc's name in " \ + "to_static(input_spec=[]) and jit.save(input_spec=[]) " \ + "and make sure they are consistent." + name_no_exists_error = "The tensor `%s` does not exists. " \ + "Please make sure the name of InputSpec or example Tensor " \ + "in input_spec is the same as the name of InputSpec in " \ + "`to_static` decorated on the Layer.forward method." + result_list = [] + input_var_names = [ + var.name for var in flatten(inputs) if isinstance(var, Variable) + ] + if input_spec is None: + # no prune + return input_var_names + else: + # fileter out non-tensor type spec infos. + input_spec = [ + spec for spec in input_spec + if isinstance(spec, paddle.static.InputSpec) + ] + + if len(input_spec) == len(input_var_names): + # no prune + result_list = input_var_names + # if input spec name not in input_var_names, only raise warning + for spec in input_spec: + if spec.name is None: + warnings.warn(name_none_error % spec) + elif spec.name not in input_var_names: + warnings.warn(name_no_exists_error % spec.name) + else: + # do nothing + pass + else: + # prune + for spec in input_spec: + if spec.name is None: + # name is None, the input_spec only can be InputSpec + raise ValueError(name_none_error % spec) + elif spec.name not in input_var_names: + # the input_spec can be `InputSpec` or `VarBase` + raise ValueError(name_no_exists_error % spec.name) + else: + result_list.append(spec.name) + + return result_list + + +def _get_output_vars(outputs, output_spec): + name_no_exists_error = "The tensor `%s` does not exists. " \ + "Please make sure the name of example Tensor " \ + "in configs.output_spec is the output tensor of " \ + "Layer.forward method." + result_list = [] + output_vars_dict = OrderedDict() + for var in flatten(outputs): + if isinstance(var, Variable): + output_vars_dict[var.name] = var + if output_spec is None: + result_list = output_vars_dict.values() + elif output_spec is not None and len(output_spec) == len(output_vars_dict): + result_list = output_vars_dict.values() + for var in output_spec: + if var.name not in output_vars_dict: + warnings.warn(name_no_exists_error % var.name) + else: + for var in output_spec: + if var.name not in output_vars_dict: + raise ValueError(name_no_exists_error % var.name) + else: + result_list.append(output_vars_dict[var.name]) + return result_list + + +@dygraph.base.switch_to_static_graph +def get_program(layer, input_spec, output_spec, **configs): + paddle.jit.set_verbosity(0) + prog_translator = ProgramTranslator() + if not prog_translator.enable_to_static: + raise RuntimeError( + "The Paddle2onnx doesn't work when setting ProgramTranslator.enable to False." + ) + + if not isinstance(layer, Layer): + raise TypeError( + "The input of paddle2onnx should be 'Layer', but received input type is %s." + % type(layer)) + + if isinstance(layer, paddle.DataParallel): + inner_layer = layer._layers + else: + inner_layer = layer + + # avoid change user given input_spec + inner_input_spec = None + if input_spec is not None: + for attr_func in dir(inner_layer): + static_func = getattr(inner_layer, attr_func, None) + if isinstance(static_func, + StaticFunction) and 'forward' != attr_func: + raise ValueError( + "If there are static functions other than 'forward' that need to be saved, the input 'input_spec' should be None, but received the type of 'input_spec' is %s." + % type(input_spec)) + + if not isinstance(input_spec, (list, tuple)): + raise TypeError( + "The input input_spec should be 'list', but received input_spec's type is %s." + % type(input_spec)) + inner_input_spec = [] + for var in flatten(input_spec): + if isinstance(var, paddle.static.InputSpec): + inner_input_spec.append(var) + elif isinstance(var, (core.VarBase, core.eager.Tensor, Variable)): + inner_input_spec.append( + paddle.static.InputSpec.from_tensor(var)) + else: + # NOTE(Aurelius84): Support non-Tensor type in `input_spec`. + inner_input_spec.append(var) + + extra_var_info = dict() + functions = dir(inner_layer) + for attr_func in functions: + static_func = getattr(inner_layer, attr_func, None) + if isinstance(static_func, StaticFunction): + concrete_program = static_func.concrete_program_specify_input_spec( + inner_input_spec) + elif 'forward' == attr_func: + # transform in jit.save, if input_spec is incomplete, declarative will throw error + # inner_input_spec is list[InputSpec], it should be packed with same structure + # as original input_spec here. + if inner_input_spec: + inner_input_spec = pack_sequence_as(input_spec, + inner_input_spec) + static_forward = declarative( + inner_layer.forward, input_spec=inner_input_spec) + concrete_program = static_forward.concrete_program + # the input_spec has been used in declarative, which is equal to + # @declarative with input_spec and jit.save without input_spec, + # avoid needless warning + inner_input_spec = None + else: + continue + + input_var_names = _get_input_var_names(concrete_program.inputs, + inner_input_spec) + + # NOTE(chenweihang): [ Get output variables ] + # the rule is like [ Get input variables name ]. For output var, + # we only support VarBase spec, and actually, we only need the + # var name of output, and we don't recommended to use output_spec + output_vars = _get_output_vars(concrete_program.outputs, output_spec) + + feeded_var_names = input_var_names + target_vars = output_vars + main_program = concrete_program.main_program.clone() + export_for_deployment = True + + if isinstance(feeded_var_names, six.string_types): + feeded_var_names = [feeded_var_names] + elif export_for_deployment: + if len(feeded_var_names) > 0: + # TODO(paddle-dev): polish these code blocks + if not (bool(feeded_var_names) and all( + isinstance(name, six.string_types) + for name in feeded_var_names)): + raise ValueError("'feed_var_names' should be a list of str.") + + if isinstance(target_vars, Variable): + target_vars = [target_vars] + elif export_for_deployment: + if not (bool(target_vars) and + all(isinstance(var, Variable) for var in target_vars)): + raise ValueError("'target_vars' should be a list of Variable.") + + main_program = _get_valid_program(main_program) + + # remind user to set auc_states to zeros if the program contains auc op + all_ops = main_program.global_block().ops + for op in all_ops: + # clear device of Op + device_attr_name = core.op_proto_and_checker_maker.kOpDeviceAttrName() + op._set_attr(device_attr_name, "") + if op.type == 'auc': + warnings.warn( + "please ensure that you have set the auc states to zeros before saving inference model" + ) + break + + with program_guard(main_program): + uniq_target_vars = [] + for i, var in enumerate(target_vars): + uniq_target_vars.append(var) + target_vars = uniq_target_vars + target_var_name_list = [var.name for var in target_vars] + + origin_program = main_program.clone() + + main_program = main_program.clone() + global_block = main_program.global_block() + need_to_remove_op_index = [] + for i, op in enumerate(global_block.ops): + op.desc.set_is_target(False) + if op.type == "feed" or op.type == "fetch": + need_to_remove_op_index.append(i) + + for index in need_to_remove_op_index[::-1]: + global_block._remove_op(index) + + main_program.desc.flush() + + main_program = main_program._prune_with_input( + feeded_var_names=feeded_var_names, targets=target_vars) + main_program = main_program._inference_optimize(prune_read_op=True) + fetch_var_names = [v.name for v in target_vars] + + for target_v in target_vars: + if not main_program.global_block().has_var(target_v.name): + main_program.global_block().create_var( + name=target_v.name, + shape=target_v.shape, + dtype=target_v.dtype, + persistable=target_v.persistable) + + prepend_feed_ops(main_program, feeded_var_names) + append_fetch_ops(main_program, fetch_var_names) + + main_program.desc._set_version() + paddle.fluid.core.save_op_version_info(main_program.desc) + + main_program._copy_dist_param_info_from(origin_program) + + return main_program, feeded_var_names, target_vars diff --git a/paddle2onnx/legacy/graph/graph.py b/paddle2onnx/legacy/graph/graph.py new file mode 100755 index 000000000..a490e3d75 --- /dev/null +++ b/paddle2onnx/legacy/graph/graph.py @@ -0,0 +1,287 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import os +import copy +import six +import collections +from paddle2onnx.legacy.constant import NodeDomain + + +class Node(object): + def __init__(self, + op_type, + inputs, + outputs, + attrs, + layer_name, + domain=NodeDomain.RAW): + self.domain = domain + self.type = op_type + self.attrs = attrs + self.layer_name = layer_name + self.set_inputs(inputs) + self.set_outputs(outputs) + + def __hash__(self): + return hash(self.layer_name) + + def __eq__(self, other): + if self.layer_name == other.layer_name: + return True + return False + + def __str__(self): + node_str = '' + attrs = '' + for key, value in self.attrs.items(): + attrs += ', ' + key + '=' + str(value) + node_str += " {} = {}::{}(inputs={}{}) \n".format( + self.outputs, self.domain, self.type, self.inputs, attrs) + return node_str + + def input(self, idx=None): + if idx is None: + return self.inputs + return self.inputs[idx] + + def output(self, idx=None): + if idx is None: + return self.outputs + return self.outputs[idx] + + def attr(self, name): + if name in self.attrs: + return self.attrs[name] + return None + + def set_inputs(self, inputs): + if isinstance(inputs, list): + self.inputs = [ + ipt.layer_name if isinstance(ipt, Node) else ipt + for ipt in inputs + ] + elif isinstance(inputs, six.string_types): + self.inputs = [inputs] + elif isinstance(inputs, Node): + self.inputs = [inputs.layer_name] + else: + raise TypeError( + 'Inputs of node must be type: list, Node, or String but got {}'. + format(type(inputs))) + + def set_outputs(self, outputs): + if isinstance(outputs, list): + self.outputs = [ + opt.layer_name if isinstance(opt, Node) else opt + for opt in outputs + ] + elif isinstance(outputs, six.string_types): + self.outputs = [outputs] + elif isinstance(outputs, Node): + self.outputs = [outputs.layer_name] + else: + raise TypeError( + 'Outputs of node must be type: list, Node, or String but got {}'. + format(type(outputs))) + + +class Graph(object): + def __init__(self): + self.parameters = {} + self.node_map = collections.OrderedDict() + self.input_nodes = list() + self.output_nodes = list() + self.op_type_count = dict() + + def __hash__(self): + return hash(self.id) + + def __eq__(self, other): + if self.id == other.id: + return True + return False + + def __str__(self): + graph_str = 'graph { \n' + for node in self.input_nodes: + graph_str += " input: {} \n".format(node.layer_name) + for node in self.output_nodes: + graph_str += " output: {} \n \n".format(node.layer_name) + for name, node in self.node_map.items(): + graph_str += node.__str__() + graph_str += ' }' + return graph_str + + def set_output_nodes(self, node_list): + if isinstance(node_list, list): + self.output_nodes = node_list + else: + raise TypeError( + 'output_nodes of Graph must be type: list, but got {}'.format( + type(node_list))) + + def set_node_map(self, node_map): + if isinstance(node_map, dict): + self.node_map = node_map + self.generate_topo_sort() + else: + raise TypeError('node_map of Graph must be type: list, but got {}'. + format(type(node_map))) + + def set_input_nodes(self, node_list): + if isinstance(node_list, list): + self.input_nodes = node_list + else: + raise TypeError( + 'input_nodes of Graph must be type: list, but got {}'.format( + type(node_list))) + + def set_parameters(self, parameters): + if isinstance(parameters, dict): + self.parameters = parameters + else: + raise TypeError( + 'parameters of Graph must be type: dict, but got {}'.format( + type(parameters))) + + def generate_node_name(self, op_type): + if op_type in self.op_type_count: + self.op_type_count[op_type] += 1 + else: + self.op_type_count[op_type] = 1 + # layer_name need follow https://github.com/onnx/onnx/blob/master/docs/OpConventions.md + layer_name = op_type + '_' + str(self.op_type_count[op_type] - 1) + return layer_name + + def insert_node(self, node): + if node.type not in ['feed', 'fetch']: + self.node_map[node.layer_name] = node + + def make_node(self, + op_type, + inputs=None, + outputs=None, + attrs=None, + layer_name=None, + domain=None, + **kw): + if layer_name is None: + layer_name = self.generate_node_name(op_type) + + if attrs is None: + attrs = kw + attrs.update(kw) + + if inputs is None: + inputs = [] + if outputs is None: + outputs = [layer_name] + node = Node(op_type, layer_name, inputs, outputs, attrs, domain) + self.insert_node(node) + return node + + def update_node(self, + node, + op_type=None, + inputs=None, + outputs=None, + attrs=None, + block=None, + move_to_end=True, + domain=None, + **kw): + if op_type is not None: + node.type = op_type + if inputs is not None: + node.set_inputs(inputs) + if outputs is not None: + node.set_outputs(outputs) + if attrs is None: + attrs = kw + attrs.update(kw) + node.attrs = attrs + if domain is not None: + node.domain = domain + if move_to_end: + self.node_map.pop(node.layer_name) + self.node_map[node.layer_name] = node + return node + + def get_node(self, name, copy=False): + if name not in self.node_map: + raise TypeError('Node with name:{} not in graph'.format(name)) + if copy: + node = copy.copy(self.node_map[name]) + else: + node = self.node_map[name] + return node + + def remove_node_by_name(self, name): + if name in self.node_map: + node = self.node_map.pop(name) + return node + raise TypeError('Node with name:{} not in graph'.format(name)) + + def remove_node(self, node): + if isinstance(node, Node): + node = self.remove_node_by_name(node.layer_name) + return node + else: + node = self.remove_node_by_name(node) + return node + + def get_output_nodes_of_node(self, node): + if node in self.edge_map: + return self.edge_map[node] + elif self.get_node(node.layer_name, copy=False): + return [] + else: + raise KeyError('Node with layer_name {} not in graph.egde_map'. + format(node.layer_name)) + + def get_adjacency_map(self): + adjacency_map = {} + for layer_name, current_node in self.node_map.items(): + inputs = current_node.inputs + for ipt in inputs: + for layer_name, node in self.node_map.items(): + if current_node == node: + continue + outputs = node.outputs + if ipt in outputs: + if node not in adjacency_map: + adjacency_map[node] = set([current_node]) + else: + adjacency_map[node].add(current_node) + return adjacency_map + + def get_topo_sort_list(self): + topo_sort_list = list() + adjacency_map = self.get_adjacency_map() + for layer_name, node in self.node_map.items(): + if node not in adjacency_map: + topo_sort_list.append(node) + idx = 0 + while idx < len(topo_sort_list): + current_node = topo_sort_list[idx] + for input_node, output_nodes in adjacency_map.items(): + if current_node in output_nodes: + adjacency_map[input_node].remove(current_node) + if len(adjacency_map[input_node]) == 0: + topo_sort_list.append(input_node) + idx += 1 + return topo_sort_list[::-1] diff --git a/paddle2onnx/legacy/graph/graph_helper.py b/paddle2onnx/legacy/graph/graph_helper.py new file mode 100644 index 000000000..a62594b5c --- /dev/null +++ b/paddle2onnx/legacy/graph/graph_helper.py @@ -0,0 +1,83 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import os +import paddle +import numpy as np +from paddle.fluid import core +from paddle.fluid.framework import Variable, program_guard +from paddle2onnx.utils import logging + + +def prepend_feed_ops(inference_program, + feed_target_names, + feed_holder_name='feed'): + if len(feed_target_names) == 0: + return + global_block = inference_program.global_block() + feed_var = global_block.create_var( + name=feed_holder_name, + type=core.VarDesc.VarType.FEED_MINIBATCH, + persistable=True) + for i, name in enumerate(feed_target_names): + if not global_block.has_var(name): + raise ValueError( + "The feed_var_names[{i}]: '{name}' doesn't exist in pruned inference program. " + "Please check whether '{name}' is a valid feed_var name, or remove it from feed_var_names " + "if '{name}' is not involved in the fetch_vars calculation.". + format( + i=i, name=name)) + out = global_block.var(name) + global_block._prepend_op( + type='feed', + inputs={'X': [feed_var]}, + outputs={'Out': [out]}, + attrs={'col': i}) + + +def append_fetch_ops(inference_program, + fetch_target_names, + fetch_holder_name='fetch'): + global_block = inference_program.global_block() + fetch_var = global_block.create_var( + name=fetch_holder_name, + type=core.VarDesc.VarType.FETCH_LIST, + persistable=True) + for i, name in enumerate(fetch_target_names): + global_block.append_op( + type='fetch', + inputs={'X': [name]}, + outputs={'Out': [fetch_var]}, + attrs={'col': i}) + + +def get_program(program, feed_var_names, fetch_vars): + global_block = program.global_block() + need_to_remove_op_index = [] + for i, op in enumerate(global_block.ops): + op.desc.set_is_target(False) + if op.type == "feed" or op.type == "fetch": + need_to_remove_op_index.append(i) + for index in need_to_remove_op_index[::-1]: + global_block._remove_op(index) + program.desc.flush() + program = program._prune_with_input( + feeded_var_names=feed_var_names, targets=fetch_vars) + program = program._inference_optimize(prune_read_op=True) + fetch_var_names = [v.name for v in fetch_vars] + prepend_feed_ops(program, feed_var_names) + append_fetch_ops(program, fetch_var_names) + return program diff --git a/paddle2onnx/legacy/graph/onnx_graph.py b/paddle2onnx/legacy/graph/onnx_graph.py new file mode 100755 index 000000000..ac7ae9f59 --- /dev/null +++ b/paddle2onnx/legacy/graph/onnx_graph.py @@ -0,0 +1,333 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import os +import copy +import collections +import numpy as np +from paddle2onnx.legacy.graph import Node, Graph +from paddle2onnx.legacy.constant import NodeDomain, PRODUCER, dtypes +from paddle2onnx.legacy.op_mapper import OpMapper +from onnx import helper +from paddle2onnx.utils import check_model, logging + + +class ONNXNode(Node): + def __init__(self, op_type, inputs, outputs, attrs, layer_name, domain): + super(ONNXNode, self).__init__(op_type, inputs, outputs, attrs, + layer_name, domain) + self.domain = domain + self.onnx_node = self.make_onnx_node() + + def make_onnx_constant_node(self): + dtype = self.attr('dtype') + value = self.attr('value') + if isinstance(value, list): + dims = (len(value), ) + elif value is None: + dims = () + value = [] + else: + dims = () + value = [value] + + if 'dims' in self.attrs: + dims = self.attrs['dims'] + + tensor = helper.make_tensor( + name=self.layer_name, data_type=dtype, dims=dims, vals=value) + + onnx_node = helper.make_node( + self.type, inputs=self.inputs, outputs=self.outputs, value=tensor) + + return onnx_node + + def make_onnx_node(self): + if self.type in ['Constant', 'ConstantOfShape']: + onnx_node = self.make_onnx_constant_node() + else: + onnx_node = helper.make_node( + self.type, + inputs=self.inputs, + outputs=self.outputs, + name=self.layer_name, + domain=self.domain, + **self.attrs) + return onnx_node + + +class ONNXGraph(Graph): + def __init__(self, + paddle_graph, + opset_version, + operator_export_type="ONNX", + block=None, + auto_update_opset=True): + super(ONNXGraph, self).__init__() + self.opset_version = opset_version + self.operator_export_type = operator_export_type + self.ctx = paddle_graph + self.custom = [] + if auto_update_opset: + self.update_opset_version() + + def __str__(self): + graph_str = 'graph { \n' + for node in self.input_nodes: + graph_str += " input: {} \n".format(node) + for node in self.output_nodes: + graph_str += " output: {} \n \n".format(node) + for name, node in self.node_map.items(): + graph_str += node.__str__() + graph_str += ' }' + return graph_str + + def make_node(self, + op_type, + inputs=[], + outputs=[], + attrs=None, + layer_name=None, + domain=None, + **kw): + if layer_name is None: + layer_name = self.generate_node_name(op_type) + + if domain is not None: + if domain not in self.custom: + self.custom.append(domain) + + if attrs is None: + attrs = kw + attrs.update(kw) + + if inputs is None: + inputs = [] + + real_outputs = None + if outputs is None: + real_outputs = [layer_name] + elif isinstance(outputs, int): + real_outputs = [] + for i in range(outputs): + real_outputs.append(self.generate_node_name(op_type)) + elif isinstance(outputs, list): + real_outputs = [] + if len(outputs) == 0: + real_outputs = [layer_name] + else: + for opt in outputs: + if isinstance(opt, Node): + real_outputs.append(opt.layer_name) + elif isinstance(opt, int): + real_outputs.append(self.generate_node_name(op_type)) + else: + real_outputs.append(opt) + else: + real_outputs = outputs + + node = ONNXNode(op_type, inputs, real_outputs, attrs, layer_name, + domain) + + self.insert_node(node) + if len(node.outputs) == 1: + return node.outputs[0] + else: + return node.outputs + + def update_node(self, + node, + op_type=None, + inputs=None, + outputs=None, + attrs=None, + **kw): + if op_type is None: + op_type = node.type + if inputs is None: + inputs = node.inputs + if outputs is None: + outputs = node.outputs + if attrs is None: + attrs = node.attrs + attrs.update(kw) + + node = ONNXNode(op_type, inputs, outputs, attrs, node.layer_name, + node.domain) + self.insert_node(node) + return node + + def build_parameters(self, parameters): + # build weight nodes + for name, param in parameters.items(): + weight = param['data'] + if weight is not np.ndarray: + weight = np.array(weight) + tensor = helper.make_tensor( + name=name, + dims=param['shape'], + data_type=dtypes.DTYPE_PADDLE_ONNX_MAP[param['dtype']], + vals=weight.flatten().tolist()) + node = helper.make_node( + 'Constant', inputs=[], outputs=[name], value=tensor) + self.parameters[name] = node + + def build_input_nodes(self, input_nodes): + # build input nodes + for ipt in input_nodes: + self.add_input_node(ipt.layer_name, + ipt.attr('shape'), ipt.attr('dtype')) + + def build_output_nodes(self, output_nodes): + # build output nodes + for opt in output_nodes: + self.add_output_node(opt.layer_name, + opt.attr('shape'), opt.attr('dtype')) + + def update_opset_version(self): + node_map = self.ctx.node_map + self.opset_version = OpMapper.get_recommend_opset_version( + node_map, self.opset_version) + + def build_op_nodes(self, node_map): + OpMapper.check_support_status(node_map, self.opset_version) + # build op nodes + for name, node in list(node_map.items()): + OpMapper.mapping(self, node, self.operator_export_type) + + def make_value_info(self, name, shape, dtype): + tensor_info = helper.make_tensor_value_info( + name=name, + shape=shape, + elem_type=dtypes.DTYPE_PADDLE_ONNX_MAP[dtype]) + return tensor_info + + def add_input_node(self, name, shape, dtype): + vi = self.make_value_info(name, shape, dtype) + self.input_nodes.append(vi) + + def add_output_node(self, name, shape, dtype): + vi = self.make_value_info(name, shape, dtype) + self.output_nodes.append(vi) + + def find_index(self, node_inout, name): + for i in range(len(node_inout)): + if node_inout[i] == name: + return i + return -1 + + def change_output_names(self, onnx_proto, output_names): + logging.info("The output of the ONNX model is set to: {}".format( + output_names)) + if isinstance(output_names, list): + assert len(output_names) == len( + onnx_proto.graph.output + ), "The provided output names are inconsistent with the output number of the onnx model when output_names is list" + origin_output_names = [] + for i in range(len(onnx_proto.graph.output)): + origin_output_names.append(onnx_proto.graph.output[i].name) + onnx_proto.graph.output[i].name = output_names[i] + + for i in range(len(onnx_proto.graph.node)): + node = onnx_proto.graph.node[i] + # Prevent changed names from being changed again + output_visited_node = [] + input_visited_node = [] + for j in range(len(origin_output_names)): + if origin_output_names[j] in node.output: + index = self.find_index(node.output, + origin_output_names[j]) + if index in output_visited_node: + continue + output_visited_node.append(index) + onnx_proto.graph.node[i].output[index] = output_names[j] + if origin_output_names[j] in node.input: + index = self.find_index(node.input, + origin_output_names[j]) + if index in input_visited_node: + continue + input_visited_node.append(index) + onnx_proto.graph.node[i].input[index] = output_names[j] + if isinstance(output_names, dict): + for i in range(len(onnx_proto.graph.output)): + for key, value in output_names.items(): + if onnx_proto.graph.output[i].name == key: + onnx_proto.graph.output[i].name = value + break + + for i in range(len(onnx_proto.graph.node)): + node = onnx_proto.graph.node[i] + # Prevent changed names from being changed again + output_visited_node = [] + input_visited_node = [] + for key, value in output_names.items(): + if key in node.output: + index = self.find_index(node.output, key) + if index in output_visited_node: + continue + output_visited_node.append(index) + onnx_proto.graph.node[i].output[index] = value + if key in node.input: + index = self.find_index(node.input, key) + if index in input_visited_node: + continue + input_visited_node.append(index) + onnx_proto.graph.node[i].input[index] = value + + return onnx_proto + + def export_proto(self, enable_onnx_checker=False, output_names=None): + + op_nodes = [node.onnx_node for node in self.node_map.values()] + weight_nodes = [node for node in self.parameters.values()] + + onnx_graph = helper.make_graph( + nodes=weight_nodes + op_nodes, + name='paddle-onnx', + initializer=[], + inputs=self.input_nodes, + outputs=self.output_nodes) + + opset_imports = [helper.make_opsetid("", self.opset_version)] + for custom_domain in self.custom: + opset_imports.append(helper.make_opsetid(custom_domain, 1)) + onnx_proto = helper.make_model( + onnx_graph, producer_name=PRODUCER, opset_imports=opset_imports) + if output_names is not None: + onnx_proto = self.change_output_names(onnx_proto, output_names) + + if enable_onnx_checker: + check_model(onnx_proto) + + return onnx_proto + + @staticmethod + def build(paddle_graph, + opset_version, + operator_export_type="ONNX", + verbose=False, + auto_update_opset=True): + onnx_graph = ONNXGraph( + paddle_graph, + opset_version=opset_version, + operator_export_type=operator_export_type, + auto_update_opset=auto_update_opset) + onnx_graph.build_parameters(paddle_graph.parameters) + onnx_graph.build_input_nodes(paddle_graph.input_nodes) + onnx_graph.build_output_nodes(paddle_graph.output_nodes) + onnx_graph.build_op_nodes(paddle_graph.node_map) + + return onnx_graph diff --git a/paddle2onnx/legacy/graph/paddle_graph.py b/paddle2onnx/legacy/graph/paddle_graph.py new file mode 100755 index 000000000..7e2f2be7c --- /dev/null +++ b/paddle2onnx/legacy/graph/paddle_graph.py @@ -0,0 +1,303 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import os +import copy +import collections +import numpy as np +import paddle +from paddle import fluid +from paddle.fluid import dygraph +from paddle.fluid.framework import Operator +from paddle2onnx.legacy.graph import Node, Graph +from paddle2onnx.legacy.constant import NodeDomain +from paddle2onnx.utils import logging + + +class PaddleNode(Node): + def __init__(self, paddle_op, inputs, outputs, attrs, layer_name, block): + super(PaddleNode, self).__init__(paddle_op.type, inputs, outputs, attrs, + layer_name, NodeDomain.PADDLE) + self.paddle_op = paddle_op + self.block = block + + def __str__(self): + node_str = '' + attrs = '' + for key, value in self.attrs.items(): + if key == 'op_callstack': + continue + attrs += ', ' + key + '=' + str(value) + node_str += " {} = {}::{}(inputs={}{}) \n".format( + self.outputs, self.domain, self.type, self.inputs, attrs) + return node_str + + @property + def input_names(self): + return [name for name in self.inputs.keys()] + + @property + def output_names(self): + return [name for name in self.outputs.keys()] + + def input(self, name, idx=None): + if name not in self.inputs: + return None + if idx is None: + return self.inputs[name] + if len(self.inputs[name]) <= idx: + return None + return self.inputs[name][idx] + + def output(self, name, idx=None): + if idx is None: + return self.outputs[name] + return self.outputs[name][idx] + + def output_shape(self, name, idx): + return self.block.var(self.output(name, idx)).shape + + def input_shape(self, name, idx): + return self.block.var(self.input(name, idx)).shape + + def input_var(self, name, idx): + return self.block.var(self.input(name, idx)) + + def input_dtype(self, name, idx): + return self.block.var(self.input(name, idx)).dtype + + def output_dtype(self, name, idx): + return self.block.var(self.output(name, idx)).dtype + + def attr(self, name, default=None): + if name in self.attrs: + return self.attrs[name] + return default + + def set_inputs(self, inputs): + if isinstance(inputs, dict): + # input of node in paddle, which stored by dict + self.inputs = inputs + else: + raise TypeError('Inputs of node must be type: dict, but got {}'. + format(type(inputs))) + + def set_outputs(self, outputs): + if isinstance(outputs, dict): + # output of node in paddle, which stored by dict + self.outputs = outputs + else: + raise TypeError('Outputs of node must be type: dict, but got {}'. + format(type(outputs))) + + +class PaddleGraph(Graph): + def __init__(self, program, parameters, feed_var_names, fetch_vars): + super(PaddleGraph, self).__init__() + self.build_graph(program, parameters, feed_var_names, fetch_vars) + + def make_node(self, + op, + inputs=None, + outputs=None, + attrs=None, + block=None, + layer_name=None, + **kw): + if layer_name is None: + layer_name = self.generate_node_name(op.type) + + if attrs is None: + attrs = kw + attrs.update(kw) + + if inputs is None: + inputs = {} + if outputs is None: + outputs = {'Out': layer_name} + node = PaddleNode(op, inputs, outputs, attrs, layer_name, block) + self.insert_node(node) + return node + + def add_input_node(self, inputs, block=None): + for ipt in inputs: + # parse feed_names + layer_name = ipt + var = block.var(ipt) + attrs = {} + attrs['shape'] = var.shape + attrs['dtype'] = var.dtype + node = Node('feed', [], [layer_name], attrs, layer_name) + self.input_nodes.append(node) + + def add_output_node(self, outputs, block=None): + from paddle.fluid.framework import Variable + for opt in outputs: + # parse fetch_target_vars + layer_name = opt.name + attrs = {} + attrs['shape'] = opt.shape + attrs['dtype'] = opt.dtype + node = Node('fetch', [layer_name], [], attrs, layer_name) + self.output_nodes.append(node) + + def get_adjacency_map(self): + adjacency_map = {} + for layer_name, current_node in self.node_map.items(): + inputs = current_node.inputs.values() + inputs = [x for j in inputs for x in j] + for ipt in inputs: + for layer_name, node in self.node_map.items(): + if current_node == node: + continue + outputs = node.outputs.values() + outputs = [x for j in outputs for x in j] + if ipt in outputs: + if node not in adjacency_map: + adjacency_map[node] = set([current_node]) + else: + adjacency_map[node].add(current_node) + return adjacency_map + + def build_graph(self, + program, + parameters, + feed_var_names=None, + target_vars=None): + self.program = program + self.set_parameters(parameters) + self.add_input_node(feed_var_names, program.global_block()) + self.add_output_node(target_vars, program.global_block()) + for block in program.blocks: + for i, op in enumerate(block.ops): + if op.type in ['feed', 'fetch']: + continue + else: + inputs = {} + outputs = {} + for ipt in op.input_names: + inputs[ipt] = op.input(ipt) + for opt in op.output_names: + outputs[opt] = op.output(opt) + node = self.make_node(op, inputs, outputs, + op.all_attrs(), block) + + @staticmethod + def build_from_program(program, + feed_var_names=None, + fetch_vars=None, + scope=None): + parameters_dict = {} + vars = program.global_block().vars + for name in vars: + var = program.global_block().var(name) + if name.endswith('feed') or name.endswith('fetch'): + continue + if not var.persistable: + continue + parameters_dict[name] = { + 'data': np.array(scope.var(name).get_tensor()), + 'dtype': var.dtype, + 'shape': var.shape + } + + graph = PaddleGraph(program, parameters_dict, feed_var_names, + fetch_vars) + return graph + + @staticmethod + def build_from_dygraph(layer, input_spec=None, output_spec=None): + from paddle.nn import Layer + from paddle.fluid import core + from paddle.fluid.framework import Variable + from paddle2onnx.legacy.graph import dygraph_helper as dg_helper + if isinstance(layer, dygraph.TranslatedLayer): + program = layer.program() + parameters_dict = {} + pruned_vars = program.global_block().vars + for param in layer.parameters(): + if param.name.endswith('feed') or param.name.endswith('fetch'): + continue + if not param.persistable: + continue + if param.name in pruned_vars: + parameters_dict[param.name] = { + 'data': np.array(param.value().get_tensor()), + 'dtype': param.dtype, + 'shape': param.shape + } + for param in layer.buffers(): + if param.name.endswith('feed') or param.name.endswith('fetch'): + continue + if not param.value().get_tensor()._is_initialized(): + continue + if param.name in pruned_vars: + parameters_dict[param.name] = { + 'data': np.array(param.value().get_tensor()), + 'dtype': param.dtype, + 'shape': param.shape + } + if input_spec is not None: + logging.warning( + "Although input_spec is specified, TranslatedLayer is not support prune. An Complete network will be exported." + ) + input_spec = layer._input_spec() + if output_spec is not None: + logging.warning( + "Although output_spec is specified, TranslatedLayer is not support prune. An Complete network will be exported." + ) + feed_var_names = [ipt.name for ipt in layer._input_spec()] + fetch_vars = [ + program.global_block().var(opt.name) + for opt in layer._output_spec() + ] + graph = PaddleGraph(program, parameters_dict, feed_var_names, + fetch_vars) + return graph + elif isinstance(layer, Layer): + program, feed_var_names, fetch_vars = dg_helper.get_program( + layer, input_spec, output_spec) + parameters_dict = {} + pruned_vars = program.global_block().vars + for param in layer.parameters(): + if param.name.endswith('feed') or param.name.endswith('fetch'): + continue + if not param.persistable: + continue + if param.name in pruned_vars: + parameters_dict[param.name] = { + 'data': np.array(param.value().get_tensor()), + 'dtype': param.dtype, + 'shape': param.shape + } + for param in layer.buffers(): + if param.name.endswith('feed') or param.name.endswith('fetch'): + continue + if not param.value().get_tensor()._is_initialized(): + continue + if param.name in pruned_vars: + parameters_dict[param.name] = { + 'data': np.array(param.value().get_tensor()), + 'dtype': param.dtype, + 'shape': param.shape + } + graph = PaddleGraph(program, parameters_dict, feed_var_names, + fetch_vars) + return graph + else: + raise TypeError( + "The input Layer should be 'Layer' or 'TranslatedLayer', but received type is %s." + % type(layer)) diff --git a/paddle2onnx/legacy/op_mapper/__init__.py b/paddle2onnx/legacy/op_mapper/__init__.py new file mode 100644 index 000000000..78792e8f2 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/__init__.py @@ -0,0 +1,39 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +from .op_mapper import OpMapper, register_op_mapper, CustomPaddleOp, register_custom_paddle_op + +from . import nn +from . import math +from . import activation +from . import tensor +from . import logic +from . import search + +from .detection import yolo_box +from .detection import multiclass_nms +from .detection import prior_box +from .detection import density_prior_box +from .detection import box_coder +from .sequence import im2sequence + +from .custom_paddle_op import deformable_conv +from .custom_paddle_op import anchor_generator +from .custom_paddle_op import generate_proposals +from .custom_paddle_op import collect_fpn_proposals +from .custom_paddle_op import distribute_fpn_proposals +from .custom_paddle_op import box_clip +from .custom_paddle_op import grid_sampler diff --git a/paddle2onnx/legacy/op_mapper/activation.py b/paddle2onnx/legacy/op_mapper/activation.py new file mode 100755 index 000000000..bda17016e --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/activation.py @@ -0,0 +1,269 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +import math +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper +import paddle + + +@op_mapper( + ['relu', 'tanh', 'log', 'sigmoid', 'sqrt'], + mapper_dict={ + 'relu': 'Relu', + 'tanh': 'Tanh', + 'log': 'Log', + 'sigmoid': 'Sigmoid', + 'sqrt': 'Sqrt', + }) +class ActivationOps(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + onnx_type = kw['mapper_dict'][node.type] + onnx_node = graph.make_node( + onnx_type, inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('silu') +class Silu(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + x = node.input('X')[0] + out = graph.make_node('Sigmoid', inputs=[x]) + graph.make_node('Mul', inputs=[x, out], outputs=node.output('Out')) + +@op_mapper('leaky_relu') +class LeakyRelu(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + onnx_node = graph.make_node( + 'LeakyRelu', + inputs=[node.input('X')[0]], + outputs=node.output('Out'), + alpha=node.attr('alpha')) + + +@op_mapper('softplus') +class Softplus(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + beta = node.attr('beta') + threshold = node.attr('threshold') + if np.isclose(beta, 1.0, 1e-06, 1e-06) and \ + np.isclose(threshold, 20.0, 1e-06, 1e-06): + onnx_node = graph.make_node( + 'Softplus', + inputs=[node.input('X')[0]], + outputs=node.output('Out')) + else: + raise Exception("[ERROR] Operator softplus " \ + "only supported while beta==1.0 and threshold==20.0") + + +@op_mapper('prelu') +class PRelu(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + slope_shape = node.input_shape('Alpha', 0) + input_shape = node.input_shape('X', 0) + + slope_node = node.input('Alpha')[0] + if len(input_shape) != len(slope_shape): + assert len( + slope_shape) == 1, "Slope shape is not expected for prelu" + broadcast_shape = [-1] + [1] * (len(input_shape) - 2) + broadcast_shape = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=broadcast_shape) + slope_node = graph.make_node( + 'Reshape', inputs=[node.input('Alpha')[0], broadcast_shape]) + x = node.input('X')[0] + x_dtype = node.input_dtype('X', 0) + slope_dtype = node.input_dtype('Alpha', 0) + if slope_dtype != paddle.float32: + slope_node = graph.make_node( + 'Cast', inputs=[slope_node], to=dtypes.ONNX.FLOAT) + if x_dtype != paddle.float32: + x = graph.make_node('Cast', inputs=[x], to=dtypes.ONNX.FLOAT) + onnx_node = graph.make_node('PRelu', inputs=[x, slope_node]) + graph.make_node( + 'Cast', + inputs=[onnx_node], + outputs=node.output('Out'), + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype]) + else: + onnx_node = graph.make_node( + 'PRelu', inputs=[x, slope_node], outputs=node.output('Out')) + + +@op_mapper('relu6') +class Relu6(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + mapper_helper.clip_helper(graph, node, + node.input('X', 0), + node.attr('threshold'), 0.0, + node.output('Out', 0)) + + +@op_mapper('gelu') +class Gelu(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + input = node.input('X', 0) + x_dtype = node.input_dtype('X', 0) + # onnxruntime only support float32 Erf + if x_dtype != paddle.float32: + input = graph.make_node( + 'Cast', inputs=[input], to=dtypes.ONNX.FLOAT) + sqrt2 = graph.make_node( + 'Constant', dtype=dtypes.ONNX.FLOAT, value=[1.4142135623730951]) + zero_point_five = graph.make_node( + 'Constant', dtype=dtypes.ONNX.FLOAT, value=[0.5]) + one = graph.make_node('Constant', dtype=dtypes.ONNX.FLOAT, value=[1]) + x = graph.make_node('Div', inputs=[input, sqrt2]) + x = graph.make_node('Erf', inputs=x) + x = graph.make_node('Add', inputs=[x, one]) + x = graph.make_node('Mul', inputs=[input, x]) + if x_dtype != paddle.float32: + mul_node = graph.make_node('Mul', inputs=[x, zero_point_five]) + graph.make_node( + 'Cast', + inputs=[mul_node], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype], + outputs=node.output('Out')) + else: + graph.make_node( + 'Mul', inputs=[x, zero_point_five], outputs=node.output('Out')) + + +@op_mapper('selu') +class Selu(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + graph.make_node( + 'Selu', + inputs=node.input('X'), + alpha=node.attr('alpha'), + gamma=node.attr('scale'), + outputs=node.output('Out')) + + +@op_mapper('hard_sigmoid') +class HardSigmoid(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + slope = node.attr('slope') + offset = node.attr('offset') + graph.make_node( + 'HardSigmoid', + inputs=node.input('X'), + outputs=node.output('Out'), + alpha=slope, + beta=offset) + + +@op_mapper('swish') +class Swish(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + x = node.input('X')[0] + if math.fabs(node.attr("beta") - 1.0) > 1e-05: + beta_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.FLOAT, + 'value': [node.attr('beta')]}) + x = graph.make_node( + 'Mul', inputs=[x, beta_node]) + sigmoid_node = graph.make_node('Sigmoid', inputs=[x]) + graph.make_node( + 'Mul', + inputs=[x, sigmoid_node], + outputs=node.output('Out')) + + +@op_mapper('mish') +class Mish(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + inputs = node.input('X', 0) + dtype = node.input_dtype("X", 0) + if dtype != paddle.float32: + inputs = graph.make_node( + 'Cast', inputs=[inputs], to=dtypes.ONNX.FLOAT) + dtype = paddle.float32 + threshold = node.attr('threshold') + assert np.fabs( + threshold - 20 + ) < 1e-4, "In mish OP, the threshold only supports 20, no other values are supported" + softplus_node = graph.make_node('Softplus', inputs=[inputs]) + tanh_node = graph.make_node('Tanh', inputs=[softplus_node]) + if node.input_dtype("X", 0) != paddle.float32: + mul_node = graph.make_node('Mul', inputs=[inputs, tanh_node]) + inputs = graph.make_node( + 'Cast', + inputs=[mul_node], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype("X", 0)], + outputs=node.output('Out')) + else: + graph.make_node( + 'Mul', inputs=[inputs, tanh_node], outputs=node.output('Out')) + + +@op_mapper('hard_swish') +class HardSwish(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + scale_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.FLOAT, + 'value': node.attr('scale')}) + offset_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.FLOAT, + 'value': node.attr('offset')}) + + node0 = graph.make_node('Add', inputs=[node.input('X')[0], offset_node]) + node1 = mapper_helper.clip_helper(graph, node, node0, + node.attr('threshold'), 0.0) + node2 = graph.make_node('Mul', inputs=[node.input('X')[0], node1]) + node3 = graph.make_node( + 'Div', inputs=[node2, scale_node], outputs=node.output('Out')) diff --git a/paddle2onnx/legacy/op_mapper/custom_paddle_op/__init__.py b/paddle2onnx/legacy/op_mapper/custom_paddle_op/__init__.py new file mode 100644 index 000000000..847ddc47a --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/custom_paddle_op/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/paddle2onnx/legacy/op_mapper/custom_paddle_op/anchor_generator.py b/paddle2onnx/legacy/op_mapper/custom_paddle_op/anchor_generator.py new file mode 100755 index 000000000..3f7517a79 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/custom_paddle_op/anchor_generator.py @@ -0,0 +1,97 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +import paddle +from paddle.fluid import layers +from paddle2onnx.legacy.op_mapper import CustomPaddleOp, register_custom_paddle_op +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper + +class AnchorGenerator(CustomPaddleOp): + def __init__(self, node, **kw): + super(AnchorGenerator, self).__init__(node) + #self.x_shape = node.input_shape('Input', 0) + self.anchor_sizes = node.attr('anchor_sizes') + self.aspect_ratios = node.attr('aspect_ratios') + self.offset = node.attr('offset') + self.strides = node.attr('stride') + self.variances = node.attr('variances') + self.shapes = self.compute_shapes() + + def compute_shapes(self): + shapes = list() + for r in range(len(self.aspect_ratios)): + ar = self.aspect_ratios[r] + for s in range(len(self.anchor_sizes)): + anchor_size = self.anchor_sizes[s] + area = self.strides[0] * self.strides[1] + area_ratios = area / ar + base_w = np.floor(np.sqrt(area_ratios) + 0.5) + base_h = np.floor(base_w * ar + 0.5) + scale_w = anchor_size / self.strides[0] + scale_h = anchor_size / self.strides[1] + w = scale_w * base_w + h = scale_h * base_h + shapes.append([ + -0.5 * (w - 1), -0.5 * (h - 1), 0.5 * (w - 1), 0.5 * (h - 1) + ]) + return shapes + + def forward(self): + input_feature = self.input('Input', 0) + input_shape = paddle.shape(input_feature) + n, c, h, w = paddle.tensor.split(input_shape, num_or_sections=4) + x_ctr = paddle.arange(start=0, end=w, step=1, dtype=input_feature.dtype) + y_ctr = paddle.arange(start=0, end=h, step=1, dtype=input_feature.dtype) + x_ctr = x_ctr * self.strides[0] + self.offset * (self.strides[0] - 1) + y_ctr = y_ctr * self.strides[1] + self.offset * (self.strides[1] - 1) + tensor_one = paddle.ones(shape=[1], dtype='int64') + tensor_len_shape = paddle.full( + shape=[1], fill_value=len(self.shapes), dtype='int64') + x_ctr = paddle.reshape(x_ctr, shape=(1, -1)) + y_ctr = paddle.reshape(y_ctr, shape=(1, -1)) + x_ctr = paddle.tile(x_ctr, repeat_times=(h, tensor_one)) + y_ctr = paddle.tile(y_ctr, repeat_times=(w, tensor_one)) + y_ctr = paddle.transpose(y_ctr, perm=[1, 0]) + centers = paddle.stack([x_ctr, y_ctr], axis=-1) + centers = paddle.tensor.unsqueeze(centers, axis=[2]) + centers = paddle.tile(centers, repeat_times=(1, 1, len(self.shapes), 2)) + shape_tensor = paddle.assign(np.array(self.shapes).astype('float32')) + anchors = centers + shape_tensor + variance_tensor = paddle.assign( + np.asarray(self.variances).astype('float32')) + vars = paddle.reshape(variance_tensor, shape=[1, 1, 1, -1]) + vars = paddle.tile( + vars, repeat_times=(h, w, tensor_len_shape, tensor_one)) + return {'Anchors': [anchors], 'Variances': [vars]} + +@op_mapper('anchor_generator') +class Anchors_generator: + @classmethod + def opset_1(cls, graph, node, **kw): + node = graph.make_node( + 'anchor_generator', + inputs=node.input('Input'), + outputs=node.output('Anchors') + node.output('Variances'), + anchor_sizes = node.attr('anchor_sizes'), + aspect_ratios = node.attr('aspect_ratios'), + offset = node.attr('offset'), + strides = node.attr('stride'), + variances = node.attr('variances'), + domain = 'custom') + +register_custom_paddle_op('anchor_generator', AnchorGenerator) diff --git a/paddle2onnx/legacy/op_mapper/custom_paddle_op/box_clip.py b/paddle2onnx/legacy/op_mapper/custom_paddle_op/box_clip.py new file mode 100755 index 000000000..e201c6348 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/custom_paddle_op/box_clip.py @@ -0,0 +1,56 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +import paddle +from paddle.fluid import layers +from paddle2onnx.legacy.op_mapper import CustomPaddleOp, register_custom_paddle_op +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper + +class BoxClip(CustomPaddleOp): + def __init__(self, node, **kw): + super(BoxClip, self).__init__(node) + + def forward(self): + input = self.input('Input', 0) + im_info = self.input('ImInfo', 0) + im_info = paddle.reshape(im_info, shape=[3]) + h, w, s = paddle.tensor.split(im_info, axis=0, num_or_sections=3) + tensor_one = paddle.full(shape=[1], dtype='float32', fill_value=1.0) + tensor_zero = paddle.full(shape=[1], dtype='float32', fill_value=0.0) + h = paddle.subtract(h, tensor_one) + w = paddle.subtract(w, tensor_one) + xmin, ymin, xmax, ymax = paddle.tensor.split( + input, axis=-1, num_or_sections=4) + xmin = paddle.maximum(paddle.minimum(xmin, w), tensor_zero) + ymin = paddle.maximum(paddle.minimum(ymin, h), tensor_zero) + xmax = paddle.maximum(paddle.minimum(xmax, w), tensor_zero) + ymax = paddle.maximum(paddle.minimum(ymax, h), tensor_zero) + cliped_box = paddle.concat([xmin, ymin, xmax, ymax], axis=-1) + + return {'Output': [cliped_box]} + +@op_mapper('box_clip') +class Boxclip: + @classmethod + def opset_1(cls, graph, node, **kw): + node = graph.make_node( + 'box_clip', + inputs=node.input('Input')+node.input('ImInfo'), + outputs=node.output('Output'), + domain = 'custom') +register_custom_paddle_op('box_clip', BoxClip) diff --git a/paddle2onnx/legacy/op_mapper/custom_paddle_op/collect_fpn_proposals.py b/paddle2onnx/legacy/op_mapper/custom_paddle_op/collect_fpn_proposals.py new file mode 100755 index 000000000..191193980 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/custom_paddle_op/collect_fpn_proposals.py @@ -0,0 +1,55 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +import paddle +from paddle.fluid import layers +from paddle2onnx.legacy.op_mapper import CustomPaddleOp, register_custom_paddle_op +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper + + +class CollectFpnProposals(CustomPaddleOp): + def __init__(self, node, **kw): + super(CollectFpnProposals, self).__init__(node) + self.post_nms_top_n = node.attr('post_nms_topN') + + def forward(self): + multi_level_rois = self.input('MultiLevelRois') + multi_level_scores = self.input('MultiLevelScores') + multi_level_rois = paddle.concat(multi_level_rois, axis=0) + multi_level_scores = paddle.concat(multi_level_scores, axis=0) + proposal_num = paddle.shape(multi_level_scores)[0] + post_nms_top_n_tensor = paddle.assign( + np.array([self.post_nms_top_n]).astype('int32')) + k_candidate = paddle.concat([proposal_num, post_nms_top_n_tensor]) + k = paddle.min(k_candidate) + scores, index = paddle.topk(multi_level_scores, k=k, axis=0) + rois = paddle.gather(multi_level_rois, index, axis=0) + return {"FpnRois": [rois]} + +@op_mapper('collect_fpn_proposals') +class Collectfpnproposals: + @classmethod + def opset_1(cls, graph, node, **kw): + node = graph.make_node( + 'collect_fpn_proposals', + inputs=node.input('MultiLevelRois')+ node.input('MultiLevelScores'), + outputs=node.output('FpnRois'), + post_nms_top_n = node.attr('post_nms_topN'), + domain = 'custom') + +register_custom_paddle_op('collect_fpn_proposals', CollectFpnProposals) diff --git a/paddle2onnx/legacy/op_mapper/custom_paddle_op/deformable_conv.py b/paddle2onnx/legacy/op_mapper/custom_paddle_op/deformable_conv.py new file mode 100755 index 000000000..0042cd758 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/custom_paddle_op/deformable_conv.py @@ -0,0 +1,296 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +import paddle +from paddle.fluid import layers +from paddle2onnx.legacy.op_mapper import CustomPaddleOp, register_custom_paddle_op +from paddle2onnx import utils +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper + + +class DeformConv2d(CustomPaddleOp): + def check_attribute(self, node): + utils.compare_attr_between_dims( + node.attr('strides'), (0, 1), 'strides', 'equal') + utils.compare_attr_between_dims( + node.attr('paddings'), (0, 1), 'paddings', 'equal') + utils.compare_attr_between_dims( + node.input_shape('Offset', 0), (2, 3), 'Offset', 'equal') + utils.compare_attr( + node.attr('deformable_groups'), 1, 'deformable_groups', 'equal') + + def __init__(self, node, **kw): + super(DeformConv2d, self).__init__(node) + self.check_attribute(node) + self.in_channel = node.input_shape('Input', 0)[1] + self.offset_channel = node.input_shape('Offset', 0)[1] + self.stride = node.attr('strides')[0] + self.padding = node.attr('paddings') + if len(self.padding) == 2: + self.padding += self.padding + self.groups = node.attr('groups') + self.dilation = node.attr('dilations')[0] + self.padded_x_h = node.input_shape('Input', 0)[2] + self.padded_x_w = node.input_shape('Input', 0)[3] + if self.padded_x_h > 0: + self.padded_x_h = self.padded_x_h + self.padding[0] + self.padding[1] + if self.padded_x_w > 0: + self.padded_x_w = self.padded_x_w + self.padding[2] + self.padding[3] + + self.kernel_size = node.input_shape('Filter', 0)[2] + self.N = self.kernel_size**2 + self.num_filters = node.input_shape('Filter', 0)[0] + + def forward(self): + input = self.input('Input', 0) + weight = self.input('Filter', 0) + mask = self.input('Mask', 0) + offset = self.input('Offset', 0) + + input = layers.pad2d(input, self.padding) + input_shape = paddle.shape(input) + if self.padded_x_h < 0 or self.padded_x_w < 0: + self.padded_x_h = input_shape[2] + self.padded_x_w = input_shape[3] + + offset_x = paddle.strided_slice( + offset, + axes=[1], + starts=[0], + ends=[self.offset_channel], + strides=[2]) + offset_y = paddle.strided_slice( + offset, + axes=[1], + starts=[1], + ends=[self.offset_channel], + strides=[2]) + offset = paddle.concat([offset_x, offset_y], axis=1) + offset_shape = paddle.shape(offset) + offset_h = offset_shape[2] + offset_w = offset_shape[3] + + coordinate = self.get_offset_coordinate(offset, 'float32', offset_shape) + + coordinate = coordinate.transpose((0, 2, 3, 1)) + coord_lt, coord_rb, coord_lb, coord_rt = self.get_bilinear_corner_coordinate( + coordinate, self.padded_x_h, self.padded_x_w) + + # clip coordinate + coordinate = paddle.concat( + [ + paddle.clip(coordinate[:, :, :, :self.N], 0, + self.padded_x_h - 1), + paddle.clip(coordinate[:, :, :, self.N:], 0, + self.padded_x_w - 1) + ], + axis=-1) + + cof_lt, cof_rb, cof_lb, cof_rt = self.get_bilinear_coefficient( + coord_lt, coord_rb, coord_lb, coord_rt, coordinate) + + feature_lt = self.get_feature_by_coordinate(input, coord_lt, offset_h, + offset_w, self.padded_x_w) + feature_rb = self.get_feature_by_coordinate(input, coord_rb, offset_h, + offset_w, self.padded_x_w) + feature_lb = self.get_feature_by_coordinate(input, coord_lb, offset_h, + offset_w, self.padded_x_w) + feature_rt = self.get_feature_by_coordinate(input, coord_rt, offset_h, + offset_w, self.padded_x_w) + + feature_after_deformation = paddle.unsqueeze(cof_lt, 1) * feature_lt + \ + paddle.unsqueeze(cof_rb, 1) * feature_rb + \ + paddle.unsqueeze(cof_lb, 1) * feature_lb + \ + paddle.unsqueeze(cof_rt, 1) * feature_rt + + # modulation + if mask is not None: + mask = paddle.transpose(mask, (0, 2, 3, 1)) + mask = paddle.unsqueeze(mask, 1) + mask = paddle.tile(mask, [1, self.in_channel, 1, 1, 1]) + feature_after_deformation *= mask + + feature_after_deformation = self.reshape_feature( + feature_after_deformation, offset_h, offset_w) + + out = paddle.nn.functional.conv2d( + feature_after_deformation, + weight, + stride=self.kernel_size, + groups=self.groups) + + return {'Output': [out]} + + def get_offset_coordinate(self, offset, dtype, offset_shape): + kernel_grid_origin_x = paddle.arange( + 0, + self.kernel_size + (self.kernel_size - 1) * (self.dilation - 1), + step=self.dilation, + dtype=dtype) + kernel_grid_origin_x = kernel_grid_origin_x.unsqueeze(1) + kernel_grid_origin_x = paddle.tile(kernel_grid_origin_x, + [1, self.kernel_size]) + kernel_grid_origin_y = paddle.arange( + 0, + self.kernel_size + (self.kernel_size - 1) * (self.dilation - 1), + step=self.dilation, + dtype=dtype) + kernel_grid_origin_y = kernel_grid_origin_y.unsqueeze(0) + kernel_grid_origin_y = paddle.tile(kernel_grid_origin_y, + [self.kernel_size, 1]) + kernel_grid_origin_x = paddle.reshape(kernel_grid_origin_x, [-1]) + kernel_grid_origin_y = paddle.reshape(kernel_grid_origin_y, [-1]) + kernel_grid_origin = paddle.concat( + [kernel_grid_origin_x, kernel_grid_origin_y], -1) + kernel_grid_origin = paddle.reshape(kernel_grid_origin, + (1, 2 * self.N, 1, 1)) + + kernel_offset_x = paddle.arange( + 0, offset_shape[2] * self.stride, step=self.stride, dtype=dtype) + kernel_offset_x = kernel_offset_x.unsqueeze(1) + kernel_offset_x = paddle.expand(kernel_offset_x, offset_shape[2:]) + kernel_offset_y = paddle.arange( + 0, offset_shape[3] * self.stride, step=self.stride, dtype=dtype) + kernel_offset_y = kernel_offset_y.unsqueeze(0) + kernel_offset_y = paddle.expand(kernel_offset_y, offset_shape[2:]) + kernel_offset_x = kernel_offset_x.unsqueeze([0, 1]) + kernel_offset_x = paddle.tile(kernel_offset_x, (1, self.N, 1, 1)) + kernel_offset_y = kernel_offset_y.unsqueeze([0, 1]) + kernel_offset_y = paddle.tile(kernel_offset_y, (1, self.N, 1, 1)) + + kernel_offset = paddle.concat([kernel_offset_x, kernel_offset_y], 1) + offset = offset + paddle.cast(kernel_offset, 'float32') + paddle.cast( + kernel_grid_origin, 'float32') + + return offset + + def get_bilinear_corner_coordinate(self, coord, padded_h, padded_w): + coord_lt = coord.floor() + coord_rb = coord_lt + 1 + coord_lt = paddle.cast( + paddle.concat( + [ + paddle.clip(coord_lt[:, :, :, :self.N], 0, padded_h - 1), + paddle.clip(coord_lt[:, :, :, self.N:], 0, padded_w - 1) + ], + axis=-1), + dtype='int64') + coord_rb = paddle.cast( + paddle.concat( + [ + paddle.clip(coord_rb[:, :, :, :self.N], 0, padded_h - 1), + paddle.clip(coord_rb[:, :, :, self.N:], 0, padded_w - 1) + ], + axis=-1), + dtype='int64') + coord_lb = paddle.concat( + [coord_lt[:, :, :, :self.N], coord_rb[:, :, :, self.N:]], axis=-1) + coord_rt = paddle.concat( + [coord_rb[:, :, :, :self.N], coord_lt[:, :, :, self.N:]], axis=-1) + + return coord_lt, coord_rb, coord_lb, coord_rt + + def get_bilinear_coefficient(self, coord_lt, coord_rb, coord_lb, coord_rt, + p): + cof_lt = (1 + (paddle.cast( + coord_lt[:, :, :, :self.N], dtype='float32') - p[:, :, :, :self.N]) + ) * (1 + paddle.cast( + coord_lt[:, :, :, self.N:], dtype='float32') - + p[:, :, :, self.N:]) + cof_rb = (1 - (paddle.cast( + coord_rb[:, :, :, :self.N], dtype='float32') - p[:, :, :, :self.N]) + ) * (1 - (paddle.cast( + coord_rb[:, :, :, self.N:], dtype='float32') - + p[:, :, :, self.N:])) + cof_lb = (1 + (paddle.cast( + coord_lb[:, :, :, :self.N], dtype='float32') - p[:, :, :, :self.N]) + ) * (1 - (paddle.cast( + coord_lb[:, :, :, self.N:], dtype='float32') - + p[:, :, :, self.N:])) + cof_rt = (1 - (paddle.cast( + coord_rt[:, :, :, :self.N], dtype='float32') - p[:, :, :, :self.N]) + ) * (1 + paddle.cast( + coord_rt[:, :, :, self.N:], dtype='float32') - + p[:, :, :, self.N:]) + + return cof_lt, cof_rb, cof_lb, cof_rt + + def get_feature_by_coordinate(self, x, coord, offset_h, offset_w, + padded_x_w): + x = paddle.reshape(x, [0, 0, -1]) + index = paddle.cast( + coord[:, :, :, :self.N] * padded_x_w, + dtype='int64') + coord[:, :, :, self.N:] # offset_x*w + offset_y + index = paddle.unsqueeze(index, 1) + index = paddle.tile(index, [1, self.in_channel, 1, 1, 1]) + index = paddle.reshape(index, (0, 0, -1)) + x_range = list(range(3)) + dim = 2 + x_range[0] = dim + x_range[dim] = 0 + x_swaped = paddle.transpose(x, perm=x_range) + index_range = list(range(3)) + index_range[0] = dim + index_range[dim] = 0 + index_swaped = paddle.transpose(index, perm=index_range) + x_shape = layers.shape(x_swaped) + index_shape = layers.shape(index_swaped) + prod = paddle.prod(x_shape[1:], keepdim=True) + x_swaped_flattend = paddle.reshape(x_swaped, [-1]) + index_swaped_flattend = paddle.reshape(index_swaped, [-1]) + index_swaped_flattend *= prod + bias = paddle.arange(start=0, end=prod, step=1, dtype='float32') + bias = paddle.tile(bias, index_shape[0]) + index_swaped_flattend += bias + gathered = paddle.gather(x_swaped_flattend, index_swaped_flattend) + gathered = paddle.reshape(gathered, layers.shape(index_swaped)) + x_offset = paddle.transpose(gathered, perm=x_range) + x_offset = paddle.reshape( + x_offset, (-1, self.in_channel, offset_h, offset_w, self.N)) + return x_offset + + def reshape_feature(self, x_offset, offset_h, offset_w): + x_offset = paddle.concat( + [ + paddle.reshape(x_offset[:, :, :, :, s:s + self.kernel_size], ( + -1, self.in_channel, offset_h, offset_w * self.kernel_size)) + for s in range(0, self.N, self.kernel_size) + ], + axis=-1) + x_offset = paddle.reshape(x_offset, (-1, self.in_channel, + offset_h * self.kernel_size, + offset_w * self.kernel_size)) + return x_offset + +@op_mapper('deformable_conv') +class Deformconv2d: + @classmethod + def opset_1(cls, graph, node, **kw): + node = graph.make_node( + 'deformable_conv', + inputs=node.input('Input')+node.input('Filter')+node.input('Mask')+node.input('Offset'), + outputs=node.output('Output'), + stride = node.attr('strides'), + padding = node.attr('paddings'), + groups = node.attr('groups'), + dilation = node.attr('dilations'), + deformable_groups = node.attr('deformable_groups'), + domain = 'custom') + +register_custom_paddle_op('deformable_conv', DeformConv2d) diff --git a/paddle2onnx/legacy/op_mapper/custom_paddle_op/distribute_fpn_proposals.py b/paddle2onnx/legacy/op_mapper/custom_paddle_op/distribute_fpn_proposals.py new file mode 100755 index 000000000..eaefd0d4f --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/custom_paddle_op/distribute_fpn_proposals.py @@ -0,0 +1,100 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +import paddle +from paddle.fluid import layers +from paddle2onnx.legacy.op_mapper import CustomPaddleOp, register_custom_paddle_op +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper + + +class DistributeFpnProposals(CustomPaddleOp): + def __init__(self, node, **kw): + super(DistributeFpnProposals, self).__init__(node) + self.max_level = node.attr('max_level') + self.min_level = node.attr('min_level') + self.refer_level = node.attr('refer_level') + self.refer_scale = node.attr('refer_scale') + self.pixel_offset = node.attr('pixel_offset') + + def bbox_area(self, boxes): + offset = 1 if self.pixel_offset else 0 + xmin, ymin, xmax, ymax = paddle.tensor.split( + boxes, axis=1, num_or_sections=4) + width = xmax - xmin + offset + height = ymax - ymin + offset + areas = width * height + return areas + + def forward(self): + fpn_rois = self.input('FpnRois', 0) + areas = self.bbox_area(fpn_rois) + scale = paddle.sqrt(areas) + num_level = self.max_level - self.min_level + 1 + target_level = paddle.log(scale / self.refer_scale + 1e-06) / np.log(2) + target_level = paddle.floor(self.refer_level + target_level) + target_level = paddle.clip( + target_level, min=self.min_level, max=self.max_level) + + rois = list() + rois_idx_order = list() + rois_num_per_level = list() + + for level in range(self.min_level, self.max_level + 1): + level_tensor = paddle.full_like(target_level, fill_value=level) + res = paddle.equal(target_level, level_tensor) + res = paddle.squeeze(res, axis=1) + res = paddle.cast(res, dtype='int32') + index = paddle.nonzero(res) + roi = paddle.gather(fpn_rois, index, axis=0) + rois.append(roi) + rois_idx_order.append(index) + rois_num_per_level.append(paddle.shape(roi)[0]) + rois_idx_order = paddle.concat(rois_idx_order, axis=0) + size = paddle.shape(rois_idx_order)[0] + _, rois_idx_restore = paddle.topk( + rois_idx_order, axis=0, sorted=True, largest=False, k=size) + + rois_idx_restore = paddle.cast(rois_idx_restore, dtype='int32') + if len(self.input('RoisNum')) > 0: + # trick: to keep rois num + rois_num_per_level[0] += self.input('RoisNum', 0) * 0 + return { + 'MultiFpnRois': rois, + 'RestoreIndex': [rois_idx_restore], + 'MultiLevelRoIsNum': rois_num_per_level + } + else: + return {'MultiFpnRois': rois, 'RestoreIndex': [rois_idx_restore]} + + +@op_mapper('distribute_fpn_proposals') +class Distributefpnproposals: + @classmethod + def opset_1(cls, graph, node, **kw): + node = graph.make_node( + 'distribute_fpn_proposals', + inputs=node.input('FpnRois'), + outputs=node.output('MultiFpnRois') + node.output('RestoreIndex'), + max_level=node.attr('max_level'), + min_level=node.attr('min_level'), + refer_level=node.attr('refer_level'), + refer_scale=node.attr('refer_scale'), + domain='custom') + + +register_custom_paddle_op('distribute_fpn_proposals', DistributeFpnProposals) diff --git a/paddle2onnx/legacy/op_mapper/custom_paddle_op/generate_proposals.py b/paddle2onnx/legacy/op_mapper/custom_paddle_op/generate_proposals.py new file mode 100755 index 000000000..f1ae448d4 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/custom_paddle_op/generate_proposals.py @@ -0,0 +1,223 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +import paddle +import math +from paddle.fluid import layers +from paddle2onnx.legacy.op_mapper import CustomPaddleOp, register_custom_paddle_op +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper + +BBOX_CLIP_DEFAULT = math.log(1000.0 / 16.0) + + +class GenerateProposals(CustomPaddleOp): + def __init__(self, node, **kw): + paddle.enable_static() + super(GenerateProposals, self).__init__(node) + self.eta = node.attr('eta') + self.min_size = node.attr('min_size') + self.nms_thresh = node.attr('nms_thresh') + self.post_nms_topN = node.attr('post_nms_topN') + self.pre_nms_topN = node.attr('pre_nms_topN') + self.type = node.type + if self.type == 'generate_proposals_v2': + self.pixel_offset = node.attr('pixel_offset') + else: + self.pixel_offset = True + + def filter_boxes(self, boxes, im_w, im_h, im_s, min_size): + min_size = max(min_size, 1.0) + xmin, ymin, xmax, ymax = paddle.tensor.split( + boxes, axis=1, num_or_sections=4) + x_ctr = (xmax + xmin) / 2 + 0.5 + y_ctr = (ymax + ymin) / 2 + 0.5 + ws = (xmax - xmin) / im_s + 1 + hs = (ymax - ymin) / im_s + 1 + + min_size = np.asarray([min_size], dtype='float32') + min_size = paddle.assign(min_size) + valid_flag_ws = paddle.greater_equal(ws, min_size) + valid_flag_hs = paddle.greater_equal(hs, min_size) + valid_flag_x = paddle.less_equal(x_ctr, im_w) + valid_flag_y = paddle.less_equal(y_ctr, im_h) + valid_flag = paddle.logical_and(valid_flag_ws, valid_flag_hs) + valid_flag = paddle.logical_and(valid_flag, valid_flag_x) + valid_flag = paddle.logical_and(valid_flag, valid_flag_y) + valid_flag = paddle.squeeze(valid_flag, axis=1) + valid_inds = paddle.nonzero(valid_flag) + + return valid_inds + + def filter_boxes_v2(self, boxes, im_w, im_h, min_size, pixel_offset=True): + min_size = max(min_size, 1.0) + xmin, ymin, xmax, ymax = paddle.tensor.split( + boxes, axis=1, num_or_sections=4) + + offset = 1 if pixel_offset else 0 + ws = (xmax - xmin) + offset + hs = (ymax - ymin) + offset + + min_size = np.asarray([min_size], dtype='float32') + min_size = paddle.assign(min_size) + valid_flag_ws = paddle.greater_equal(ws, min_size) + valid_flag_hs = paddle.greater_equal(hs, min_size) + valid_flag = paddle.logical_and(valid_flag_ws, valid_flag_hs) + if pixel_offset: + x_ctr = xmin + ws / 2 + y_ctr = ymin + hs / 2 + valid_flag_x = paddle.less_equal(x_ctr, im_w) + valid_flag_y = paddle.less_equal(y_ctr, im_h) + valid_flag = paddle.logical_and(valid_flag, valid_flag_x) + valid_flag = paddle.logical_and(valid_flag, valid_flag_y) + + valid_flag = paddle.squeeze(valid_flag, axis=1) + valid_inds = paddle.nonzero(valid_flag) + return valid_inds + + def clip_tiled_boxes(self, im_w, im_h, input_boxes, pixel_offset=True): + offset = 1 if pixel_offset else 0 + xmin, ymin, xmax, ymax = paddle.tensor.split( + input_boxes, axis=1, num_or_sections=4) + xmin = paddle.clip(xmin, max=im_w - offset, min=0) + ymin = paddle.clip(ymin, max=im_h - offset, min=0) + xmax = paddle.clip(xmax, max=im_w - offset, min=0) + ymax = paddle.clip(ymax, max=im_h - offset, min=0) + input_boxes = paddle.concat([xmin, ymin, xmax, ymax], axis=1) + return input_boxes + + def box_encode(self, anchors, bbox_deltas, variances, pixel_offset=True): + offset = 1 if pixel_offset else 0 + anchor_xmin, anchor_ymin, anchor_xmax, anchor_ymax = paddle.tensor.split( + anchors, axis=1, num_or_sections=4) + anchor_width = anchor_xmax - anchor_xmin + offset + anchor_height = anchor_ymax - anchor_ymin + offset + anchor_center_x = anchor_xmin + 0.5 * anchor_width + anchor_center_y = anchor_ymin + 0.5 * anchor_height + var_center_x, var_center_y, var_width, var_height = paddle.tensor.split( + variances, axis=1, num_or_sections=4) + delta_center_x, delta_center_y, delta_width, delta_height = paddle.tensor.split( + bbox_deltas, axis=1, num_or_sections=4) + + bbox_center_x = var_center_x * delta_center_x * anchor_width + anchor_center_x + bbox_center_y = var_center_y * delta_center_y * anchor_height + anchor_center_y + bbox_width = paddle.exp( + paddle.clip( + var_width * delta_width, max=BBOX_CLIP_DEFAULT)) * anchor_width + bbox_height = paddle.exp( + paddle.clip( + var_height * delta_height, + max=BBOX_CLIP_DEFAULT)) * anchor_height + + proposal_xmin = bbox_center_x - bbox_width / 2 + proposal_ymin = bbox_center_y - bbox_height / 2 + proposal_xmax = bbox_center_x + bbox_width / 2 - offset + proposal_ymax = bbox_center_y + bbox_height / 2 - offset + proposal = paddle.concat( + [proposal_xmin, proposal_ymin, proposal_xmax, proposal_ymax], + axis=1) + return proposal + + def proposal_for_single_sample(self, anchors, bbox_deltas, im_info, scores, + variances): + proposal_num = paddle.shape(scores)[0] + pre_nms_top_n_tensor = paddle.assign( + np.asarray( + [self.pre_nms_topN], dtype='int32')) + k_candidate = paddle.concat([proposal_num, pre_nms_top_n_tensor]) + k = paddle.min(k_candidate) + scores, index = paddle.topk(scores, k=k, axis=0) + bbox_deltas = paddle.gather(bbox_deltas, index, axis=0) + anchors = paddle.gather(anchors, index, axis=0) + variances = paddle.gather(variances, index, axis=0) + + proposal = self.box_encode(anchors, bbox_deltas, variances, + self.pixel_offset) + if self.type == "generate_proposals_v2": + im_h, im_w = paddle.tensor.split(im_info, axis=1, num_or_sections=2) + else: + im_h, im_w, im_s = paddle.tensor.split( + im_info, axis=1, num_or_sections=3) + proposal = self.clip_tiled_boxes(im_w, im_h, proposal, + self.pixel_offset) + + if self.type == "generate_proposals_v2": + keep = self.filter_boxes_v2(proposal, im_w, im_h, self.min_size, + self.pixel_offset) + else: + keep = self.filter_boxes(proposal, im_w, im_h, im_s, self.min_size) + + tail_proposal = paddle.zeros(shape=[1, 4], dtype=proposal.dtype) + proposal_num = paddle.shape(proposal)[0] + tail_keep = paddle.reshape(proposal_num, shape=[1, 1]) + tail_keep = paddle.cast(tail_keep, dtype=keep.dtype) + tail_scores = paddle.zeros(shape=[1, 1], dtype=scores.dtype) + # proposal = paddle.concat([proposal, tail_proposal]) + # keep = paddle.concat([keep, tail_keep]) + # scores = paddle.concat([scores, tail_scores]) + + bbox_sel = paddle.gather(proposal, keep, axis=0) + scores_sel = paddle.gather(scores, keep, axis=0) + proposal = paddle.unsqueeze(bbox_sel, axis=0) + scores = paddle.transpose(scores_sel, perm=[1, 0]) + scores = paddle.unsqueeze(scores, axis=0) + out = layers.multiclass_nms( + proposal, + scores, + background_label=-1, + nms_top_k=self.pre_nms_topN, + score_threshold=-10000., + keep_top_k=self.post_nms_topN, + nms_threshold=self.nms_thresh, + normalized=False if self.pixel_offset else True, + nms_eta=self.eta) + label, scores, proposal = paddle.tensor.split( + out, axis=1, num_or_sections=[1, 1, 4]) + return scores, proposal + + def forward(self): + anchors = self.input('Anchors', 0) + bboxdeltas = self.input('BboxDeltas', 0) + if self.type == 'generate_proposals_v2': + iminfo = self.input('ImShape', 0) + else: + iminfo = self.input('ImInfo', 0) + scores = self.input('Scores', 0) + variances = self.input('Variances', 0) + + bboxdeltas = paddle.transpose(bboxdeltas, perm=[0, 2, 3, 1]) + bboxdeltas = paddle.reshape(bboxdeltas, [-1, 4]) + scores = paddle.transpose(scores, perm=[0, 2, 3, 1]) + scores = paddle.reshape(scores, [-1, 1]) + anchors = paddle.reshape(anchors, [-1, 4]) + variances = paddle.reshape(variances, [-1, 4]) + + new_scores, proposals = self.proposal_for_single_sample( + anchors, bboxdeltas, iminfo, scores, variances) + if len(self.node.outputs) == 3: + rois_num = paddle.shape(new_scores)[0] + return { + 'RpnRoiProbs': [new_scores], + 'RpnRois': [proposals], + 'RpnRoisNum': [rois_num] + } + else: + return {'RpnRoiProbs': [new_scores], 'RpnRois': [proposals]} + + +register_custom_paddle_op('generate_proposals', GenerateProposals) +register_custom_paddle_op('generate_proposals_v2', GenerateProposals) diff --git a/paddle2onnx/legacy/op_mapper/custom_paddle_op/grid_sampler.py b/paddle2onnx/legacy/op_mapper/custom_paddle_op/grid_sampler.py new file mode 100755 index 000000000..4191cbb53 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/custom_paddle_op/grid_sampler.py @@ -0,0 +1,151 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +import paddle +from paddle.fluid import layers +from paddle2onnx.legacy.op_mapper import CustomPaddleOp, register_custom_paddle_op +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper + + +class GridSampler(CustomPaddleOp): + def __init__(self, node, **kw): + super(GridSampler, self).__init__(node) + self.padding_mode = node.attr('padding_mode') + self.mode = node.attr('mode') + self.align_corners = node.attr('align_corners') + + def paddle_bilinear_grid_sample(self, im, grid, align_corners=False): + # this code reference: https://mmcv.readthedocs.io/en/latest/_modules/mmcv/ops/point_sample.html + im_shape = paddle.shape(im) + n, c, h, w = paddle.split(im_shape, num_or_sections=4) + grid_shape = paddle.shape(grid) + gn, gh, gw, _ = paddle.split(grid_shape, num_or_sections=4) + + # n, c, h, w = im.shape + # gn, gh, gw, _ = grid.shape + # assert n == gn + + x = grid[:, :, :, 0] + y = grid[:, :, :, 1] + + if align_corners: + x = ((x + 1) / 2) * (w - 1) + y = ((y + 1) / 2) * (h - 1) + else: + x = ((x + 1) * w - 1) / 2 + y = ((y + 1) * h - 1) / 2 + + x = paddle.reshape(x, [n, -1]) + y = paddle.reshape(y, [n, -1]) + + x0 = paddle.floor(x).astype('int64') + y0 = paddle.floor(y).astype('int64') + x1 = x0 + 1 + y1 = y0 + 1 + + x1_cast = x1.astype(grid.dtype) + x0_cast = x0.astype(grid.dtype) + y1_cast = y1.astype(grid.dtype) + y0_cast = y0.astype(grid.dtype) + wa = paddle.unsqueeze(((x1_cast - x) * (y1_cast - y)), 1) + wb = paddle.unsqueeze(((x1_cast - x) * (y - y0_cast)), 1) + wc = paddle.unsqueeze(((x - x0_cast) * (y1_cast - y)), 1) + wd = paddle.unsqueeze(((x - x0_cast) * (y - y0_cast)), 1) + + # Apply default for grid_sample function zero padding + im_padded = paddle.nn.functional.pad(im, + pad=[1, 1, 1, 1], + mode='constant', + value=0) + if im_padded.dtype != im.dtype: + im_padded = paddle.cast(im_padded, im.dtype) + padded_h = h + 2 + padded_w = w + 2 + # save points positions after padding + x0, x1, y0, y1 = x0 + 1, x1 + 1, y0 + 1, y1 + 1 + + # Clip coordinates to padded image size + tensor_zero = paddle.full(shape=[1], dtype='int64', fill_value=0.0) + tensor_padded_w = paddle.full( + shape=[1], dtype='int64', fill_value=padded_w - 1) + tensor_padded_h = paddle.full( + shape=[1], dtype='int64', fill_value=padded_h - 1) + x0 = paddle.where(x0 < 0, tensor_zero, x0) + x0 = paddle.where(x0 > padded_w - 1, tensor_padded_w, x0) + x1 = paddle.where(x1 < 0, tensor_zero, x1) + x1 = paddle.where(x1 > padded_w - 1, tensor_padded_w, x1) + y0 = paddle.where(y0 < 0, tensor_zero, y0) + y0 = paddle.where(y0 > padded_h - 1, tensor_padded_h, y0) + y1 = paddle.where(y1 < 0, tensor_zero, y1) + y1 = paddle.where(y1 > padded_h - 1, tensor_padded_h, y1) + im_padded = paddle.reshape(im_padded, [n, c, -1]) + + x0_y0 = paddle.expand( + paddle.unsqueeze((x0 + y0 * padded_w), 1), [-1, c, -1]) + x0_y1 = paddle.expand( + paddle.unsqueeze((x0 + y1 * padded_w), 1), [-1, c, -1]) + x1_y0 = paddle.expand( + paddle.unsqueeze((x1 + y0 * padded_w), 1), [-1, c, -1]) + x1_y1 = paddle.expand( + paddle.unsqueeze((x1 + y1 * padded_w), 1), [-1, c, -1]) + + Ia = self.paddle_gather(im_padded, 2, x0_y0) + Ib = self.paddle_gather(im_padded, 2, x0_y1) + Ic = self.paddle_gather(im_padded, 2, x1_y0) + Id = self.paddle_gather(im_padded, 2, x1_y1) + + return paddle.reshape((Ia * wa + Ib * wb + Ic * wc + Id * wd), + [n, c, gh, gw]) + + def paddle_gather(self, x, dim, index): + # index_shape = index.shape + index_shape = paddle.shape(index) + x_shape = paddle.shape(x) + index_flatten = index.flatten() + if dim < 0: + dim = len(x.shape) + dim + nd_index = [] + for k in range(len(x.shape)): + if k == dim: + nd_index.append(index_flatten) + else: + reshape_shape = [1] * len(x.shape) + x_shape_k = x_shape[k] + # x_shape_k = x.shape[k] + reshape_shape[k] = x_shape_k + x_arange = paddle.arange(x_shape_k, dtype=index.dtype) + x_arange = x_arange.reshape(reshape_shape) + dim_index = paddle.expand(x_arange, index_shape).flatten() + nd_index.append(dim_index) + ind2 = paddle.transpose(paddle.stack(nd_index), [1, 0]).astype("int64") + paddle_out = paddle.gather_nd(x, ind2).reshape(index_shape) + return paddle_out + + def forward(self): + input = self.input('X', 0) + grid = self.input('Grid', 0) + if self.mode != 'bilinear' or self.padding_mode != 'zeros': + raise Exception( + "grid_sample only is supported with mode should be 'bilinear' and padding_mode should be 'zeros'" + ) + res = self.paddle_bilinear_grid_sample( + input, grid, align_corners=self.align_corners) + return {'Output': [res]} + + +register_custom_paddle_op('grid_sampler', GridSampler) diff --git a/paddle2onnx/legacy/op_mapper/detection/__init__.py b/paddle2onnx/legacy/op_mapper/detection/__init__.py new file mode 100644 index 000000000..847ddc47a --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/detection/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/paddle2onnx/legacy/op_mapper/detection/box_coder.py b/paddle2onnx/legacy/op_mapper/detection/box_coder.py new file mode 100755 index 000000000..6e8df722b --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/detection/box_coder.py @@ -0,0 +1,363 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper + + +@op_mapper('box_coder') +class BoxCoder(): + """ + we use the decode the prior box to target box, + we just use the decode mode to transform this op. + """ + support_opset_verison_range = (7, 12) + + @classmethod + def opset_7(cls, graph, node, **kw): + input_names = node.input_names + + t_size = node.input_shape('TargetBox', 0) + p_size = node.input_shape('PriorBox', 0) + + # get the outout_name + result_name = node.output('OutputBox', 0) + # n is size of batch, m is boxes num of targe_boxes + n = t_size[0] + m = t_size[0] + + axis = int(node.attr('axis')) + + #norm + norm = bool(node.attr('box_normalized')) + + name_slice_x1 = node.output('OutputBox')[0] + "@x1" + name_slice_y1 = node.output('OutputBox')[0] + "@y1" + name_slice_x2 = node.output('OutputBox')[0] + "@x2" + name_slice_y2 = node.output('OutputBox')[0] + "@y2" + + #make onnx tensor to save the intermeidate reslut + name_slice_indices = [ + [node.output('OutputBox')[0] + "@slice_" + str(i)] + for i in range(1, 3) + ] + node_slice_indices = [None for i in range(1, 3)] + + # create the range(0, 4) const data to slice + for i in range(1, 3): + tmp_node = graph.make_node( + 'Constant', + inputs=[], + outputs=name_slice_indices[i - 1], + dtype=dtypes.ONNX.FLOAT, + dims=(), + value=[i]) + # make node split data + name_box_split = [ + name_slice_x1, name_slice_y1, name_slice_x2, name_slice_y2 + ] + split_shape = list(p_size) + split_shape[-1] = 1 + + node_split_prior_node = graph.make_node( + 'Split', + inputs=node.input('PriorBox'), + outputs=name_box_split, + axis=1) + + # make node get centor node for decode + final_outputs_vars = [] + if not norm: + name_centor_w_tmp = [node.output('OutputBox')[0] + "@centor_w_tmp"] + name_centor_h_tmp = [node.output('OutputBox')[0] + "@centor_h_tmp"] + node_centor_w_tmp = None + node_centor_h_tmp = None + name_centor_tmp_list = [name_centor_w_tmp, name_centor_h_tmp] + node_centor_tmp_list = [node_centor_w_tmp, node_centor_h_tmp] + + count = 2 + for (name, op_node) in zip(name_centor_tmp_list, + node_centor_tmp_list): + tmp_node = graph.make_node('Add', + inputs=[node.output('OutputBox')[0] + "@slice_" + str(1)]\ + + [name_box_split[count]], + outputs=name) + count = count + 1 + if not norm: + inputs_sub = [[name_centor_w_tmp[0], name_box_split[0]], + [name_centor_h_tmp[0], name_box_split[1]]] + else: + inputs_sub = [[name_box_split[2], name_box_split[0]], + [name_box_split[3], name_box_split[1]]] + outputs_sub = [result_name + "@pb_w", result_name + "@pb_h"] + for i in range(0, 2): + tmp_node = graph.make_node( + 'Sub', inputs=inputs_sub[i], outputs=[outputs_sub[i]]) + # according to prior_box height and weight to get centor x, y + name_half_value = [result_name + "@half_value"] + node_half_value = graph.make_node( + 'Constant', + inputs=[], + outputs=name_half_value, + dtype=dtypes.ONNX.FLOAT, + dims=(), + value=[0.5]) + outputs_half_wh = [[result_name + "@pb_w_half"], + [result_name + "@pb_h_half"]] + inputs_half_wh = [[result_name + "@pb_w", name_half_value[0]], + [result_name + "@pb_h", name_half_value[0]]] + + for i in range(0, 2): + tmp_node = graph.make_node( + 'Mul', inputs=inputs_half_wh[i], outputs=outputs_half_wh[i]) + + inputs_centor_xy = [[outputs_half_wh[0][0], name_slice_x1], + [outputs_half_wh[1][0], name_slice_y1]] + + outputs_centor_xy = [[result_name + "@pb_x"], [result_name + "@pb_y"]] + + # final calc the centor x ,y + for i in range(0, 2): + tmp_node = graph.make_node( + 'Add', inputs=inputs_centor_xy[i], outputs=outputs_centor_xy[i]) + # reshape the data + shape = (1, split_shape[0]) if axis == 0 else (split_shape[0], 1) + + # need to reshape the data + inputs_transpose_pb = [ + [result_name + "@pb_w"], + [result_name + "@pb_h"], + [result_name + "@pb_x"], + [result_name + "@pb_y"], + ] + outputs_transpose_pb = [ + [result_name + "@pb_w_transpose"], + [result_name + "@pb_h_transpose"], + [result_name + "@pb_x_transpose"], + [result_name + "@pb_y_transpose"], + ] + if axis == 0: + name_reshape_pb = [result_name + "@pb_transpose"] + # reshape the data + for i in range(0, 4): + tmp_node = graph.make_node( + 'Transpose', + inputs=inputs_transpose_pb[i], + outputs=outputs_transpose_pb[i]) + # decoder the box according to the target_box and variacne + name_variance_raw = [result_name + "@variance_raw"] + name_variance_unsqueeze = [result_name + "@variance_unsqueeze"] + shape = [] + # make node to extend the data + var_split_axis = 0 + var_split_inputs_name = [] + if 'PriorBoxVar' in input_names and len(node.input('PriorBoxVar')) > 0: + if axis == 1: + raise Exception( + "The op box_coder has variable do not support aixs broadcast" + ) + axes = [] + var_split_inputs_name = [result_name + "@variance_split"] + tmp_node = graph.make_node( + 'Transpose', + inputs=node.input('PriorBoxVar'), + outputs=var_split_inputs_name) + var_split_axis = 0 + else: + variances = [1.0, 1.0, 1.0, 1.0] + if 'variance' in node.attrs and len(node.attr('variance')) > 0: + variances = [float(var) for var in node.attr('variance')] + node_variance_create = graph.make_node( + 'Constant', + inputs=[], + outputs=name_variance_raw, + dtype=dtypes.ONNX.FLOAT, + dims=[len(variances)], + value=variances) + var_split_axis = 0 + var_split_inputs_name = name_variance_raw + + # decode the result + outputs_split_variance = [ + result_name + "@variance_split" + str(i) for i in range(0, 4) + ] + outputs_split_targebox = [ + result_name + "@targebox_split" + str(i) for i in range(0, 4) + ] + node_split_var = graph.make_node( + 'Split', + inputs=var_split_inputs_name, + outputs=outputs_split_variance, + axis=var_split_axis) + node_split_target = graph.make_node( + 'Split', + inputs=node.input('TargetBox'), + outputs=outputs_split_targebox, + axis=2) + + outputs_squeeze_targebox = [ + result_name + "@targebox_squeeze" + str(i) for i in range(0, 4) + ] + for (input_name, output_name) in zip(outputs_split_targebox, + outputs_squeeze_targebox): + tmp_node = mapper_helper.squeeze_helper(graph, input_name, [2], + [output_name]) + + output_shape_step1 = list(t_size)[:-1] + + inputs_tb_step1 = [ + [outputs_squeeze_targebox[0], outputs_split_variance[0]], + [outputs_squeeze_targebox[1], outputs_split_variance[1]], + [outputs_squeeze_targebox[2], outputs_split_variance[2]], + [outputs_squeeze_targebox[3], outputs_split_variance[3]] + ] + outputs_tb_step1 = [[result_name + "@decode_x_step1"], + [result_name + "@decode_y_step1"], + [result_name + "@decode_w_step1"], + [result_name + "@decode_h_step1"]] + + for input_step1, output_step_1 in zip(inputs_tb_step1, + outputs_tb_step1): + tmp_node = graph.make_node( + 'Mul', inputs=input_step1, outputs=output_step_1) + if axis == 0: + inputs_tbxy_step2 = [[ + outputs_tb_step1[0][0], outputs_transpose_pb[0][0] + ], [outputs_tb_step1[1][0], outputs_transpose_pb[1][0]]] + else: + inputs_tbxy_step2 = [[ + outputs_tb_step1[0][0], inputs_transpose_pb[0][0] + ], [outputs_tb_step1[1][0], inputs_transpose_pb[1][0]]] + + outputs_tbxy_step2 = [[result_name + "@decode_x_step2"], + [result_name + "@decode_y_step2"]] + + for input_step2, output_step_2 in zip(inputs_tbxy_step2, + outputs_tbxy_step2): + tmp_node = graph.make_node( + 'Mul', inputs=input_step2, outputs=output_step_2) + if axis == 0: + inputs_tbxy_step3 = [[ + outputs_tbxy_step2[0][0], outputs_transpose_pb[2][0] + ], [outputs_tbxy_step2[1][0], outputs_transpose_pb[3][0]]] + else: + inputs_tbxy_step3 = [[ + outputs_tbxy_step2[0][0], inputs_transpose_pb[2][0] + ], [outputs_tbxy_step2[1][0], inputs_transpose_pb[3][0]]] + + outputs_tbxy_step3 = [[result_name + "@decode_x_step3"], + [result_name + "@decode_y_step3"]] + + for input_step3, output_step_3 in zip(inputs_tbxy_step3, + outputs_tbxy_step3): + tmp_node = graph.make_node( + 'Add', inputs=input_step3, outputs=output_step_3) + + # deal with width & height + inputs_tbwh_step2 = [outputs_tb_step1[2], outputs_tb_step1[3]] + outputs_tbwh_step2 = [[result_name + "@decode_w_step2"], + [result_name + "@decode_h_step2"]] + + for input_name, output_name in zip(inputs_tbwh_step2, + outputs_tbwh_step2): + tmp_node = graph.make_node( + 'Exp', inputs=input_name, outputs=output_name) + + if axis == 0: + inputs_tbwh_step3 = [[ + outputs_tbwh_step2[0][0], outputs_transpose_pb[0][0] + ], [outputs_tbwh_step2[1][0], outputs_transpose_pb[1][0]]] + else: + inputs_tbwh_step3 = [[ + outputs_tbwh_step2[0][0], inputs_transpose_pb[0][0] + ], [outputs_tbwh_step2[1][0], inputs_transpose_pb[1][0]]] + + outputs_tbwh_step3 = [[result_name + "@decode_w_step3"], + [result_name + "@decode_h_step3"]] + + for input_name, output_name in zip(inputs_tbwh_step3, + outputs_tbwh_step3): + tmp_node = graph.make_node( + 'Mul', inputs=input_name, outputs=output_name) + + # final step to calc the result, and concat the result to output + # return the output box, [(x1, y1), (x2, y2)] + + inputs_half_tbwh_step4 = [[ + outputs_tbwh_step3[0][0], result_name + "@slice_2" + ], [outputs_tbwh_step3[1][0], result_name + "@slice_2"]] + + outputs_half_tbwh_step4 = [[result_name + "@decode_half_w_step4"], + [result_name + "@decode_half_h_step4"]] + for inputs_name, outputs_name in zip(inputs_half_tbwh_step4, + outputs_half_tbwh_step4): + tmp_node = graph.make_node( + 'Div', inputs=inputs_name, outputs=outputs_name) + inputs_output_point1 = [[ + outputs_tbxy_step3[0][0], outputs_half_tbwh_step4[0][0] + ], [outputs_tbxy_step3[1][0], outputs_half_tbwh_step4[1][0]]] + + outputs_output_point1 = [[result_name + "@ouput_x1"], + [result_name + "@output_y1"]] + for input_name, output_name in zip(inputs_output_point1, + outputs_output_point1): + tmp_node = graph.make_node( + 'Sub', inputs=input_name, outputs=output_name) + + inputs_output_point2 = [[ + outputs_tbxy_step3[0][0], outputs_half_tbwh_step4[0][0] + ], [outputs_tbxy_step3[1][0], outputs_half_tbwh_step4[1][0]]] + + outputs_output_point2 = [[result_name + "@ouput_x2"], + [result_name + "@output_y2"]] + + for input_name, output_name in zip(inputs_output_point2, + outputs_output_point2): + tmp_node = graph.make_node( + 'Add', inputs=input_name, outputs=output_name) + if not norm: + inputs_unnorm_point2 = [[ + outputs_output_point2[0][0], result_name + "@slice_1" + ], [outputs_output_point2[1][0], result_name + "@slice_1"]] + outputs_unnorm_point2 = [[result_name + "@ouput_unnorm_x2"], + [result_name + "@ouput_unnorm_y2"]] + + for input_name, output_name in zip(inputs_unnorm_point2, + outputs_unnorm_point2): + tmp_node = graph.make_node( + 'Sub', inputs=input_name, outputs=output_name) + outputs_output_point2 = outputs_unnorm_point2 + + outputs_output_point1.extend(outputs_output_point2) + ouputs_points_unsqueeze = [[result_name + "@points_unsqueeze_x1"], + [result_name + "points_unsqueeze_y1"], + [result_name + "points_unsqueeze_x2"], + [result_name + "points_unsqueeze_y2"]] + + for input_name, output_name in zip(outputs_output_point1, + ouputs_points_unsqueeze): + tmp_node = mapper_helper.unsqueeze_helper( + graph, input_name, [len(output_shape_step1)], output_name) + outputs_points_unsqueeze_list = [ + output[0] for output in ouputs_points_unsqueeze + ] + node_point_final = graph.make_node( + 'Concat', + inputs=outputs_points_unsqueeze_list, + outputs=node.output('OutputBox'), + axis=len(output_shape_step1)) diff --git a/paddle2onnx/legacy/op_mapper/detection/density_prior_box.py b/paddle2onnx/legacy/op_mapper/detection/density_prior_box.py new file mode 100644 index 000000000..f9ecc61b1 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/detection/density_prior_box.py @@ -0,0 +1,125 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import math +import numpy as np +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.utils import require_fixed_shape + + +@op_mapper('density_prior_box') +class DensityPriorBox(): + """ + In this function, use the attribute to get the prior box, because we do not use + the image data and feature map, wo could the python code to create the varaible, + and to create the onnx tensor as output. + """ + support_opset_verison_range = (1, 12) + + @classmethod + def opset_9(cls, graph, node, **kw): + clip = bool(node.attr('clip')) + densities = node.attr('densities') + fixed_ratios = node.attr('fixed_ratios') + fixed_sizes = node.attr('fixed_sizes') + flatten_to_2d = bool(node.attr('flatten_to_2d')) + offset = node.attr('offset') + step_h = node.attr('step_h') + step_w = node.attr('step_w') + variances = node.attr('variances') + + input_shape = node.input_shape('Input', 0) + image_shape = node.input_shape('Image', 0) + + img_width = image_shape[3] + img_height = image_shape[2] + feature_width = input_shape[3] + feature_height = input_shape[2] + + assert img_width > 0 and img_height > 0, require_fixed_shape( + cls.__name__) + + if step_w == 0.0 or step_h == 0.0: + step_w = float(img_width / feature_width) + step_h = float(img_height / feature_height) + + num_priors = 0 + if len(fixed_sizes) > 0 and len(densities) > 0: + for density in densities: + if len(fixed_ratios) > 0: + num_priors += len(fixed_ratios) * (pow(density, 2)) + + out_dim = (feature_height, feature_width, num_priors, 4) + out_boxes = np.zeros(out_dim).astype('float32') + out_var = np.zeros(out_dim).astype('float32') + step_average = int((step_w + step_h) * 0.5) + + for h in range(feature_height): + for w in range(feature_width): + c_x = (w + offset) * step_w + c_y = (h + offset) * step_h + idx = 0 + + for density, fixed_size in zip(densities, fixed_sizes): + if (len(fixed_ratios) > 0): + for ar in fixed_ratios: + shift = int(step_average / density) + box_width_ratio = fixed_size * math.sqrt(ar) + box_height_ratio = fixed_size / math.sqrt(ar) + for di in range(density): + for dj in range(density): + c_x_temp = c_x - step_average / 2.0 + shift / 2.0 + dj * shift + c_y_temp = c_y - step_average / 2.0 + shift / 2.0 + di * shift + out_boxes[h, w, idx, :] = [ + max((c_x_temp - box_width_ratio / 2.0) / + img_width, 0), + max((c_y_temp - box_height_ratio / 2.0) + / img_height, 0), + min((c_x_temp + box_width_ratio / 2.0) / + img_width, 1), + min((c_y_temp + box_height_ratio / 2.0) + / img_height, 1) + ] + idx += 1 + + if clip: + out_boxes = np.clip(out_boxes, 0.0, 1.0) + # set the variance. + out_var = np.tile(variances, + (feature_height, feature_width, num_priors, 1)) + + if flatten_to_2d: + out_boxes = out_boxes.reshape((-1, 4)) + out_var = out_var.reshape((-1, 4)) + + #make node that + + node_boxes = graph.make_node( + 'Constant', + inputs=[], + outputs=node.output('Boxes'), + dtype=dtypes.ONNX.FLOAT, + dims=out_boxes.shape, + value=out_boxes.flatten().tolist()) + + node_vars = graph.make_node( + 'Constant', + inputs=[], + outputs=node.output('Variances'), + dtype=dtypes.ONNX.FLOAT, + dims=out_var.shape, + value=out_var.flatten().tolist()) diff --git a/paddle2onnx/legacy/op_mapper/detection/multiclass_nms.py b/paddle2onnx/legacy/op_mapper/detection/multiclass_nms.py new file mode 100755 index 000000000..9e57ff8fc --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/detection/multiclass_nms.py @@ -0,0 +1,343 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import numpy as np +from paddle2onnx.utils import logging +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper + + +@op_mapper( + ['multiclass_nms', 'multiclass_nms2', 'matrix_nms', 'multiclass_nms3']) +class MultiClassNMS(): + support_opset_verision_range = (10, 16) + """ + Convert the paddle multiclass_nms to onnx op. + This op is get the select boxes from origin boxes. + """ + + @classmethod + def opset_10(cls, graph, node, **kw): + if node.input_shape("BBoxes", 0)[0] != 1: + logging.warning( + "Due to the operator:{}, the converted ONNX model will only supports input[batch_size] == 1.". + format(node.type)) + scores = node.input('Scores', 0) + bboxes = node.input('BBoxes', 0) + num_class = node.input_shape('Scores', 0)[1] + if len(node.input_shape('Scores', 0)) == 2: + # inputs: scores & bboxes is lod tensor + scores = graph.make_node('Transpose', inputs=[scores], perm=[1, 0]) + scores = mapper_helper.unsqueeze_helper(graph, scores, [0]) + if graph.opset_version < 13: + scores_list = graph.make_node( + 'Split', + inputs=scores, + outputs=num_class, + axis=1, + split=[1] * num_class) + else: + split_const = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[1] * num_class) + scores_list = graph.make_node( + "Split", + inputs=[scores] + [split_const], + outputs=num_class, + axis=1) + + bboxes = graph.make_node('Transpose', inputs=bboxes, perm=[1, 0, 2]) + if graph.opset_version < 13: + bboxes_list = graph.make_node( + 'Split', + inputs=bboxes, + outputs=num_class, + axis=0, + split=[1] * num_class) + else: + split_const = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[1] * num_class) + bboxes_list = graph.make_node( + "Split", + inputs=[bboxes] + [split_const], + outputs=num_class, + axis=0) + bbox_ids = [] + if not isinstance(scores_list, list): + scores_list = [scores_list] + if not isinstance(bboxes_list, list): + bboxes_list = [bboxes_list] + for i in range(num_class): + bbox_id = cls.nms(graph, + node, + scores_list[i], + bboxes_list[i], + class_id=i) + bbox_ids.append(bbox_id) + bbox_ids = graph.make_node('Concat', inputs=bbox_ids, axis=0) + const_shape = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[1, -1, 4]) + bboxes = graph.make_node('Reshape', inputs=[bboxes, const_shape]) + cls.keep_top_k( + graph, node, bbox_ids, scores, bboxes, is_lod_input=True) + else: + bbox_ids = cls.nms(graph, node, scores, bboxes) + cls.keep_top_k(graph, node, bbox_ids, scores, bboxes) + + @classmethod + def nms(cls, graph, node, scores, bboxes, class_id=None): + normalized = node.attr('normalized') + nms_top_k = node.attr('nms_top_k') + if node.type == 'matrix_nms': + iou_threshold = 0.5 + logging.warning( + "Operator:{} is not supported completely, so we use traditional" + " NMS (nms_theshold={}) to instead it, which introduce some difference.". + format(node.type, str(iou_threshold))) + else: + iou_threshold = node.attr('nms_threshold') + if nms_top_k == -1: + nms_top_k = 100000 + + #convert the paddle attribute to onnx tensor + score_threshold = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.FLOAT, + value=[float(node.attr('score_threshold'))]) + iou_threshold = graph.make_node( + 'Constant', dtype=dtypes.ONNX.FLOAT, value=[float(iou_threshold)]) + nms_top_k = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[np.int64(nms_top_k)]) + + # the paddle data format is x1,y1,x2,y2 + kwargs = {'center_point_box': 0} + + if normalized: + select_bbox_indices = graph.make_node( + 'NonMaxSuppression', + inputs=[ + bboxes, scores, nms_top_k, iou_threshold, score_threshold + ]) + elif not normalized: + value_one = graph.make_node( + 'Constant', dims=[1], dtype=dtypes.ONNX.FLOAT, value=1.0) + if graph.opset_version < 13: + new_bboxes = graph.make_node( + 'Split', + inputs=[bboxes], + outputs=4, + axis=2, + split=[1, 1, 1, 1]) + else: + split_const = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[1, 1, 1, 1]) + new_bboxes = graph.make_node( + "Split", inputs=[bboxes] + [split_const], outputs=4, axis=2) + new_xmax = graph.make_node('Add', inputs=[new_bboxes[2], value_one]) + new_ymax = graph.make_node('Add', inputs=[new_bboxes[3], value_one]) + new_bboxes = graph.make_node( + 'Concat', + inputs=[new_bboxes[0], new_bboxes[1], new_xmax, new_ymax], + axis=2) + select_bbox_indices = graph.make_node( + 'NonMaxSuppression', + inputs=[ + new_bboxes, scores, nms_top_k, iou_threshold, + score_threshold + ]) + + if class_id is not None and class_id != 0: + class_id = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[0, class_id, 0]) + class_id = mapper_helper.unsqueeze_helper(graph, class_id, [0]) + select_bbox_indices = graph.make_node( + 'Add', inputs=[select_bbox_indices, class_id]) + + return select_bbox_indices + + @classmethod + def keep_top_k(cls, + graph, + node, + select_bbox_indices, + scores, + bboxes, + is_lod_input=False): + # step 1 nodes select the nms class + # create some const value to use + background = node.attr('background_label') + const_values = [] + for value in [0, 1, 2, -1]: + const_value = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[value]) + const_values.append(const_value) + + # In this code block, we will deocde the raw score data, reshape N * C * M to 1 * N*C*M + # and the same time, decode the select indices to 1 * D, gather the select_indices + class_id = graph.make_node( + 'Gather', inputs=[select_bbox_indices, const_values[1]], axis=1) + + squeezed_class_id = mapper_helper.squeeze_helper(graph, class_id, [1]) + + bbox_id = graph.make_node( + 'Gather', inputs=[select_bbox_indices, const_values[2]], axis=1) + + if background == 0: + nonzero = graph.make_node('NonZero', inputs=[squeezed_class_id]) + else: + filter_cls_id = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT32, value=[background]) + cast = graph.make_node( + 'Cast', inputs=[squeezed_class_id], to=dtypes.ONNX.INT32) + filter_index = graph.make_node('Sub', inputs=[cast, filter_cls_id]) + nonzero = graph.make_node('NonZero', inputs=[filter_index]) + + class_id = graph.make_node('Gather', inputs=[class_id, nonzero], axis=0) + class_id = graph.make_node( + 'Cast', inputs=[class_id], to=dtypes.ONNX.INT64) + + bbox_id = graph.make_node('Gather', inputs=[bbox_id, nonzero], axis=0) + bbox_id = graph.make_node( + 'Cast', inputs=[bbox_id], to=dtypes.ONNX.INT64) + + # get the shape of scores + shape_scores = graph.make_node('Shape', inputs=scores) + + # gather the index: 2 shape of scores + class_num = graph.make_node( + 'Gather', inputs=[shape_scores, const_values[2]], axis=0) + + # reshape scores N * C * M to (N*C*M) * 1 + scores = graph.make_node('Reshape', inputs=[scores, const_values[-1]]) + + # mul class * M + mul_classnum_boxnum = graph.make_node( + 'Mul', inputs=[class_id, class_num]) + + # add class * M * index + add_class_indices = graph.make_node( + 'Add', inputs=[mul_classnum_boxnum, bbox_id]) + + # Squeeze the indices to 1 dim + score_indices = mapper_helper.squeeze_helper(graph, add_class_indices, + [0, 2]) + + # gather the data from flatten scores + scores = graph.make_node( + 'Gather', inputs=[scores, score_indices], axis=0) + + keep_top_k = node.attr('keep_top_k') + keep_top_k = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + dims=[1, 1], + value=[node.attr('keep_top_k')]) + + # get min(topK, num_select) + shape_select_num = graph.make_node('Shape', inputs=[scores]) + const_zero = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[0]) + gather_select_num = graph.make_node( + 'Gather', inputs=[shape_select_num, const_zero], axis=0) + unsqueeze_select_num = mapper_helper.unsqueeze_helper( + graph, gather_select_num, [0]) + + concat_topK_select_num = graph.make_node( + 'Concat', inputs=[unsqueeze_select_num, keep_top_k], axis=0) + cast_concat_topK_select_num = graph.make_node( + 'Cast', inputs=[concat_topK_select_num], to=6) + keep_top_k = graph.make_node( + 'ReduceMin', inputs=[cast_concat_topK_select_num], keepdims=0) + # unsqueeze the indices to 1D tensor + keep_top_k = mapper_helper.unsqueeze_helper(graph, keep_top_k, [0]) + + # cast the indices to INT64 + keep_top_k = graph.make_node('Cast', inputs=[keep_top_k], to=7) + + # select topk scores indices + keep_topk_scores, keep_topk_indices = graph.make_node( + 'TopK', inputs=[scores, keep_top_k], outputs=2) + + # gather topk label, scores, boxes + gather_topk_scores = graph.make_node( + 'Gather', inputs=[scores, keep_topk_indices], axis=0) + + gather_topk_class = graph.make_node( + 'Gather', inputs=[class_id, keep_topk_indices], axis=1) + + # gather the boxes need to gather the boxes id, then get boxes + if is_lod_input: + gather_topk_boxes_id = graph.make_node( + 'Gather', [add_class_indices, keep_topk_indices], axis=1) + else: + gather_topk_boxes_id = graph.make_node( + 'Gather', [bbox_id, keep_topk_indices], axis=1) + + # squeeze the gather_topk_boxes_id to 1 dim + squeeze_topk_boxes_id = mapper_helper.squeeze_helper( + graph, gather_topk_boxes_id, [0, 2]) + + gather_select_boxes = graph.make_node( + 'Gather', inputs=[bboxes, squeeze_topk_boxes_id], axis=1) + + # concat the final result + # before concat need to cast the class to float + cast_topk_class = graph.make_node( + 'Cast', inputs=[gather_topk_class], to=1) + + unsqueeze_topk_scores = mapper_helper.unsqueeze_helper( + graph, gather_topk_scores, [0, 2]) + + inputs_concat_final_results = [ + cast_topk_class, unsqueeze_topk_scores, gather_select_boxes + ] + + sort_by_socre_results = graph.make_node( + 'Concat', inputs=inputs_concat_final_results, axis=2) + + # sort by class_id + squeeze_cast_topk_class = mapper_helper.squeeze_helper( + graph, cast_topk_class, [0, 2]) + + neg_squeeze_cast_topk_class = graph.make_node( + 'Neg', inputs=[squeeze_cast_topk_class]) + + data, indices = graph.make_node( + 'TopK', inputs=[neg_squeeze_cast_topk_class, keep_top_k], outputs=2) + + concat_final_results = graph.make_node( + 'Gather', inputs=[sort_by_socre_results, indices], axis=1) + + concat_final_results = mapper_helper.squeeze_helper( + graph, concat_final_results, [0], node.output('Out')) + + if node.type in ['multiclass_nms2', 'matrix_nms', 'multiclass_nms3']: + final_indices = mapper_helper.squeeze_helper(graph, bbox_id, [0], + node.output('Index')) + if node.type in ['matrix_nms', 'multiclass_nms3']: + select_bboxes_shape = graph.make_node('Shape', inputs=[indices]) + select_bboxes_shape1 = graph.make_node( + 'Cast', inputs=[select_bboxes_shape], to=dtypes.ONNX.INT32) + indices = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[0]) + rois_num = None + if 'NmsRoisNum' in node.outputs: + rois_num = node.output('NmsRoisNum') + elif 'RoisNum' in node.outputs: + rois_num = node.output('RoisNum') + if rois_num is not None: + graph.make_node( + "Gather", + inputs=[select_bboxes_shape1, indices], + outputs=rois_num) diff --git a/paddle2onnx/legacy/op_mapper/detection/prior_box.py b/paddle2onnx/legacy/op_mapper/detection/prior_box.py new file mode 100644 index 000000000..82cb40452 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/detection/prior_box.py @@ -0,0 +1,176 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import math +import numpy as np +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.utils import require_fixed_shape + + +def expand_aspect_rations(input_aspect_ratior, flip): + expsilon = 1e-6 + output_ratios = [1.0] + for input_ratio in input_aspect_ratior: + already_exis = False + for output_ratio in output_ratios: + if abs(input_ratio - output_ratio) < expsilon: + already_exis = True + break + if already_exis == False: + output_ratios.append(input_ratio) + if flip: + output_ratios.append(1.0 / input_ratio) + return output_ratios + + +@op_mapper('prior_box') +class PriorBox(): + """ + In this function, use the attribute to get the prior box, because we do not use + the image data and feature map, wo could the python code to create the varaible, + and to create the onnx tensor as output. + """ + support_opset_verison_range = (1, 12) + + @classmethod + def opset_9(cls, graph, node, **kw): + flip = bool(node.attr('flip')) + clip = bool(node.attr('clip')) + min_max_aspect_ratios_order = bool( + node.attr('min_max_aspect_ratios_order')) + min_sizes = [float(size) for size in node.attr('min_sizes')] + max_sizes = [float(size) for size in node.attr('max_sizes')] + if isinstance(node.attr('aspect_ratios'), list): + aspect_ratios = [ + float(ratio) for ratio in node.attr('aspect_ratios') + ] + else: + aspect_ratios = [float(node.attr('aspect_ratios'))] + variances = [float(var) for var in node.attr('variances')] + # set min_max_aspect_ratios_order = false + output_ratios = expand_aspect_rations(aspect_ratios, flip) + + step_w = float(node.attr('step_w')) + step_h = float(node.attr('step_h')) + offset = float(node.attr('offset')) + + input_shape = node.input_shape('Input', 0) + image_shape = node.input_shape('Image', 0) + + img_width = image_shape[3] + img_height = image_shape[2] + feature_width = input_shape[3] + feature_height = input_shape[2] + assert img_width > 0 and img_height > 0, require_fixed_shape( + cls.__name__) + + step_width = 1.0 + step_height = 1.0 + + if step_w == 0.0 or step_h == 0.0: + step_w = float(img_width / feature_width) + step_h = float(img_height / feature_height) + + num_priors = len(output_ratios) * len(min_sizes) + if len(max_sizes) > 0: + num_priors += len(max_sizes) + out_dim = (feature_height, feature_width, num_priors, 4) + out_boxes = np.zeros(out_dim).astype('float32') + out_var = np.zeros(out_dim).astype('float32') + + idx = 0 + for h in range(feature_height): + for w in range(feature_width): + c_x = (w + offset) * step_w + c_y = (h + offset) * step_h + idx = 0 + for s in range(len(min_sizes)): + min_size = min_sizes[s] + if not min_max_aspect_ratios_order: + # rest of priors + for r in range(len(output_ratios)): + ar = output_ratios[r] + c_w = min_size * math.sqrt(ar) / 2 + c_h = (min_size / math.sqrt(ar)) / 2 + out_boxes[h, w, idx, :] = [(c_x - c_w) / img_width, + (c_y - c_h) / img_height, + (c_x + c_w) / img_width, + (c_y + c_h) / img_height] + idx += 1 + + if len(max_sizes) > 0: + max_size = max_sizes[s] + # second prior: aspect_ratio = 1, + c_w = c_h = math.sqrt(min_size * max_size) / 2 + out_boxes[h, w, idx, :] = [(c_x - c_w) / img_width, + (c_y - c_h) / img_height, + (c_x + c_w) / img_width, + (c_y + c_h) / img_height] + idx += 1 + else: + c_w = c_h = min_size / 2. + out_boxes[h, w, idx, :] = [ + (c_x - c_w) / img_width, (c_y - c_h) / img_height, + (c_x + c_w) / img_width, (c_y + c_h) / img_height + ] + idx += 1 + if len(max_sizes) > 0: + max_size = max_sizes[s] + # second prior: aspect_ratio = 1, + c_w = c_h = math.sqrt(min_size * max_size) / 2 + out_boxes[h, w, idx, :] = [(c_x - c_w) / img_width, + (c_y - c_h) / img_height, + (c_x + c_w) / img_width, + (c_y + c_h) / img_height] + idx += 1 + + # rest of priors + for r in range(len(output_ratios)): + ar = output_ratios[r] + if abs(ar - 1.) < 1e-6: + continue + c_w = min_size * math.sqrt(ar) / 2 + c_h = (min_size / math.sqrt(ar)) / 2 + out_boxes[h, w, idx, :] = [(c_x - c_w) / img_width, + (c_y - c_h) / img_height, + (c_x + c_w) / img_width, + (c_y + c_h) / img_height] + idx += 1 + + if clip: + out_boxes = np.clip(out_boxes, 0.0, 1.0) + # set the variance. + out_var = np.tile(variances, + (feature_height, feature_width, num_priors, 1)) + + #make node that + + node_boxes = graph.make_node( + 'Constant', + inputs=[], + outputs=node.output('Boxes'), + dtype=dtypes.ONNX.FLOAT, + dims=out_boxes.shape, + value=out_boxes.flatten().tolist()) + + node_vars = graph.make_node( + 'Constant', + inputs=[], + outputs=node.output('Variances'), + dtype=dtypes.ONNX.FLOAT, + dims=out_var.shape, + value=out_var.flatten().tolist()) diff --git a/paddle2onnx/legacy/op_mapper/detection/yolo_box.py b/paddle2onnx/legacy/op_mapper/detection/yolo_box.py new file mode 100755 index 000000000..023dabc81 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/detection/yolo_box.py @@ -0,0 +1,506 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import sys +import numpy as np +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper +from onnx import TensorProto +import paddle + +MAX_FLOAT32 = 3.402823466E+38 + + +@op_mapper('yolo_box') +class YOLOBox(): + support_opset_verison_range = (9, 12) + + node_pred_box_x1_decode = None + node_pred_box_y1_decode = None + node_pred_box_x2_decode = None + node_pred_box_y2_decode = None + node_pred_box_x2_sub_w = None + node_pred_box_y2_sub_h = None + + @classmethod + def opset_9(cls, graph, node, **kw): + model_name = node.output('Boxes', 0) + input_shape = node.input_shape('X', 0) + mapper_helper.is_static_shape(input_shape) + image_size = node.input('ImgSize') + input_height = input_shape[2] + input_width = input_shape[3] + class_num = node.attr('class_num') + anchors = node.attr('anchors') + num_anchors = int(len(anchors)) // 2 + scale_x_y = node.attr('scale_x_y') + downsample_ratio = node.attr('downsample_ratio') + input_size = input_height * downsample_ratio + conf_thresh = node.attr('conf_thresh') + conf_thresh_mat = [conf_thresh + ] * num_anchors * input_height * input_width + + cls.score_shape = [ + 1, input_height * input_width * int(num_anchors), class_num + ] + + im_outputs = [] + + x_shape = [1, num_anchors, 5 + class_num, input_height, input_width] + node_x_shape = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.INT64, + 'value': x_shape}) + + node_x_reshape = graph.make_node( + 'Reshape', inputs=[node.input('X')[0], node_x_shape]) + node_x_transpose = graph.make_node( + 'Transpose', inputs=[node_x_reshape], perm=[0, 1, 3, 4, 2]) + + range_x = [] + range_y = [] + for i in range(0, input_width): + range_x.append(i) + for j in range(0, input_height): + range_y.append(j) + + node_range_x = graph.make_node( + 'Constant', + attrs={ + 'dtype': dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + 'value': range_x, + }) + + node_range_y = graph.make_node( + 'Constant', + inputs=[], + attrs={ + 'dtype': dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + 'value': range_y, + }) + + range_x_new_shape = [1, input_width] + range_y_new_shape = [input_height, 1] + + node_range_x_new_shape = graph.make_node( + 'Constant', + inputs=[], + dtype=dtypes.ONNX.INT64, + value=range_x_new_shape) + node_range_y_new_shape = graph.make_node( + 'Constant', + inputs=[], + dtype=dtypes.ONNX.INT64, + value=range_y_new_shape) + + node_range_x_reshape = graph.make_node( + 'Reshape', inputs=[node_range_x, node_range_x_new_shape]) + node_range_y_reshape = graph.make_node( + 'Reshape', inputs=[node_range_y, node_range_y_new_shape]) + + node_grid_x = graph.make_node( + "Tile", inputs=[node_range_x_reshape, node_range_y_new_shape]) + + node_grid_y = graph.make_node( + "Tile", inputs=[node_range_y_reshape, node_range_x_new_shape]) + + node_box_x = model_name + "@box_x" + node_box_y = model_name + "@box_y" + node_box_w = model_name + "@box_w" + node_box_h = model_name + "@box_h" + node_conf = model_name + "@conf" + node_prob = model_name + "@prob" + output = [ + node_box_x, node_box_y, node_box_w, node_box_h, node_conf, node_prob + ] + node_split_input = mapper_helper.split_helper( + graph, [node_x_transpose], + output, + -1, [1, 1, 1, 1, 1, class_num], + dtype=node.input_dtype('X', 0)) + + node_box_x_sigmoid = graph.make_node("Sigmoid", inputs=[node_box_x]) + + node_box_y_sigmoid = graph.make_node("Sigmoid", inputs=[node_box_y]) + + if scale_x_y is not None: + bias_x_y = -0.5 * (scale_x_y - 1.0) + scale_x_y_node = graph.make_node( + 'Constant', + attrs={ + 'dtype': + dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + 'value': scale_x_y + }) + + bias_x_y_node = graph.make_node( + 'Constant', + attrs={ + 'dtype': + dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + 'value': bias_x_y + }) + node_box_x_sigmoid = graph.make_node( + "Mul", inputs=[node_box_x_sigmoid, scale_x_y_node]) + node_box_x_sigmoid = graph.make_node( + "Add", inputs=[node_box_x_sigmoid, bias_x_y_node]) + node_box_y_sigmoid = graph.make_node( + "Mul", inputs=[node_box_y_sigmoid, scale_x_y_node]) + node_box_y_sigmoid = graph.make_node( + "Add", inputs=[node_box_y_sigmoid, bias_x_y_node]) + node_box_x_squeeze = mapper_helper.squeeze_helper( + graph, node_box_x_sigmoid, [4]) + + node_box_y_squeeze = mapper_helper.squeeze_helper( + graph, node_box_y_sigmoid, [4]) + + node_box_x_add_grid = graph.make_node( + "Add", inputs=[node_grid_x, node_box_x_squeeze]) + + node_box_y_add_grid = graph.make_node( + "Add", inputs=[node_grid_y, node_box_y_squeeze]) + + node_input_h = graph.make_node( + 'Constant', + inputs=[], + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + value=[input_height]) + + node_input_w = graph.make_node( + 'Constant', + inputs=[], + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + value=[input_width]) + + node_box_x_encode = graph.make_node( + 'Div', inputs=[node_box_x_add_grid, node_input_w]) + + node_box_y_encode = graph.make_node( + 'Div', inputs=[node_box_y_add_grid, node_input_h]) + + node_anchor_tensor = graph.make_node( + "Constant", + inputs=[], + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + value=anchors) + + anchor_shape = [int(num_anchors), 2] + node_anchor_shape = graph.make_node( + "Constant", inputs=[], dtype=dtypes.ONNX.INT64, value=anchor_shape) + + node_anchor_tensor_reshape = graph.make_node( + "Reshape", inputs=[node_anchor_tensor, node_anchor_shape]) + + node_input_size = graph.make_node( + "Constant", + inputs=[], + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + value=[input_size]) + + node_anchors_div_input_size = graph.make_node( + "Div", inputs=[node_anchor_tensor_reshape, node_input_size]) + + node_anchor_w = model_name + "@anchor_w" + node_anchor_h = model_name + "@anchor_h" + + node_anchor_split = mapper_helper.split_helper( + graph, + inputs=node_anchors_div_input_size, + axis=1, + split=[1, 1], + outputs=[node_anchor_w, node_anchor_h], + dtype=node.input_dtype('X', 0)) + + new_anchor_shape = [1, int(num_anchors), 1, 1] + node_new_anchor_shape = graph.make_node( + 'Constant', + inputs=[], + dtype=dtypes.ONNX.INT64, + value=new_anchor_shape) + + node_anchor_w_reshape = graph.make_node( + 'Reshape', inputs=[node_anchor_w, node_new_anchor_shape]) + + node_anchor_h_reshape = graph.make_node( + 'Reshape', inputs=[node_anchor_h, node_new_anchor_shape]) + + node_box_w_squeeze = mapper_helper.squeeze_helper(graph, node_box_w, + [4]) + node_box_h_squeeze = mapper_helper.squeeze_helper(graph, node_box_h, + [4]) + + node_box_w_exp = graph.make_node("Exp", inputs=[node_box_w_squeeze]) + node_box_h_exp = graph.make_node("Exp", inputs=[node_box_h_squeeze]) + + node_box_w_encode = graph.make_node( + 'Mul', inputs=[node_box_w_exp, node_anchor_w_reshape]) + + node_box_h_encode = graph.make_node( + 'Mul', inputs=[node_box_h_exp, node_anchor_h_reshape]) + + node_conf_sigmoid = graph.make_node('Sigmoid', inputs=[node_conf]) + + node_conf_thresh = graph.make_node( + 'Constant', + inputs=[], + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + value=conf_thresh_mat) + + conf_shape = [1, int(num_anchors), input_height, input_width, 1] + node_conf_shape = graph.make_node( + 'Constant', inputs=[], dtype=dtypes.ONNX.INT64, value=conf_shape) + + node_conf_thresh_reshape = graph.make_node( + 'Reshape', inputs=[node_conf_thresh, node_conf_shape]) + + node_conf_sub = graph.make_node( + 'Sub', inputs=[node_conf_sigmoid, node_conf_thresh_reshape]) + + node_conf_clip = mapper_helper.clip_helper(graph, node, node_conf_sub, + float(MAX_FLOAT32), 0.0) + + node_zeros = graph.make_node( + 'Constant', + inputs=[], + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + value=[0]) + + node_conf_clip_bool = graph.make_node( + 'Greater', inputs=[node_conf_clip, node_zeros]) + + node_conf_clip_cast = graph.make_node( + 'Cast', + inputs=[node_conf_clip_bool], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)]) + + node_conf_set_zero = graph.make_node( + 'Mul', inputs=[node_conf_sigmoid, node_conf_clip_cast]) + + node_prob_sigmoid = graph.make_node('Sigmoid', inputs=[node_prob]) + + new_shape = [1, int(num_anchors), input_height, input_width, 1] + node_new_shape = graph.make_node( + 'Constant', + inputs=[], + dtype=dtypes.ONNX.INT64, + dims=[len(new_shape)], + value=new_shape) + + node_conf_new_shape = graph.make_node( + 'Reshape', inputs=[node_conf_set_zero, node_new_shape]) + + cls.node_score = graph.make_node( + 'Mul', inputs=[node_prob_sigmoid, node_conf_new_shape]) + + node_conf_bool = graph.make_node( + 'Greater', inputs=[node_conf_new_shape, node_zeros]) + + node_box_x_new_shape = graph.make_node( + 'Reshape', inputs=[node_box_x_encode, node_new_shape]) + + node_box_y_new_shape = graph.make_node( + 'Reshape', inputs=[node_box_y_encode, node_new_shape]) + + node_box_w_new_shape = graph.make_node( + 'Reshape', inputs=[node_box_w_encode, node_new_shape]) + + node_box_h_new_shape = graph.make_node( + 'Reshape', inputs=[node_box_h_encode, node_new_shape]) + + node_pred_box = graph.make_node( + 'Concat', + inputs=[node_box_x_new_shape, node_box_y_new_shape, \ + node_box_w_new_shape, node_box_h_new_shape], + axis=4) + + node_conf_cast = graph.make_node( + 'Cast', + inputs=[node_conf_bool], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)]) + + node_pred_box_mul_conf = graph.make_node( + 'Mul', inputs=[node_pred_box, node_conf_cast]) + + box_shape = [1, int(num_anchors) * input_height * input_width, 4] + node_box_shape = graph.make_node( + 'Constant', inputs=[], dtype=dtypes.ONNX.INT64, value=box_shape) + + node_pred_box_new_shape = graph.make_node( + 'Reshape', inputs=[node_pred_box_mul_conf, node_box_shape]) + + node_pred_box_x = model_name + "@_pred_box_x" + node_pred_box_y = model_name + "@_pred_box_y" + node_pred_box_w = model_name + "@_pred_box_w" + node_pred_box_h = model_name + "@_pred_box_h" + if node.input_dtype('X', 0) == paddle.float64: + node_pred_box_new_shape = graph.make_node( + 'Cast', inputs=[node_pred_box_new_shape], to=TensorProto.FLOAT) + node_pred_box_split = mapper_helper.split_helper( + graph, + inputs=node_pred_box_new_shape, + axis=2, + split=[1, 1, 1, 1], + outputs=[ + node_pred_box_x, node_pred_box_y, node_pred_box_w, + node_pred_box_h + ], + dtype=node.input_dtype('X', 0)) + + if node.input_dtype('X', 0) == paddle.float64: + node_pred_box_x = graph.make_node( + 'Cast', + inputs=[node_pred_box_x], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)]) + node_pred_box_y = graph.make_node( + 'Cast', + inputs=[node_pred_box_y], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)]) + node_pred_box_w = graph.make_node( + 'Cast', + inputs=[node_pred_box_w], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)]) + node_pred_box_h = graph.make_node( + 'Cast', + inputs=[node_pred_box_h], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)]) + node_number_two = graph.make_node( + "Constant", + inputs=[], + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + value=[2]) + + node_half_w = graph.make_node( + "Div", inputs=[node_pred_box_w, node_number_two]) + + node_half_h = graph.make_node( + "Div", inputs=[node_pred_box_h, node_number_two]) + + node_pred_box_x1 = graph.make_node( + 'Sub', inputs=[node_pred_box_x, node_half_w]) + + node_pred_box_y1 = graph.make_node( + 'Sub', inputs=[node_pred_box_y, node_half_h]) + + node_pred_box_x2 = graph.make_node( + 'Add', inputs=[node_pred_box_x, node_half_w]) + + node_pred_box_y2 = graph.make_node( + 'Add', inputs=[node_pred_box_y, node_half_h]) + + node_sqeeze_image_size = mapper_helper.squeeze_helper( + graph, image_size[0], [0]) + + node_img_height = model_name + "@img_height" + node_img_width = model_name + "@img_width" + node_image_size_split = mapper_helper.split_helper( + graph, [node_sqeeze_image_size], [node_img_height, node_img_width], + -1, [1, 1], + dtype=node.input_dtype('X', 0)) + + node_img_width_cast = graph.make_node( + 'Cast', + inputs=[node_img_width], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)]) + + node_img_height_cast = graph.make_node( + 'Cast', + inputs=[node_img_height], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)]) + + cls.node_pred_box_x1_decode = graph.make_node( + 'Mul', + inputs=[node_pred_box_x1, node_img_width_cast]) #boxes[box_idx] + + cls.node_pred_box_y1_decode = graph.make_node( + 'Mul', inputs=[node_pred_box_y1, + node_img_height_cast]) #boxes[box_idx + 1] + + cls.node_pred_box_x2_decode = graph.make_node( + 'Mul', + inputs=[node_pred_box_x2, node_img_width_cast]) #boxes[box_idx + 2] + + cls.node_pred_box_y2_decode = graph.make_node( + 'Mul', inputs=[node_pred_box_y2, + node_img_height_cast]) #boxes[box_idx + 3] + + if node.attr('clip_bbox'): + node_number_one = graph.make_node( + 'Constant', + inputs=[], + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + value=[1]) + + node_new_img_height = graph.make_node( + 'Sub', inputs=[node_img_height_cast, node_number_one]) + + node_new_img_width = graph.make_node( + 'Sub', inputs=[node_img_width_cast, node_number_one]) + + cls.node_pred_box_x2_sub_w = graph.make_node( + 'Sub', + inputs=[cls.node_pred_box_x2_decode, node_new_img_width]) + + cls.node_pred_box_y2_sub_h = graph.make_node( + 'Sub', + inputs=[cls.node_pred_box_y2_decode, node_new_img_height]) + + node_pred_box_x1_clip = mapper_helper.clip_helper( + graph, node, cls.node_pred_box_x1_decode, + float(MAX_FLOAT32), 0.0) + node_pred_box_y1_clip = mapper_helper.clip_helper( + graph, node, cls.node_pred_box_y1_decode, + float(MAX_FLOAT32), 0.0) + node_pred_box_x2_clip = mapper_helper.clip_helper( + graph, node, cls.node_pred_box_x2_sub_w, + float(MAX_FLOAT32), 0.0) + node_pred_box_y2_clip = mapper_helper.clip_helper( + graph, node, cls.node_pred_box_y2_sub_h, + float(MAX_FLOAT32), 0.0) + node_pred_box_x2_res = graph.make_node( + 'Sub', + inputs=[cls.node_pred_box_x2_decode, node_pred_box_x2_clip]) + + node_pred_box_y2_res = graph.make_node( + 'Sub', + inputs=[cls.node_pred_box_y2_decode, node_pred_box_y2_clip]) + + node_pred_box_result = graph.make_node( + 'Concat', + inputs=[ + node_pred_box_x1_clip, node_pred_box_y1_clip, + node_pred_box_x2_res, node_pred_box_y2_res + ], + outputs=node.output('Boxes'), + axis=-1) + else: + node_pred_box_result = graph.make_node( + 'Concat', + inputs=[ + cls.node_pred_box_x1_decode, cls.node_pred_box_y1_decode, + cls.node_pred_box_x2_decode, cls.node_pred_box_y2_decode + ], + outputs=node.output('Boxes'), + axis=-1) + node_score_shape = graph.make_node( + "Constant", + inputs=[], + dtype=dtypes.ONNX.INT64, + value=cls.score_shape) + + node_score_new_shape = graph.make_node( + 'Reshape', + inputs=[cls.node_score, node_score_shape], + outputs=node.output('Scores')) diff --git a/paddle2onnx/legacy/op_mapper/logic.py b/paddle2onnx/legacy/op_mapper/logic.py new file mode 100755 index 000000000..6e2c198fa --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/logic.py @@ -0,0 +1,280 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +import paddle +from paddle2onnx.utils import logging +from paddle2onnx.legacy.op_mapper import mapper_helper + + +@op_mapper('greater_equal') +class GreaterOrEqual(): + support_opset_version_range = (12, 15) + + @classmethod + def opset_12(cls, graph, node, **kw): + onnx_node = graph.make_node( + 'GreaterOrEqual', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + +@op_mapper('equal') +class Equal(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + if node.input_dtype('X', 0) in [paddle.float32, paddle.float64]: + warning_info = "Operator 'Equal' only support input with dtype of int/bool, now the dtype of input is {}, this may cause wrong results, it is more recommend converting this model with opset version >= 11.".format( + node.input_dtype('X', 0)) + logging.warning(warning_info) + x_node = graph.make_node( + 'Cast', inputs=node.input('X'), to=dtypes.ONNX.INT32) + y_node = graph.make_node( + 'Cast', inputs=node.input('Y'), to=dtypes.ONNX.INT32) + onnx_node = graph.make_node( + 'Equal', inputs=[x_node, y_node], outputs=node.output('Out')) + else: + onnx_node = graph.make_node( + 'Equal', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + @classmethod + def opset_11(cls, graph, node, **kw): + onnx_node = graph.make_node( + 'Equal', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + +@op_mapper('not_equal') +class NotEqual(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + equal_val = None + if node.input_dtype('X', 0) in [paddle.float32, paddle.float64]: + warning_info = "Operator 'not_equal' only support input with dtype of int/bool, now the dtype of input is {}, this may cause wrong results, it is more recommend converting this model with opset version >= 11.".format( + node.input_dtype('X', 0)) + logging.warning(warning_info) + x_node = graph.make_node( + 'Cast', inputs=node.input('X'), to=dtypes.ONNX.INT32) + y_node = graph.make_node( + 'Cast', inputs=node.input('Y'), to=dtypes.ONNX.INT32) + equal_val = graph.make_node( + 'Equal', inputs=[x_node, y_node], outputs=node.output('Out')) + else: + equal_val = graph.make_node( + 'Equal', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + k_node = graph.make_node( + 'Cast', inputs=[equal_val], to=dtypes.ONNX.INT64) + const = graph.make_node('Constant', dtype=dtypes.ONNX.INT64, value=1) + sub_ = graph.make_node('Sub', inputs=[const, k_node]) + graph.make_node( + 'Cast', + inputs=[sub_], + outputs=node.output('Out'), + to=dtypes.ONNX.BOOL) + + @classmethod + def opset_11(cls, graph, node, **kw): + equal_val = graph.make_node( + 'Equal', inputs=[node.input('X', 0), node.input('Y', 0)]) + k_node = graph.make_node( + 'Cast', inputs=[equal_val], to=dtypes.ONNX.INT64) + const = graph.make_node('Constant', dtype=dtypes.ONNX.INT64, value=1) + sub_ = graph.make_node('Sub', inputs=[const, k_node]) + graph.make_node( + 'Cast', + inputs=[sub_], + outputs=node.output('Out'), + to=dtypes.ONNX.BOOL) + + +@op_mapper('greater_than') +class GreaterThan(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + if node.input_dtype('X', 0) in [paddle.int32, paddle.int64]: + warning_info = "Operator 'greater_than' only support input with dtype of float/double, now the dtype of input is {}, this may cause wrong results, it is more recommend converting this model with opset version >= 11.".format( + node.input_dtype('X', 0)) + logging.warning(warning_info) + x_node = graph.make_node( + 'Cast', inputs=node.input('X'), to=dtypes.ONNX.INT32) + y_node = graph.make_node( + 'Cast', inputs=node.input('Y'), to=dtypes.ONNX.INT32) + graph.make_node( + 'Greater', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + else: + graph.make_node( + 'Greater', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + @classmethod + def opset_11(cls, graph, node, **kw): + onnx_node = graph.make_node( + 'Greater', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + +@op_mapper('logical_and') +class LogicalAnd(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + onnx_node = graph.make_node( + 'And', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + +@op_mapper('logical_not') +class LogicalNot(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Not', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('logical_or') +class LogicalOr(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + graph.make_node( + 'Or', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + +@op_mapper('logical_xor') +class LogicalXOr(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + graph.make_node( + 'Xor', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + +@op_mapper('less_equal') +class LessOrEqual(): + support_opset_version_range = (12, 15) + + @classmethod + def opset_12(cls, graph, node, **kw): + onnx_node = graph.make_node( + 'LessOrEqual', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + +@op_mapper('less_than') +class Less_than(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + if node.input_dtype('X', 0) in [paddle.int32, paddle.int64]: + warning_info = "Operator 'less_than' only support input with dtype of float/double, now the dtype of input is {}, this may cause wrong results, it is more recommend converting this model with opset version >= 11.".format( + node.input_dtype('X', 0)) + logging.warning(warning_info) + x_node = graph.make_node( + 'Cast', inputs=node.input('X'), to=dtypes.ONNX.INT32) + y_node = graph.make_node( + 'Cast', inputs=node.input('Y'), to=dtypes.ONNX.INT32) + graph.make_node( + 'Less', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + else: + graph.make_node( + 'Less', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out')) + + @classmethod + def opset_9(cls, graph, node, **kw): + graph.make_node( + 'Less', + inputs=[node.input('X', 0), node.input('Y', 0)], + outputs=node.output('Out'), ) + + +@op_mapper('isfinite_v2') +class Isfinite(): + support_opset_version_range = (10, 15) + + @classmethod + def opset_10(cls, graph, node, **kw): + is_inf = graph.make_node('IsInf', inputs=node.input('X', 0)) + is_nan = graph.make_node('IsNaN', inputs=node.input('X', 0)) + finite = graph.make_node('Or', inputs=[is_inf, is_nan]) + graph.make_node('Not', inputs=[finite], outputs=node.output('Out')) + + +@op_mapper('isinf_v2') +class IsInf(): + support_opset_version_range = (10, 15) + + @classmethod + def opset_10(cls, graph, node, **kw): + graph.make_node( + 'IsInf', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('isnan_v2') +class IsNaN(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + graph.make_node( + 'IsNaN', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('isnan') +class IsNaN(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + isnan = graph.make_node('IsNaN', inputs=node.input('X')) + cast_node = graph.make_node( + 'Cast', inputs=isnan, attrs={'to': dtypes.ONNX.FLOAT}) + reduce_node = graph.make_node( + 'ReduceMax', inputs=[cast_node], keepdims=False) + mapper_helper.unsqueeze_helper(graph, reduce_node, [0], + node.output('Out')) diff --git a/paddle2onnx/legacy/op_mapper/mapper_helper.py b/paddle2onnx/legacy/op_mapper/mapper_helper.py new file mode 100755 index 000000000..9850be901 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/mapper_helper.py @@ -0,0 +1,432 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import paddle.fluid.core as core +import six +import copy +from paddle2onnx.legacy.constant import dtypes +import paddle +from onnx import TensorProto + + +def is_static_shape(shape): + if len(shape) > 1 and shape[1:].count(-1) > 0: + raise Exception( + "Converting this model to ONNX need with static input shape," \ + " please fix input shape of this model, see doc Q2 in" \ + " https://github.com/PaddlePaddle/paddle2onnx/blob/develop/docs/en/FAQ.md." + ) + + +def shape_helper(graph, input, dim=None): + if dim is None: + shape_node = graph.make_node('Shape', inputs=[input]) + return shape_node + full_shape = graph.make_node('Shape', inputs=[input]) + shape_node = slice_helper(graph, full_shape, [0], [dim], [dim + 1]) + return shape_node + + +def unsqueeze_helper(graph, input, axes, outputs=None): + inputs = [] + if not isinstance(input, list): + input = [input] + inputs.append(input[0]) + if not isinstance(axes, list): + axes = [axes] + if outputs is not None and isinstance(outputs, six.string_types): + outputs = [outputs] + + if graph.opset_version < 13: + unsqueeze_node = graph.make_node( + "Unsqueeze", inputs=inputs, outputs=outputs, axes=axes) + return unsqueeze_node + else: + axes_node = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=axes) + inputs = inputs + [axes_node] + unsqueeze_node = graph.make_node( + "Unsqueeze", inputs=inputs, outputs=outputs) + return unsqueeze_node + + +def split_helper(graph, input, axis=0, split=None, outputs=None): + assert outputs is not None, "outputs can not be None in split_helper." + inputs = [] + if not isinstance(input, list): + input = [input] + inputs.append(input[0]) + if split is not None and not isinstance(split, list): + split = [split] + if split is None: + split_node = graph.make_node( + "Split", inputs=inputs, outputs=outputs, axis=axis) + return split_node + if graph.opset_version < 13: + split_node = graph.make_node( + "Split", inputs=inputs, outputs=outputs, axis=axis, split=split) + return split_node + else: + split = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=split) + inputs = inputs + [split] + split_node = graph.make_node( + "Split", inputs=inputs, axis=axis, outputs=outputs) + return split_node + + +def slice_helper(graph, + input, + axes, + starts, + ends, + outputs=None, + dtype=dtypes.ONNX.INT64): + inputs = [] + if not isinstance(input, list): + input = [input] + inputs.append(input[0]) + if axes is not None and not isinstance(axes, list): + axes = [axes] + if starts is not None and not isinstance(starts, (list, six.string_types)): + starts = [starts] + if ends is not None and not isinstance(ends, (list, six.string_types)): + ends = [ends] + + if graph.opset_version < 10: + attrs = { + 'starts': starts, + 'ends': ends, + } + if axes not in [None, []]: + attrs['axes'] = axes + slice_node = graph.make_node( + "Slice", inputs=inputs, outputs=outputs, attrs=attrs) + return slice_node + else: + if not isinstance(starts, six.string_types): + starts = graph.make_node('Constant', dtype=dtype, value=starts) + if not isinstance(ends, six.string_types): + ends = graph.make_node('Constant', dtype=dtype, value=ends) + inputs = inputs + [starts, ends] + if axes not in [None, []]: + axes_node = graph.make_node('Constant', dtype=dtype, value=axes) + inputs.append(axes_node) + slice_node = graph.make_node("Slice", inputs=inputs, outputs=outputs) + return slice_node + + +def squeeze_helper(graph, input, axes=None, outputs=None): + inputs = [] + if not isinstance(input, list): + input = [input] + inputs.append(input[0]) + if axes is not None and not isinstance(axes, list): + axes = [axes] + if graph.opset_version < 13: + squeeze_node = graph.make_node( + "Squeeze", inputs=inputs, axes=axes, outputs=outputs) + return squeeze_node + else: + if axes is not None: + axes_node = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=axes) + inputs.append(axes_node) + squeeze_node = graph.make_node( + "Squeeze", inputs=inputs, outputs=outputs) + return squeeze_node + + +def unsqueeze_helper(graph, input, axes, outputs=None): + inputs = [] + if isinstance(input, list): + input = input[0] + inputs.append(input) + if not isinstance(axes, list): + axes = [axes] + if graph.opset_version < 13: + unsqueeze_node = graph.make_node( + 'Unsqueeze', inputs=inputs, axes=axes, outputs=outputs) + else: + axes_node = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.INT64, + 'value': axes}) + inputs.append(axes_node) + unsqueeze_node = graph.make_node( + 'Unsqueeze', inputs=inputs, outputs=outputs) + return unsqueeze_node + + +def split_helper(graph, inputs, outputs, axis, split, dtype=paddle.float32): + if not isinstance(inputs, (list, tuple)): + inputs = [inputs] + + if not isinstance(outputs, int) and not isinstance(outputs, (list, tuple)): + outputs = [outputs] + + if dtype == paddle.float64: + cast_inputs = [] + for i in range(len(inputs)): + one = graph.make_node( + 'Cast', inputs=[inputs[i]], to=TensorProto.FLOAT) + cast_inputs.append(one) + if graph.opset_version < 13: + split_node = graph.make_node( + "Split", + inputs=cast_inputs, + outputs=outputs, + axis=axis, + split=split) + else: + split_const = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=split) + split_node = graph.make_node( + "Split", + inputs=cast_inputs + [split_const], + outputs=outputs, + axis=axis) + casted_output = [] + for i in range(len(outputs)): + one = graph.make_node( + 'Cast', + inputs=[split_node[i]], + outputs=[outputs[i]], + to=TensorProto.DOUBLE) + casted_output.append(one) + return casted_output + else: + if graph.opset_version < 13: + split_node = graph.make_node( + "Split", inputs=inputs, outputs=outputs, axis=axis, split=split) + else: + split_const = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=split) + split_node = graph.make_node( + "Split", + inputs=inputs + [split_const], + outputs=outputs, + axis=axis) + return split_node + + +def constant_helper(graph, dtype, value, shape=None, outputs=[]): + constant = graph.make_node( + 'Constant', + inputs=[], + outputs=outputs, + attrs={ + 'dims': shape, + 'dtype': dtypes.DTYPE_PADDLE_ONNX_MAP[dtype], + 'value': value + }) + return constant + + +def clip_helper(graph, node, input, max, min, output=[]): + x_dtype = node.input_dtype('X', 0) + if (isinstance(min, six.string_types) or + isinstance(max, six.string_types)) and graph.opset_version < 11: + raise Exception( + "min or max of Clip is Tensor, please try with higher onnx opset_version." + ) + if graph.opset_version < 11: + if x_dtype != paddle.float32: + input = graph.make_node( + 'Cast', inputs=[input], to=dtypes.ONNX.FLOAT) + clip = graph.make_node('Clip', inputs=input, max=max, min=min) + clip = graph.make_node( + 'Cast', + inputs=[clip], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype], + outputs=output) + else: + clip = graph.make_node( + 'Clip', inputs=input, max=max, min=min, outputs=output) + else: + if x_dtype != paddle.float32: + input = graph.make_node( + 'Cast', inputs=[input], to=dtypes.ONNX.FLOAT) + + if not isinstance(min, six.string_types): + min = graph.make_node( + 'Constant', + attrs={ + 'dtype': dtypes.DTYPE_PADDLE_ONNX_MAP[paddle.float32], + 'value': min + }) + else: + if node.input_dtype('Min', 0) != paddle.float32: + min = graph.make_node( + 'Cast', + inputs=min, + attrs={'to': dtypes.DTYPE_PADDLE_ONNX_MAP[paddle.float32]}) + min = graph.make_node('Squeeze', min) + + if not isinstance(max, six.string_types): + max = graph.make_node( + 'Constant', + attrs={ + 'dtype': dtypes.DTYPE_PADDLE_ONNX_MAP[paddle.float32], + 'value': max + }) + else: + if node.input_dtype('Max', 0) != paddle.float32: + max = graph.make_node( + 'Cast', + inputs=max, + attrs={'to': dtypes.DTYPE_PADDLE_ONNX_MAP[paddle.float32]}) + max = graph.make_node('Squeeze', max) + if x_dtype != paddle.float32: + clip_pre = graph.make_node('Clip', inputs=[input, min, max]) + clip = graph.make_node( + 'Cast', + inputs=[clip_pre], + outputs=output, + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype]) + else: + clip = graph.make_node( + 'Clip', inputs=[input, min, max], outputs=output) + return clip + + +def dtype_alignment(graph, nodes, node_dtypes, to=None): + assert len(nodes) == len( + node_dtypes), "Length of nodes and node_dtypes should be equal." + dtype_order = [ + core.VarDesc.VarType.BOOL, + core.VarDesc.VarType.INT16, + core.VarDesc.VarType.INT32, + core.VarDesc.VarType.INT64, + core.VarDesc.VarType.FP16, + core.VarDesc.VarType.FP32, + core.VarDesc.VarType.FP64, + ] + max_index = -1 + for dtype in node_dtypes: + index = dtype_order.index(dtype) + if index > max_index: + max_index = index + + if max_index < 0: + return nodes + + casted_nodes = list() + cast_dtype = dtype_order[max_index] + cast_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[cast_dtype] + for i, dtype in enumerate(node_dtypes): + index = dtype_order.index(dtype) + if to is not None: + cast_dtype = to + condition = dtypes.DTYPE_PADDLE_ONNX_MAP[index] != cast_dtype + else: + condition = index != max_index + if condition: + cast_node = graph.make_node( + 'Cast', inputs=[nodes[i]], to=cast_dtype) + casted_nodes.append(cast_node) + else: + casted_nodes.append(nodes[i]) + return casted_nodes + + +def cast(graph, input, origin_dtype, target_dtype): + if not isinstance(origin_dtype, six.string_types): + origin_dtype = dtypes.DTYPE_PADDLE_STR_MAP[origin_dtype] + if origin_dtype != target_dtype: + cast_node = graph.make_node( + 'Cast', inputs=input, to=dtypes.DTYPE_ONNX_STR_MAP[target_dtype]) + return cast_node + return input + + +def shape_alignment(graph, nodes, node_shapes): + assert len(nodes) == len( + node_shapes), "Length of nodes and node_shapes should be equal." + max_dim = -1 + for shape in node_shapes: + dim = len(shape) + if dim > max_dim: + max_dim = dim + + if max_dim < 0: + return nodes + + assert max_dim == 1 or max_dim == 0, "max_dim is only supported when max_dim is 1 or 0." + max_dim = 1 if max_dim == 0 else max_dim + unsqueeze_nodes = list() + for i, shape in enumerate(node_shapes): + dim = len(shape) + if dim != max_dim: + unsqueeze_node = nodes[i] + for j in range(max_dim - dim): + unsqueeze_node = unsqueeze_helper(graph, unsqueeze_node, [0]) + unsqueeze_nodes.append(unsqueeze_node) + else: + unsqueeze_nodes.append(nodes[i]) + return unsqueeze_nodes + + +def get_tensor_list_node(graph, node, name, dtype=None): + node_list = node.input(name) + node_dtypes = [node.input_dtype(name, i) for i in range(len(node_list))] + node_list = dtype_alignment(graph, node_list, node_dtypes, dtype) + + node_shapes = [node.input_shape(name, i) for i in range(len(node_list))] + node_list = shape_alignment(graph, node_list, node_shapes) + node = graph.make_node("Concat", inputs=node_list, axis=0) + return node + + +def get_value_from_parameters(graph, input_node): + assert input_node in graph.parameters, "{} is not in graph.parameters".format( + input_node) + data = graph.parameters[input_node].attribute[0].t.int32_data + if data is None or len(data) < 1: + data = graph.parameters[input_node].attribute[0].t.int64_data + value = [val for _, val in enumerate(data)] + return value + + +# return value +# arg1: attr_value +# arg2: attr_value is tensor or not +def get_node_attr_value(graph, + node, + attr_name=None, + attr_tensor_name=None, + attr_tensor_list_name=None, + return_list=False, + dtype=None): + attr_tensor = node.input(attr_tensor_name) + attr_tensor_list = node.input(attr_tensor_list_name) + if attr_tensor is not None and len(attr_tensor) > 0: + value = node.input(attr_tensor_name)[0] + if return_list: + try: + value = get_value_from_parameters(graph, value) + return value, False # value, is_tensor + except Exception: + return value, True + else: + input_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype( + attr_tensor_name, 0)] + if input_dtype != dtype: + value = graph.make_node('Cast', inputs=[value], to=dtype) + return value, True + elif attr_tensor_list is not None and len(attr_tensor_list) > 0: + value = get_tensor_list_node(graph, node, attr_tensor_list_name, dtype) + return value, True + else: + value = node.attr(attr_name) + return value, False diff --git a/paddle2onnx/legacy/op_mapper/math.py b/paddle2onnx/legacy/op_mapper/math.py new file mode 100755 index 000000000..ff94f93ff --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/math.py @@ -0,0 +1,1273 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper +import paddle + + +@op_mapper('matmul') +class MatMul(): + support_opset_version_range = (1, 12) + + @classmethod + def opset_1(cls, graph, node, **kw): + x = node.input('X', idx=0) + y = node.input('Y', idx=0) + if node.attr('transpose_X'): + perm = list(range(len(node.input_shape('X', 0)))) + perm[-1], perm[-2] = perm[-2], perm[-1] + if node.input_dtype('X', 0) == paddle.float64: + x = graph.make_node('Cast', inputs=x, to=dtypes.ONNX.FLOAT) + x = graph.make_node('Transpose', inputs=[x], perm=perm) + if node.attr('transpose_Y'): + perm = list(range(len(node.input_shape('Y', 0)))) + perm[-1], perm[-2] = perm[-2], perm[-1] + if node.input_dtype('Y', 0) == paddle.float64: + y = graph.make_node('Cast', inputs=y, to=dtypes.ONNX.FLOAT) + y = graph.make_node('Transpose', inputs=[y], perm=perm) + if node.attr('alpha') == 1.0: + if node.input_dtype('X', 0) == paddle.float64: + output_node = graph.make_node('MatMul', inputs=[x, y]) + graph.make_node( + 'Cast', + inputs=output_node, + to=dtypes.ONNX.DOUBLE, + outputs=node.output('Out')) + else: + graph.make_node( + 'MatMul', inputs=[x, y], outputs=node.output('Out')) + else: + if node.input_dtype('X', 0) == paddle.float64: + output_node = graph.make_node('MatMul', inputs=[x, y]) + matmul = graph.make_node( + 'Cast', inputs=output_node, to=dtypes.ONNX.DOUBLE) + scale = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.DOUBLE, + value=node.attr('alpha')) + else: + matmul = graph.make_node('MatMul', inputs=[x, y]) + scale = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.FLOAT, + value=node.attr('alpha')) + + onnx_node = graph.make_node( + 'Mul', inputs=[matmul, scale], outputs=node.output('Out')) + + +@op_mapper('matmul_v2') +class MatMul(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + x = node.input('X', idx=0) + y = node.input('Y', idx=0) + out = node.output('Out') + ## TODO(wangjunjie06): The current addition of cast op is only for onnxruntime optimization, after onnxruntime is repaired, remove this logic + if node.attr('trans_x'): + perm = list(range(len(node.input_shape('X', 0)))) + perm[-1], perm[-2] = perm[-2], perm[-1] + if node.input_dtype('X', 0) == paddle.float64: + x = graph.make_node('Cast', inputs=x, to=dtypes.ONNX.FLOAT) + x = graph.make_node('Transpose', inputs=[x], perm=perm) + if node.attr('trans_y'): + perm = list(range(len(node.input_shape('Y', 0)))) + perm[-1], perm[-2] = perm[-2], perm[-1] + if node.input_dtype('Y', 0) == paddle.float64: + y = graph.make_node('Cast', inputs=y, to=dtypes.ONNX.FLOAT) + y = graph.make_node('Transpose', inputs=[y], perm=perm) + if node.input_dtype('X', 0) == paddle.float64: + output_node = graph.make_node('MatMul', inputs=[x, y]) + graph.make_node( + 'Cast', inputs=output_node, to=dtypes.ONNX.DOUBLE, outputs=out) + else: + graph.make_node('MatMul', inputs=[x, y], outputs=out) + + +@op_mapper('exp') +class Exp(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Exp', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('abs') +class Abs: + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Abs', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('erf') +class Erf(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + x_dtype = node.input_dtype('X', 0) + x = node.input('X', 0) + # onnxruntime only support float32 Erf + if x_dtype != paddle.float32: + x = graph.make_node('Cast', inputs=x, to=dtypes.ONNX.FLOAT) + erf_node = graph.make_node('Erf', inputs=[x]) + graph.make_node( + 'Cast', + inputs=[erf_node], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype], + outputs=node.output('Out')) + else: + graph.make_node('Erf', inputs=[x], outputs=node.output('Out')) + + +@op_mapper('acos') +class Acos(): + supports_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + graph.make_node( + 'Acos', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('asin') +class Asin(): + supports_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + graph.make_node( + 'Asin', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('sinh') +class Sinh(): + supports_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + graph.make_node( + 'Sinh', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('sin') +class Sin(): + supports_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + graph.make_node( + 'Sin', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('atan') +class Atan(): + supports_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + graph.make_node( + 'Atan', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('tan') +class Tan(): + supports_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + graph.make_node( + 'Tan', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('ceil') +class Ceil(): + supports_opset_version_range = (7, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + graph.make_node( + 'Ceil', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('cos') +class Cos(): + supports_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + graph.make_node( + 'Cos', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('cosh') +class Cosh(): + supports_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + graph.make_node( + 'Cosh', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('log2') +class Log2(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + _ln2 = 0.693147180559945309 + dtype = dtypes.ONNX.FLOAT + if node.input_dtype('X', 0) == paddle.float64: + dtype = dtypes.ONNX.DOUBLE + _ln2 = graph.make_node('Constant', dtype=dtype, value=_ln2) + lnx = graph.make_node('Log', inputs=node.input('X')) + graph.make_node('Div', inputs=[lnx, _ln2], outputs=node.output('Out')) + + +@op_mapper('logsumexp') +class LogSumExp(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + + if node.attr('reduce_all'): + if not node.attr('keepdim'): + reduce_node = graph.make_node( + 'ReduceLogSumExp', + inputs=node.input('X'), + keepdims=node.attr('keepdim')) + mapper_helper.unsqueeze_helper(graph, reduce_node, [0], + node.output('Out')) + else: + graph.make_node( + 'ReduceLogSumExp', + inputs=node.input('X'), + keepdims=node.attr('keepdim'), + outputs=node.output('Out')) + else: + graph.make_node( + 'ReduceLogSumExp', + inputs=node.input('X'), + keepdims=node.attr('keepdim'), + axes=node.attr('axis'), + outputs=node.output('Out')) + + +@op_mapper( + [ + 'elementwise_add', 'elementwise_sub', 'elementwise_div', + 'elementwise_mul', 'elementwise_min', 'elementwise_max', + 'elementwise_pow' + ], + mapper_dict={ + 'elementwise_add': 'Add', + 'elementwise_sub': 'Sub', + 'elementwise_div': 'Div', + 'elementwise_mul': 'Mul', + 'elementwise_min': 'Min', + 'elementwise_max': 'Max', + 'elementwise_pow': 'Pow' + }) +class ElementwiseOps(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + x_shape = node.input_shape('X', 0) + y_shape = node.input_shape('Y', 0) + if node.type in ["elementwise_min", "elementwise_max"]: + assert False, "{} op is not supported when opset version < 8".format( + node.type) + + op_type = kw['mapper_dict'][node.type] + axis = node.attr('axis') + x = node.input('X', 0) + y = node.input('Y', 0) + + if axis == -1 or axis == (len(x_shape) - 1 + ) or len(x_shape) == len(y_shape): + onnx_node = graph.make_node( + op_type, inputs=[x, y], outputs=node.output('Out')) + else: + broadcast_shape = [1] * len(x_shape) + broadcast_shape[axis:axis + len(y_shape)] = y_shape + broadcast_shape_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=list(broadcast_shape)) + y_node = graph.make_node( + 'Reshape', inputs=[y, broadcast_shape_node]) + onnx_node = graph.make_node( + op_type, inputs=[x, y_node], outputs=node.output('Out')) + + @classmethod + def opset_8(cls, graph, node, **kw): + op_type = kw['mapper_dict'][node.type] + x = node.input('X', 0) + y = node.input('Y', 0) + axis = node.attr('axis') + x_shape = node.input_shape('X', 0) + y_shape = node.input_shape('Y', 0) + if axis == -1 or axis == (len(x_shape) - 1 + ) or len(x_shape) == len(y_shape): + onnx_node = graph.make_node( + op_type, inputs=[x, y], outputs=node.output('Out')) + else: + broadcast_shape = [1] * len(x_shape) + broadcast_shape[axis:axis + len(y_shape)] = y_shape + broadcast_shape_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=list(broadcast_shape)) + y_node = graph.make_node( + 'Reshape', inputs=[y, broadcast_shape_node]) + onnx_node = graph.make_node( + op_type, inputs=[x, y_node], outputs=node.output('Out')) + + +@op_mapper('elementwise_mod') +class ElementWiseMod(): + support_opset_version_range = (10, 15) + + @classmethod + def opset_10(cls, graph, node, **kw): + x_shape = node.input_shape('X', 0) + y_shape = node.input_shape('Y', 0) + axis = node.attr('axis') + x = node.input('X', 0) + y = node.input('Y', 0) + + if node.input_dtype('Y', 0) == paddle.int32 or node.input_dtype( + 'Y', 0) == paddle.int64: + onnx_node = graph.make_node( + "Mod", inputs=[x, y], outputs=node.output('Out')) + return + + fmod = 1 + + abs_x_node = graph.make_node("Abs", inputs=[x]) + abs_y_node = graph.make_node("Abs", inputs=[y]) + + dtype = dtypes.ONNX.FLOAT + val_0 = [0.0] + val_1 = [-1.0] + if node.input_dtype('Y', 0) == paddle.float64: + dtype = dtypes.ONNX.DOUBLE + if node.input_dtype('Y', 0) == paddle.int32: + dtype = dtypes.ONNX.INT32 + val_0 = [0] + val_1 = [-1] + if node.input_dtype('Y', 0) == paddle.int64: + dtype = dtypes.ONNX.INT64 + val_0 = [0] + val_1 = [-1] + zero_node = graph.make_node('Constant', dtype=dtype, value=val_0) + one_node = graph.make_node('Constant', dtype=dtype, value=val_1) + + mod_node = graph.make_node( + "Mod", inputs=[abs_x_node, abs_y_node], fmod=fmod) + + minus_node = graph.make_node("Mul", inputs=[mod_node, one_node]) + + condition_dtype = graph.make_node("Less", inputs=[x, zero_node]) + condition = graph.make_node( + 'Cast', inputs=[condition_dtype], to=dtypes.ONNX.BOOL) + + mod_res = graph.make_node( + "Where", inputs=[condition, minus_node, mod_node]) + + add_node = graph.make_node("Add", inputs=[mod_res, y]) + + mod_y_mul_node = graph.make_node("Mul", inputs=[mod_res, y]) + condition_dtype_1 = graph.make_node( + "Less", inputs=[mod_y_mul_node, zero_node]) + condition_1 = graph.make_node( + 'Cast', inputs=[condition_dtype_1], to=dtypes.ONNX.BOOL) + + graph.make_node( + "Where", + inputs=[condition_1, add_node, mod_res], + outputs=node.output('Out')) + + +@op_mapper('elementwise_floordiv') +class ElementWiseFloorDiv(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + x = node.input('X', 0) + y = node.input('Y', 0) + axis = node.attr('axis') + x_shape = node.input_shape('X', 0) + y_shape = node.input_shape('Y', 0) + x_dtype = node.input_dtype('X', 0) + y_dtype = node.input_dtype('Y', 0) + x_dtype = dtypes.DTYPE_PADDLE_STR_MAP[x_dtype] + y_dtype = dtypes.DTYPE_PADDLE_STR_MAP[y_dtype] + is_int = False + if x_dtype.count('int') > 0 and y_dtype.count('int') > 0: + is_int = True + if axis == -1 or axis == (len(x_shape) - 1 + ) or len(x_shape) == len(y_shape): + if is_int: + graph.make_node( + 'Div', inputs=[x, y], outputs=node.output('Out')) + else: + div_node = graph.make_node('Div', inputs=[x, y]) + graph.make_node( + 'Floor', inputs=[div_node], outputs=node.output('Out')) + else: + broadcast_shape = [1] * len(x_shape) + broadcast_shape[axis:axis + len(y_shape)] = y_shape + broadcast_shape_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=list(broadcast_shape)) + y_node = graph.make_node( + 'Reshape', inputs=[y, broadcast_shape_node]) + if is_int: + div_node = graph.make_node( + 'Div', inputs=[x, y_node], outputs=node.output('Out')) + else: + div_node = graph.make_node('Div', inputs=[x, y_node]) + graph.make_node( + 'Floor', inputs=[div_node], outputs=node.output('Out')) + + +@op_mapper('pow') +class Pow(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + x = node.input('X', 0) + x_dtype = node.input_dtype('X', 0) + factor = node.attr('factor') + # Pow-7 Only support input type as float and double + if x_dtype == paddle.int32 or x_dtype == paddle.int64: + x = graph.make_node('Cast', inputs=[x], to=dtypes.ONNX.FLOAT) + factor_node = graph.make_node( + 'Constant', + inputs=[], + dims=[1], + dtype=dtypes.ONNX.FLOAT, + value=factor) + else: + factor_node = graph.make_node( + 'Constant', + inputs=[], + dims=[1], + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype], + value=factor) + if x_dtype == paddle.int32 or x_dtype == paddle.int64: + pow_node = graph.make_node('Pow', inputs=[x, factor_node]) + graph.make_node( + 'Cast', + inputs=[pow_node], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype], + outputs=node.output('Out')) + else: + graph.make_node( + 'Pow', inputs=[x, factor_node], outputs=node.output('Out')) + + @classmethod + def opset_12(cls, graph, node, **kw): + x = node.input('X', 0) + factor = node.attr('factor') + factor_node = graph.make_node( + 'Constant', + inputs=[], + dims=[1], + dtype=dtypes.ONNX.FLOAT, + value=factor) + pow_node = graph.make_node( + 'Pow', inputs=[x, factor_node], outputs=node.output('Out')) + + +@op_mapper('square') +class Square(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + x = node.input('X', 0) + onnx_node = graph.make_node( + 'Mul', inputs=[x, x], outputs=node.output('Out')) + + +@op_mapper('cumsum') +class CumSum(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + + axis = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=node.attr('axis')) + graph.make_node( + 'CumSum', + inputs=[node.input('X', 0), axis], + outputs=node.output('Out')) + + +@op_mapper('mul') +class Mul(): + support_opset_version_range = (5, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + x = node.input('X', 0) + y = node.input('Y', 0) + out = node.output('Out', 0) + x_num_col_dims = node.attr('x_num_col_dims') + y_num_col_dims = node.attr('y_num_col_dims') + flatten_x = graph.make_node( + 'Flatten', inputs=node.input('X'), attrs={'axis': x_num_col_dims}) + flatten_y = graph.make_node( + 'Flatten', inputs=node.input('Y'), attrs={'axis': y_num_col_dims}) + mul_node = graph.make_node('MatMul', inputs=[flatten_x, flatten_y]) + + x_shape = graph.make_node('Shape', inputs=[x]) + l_shape = mapper_helper.slice_helper( + graph, x_shape, axes=[0], starts=[0], ends=[x_num_col_dims]) + y_shape = graph.make_node('Shape', inputs=[y]) + y_rank = len(node.input_shape('Y', 0)) + r_shape = mapper_helper.slice_helper( + graph, y_shape, axes=[0], starts=[y_num_col_dims], ends=[y_rank]) + + out_shape = graph.make_node('Concat', inputs=[l_shape, r_shape], axis=0) + graph.make_node('Reshape', [mul_node, out_shape], node.output('Out')) + + +@op_mapper('affine_channel') +class AffineChannel(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + if "data_layout" in node.attrs.keys(): + assert node.attrs['data_layout'] == 'NCHW' or node.attrs['data_layout'] == "AnyLayout", \ + "The affine_channel data format should be 'NCHW', but received data format " \ + "is %s." % node.attrs['data_layout'] + x = node.input('X', 0) + bias = node.input('Bias', 0) + scale = node.input('Scale', 0) + scale = mapper_helper.unsqueeze_helper(graph, scale, [0, 2, 3]) + bias = mapper_helper.unsqueeze_helper(graph, bias, [0, 2, 3]) + x = graph.make_node('Mul', inputs=[x, scale]) + x = graph.make_node('Add', inputs=[x, bias], outputs=node.output('Out')) + + +@op_mapper('bmm') +class BMM(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + x = node.input('X', 0) + y = node.input('Y', 0) + mul_node = graph.make_node( + 'MatMul', inputs=[x, y], outputs=node.output('Out')) + + +@op_mapper('p_norm') +class PNorm(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + x = node.input('X', 0) + axis = node.attr('axis') + if isinstance(axis, (int, float)): + axis = [axis] + p = node.attr('porder') + keepdim = node.attr('keepdim') + dtype = dtypes.ONNX.FLOAT + if node.input_dtype('X', 0) == paddle.float64: + dtype = dtypes.ONNX.DOUBLE + + pnode = graph.make_node('Constant', dtype=dtype, value=[p]) + + abs_node = graph.make_node('Abs', inputs=[x]) + pow_node = graph.make_node('Pow', inputs=[abs_node, pnode]) + reduce_sum = graph.make_node( + 'ReduceSum', inputs=[pow_node], axes=axis, keepdims=keepdim) + pnode1 = graph.make_node('Constant', dtype=dtype, value=[1.0 / p]) + graph.make_node( + 'Pow', inputs=[reduce_sum, pnode1], outputs=node.output('Out')) + + @classmethod + def opset_13(cls, graph, node, **kw): + x = node.input('X', 0) + axis = node.attr('axis') + if isinstance(axis, (int, float)): + axis = [axis] + p = node.attr('porder') + keepdim = node.attr('keepdim') + pnode = graph.make_node('Constant', dtype=dtypes.ONNX.FLOAT, value=[p]) + abs_node = graph.make_node('Abs', inputs=[x]) + pow_node = graph.make_node('Pow', inputs=[abs_node, pnode]) + axes = graph.make_node('Constant', dtype=dtypes.ONNX.INT64, value=axis) + reduce_sum = graph.make_node( + 'ReduceSum', inputs=[pow_node, axes], keepdims=keepdim) + pnode1 = graph.make_node( + 'Constant', dtype=dtypes.ONNX.FLOAT, value=[1.0 / p]) + graph.make_node( + 'Pow', inputs=[reduce_sum, pnode1], outputs=node.output('Out')) + + +@op_mapper('sum') +class Sum(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Sum', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('floor') +class Floor(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Floor', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('log10') +class Log10(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + _ln10 = 2.30258509299404568401 + dtype = dtypes.ONNX.FLOAT + if node.input_dtype('X', 0) == paddle.float64: + dtype = dtypes.ONNX.DOUBLE + _ln10 = graph.make_node('Constant', dtype=dtype, value=_ln10) + lnx = graph.make_node('Log', inputs=node.input('X')) + graph.make_node('Div', inputs=[lnx, _ln10], outputs=node.output('Out')) + + +@op_mapper('log1p') +class Log1p(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + dtype = dtypes.ONNX.FLOAT + if node.input_dtype('X', 0) == paddle.float64: + dtype = dtypes.ONNX.DOUBLE + one = graph.make_node('Constant', attrs={'dtype': dtype, 'value': [1]}) + add_node = graph.make_node('Add', inputs=[node.input('X', 0), one]) + graph.make_node('Log', inputs=add_node, outputs=node.output('Out')) + + +@op_mapper( + ['reduce_all', 'reduce_any'], + mapper_dict={'reduce_all': 'ReduceMin', + 'reduce_any': 'ReduceMax'}) +class ReduceAll(): + support_opset_version_range = (6, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + op_type = kw['mapper_dict'][node.type] + input_dtype = node.block.vars[node.input('X', 0)].dtype + input_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[input_dtype] + all_node = graph.make_node( + 'Cast', inputs=[node.input('X', 0)], to=dtypes.ONNX.INT32) + + attrs = {'keepdims': node.attr('keep_dim'), } + if not node.attr('reduce_all'): + attrs['axes'] = node.attr('dim') + output_node = graph.make_node(op_type, inputs=[all_node], attrs=attrs) + + if node.attr('reduce_all') and not node.attr('keep_dim'): + output_node = mapper_helper.unsqueeze_helper(graph, output_node, + [0]) + graph.make_node( + 'Cast', + inputs=[output_node], + to=input_dtype, + outputs=node.output('Out')) + + +@op_mapper( + ['reduce_mean', 'reduce_sum', 'reduce_min', 'reduce_max', 'reduce_prod'], + mapper_dict={ + 'reduce_mean': 'ReduceMean', + 'reduce_sum': 'ReduceSum', + 'reduce_min': 'ReduceMin', + 'reduce_max': 'ReduceMax', + 'reduce_prod': 'ReduceProd' + }) +class ReduceMean(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + op_type = kw['mapper_dict'][node.type] + + output_shape = node.output_shape('Out', 0) + reduce_all = node.attr("reduce_all") + axes = node.attr("dim") + if reduce_all: + axes = list(range(len(node.input_shape("X", 0)))) + if len(axes) == len(node.input_shape("X", 0)): + reduce_all = True + keepdims = node.attr('keep_dim') + if keepdims: + cls.create_reduce_node(graph, op_type, + node.input("X"), node.output("Out"), axes, 1) + else: + if reduce_all: + shape = graph.make_node( + "Constant", dtype=dtypes.ONNX.INT64, value=[-1]) + flatten_node = graph.make_node( + "Reshape", inputs=[node.input("X")[0], shape]) + cls.create_reduce_node(graph, op_type, [flatten_node], + node.output("Out"), [0], 1) + else: + cls.create_reduce_node(graph, op_type, + node.input("X"), + node.output("Out"), axes, 0) + + @classmethod + def create_reduce_node(cls, graph, op_type, inputs, outputs, axes, + keepdims): + if graph.opset_version >= 13 and op_type == "ReduceSum": + axes = graph.make_node( + "Constant", dtype=dtypes.ONNX.INT64, value=axes) + output = graph.make_node( + "ReduceSum", + inputs=inputs + [axes], + outputs=outputs, + keepdims=keepdims) + else: + output = graph.make_node( + op_type, + inputs=inputs, + outputs=outputs, + axes=axes, + keepdims=keepdims) + + +@op_mapper('mean') +class Mean(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + shape = graph.make_node("Constant", dtype=dtypes.ONNX.INT64, value=[-1]) + flatten_node = graph.make_node( + "Reshape", inputs=[node.input("X")[0], shape]) + mean_node = graph.make_node( + 'ReduceMean', + inputs=flatten_node, + outputs=node.output("Out"), + keepdims=1) + + +@op_mapper('arg_max') +class ArgMax(): + support_opset_version_range = (1, 12) + + @classmethod + def opset_1(cls, graph, node, **kw): + if node.attr('dtype') and node.attr('dtype') == 2: + arg_node = graph.make_node( + 'ArgMax', + inputs=node.input('X'), + attrs={ + 'axis': node.attr('axis'), + 'keepdims': node.attr('keepdims') + }) + graph.make_node( + 'Cast', + inputs=arg_node, + attrs={'to': dtypes.ONNX.INT32}, + outputs=node.output('Out')) + else: + graph.make_node( + 'ArgMax', + inputs=node.input('X'), + outputs=node.output('Out'), + attrs={ + 'axis': node.attr('axis'), + 'keepdims': node.attr('keepdims') + }) + + +@op_mapper('arg_min') +class ArgMin(): + support_opset_version_range = (1, 12) + + @classmethod + def opset_1(cls, graph, node, **kw): + if node.attr('flatten'): + flatten = graph.make_node('Flatten', inputs=node.input('X'), axis=0) + squeeze_node = graph.make_node('Squeeze', inputs=flatten) + graph.make_node( + 'ArgMin', inputs=squeeze_node, outputs=node.output('Out')) + else: + if node.attr('keepdims'): + graph.make_node( + 'ArgMin', + inputs=node.input('X'), + outputs=node.output('Out'), + axis=node.attr('axis'), + keepdims=1) + else: + graph.make_node( + 'ArgMin', + inputs=node.input('X'), + outputs=node.output('Out'), + axis=node.attr('axis'), + keepdims=0) + + +@op_mapper('brelu') +class Hardtanh(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + mapper_helper.clip_helper(graph, node, + node.input('X', 0), + node.attr('t_max'), + node.attr('t_min'), node.output('Out', 0)) + + +@op_mapper('mv') +class Mv(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'MatMul', + inputs=[node.input('X', 0), node.input('Vec', 0)], + outputs=node.output('Out')) + + +@op_mapper('dot') +class Dot(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + mul_node = graph.make_node( + 'Mul', inputs=[node.input('X', 0), node.input('Y', 0)]) + graph.make_node( + 'ReduceSum', + inputs=[mul_node], + axes=[len(node.input_shape('X', 0)) - 1], + outputs=node.output('Out')) + + @classmethod + def opset_13(cls, graph, node, **kw): + mul_node = graph.make_node( + 'Mul', inputs=[node.input('X', 0), node.input('Y', 0)]) + one = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=[len(node.input_shape('X', 0)) - 1]) + graph.make_node( + 'ReduceSum', inputs=[mul_node, one], outputs=node.output('Out')) + + +@op_mapper('dist') +class Dist(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + sub_node = graph.make_node( + 'Sub', inputs=[node.input('X', 0), node.input('Y', 0)]) + abs_node = graph.make_node('Abs', inputs=sub_node) + if node.attr('p') == 0: + assert graph.opset_version >= 9, "When p is 0, onnx opset should be (onnx_opset>=9)." + sign_node = graph.make_node('Sign', inputs=abs_node) + sum_node = graph.make_node( + 'ReduceSum', inputs=sign_node, keepdims=0) + mapper_helper.unsqueeze_helper(graph, sum_node, [0], + node.output('Out')) + elif node.attr('p') == float('inf'): + max_node = graph.make_node('ReduceMax', inputs=abs_node, keepdims=0) + mapper_helper.unsqueeze_helper(graph, max_node, [0], + node.output('Out')) + elif node.attr('p') == float('-inf'): + min_node = graph.make_node('ReduceMin', inputs=abs_node, keepdims=0) + mapper_helper.unsqueeze_helper(graph, min_node, [0], + node.output('Out')) + else: + x_dtype = node.input_dtype('X', 0) + p = graph.make_node( + 'Constant', + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype], + value=node.attr('p')) + pow_node = graph.make_node( + 'Pow', + inputs=[abs_node, p], ) + sum_node = graph.make_node('ReduceSum', inputs=pow_node, keepdims=0) + sum_node = mapper_helper.unsqueeze_helper(graph, sum_node, [0]) + p_1 = graph.make_node('Reciprocal', inputs=p) + graph.make_node( + 'Pow', inputs=[sum_node, p_1], outputs=node.output('Out')) + + +@op_mapper('round') +class Round(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + graph.make_node( + 'Round', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('rsqrt') +class Rsqrt(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + sqrt_node = graph.make_node('Sqrt', inputs=node.input('X')) + graph.make_node( + 'Reciprocal', inputs=sqrt_node, outputs=node.output('Out')) + + +@op_mapper('sign') +class Sign(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + graph.make_node( + 'Sign', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('scale') +class Scale(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + scale = node.attr('scale') + bias = node.attr('bias') + if len(node.input('ScaleTensor')) == 0 and np.fabs( + scale - 1.0) < 1e-06 and np.fabs(bias - 0.0) < 1e-06: + graph.make_node( + 'Identity', inputs=node.input('X'), outputs=node.output('Out')) + else: + input_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)] + if input_dtype in [ + dtypes.ONNX.INT16, dtypes.ONNX.INT32, dtypes.ONNX.INT64 + ]: + outputs = None + data_type = dtypes.ONNX.FLOAT + cast_node = graph.make_node( + 'Cast', inputs=node.input('X'), attrs={'to': data_type}) + else: + outputs = node.output('Out') + data_type = input_dtype + cast_node = node.input('X')[0] + + if len(node.input('ScaleTensor')) > 0: + scale_node = node.input('ScaleTensor')[0] + scale_type = dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype( + 'ScaleTensor', 0)] + if scale_type != data_type: + scale_node = graph.make_node( + 'Cast', inputs=[scale_node], attrs={'to': data_type}) + else: + scale_node = graph.make_node( + 'Constant', attrs={'dtype': data_type, + 'value': [scale]}) + bias_node = graph.make_node( + 'Constant', attrs={'dtype': data_type, + 'value': [bias]}) + + if node.attr('bias_after_scale'): + node1 = graph.make_node('Mul', inputs=[cast_node, scale_node]) + node2 = graph.make_node( + 'Add', inputs=[node1, bias_node], outputs=outputs) + else: + node1 = graph.make_node('Add', inputs=[cast_node, bias_node]) + node2 = graph.make_node( + 'Mul', inputs=[node1, scale_node], outputs=outputs) + + if input_dtype in [ + dtypes.ONNX.INT16, dtypes.ONNX.INT32, dtypes.ONNX.INT64 + ]: + cast_node = graph.make_node( + 'Cast', + inputs=node2, + outputs=node.output('Out'), + attrs={'to': input_dtype}) + + +@op_mapper('softmax') +class Softmax(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + axis = node.attr('axis') + shape = node.output_shape('Out', 0) + if axis is None: + axis = -1 + if axis < 0: + axis += len(shape) + if axis == len(shape) - 1: + node = graph.make_node( + 'Softmax', + inputs=node.input('X'), + outputs=node.output('Out'), + attrs={'axis': axis}) + else: + perm = [i for i in range(len(shape))] + perm[-1] = axis + perm[axis] = len(shape) - 1 + transpose_node = graph.make_node( + 'Transpose', inputs=node.input('X'), attrs={'perm': perm}) + softmax_node = graph.make_node( + 'Softmax', inputs=[transpose_node], axis=-1) + transpose_node1 = graph.make_node( + 'Transpose', + inputs=[softmax_node], + outputs=node.output('Out'), + attrs={'perm': perm}) + + @classmethod + def opset_13(cls, graph, node, **kw): + graph.make_node( + 'Softmax', + inputs=node.input('X'), + axis=node.attr('axis'), + outputs=node.output('Out')) + + +@op_mapper('unfold') +class Unfold(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + + strides = node.attr('strides') + stride_h = strides[0] + stride_w = strides[1] + + paddings = node.attr('paddings') + padding_h_1 = paddings[0] + padding_w_1 = paddings[1] + padding_h_2 = paddings[2] + padding_w_2 = paddings[3] + + dilations = node.attr('dilations') + dilation_h = dilations[0] + dilation_w = dilations[1] + + kernel_sizes = node.attr('kernel_sizes') + kernel_h = kernel_sizes[0] + kernel_w = kernel_sizes[1] + + input_w = mapper_helper.shape_helper(graph, node.input('X', 0), 3) + blocks_row_indices_node = cls._get_im2col_indices_along_dim( + graph, node, 2, kernel_h, dilation_h, padding_h_1, padding_h_2, + stride_h) + blocks_col_indices_node = cls._get_im2col_indices_along_dim( + graph, node, 3, kernel_w, dilation_w, padding_w_1, padding_w_2, + stride_w) + + output_shape = cls._get_im2col_output_shape(graph, node, kernel_h, + kernel_w) + padded_input = cls._get_im2col_padded_input( + graph, node, padding_h_1, padding_h_2, padding_w_1, padding_w_2) + + output = graph.make_node( + 'Gather', inputs=[padded_input, blocks_row_indices_node], axis=2) + + output = graph.make_node( + 'Gather', inputs=[output, blocks_col_indices_node], axis=4) + output = graph.make_node( + 'Transpose', inputs=[output], perm=[0, 1, 2, 4, 3, 5]) + + graph.make_node( + 'Reshape', inputs=[output, output_shape], outputs=node.output('Y')) + + @classmethod + def _get_im2col_indices_along_dim(cls, graph, node, index, kernel_size_d, + dilation_d, padding_d_1, padding_d_2, + stride_d): + input_shape = node.input_shape('X', 0) + if input_shape[index] == -1: + input_d_node = mapper_helper.shape_helper(graph, + node.input('X', 0), index) + + padding_d_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=[padding_d_1 + padding_d_2]) + blocks_d_node = graph.make_node( + 'Add', inputs=[input_d_node, padding_d_node]) + + dilation_kernel_size_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=[dilation_d * (kernel_size_d - 1)]) + blocks_d_node = graph.make_node( + 'Sub', inputs=[blocks_d_node, dilation_kernel_size_node]) + + zero_node = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[0]) + stride_node = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[stride_d]) + blocks_d_indices_node = graph.make_node( + 'Range', inputs=[zero_node, blocks_d_node, stride_node]) + else: + end = input_shape[ + index] + padding_d_1 + padding_d_2 - dilation_d * (kernel_size_d + - 1) + stride = stride_d + blocks_d_indices = np.arange(0, end, stride) + blocks_d_indices_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=blocks_d_indices.flatten().tolist()) + + kernel_grid = np.arange(0, kernel_size_d * dilation_d, dilation_d) + kernel_grid_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=kernel_grid.flatten().tolist()) + + shape_node = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[-1, 1]) + kernel_mask_node = graph.make_node( + 'Reshape', inputs=[kernel_grid_node, shape_node]) + + block_mask_node = graph.make_node( + 'Add', inputs=[blocks_d_indices_node, kernel_mask_node]) + return block_mask_node + + @classmethod + def _get_im2col_output_shape(cls, graph, node, kernel_h, kernel_w): + batch_dim = mapper_helper.shape_helper(graph, node.input('X', 0), 0) + channel_dim = mapper_helper.shape_helper(graph, node.input('X', 0), 1) + + constant_node = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[kernel_h * kernel_w]) + channel_unfolded = graph.make_node( + 'Mul', inputs=[channel_dim, constant_node]) + + concat_const_node = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[-1]) + result_node = graph.make_node( + 'Concat', + inputs=[batch_dim, channel_unfolded, concat_const_node], + axis=0) + + return result_node + + @classmethod + def _get_im2col_padded_input(cls, graph, node, padding_h_1, padding_h_2, + padding_w_1, padding_w_2): + pad_const_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=[ + 0, 0, padding_h_1, padding_w_1, 0, 0, padding_h_2, padding_w_2 + ]) + result_node = graph.make_node( + 'Pad', inputs=[node.input('X', 0), pad_const_node]) + return result_node + + +@op_mapper('softmax_with_cross_entropy') +class SoftmaxCrossEntropyLoss(): + support_opset_version_range = (12, 15) + + @classmethod + def opset_12(cls, graph, node, **kw): + if node.attr('soft_label'): + raise Exception( + "SoftmaxCrossEntropyLoss in onnx not support soft label.") + scores = node.input('Logits', 0) + labels = node.input('Label', 0) + # Whether return_softmax is True or False, the model will have two outputs + outputs = [node.output('Loss', 0), node.output('Softmax', 0)] + + shape = node.input_shape('Logits', 0) + if len(shape) < 2: + raise Exception( + "SoftmaxCrossEntropyLoss in onnx not support 1D logits.") + axis = node.attr('axis') + if axis < 0: + axis += len(shape) + if axis == 1: + squeeze_node = mapper_helper.squeeze_helper(graph, labels, [axis]) + loss_node, softmax_node = graph.make_node( + 'SoftmaxCrossEntropyLoss', + inputs=[scores, squeeze_node], + outputs=2, + ignore_index=node.attr('ignore_index'), + reduction='none') + loss_node = mapper_helper.unsqueeze_helper(graph, loss_node, + [axis], outputs[0]) + # onnx output is log(softmax), but paddle output is softmax + graph.make_node('Exp', inputs=[softmax_node], outputs=outputs[1]) + else: + perm = [i for i in range(len(shape))] + perm[1] = axis + perm[axis] = 1 + transpose_scores = graph.make_node( + 'Transpose', inputs=[scores], perm=perm) + transpose_labels = graph.make_node( + 'Transpose', inputs=[labels], perm=perm) + squeeze_labels = mapper_helper.squeeze_helper( + graph, transpose_labels, [1]) + + loss_node, softmax_node = graph.make_node( + 'SoftmaxCrossEntropyLoss', + inputs=[transpose_scores, squeeze_labels], + ignore_index=node.attr('ignore_index'), + outputs=2, + reduction='none') + output_node = mapper_helper.unsqueeze_helper(graph, loss_node, [1]) + graph.make_node( + 'Transpose', inputs=output_node, outputs=outputs[0], perm=perm) + softmax_node = graph.make_node( + 'Transpose', inputs=softmax_node, perm=perm) + # onnx output is log(softmax), but paddle output is softmax + graph.make_node('Exp', inputs=[softmax_node], outputs=outputs[1]) diff --git a/paddle2onnx/legacy/op_mapper/nn.py b/paddle2onnx/legacy/op_mapper/nn.py new file mode 100755 index 000000000..37e2f1fab --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/nn.py @@ -0,0 +1,952 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +import math +import collections +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper +from paddle2onnx import utils +import paddle + + +@op_mapper(['conv2d', 'depthwise_conv2d', 'conv3d']) +class Conv(): + support_opset_version_range = (1, 12) + + @classmethod + def opset_1(cls, graph, node, **kw): + kernel_shape = node.input_shape('Filter', 0) + dilations = node.attr('dilations') + kernel_shape = kernel_shape[2:] + strides = node.attr('strides') + group = node.attr('groups') + pads = node.attr('paddings') + assert node.attrs['data_format'] == 'NCHW' or node.attrs['data_format'] == 'NCDHW' or node.attrs['data_format'] == "AnyLayout", \ + "The conv data format should be 'NCHW' or 'NCDHW', but received data format " \ + "is %s." % node.attrs['data_format'] + # onnx padding is [x1_begin, x2_begin...x1_end, x2_end, ...] + if len(pads) == 2 or len(pads) == 3: + pads = pads + pads + elif len(pads) == 4: + pads = [pads[i] for i in [0, 2, 1, 3]] + elif len(pads) == 6: + pads = [pads[i] for i in [0, 2, 4, 1, 3, 5]] + attrs = { + 'dilations': dilations, + 'kernel_shape': kernel_shape, + 'strides': strides, + 'group': group + } + auto_pad = node.attr('padding_algorithm') + if auto_pad == 'SAME': + attrs['auto_pad'] = 'SAME_UPPER' + elif auto_pad == 'VALID': + attrs['auto_pad'] = 'VALID' + else: + attrs['pads'] = pads + graph.make_node( + 'Conv', + inputs=node.input('Input') + node.input('Filter'), + outputs=node.output('Output'), + attrs=attrs) + + +@op_mapper( + ['conv2d_transpose', 'depthwise_conv2d_transpose', 'conv3d_transpose']) +class ConvTranspose(): + support_opset_version_range = (1, 12) + + @classmethod + def opset_1(cls, graph, node, **kw): + output_padding = node.attr('output_padding') + kernel_shape = node.input_shape('Filter', 0) + dilations = node.attr('dilations') + kernel_shape = kernel_shape[2:] + strides = node.attr('strides') + group = node.attr('groups') + pads = node.attr('paddings') + assert node.attrs['data_format'] == 'NCHW' or node.attrs['data_format'] == 'NCDHW', \ + "The conv data format should be 'NCHW' or 'NCDHW', but received data format " \ + "is %s." % node.attrs['data_format'] + + if len(pads) == 2 or len(pads) == 3: + pads = pads + pads + elif len(pads) == 4: + pads = [pads[i] for i in [0, 2, 1, 3]] + elif len(pads) == 6: + pads = [pads[i] for i in [0, 2, 4, 1, 3, 5]] + + attrs = { + 'dilations': dilations, + 'kernel_shape': kernel_shape, + 'strides': strides, + 'group': group + } + auto_pad = node.attr('padding_algorithm') + if auto_pad == 'SAME': + attrs['auto_pad'] = 'SAME_UPPER' + elif auto_pad == 'VALID': + attrs['auto_pad'] = 'VALID' + else: + attrs['pads'] = pads + if output_padding and len(output_padding) > 0: + attrs['output_padding'] = output_padding + graph.make_node( + 'ConvTranspose', + inputs=node.input('Input') + node.input('Filter'), + outputs=node.output('Output'), + attrs=attrs) + + +@op_mapper('pool2d') +class Pool(): + support_opset_version_range = (1, 12) + pool_type = { + 'max': ('MaxPool', 'GlobalMaxPool'), + 'avg': ('AveragePool', 'GlobalAveragePool') + } + + @classmethod + def is_same_span(cls, in_size, out_size): + spans = [] + for i in range(out_size): + start = math.floor(i * (in_size / out_size)) + end = math.ceil((i + 1) * (in_size / out_size)) + spans.append(end - start) + if len(set(spans)) == 1: + return True + return False + + @classmethod + def opset_1(cls, graph, node, **kw): + assert node.attrs['data_format'] == 'NCHW' or node.attrs['data_format'] == "AnyLayout", \ + "The conv data format should be 'NCHW', but received data format " \ + "is %s." % node.attrs['data_format'] + x_dtype = node.input_dtype('X', 0) + need_dtype_convert = False + input_name = node.input('X', 0) + if x_dtype != paddle.float32: + need_dtype_convert = True + input_name = graph.make_node( + 'Cast', inputs=node.input('X'), to=dtypes.ONNX.FLOAT) + + if node.attr('global_pooling') or (node.attr('adaptive') and + node.attr('ksize') == [1, 1]): + if need_dtype_convert: + onnx_node = graph.make_node( + cls.pool_type[node.attr('pooling_type')][1], + inputs=[input_name]) + graph.make_node( + 'Cast', + inputs=[onnx_node], + outputs=node.output('Out'), + to=dtypes.ONNX.DOUBLE) + else: + onnx_node = graph.make_node( + cls.pool_type[node.attr('pooling_type')][1], + inputs=[input_name], + outputs=node.output('Out')) + elif node.attr('adaptive'): + # if pool is adaptive, check if input shape of pool is fixed. + if node.input_shape('X', 0)[2:].count(-1) > 0: + raise Exception( + "Converting this model to ONNX need with static input shape," \ + " please fix input shape of this model, see doc Q2 in" \ + " https://github.com/PaddlePaddle/paddle2onnx/blob/develop/docs/en/FAQ.md." + ) + input_h, input_w = node.input_shape('X', 0)[2:] + output_h, output_w = node.output_shape('Out', 0)[2:] + stride_h = int(input_h / output_h) + stride_w = int(input_w / output_w) + + kernel_h = input_h - (output_h - 1) * stride_h + kernel_w = input_w - (output_w - 1) * stride_w + + #check if kernel_size is fixed. + if not cls.is_same_span(input_h, output_h) or not cls.is_same_span( + input_w, output_w): + raise Exception( + "Cannot convert adaptive pool with input_size: {}, output_size: {}" + .format( + node.input_shape('X', 0), node.output_shape('Out', 0))) + else: + attrs = { + 'kernel_shape': (kernel_h, kernel_w), + 'strides': (stride_h, stride_w), + } + if node.attr('ceil_mode') and graph.opset_version < 10: + raise Exception( + "Cannot convert pool with ceil_model == True to ONNX Opset version < 10." + ) + elif graph.opset_version > 10: + attrs['ceil_mode'] = node.attr('ceil_mode') + auto_pad = node.attr('padding_algorithm') + if auto_pad == 'SAME': + attrs['auto_pad'] = 'SAME_UPPER' + elif auto_pad == 'VALID': + attrs['auto_pad'] = 'VALID' + if node.attr('pooling_type') == 'avg': + attrs['count_include_pad'] = not node.attr('exclusive') + if need_dtype_convert: + onnx_node = graph.make_node( + cls.pool_type[node.attr('pooling_type')][0], + inputs=[input_name], + attrs=attrs) + graph.make_node( + 'Cast', + inputs=[onnx_node], + outputs=node.output('Out'), + to=dtypes.ONNX.DOUBLE) + else: + onnx_node = graph.make_node( + cls.pool_type[node.attr('pooling_type')][0], + inputs=[input_name], + outputs=node.output('Out'), + attrs=attrs) + else: + input_shape = node.input_shape('X', 0) + k_size = node.attr('ksize') + pads = node.attr('paddings') + strides = node.attr('strides') + + if len(pads) == 2: + pads = pads + pads + elif len(pads) == 4: + pads = [pads[i] for i in [0, 2, 1, 3]] + + if input_shape[2] > 0 and input_shape[2] + pads[0] < k_size[0]: + k_size[0] = input_shape[2] + pads[0] + if input_shape[3] > 0 and input_shape[3] + pads[1] < k_size[1]: + k_size[1] = input_shape[3] + pads[1] + + input_x = [input_name] + if max(k_size) <= max(pads): + onnx_paddings = [0, 0, pads[0], pads[1], 0, 0, pads[2], pads[3]] + attrs_pad = {'mode': 'constant', } + if graph.opset_version >= 11: + pads_node = graph.make_node( + 'Constant', + attrs={ + 'dtype': dtypes.ONNX.INT64, + 'value': onnx_paddings + }) + value_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.FLOAT, + 'value': 0.0}) + input_x = input_x + [pads_node, value_node] + else: + attrs_pad['pads'] = onnx_paddings + attrs_pad['value'] = 0.0 + input_x = graph.make_node( + 'Pad', inputs=input_x, attrs=attrs_pad) + pads = [0, 0, 0, 0] + + attrs = { + 'kernel_shape': k_size, + 'strides': strides, + } + auto_pad = node.attr('padding_algorithm') + if auto_pad == 'SAME': + attrs['auto_pad'] = 'SAME_UPPER' + elif auto_pad == 'VALID': + attrs['auto_pad'] = 'VALID' + else: + attrs['pads'] = pads + if node.attr('ceil_mode') and graph.opset_version < 10: + raise Exception( + "Cannot convert pool with ceil_model == True to ONNX Opset version < 10" + ) + elif graph.opset_version >= 10: + attrs['ceil_mode'] = node.attr('ceil_mode') + + if node.attr('pooling_type') == 'avg': + attrs['count_include_pad'] = not node.attr('exclusive') + if need_dtype_convert: + onnx_node = graph.make_node( + cls.pool_type[node.attr('pooling_type')][0], + inputs=input_x, + attrs=attrs) + graph.make_node( + 'Cast', + inputs=[onnx_node], + outputs=node.output('Out'), + to=dtypes.ONNX.DOUBLE) + else: + onnx_node = graph.make_node( + cls.pool_type[node.attr('pooling_type')][0], + inputs=input_x, + outputs=node.output('Out'), + attrs=attrs) + + +@op_mapper('pool3d') +class Pool3D(): + support_opset_version_range = (1, 12) + pool_type = { + 'max': ('MaxPool', 'GlobalMaxPool'), + 'avg': ('AveragePool', 'GlobalAveragePool') + } + + @classmethod + def is_same_span(cls, in_size, out_size): + spans = [] + for i in range(out_size): + start = math.floor(i * (in_size / out_size)) + end = math.ceil((i + 1) * (in_size / out_size)) + spans.append(end - start) + if len(set(spans)) == 1: + return True + return False + + @classmethod + def opset_1(cls, graph, node, **kw): + assert node.attrs['data_format'] == 'NCDHW' or node.attrs['data_format'] == "AnyLayout", \ + "The conv data format should be 'NCDHW', but received data format " \ + "is %s." % node.attrs['data_format'] + + if node.attr('global_pooling') or (node.attr('adaptive') and + node.attr('ksize') == [1, 1, 1]): + onnx_node = graph.make_node( + cls.pool_type[node.attr('pooling_type')][1], + inputs=node.input('X'), + outputs=node.output('Out')) + elif node.attr('adaptive'): + # if pool is adaptive, check if input shape of pool is fixed. + if node.input_shape('X', 0)[2:].count(-1) > 0: + raise Exception( + "Converting this model to ONNX need with static input shape," \ + " please fix input shape of this model, see doc Q2 in" \ + " https://github.com/PaddlePaddle/paddle2onnx/blob/develop/docs/en/FAQ.md." + ) + input_d, input_h, input_w = node.input_shape('X', 0)[2:] + output_d, output_h, output_w = node.output_shape('Out', 0)[2:] + stride_d = int(input_d / output_d) + stride_h = int(input_h / output_h) + stride_w = int(input_w / output_w) + + kernel_d = input_d - (output_d - 1) * stride_d + kernel_h = input_h - (output_h - 1) * stride_h + kernel_w = input_w - (output_w - 1) * stride_w + + #check if kernel_size is fixed. + if not cls.is_same_span(input_h, output_h) or not cls.is_same_span( + input_w, output_w) or not cls.is_same_span(input_d, + output_d): + raise Exception( + "Cannot convert adaptive pool with input_size: {}, output_size: {}" + .format( + node.input_shape('X', 0), node.output_shape('Out', 0))) + else: + attrs = { + 'kernel_shape': (kernel_d, kernel_h, kernel_w), + 'strides': (stride_d, stride_h, stride_w), + } + if node.attr('ceil_mode') and graph.opset_version < 10: + raise Exception( + "Cannot convert pool with ceil_model == True to ONNX Opset version < 10." + ) + elif graph.opset_version > 10: + attrs['ceil_mode'] = node.attr('ceil_mode') + auto_pad = node.attr('padding_algorithm') + if auto_pad == 'SAME': + attrs['auto_pad'] = 'SAME_UPPER' + elif auto_pad == 'VALID': + attrs['auto_pad'] = 'VALID' + if node.attr('pooling_type') == 'avg': + attrs['count_include_pad'] = not node.attr('exclusive') + onnx_node = graph.make_node( + cls.pool_type[node.attr('pooling_type')][0], + inputs=node.input('X'), + outputs=node.output('Out'), + attrs=attrs) + else: + input_shape = node.input_shape('X', 0) + k_size = node.attr('ksize') + paddings = node.attr('paddings') + if input_shape[2] > 0 and input_shape[2] + paddings[0] < k_size[0]: + k_size[0] = input_shape[2] + paddings[0] + if input_shape[3] > 0 and input_shape[3] + paddings[1] < k_size[1]: + k_size[1] = input_shape[3] + paddings[1] + if input_shape[4] > 0 and input_shape[4] + paddings[2] < k_size[2]: + k_size[2] = input_shape[4] + paddings[2] + attrs = { + 'kernel_shape': k_size, + 'strides': node.attr('strides'), + 'pads': node.attr('paddings') + node.attr('paddings'), + } + if node.attr('ceil_mode') and graph.opset_version < 10: + raise Exception( + "Cannot convert pool with ceil_model == True to ONNX Opset version < 10" + ) + elif graph.opset_version >= 10: + attrs['ceil_mode'] = node.attr('ceil_mode') + + if node.attr('pooling_type') == 'avg': + attrs['count_include_pad'] = not node.attr('exclusive') + onnx_node = graph.make_node( + cls.pool_type[node.attr('pooling_type')][0], + inputs=node.input('X'), + outputs=node.output('Out'), + attrs=attrs) + + +@op_mapper('elu') +class ELU(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + node = graph.make_node( + 'Elu', + inputs=node.input('X'), + outputs=node.output('Out'), + alpha=node.attr('alpha')) + + +@op_mapper('softsign') +class SoftSign(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Softsign', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('hard_shrink') +class Hardshrink(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + node = graph.make_node( + 'Shrink', + inputs=node.input('X'), + outputs=node.output('Out'), + lambd=node.attr('threshold')) + + +@op_mapper('logsigmoid') +class LogSigmoid(): + support_opset_version_range = (1, 12) + + @classmethod + def opset_1(cls, graph, node, **kw): + sigmoid_node = graph.make_node('Sigmoid', inputs=node.input('X')) + graph.make_node('Log', inputs=sigmoid_node, outputs=node.output('Out')) + + +@op_mapper('norm') +class Norm(): + support_opset_version_range = (1, 12) + + @classmethod + def opset_1(cls, graph, node, **kw): + node = graph.make_node( + 'LpNormalization', + inputs=node.input('X'), + outputs=node.output('Out'), + axis=node.attr('axis')) + + +@op_mapper('softshrink') +class SoftShrink(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + graph.make_node( + 'Shrink', + inputs=node.input('X'), + bias=node.attr('lambda'), + lambd=node.attr('lambda'), + outputs=node.output('Out')) + + +@op_mapper('tanh_shrink') +class TanhShrink(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + tanh_node = graph.make_node( + 'Tanh', + inputs=node.input('X', 0), ) + graph.make_node( + 'Sub', + inputs=[node.input('X', 0), tanh_node], + outputs=node.output('Out')) + + +@op_mapper('log_softmax') +class LogSoftmax(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + axis = node.attr('axis') + shape = node.output_shape('Out', 0) + if axis is None: + axis = -1 + if axis < 0: + axis += len(shape) + if axis == len(shape) - 1: + node = graph.make_node( + 'LogSoftmax', + inputs=node.input('X'), + outputs=node.output('Out'), + attrs={'axis': axis}) + else: + perm = [i for i in range(len(shape))] + perm[-1] = axis + perm[axis] = len(shape) - 1 + transpose_node = graph.make_node( + 'Transpose', inputs=node.input('X'), attrs={'perm': perm}) + softmax_node = graph.make_node( + 'LogSoftmax', inputs=[transpose_node], axis=-1) + transpose_node1 = graph.make_node( + 'Transpose', + inputs=[softmax_node], + outputs=node.output('Out'), + attrs={'perm': perm}) + + @classmethod + def opset_13(cls, graph, node, **kw): + graph.make_node( + 'LogSoftmax', + inputs=node.input('X'), + axis=node.attr('axis'), + outputs=node.output('Out')) + + +@op_mapper('layer_norm') +class LayerNorm(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + ipt = node.input('X', 0) + ipt_dims = len(node.input_shape('X', 0)) + normalized_shape = node.attr('begin_norm_axis') + axes = None + if isinstance(normalized_shape, collections.Iterable): + axes = [-i for i in range(len(normalized_shape), 0, -1)] + else: + axes = [i for i in range(normalized_shape, ipt_dims)] + dtype = node.block.vars[node.input('X', 0)].dtype + dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[dtype] + epsilon = graph.make_node( + 'Constant', dtype=dtype, value=node.attr('epsilon')) + two = graph.make_node('Constant', dtype=dtype, value=2.0) + mean = graph.make_node("ReduceMean", inputs=[ipt], axes=axes) + numerator = graph.make_node("Sub", inputs=[ipt, mean]) + pow_num = graph.make_node("Pow", inputs=[numerator, two]) + variance = graph.make_node("ReduceMean", inputs=[pow_num], axes=axes) + add_eps = graph.make_node("Add", inputs=[variance, epsilon]) + denominator = graph.make_node("Sqrt", inputs=[add_eps]) + + ipt_shape = graph.make_node("Shape", inputs=[ipt]) + weight_shape = mapper_helper.slice_helper( + graph, ipt_shape, [0], [ipt_dims - len(axes)], [ipt_dims]) + if 'Bias' in node.inputs and 'Scale' in node.inputs and len( + node.input('Scale')) > 0 and len(node.input('Bias')) > 0: + if normalized_shape == ipt_dims - 1: + shape_const = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[-1]) + scale = graph.make_node( + "Reshape", inputs=[node.input('Scale', 0), shape_const]) + bias = graph.make_node( + "Reshape", inputs=[node.input('Bias', 0), shape_const]) + else: + scale = graph.make_node( + "Reshape", inputs=[node.input('Scale', 0), weight_shape]) + bias = graph.make_node( + "Reshape", inputs=[node.input('Bias', 0), weight_shape]) + layer_norm = graph.make_node("Div", inputs=[numerator, denominator]) + layer_norm = graph.make_node("Mul", inputs=[layer_norm, scale]) + graph.make_node( + "Add", inputs=[layer_norm, bias], outputs=node.output('Y')) + elif 'Bias' in node.inputs and len(node.input('Bias')) > 0: + if normalized_shape == ipt_dims - 1: + shape_const = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[-1]) + bias = graph.make_node( + "Reshape", inputs=[node.input('Bias', 0), shape_const]) + else: + bias = graph.make_node( + "Reshape", inputs=[node.input('Bias', 0), weight_shape]) + layer_norm = graph.make_node("Div", inputs=[numerator, denominator]) + graph.make_node( + "Add", inputs=[layer_norm, bias], outputs=node.output('Y')) + elif 'Scale' in node.inputs and len(node.input('Scale')) > 0: + if normalized_shape == ipt_dims - 1: + shape_const = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[-1]) + scale = graph.make_node( + "Reshape", inputs=[node.input('Scale', 0), shape_const]) + else: + scale = graph.make_node( + "Reshape", inputs=[node.input('Scale', 0), weight_shape]) + layer_norm = graph.make_node("Div", inputs=[numerator, denominator]) + graph.make_node( + "Mul", inputs=[layer_norm, scale], outputs=node.output('Y')) + else: + layer_norm = graph.make_node( + "Div", + inputs=[numerator, denominator], + outputs=node.output('Y')) + + +@op_mapper('batch_norm') +class BatchNorm(): + support_opset_version_range = (7, 15) + + @classmethod + def make_attrs_and_inputs(cls, graph, node, **kw): + onnx_attr = { + 'epsilon': node.attr('epsilon'), + 'momentum': node.attr('momentum') + } + inputs = node.input('X') + node.input('Scale') + node.input( + 'Bias') + node.input('Mean') + node.input('Variance') + return onnx_attr, inputs + + @classmethod + def opset_9(cls, graph, node, **kw): + onnx_attr, inputs = cls.make_attrs_and_inputs(graph, node, **kw) + onnx_node = graph.make_node( + 'BatchNormalization', + inputs=inputs, + outputs=node.output('Y'), + **onnx_attr) + + @classmethod + def opset_7(cls, graph, node, **kw): + onnx_attr, inputs = cls.make_attrs_and_inputs(graph, node, **kw) + onnx_attr['spatial'] = 1 + onnx_node = graph.make_node( + 'BatchNormalization', + inputs=inputs, + outputs=node.output('Y'), + **onnx_attr) + + +@op_mapper('group_norm') +class GroupNorm(): + support_opset_version_range = (6, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + num_groups = node.attr('groups') + epsilon = node.attr('epsilon') + ipt = node.input('X')[0] + + ipt_shape = node.input_shape('X', 0) + assert len( + ipt_shape) == 4, "Only support 4D-Tensor as input for GroupNorm" + + dtype = node.block.vars[node.input('X', 0)].dtype + dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[dtype] + + shape = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[0, num_groups, -1]) + reshape_input = graph.make_node('Reshape', inputs=[ipt, shape]) + scale_ = graph.make_node( + 'Constant', dtype=dtype, value=[1.0] * num_groups) + bias_ = graph.make_node( + 'Constant', dtype=dtype, value=[0.0] * num_groups) + reshaped_output = graph.make_node( + 'InstanceNormalization', + inputs=[reshape_input, scale_, bias_], + epsilon=epsilon) + origin_shape = graph.make_node('Shape', inputs=[ipt]) + + if len(node.input('Scale')) > 0 and len(node.input('Bias')) > 0: + output = graph.make_node( + 'Reshape', inputs=[reshaped_output, origin_shape]) + unsqueezed_scale = mapper_helper.unsqueeze_helper( + graph, node.input('Scale', 0), [1, 2]) + unsqueezed_bias = mapper_helper.unsqueeze_helper( + graph, node.input('Bias', 0), [1, 2]) + part0 = graph.make_node('Mul', inputs=[output, unsqueezed_scale]) + graph.make_node( + 'Add', + inputs=[part0, unsqueezed_bias], + outputs=node.output('Y')) + else: + output = graph.make_node( + 'Reshape', + inputs=[reshaped_output, origin_shape], + outputs=node.output('Y')) + + +@op_mapper('instance_norm') +class InstanceNorm(): + support_opset_version_range = (6, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + onnx_attr = {'epsilon': node.attr('epsilon'), } + num_groups = node.block.vars[node.input('X')[0]].shape[1] + + dtype = node.block.vars[node.input('X', 0)].dtype + dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[dtype] + + if len(node.input('Scale')) == 0: + scale_ = graph.make_node( + 'Constant', dtype=dtype, value=[1.0] * num_groups) + else: + scale_ = node.input('Scale')[0] + if len(node.input('Bias')) == 0: + bias_ = graph.make_node( + 'Constant', dtype=dtype, value=[0.0] * num_groups) + else: + bias_ = node.input('Bias')[0] + + inputs = node.input('X') + [scale_] + [bias_] + onnx_node = graph.make_node( + 'InstanceNormalization', + inputs=inputs, + outputs=node.output('Y'), + **onnx_attr) + + +@op_mapper('dropout') +class Dropout(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + dropout_mode = node.attr('dropout_implementation') + dropout_prob = node.attr('dropout_prob') + if dropout_mode == 'upscale_in_train': + onnx_node = graph.make_node( + 'Identity', inputs=node.input('X'), outputs=node.output('Out')) + elif dropout_mode == 'downgrade_in_infer': + scale_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.FLOAT, + 'value': 1 - dropout_prob}) + graph.make_node( + "Mul", + inputs=[node.input('X')[0], scale_node], + outputs=node.output('Out')) + else: + raise Exception("Unexpected situation happend") + + +@op_mapper('roi_align') +class RoiAlign(): + support_opset_version_range = (10, 16) + + @classmethod + def opset_10(cls, graph, node, **kw): + if node.attr('aligned') and graph.opset_version < 16: + raise Exception( + 'when aligned is true, onnx opset should be (onnx_opset>= 16)') + rois_shape = graph.make_node('Shape', inputs=[node.input('ROIs', 0)]) + starts = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.INT64, + 'value': [0]}) + ends = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.INT64, + 'value': [1]}) + num_rois = graph.make_node('Slice', inputs=[rois_shape, starts, ends]) + zero = graph.make_node( + 'Constant', dims=[1], dtype=dtypes.ONNX.INT64, value=[0]) + batch_indices = graph.make_node('Expand', inputs=[zero, num_rois]) + node = graph.make_node( + 'RoiAlign', + inputs=[node.input('X', 0), node.input('ROIs', 0), batch_indices], + outputs=node.output('Out'), + mode='avg', + output_height=node.attr('pooled_height'), + output_width=node.attr('pooled_width'), + sampling_ratio=node.attr('sampling_ratio'), + spatial_scale=node.attr('spatial_scale')) + + +@op_mapper('rnn') +class RNN(): + support_opset_version_range = (7, 15) + + @classmethod + def make_param_inputs(cls, graph, node, layer, hidden_size, num_layers): + # weight assign order: + # (F_whi F_whh B_whi B_whh)* layer_num + (F_bias_hi F_bias_hh B_bias_hi B_bias_hi)* layer_num + def reform_weights(g, w, n, intervals): + slices = [ + mapper_helper.slice_helper( + g, w, axes=[1], starts=[x * n], ends=[y * n]) + for x, y in intervals + ] + return g.make_node('Concat', slices, axis=1) + + def transform_weight_with_bias(g, weights, n, intervals): + return [reform_weights(g, w, n, intervals) for w in weights] + + if node.attr('mode') == 'LSTM': + reform_permutation = [(0, 1), (3, 4), (1, 3)] + elif node.attr('mode') == 'GRU': + reform_permutation = [(1, 2), (0, 1), (2, 3)] + bidirect_len = 4 if node.attr('is_bidirec') else 2 + all_layer_param_len = len(node.input('WeightList')) + weight_list = node.input('WeightList')[:all_layer_param_len // 2] + bias_list = node.input('WeightList')[all_layer_param_len // 2:] + single_layer_param_len = all_layer_param_len // num_layers + + unsqueeze_weights = [] + layer_weight_list = weight_list[layer * bidirect_len:layer * + bidirect_len + bidirect_len] + layer_bias_list = bias_list[layer * bidirect_len:layer * bidirect_len + + bidirect_len] + param_list = layer_weight_list + layer_bias_list + param_list_len = len(param_list) + for i in range(param_list_len): + weight = mapper_helper.unsqueeze_helper(graph, param_list[i], [0]) + unsqueeze_weights.append(weight) + + input_weights = unsqueeze_weights[0:param_list_len // 2:2] + hidden_weights = unsqueeze_weights[1:param_list_len // 2:2] + + input_weight = graph.make_node('Concat', inputs=input_weights, axis=0) + hidden_weight = graph.make_node('Concat', inputs=hidden_weights, axis=0) + input_bias = unsqueeze_weights[param_list_len // 2:param_list_len:2] + hidden_bias = unsqueeze_weights[param_list_len // 2 + 1:param_list_len: + 2] + + input_bias = graph.make_node('Concat', inputs=input_bias, axis=0) + hidden_bias = graph.make_node('Concat', inputs=hidden_bias, axis=0) + input_weight, hidden_weight, input_bias, hidden_bias = transform_weight_with_bias( + graph, [input_weight, hidden_weight, input_bias, hidden_bias], + hidden_size, reform_permutation) + bias = graph.make_node( + 'Concat', inputs=[input_bias, hidden_bias], axis=1) + return [input_weight, hidden_weight, bias, ''] + + @classmethod + def make_init_param_inputs(cls, graph, node, layer): + if node.attr('mode') == 'LSTM': + all_init_h, all_init_c = node.input('PreState') + bidirect_len = 2 if node.attr('is_bidirec') else 1 + init_h = mapper_helper.slice_helper( + graph, all_init_h, [0], [layer * bidirect_len], + [layer * bidirect_len + bidirect_len]) + init_c = mapper_helper.slice_helper( + graph, all_init_c, [0], [layer * bidirect_len], + [layer * bidirect_len + bidirect_len]) + return [init_h, init_c] + elif node.attr('mode') == 'GRU': + all_init_h = node.input('PreState', 0) + bidirect_len = 2 if node.attr('is_bidirec') else 1 + init_h = mapper_helper.slice_helper( + graph, all_init_h, [0], [layer * bidirect_len], + [layer * bidirect_len + bidirect_len]) + return [init_h] + + @classmethod + def opset_7(cls, graph, node, **kw): + mode = node.attr('mode') + hidden_size = node.attr('hidden_size') + num_layers = node.attr('num_layers') + prev_output = node.input('Input', 0) + if node.attr('mode') == 'LSTM': + for layer in range(num_layers): + param_inputs = cls.make_param_inputs(graph, node, layer, + hidden_size, num_layers) + init_param_inputs = cls.make_init_param_inputs(graph, node, + layer) + if layer + 1 < num_layers: + rnn_outputs = 3 + output_y = None + else: + rnn_outputs = [1] + node.output('State') + output_y = node.output('Out') + prev_output, h_out, c_out = graph.make_node( + node.attr('mode'), + inputs=[prev_output] + param_inputs + init_param_inputs, + outputs=rnn_outputs, + direction='bidirectional' + if node.attr('is_bidirec') else 'forward', + hidden_size=node.attr('hidden_size')) + prev_output = graph.make_node( + 'Transpose', inputs=[prev_output], perm=[0, 2, 1, 3]) + + prev_shape = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[0, 0, -1]) + prev_output = graph.make_node( + 'Reshape', + inputs=[prev_output, prev_shape], + outputs=output_y) + elif node.attr('mode') == 'GRU': + for layer in range(num_layers): + param_inputs = cls.make_param_inputs(graph, node, layer, + hidden_size, num_layers) + init_param_inputs = cls.make_init_param_inputs(graph, node, + layer) + if layer + 1 < num_layers: + rnn_outputs = 2 + output_y = None + else: + rnn_outputs = [1] + node.output('State') + output_y = node.output('Out') + attrs = { + 'direction': 'bidirectional' + if node.attr('is_bidirec') else 'forward', + 'hidden_size': node.attr('hidden_size'), + 'linear_before_reset': 1, + } + prev_output, h_out = graph.make_node( + node.attr('mode'), + inputs=[prev_output] + param_inputs + init_param_inputs, + outputs=rnn_outputs, + attrs=attrs) + prev_output = graph.make_node( + 'Transpose', inputs=[prev_output], perm=[0, 2, 1, 3]) + prev_shape = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[0, 0, -1]) + prev_output = graph.make_node( + 'Reshape', + inputs=[prev_output, prev_shape], + outputs=output_y) + + +@op_mapper('thresholded_relu') +class ThresholdedRelu(): + support_opset_version_range = (10, 15) + + @classmethod + def opset_10(cls, graph, node, **kw): + x_dtype = node.input_dtype('X', 0) + if x_dtype != paddle.float32: + x = graph.make_node( + 'Cast', inputs=node.input('X'), to=dtypes.ONNX.FLOAT) + threshholdedrelu_node = graph.make_node( + 'ThresholdedRelu', inputs=[x], alpha=node.attr('threshold')) + graph.make_node( + 'Cast', + inputs=[threshholdedrelu_node], + outputs=node.output('Out'), + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype]) + else: + graph.make_node( + 'ThresholdedRelu', + inputs=node.input('X'), + alpha=node.attr('threshold'), + outputs=node.output('Out')) diff --git a/paddle2onnx/legacy/op_mapper/op_mapper.py b/paddle2onnx/legacy/op_mapper/op_mapper.py new file mode 100755 index 000000000..beff194ae --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/op_mapper.py @@ -0,0 +1,305 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import inspect +import six +import numpy as np +import paddle +from paddle import fluid +from paddle.fluid import layers + +from paddle2onnx.legacy.graph import graph_helper, PaddleGraph +from paddle2onnx.utils import logging +from paddle2onnx.legacy.constant.op_mapping_status import * + + +REGISTER_CUSTOM_PADDLE_OP = {} + + +def get_max_support_version(versions, opset_version): + max_version = -1 + for vs in sorted(versions): + if vs <= opset_version: + max_version = vs + return max_version + + +def register_op_mapper(paddle_op, mapper_obj): + paddle_op_list = [] + + if isinstance(paddle_op, six.string_types): + paddle_op_list.append(paddle_op) + elif isinstance(paddle_op, list): + paddle_op_list = paddle_op + else: + raise ValueError('paddle_op must be List or string, but got type {}.'. + format(type(paddle_op))) + + if not isinstance(mapper_obj, six.class_types): + raise ValueError('mapper_obj must be Class, but got type {}.'.format( + type(mapper_obj))) + + valid_register_func = 0 + for k, v in inspect.getmembers(mapper_obj, inspect.ismethod): + if k.startswith("opset_"): + version = int(k.replace("opset_", "")) + if version > 13 or version < 1: + raise Exception( + 'the specific method of operator mapper must be named opset_[number](1<=number<=13), such as opset_9, but got {}.'. + format(k)) + valid_register_func += 1 + + if valid_register_func == 0: + raise Exception( + 'the specific method of operator mapper must be classmethod, which named opset_[number](1<=number<=13), such as opset_9, but none achieved.' + ) + + mapper = OpMapper(paddle_op_list) + mapper(mapper_obj) + + +class OpMapper(object): + OPSETS = {} + REGISTER_CUSTOM_PADDLE_OP = {} + + def __init__(self, paddle_op, **kwargs): + if not isinstance(paddle_op, list): + paddle_op = [paddle_op] + self.paddle_op = paddle_op + self.kwargs = kwargs + + def __call__(self, cls): + for k, v in inspect.getmembers(cls, inspect.ismethod): + if k.startswith("opset_"): + version = int(k.replace("opset_", "")) + for op in self.paddle_op: + if op not in OpMapper.OPSETS: + OpMapper.OPSETS[op] = {} + opset_dict = OpMapper.OPSETS[op] + opset_dict[version] = (v, self.kwargs) + + @staticmethod + def mapping(graph, node, operator_export_type="ONNX"): + try: + if node.type in OpMapper.REGISTER_CUSTOM_PADDLE_OP: + if operator_export_type in ["PaddleFallback"]: + opsets = OpMapper.OPSETS[node.type] + versions = list(opsets.keys()) + convert_version = get_max_support_version( + versions, graph.opset_version) + mapper_func, kw = opsets[convert_version] + mapper_func(graph, node, **kw) + else: + custom_paddle_op = OpMapper.REGISTER_CUSTOM_PADDLE_OP[ + node.type](node) + custom_paddle_graph, output_results = custom_paddle_op.get_paddle_graph( + ) + OpMapper.check_support_status(custom_paddle_graph.node_map, + graph.opset_version) + graph.build_op_nodes(custom_paddle_graph.node_map) + + node_output_results = dict() + for k in node.output_names: + custom_outs = output_results[k] + node_outs = node.output(k) + assert len(custom_outs) == len( + node_outs + ), "Length of custom implementation operator's outputs is not same with the length of original operator's outputs." + for i in range(len(custom_outs)): + graph.make_node( + "Identity", + inputs=[custom_outs[i]], + outputs=[node_outs[i]]) + else: + opsets = OpMapper.OPSETS[node.type] + versions = list(opsets.keys()) + convert_version = get_max_support_version(versions, + graph.opset_version) + mapper_func, kw = opsets[convert_version] + mapper_func(graph, node, **kw) + except Exception as e: + raise Exception( + "Error happened when mapping node ['{}'] to onnx, which op_type is '{}' with inputs: {} and outputs: {}, specific error: ". + format(node.layer_name, node.type, node.inputs, + node.outputs) + str(e)) + + @staticmethod + def get_recommend_opset_version(node_map, opset_version): + recommend_opset_version = OpMapper.check_support_status( + node_map, opset_version, True) + for name, node in list(node_map.items()): + if node.type in OpMapper.REGISTER_CUSTOM_PADDLE_OP: #如果是customçš„op,获å–custom的推èop + custom_paddle_op = OpMapper.REGISTER_CUSTOM_PADDLE_OP[ + node.type](node) + custom_paddle_graph, output_results = custom_paddle_op.get_paddle_graph( + ) + custom_recommend_opset_version = OpMapper.check_support_status( + custom_paddle_graph.node_map, opset_version, True) + recommend_opset_version = max(recommend_opset_version, + custom_recommend_opset_version) + if opset_version != recommend_opset_version: + warning_info = "\n======================\n" + warning_info += "\nFor a successful conversion, set the recommended opset version : {}\n".format( + recommend_opset_version) + warning_info += "\n======================\n" + logging.warning(warning_info) + return recommend_opset_version + + @staticmethod + def check_support_status(node_map, opset_version, for_check=False): + op_mapping_status = { + OP_MAPPING_NO_REGISTER: [], + OP_MAPPING_NO_VERSION: [], + } + for name, node in list(node_map.items()): + if node.type in OpMapper.REGISTER_CUSTOM_PADDLE_OP: + continue + if node.type not in OpMapper.OPSETS: + op_mapping_status[OP_MAPPING_NO_REGISTER].append(node) + else: + opsets = OpMapper.OPSETS[node.type] + versions = list(opsets.keys()) + convert_version = get_max_support_version(versions, + opset_version) + if convert_version == -1: + op_mapping_status[OP_MAPPING_NO_VERSION].append(node) + + if len(op_mapping_status[OP_MAPPING_NO_REGISTER]) > 0: + unsupported_op_types = set([ + node.type for node in op_mapping_status[OP_MAPPING_NO_REGISTER] + ]) + error_info = "\nThere's {} ops are not supported yet\n".format( + len(unsupported_op_types)) + for op_type in unsupported_op_types: + error_info += "=========== {} ===========\n".format(op_type) + raise NotImplementedError(error_info) + + if len(op_mapping_status[OP_MAPPING_NO_VERSION]) > 0: + unsupported_op_types = set([ + node.type for node in op_mapping_status[OP_MAPPING_NO_VERSION] + ]) + + recommend_opset_version = -1 + for op_type in unsupported_op_types: + opsets = OpMapper.OPSETS[op_type] + if min(opsets.keys()) > recommend_opset_version: + recommend_opset_version = min(opsets.keys()) + warning_info = "\nThere are {} ops that are not supported in opset version {}, please set opset version >= {}.\n".format( + len(unsupported_op_types), opset_version, + recommend_opset_version) + + for op_type in unsupported_op_types: + warning_info += "=========== {} ===========\n".format(op_type) + if for_check: + logging.warning(warning_info) + return recommend_opset_version + raise NotImplementedError(warning_info) + return opset_version + + +class CustomPaddleOp(object): + CREATE_TIMES = {} + + def __init__(self, node): + self.main_program = paddle.static.Program() + self.startup_program = paddle.static.Program() + self.inputs = self.create_place_holder(node) + self.node = node + + def generate_scope_name(self, node): + if node.type in CustomPaddleOp.CREATE_TIMES: + CustomPaddleOp.CREATE_TIMES[node.type] += 1 + else: + CustomPaddleOp.CREATE_TIMES[node.type] = 1 + scope_prefix = node.type + str(CustomPaddleOp.CREATE_TIMES[node.type] - + 1) + '_' + return scope_prefix + + def create_place_holder(self, node): + place_holders = {} + with paddle.static.program_guard(self.main_program, + self.startup_program): + for arg_name, idxs in node.inputs.items(): + place_holders[arg_name] = [] + for idx in range(len(idxs)): + shape = node.input_shape(arg_name, idx) + dtype = node.input_dtype(arg_name, idx) + name = node.input(arg_name, idx) + data = paddle.static.data( + name=name, shape=shape, dtype=dtype) + place_holders[arg_name].append(data) + return place_holders + + def input(self, name, idx=None): + if name not in self.inputs: + return None + if idx is None: + return self.inputs[name] + if len(self.inputs[name]) <= idx: + return None + return self.inputs[name][idx] + + def get_paddle_graph(self): + scope_prefix = self.generate_scope_name(self.node) + scope = paddle.static.Scope() + with paddle.static.scope_guard(scope): + with paddle.static.program_guard(self.main_program, + self.startup_program): + with paddle.utils.unique_name.guard(scope_prefix): + res = self.forward() + feed_var_names = [ + var.name for vars in self.inputs.values() + for var in vars + ] + fetch_vars = [var for vars in res.values() for var in vars] + inference_program = graph_helper.get_program( + self.main_program, feed_var_names, fetch_vars) + paddle_graph = PaddleGraph.build_from_program( + inference_program, + feed_var_names, + fetch_vars, + scope=scope) + + output_results = dict() + for arg_name, outs in res.items(): + output_results[arg_name] = [out.name for out in outs] + return paddle_graph, output_results + + +def register_custom_paddle_op(paddle_op, custom_op): + paddle_op_list = [] + + if isinstance(paddle_op, six.string_types): + paddle_op_list.append(paddle_op) + elif isinstance(paddle_op, list): + paddle_op_list = paddle_op + else: + raise ValueError("paddle_op' must be List or string, but got type {}.". + format(type(paddle_op))) + + if not isinstance(custom_op, six.class_types): + raise ValueError("'custom_op' must be Class, but got type {}.".format( + type(custom_op))) + + forward = getattr(custom_op, "forward", None) + if not callable(forward): + raise Exception( + "Custom paddle operators must be implemented in function named 'forward'." + ) + + for op in paddle_op_list: + if op not in OpMapper.REGISTER_CUSTOM_PADDLE_OP: + OpMapper.REGISTER_CUSTOM_PADDLE_OP[op] = custom_op diff --git a/paddle2onnx/legacy/op_mapper/search.py b/paddle2onnx/legacy/op_mapper/search.py new file mode 100755 index 000000000..38848b5eb --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/search.py @@ -0,0 +1,233 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper + + +@op_mapper('where_index') +class WhereIndex(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + nonzero_node = graph.make_node( + 'NonZero', inputs=node.input('Condition')) + graph.make_node( + 'Transpose', + inputs=[nonzero_node], + outputs=node.output('Out'), + perm=[1, 0]) + + +@op_mapper('top_k_v2') +class TopKV2(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + sorted = node.attr('sorted') + # for paddle, In gpu device, it always return the sorted value + # if not sorted: + # sorted = True + if 'K' in node.inputs and len(node.input('K')) > 0: + k_node = node.input('K', 0) + k_node_dtype = node.input_dtype('K', 0) + if dtypes.DTYPE_PADDLE_STR_MAP[k_node_dtype] != 'int64': + k_node = graph.make_node( + 'Cast', inputs=[k_node], to=dtypes.ONNX.INT64) + graph.make_node( + 'TopK', + inputs=[node.input('X', 0), k_node], + outputs=[node.output('Out', 0), node.output('Indices', 0)], + largest=node.attr('largest'), + sorted=sorted, + axis=node.attr('axis')) + else: + k = node.attr('k') + k_node = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.INT64, + 'value': [k]}) + graph.make_node( + 'TopK', + inputs=[node.input('X', 0), k_node], + outputs=[node.output('Out', 0), node.output('Indices', 0)], + largest=node.attr('largest'), + sorted=sorted, + axis=node.attr('axis')) + + +@op_mapper('top_k') +class TopK(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + if 'K' in node.inputs and len(node.input('K')) > 0: + k_node = node.input('K', 0) + k_node_dtype = node.input_dtype('K', 0) + if dtypes.DTYPE_PADDLE_STR_MAP[k_node_dtype] != 'int64': + k_node = graph.make_node( + 'Cast', inputs=[k_node], to=dtypes.ONNX.INT64) + graph.make_node( + 'TopK', + inputs=[node.input('X', 0), k_node], + outputs=[node.output('Out', 0), node.output('Indices', 0)]) + else: + k = node.attr('k') + k_node = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.INT64, + 'value': [k]}) + graph.make_node( + 'TopK', + inputs=[node.input('X', 0), k_node], + outputs=[node.output('Out', 0), node.output('Indices', 0)]) + + +@op_mapper('argsort') +class ArgSort(): + support_opset_version_range = (6, 15) + + @classmethod + def opset_10(cls, graph, node, **kw): + shape = graph.make_node('Shape', inputs=node.input('X', 0)) + from paddle2onnx.legacy.op_mapper import mapper_helper + axis = node.attr('axis') + if axis < 0: + axis = axis + len(node.input_shape('X', 0)) + dim_size = mapper_helper.slice_helper( + graph, shape, axes=[0], starts=[axis], ends=[axis + 1]) + if graph.opset_version > 10: + if not node.attr('descending'): + graph.make_node( + 'TopK', + inputs=[node.input('X', 0), dim_size], + outputs=[node.output('Out', 0), node.output('Indices', 0)], + axis=node.attr('axis'), + largest=0) + else: + graph.make_node( + 'TopK', + inputs=[node.input('X', 0), dim_size], + outputs=[node.output('Out', 0), node.output('Indices', 0)], + axis=node.attr('axis'), + largest=1) + else: + if not node.attr('descending'): + raise Exception( + "descending=False only support opset version>=11.") + else: + graph.make_node( + 'TopK', + inputs=[node.input('X', 0), dim_size], + outputs=[node.output('Out', 0), node.output('Indices', 0)], + axis=node.attr('axis')) + + @classmethod + def opset_6(cls, graph, node, **kw): + shape = node.input_shape('X', 0) + k = shape[node.attr('axis')] + assert k > 0, "while input shape is dynamic, it only support opset version>=10." + input_dtype = node.input_dtype('X', 0) + dtype = dtypes.DTYPE_PADDLE_STR_MAP[input_dtype] + inputs = node.input('X', 0) + if dtype in ["int32", "int64"]: + inputs = graph.make_node( + 'Cast', inputs=inputs, to=dtypes.ONNX.FLOAT) + if not node.attr('descending'): + raise Exception("descending=False only support opset version>=11.") + else: + output_node = node.output('Out', 0) + graph.make_node( + 'TopK', + inputs=[inputs], + outputs=[output_node, node.output('Indices', 0)], + axis=node.attr('axis'), + k=k) + if dtype in ["int32", "int64"]: + graph.make_node( + 'Cast', + inputs=[output_node], + to=dtypes.DTYPE_PADDLE_ONNX_MAP[input_dtype], + outputs=[output_node]) + + +@op_mapper('index_select') +class IndexSelect(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Gather', + inputs=[node.input('X', 0), node.input('Index', 0)], + axis=node.attr('dim'), + outputs=node.output('Out')) + + +@op_mapper('unique') +class Unique(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + if node.attr('axis') == []: + graph.make_node( + 'Unique', + inputs=node.input('X'), + outputs=[ + node.output('Out', 0), node.output('Indices', 0), + node.output('Index', 0), node.output('Counts', 0) + ]) + else: + graph.make_node( + 'Unique', + inputs=node.input('X'), + axis=node.attr('axis')[0], + outputs=[ + node.output('Out', 0), node.output('Indices', 0), + node.output('Index', 0), node.output('Counts', 0) + ]) + + +@op_mapper('where') +class Where(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + graph.make_node( + 'Where', + inputs=[ + node.input('Condition', 0), node.input('X', 0), + node.input('Y', 0) + ], + outputs=node.output('Out')) + + +@op_mapper('masked_select') +class MaskSelect(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + index = graph.make_node('NonZero', inputs=node.input('Mask', 0)) + index = graph.make_node('Transpose', inputs=[index], perm=[1, 0]) + graph.make_node( + 'GatherND', + inputs=[node.input('X', 0), index], + outputs=node.output('Y')) diff --git a/paddle2onnx/legacy/op_mapper/sequence/__init__.py b/paddle2onnx/legacy/op_mapper/sequence/__init__.py new file mode 100644 index 000000000..847ddc47a --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/sequence/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/paddle2onnx/legacy/op_mapper/sequence/im2sequence.py b/paddle2onnx/legacy/op_mapper/sequence/im2sequence.py new file mode 100644 index 000000000..accd6f13d --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/sequence/im2sequence.py @@ -0,0 +1,78 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.utils import logging +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper + + +@op_mapper('im2sequence') +class Im2Sequence(): + support_opset_verison_range = (1, 12) + + @classmethod + def opset_1(cls, graph, node, **kw): + n, c, h, w = node.input_shape('X', 0) + assert h > 0 and w > 0, "Only supported fixed input shape for im2sequence operator." + stride_h, stride_w = node.attr('strides') + paddings = node.attr('paddings') + assert node.attr( + 'out_stride' + ) != 1, "Only out_stride==1 is supported for im2sequence operator." + h = h + paddings[0] + paddings[1] + w = w + paddings[1] + paddings[2] + kernel_h, kernel_w = node.attr('kernels') + out_h = 1 + (h - kernel_h + stride_h - 1) // stride_h + out_w = 1 + (w - kernel_w + stride_w - 1) // stride_w + h_steps = list() + for i in range(out_h): + h_steps.append([i * stride_h, i * stride_h + kernel_h]) + w_steps = list() + for i in range(out_w): + w_steps.append([i * stride_w, i * stride_w + kernel_w]) + + slice_node_blocks = list() + for i in range(out_h): + for j in range(out_w): + starts_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + dims=[4], + value=[0, 0, h_steps[i][0], w_steps[j][0]]) + ends_node = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + dims=[4], + value=[999999, 999999, h_steps[i][1], w_steps[j][1]]) + nodes.extend([starts_node, ends_node]) + + slice_block_node = graph.make_node( + 'Slice', + inputs=[node.input('X', 0), starts_node, ends_node]) + flatten_block_node = graph.make_node( + "Flatten", inputs=[slice_block_node], axis=0) + nodes.extend([slice_block_node, flatten_block_node]) + concat_block_node = graph.make_node( + "Concat", + inputs=slice_node_blocks, + outputs=node.output('Out'), + axis=0) + logging.info("==========Importance Notice===========") + logging.info( + "Since im2sequence operator is used in your paddlepaddle model, the translated onnx model only support input data with batch_size=1." + ) + logging.info("======================================") diff --git a/paddle2onnx/legacy/op_mapper/tensor.py b/paddle2onnx/legacy/op_mapper/tensor.py new file mode 100755 index 000000000..081cbbfd2 --- /dev/null +++ b/paddle2onnx/legacy/op_mapper/tensor.py @@ -0,0 +1,2155 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import numpy as np +from paddle2onnx.legacy.constant import dtypes +from paddle2onnx.legacy.op_mapper import OpMapper as op_mapper +from paddle2onnx.legacy.op_mapper import mapper_helper +import copy +import six +import paddle + + +@op_mapper('set_value') +class SetValue(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + axes = node.attr('axes') + steps, is_steps_tensor = mapper_helper.get_node_attr_value( + graph, + node, + 'steps', + 'StepsTensor', + 'StepsTensorList', + return_list=True, + dtype=dtypes.ONNX.INT64) + + starts, is_starts_tensor = mapper_helper.get_node_attr_value( + graph, + node, + 'starts', + 'StartsTensor', + 'StartsTensorList', + return_list=True, + dtype=dtypes.ONNX.INT64) + + ends, is_ends_tensor = mapper_helper.get_node_attr_value( + graph, + node, + 'ends', + 'EndsTensor', + 'EndsTensorList', + return_list=True, + dtype=dtypes.ONNX.INT64) + + contain_step_bigger_than_1 = False + for i in steps: + contain_step_bigger_than_1 = i > 1 + if not isinstance(i, int) or contain_step_bigger_than_1: + contain_step_bigger_than_1 = True + break + condition = is_steps_tensor or is_starts_tensor or is_ends_tensor or contain_step_bigger_than_1 + assert not condition, "Currently not supported convert now" + + input_x_shape = node.input_shape('Input', 0) + onnx_paddings = [0] * len(input_x_shape) * 2 + value_shape = list(copy.copy(node.input_shape('Input', 0))) + for i in range(len(axes)): + axis = axes[i] + if starts[i] < 0: + starts[i] = starts[i] + input_x_shape[i] + if ends[i] < 0: + ends[i] = ends[i] + input_x_shape[i] + onnx_paddings[axis] = starts[i] + value_shape[axis] = value_shape[axis] - onnx_paddings[axis] + onnx_paddings[axis + len(input_x_shape)] = input_x_shape[ + axis] - ends[i] + if onnx_paddings[axis + len(input_x_shape)] < 0: + onnx_paddings[axis + len(input_x_shape)] = 0 + value_shape[axis] = value_shape[axis] - onnx_paddings[axis + len( + input_x_shape)] + dtype_paddle = node.input_dtype('Input', 0) + dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[dtype_paddle] + value_tensor = None + shape = node.attr('shape') + if len(shape) > 0: + dtypes_list = [ + 'fp32_values', 'fp64_values', 'int32_values', 'int64_values', + 'bool_values' + ] + for i in range(len(dtypes_list)): + value = node.attr(dtypes_list[i]) + if value is not None: + break + if len(value) == 1: + total_nums = 1 + for i in value_shape: + total_nums *= i + value = value * total_nums + value_tensor = mapper_helper.constant_helper( + graph, dtype_paddle, value, shape=value_shape) + else: + value_tensor = mapper_helper.constant_helper( + graph, dtype_paddle, value, shape=shape) + else: + value_tensor = node.input('ValueTensor', 0) + MAX_FLOAT32 = 3.402823466E+38 + max_node = graph.make_node( + 'Constant', attrs={'dtype': dtype, + 'value': [MAX_FLOAT32]}) + pads_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': onnx_paddings}) + value_pad_node = graph.make_node( + 'Pad', inputs=[value_tensor, pads_node, max_node]) + + condition_dtype = graph.make_node( + "Equal", inputs=[value_pad_node, max_node]) + condition_node = graph.make_node( + 'Cast', inputs=[condition_dtype], to=dtypes.ONNX.BOOL) + graph.make_node( + "Where", + inputs=[condition_node, node.input('Input', 0), value_pad_node], + outputs=node.output('Out')) + + +@op_mapper('one_hot_v2') +class OneHotV2(): + support_opset_version_range = (9, ) + + @classmethod + def opset_9(cls, graph, node, **kw): + allow_out_of_range = node.attr('allow_out_of_range') + assert not allow_out_of_range, "allow_out_of_range can not be true in one_hot_v2." + in_dtype_paddle = node.input_dtype('X', 0) + in_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[in_dtype_paddle] + out_dtype = node.output_dtype('Out', 0) + out_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[out_dtype] + inputs = node.input('X', 0) + if in_dtype_paddle == paddle.int32: + inputs = graph.make_node( + 'Cast', inputs=[inputs], to=dtypes.ONNX.INT64) + in_dtype = dtypes.ONNX.INT64 + value_node = graph.make_node('Constant', dtype=out_dtype, value=[0, 1]) + depth = node.attr('depth') + if node.input('depth_tensor', 0) is not None: + depth_node = node.input('depth_tensor', 0) + else: + depth_node = graph.make_node( + 'Constant', dtype=in_dtype, value=[depth]) + reshaped_input_node = graph.make_node( + 'OneHot', + inputs=[inputs, depth_node, value_node], + outputs=node.output('Out')) + + +@op_mapper('concat') +class Concat(): + support_opset_version_range = (4, 15) + + @classmethod + def opset_4(cls, graph, node, **kw): + inputs = node.input('X') + + input_dtypes = [node.input_dtype('X', i) for i in range(len(inputs))] + inputs = mapper_helper.dtype_alignment(graph, inputs, input_dtypes) + node_axis = node.input('AxisTensor') + if node_axis is not None and len(node_axis) > 0: + axis_node = node.input('AxisTensor')[0] + try: + axis = mapper_helper.get_value_from_parameters(graph, + axis_node)[0] + except Exception as e: + raise Exception( + "Currently does not support the axis parameter as input tensor" + + str(e)) + else: + axis = node.attr('axis') + if axis < 0: + axis = axis + len(node.input_shape('X', 0)) + + node = graph.make_node( + 'Concat', inputs=inputs, outputs=node.output('Out'), axis=axis) + + +@op_mapper('assign') +class Assign(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + inputs = node.input('X') + graph.make_node('Identity', inputs=inputs, outputs=node.output('Out')) + + +@op_mapper('lod_reset') +class LodReset(): + support_opset_version_range = (1, ) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Identity', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('eye') +class Eye(): + support_opset_version_range = (9, ) + + @classmethod + def opset_9(cls, graph, node, **kw): + num_rows = node.attr('num_rows') + num_columns = node.attr('num_columns') + dtype = node.output_dtype('Out', 0) + value = [0] * num_rows * num_columns + value_tensor = mapper_helper.constant_helper( + graph, dtype, value, shape=[num_rows, num_columns]) + graph.make_node( + 'EyeLike', inputs=[value_tensor], outputs=node.output('Out')) + + +@op_mapper('stack') +class Stack(): + support_opset_version_range = (4, 15) + + @classmethod + def opset_4(cls, graph, node, **kw): + inputs = node.input('X') + input_dtypes = [node.input_dtype('X', i) for i in range(len(inputs))] + inputs = mapper_helper.dtype_alignment(graph, inputs, input_dtypes) + axis = node.attr('axis') + + unsqueezed_inputs = list() + for ipt in inputs: + unsqueezed_ipt = mapper_helper.unsqueeze_helper(graph, ipt, [axis]) + unsqueezed_inputs.append(unsqueezed_ipt) + graph.make_node( + 'Concat', + inputs=unsqueezed_inputs, + outputs=node.output('Y'), + axis=axis) + + +@op_mapper('unstack') +class Unstack(): + support_opset_version_range = (2, 15) + + @classmethod + def opset_2(cls, graph, node, **kw): + axis = node.attr('axis') + ndim = node.block.vars[node.input('X')[0]].ndim + axis = axis + ndim if axis < 0 else axis + output_y = mapper_helper.split_helper( + graph, + node.input('X'), + axis=axis, + split=[1] * len(node.output('Y')), + outputs=len(node.output('Y'))) + + if isinstance(output_y, six.string_types): + output_y = [output_y] + + for i in range(len(output_y)): + mapper_helper.squeeze_helper(graph, output_y[i], [axis], + node.output('Y', i)) + + +@op_mapper('expand_as_v2') +class ExpandAsV2(): + support_opset_version_range = (8, 15) + + @classmethod + def opset_8(cls, graph, node, **kw): + target_shape = node.attr('target_shape') + if node.input('target_tensor', 0) is not None: + target_shape = graph.make_node( + 'Shape', inputs=[node.input('target_tensor', 0)]) + elif target_shape is not None: + target_shape = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': target_shape}) + else: + raise Exception( + "Not find attribute: 'target_shape' or tensor 'target_tensor'") + node = graph.make_node( + 'Expand', + inputs=[node.input('X', 0), target_shape], + outputs=node.output('Out')) + + +@op_mapper('expand_v2') +class ExpandV2(): + support_opset_version_range = (8, 15) + + @classmethod + def opset_8(cls, graph, node, **kw): + expand_shape, _ = mapper_helper.get_node_attr_value( + graph, + node, + 'shape', + 'Shape', + 'expand_shapes_tensor', + dtype=dtypes.ONNX.INT64) + + input_shape = node.input_shape('X', 0) + input_shape_node = graph.make_node('Shape', inputs=node.input('X', 0)) + + node_shape = node.attr('shape') + node_shape_tensor = node.input('Shape') + node_shape_tensor_list = node.input('expand_shapes_tensor') + if node_shape_tensor is not None and len(node_shape_tensor) > 0: + diff = node.input_shape('Shape', 0)[0] - len(input_shape) + elif node_shape_tensor_list is not None and \ + len(node_shape_tensor_list) > 0: + diff = len(node_shape_tensor_list) - len(input_shape) + elif node_shape is not None and len(node_shape) > 0: + diff = len(node_shape) - len(input_shape) + expand_shape = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=expand_shape) + + if diff > 0: + one_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': [1] * diff}) + input_shape_node = graph.make_node( + 'Concat', inputs=[one_node, input_shape_node], axis=0) + + if graph.opset_version < 12: + input_shape_node = graph.make_node( + 'Cast', inputs=[input_shape_node], to=dtypes.ONNX.FLOAT) + expand_shape = graph.make_node( + 'Cast', inputs=[expand_shape], to=dtypes.ONNX.FLOAT) + shape = graph.make_node( + 'Max', inputs=[input_shape_node, expand_shape]) + shape = graph.make_node( + 'Cast', inputs=[shape], to=dtypes.ONNX.INT64) + else: + shape = graph.make_node( + 'Max', inputs=[input_shape_node, expand_shape]) + node = graph.make_node( + 'Expand', + inputs=[node.input('X', 0), shape], + outputs=node.output('Out')) + + +@op_mapper('shape') +class Shape(): + support_opset_version_range = (6, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + shape_node = graph.make_node('Shape', inputs=node.input('Input')) + graph.make_node( + 'Cast', + inputs=[shape_node], + outputs=node.output('Out'), + to=dtypes.ONNX.INT32) + + +@op_mapper('size') +class Numel(): + supports_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + size_node = graph.make_node('Size', inputs=node.input('Input')) + mapper_helper.unsqueeze_helper(graph, size_node, [0], + node.output('Out')) + + +@op_mapper('split') +class Split(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + sections = node.attr('sections') + axis = cls.get_axis(graph, node) + if isinstance(sections, list) and len(sections) == 1: + graph.make_node( + 'Identity', inputs=node.input('X'), outputs=node.output('Out')) + else: + if len(sections) > 0: + input_shape = node.block.vars[node.input('X')[0]].shape + section_index = [ + i for i, val in enumerate(sections) if val == -1 + ] + if input_shape[axis] != -1 and len(section_index) == 1: + sections[section_index[0]] = input_shape[axis] - sum( + sections) - 1 + mapper_helper.split_helper( + graph, + node.input('X'), + axis=axis, + split=sections, + outputs=node.output('Out')) + else: + graph.make_node( + 'Split', + inputs=node.input('X'), + outputs=node.output('Out'), + axis=axis) + + @classmethod + def get_axis(cls, graph, node): + if len(node.input('AxisTensor')) > 0: + axis_node = node.input('AxisTensor')[0] + # When axis is tensor, only int32 and int64 are supported + if axis_node not in graph.parameters: + raise Exception( + "Currently does not support the axis parameter as input tensor!" + ) + else: + axis = graph.parameters[axis_node].attribute[0].t.int32_data + if axis is None or len(axis) < 1: + axis = graph.parameters[axis_node].attribute[ + 0].t.int64_data[0] + else: + axis = node.attr('axis') + return axis + + +@op_mapper(['roll']) +class Roll(): + support_opset_version_range = (4, 15) + + @classmethod + def roll(cls, graph, node, input_x, dims, shifts): + for i in range(len(dims)): + if graph.opset_version >= 10 and isinstance(shifts, + six.string_types): + to_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype( + 'ShiftsTensor', 0)] + const_i = graph.make_node('Constant', dtype=to_dtype, value=i) + const_0 = graph.make_node('Constant', dtype=to_dtype, value=0) + shift_node = graph.make_node( + 'Gather', inputs=[shifts, const_i], axis=0) + shift_node = graph.make_node( + "Sub", inputs=[const_0, shift_node]) + shift_node = mapper_helper.unsqueeze_helper(graph, shift_node, + [0]) + elif graph.opset_version < 10 and isinstance(shifts, + six.string_types): + raise Exception( + "shifts of roll is Tensor, please try with higher onnx opset_version>=10." + ) + else: + shift_node = [-shifts[i]] + to_dtype = dtypes.ONNX.INT64 + shapes = [] + shape = mapper_helper.slice_helper( + graph, input_x, [dims[i]], shift_node, [60000], dtype=to_dtype) + shapes.append(shape) + shape = mapper_helper.slice_helper( + graph, input_x, [dims[i]], [0], shift_node, dtype=to_dtype) + shapes.append(shape) + input_x = graph.make_node('Concat', inputs=shapes, axis=dims[i]) + return input_x + + @classmethod + def flatten(cls, graph, node): + dims = len(node.input_shape('X', 0)) + start_axis = 0 + end_axis = dims - 1 + shape_node = graph.make_node('Shape', inputs=node.input('X')) + if end_axis < dims - 1: + slice1 = mapper_helper.slice_helper( + graph, shape_node, axes=[0], starts=[0], ends=[start_axis]) + slice3 = mapper_helper.slice_helper( + graph, shape_node, axes=[0], starts=[end_axis + 1], + ends=[dims]) + slices = [ + slice1, graph.make_node( + 'Constant', value=[-1], dtype=dtypes.ONNX.INT64), slice3 + ] + else: + slice1 = mapper_helper.slice_helper( + graph, shape_node, axes=[0], starts=[0], ends=[start_axis]) + slices = [ + slice1, graph.make_node( + 'Constant', value=[-1], dtype=dtypes.ONNX.INT64) + ] + final_shape = graph.make_node('Concat', inputs=slices, axis=0) + output = graph.make_node( + 'Reshape', inputs=[node.input('X')[0], final_shape]) + return output + + @classmethod + def opset_4(cls, graph, node, **kw): + dims = node.attr('axis') + shifts = node.attr('shifts') + input_x = node.input('X')[0] + input_shape = node.input_shape('X', 0) + shifts_node = node.input('ShiftsTensor') + if len(dims) > 0: + axes = [ + axis + len(input_shape) if axis < 0 else axis + for i, axis in enumerate(dims) + ] + if shifts_node is not None and len(shifts_node) > 0: + shifts = shifts_node[0] + else: + for i in range(0, len(axes)): + if input_shape[axes[i]] > 0: + assert -input_shape[axes[i]] <= shifts[i] <= input_shape[axes[i]], \ + "the value of shifts in axis is less than the value of input_shape in axis." + + input_x = cls.roll(graph, node, input_x, axes, shifts) + graph.make_node( + 'Identity', inputs=[input_x], outputs=node.output('Out')) + else: + if shifts_node is not None and len(shifts_node) > 0: + shifts = shifts_node[0] + input_x = cls.flatten(graph, node) + input_x = cls.roll(graph, node, input_x, [0], shifts) + shape_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': list(input_shape)}) + graph.make_node( + 'Reshape', + inputs=[input_x, shape_node], + outputs=node.output('Out')) + + +@op_mapper(['slice', 'strided_slice']) +class Slice(): + support_opset_version_range = (1, 15) + + @classmethod + def decrease_axis(cls, node): + # tensor[i,:] will decrease rank of origin input, example: + # paddle.slice() will not decrease rank of origin input + # if input shape is [2, 3], input[0, :] will generate output with shape [3], not [1, 3]. + # paddle.slice(input, 0, 1, 0) will generate output with shape [1, 3], not [3]. + + decrease_axis = node.attr('decrease_axis') + if len(decrease_axis) == 0: + return None + if node.output_shape('Out', 0) == [0]: + return decrease_axis + if len(node.input_shape('Input', 0)) > len(node.output_shape('Out', 0)): + return decrease_axis + return None + + @classmethod + def opset_1(cls, graph, node, **kw): + axes = node.attr('axes') + strides, strides_is_tensor = mapper_helper.get_node_attr_value( + graph, node, 'strides', 'StridesTensor', 'StridesTensorList', True) + strides = [1] * len(axes) if strides is None else strides + steps = [i for i, val in enumerate(strides) if val == 1] + assert len(steps) == len(axes), \ + "Slice in onnx(opset<10) not support attribute 'step', Try converting with opset_version >=10" + + starts, start_is_tensor = mapper_helper.get_node_attr_value( + graph, node, 'starts', 'StartsTensor', 'StartsTensorList', True) + ends, end_is_tensor = mapper_helper.get_node_attr_value( + graph, node, 'ends', 'EndsTensor', 'EndsTensorList', True) + + assert not strides_is_tensor and not start_is_tensor and not end_is_tensor, \ + "Slice in onnx(opset<10) not support attribute 'steps','starts' or 'ends' which have tensor value, " \ + "Try converting with opset_version >=10 " + + decrease_axis = cls.decrease_axis(node) + if decrease_axis is None: + graph.make_node( + "Slice", + inputs=[node.input('Input')[0]], + outputs=node.output('Out'), + axes=axes, + starts=starts, + ends=ends) + else: + sliced = graph.make_node( + "Slice", + inputs=[node.input('Input')[0]], + axes=axes, + starts=starts, + ends=ends) + mapper_helper.squeeze_helper(graph, sliced, decrease_axis, + node.output('Out')) + + @classmethod + def opset_10(cls, graph, node, **kw): + axes = node.attr('axes') + strides, _ = mapper_helper.get_node_attr_value( + graph, + node, + 'strides', + 'StridesTensor', + 'StridesTensorList', + dtype=dtypes.ONNX.INT64) + strides = [1] * len(axes) if strides is None else strides + + starts, _ = mapper_helper.get_node_attr_value( + graph, + node, + 'starts', + 'StartsTensor', + 'StartsTensorList', + dtype=dtypes.ONNX.INT64) + ends, _ = mapper_helper.get_node_attr_value( + graph, + node, + 'ends', + 'EndsTensor', + 'EndsTensorList', + dtype=dtypes.ONNX.INT64) + + if isinstance(starts, list): + starts_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': starts}) + else: + starts_node = starts + if isinstance(ends, list): + ends_node = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.INT64, + 'value': ends}) + else: + ends_node = ends + + if isinstance(strides, list): + strides_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': strides}) + else: + strides_node = strides + + steps_node = strides_node + axes_node = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.INT64, + 'value': axes}) + + decrease_axis = cls.decrease_axis(node) + if decrease_axis is None: + sliced = graph.make_node( + "Slice", + inputs=[ + node.input('Input')[0], starts_node, ends_node, axes_node, + steps_node + ], + outputs=node.output('Out')) + else: + sliced = graph.make_node( + "Slice", + inputs=[ + node.input('Input')[0], starts_node, ends_node, axes_node, + steps_node + ]) + mapper_helper.squeeze_helper(graph, sliced, decrease_axis, + node.output('Out')) + + +@op_mapper(['sequence_expand']) +class SequenceExpand(): + support_opset_version_range = () + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Identity', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper(['expand']) +class Expand(): + support_opset_version_range = (6, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + expand_times, _ = mapper_helper.get_node_attr_value( + graph, + node, + 'expand_times', + 'ExpandTimes', + 'expand_times_tensor', + dtype=dtypes.ONNX.INT64) + + if isinstance(expand_times, list): + expand_times = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': expand_times}) + + graph.make_node( + "Tile", + inputs=[node.input('X', 0), expand_times], + outputs=node.output('Out')) + + +@op_mapper(['tile']) +class Tile(): + support_opset_version_range = (6, 15) + + @classmethod + def opset_6(cls, graph, node, **kw): + repeat_times, _ = mapper_helper.get_node_attr_value( + graph, + node, + 'repeat_times', + 'RepeatTimes', + 'repeat_times_tensor', + dtype=dtypes.ONNX.INT64) + + if isinstance(repeat_times, list): + repeat_times = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': repeat_times}) + + graph.make_node( + "Tile", + inputs=[node.input('X', 0), repeat_times], + outputs=node.output('Out')) + + +@op_mapper('range') +class Range(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + start = node.input('Start', 0) + end = node.input('End', 0) + step = node.input('Step', 0) + start_t = mapper_helper.squeeze_helper(graph, start, [0]) + end_t = mapper_helper.squeeze_helper(graph, end, [0]) + step_t = mapper_helper.squeeze_helper(graph, step, [0]) + graph.make_node( + "Range", + inputs=[start_t, end_t, step_t], + outputs=node.output('Out')) + + +@op_mapper('fill_constant') +class Constant(): + support_opset_version_range = (1, 15) + + @classmethod + def check_int_type(cls, dtype): + if dtype in [dtypes.ONNX.INT16, dtypes.ONNX.INT32, dtypes.ONNX.INT64]: + return True + return False + + @classmethod + def opset_1(cls, graph, node, **kw): + value = node.attr('value') + dtype = node.attr('dtype') + value_is_scalar_tensor = False + if 'ValueTensor' in node.inputs and len(node.input('ValueTensor')) > 0: + rank = len(node.input_shape("ValueTensor", 0)) + if rank == 1 and node.input_shape("ValueTensor", 0)[0] == 1: + value_is_scalar_tensor = True + value = node.input("ValueTensor")[0] + else: + raise Exception( + "paddle.full with tensor value parameter is not supported yet." + ) + + shape, is_shape_tensor = mapper_helper.get_node_attr_value( + graph, + node, + 'shape', + 'ShapeTensor', + 'ShapeTensorList', + dtype=dtypes.ONNX.INT64) + + if graph.opset_version >= 9 and (is_shape_tensor or + value_is_scalar_tensor): + if not is_shape_tensor: + shape = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=shape) + input_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[dtype] + if not value_is_scalar_tensor and cls.check_int_type(input_dtype): + to_dtype = dtypes.ONNX.DOUBLE + outputs = None + else: + to_dtype = input_dtype + outputs = node.output('Out') + + if value_is_scalar_tensor: + base_value = graph.make_node( + 'ConstantOfShape', + inputs=shape, + attrs={'dims': [1], + 'dtype': to_dtype, + 'value': 0}) + node2 = graph.make_node( + "Add", inputs=[base_value, value], outputs=outputs) + else: + node2 = graph.make_node( + 'ConstantOfShape', + inputs=shape, + outputs=outputs, + attrs={'dims': [1], + 'dtype': to_dtype, + 'value': value}) + + if not value_is_scalar_tensor and cls.check_int_type(input_dtype): + graph.make_node( + 'Cast', + inputs=node2, + outputs=node.output('Out'), + attrs={'to': input_dtype}) + else: + assert not is_shape_tensor and not value_is_scalar_tensor, \ + "Currently op ['fill_constant'] does not support in onnx(opset<9) when 'shape' or 'fill_value' has " \ + "tensor, Try converting with opset_version >=9 " + + value = np.ones(shape) * value + value = value.astype(dtypes.DTYPE_PADDLE_NUMPY_MAP[dtype]) + value = value.flatten().tolist() + + graph.make_node( + 'Constant', + inputs=[], + outputs=node.output('Out'), + attrs={ + 'dims': shape, + 'dtype': dtypes.DTYPE_PADDLE_ONNX_MAP[dtype], + 'value': value + }) + + +@op_mapper(['lookup_table_v2', 'lookup_table']) +class Embedding(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + ids = node.input('Ids', 0) + if node.type == 'lookup_table' and node.input_shape('Ids', 0)[-1] == 1: + ids = mapper_helper.squeeze_helper(graph, + node.input('Ids', 0), [-1]) + padding_idx = node.attr('padding_idx') + input_shape = node.input_shape('W', 0) + if padding_idx != -1: + key = node.input('W', 0) + if -1 in input_shape: + assert False, "opset version < 11 do not support padding_idx !=-1 and weight is tensor with dynamic shape, please set opset version > 11 or use input_spec to set input shape" + else: + data = np.ones(shape=input_shape, dtype=np.float32) + data[padding_idx] = 0.0 + dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('W', 0)] + constant = graph.make_node( + 'Constant', + dtype=dtype, + dims=input_shape, + value=data.flatten().tolist()) + weight_node = graph.make_node( + 'Mul', inputs=[node.input('W', 0), constant]) + graph.make_node( + 'Gather', + inputs=[weight_node, ids], + outputs=node.output('Out')) + else: + graph.make_node( + 'Gather', + inputs=[node.input('W', 0), ids], + outputs=node.output('Out')) + + @classmethod + def opset_11(cls, graph, node, **kw): + ids = node.input('Ids', 0) + if node.type == 'lookup_table' and node.input_shape('Ids', 0)[-1] == 1: + ids = mapper_helper.squeeze_helper(graph, + node.input('Ids', 0), [-1]) + + padding_idx = node.attr('padding_idx') + input_shape = node.input_shape('W', 0) + if padding_idx != -1: + if -1 in input_shape: + replace_shape = list(copy.copy(input_shape)) + del (replace_shape[0]) + replace_data = graph.make_node( + 'Constant', + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('W', + 0)], + dims=replace_shape, + value=[0.0] * np.prod(replace_shape)) + index = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[padding_idx]) + Scatter_node = graph.make_node( + 'ScatterND', + inputs=[node.input('W', 0), index, replace_data]) + graph.make_node( + 'Gather', + inputs=[Scatter_node, ids], + outputs=node.output('Out')) + else: + data = np.ones(shape=input_shape, dtype=np.float32) + data[padding_idx] = 0.0 + dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('W', 0)] + constant = graph.make_node( + 'Constant', + dtype=dtype, + dims=input_shape, + value=data.flatten().tolist()) + weight_node = graph.make_node( + 'Mul', inputs=[node.input('W', 0), constant]) + graph.make_node( + 'Gather', + inputs=[weight_node, ids], + outputs=node.output('Out')) + else: + graph.make_node( + 'Gather', + inputs=[node.input('W', 0), ids], + outputs=node.output('Out')) + + +@op_mapper('fill_constant_batch_size_like') +class FillConstantBatchSizeLike(): + support_opset_version_range = (9, 12) + + @classmethod + def opset_10(cls, graph, node, **kw): + out_shape = node.attr('shape') + input_dim_idx = node.attr('input_dim_idx') + output_dim_idx = node.attr('output_dim_idx') + + del out_shape[output_dim_idx] + out_shape.insert(0, 1) + + dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[node.attr('dtype')] + if node.attr("str_value") is not None and node.attr("str_value") != "": + value = eval(node.attr("str_value")) + else: + value = node.attr('value') + input_shape = node.input_shape('Input', 0) + constant = graph.make_node( + 'Constant', + dtype=dtype, + dims=out_shape, + value=[value] * np.prod(out_shape)) + + shape = graph.make_node('Shape', inputs=node.input('Input')) + start = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[input_dim_idx]) + end = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT64, value=[input_dim_idx + 1]) + batch = graph.make_node('Slice', inputs=[shape, start, end]) + repeat = batch + if len(out_shape) > 1: + repeat = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT64, + value=[1] * (len(out_shape) - 1)) + repeat = graph.make_node('Concat', inputs=[batch, repeat], axis=-1) + if output_dim_idx == 0: + graph.make_node( + 'Tile', inputs=[constant, repeat], outputs=node.output('Out')) + else: + out = graph.make_node('Tile', inputs=[constant, repeat]) + perm = list(range(len(out_shape))) + del perm[0] + perm.insert(output_dim_idx, 0) + graph.make_node( + 'Transpose', + inputs=[out], + perm=perm, + outputs=node.output('Out')) + + +@op_mapper('fill_any_like') +class FullLike(): + ''' + fill_any_like is kernel for paddle op::full_like & ones_like + ''' + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + shape_node = graph.make_node('Shape', inputs=node.input('X')) + value = node.attr('value') + dtype = node.attr('dtype') + input_dtype = node.input_dtype('X', 0) + if dtype is None: + dtype = input_dtype + np_dtype = dtypes.DTYPE_PADDLE_STR_MAP[dtype] + onnx_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[dtype] + graph.make_node( + 'ConstantOfShape', + inputs=[shape_node], + outputs=node.output('Out'), + dims=[1], + dtype=onnx_dtype, + value=np.array(value).astype(np_dtype).tolist()) + + +@op_mapper('fill_zeros_like') +class FullZeroLike(): + ''' + fill_zeros_like is kernel for paddle op::zeros_like + ''' + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + shape_node = graph.make_node('Shape', inputs=node.input('X')) + value = 0 + dtype = node.attr('dtype') + input_dtype = node.input_dtype('X', 0) + if dtype is None: + dtype = input_dtype + np_dtype = dtypes.DTYPE_PADDLE_STR_MAP[dtype] + onnx_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[dtype] + graph.make_node( + 'ConstantOfShape', + inputs=[shape_node], + outputs=node.output('Out'), + dims=[1], + dtype=onnx_dtype, + value=np.array(value).astype(np_dtype).tolist()) + + +@op_mapper('gather_nd') +class Gather_nd(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + data = node.input('X', 0) + index = node.input('Index', 0) + index_dtype = node.input_dtype('Index', 0) + index_node = None + if index_dtype != paddle.int64: + index_node = graph.make_node( + 'Cast', inputs=[node.input('Index', 0)], to=dtypes.ONNX.INT64) + else: + index_node = index + graph.make_node( + 'GatherND', inputs=[data, index_node], outputs=node.output('Out')) + + +@op_mapper('gather') +class Gather(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + axis = node.attr('axis') + if node.input('Axis', 0) != None: + axis_node = node.input('Axis', 0) + try: + axis = mapper_helper.get_value_from_parameters(graph, + axis_node)[0] + except Exception as e: + raise Exception( + "Currently does not support the axis parameter as input tensor" + + str(e)) + if axis is None: + axis = 0 + if len(node.input_shape('Index', 0)) == 1: + # gather + graph.make_node( + 'Gather', + inputs=[node.input('X', 0), node.input('Index', 0)], + outputs=node.output('Out'), + attrs={'axis': axis}) + else: + raise Exception( + "please try to convert OP:gather(indices's rank >1) with opset_version >= 11." + ) + + @classmethod + def opset_11(cls, graph, node, **kw): + axis = node.attr('axis') + if node.input('Axis', 0) != None: + axis_node = node.input('Axis', 0) + try: + axis = mapper_helper.get_value_from_parameters(graph, + axis_node)[0] + except Exception as e: + raise Exception( + "Currently does not support the axis parameter as input tensor" + + str(e)) + if axis is None: + axis = 0 + if len(node.input_shape('Index', 0)) == 1: + # gather + graph.make_node( + 'Gather', + inputs=[node.input('X', 0), node.input('Index', 0)], + outputs=node.output('Out'), + attrs={'axis': axis}) + else: + # gather_nd + index_dtype = node.input_dtype('Index', 0) + if index_dtype != paddle.int64: + index_node = graph.make_node( + 'Cast', + inputs=[node.input('Index', 0)], + to=dtypes.ONNX.INT64) + graph.make_node( + 'GatherND', + inputs=[node.input('X', 0), index_node], + outputs=node.output('Out')) + else: + graph.make_node( + 'GatherND', + inputs=[node.input('X', 0), node.input('Index', 0)], + outputs=node.output('Out')) + + +@op_mapper('squeeze2') +class Squeeze(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + shape = node.input_shape('X', 0) + ret = [i for i, val in enumerate(shape) if val > 1] + if len(ret) == len(shape): + graph.make_node( + 'Identity', inputs=node.input('X'), outputs=node.output('Out')) + else: + axes = cls.compute_axes(graph, node) + if len(axes) > 0: + axes.sort() + mapper_helper.squeeze_helper(graph, + node.input('X', 0), axes, + node.output('Out')) + else: + graph.make_node( + 'Squeeze', + inputs=[node.input('X', 0)], + outputs=node.output('Out')) + + @classmethod + def compute_axes(cls, graph, node): + shape = node.input_shape('X', 0) + axes = node.attr('axes') + if len(axes) > 0: + axes = [ + axis + len(shape) if axis < 0 else axis + for i, axis in enumerate(axes) + ] + return axes + + +@op_mapper('assign_value') +class Assign(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + if len(node.input_names) > 0: + graph.make_node( + 'Identity', inputs=node.input('X'), outputs=node.output('Out')) + else: + parameters = {} + value = np.array(node.attr('fp32_values')) + if value is None or value.size < 1: + value = np.array(node.attr('int32_values')) + if value is None or value.size < 1: + value = np.array(node.attr('int64_values')) + parameter = { + 'data': value, + 'dtype': node.output_dtype("Out", 0), + 'shape': node.attr('shape') + } + parameters[node.output('Out', 0)] = parameter + graph.build_parameters(parameters) + + +@op_mapper('transpose2') +class Transpose(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + graph.make_node( + 'Transpose', + inputs=node.input('X'), + outputs=node.output('Out'), + perm=node.attr('axis')) + + +@op_mapper('flatten2') +class Flatten(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + input_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)] + if input_dtype in [dtypes.ONNX.INT32, dtypes.ONNX.INT64 + ] and graph.opset_version < 9: + raise Exception( + "int32 or int64 not supported in onnx <9, please try with higher onnx opset_version>=9." + ) + + graph.make_node( + 'Flatten', + inputs=node.input('X'), + outputs=node.output('Out'), + axis=node.attr('axis')) + + +@op_mapper('flatten_contiguous_range') +class FlattenContiguousRange(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + dims = len(node.input_shape('X', 0)) + start_axis = node.attr('start_axis') + end_axis = node.attr('stop_axis') + shape_node = graph.make_node('Shape', inputs=node.input('X')) + if start_axis < 0: + start_axis += dims + if end_axis < 0: + end_axis += dims + if start_axis == 0 and end_axis == dims - 1: + final_shape = graph.make_node( + 'Constant', value=[-1], dtype=dtypes.ONNX.INT64) + elif start_axis == 0: + slice_end = mapper_helper.slice_helper( + graph, shape_node, axes=[0], starts=[end_axis + 1], + ends=[dims]) + slices = [ + graph.make_node( + 'Constant', value=[-1], dtype=dtypes.ONNX.INT64), slice_end + ] + final_shape = graph.make_node('Concat', inputs=slices, axis=0) + elif end_axis == dims - 1: + slice_start = mapper_helper.slice_helper( + graph, shape_node, axes=[0], starts=[0], ends=[start_axis]) + slices = [ + slice_start, graph.make_node( + 'Constant', value=[-1], dtype=dtypes.ONNX.INT64) + ] + final_shape = graph.make_node('Concat', inputs=slices, axis=0) + else: + slice_start = mapper_helper.slice_helper( + graph, shape_node, axes=[0], starts=[0], ends=[start_axis]) + slice_end = mapper_helper.slice_helper( + graph, shape_node, axes=[0], starts=[end_axis + 1], + ends=[dims]) + slices = [ + slice_start, graph.make_node( + 'Constant', value=[-1], dtype=dtypes.ONNX.INT64), slice_end + ] + final_shape = graph.make_node('Concat', inputs=slices, axis=0) + graph.make_node( + 'Reshape', + inputs=[node.input('X')[0], final_shape], + outputs=node.output('Out')) + + +@op_mapper('reshape2') +class Reshape(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + shape_name = 'ShapeTensor' + if shape_name not in node.inputs or len(node.input(shape_name)) == 0: + shape_name = 'Shape' + if shape_name not in node.inputs or len(node.input(shape_name)) == 0: + if node.attr('shape') is None or len(node.attr('shape')) == 0: + raise Exception("shape tensor and shape attrubite all unkown.") + if len(node.input(shape_name)) > 1: + dims = [] + for i in range(len(node.input(shape_name))): + dim = node.input(shape_name)[i] + dim = graph.make_node( + 'Cast', inputs=[dim], to=dtypes.ONNX.INT64) + dims.append(dim) + shape = graph.make_node('Concat', inputs=dims, axis=-1) + graph.make_node( + 'Reshape', + inputs=[node.input('X')[0], shape], + outputs=node.output('Out')) + elif len(node.input(shape_name)) == 1: + cast_shape_node = graph.make_node( + 'Cast', inputs=node.input(shape_name), to=dtypes.ONNX.INT64) + graph.make_node( + 'Reshape', + inputs=[node.input('X')[0], cast_shape_node], + outputs=node.output('Out')) + elif node.attr('shape') is not None and len(node.attr('shape')) > 0: + shape_node = graph.make_node( + 'Constant', + attrs={ + 'dtype': dtypes.ONNX.INT64, + 'value': node.attr('shape') + }) + reshape_node = graph.make_node( + 'Reshape', + inputs=[node.input('X')[0], shape_node], + outputs=node.output('Out')) + + +@op_mapper('unsqueeze2') +class Unsqueeze(): + support_opset_version_range = (1, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + axes = cls.get_axes(graph, node) + mapper_helper.unsqueeze_helper(graph, + node.input('X'), axes, + node.output('Out')) + + @classmethod + def opset_13(cls, graph, node, **kw): + axes_node = cls.get_axes(graph, node, return_node=True) + graph.make_node( + 'Unsqueeze', + inputs=node.input('X') + [axes_node], + outputs=node.output('Out')) + + @classmethod + def get_axes(cls, graph, node, return_node=False): + axes_node = None + ndim = node.block.vars[node.input('X')[0]].ndim + if len(node.attr('axes')) > 0: + axes = node.attr('axes') + else: + axes_node = node.input('AxesTensor')[0] + if axes_node is not None and graph.opset_version > 12 and return_node: + return axes_node + try: + axes = mapper_helper.get_value_from_parameters(graph, axes_node) + except Exception as e: + raise Exception( + "Currently does not support the axes parameter as input tensor in onnx(opset<13), " + "Try converting with opset_version >=13 " + str(e)) + # axes is list of non-negative integers + axes = [ + axis + ndim + i + 1 if axis < 0 else axis + for i, axis in enumerate(axes) + ] + + axes_copy = axes.copy() + assert sorted( + axes) == axes_copy, "axes must be arranged in the following order" + assert len(set(axes)) == len(axes), "axes have duplicate axis" + + if return_node: + if axes_node is None: + axes_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': axes}) + return axes_node + return axes + + +@op_mapper('reciprocal') +class Reciprocal(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Reciprocal', inputs=node.input('X'), outputs=node.output('Out')) + + +@op_mapper('cast') +class Cast(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'Cast', + inputs=node.input('X'), + outputs=node.output('Out'), + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.attr('out_dtype')]) + + +@op_mapper('linspace') +class Linspace(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + start = node.input('Start', 0) + stop = node.input('Stop', 0) + num = node.input('Num', 0) + dtype = node.attr('dtype') + + start = graph.make_node('Cast', inputs=[start], to=dtypes.ONNX.FLOAT) + stop = graph.make_node('Cast', inputs=[stop], to=dtypes.ONNX.FLOAT) + + sub_a_node = graph.make_node('Sub', inputs=[stop, start]) + + one_node = graph.make_node( + 'Constant', + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('Num', 0)], + value=[1]) + + sub_b_node = graph.make_node('Sub', inputs=[num, one_node]) + + sub_b_float_node = graph.make_node( + 'Cast', inputs=[sub_b_node], to=dtypes.ONNX.FLOAT) + + step = graph.make_node('Div', inputs=[sub_a_node, sub_b_float_node]) + + range_tensor = graph.make_node( + 'Cast', inputs=[num], to=dtypes.ONNX.INT64) + + one_like_node = graph.make_node( + 'ConstantOfShape', + inputs=[range_tensor], + dtype=dtypes.ONNX.FLOAT, + value=[1]) + + none_zero_node = graph.make_node('NonZero', inputs=[one_like_node]) + + trans_none_zero_node = graph.make_node( + 'Transpose', inputs=[none_zero_node], perm=[1, 0]) + + trans_squeeze = mapper_helper.squeeze_helper(graph, + trans_none_zero_node, [1]) + + trans_squeeze = graph.make_node( + 'Cast', inputs=[trans_squeeze], to=dtypes.ONNX.FLOAT) + + mul_node = graph.make_node('Mul', inputs=[trans_squeeze, step]) + + add_node = graph.make_node('Add', inputs=[mul_node, start]) + graph.make_node( + 'Cast', + inputs=[add_node], + outputs=node.output('Out'), + to=dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('Start', 0)]) + + +@op_mapper('clip') +class Clip(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + min_value = node.attr('min') + max_value = node.attr('max') + if node.input('Max', 0) is None or len(node.input('Max')) == 0: + max_ = max_value + else: + max_ = node.input('Max', 0) + if node.input('Min', 0) is None or len(node.input('Min')) == 0: + min_ = min_value + else: + min_ = node.input('Min', 0) + mapper_helper.clip_helper(graph, node, + node.input('X', 0), max_, min_, + node.output('Out', 0)) + + +@op_mapper(['pad2d', 'pad3d']) +class Pad(): + support_opset_version_range = (1, 12) + + @classmethod + def opset_1(cls, graph, node, **kw): + if node.attr('mode') == 'replicate': + mode = 'edge' + elif node.attr('mode') == 'circular': + raise Exception("The padding mode = circular is not supported, " \ + "Please try the other three ways") + else: + mode = node.attr('mode') + pads = cls.convert_padding(node, **kw) + if pads is None: + key = node.input('Paddings', 0) + padding = None + if key in graph.parameters.keys(): + paddings = graph.parameters[key].attribute[0].t.int32_data + if node.attr('data_format') == 'NCHW': + pads = [ + 0, 0, paddings[0], paddings[2], 0, 0, paddings[1], + paddings[3] + ] + elif node.attr('data_format') == 'NHWC': + pads = [ + 0, paddings[0], paddings[2], 0, 0, paddings[1], + paddings[3], 0 + ] + elif node.attr('data_format') == 'NCDHW': + pads = [ + 0, 0, paddings[4], paddings[2], paddings[0], 0, 0, + paddings[5], paddings[3], paddings[1] + ] + elif node.attr('data_format') == 'NDHWC': + pads = [ + 0, paddings[4], paddings[2], paddings[0], 0, 0, + paddings[5], paddings[3], paddings[1], 0 + ] + else: + raise Exception("In Pad op, padding can not be tensor" \ + "Please set opset version >= 11") + + value = None + if node.attr('pad_value') is not None: + value = node.attr('pad_value') + elif node.attr('value') is not None: + value = node.attr('value') + graph.make_node( + 'Pad', + inputs=node.input('X'), + outputs=node.output('Out'), + mode=mode, + value=value, + pads=pads) + + @classmethod + def opset_11(cls, graph, node, **kw): + pads = cls.convert_padding(node, **kw) + if node.attr('mode') == 'replicate': + mode = 'edge' + elif node.attr('mode') == 'circular': + raise Exception("The padding mode = circular is not supported, " \ + "Please try the other three ways") + else: + mode = node.attr('mode') + pads_node = None + if isinstance(pads, list): + pads_node = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.INT64, + 'value': pads}) + else: + key = node.input('Paddings', 0) + padding = None + if key in graph.parameters.keys(): + paddings = graph.parameters[key].attribute[0].t.int32_data + onnx_paddings = None + if node.attr('data_format') == 'NCHW': + onnx_paddings = [ + 0, 0, paddings[0], paddings[2], 0, 0, paddings[1], + paddings[3] + ] + elif node.attr('data_format') == 'NHWC': + onnx_paddings = [ + 0, paddings[0], paddings[2], 0, 0, paddings[1], + paddings[3], 0 + ] + elif node.attr('data_format') == 'NCDHW': + onnx_paddings = [ + 0, 0, paddings[4], paddings[2], paddings[0], 0, 0, + paddings[5], paddings[3], paddings[1] + ] + elif node.attr('data_format') == 'NDHWC': + onnx_paddings = [ + 0, paddings[4], paddings[2], paddings[0], 0, 0, + paddings[5], paddings[3], paddings[1], 0 + ] + + pads_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': onnx_paddings}) + else: + padding_node = node.input('Paddings', 0) + casted_padding_node = graph.make_node( + 'Cast', inputs=[padding_node], to=dtypes.ONNX.FLOAT) + zero_node = None + if node.attr('data_format') == 'NCHW' or node.attr( + 'data_format') == 'NHWC': + zero_node = graph.make_node( + 'Constant', dtype=dtypes.ONNX.FLOAT, value=[0] * 8) + else: + zero_node = graph.make_node( + 'Constant', dtype=dtypes.ONNX.FLOAT, value=[0] * 10) + index = None + if node.attr('data_format') == 'NCHW': + index = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT32, + value=[2, 6, 3, 7]) + elif node.attr('data_format') == 'NHWC': + index = graph.make_node( + 'Constant', dtype=dtypes.ONNX.INT32, + value=[1, 5, 2, 6]) + elif node.attr('data_format') == 'NCDHW': + index = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT32, + value=[4, 9, 3, 8, 2, 7]) + elif node.attr('data_format') == 'NDHWC': + index = graph.make_node( + 'Constant', + dtype=dtypes.ONNX.INT32, + value=[3, 8, 2, 7, 1, 6]) + + float_paddle_node = graph.make_node( + 'ScatterElements', + inputs=[zero_node, index, casted_padding_node]) + paddle_node = graph.make_node( + 'Cast', inputs=[float_paddle_node], to=dtypes.ONNX.INT64) + pads_node = paddle_node + + value = None + if node.attr('pad_value') is not None: + value = node.attr('pad_value') + elif node.attr('value') is not None: + value = node.attr('value') + value_node = graph.make_node( + 'Constant', + attrs={ + 'dtype': dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('X', 0)], + 'value': value + }) + + graph.make_node( + 'Pad', + inputs=node.input('X') + [pads_node, value_node], + outputs=node.output('Out'), + mode=mode) + + @classmethod + def convert_padding(cls, node, **kw): + x_shape = node.input_shape('X', 0) + paddings = node.attr('paddings') + if paddings == []: + return None + onnx_paddings = None + if node.attr('data_format') == 'NCHW': + onnx_paddings = [ + 0, 0, paddings[0], paddings[2], 0, 0, paddings[1], paddings[3] + ] + elif node.attr('data_format') == 'NHWC': + onnx_paddings = [ + 0, paddings[0], paddings[2], 0, 0, paddings[1], paddings[3], 0 + ] + elif node.attr('data_format') == 'NCDHW': + onnx_paddings = [ + 0, 0, paddings[4], paddings[2], paddings[0], 0, 0, paddings[5], + paddings[3], paddings[1] + ] + elif node.attr('data_format') == 'NDHWC': + onnx_paddings = [ + 0, paddings[4], paddings[2], paddings[0], 0, 0, paddings[5], + paddings[3], paddings[1], 0 + ] + return onnx_paddings + + +@op_mapper('gaussian_random') +class GaussianRandom(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + shape_input_list = node.input('ShapeTensorList') + shape_input = None + if len(shape_input_list) == 0: + shape_input = node.input('ShapeTensor') + else: + shape_input = graph.make_node( + "Concat", inputs=node.input('ShapeTensorList'), axis=0) + if shape_input is None or len(shape_input) == 0: + graph.make_node( + 'RandomNormal', + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.attr('dtype')], + outputs=node.output('Out'), + shape=node.attr('shape'), + seed=float(node.attr('seed')), + mean=node.attr('mean'), + scale=node.attr('std')) + else: + cast_input_shape = graph.make_node( + 'Cast', inputs=shape_input, to=dtypes.ONNX.INT64) + zero_like_node = graph.make_node( + 'ConstantOfShape', + inputs=cast_input_shape, + dims=[1], + dtype=dtypes.ONNX.FLOAT, + value=[0]) + graph.make_node( + 'RandomNormalLike', + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.attr('dtype')], + outputs=node.output('Out'), + inputs=zero_like_node, + seed=float(node.attr('seed')), + mean=node.attr('mean'), + scale=node.attr('std')) + + +@op_mapper('uniform_random_batch_size_like') +class UniformRandom(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_1(cls, graph, node, **kw): + graph.make_node( + 'RandomUniformLike', + inputs=node.input('Input'), + outputs=node.output('Out'), + high=node.attr('max'), + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.attr('dtype')], + low=node.attr('min'), + seed=float(node.attr('seed')), ) + + +@op_mapper('uniform_random') +class UniformRandom(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + shape_input_list = node.input('ShapeTensorList') + shape_input = None + if len(shape_input_list) == 0: + shape_input = node.input('ShapeTensor') + else: + shape_input = graph.make_node( + "Concat", inputs=node.input('ShapeTensorList'), axis=0) + if shape_input is None or len(shape_input) == 0: + graph.make_node( + 'RandomUniform', + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.attr('dtype')], + outputs=node.output('Out'), + shape=node.attr('shape'), + seed=float(node.attr('seed')), + low=node.attr('min'), + high=node.attr('max')) + else: + cast_input_shape = graph.make_node( + 'Cast', inputs=shape_input, to=dtypes.ONNX.INT64) + zero_like_node = graph.make_node( + 'ConstantOfShape', + inputs=cast_input_shape, + dtype=dtypes.ONNX.FLOAT, + value=[0]) + graph.make_node( + 'RandomUniformLike', + dtype=dtypes.DTYPE_PADDLE_ONNX_MAP[node.attr('dtype')], + outputs=node.output('Out'), + inputs=zero_like_node, + seed=float(node.attr('seed')), + low=node.attr('min'), + high=node.attr('max')) + + +# 'bilinear_interp', 'nearest_interp', scale only support 2, 4, 6, 8, 10 +@op_mapper( + [ + 'bilinear_interp', 'nearest_interp', 'bilinear_interp_v2', + 'nearest_interp_v2', 'bicubic_interp_v2', 'linear_interp_v2', + 'trilinear_interp_v2', 'trilinear_interp', 'linear_interp' + ], + mapper_dict={ + 'bilinear_interp': 'linear', + 'nearest_interp': 'nearest', + 'bilinear_interp_v2': 'linear', + 'nearest_interp_v2': 'nearest', + 'bicubic_interp_v2': 'cubic', + 'linear_interp_v2': 'linear', + 'trilinear_interp_v2': 'linear', + 'trilinear_interp': 'linear', + 'linear_interp': 'linear', + }, + opset_op_dict={ + 9: 'Upsample', + 10: 'Resize', + }) +class Resize(): + support_opset_version_range = (9, 15) + + @classmethod + def opset_9(cls, graph, node, **kw): + inputs = [node.input('X')[0]] + resize_type = kw['mapper_dict'][node.type] + cls.waringInfo(graph, node, resize_type) + if len(node.input('OutSize')) > 0 or len(node.input('SizeTensor')) > 0: + output_node = cls.compute_outsize_node( + graph, node, return_scale=True) + elif 'Scale' in node.inputs and len(node.input('Scale')) > 0: + output_node = cls.compute_scale_node(graph, node) + else: + output_node = cls.compute_attrs_node(graph, node, return_scale=True) + + inputs = inputs + output_node + op = kw['opset_op_dict'][graph.opset_version] + graph.make_node( + op, inputs=inputs, outputs=node.output('Out'), mode=resize_type) + + @classmethod + def opset_11(cls, graph, node, **kw): + inputs = [node.input('X')[0]] + resize_type = kw['mapper_dict'][node.type] + cls.waringInfo(graph, node, resize_type) + if node.attr('align_corners'): + coordinate_transformation_mode = 'align_corners' + elif node.attr('align_mode') == 1 and resize_type is not 'cubic': + coordinate_transformation_mode = 'asymmetric' + elif resize_type == 'nearest': + coordinate_transformation_mode = 'asymmetric' + else: + coordinate_transformation_mode = 'half_pixel' + roi_node = graph.make_node( + 'Constant', + attrs={ + 'dtype': dtypes.ONNX.FLOAT, + 'value': [1, 1, 1, 1, 1, 1, 1, 1] + }) + + inputs.append(roi_node) + if len(node.input('OutSize')) > 0 or len(node.input('SizeTensor')) > 0: + output_node = cls.compute_outsize_node(graph, node) + elif 'Scale' in node.inputs and len(node.input('Scale')) > 0: + output_node = cls.compute_scale_node(graph, node) + else: + output_node = cls.compute_attrs_node(graph, node) + inputs = inputs + output_node + attrs = { + 'mode': resize_type, + 'coordinate_transformation_mode': coordinate_transformation_mode + } + if resize_type == 'nearest' and coordinate_transformation_mode == 'asymmetric': + attrs['nearest_mode'] = 'floor' + graph.make_node( + 'Resize', inputs=inputs, outputs=node.output('Out'), attrs=attrs) + + @classmethod + def compute_outsize_node(cls, graph, node, return_scale=False): + dtype = dtypes.ONNX.INT64 + if return_scale: + dtype = dtypes.ONNX.FLOAT + input_shape_node = graph.make_node('Shape', inputs=node.input('X')) + if dtype != dtypes.ONNX.INT64: + input_shape_node = graph.make_node( + 'Cast', inputs=[input_shape_node], to=dtype) + shape_pre_node = mapper_helper.slice_helper( + graph, input_shape_node, axes=[], starts=[0], ends=[2]) + + out_size = [node.attr('out_d'), node.attr('out_h'), node.attr('out_w')] + out_size = [val for val in out_size if val > 0] + use_tensor = False + if len(node.input('OutSize')) > 0 or len(node.input('SizeTensor')) > 0: + use_tensor = True + if len(out_size) > 0 and not use_tensor: + out_size_node = graph.make_node( + 'Constant', attrs={'dtype': dtype, + 'value': out_size}) + else: + out_size_node, _ = mapper_helper.get_node_attr_value( + graph, node, None, 'OutSize', 'SizeTensor', dtype=dtype) + out_size_node = graph.make_node( + 'Concat', inputs=[shape_pre_node, out_size_node], axis=0) + + if return_scale: + scale_node = graph.make_node( + 'Div', inputs=[out_size_node, input_shape_node]) + return [scale_node] + + scale_empty_node = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.FLOAT, + 'value': []}) + return [scale_empty_node, out_size_node] + + @classmethod + def compute_scale_node(cls, graph, node): + cast_scale = graph.make_node( + 'Cast', inputs=node.input('Scale'), to=dtypes.ONNX.FLOAT) + inputs_cocat = [] + const_node = graph.make_node( + 'Constant', attrs={'dtype': dtypes.ONNX.FLOAT, + 'value': [1, 1]}) + inputs_cocat.append(const_node) + scale = node.attr('scale') + if isinstance(scale, (float, int)): + cast_scale = [cast_scale] * (len(node.input_shape('X', 0)) - 2) + inputs_cocat = inputs_cocat + cast_scale + else: + inputs_cocat = inputs_cocat + [cast_scale] + scale_node = graph.make_node('Concat', inputs=inputs_cocat, axis=0) + return [scale_node] + + @classmethod + def compute_attrs_node(cls, graph, node, return_scale=False): + out_size = [node.attr('out_d'), node.attr('out_h'), node.attr('out_w')] + scale = node.attr('scale') + if isinstance(scale, (float, int)): + scale = [scale] * (len(node.input_shape('X', 0)) - 2) + + out_size = [val for val in out_size if val > 0] + if len(out_size) > 0: + output_node = cls.compute_outsize_node( + graph, node, return_scale=return_scale) + return output_node + + assert len(scale) > 0, Exception("scale size should > 0!") + scale_node = graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.FLOAT, + 'value': [1, 1] + scale}) + return [scale_node] + + @classmethod + def waringInfo(cls, graph, node, resize_type): + assert node.attrs['data_layout'] == 'NCHW', \ + "The conv data layout should be 'NCHW' , but received data format " \ + "is %s." % node.attrs['data_format'] + + if graph.opset_version < 11: + if node.attr('align_corners') or resize_type in ["cubic"]: + raise Exception( + "When align_corners is true or resize_type is 'cubic', the case isn't supported in onnx(opset<=10), " + "Try converting with opset_version>= 11 ") + if node.attr('align_mode') == 0 and resize_type in [ + "bilinear", "linear", "trilinear" + ]: + raise Exception( + "When align_mode == 0 and resize_type is 'bilinear' or 'linear or 'trilinear', the case isn't " + "supported in onnx(opset<=10), Try converting with opset_version>= 11 " + ) + + +@op_mapper('pixel_shuffle') +class PixelShuffle(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + upscale_factor = node.attr('upscale_factor') + + node = graph.make_node( + 'DepthToSpace', + inputs=node.input('X'), + outputs=node.output('Out'), + blocksize=upscale_factor, + mode='CRD') + + +@op_mapper('scatter') +class Scatter(): + support_opset_version_range = (11, 15) + + @classmethod + def opset_11(cls, graph, node, **kw): + ids = node.input('Ids', 0) + input_dtype = dtypes.DTYPE_PADDLE_ONNX_MAP[node.input_dtype('Ids', 0)] + if input_dtype != dtypes.ONNX.INT64: + ids = graph.make_node('Cast', inputs=[ids], to=dtypes.ONNX.INT64) + + shape = graph.make_node( + 'Constant', + value=[node.input_shape('Ids', 0)[0], 1], + dtype=dtypes.ONNX.INT64) + reshape_index = graph.make_node('Reshape', inputs=[ids, shape]) + if not node.attr('overwrite'): + raise Exception("overwrite = False not support yet.") + else: + graph.make_node( + 'ScatterND', + inputs=[ + node.input('X', 0), reshape_index, node.input('Updates', 0) + ], + outputs=node.output('Out')) + + +@op_mapper('scatter_nd_add') +class ScatterndAdd(): + support_opset_version_range = (11, 12) + + @classmethod + def opset_11(cls, graph, node, **kw): + shape = graph.make_node('Shape', inputs=node.input('X', 0)) + zero_like_node = graph.make_node( + 'ConstantOfShape', + inputs=[shape], + dims=[1], + dtype=dtypes.ONNX.FLOAT, + value=[0]) + add_node = graph.make_node( + 'ScatterND', + inputs=[ + zero_like_node, node.input('Index', 0), node.input('Updates', 0) + ], ) + graph.make_node( + 'Add', + inputs=[node.input('X', 0), add_node], + outputs=node.output('Out')) + + +@op_mapper('meshgrid') +class Meshgrid(): + support_opset_version_range = (8, 15) + + @classmethod + def opset_8(cls, graph, node, **kw): + tensors = [t for t in list(node.input('X'))] + tensors_shape = [graph.make_node('Shape', inputs=t) for t in tensors] + out_shape = graph.make_node('Concat', inputs=tensors_shape, axis=0) + out = [] + for i, t in enumerate(tensors): + shape_i = [ + graph.make_node( + 'Constant', + attrs={'dtype': dtypes.ONNX.INT64, + 'value': [1]}) + ] * len(tensors) + shape_i[i] = tensors_shape[i] + t_reshaped = graph.make_node( + 'Reshape', + inputs=[t, graph.make_node( + 'Concat', inputs=shape_i, axis=0)]) + out.append( + graph.make_node( + 'Expand', + inputs=[t_reshaped, out_shape], + outputs=node.output('Out')[i])) + + +@op_mapper('flip') +class Flip(): + support_opset_version_range = (7, 15) + + @classmethod + def opset_7(cls, graph, node, **kw): + inputs = node.input('X') + x_dtype = node.input_dtype('X', 0) + if x_dtype == paddle.bool or x_dtype == paddle.float64: + inputs = [ + graph.make_node( + "Cast", inputs=inputs, to=dtypes.ONNX.FLOAT) + ] + axes = node.attr("axis") + if not isinstance(axes, list): + axes = [axes] + input_shape = node.input_shape('X', 0) + + for i, axis in enumerate(axes): + if axis < 0: + axes[i] += len(input_shape) + assert input_shape[ + axis] > 0, "The dimension in axis of input must be fixed for flip operator, but now the input shape({}) in axis({}) is unknow.".format( + input_shape, axis) + + temp_input = inputs[0] + for i, axis in enumerate(axes): + if input_shape[axis] == 1: + if i != len(axes) - 1: + continue + else: + if x_dtype == paddle.bool or x_dtype == paddle.float64: + graph.make_node( + "Cast", + inputs=[temp_input], + outputs=node.output("Out"), + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype]) + else: + graph.make_node( + "Identity", + inputs=[temp_input], + outputs=node.output("Out")) + else: + splits = graph.make_node( + "Split", + inputs=[temp_input], + outputs=input_shape[axis], + axis=axis, + split=[1] * input_shape[axis]) + reversed_splits = splits[::-1] + if i != len(axes) - 1: + temp_input = graph.make_node( + "Concat", inputs=reversed_splits, axis=axis) + else: + if x_dtype == paddle.bool or x_dtype == paddle.float64: + out = graph.make_node( + "Concat", inputs=reversed_splits, axis=axis) + graph.make_node( + "Cast", + inputs=[out], + outputs=node.output("Out"), + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype]) + else: + graph.make_node( + "Concat", + inputs=reversed_splits, + outputs=node.output("Out"), + axis=axis) + + @classmethod + def opset_13(cls, graph, node, **kw): + inputs = node.input('X') + x_dtype = node.input_dtype('X', 0) + if x_dtype == paddle.bool or x_dtype == paddle.float64: + inputs = [ + graph.make_node( + "Cast", inputs=inputs, to=dtypes.ONNX.FLOAT) + ] + axes = node.attr("axis") + if not isinstance(axes, list): + axes = [axes] + input_shape = node.input_shape('X', 0) + + for i, axis in enumerate(axes): + if axis < 0: + axes[i] += len(input_shape) + assert input_shape[ + axis] > 0, "The dimension in axis of input must be fixed for flip operator, but now the input shape({}) in axis({}) is unknow.".format( + input_shape, axis) + + temp_input = inputs[0] + for i, axis in enumerate(axes): + if input_shape[axis] == 1: + if i != len(axes) - 1: + continue + else: + if x_dtype == paddle.bool or x_dtype == paddle.float64: + graph.make_node( + "Cast", + inputs=[temp_input], + outputs=node.output("Out"), + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype]) + else: + graph.make_node( + "Identity", + inputs=[temp_input], + outputs=node.output("Out")) + else: + split = graph.make_node( + 'Constant', + attrs={ + 'dtype': dtypes.ONNX.INT64, + 'value': [1] * input_shape[axis] + }) + splits = graph.make_node( + "Split", + inputs=[temp_input, split], + outputs=input_shape[axis], + axis=axis) + reversed_splits = splits[::-1] + if i != len(axes) - 1: + temp_input = graph.make_node( + "Concat", inputs=reversed_splits, axis=axis) + else: + if x_dtype == paddle.bool or x_dtype == paddle.float64: + out = graph.make_node( + "Concat", inputs=reversed_splits, axis=axis) + graph.make_node( + "Cast", + inputs=[out], + outputs=node.output("Out"), + to=dtypes.DTYPE_PADDLE_ONNX_MAP[x_dtype]) + else: + graph.make_node( + "Concat", + inputs=reversed_splits, + outputs=node.output("Out"), + axis=axis) diff --git a/paddle2onnx/legacy/passes/__init__.py b/paddle2onnx/legacy/passes/__init__.py new file mode 100755 index 000000000..9ac316d84 --- /dev/null +++ b/paddle2onnx/legacy/passes/__init__.py @@ -0,0 +1,17 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from .pass_manager import PassManager +from .inplace_node_pass import InplaceNodePass +from .dumplicate_names_pass import DumplicateNamesPass \ No newline at end of file diff --git a/paddle2onnx/legacy/passes/dumplicate_names_pass.py b/paddle2onnx/legacy/passes/dumplicate_names_pass.py new file mode 100755 index 000000000..82d17a129 --- /dev/null +++ b/paddle2onnx/legacy/passes/dumplicate_names_pass.py @@ -0,0 +1,91 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from paddle2onnx.legacy.passes import PassManager +from paddle2onnx.utils import logging + + +@PassManager('dumplicate_names_pass') +class DumplicateNamesPass(object): + + name_count = dict() + + @classmethod + def generate_new_name(cls, name): + for saved_name in cls.name_count: + if name.startswith(saved_name): + cls.name_count[saved_name] += 1 + new_name = saved_name + '.' + str(cls.name_count[saved_name]) + return new_name + cls.name_count[name] = 1 + new_name = name + '.' + str(cls.name_count[name]) + return new_name + + @classmethod + def run_pass(cls, onnx_graph): + renamer = {} + tensor_names = set() + for name, node in onnx_graph.parameters.items(): + output = node.output + for opt in output: + assert opt not in tensor_names, "There's dumplicate names in parameters." + tensor_names.add(opt) + + for ipt in onnx_graph.input_nodes: + assert ipt.name not in tensor_names, "There's dumplicate names in exported parameters and inputs." + tensor_names.add(ipt.name) + + for name, node in onnx_graph.node_map.items(): + inputs = node.inputs + outputs = node.outputs + update_node = False + for idx in range(len(inputs)): + ipt = inputs[idx] + if ipt not in renamer: + continue + updated_name = renamer[ipt] + while updated_name in renamer: + updated_name = renamer[updated_name] + inputs[idx] = updated_name + update_node = True + + for idx in range(len(outputs)): + opt = outputs[idx] + if opt not in tensor_names: + tensor_names.add(opt) + continue + renamed_tensor_name = opt + while renamed_tensor_name in renamer: + renamed_tensor_name = renamer[renamed_tensor_name] + new_name = cls.generate_new_name(renamed_tensor_name) + logging.warning("[Renamer Pass] Will rename {}, to {}".format( + renamed_tensor_name, new_name)) + outputs[idx] = new_name + update_node = True + renamer[renamed_tensor_name] = new_name + + if update_node: + node.set_inputs(inputs) + node.set_outputs(outputs) + onnx_graph.update_node(node) + + for opt in onnx_graph.output_nodes: + if opt.name not in renamer: + continue + updated_name = renamer[opt.name] + while updated_name in renamer: + updated_name = renamer[updated_name] + opt.name = updated_name + + return onnx_graph diff --git a/paddle2onnx/legacy/passes/inplace_node_pass.py b/paddle2onnx/legacy/passes/inplace_node_pass.py new file mode 100755 index 000000000..e9fc6f84b --- /dev/null +++ b/paddle2onnx/legacy/passes/inplace_node_pass.py @@ -0,0 +1,62 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from paddle2onnx.legacy.passes import PassManager + + +def get_repeated_output(inputs, outputs): + repeated_output = {} + for idx in range(len(outputs)): + opt = outputs[idx] + if opt in inputs: + repeated_output[opt] = idx + return repeated_output + + +@PassManager('inplace_node_pass') +class InplaceNodePass(object): + + name_count = dict() + + @classmethod + def generate_new_name(cls, name): + if name in cls.name_count: + cls.name_count[name] += 1 + else: + cls.name_count[name] = 1 + new_name = name + '.' + str(cls.name_count[name]) + return new_name + + @classmethod + def run_pass(cls, onnx_graph): + node_map = list(onnx_graph.node_map.items()) + name_mapping = {} + for idx in range(len(node_map)): + name, node = node_map[idx] + inputs = node.inputs + outputs = node.outputs + for idx in range(len(inputs)): + ipt = inputs[idx] + if ipt in name_mapping: + inputs[idx] = name_mapping[ipt] + repeated_output = get_repeated_output(inputs, outputs) + if len(repeated_output) != 0: + for opt, idx in repeated_output.items(): + name_mapping[opt] = cls.generate_new_name(opt) + outputs[idx] = name_mapping[opt] + node.set_inputs(inputs) + node.set_outputs(outputs) + onnx_graph.update_node(node) + + return onnx_graph diff --git a/paddle2onnx/legacy/passes/pass_manager.py b/paddle2onnx/legacy/passes/pass_manager.py new file mode 100644 index 000000000..ca8813c44 --- /dev/null +++ b/paddle2onnx/legacy/passes/pass_manager.py @@ -0,0 +1,39 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import inspect + + +class PassManager(object): + PASSES = {} + + def __init__(self, name, **kwargs): + self.name = name + self.kwargs = kwargs + + def __call__(self, cls): + for k, v in inspect.getmembers(cls, inspect.ismethod): + if k == 'run_pass': + self.PASSES[self.name] = (v, self.kwargs) + + @staticmethod + def run_pass(graph, custom_pass_list): + for pass_name in custom_pass_list: + try: + pass_func, kw = PassManager.PASSES[pass_name] + pass_func(graph, **kw) + except: + raise Exception("Error happened when excute pass: {}".format( + pass_name)) + return graph diff --git a/paddle2onnx/mapper/activation.cc b/paddle2onnx/mapper/activation.cc new file mode 100644 index 000000000..fe391be68 --- /dev/null +++ b/paddle2onnx/mapper/activation.cc @@ -0,0 +1,453 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#include "paddle2onnx/mapper/activation.h" + +namespace paddle2onnx { + +REGISTER_MAPPER(relu, ActivationMapper) +REGISTER_MAPPER(relu6, Relu6Mapper) +REGISTER_MAPPER(tanh, ActivationMapper) +REGISTER_MAPPER(log, ActivationMapper) +REGISTER_MAPPER(sigmoid, ActivationMapper) +REGISTER_MAPPER(sqrt, ActivationMapper) +REGISTER_MAPPER(softplus, ActivationMapper) +REGISTER_MAPPER(exp, ActivationMapper) +REGISTER_MAPPER(floor, ActivationMapper) +REGISTER_MAPPER(cos, ActivationMapper) +REGISTER_MAPPER(sin, ActivationMapper) +REGISTER_MAPPER(round, ActivationMapper) +REGISTER_MAPPER(abs, ActivationMapper) +REGISTER_MAPPER(acos, ActivationMapper) +REGISTER_MAPPER(asin, ActivationMapper) +REGISTER_MAPPER(atan, ActivationMapper) +REGISTER_MAPPER(sinh, ActivationMapper) +REGISTER_MAPPER(tan, ActivationMapper) +REGISTER_MAPPER(ceil, ActivationMapper) +REGISTER_MAPPER(cosh, ActivationMapper) +REGISTER_MAPPER(softsign, ActivationMapper) +REGISTER_MAPPER(sign, ActivationMapper) +REGISTER_MAPPER(erf, ActivationMapper) +REGISTER_MAPPER(reciprocal, ActivationMapper) +REGISTER_MAPPER(leaky_relu, LeakyReluMapper) +REGISTER_MAPPER(gelu, GeluMapper) +REGISTER_MAPPER(selu, SeluMapper) +REGISTER_MAPPER(prelu, PReluMapper) +REGISTER_MAPPER(hard_sigmoid, HardSigmoidMapper) +REGISTER_MAPPER(swish, SwishMapper) +REGISTER_MAPPER(hard_swish, HardSwishMapper) +REGISTER_MAPPER(softmax, SoftMaxMapper) +REGISTER_MAPPER(brelu, BReluMapper) +REGISTER_MAPPER(elu, EluMapper) +REGISTER_MAPPER(hard_shrink, HardShrinkMapper) +REGISTER_MAPPER(softshrink, SoftShrinkMapper) +REGISTER_MAPPER(mish, MishMapper) +REGISTER_MAPPER(square, SquareMapper) +REGISTER_MAPPER(size, SizeMapper) +REGISTER_MAPPER(rsqrt, RsqrtMapper) +REGISTER_MAPPER(logsigmoid, LogSigmoidMapper) +REGISTER_MAPPER(log_softmax, LogSoftmaxMapper) +REGISTER_MAPPER(tanh_shrink, TanhShrinkMapper) +REGISTER_MAPPER(thresholded_relu, ThresholdedReluMapper) +REGISTER_MAPPER(log1p, Log1PMapper) +REGISTER_MAPPER(log2, Log2Mapper) +REGISTER_MAPPER(log10, Log10Mapper) +REGISTER_MAPPER(silu, SiluMapper) + +int32_t ActivationMapper::GetMinOpset(bool verbose) { + if (OpType() == "softplus") { + float beta = 0.0; + float threshold = 20.0; + GetAttr("beta", &beta); + GetAttr("threshold", &threshold); + if ((beta - 1.0) > 1e-06 || (beta - 1.0) < -1e-06 || + (threshold - 20.0) > 1e-06 || (threshold - 20.0) < -1e-06) { + Error() << "Only support softplus with beta == 1.0 and threshold == 20.0." + << std::endl; + return -1; + } + } + if (OpType() == "round") { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; + } + if (OpType() == "sinh" || OpType() == "cosh" || OpType() == "sign") { + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; + } + return 7; +} + +void ActivationMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto iter = op_mapper_.find(OpType()); + Assert(op_mapper_.end() != iter, + "Cannot find " + OpType() + " in activation op_mapper."); + if (OpType() == "erf") { + auto input = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + auto output = helper_->MakeNode(iter->second, {input})->output(0); + helper_->AutoCast(output, output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); + } else { + helper_->MakeNode(iter->second, {input_info[0].name}, + {output_info[0].name}); + } +} + +void Relu6Mapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + float min = 0.0; + helper_->Clip(input_info[0].name, output_info[0].name, min, threshold_, + input_info[0].dtype); +} + +int32_t PReluMapper::GetMinOpset(bool verbose) { + auto input_info = GetInput("X"); + auto slope_info = GetInput("Alpha"); + if (input_info[0].Rank() != slope_info[0].Rank()) { + if (slope_info[0].Rank() > 1) { + Error() + << "Only support rank of alpha <=1 while Rank(alpha) != Rank(input)." + << std::endl; + return -1; + } + } + return 7; +} + +void PReluMapper::Opset7() { + auto input_info = GetInput("X"); + auto slope_info = GetInput("Alpha"); + auto output_info = GetOutput("Out"); + + std::string slope_cast_name = slope_info[0].name; + if (slope_info[0].dtype == P2ODataType::FP64) { + slope_cast_name = helper_->AutoCast({slope_info[0].name}, P2ODataType::FP64, + P2ODataType::FP32); + } + + if (slope_info[0].Rank() != input_info[0].Rank()) { + Assert(slope_info[0].Rank() <= 1, + "Paddle2ONNX: Only support rank of alpha <= 1 while rank of alpha " + "is not equal with rank of input for operator prelu."); + Assert( + input_info[0].Rank() > 1, + "Paddle2ONNX: Rank of input should greater than 2 for operator prelu."); + std::vector shape_value(input_info[0].Rank() - 1, 1); + shape_value[0] = -1; + slope_cast_name = helper_->Reshape(slope_cast_name, shape_value); + } + + if (input_info[0].dtype == P2ODataType::FP64) { + std::string x_cast_name = helper_->AutoCast( + {input_info[0].name}, P2ODataType::FP64, P2ODataType::FP32); + auto node = helper_->MakeNode("PRelu", {x_cast_name, slope_cast_name}); + helper_->AutoCast(node->output(0), {output_info[0].name}, P2ODataType::FP32, + P2ODataType::FP64); + } else { + helper_->MakeNode("PRelu", {input_info[0].name, slope_cast_name}, + {output_info[0].name}); + } +} + +void SeluMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto node = + helper_->MakeNode("Selu", {input_info[0].name}, {output_info[0].name}); + AddAttribute(node, "alpha", alpha_); + AddAttribute(node, "gamma", scale_); +} + +void HardSigmoidMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto node = helper_->MakeNode("HardSigmoid", {input_info[0].name}, + {output_info[0].name}); + AddAttribute(node, "alpha", alpha_); + AddAttribute(node, "beta", beta_); +} + +void SwishMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::string beta_node = + helper_->Constant({1}, GetOnnxDtype(input_info[0].dtype), beta_); + // TODO(jiangjiajun) eliminate multiply with a constant of value 1 + // TODO(jiangjiajun) eliminate add with a constant of value 0 + auto beta_x_node = helper_->MakeNode("Mul", {input_info[0].name, beta_node}); + auto sigmod_node = helper_->MakeNode("Sigmoid", {beta_x_node->output(0)}); + helper_->MakeNode("Mul", {input_info[0].name, sigmod_node->output(0)}, + {output_info[0].name}); +} + +void HardSwishMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::string scale_node = + helper_->Constant({1}, GetOnnxDtype(input_info[0].dtype), scale_); + std::string offset_node = + helper_->Constant({1}, GetOnnxDtype(input_info[0].dtype), offset_); + + auto add_node = helper_->MakeNode("Add", {input_info[0].name, offset_node}); + auto clip_node = + helper_->Clip(add_node->output(0), 0.0, threshold_, input_info[0].dtype); + + auto mul_node = helper_->MakeNode("Mul", {input_info[0].name, clip_node}); + helper_->MakeNode("Div", {mul_node->output(0), scale_node}, + {output_info[0].name}); +} + +void HardSwishMapper::Opset14() { + if (fabs(offset_ - 3.0) > 1e-05 || fabs(scale_ - 6.0) > 1e-05 || + fabs(threshold_ - 6.0) > 1e-05) { + return Opset7(); + } + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + helper_->MakeNode("HardSwish", {input_info[0].name}, {output_info[0].name}); +} + +void LeakyReluMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto node = helper_->MakeNode("LeakyRelu", {input_info[0].name}, + {output_info[0].name}); + AddAttribute(node, "alpha", alpha_); +} + +void GeluMapper::Opset9() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto input_onnx_dtype = GetOnnxDtype(input_info[0].dtype); + double sqrt_2_value = 1.4142135623730951; + double scale_value = 0.5; + double const_1_value = 1.0; + auto sqrt_2 = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::FLOAT, sqrt_2_value); + auto scale = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::FLOAT, scale_value); + auto const_1 = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::FLOAT, const_1_value); + + auto input_name = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + + // the computation formula follows + // https://www.paddlepaddle.org.cn/documentation/docs/zh/api/paddle/nn/functional/gelu_cn.html#gelu + auto erf0 = helper_->MakeNode("Div", {input_name, sqrt_2}); + auto erf1 = helper_->MakeNode("Erf", {erf0->output(0)}); + auto gelu0 = helper_->MakeNode("Add", {erf1->output(0), const_1}); + auto gelu1 = helper_->MakeNode("Mul", {input_name, gelu0->output(0)}); + + if (input_info[0].dtype != P2ODataType::FP32) { + auto out = helper_->MakeNode("Mul", {gelu1->output(0), scale}); + auto cast_out = + helper_->MakeNode("Cast", {out->output(0)}, {output_info[0].name}); + AddAttribute(cast_out, "to", GetOnnxDtype(input_info[0].dtype)); + } else { + helper_->MakeNode("Mul", {gelu1->output(0), scale}, {output_info[0].name}); + } +} + +void SoftMaxMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + if (axis_ < 0) { + axis_ = axis_ + output_info[0].Rank(); + } + if (axis_ == output_info[0].Rank() - 1) { + auto node = helper_->MakeNode("Softmax", {input_info[0].name}, + {output_info[0].name}); + AddAttribute(node, "axis", axis_); + } else { + std::vector perm = Arange(0, output_info[0].Rank()); + perm[output_info[0].Rank() - 1] = axis_; + perm[axis_] = output_info[0].Rank() - 1; + auto transpose_node = helper_->MakeNode("Transpose", {input_info[0].name}); + AddAttribute(transpose_node, "perm", perm); + auto softmax_node = + helper_->MakeNode("Softmax", {transpose_node->output(0)}); + int64_t axis_last = -1; + AddAttribute(softmax_node, "axis", axis_last); + auto transpose_node_last = helper_->MakeNode( + "Transpose", {softmax_node->output(0)}, {output_info[0].name}); + AddAttribute(transpose_node_last, "perm", perm); + } +} + +void SoftMaxMapper::Opset13() { + int64_t axis; + GetAttr("axis", &axis); + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto node = + helper_->MakeNode("Softmax", {input_info[0].name}, {output_info[0].name}); + AddAttribute(node, "axis", axis); +} + +void BReluMapper::Opset7() { + auto x_info = GetInput("X"); + helper_->Clip(x_info[0].name, GetOutput("Out")[0].name, t_min_, t_max_, + x_info[0].dtype); +} + +void EluMapper::Opset7() { + auto node = helper_->MakeNode("Elu", {GetInput("X")[0].name}, + {GetOutput("Out")[0].name}); + AddAttribute(node, "alpha", alpha_); +} + +void HardShrinkMapper::Opset9() { + auto node = helper_->MakeNode("Shrink", {GetInput("X")[0].name}, + {GetOutput("Out")[0].name}); + AddAttribute(node, "lambd", threshold_); + AddAttribute(node, "bias", float(0.0)); +} + +int32_t MishMapper::GetMinOpset(bool verbose) { + if (fabs(threshold_ - 20.0) > 1e-05) { + Error() << "Only support threshold = 20.0." << std::endl; + return -1; + } + return 7; +} + +void MishMapper::Opset7() { + auto input_info = GetInput("X"); + auto out_info = GetOutput("Out"); + auto input = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + auto softplus = helper_->MakeNode("Softplus", {input})->output(0); + auto tanh = helper_->MakeNode("Tanh", {softplus})->output(0); + auto output = helper_->MakeNode("Mul", {input, tanh})->output(0); + helper_->AutoCast(output, out_info[0].name, P2ODataType::FP32, + out_info[0].dtype); +} + +void SquareMapper::Opset7() { + auto input_info = GetInput("X"); + helper_->MakeNode("Mul", {input_info[0].name, input_info[0].name}, + {GetOutput("Out")[0].name}); +} + +void SoftShrinkMapper::Opset9() { + auto node = helper_->MakeNode("Shrink", {GetInput("X")[0].name}, + {GetOutput("Out")[0].name}); + AddAttribute(node, "lambd", lambda_); + AddAttribute(node, "bias", lambda_); +} + +void SizeMapper::Opset7() { + auto out_info = GetOutput("Out"); + auto output = + helper_->MakeNode("Size", {GetInput("Input")[0].name})->output(0); + output = helper_->Reshape(output, {-1}); + output = helper_->AutoCast(output, out_info[0].name, P2ODataType::INT64, + out_info[0].dtype); +} + +void RsqrtMapper::Opset7() { + auto output = helper_->MakeNode("Sqrt", {GetInput("X")[0].name})->output(0); + helper_->MakeNode("Reciprocal", {output}, {GetOutput("Out")[0].name}); +} + +void TanhShrinkMapper::Opset7() { + auto x_info = GetInput("X"); + auto tanh = helper_->MakeNode("Tanh", {x_info[0].name})->output(0); + helper_->MakeNode("Sub", {x_info[0].name, tanh}, {GetOutput("Out")[0].name}); +} + +void LogSigmoidMapper::Opset7() { + auto output = + helper_->MakeNode("Sigmoid", {GetInput("X")[0].name})->output(0); + helper_->MakeNode("Log", {output}, {GetOutput("Out")[0].name}); +} + +void LogSoftmaxMapper::Opset7() { + auto input_info = GetInput("X"); + auto axis = axis_; + if (axis < 0) { + axis += input_info[0].Rank(); + } + if (axis == input_info[0].Rank() - 1) { + auto node = helper_->MakeNode("LogSoftmax", {input_info[0].name}, + {GetOutput("Out")[0].name}); + AddAttribute(node, "axis", axis); + } else { + auto perm = Arange(0, input_info[0].Rank()); + perm[input_info[0].Rank() - 1] = axis; + perm[axis] = input_info[0].Rank() - 1; + auto output = helper_->Transpose(input_info[0].name, perm); + auto node = helper_->MakeNode("LogSoftmax", {output}); + AddAttribute(node, "axis", int64_t(-1)); + helper_->Transpose(node->output(0), GetOutput("Out")[0].name, perm); + } +} + +void ThresholdedReluMapper::Opset10() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + auto input = x_info[0].name; + if (x_info[0].dtype != P2ODataType::FP32) { + input = helper_->AutoCast(input, x_info[0].dtype, P2ODataType::FP32); + auto node = helper_->MakeNode("ThresholdedRelu", {input}); + AddAttribute(node, "alpha", threshold_); + helper_->AutoCast(node->output(0), out_info[0].name, P2ODataType::FP32, + out_info[0].dtype); + } else { + auto node = + helper_->MakeNode("ThresholdedRelu", {input}, {out_info[0].name}); + AddAttribute(node, "alpha", threshold_); + } +} + +void Log1PMapper::Opset7() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + auto one = helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), float(1.0)); + auto input = helper_->MakeNode("Add", {x_info[0].name, one})->output(0); + helper_->MakeNode("Log", {input}, {out_info[0].name}); +} + +void Log2Mapper::Opset7() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + double ln2 = 0.693147180559945309; + auto ln2_tensor = helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), ln2); + auto output = helper_->MakeNode("Log", {x_info[0].name})->output(0); + helper_->MakeNode("Div", {output, ln2_tensor}, {out_info[0].name}); +} + +void Log10Mapper::Opset7() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + double ln10 = 2.30258509299404568401; + auto ln10_tensor = + helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), ln10); + auto output = helper_->MakeNode("Log", {x_info[0].name})->output(0); + helper_->MakeNode("Div", {output, ln10_tensor}, {out_info[0].name}); +} + +void SiluMapper::Opset7() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + auto out = helper_->MakeNode("Sigmoid", {x_info[0].name})->output(0); + helper_->MakeNode("Mul", {x_info[0].name, out}, {out_info[0].name}); +} +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/activation.h b/paddle2onnx/mapper/activation.h new file mode 100644 index 000000000..d1143c5fb --- /dev/null +++ b/paddle2onnx/mapper/activation.h @@ -0,0 +1,372 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once +#include +#include +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ActivationMapper : public Mapper { + public: + ActivationMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + op_mapper_["relu"] = "Relu"; + op_mapper_["tanh"] = "Tanh"; + op_mapper_["log"] = "Log"; + op_mapper_["sigmoid"] = "Sigmoid"; + op_mapper_["sqrt"] = "Sqrt"; + op_mapper_["softplus"] = "Softplus"; + op_mapper_["exp"] = "Exp"; + op_mapper_["floor"] = "Floor"; + op_mapper_["cos"] = "Cos"; + op_mapper_["sin"] = "Sin"; + op_mapper_["round"] = "Round"; + op_mapper_["abs"] = "Abs"; + op_mapper_["acos"] = "Acos"; + op_mapper_["asin"] = "Asin"; + op_mapper_["atan"] = "Atan"; + op_mapper_["sinh"] = "Sinh"; + op_mapper_["tan"] = "Tan"; + op_mapper_["ceil"] = "Ceil"; + op_mapper_["cosh"] = "Cosh"; + op_mapper_["erf"] = "Erf"; + op_mapper_["sign"] = "Sign"; + op_mapper_["softsign"] = "Softsign"; + op_mapper_["reciprocal"] = "Reciprocal"; + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::map op_mapper_; +}; + +class Relu6Mapper : public Mapper { + public: + Relu6Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("threshold", &threshold_); + } + + void Opset7(); + + private: + float threshold_; +}; + +class PReluMapper : public Mapper { + public: + PReluMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); +}; + +class SeluMapper : public Mapper { + public: + SeluMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("alpha", &alpha_); + GetAttr("scale", &scale_); + } + + void Opset7(); + + private: + float alpha_; + float scale_; +}; + +class HardSigmoidMapper : public Mapper { + public: + HardSigmoidMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("slope", &alpha_); + GetAttr("offset", &beta_); + } + + void Opset7(); + + private: + float alpha_; + float beta_; +}; + +class SwishMapper : public Mapper { + public: + SwishMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("beta", &beta_); + } + + void Opset7(); + + private: + float beta_; +}; + +class HardSwishMapper : public Mapper { + public: + HardSwishMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("scale", &scale_); + GetAttr("offset", &offset_); + GetAttr("threshold", &threshold_); + } + + void Opset7(); + void Opset14(); + + private: + float scale_; + float offset_; + float threshold_; +}; + +class LeakyReluMapper : public Mapper { + public: + LeakyReluMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("alpha", &alpha_); + } + + void Opset7(); + + private: + float alpha_; +}; + +class GeluMapper : public Mapper { + public: + GeluMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; + } + + void Opset9(); +}; + +class SoftMaxMapper : public Mapper { + public: + SoftMaxMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + + void Opset7(); + void Opset13(); + + private: + int64_t axis_ = -1; +}; + +class BReluMapper : public Mapper { + public: + BReluMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("t_min", &t_min_); + GetAttr("t_max", &t_max_); + } + + void Opset7(); + + private: + float t_min_; + float t_max_; +}; + +class EluMapper : public Mapper { + public: + EluMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("alpha", &alpha_); + } + void Opset7(); + + private: + float alpha_; +}; + +class HardShrinkMapper : public Mapper { + public: + HardShrinkMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("threshold", &threshold_); + } + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; + } + void Opset9(); + + private: + float threshold_; +}; + +class MishMapper : public Mapper { + public: + MishMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("threshold", &threshold_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + float threshold_; +}; + +class SquareMapper : public Mapper { + public: + SquareMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +class SizeMapper : public Mapper { + public: + SizeMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +class LogSigmoidMapper : public Mapper { + public: + LogSigmoidMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +class RsqrtMapper : public Mapper { + public: + RsqrtMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +class LogSoftmaxMapper : public Mapper { + public: + LogSoftmaxMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + void Opset7(); + + private: + int64_t axis_; +}; + +class SoftShrinkMapper : public Mapper { + public: + SoftShrinkMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("lambda", &lambda_); + } + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; + } + void Opset9(); + + private: + float lambda_; +}; + +class ThresholdedReluMapper : public Mapper { + public: + ThresholdedReluMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("threshold", &threshold_); + } + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 10) << RequireOpset(10) << std::endl; + return 10; + } + void Opset10(); + + private: + float threshold_; +}; + +class TanhShrinkMapper : public Mapper { + public: + TanhShrinkMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +class Log1PMapper : public Mapper { + public: + Log1PMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +class Log2Mapper : public Mapper { + public: + Log2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +class Log10Mapper : public Mapper { + public: + Log10Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +class SiluMapper : public Mapper { + public: + SiluMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/data_helper.h b/paddle2onnx/mapper/data_helper.h new file mode 100644 index 000000000..df488194b --- /dev/null +++ b/paddle2onnx/mapper/data_helper.h @@ -0,0 +1,30 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include "paddle2onnx/utils/utils.h" + +namespace paddle2onnx { + +inline std::vector Arange(int64_t start, int64_t end) { + Assert(end > start, "In arrange(), end must be greater than start."); + std::vector res; + res.resize(end - start); + for (auto i = start; i < end; ++i) { + res[i - start] = i; + } + return res; +} +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/detection/multiclass_nms.cc b/paddle2onnx/mapper/detection/multiclass_nms.cc new file mode 100644 index 000000000..3c262b6b8 --- /dev/null +++ b/paddle2onnx/mapper/detection/multiclass_nms.cc @@ -0,0 +1,360 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/detection/multiclass_nms.h" + +namespace paddle2onnx { + +REGISTER_MAPPER(multiclass_nms3, NMSMapper); + +int32_t NMSMapper::GetMinOpset(bool verbose) { + auto boxes_info = GetInput("BBoxes"); + auto score_info = GetInput("Scores"); + if (score_info[0].Rank() != 3) { + Error() << "Lod Tensor input is not supported, which means the shape of " + "input(scores) is [M, C] now, but Paddle2ONNX only support [N, " + "C, M]." + << std::endl; + return -1; + } + if (boxes_info[0].Rank() != 3) { + Error() << "Only support input boxes as 3-D Tensor, but now it's rank is " + << boxes_info[0].Rank() << "." << std::endl; + return -1; + } + if (score_info[0].shape[1] <= 0) { + Error() << "The 2nd-dimension of score should be fixed(means the number of " + "classes), but now it's " + << score_info[0].shape[1] << "." << std::endl; + return -1; + } + + if (export_as_custom_op || this->deploy_backend == "tensorrt") { + return 7; + } + + Logger(verbose, 10) << RequireOpset(10) << std::endl; + return 10; +} + +void NMSMapper::KeepTopK(const std::string& selected_indices) { + auto boxes_info = GetInput("BBoxes"); + auto score_info = GetInput("Scores"); + auto out_info = GetOutput("Out"); + auto index_info = GetOutput("Index"); + auto num_rois_info = GetOutput("NmsRoisNum"); + auto value_0 = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, int64_t(0)); + auto value_1 = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, int64_t(1)); + auto value_2 = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, int64_t(2)); + auto value_neg_1 = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, int64_t(-1)); + + auto class_id = helper_->MakeNode("Gather", {selected_indices, value_1}); + AddAttribute(class_id, "axis", int64_t(1)); + + auto box_id = helper_->MakeNode("Gather", {selected_indices, value_2}); + AddAttribute(box_id, "axis", int64_t(1)); + + auto filtered_class_id = class_id->output(0); + auto filtered_box_id = box_id->output(0); + if (background_label_ >= 0) { + auto filter_indices = MapperHelper::Get()->GenName("nms.filter_background"); + auto squeezed_class_id = + helper_->Squeeze(class_id->output(0), std::vector(1, 1)); + if (background_label_ > 0) { + auto background = helper_->Constant( + {1}, ONNX_NAMESPACE::TensorProto::INT64, background_label_); + auto diff = helper_->MakeNode("Sub", {squeezed_class_id, background}); + helper_->MakeNode("NonZero", {diff->output(0)}, {filter_indices}); + } else if (background_label_ == 0) { + helper_->MakeNode("NonZero", {squeezed_class_id}, {filter_indices}); + } + auto new_class_id = + helper_->MakeNode("Gather", {filtered_class_id, filter_indices}); + AddAttribute(new_class_id, "axis", int64_t(0)); + auto new_box_id = + helper_->MakeNode("Gather", {box_id->output(0), filter_indices}); + AddAttribute(new_box_id, "axis", int64_t(0)); + filtered_class_id = new_class_id->output(0); + filtered_box_id = new_box_id->output(0); + } + + // Here is a little complicated + // Since we need to gather all the scores for the final boxes to filter the + // top-k boxes Now we have the follow inputs + // - scores: [N, C, M] N means batch size(but now it will be regarded as + // 1); C means number of classes; M means number of boxes for each classes + // - selected_indices: [num_selected_indices, 3], and 3 means [batch, + // class_id, box_id]. We will use this inputs to gather score + // So now we will first flatten `scores` to shape of [1 * C * M], then we + // gather scores by each elements in `selected_indices` The index need be + // calculated as + // `gather_index = class_id * M + box_id` + auto flatten_score = helper_->Flatten(score_info[0].name); + auto num_boxes_each_class = helper_->Constant( + {1}, ONNX_NAMESPACE::TensorProto::INT64, score_info[0].shape[2]); + auto gather_indices_0 = + helper_->MakeNode("Mul", {filtered_class_id, num_boxes_each_class}); + auto gather_indices_1 = + helper_->MakeNode("Add", {gather_indices_0->output(0), filtered_box_id}); + auto gather_indices = helper_->Flatten(gather_indices_1->output(0)); + auto gathered_scores = + helper_->MakeNode("Gather", {flatten_score, gather_indices}); + AddAttribute(gathered_scores, "axis", int64_t(0)); + + // Now we will perform keep_top_k process + // First we need to check if the number of remaining boxes is greater than + // keep_top_k Otherwise, we will downgrade the keep_top_k to number of + // remaining boxes + auto final_classes = filtered_class_id; + auto final_boxes_id = filtered_box_id; + auto final_scores = gathered_scores->output(0); + if (keep_top_k_ > 0) { + // get proper topk + auto shape_of_scores = helper_->MakeNode("Shape", {final_scores}); + auto num_of_boxes = + helper_->Slice(shape_of_scores->output(0), std::vector(1, 0), + std::vector(1, 0), std::vector(1, 1)); + auto top_k = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, keep_top_k_); + auto ensemble_value = helper_->MakeNode("Concat", {num_of_boxes, top_k}); + AddAttribute(ensemble_value, "axis", int64_t(0)); + auto new_top_k = + helper_->MakeNode("ReduceMin", {ensemble_value->output(0)}); + AddAttribute(new_top_k, "axes", std::vector(1, 0)); + AddAttribute(new_top_k, "keepdims", int64_t(1)); + + // the output is topk_scores, topk_score_indices + auto topk_node = + helper_->MakeNode("TopK", {final_scores, new_top_k->output(0)}, 2); + auto topk_scores = + helper_->MakeNode("Gather", {final_scores, topk_node->output(1)}); + AddAttribute(topk_scores, "axis", int64_t(0)); + filtered_class_id = + helper_->MakeNode("Squeeze", {filtered_class_id})->output(0); + auto topk_classes = + helper_->MakeNode("Gather", {filtered_class_id, topk_node->output(1)}); + AddAttribute(topk_classes, "axis", int64_t(0)); + filtered_box_id = + helper_->MakeNode("Squeeze", {filtered_box_id})->output(0); + auto topk_boxes_id = + helper_->MakeNode("Gather", {filtered_box_id, topk_node->output(1)}); + AddAttribute(topk_boxes_id, "axis", int64_t(0)); + + final_boxes_id = topk_boxes_id->output(0); + final_scores = topk_scores->output(0); + final_classes = topk_classes->output(0); + } + + auto flatten_boxes_id = helper_->Flatten({final_boxes_id}); + auto gathered_selected_boxes = + helper_->MakeNode("Gather", {boxes_info[0].name, flatten_boxes_id}); + AddAttribute(gathered_selected_boxes, "axis", int64_t(1)); + + auto float_classes = helper_->MakeNode("Cast", {final_classes}); + AddAttribute(float_classes, "to", ONNX_NAMESPACE::TensorProto::FLOAT); + + std::vector shape{1, -1, 1}; + auto unsqueezed_scores = helper_->Reshape({final_scores}, shape); + + auto unsqueezed_class = helper_->Reshape({float_classes->output(0)}, shape); + + auto box_result = + helper_->MakeNode("Concat", {unsqueezed_class, unsqueezed_scores, + gathered_selected_boxes->output(0)}); + AddAttribute(box_result, "axis", int64_t(2)); + helper_->Squeeze({box_result->output(0)}, {out_info[0].name}, + std::vector(1, 0)); + + // other outputs, we don't use sometimes + // there's lots of Cast in exporting + // TODO(jiangjiajun) A pass to eleminate all the useless Cast is needed + auto reshaped_index_result = + helper_->Reshape({flatten_boxes_id}, {int64_t(-1), int64_t(1)}); + auto index_result = + helper_->MakeNode("Cast", {reshaped_index_result}, {index_info[0].name}); + AddAttribute(index_result, "to", GetOnnxDtype(index_info[0].dtype)); + + auto out_box_shape = helper_->MakeNode("Shape", {out_info[0].name}); + auto num_rois_result = + helper_->Slice({out_box_shape->output(0)}, std::vector(1, 0), + std::vector(1, 0), std::vector(1, 1)); + auto int32_num_rois_result = + helper_->AutoCast(num_rois_result, num_rois_info[0].name, + P2ODataType::INT64, num_rois_info[0].dtype); +} + +void NMSMapper::Opset10() { + if (this->deploy_backend == "tensorrt") { + return ExportForTensorRT(); + } + auto boxes_info = GetInput("BBoxes"); + auto score_info = GetInput("Scores"); + if (boxes_info[0].shape[0] != 1) { + Warn() + << "[WARNING] Due to the operator multiclass_nms3, the exported ONNX " + "model will only supports inference with input batch_size == 1." + << std::endl; + } + int64_t num_classes = score_info[0].shape[1]; + auto score_threshold = helper_->Constant( + {1}, ONNX_NAMESPACE::TensorProto::FLOAT, score_threshold_); + auto nms_threshold = helper_->Constant( + {1}, ONNX_NAMESPACE::TensorProto::FLOAT, nms_threshold_); + auto nms_top_k = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, nms_top_k_); + + auto selected_box_index = MapperHelper::Get()->GenName("nms.selected_index"); + if (normalized_) { + helper_->MakeNode("NonMaxSuppression", + {boxes_info[0].name, score_info[0].name, nms_top_k, + nms_threshold, score_threshold}, + {selected_box_index}); + } else { + auto value_1 = + helper_->Constant({1}, GetOnnxDtype(boxes_info[0].dtype), float(1.0)); + auto split_boxes = helper_->Split(boxes_info[0].name, + std::vector(4, 1), int64_t(2)); + auto xmax = helper_->MakeNode("Add", {split_boxes[2], value_1}); + auto ymax = helper_->MakeNode("Add", {split_boxes[3], value_1}); + auto new_boxes = helper_->MakeNode( + "Concat", + {split_boxes[0], split_boxes[1], xmax->output(0), ymax->output(0)}); + AddAttribute(new_boxes, "axis", int64_t(2)); + helper_->MakeNode("NonMaxSuppression", + {new_boxes->output(0), score_info[0].name, nms_top_k, + nms_threshold, score_threshold}, + {selected_box_index}); + } + KeepTopK(selected_box_index); +} + +void NMSMapper::ExportAsCustomOp() { + auto boxes_info = GetInput("BBoxes"); + auto score_info = GetInput("Scores"); + auto out_info = GetOutput("Out"); + auto index_info = GetOutput("Index"); + auto num_rois_info = GetOutput("NmsRoisNum"); + auto node = helper_->MakeNode( + custom_op_name, {boxes_info[0].name, score_info[0].name}, + {out_info[0].name, index_info[0].name, num_rois_info[0].name}); + node->set_domain("Paddle"); + int64_t normalized = normalized_ ? 1 : 0; + AddAttribute(node, "normalized", normalized); + AddAttribute(node, "nms_threshold", nms_threshold_); + AddAttribute(node, "score_threshold", score_threshold_); + AddAttribute(node, "nms_eta", nms_eta_); + AddAttribute(node, "nms_top_k", nms_top_k_); + AddAttribute(node, "background_label", background_label_); + AddAttribute(node, "keep_top_k", keep_top_k_); + helper_->MakeValueInfo(boxes_info[0].name, boxes_info[0].dtype, + boxes_info[0].shape); + helper_->MakeValueInfo(score_info[0].name, score_info[0].dtype, + score_info[0].shape); + helper_->MakeValueInfo(out_info[0].name, out_info[0].dtype, + out_info[0].shape); + helper_->MakeValueInfo(index_info[0].name, index_info[0].dtype, + index_info[0].shape); + helper_->MakeValueInfo(num_rois_info[0].name, num_rois_info[0].dtype, + num_rois_info[0].shape); +} + +void NMSMapper::ExportForTensorRT() { + auto boxes_info = GetInput("BBoxes"); + auto score_info = GetInput("Scores"); + auto out_info = GetOutput("Out"); + auto index_info = GetOutput("Index"); + auto num_rois_info = GetOutput("NmsRoisNum"); + + auto scores = helper_->Transpose(score_info[0].name, {0, 2, 1}); + auto boxes = helper_->Unsqueeze(boxes_info[0].name, {2}); + int64_t num_classes = score_info[0].shape[1]; + auto repeats = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), + std::vector({1, 1, num_classes, 1})); + boxes = helper_->MakeNode("Tile", {boxes, repeats})->output(0); + + auto nms_node = + helper_->MakeNode("BatchedNMSDynamic_TRT", {boxes, scores}, 4); + AddAttribute(nms_node, "shareLocation", int64_t(0)); + AddAttribute(nms_node, "backgroundLabelId", background_label_); + AddAttribute(nms_node, "numClasses", num_classes); + int64_t nms_top_k = nms_top_k_; + int64_t keep_top_k = keep_top_k_; + if (nms_top_k > 4096) { + Warn() + << "Paramter nms_top_k:" << nms_top_k + << " is exceed limit in TensorRT BatchedNMS plugin, will force to 4096." + << std::endl; + nms_top_k = 4096; + } + if (keep_top_k > 4096) { + Warn() + << "Parameter keep_top_k:" << keep_top_k + << " is exceed limit in TensorRT BatchedNMS plugin, will force to 4096." + << std::endl; + keep_top_k = 4096; + } + AddAttribute(nms_node, "topK", nms_top_k); + AddAttribute(nms_node, "keepTopK", keep_top_k); + AddAttribute(nms_node, "scoreThreshold", score_threshold_); + AddAttribute(nms_node, "iouThreshold", nms_threshold_); + if (normalized_) { + AddAttribute(nms_node, "isNormalized", int64_t(1)); + } else { + AddAttribute(nms_node, "isNormalized", int64_t(0)); + } + AddAttribute(nms_node, "clipBoxes", int64_t(0)); + nms_node->set_domain("Paddle"); + + auto num_rois = helper_->Reshape(nms_node->output(0), {-1}); + helper_->AutoCast(num_rois, num_rois_info[0].name, P2ODataType::INT32, + num_rois_info[0].dtype); + + auto out_classes = helper_->Reshape(nms_node->output(3), {-1, 1}); + auto out_scores = helper_->Reshape(nms_node->output(2), {-1, 1}); + auto out_boxes = helper_->Reshape(nms_node->output(1), {-1, 4}); + out_classes = + helper_->AutoCast(out_classes, P2ODataType::INT32, P2ODataType::FP32); + helper_->Concat({out_classes, out_scores, out_boxes}, {out_info[0].name}, 1); + + // EfficientNMS_TRT cannot get the same result, so disable now + // auto nms_node = helper_->MakeNode("EfficientNMS_TRT", {boxes_info[0].name, + // score}, 4); + // AddAttribute(nms_node, "plugin_version", "1"); + // AddAttribute(nms_node, "background_class", background_label_); + // AddAttribute(nms_node, "max_output_boxes", nms_top_k_); + // AddAttribute(nms_node, "score_threshold", score_threshold_); + // AddAttribute(nms_node, "iou_threshold", nms_threshold_); + // AddAttribute(nms_node, "score_activation", int64_t(0)); + // AddAttribute(nms_node, "box_coding", int64_t(0)); + // nms_node->set_domain("Paddle"); + // + // auto num_rois = helper_->Reshape(nms_node->output(0), {-1}); + // helper_->AutoCast(num_rois, num_rois_info[0].name, P2ODataType::INT32, + // num_rois_info[0].dtype); + // + // auto out_classes = helper_->Reshape(nms_node->output(3), {-1, 1}); + // auto out_scores = helper_->Reshape(nms_node->output(2), {-1, 1}); + // auto out_boxes = helper_->Reshape(nms_node->output(1), {-1, 4}); + // out_classes = helper_->AutoCast(out_classes, P2ODataType::INT32, + // P2ODataType::FP32); + // helper_->Concat({out_classes, out_scores, out_boxes}, {out_info[0].name}, + // 1); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/detection/multiclass_nms.h b/paddle2onnx/mapper/detection/multiclass_nms.h new file mode 100644 index 000000000..84711a5ad --- /dev/null +++ b/paddle2onnx/mapper/detection/multiclass_nms.h @@ -0,0 +1,62 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class NMSMapper : public Mapper { + public: + NMSMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + // NMS is a post process operators for object detection + // We have found there're difference between `multi_class_nms3` in + // PaddlePaddle and `NonMaxSuppresion` in ONNX + MarkAsExperimentalOp(); + GetAttr("normalized", &normalized_); + GetAttr("nms_threshold", &nms_threshold_); + GetAttr("score_threshold", &score_threshold_); + GetAttr("nms_eta", &nms_eta_); + // The `nms_top_k` in Paddle and `max_output_boxes_per_class` in ONNX share + // the same meaning But the filter process may not be same Since NMS is just + // a post process for Detection, we are not going to export it with exactly + // same result. We will make a precision performance in COCO or Pascal VOC + // data later. + GetAttr("nms_top_k", &nms_top_k_); + GetAttr("background_label", &background_label_); + GetAttr("keep_top_k", &keep_top_k_); + } + + int32_t GetMinOpset(bool verbose = false); + void KeepTopK(const std::string& selected_indices); + void Opset10(); + void ExportForTensorRT(); + void ExportAsCustomOp(); + + private: + bool normalized_; + float nms_threshold_; + float score_threshold_; + float nms_eta_; + int64_t nms_top_k_; + int64_t background_label_; + int64_t keep_top_k_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/detection/roi_align.cc b/paddle2onnx/mapper/detection/roi_align.cc new file mode 100755 index 000000000..88629a281 --- /dev/null +++ b/paddle2onnx/mapper/detection/roi_align.cc @@ -0,0 +1,43 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/detection/roi_align.h" + +namespace paddle2onnx { +REGISTER_MAPPER(roi_align, RoiAlignMapper) + +void RoiAlignMapper::Opset10() { + auto x_info = GetInput("X"); + auto rois_info = GetInput("ROIs"); + auto out_info = GetOutput("Out"); + + auto roi_shape = helper_->MakeNode("Shape", {rois_info[0].name})->output(0); + auto num_rois = + helper_->Slice(roi_shape, std::vector(1, 0), + std::vector(1, 0), std::vector(1, 1)); + auto value_zero = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, + std::vector(1, 0)); + auto batch_indices = + helper_->MakeNode("Expand", {value_zero, num_rois})->output(0); + auto roi_align_node = helper_->MakeNode( + "RoiAlign", {x_info[0].name, rois_info[0].name, batch_indices}, + {out_info[0].name}); + AddAttribute(roi_align_node, "output_height", pooled_height_); + AddAttribute(roi_align_node, "output_width", pooled_width_); + AddAttribute(roi_align_node, "sampling_ratio", sampling_ratio_); + AddAttribute(roi_align_node, "spatial_scale", spatial_scale_); + AddAttribute(roi_align_node, "mode", "avg"); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/detection/roi_align.h b/paddle2onnx/mapper/detection/roi_align.h new file mode 100755 index 000000000..68e2c27f9 --- /dev/null +++ b/paddle2onnx/mapper/detection/roi_align.h @@ -0,0 +1,47 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class RoiAlignMapper : public Mapper { + public: + RoiAlignMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + MarkAsExperimentalOp(); + GetAttr("pooled_height", &pooled_height_); + GetAttr("pooled_width", &pooled_width_); + GetAttr("spatial_scale", &spatial_scale_); + GetAttr("sampling_ratio", &sampling_ratio_); + GetAttr("aligned", &aligned_); + } + + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 10) << RequireOpset(10) << std::endl; + return 10; + } + void Opset10(); + + private: + int64_t pooled_height_; + int64_t pooled_width_; + float spatial_scale_; + int64_t sampling_ratio_; + bool aligned_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/detection/yolo_box.cc b/paddle2onnx/mapper/detection/yolo_box.cc new file mode 100644 index 000000000..e9f928989 --- /dev/null +++ b/paddle2onnx/mapper/detection/yolo_box.cc @@ -0,0 +1,254 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/detection/yolo_box.h" + +namespace paddle2onnx { + +REGISTER_MAPPER(yolo_box, YoloBoxMapper) + +int32_t YoloBoxMapper::GetMinOpset(bool verbose) { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; +} + +void YoloBoxMapper::Opset11() { + auto x_info_ori = GetInput("X"); + + // handle the float64 input + auto x_info = x_info_ori; + if (x_info_ori[0].dtype != P2ODataType::FP32) { + x_info[0].name = helper_->AutoCast(x_info_ori[0].name, x_info_ori[0].dtype, + P2ODataType::FP32); + x_info[0].dtype = P2ODataType::FP32; + } + + auto im_size_info = GetInput("ImgSize"); + auto boxes_info = GetOutput("Boxes"); + auto scores_info = GetOutput("Scores"); + int64_t max_int = 999999; + + int64_t anchor_num = anchors_.size() / 2; + + auto x_shape = helper_->MakeNode("Shape", {x_info[0].name}); + std::vector nchw = helper_->Split( + x_shape->output(0), std::vector(4, 1), int64_t(0)); + std::string float_h = + helper_->AutoCast(nchw[2], P2ODataType::INT64, x_info[0].dtype); + std::string float_w = + helper_->AutoCast(nchw[3], P2ODataType::INT64, x_info[0].dtype); + + auto anchor_num_tensor = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, anchor_num); + + auto x_name = x_info[0].name; + if (iou_aware_) { + // Here we use the feature that while value is very large, it equals to the + // ends This is a standared definition in ONNX However not sure all the + // inference engines implements `Slice` this way Let's handle this issue + // later + x_name = helper_->Slice(x_name, {0, 1, 2, 3}, {0, 0, 0, 0}, + {max_int, anchor_num, max_int, max_int}); + } + + auto unknown_dim = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, int64_t(-1)); + auto shape_0 = helper_->MakeNode( + "Concat", {nchw[0], anchor_num_tensor, unknown_dim, nchw[2], nchw[3]}); + AddAttribute(shape_0, "axis", int64_t(0)); + auto reshaped_x = helper_->MakeNode("Reshape", {x_name, shape_0->output(0)}); + auto transposed_x = helper_->MakeNode("Transpose", {reshaped_x->output(0)}); + { + std::vector perm({0, 1, 3, 4, 2}); + AddAttribute(transposed_x, "perm", perm); + } + + // grid_x = np.tile(np.arange(w).reshape((1, w)), (h, 1)) + // grid_y = np.tile(np.arange(h).reshape((h, 1)), (1, w)) + auto float_value_0 = + helper_->Constant({}, GetOnnxDtype(x_info[0].dtype), float(0.0)); + auto float_value_1 = + helper_->Constant({}, GetOnnxDtype(x_info[0].dtype), float(1.0)); + auto scalar_float_w = helper_->Squeeze(float_w, {}); + auto scalar_float_h = helper_->Squeeze(float_h, {}); + auto grid_x_0 = helper_->MakeNode( + "Range", {float_value_0, scalar_float_w, float_value_1}); // shape is [w] + auto grid_y_0 = helper_->MakeNode( + "Range", {float_value_0, scalar_float_h, float_value_1}); // shape is [h] + auto grid_x_1 = helper_->MakeNode( + "Tile", {grid_x_0->output(0), nchw[2]}); // shape is [w*h] + auto grid_y_1 = helper_->MakeNode( + "Tile", {grid_y_0->output(0), nchw[3]}); // shape is [h*w] + auto int_value_1 = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, float(1.0)); + auto grid_shape_x = + helper_->MakeNode("Concat", {nchw[2], nchw[3], int_value_1}); + auto grid_shape_y = + helper_->MakeNode("Concat", {nchw[3], nchw[2], int_value_1}); + AddAttribute(grid_shape_x, "axis", int64_t(0)); + AddAttribute(grid_shape_y, "axis", int64_t(0)); + auto grid_x = helper_->MakeNode( + "Reshape", {grid_x_1->output(0), grid_shape_x->output(0)}); + auto grid_y_2 = helper_->MakeNode( + "Reshape", {grid_y_1->output(0), grid_shape_y->output(0)}); + auto grid_y = helper_->MakeNode("Transpose", {grid_y_2->output(0)}); + { + std::vector perm({1, 0, 2}); + AddAttribute(grid_y, "perm", perm); + } + + auto grid = + helper_->MakeNode("Concat", {grid_x->output(0), grid_y->output(0)}); + AddAttribute(grid, "axis", int64_t(2)); + + // pred_box[:, :, :, :, 0] = (grid_x + sigmoid(pred_box[:, :, :, :, 0]) * + // scale_x_y + bias_x_y) / w pred_box[:, :, :, :, 1] = (grid_y + + // sigmoid(pred_box[:, :, :, :, 1]) * scale_x_y + bias_x_y) / h + auto pred_box_xy = + helper_->Slice(transposed_x->output(0), {0, 1, 2, 3, 4}, {0, 0, 0, 0, 0}, + {max_int, max_int, max_int, max_int, 2}); + auto scale_x_y = + helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), scale_x_y_); + float bias_x_y_value = (1.0 - scale_x_y_) / 2.0; + auto bias_x_y = + helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), bias_x_y_value); + auto wh = helper_->MakeNode("Concat", {float_w, float_h}); + AddAttribute(wh, "axis", int64_t(0)); + pred_box_xy = helper_->MakeNode("Sigmoid", {pred_box_xy})->output(0); + pred_box_xy = helper_->MakeNode("Mul", {pred_box_xy, scale_x_y})->output(0); + pred_box_xy = helper_->MakeNode("Add", {pred_box_xy, bias_x_y})->output(0); + pred_box_xy = + helper_->MakeNode("Add", {pred_box_xy, grid->output(0)})->output(0); + pred_box_xy = + helper_->MakeNode("Div", {pred_box_xy, wh->output(0)})->output(0); + + // anchors = [(anchors[i], anchors[i + 1]) for i in range(0, len(anchors), 2)] + // anchors_s = np.array( + // [(an_w / input_w, an_h / input_h) for an_w, an_h in anchors]) + // anchor_w = anchors_s[:, 0:1].reshape((1, an_num, 1, 1)) + // anchor_h = anchors_s[:, 1:2].reshape((1, an_num, 1, 1)) + std::vector valid_anchors(anchor_num); + valid_anchors.assign(anchors_.begin(), anchors_.begin() + anchor_num * 2); + auto anchors = + helper_->Constant(GetOnnxDtype(x_info[0].dtype), valid_anchors); + anchors = helper_->Reshape(anchors, {anchor_num, 2}); + + auto downsample = + helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), downsample_ratio_); + auto ori_wh = + helper_->MakeNode("Mul", {wh->output(0), downsample})->output(0); + anchors = helper_->MakeNode("Div", {anchors, ori_wh})->output(0); + // Following divide operation requires undirectional broadcast + // It satisfies the definition of ONNX, but now sure all the inference engines + // support this rule e.g TensorRTã€OpenVINO anchor_w = anchors_s[:, + // 0:1].reshape((1, an_num, 1, 1)) anchor_h = anchors_s[:, 1:2].reshape((1, + // an_num, 1, 1)) pred_box[:, :, :, :, 2] = np.exp(pred_box[:, :, :, :, 2]) * + // anchor_w pred_box[:, :, :, :, 3] = np.exp(pred_box[:, :, :, :, 3]) * + // anchor_h + anchors = helper_->Reshape(anchors, {1, anchor_num, 1, 1, 2}); + auto pred_box_wh = + helper_->Slice(transposed_x->output(0), {0, 1, 2, 3, 4}, {0, 0, 0, 0, 2}, + {max_int, max_int, max_int, max_int, 4}); + pred_box_wh = helper_->MakeNode("Exp", {pred_box_wh})->output(0); + pred_box_wh = helper_->MakeNode("Mul", {pred_box_wh, anchors})->output(0); + + // if iou_aware: + // pred_conf = sigmoid(x[:, :, :, :, 4:5])**( + // 1 - iou_aware_factor) * sigmoid(ioup)**iou_aware_factor + // else: + // pred_conf = sigmoid(x[:, :, :, :, 4:5]) + auto confidence = + helper_->Slice(transposed_x->output(0), {0, 1, 2, 3, 4}, {0, 0, 0, 0, 4}, + {max_int, max_int, max_int, max_int, 5}); + std::string pred_conf = helper_->MakeNode("Sigmoid", {confidence})->output(0); + if (iou_aware_) { + auto ioup = helper_->Slice(x_info[0].name, {0, 1, 2, 3}, {0, 0, 0, 0}, + {max_int, anchor_num, max_int, max_int}); + ioup = helper_->Unsqueeze(ioup, {4}); + ioup = helper_->MakeNode("Sigmoid", {ioup})->output(0); + float power_value_0 = 1 - iou_aware_factor_; + auto power_0 = + helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), power_value_0); + auto power_1 = helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), + iou_aware_factor_); + ioup = helper_->MakeNode("Pow", {ioup, power_1})->output(0); + pred_conf = helper_->MakeNode("Pow", {pred_conf, power_0})->output(0); + pred_conf = helper_->MakeNode("Mul", {pred_conf, ioup})->output(0); + } + + // pred_conf[pred_conf < conf_thresh] = 0. + // pred_score = sigmoid(x[:, :, :, :, 5:]) * pred_conf + // pred_box = pred_box * (pred_conf > 0.).astype('float32') + auto value_2 = + helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), float(2.0)); + auto center = helper_->MakeNode("Div", {pred_box_wh, value_2})->output(0); + auto min_xy = helper_->MakeNode("Sub", {pred_box_xy, center})->output(0); + auto max_xy = helper_->MakeNode("Add", {pred_box_xy, center})->output(0); + + auto conf_thresh = + helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), conf_thresh_); + auto filter = + helper_->MakeNode("Greater", {pred_conf, conf_thresh})->output(0); + filter = helper_->AutoCast(filter, P2ODataType::BOOL, x_info[0].dtype); + pred_conf = helper_->MakeNode("Mul", {pred_conf, filter})->output(0); + auto pred_score = + helper_->Slice(transposed_x->output(0), {0, 1, 2, 3, 4}, {0, 0, 0, 0, 5}, + {max_int, max_int, max_int, max_int, max_int}); + pred_score = helper_->MakeNode("Sigmoid", {pred_score})->output(0); + pred_score = helper_->MakeNode("Mul", {pred_score, pred_conf})->output(0); + auto pred_box = helper_->Concat({min_xy, max_xy}, 4); + pred_box = helper_->MakeNode("Mul", {pred_box, filter})->output(0); + + auto value_neg_1 = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, int64_t(-1)); + auto value_4 = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, int64_t(4)); + auto new_shape = helper_->Concat({nchw[0], value_neg_1, value_4}, 0); + pred_box = helper_->MakeNode("Reshape", {pred_box, new_shape})->output(0); + + auto float_img_size = helper_->AutoCast( + im_size_info[0].name, im_size_info[0].dtype, x_info[0].dtype); + float_img_size = helper_->Unsqueeze(float_img_size, {1}); + auto split_im_hw = helper_->Split(float_img_size, {1, 1}, 2); + auto im_whwh = helper_->Concat( + {split_im_hw[1], split_im_hw[0], split_im_hw[1], split_im_hw[0]}, 2); + + if (!clip_bbox_) { + auto out = helper_->MakeNode("Mul", {pred_box, im_whwh})->output(0); + helper_->AutoCast(out, boxes_info[0].name, x_info[0].dtype, + boxes_info[0].dtype); + } else { + pred_box = helper_->MakeNode("Mul", {pred_box, im_whwh})->output(0); + auto im_wh = helper_->Concat({split_im_hw[1], split_im_hw[0]}, 2); + im_wh = helper_->MakeNode("Sub", {im_wh, float_value_1})->output(0); + auto pred_box_xymin_xymax = helper_->Split(pred_box, {2, 2}, 2); + pred_box_xymin_xymax[0] = + helper_->MakeNode("Relu", {pred_box_xymin_xymax[0]})->output(0); + pred_box_xymin_xymax[1] = + helper_->MakeNode("Min", {pred_box_xymin_xymax[1], im_wh})->output(0); + auto out = helper_->Concat(pred_box_xymin_xymax, 2); + helper_->AutoCast(out, boxes_info[0].name, x_info[0].dtype, + boxes_info[0].dtype); + } + + auto class_num = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, class_num_); + auto score_out_shape = + helper_->Concat({nchw[0], value_neg_1, class_num}, int64_t(0)); + auto score_out = + helper_->MakeNode("Reshape", {pred_score, score_out_shape})->output(0); + helper_->AutoCast(score_out, scores_info[0].name, x_info[0].dtype, + scores_info[0].dtype); +} +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/detection/yolo_box.h b/paddle2onnx/mapper/detection/yolo_box.h new file mode 100644 index 000000000..1c4055f5e --- /dev/null +++ b/paddle2onnx/mapper/detection/yolo_box.h @@ -0,0 +1,53 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class YoloBoxMapper : public Mapper { + public: + YoloBoxMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + MarkAsExperimentalOp(); + GetAttr("clip_bbox", &clip_bbox_); + GetAttr("iou_aware", &iou_aware_); + GetAttr("conf_thresh", &conf_thresh_); + GetAttr("iou_aware_factor", &iou_aware_factor_); + GetAttr("class_num", &class_num_); + GetAttr("downsample_ratio", &downsample_ratio_); + GetAttr("scale_x_y", &scale_x_y_); + GetAttr("anchors", &anchors_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset11(); + + private: + bool clip_bbox_; + bool iou_aware_; + float conf_thresh_; + float iou_aware_factor_; + float scale_x_y_; + int64_t class_num_; + int64_t downsample_ratio_; + std::vector anchors_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/elementwise.cc b/paddle2onnx/mapper/elementwise.cc new file mode 100644 index 000000000..6fc42dc60 --- /dev/null +++ b/paddle2onnx/mapper/elementwise.cc @@ -0,0 +1,188 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#include "paddle2onnx/mapper/elementwise.h" + +namespace paddle2onnx { + +REGISTER_MAPPER(elementwise_add, ElementwiseMapper) +REGISTER_MAPPER(elementwise_sub, ElementwiseMapper) +REGISTER_MAPPER(elementwise_div, ElementwiseMapper) +REGISTER_MAPPER(elementwise_mul, ElementwiseMapper) +REGISTER_MAPPER(elementwise_min, ElementwiseMapper) +REGISTER_MAPPER(elementwise_max, ElementwiseMapper) +REGISTER_MAPPER(elementwise_pow, ElementwiseMapper) +REGISTER_MAPPER(elementwise_mod, ElementWiseModMapper) +REGISTER_MAPPER(elementwise_floordiv, ElementWiseFloordivMapper) + +int32_t ElementwiseMapper::GetMinOpset(bool verbose) { + if (OpType() == "elementwise_min" || OpType() == "elementwise_max") { + Logger(verbose, 8) << RequireOpset(8) << std::endl; + return 8; + } + return 7; +} + +void ElementwiseMapper::Opset7() { + auto input_x_info = GetInput("X"); + auto input_y_info = GetInput("Y"); + auto output_info = GetOutput("Out"); + auto iter = op_mapper_.find(OpType()); + Assert(op_mapper_.end() != iter, + "Cannot find " + OpType() + " in elementwise op_mapper."); + + auto x_name = input_x_info[0].name; + auto y_name = input_y_info[0].name; + if (input_x_info[0].dtype == P2ODataType::BOOL && + input_y_info[0].dtype == P2ODataType::BOOL) { + x_name = + helper_->AutoCast(x_name, input_x_info[0].dtype, P2ODataType::INT32); + y_name = + helper_->AutoCast(y_name, input_y_info[0].dtype, P2ODataType::INT32); + } + + std::string output_name; + if (axis_ == -1 || axis_ == (input_x_info[0].Rank() - 1) || + input_x_info[0].Rank() == input_y_info[0].Rank()) { + output_name = helper_->MakeNode(iter->second, {x_name, y_name})->output(0); + } else { + std::vector broadcast_shape(input_x_info[0].Rank(), 1); + for (int i = axis_; i < axis_ + input_y_info[0].Rank(); ++i) { + broadcast_shape[i] = input_y_info[0].shape[i - axis_]; + } + std::string broadcast_shape_node = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), broadcast_shape); + auto y_node = helper_->MakeNode("Reshape", {y_name, broadcast_shape_node}); + output_name = + helper_->MakeNode(iter->second, {x_name, y_node->output(0)})->output(0); + } + + if (input_x_info[0].dtype == P2ODataType::BOOL && + input_y_info[0].dtype == P2ODataType::BOOL) { + helper_->AutoCast(output_name, output_info[0].name, P2ODataType::INT32, + P2ODataType::BOOL); + } else { + helper_->MakeNode("Identity", {output_name}, {output_info[0].name}); + } +} + +void ElementWiseModMapper::Opset10() { + auto input_x_info = GetInput("X"); + auto input_y_info = GetInput("Y"); + auto output_info = GetOutput("Out"); + int64_t fmod = 0; + if (input_y_info[0].dtype == P2ODataType::INT32 || + input_y_info[0].dtype == P2ODataType::INT64) { + if (this->deploy_backend == "tensorrt") { + auto x = helper_->AutoCast(input_x_info[0].name, input_x_info[0].dtype, + input_y_info[0].dtype); + auto times = + helper_->MakeNode("Div", {input_x_info[0].name, input_y_info[0].name}) + ->output(0); + auto result = + helper_->MakeNode("Mul", {input_y_info[0].name, times})->output(0); + helper_->MakeNode("Sub", {input_x_info[0].name, result}, + {output_info[0].name}); + return; + } + auto mod_node = + helper_->MakeNode("Mod", {input_x_info[0].name, input_y_info[0].name}, + {output_info[0].name}); + AddAttribute(mod_node, "fmod", fmod); + return; + } + + fmod = 1; + + auto abs_x_node = helper_->MakeNode("Abs", {input_x_info[0].name}); + auto abs_y_node = helper_->MakeNode("Abs", {input_y_info[0].name}); + + auto dtype = input_y_info[0].dtype; + std::vector val_0 = {0.0}; + + std::string zero_node = helper_->Constant(GetOnnxDtype(dtype), val_0); + + auto mod_node = + helper_->MakeNode("Mod", {abs_x_node->output(0), abs_y_node->output(0)}); + AddAttribute(mod_node, "fmod", fmod); + + auto neg_node = helper_->MakeNode("Neg", {mod_node->output(0)}); + + auto less_node = helper_->MakeNode("Less", {input_x_info[0].name, zero_node}); + + std::string condition_node = + helper_->AutoCast(less_node->output(0), dtype, P2ODataType::BOOL); + + auto mod_res_node = helper_->MakeNode( + "Where", {condition_node, neg_node->output(0), mod_node->output(0)}); + + auto mod_y_add_node = + helper_->MakeNode("Add", {mod_res_node->output(0), input_y_info[0].name}); + + auto mod_y_mul_node = + helper_->MakeNode("Mul", {mod_res_node->output(0), input_y_info[0].name}); + + auto mod_y_mul_less_node = + helper_->MakeNode("Less", {mod_y_mul_node->output(0), zero_node}); + + std::string mod_y_mul_condition_node = helper_->AutoCast( + mod_y_mul_less_node->output(0), dtype, P2ODataType::BOOL); + + helper_->MakeNode("Where", + {mod_y_mul_condition_node, mod_y_add_node->output(0), + mod_res_node->output(0)}, + {output_info[0].name}); +} + +void ElementWiseFloordivMapper::Opset7() { + auto input_x_info = GetInput("X"); + auto input_y_info = GetInput("Y"); + auto output_info = GetOutput("Out"); + + bool is_int = false; + if (input_x_info[0].dtype <= 3 || input_x_info[0].dtype == 20 || + input_y_info[0].dtype <= 3 || input_y_info[0].dtype == 20) { + is_int = true; + } + if (axis_ == -1 || axis_ == input_x_info[0].Rank() - 1 || + input_x_info[0].Rank() == input_y_info[0].Rank()) { + if (is_int) { + helper_->MakeNode("Div", {input_x_info[0].name, input_y_info[0].name}, + {output_info[0].name}); + } else { + auto div_node = helper_->MakeNode( + "Div", {input_x_info[0].name, input_y_info[0].name}); + helper_->MakeNode("Floor", {div_node->output(0)}, {output_info[0].name}); + } + } else { + std::vector broadcast_shape; + broadcast_shape.resize(axis_ + input_x_info[0].Rank(), 1); + for (auto i = 0; i < input_y_info[0].Rank(); ++i) { + broadcast_shape[axis_ + i] = input_y_info[0].shape[i]; + } + std::string broadcast_shape_node = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), broadcast_shape); + auto y_node = helper_->MakeNode( + "Reshape", {input_y_info[0].name, broadcast_shape_node}); + if (is_int) { + helper_->MakeNode("Div", {input_x_info[0].name, y_node->output(0)}, + {output_info[0].name}); + } else { + auto div_node = + helper_->MakeNode("Div", {input_x_info[0].name, y_node->output(0)}); + helper_->MakeNode("Floor", {div_node->output(0)}, {output_info[0].name}); + } + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/elementwise.h b/paddle2onnx/mapper/elementwise.h new file mode 100644 index 000000000..4a6ec28f9 --- /dev/null +++ b/paddle2onnx/mapper/elementwise.h @@ -0,0 +1,75 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once +#include +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ElementwiseMapper : public Mapper { + public: + ElementwiseMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + + op_mapper_["elementwise_add"] = "Add"; + op_mapper_["elementwise_sub"] = "Sub"; + op_mapper_["elementwise_div"] = "Div"; + op_mapper_["elementwise_mul"] = "Mul"; + op_mapper_["elementwise_min"] = "Min"; + op_mapper_["elementwise_max"] = "Max"; + op_mapper_["elementwise_pow"] = "Pow"; + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::map op_mapper_; + int64_t axis_; +}; + +class ElementWiseModMapper : public Mapper { + public: + ElementWiseModMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 10) << RequireOpset(10) << std::endl; + return 10; + } + + void Opset10(); +}; + +class ElementWiseFloordivMapper : public Mapper { + public: + ElementWiseFloordivMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + + void Opset7(); + + private: + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/exporter.cc b/paddle2onnx/mapper/exporter.cc new file mode 100644 index 000000000..e2d158e76 --- /dev/null +++ b/paddle2onnx/mapper/exporter.cc @@ -0,0 +1,548 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/exporter.h" + +#include +#include + +#include + +#include "onnxoptimizer/optimize.h" +#include "paddle2onnx/optimizer/convert_fp32_to_fp16.h" +#include "paddle2onnx/optimizer/eliminate_non_transpose.h" +#include "paddle2onnx/optimizer/fuse_constant_cast.h" +#include "paddle2onnx/optimizer/fuse_constant_reshape.h" +#include "paddle2onnx/optimizer/fuse_constant_unsqueeze.h" +#include "paddle2onnx/optimizer/fuse_paddle_conv_bias.h" +#include "paddle2onnx/optimizer/fuse_unsqueeze_conv2d_squeeze.h" + +namespace paddle2onnx { +MapperHelper* MapperHelper::helper = nullptr; + +void ModelExporter::ExportParameters( + const std::map& params, bool use_initializer) { + for (auto& item : params) { + // TODO(jiangjiajun) I'm not handling use_initializer now, but some day I + // will + auto node = MakeConstant(item.first, item.second); + parameters.push_back(std::move(node)); + } +} + +void ModelExporter::UpdateParameters( + const std::map& params) { + for (auto& item : params) { + auto node = MakeConstant(item.first, item.second); + bool updated = false; + for (int i = 0; i < parameters.size(); ++i) { + auto old_node = parameters[i]; + if (old_node->output(0) == item.first) { + parameters.erase(parameters.begin() + i); + parameters.push_back(std::move(node)); + updated = true; + break; + } + } + if (!updated) { + parameters.push_back(std::move(node)); + } + } +} + +void ModelExporter::ExportInputOutputs( + const std::vector& input_infos, + const std::vector& output_infos) { + for (auto& item : input_infos) { + auto value_info = MakeValueInfo(item); + inputs.push_back(std::move(value_info)); + } + for (auto& item : output_infos) { + auto value_info = MakeValueInfo(item); + outputs.push_back(std::move(value_info)); + } +} + +void ModelExporter::ExportOp(const PaddleParser& parser, OnnxHelper* helper, + int32_t opset_version, int64_t block_id, + int64_t op_id, bool verbose) { + _current_exported_num += 1; + auto op = parser.GetOpDesc(block_id, op_id); +#ifdef PADDLE2ONNX_DEBUG + P2OLogger(true) << "---Converting operator: " << op.type() << " ---" + << std::endl; +#endif + if (op.type() == "while") { + return ExportLoop(parser, helper, opset_version, block_id, op_id, verbose); + } + + auto mapper = MapperHelper::Get()->CreateMapper(op.type(), parser, helper, + block_id, op_id); + mapper->deploy_backend = _deploy_backend; +#ifdef PADDLE2ONNX_DEBUG + P2OLogger(true) << "Mapper Name: " << mapper->Name() << std::endl; +#endif + // Some operators will export as custom operator + auto iter = custom_ops.find(op.type()); + if (iter != custom_ops.end()) { + mapper->export_as_custom_op = true; + mapper->custom_op_name = iter->second; + } + mapper->Run(); + delete mapper; + +#ifdef PADDLE2ONNX_DEBUG + P2OLogger(true) << "---Converting operator: " << op.type() << " done---" + << std::endl; +#endif +} + +void ModelExporter::ProcessGraphDumplicateNames( + std::vector>* parameters, + std::vector>* inputs, + std::vector>* outputs, + std::vector>* nodes, + std::map* quantize_info) { + // process dumplicate tensor names + std::map renamer; + std::set tensor_names; + for (auto& item : *parameters) { + for (size_t i = 0; i < item->output_size(); ++i) { + if (tensor_names.find(item->output(i)) != tensor_names.end()) { + Assert(false, "There's dumplicate names in exported parameters."); + } + tensor_names.insert(item->output(i)); + } + } + for (auto& item : *inputs) { + if (tensor_names.find(item->name()) != tensor_names.end()) { + Assert(false, "There's dumplicate names:" + item->name() + + " in exported parameters and inputs."); + } + tensor_names.insert(item->name()); + } + for (auto& item : *nodes) { + // update node inputs + for (size_t i = 0; i < item->input_size(); ++i) { + if (renamer.find(item->input(i)) != renamer.end()) { + auto updated_name = renamer[item->input(i)]; + while (renamer.find(updated_name) != renamer.end()) { + updated_name = renamer[updated_name]; + } + *(item->mutable_input(i)) = updated_name; + } + } + // if there's dumplicate name + // will generate new name and replace it + for (size_t i = 0; i < item->output_size(); ++i) { + if (tensor_names.find(item->output(i)) != tensor_names.end()) { + std::string renamed_tensor_name = item->output(i); + while (renamer.find(renamed_tensor_name) != renamer.end()) { + renamed_tensor_name = renamer[renamed_tensor_name]; + } + auto new_tensor_name = + MapperHelper::Get()->GenName(renamed_tensor_name); + P2OLogger() << "Find dumplicate output name '" << renamed_tensor_name + << "', it will rename to '" << new_tensor_name << "'." + << std::endl; + if (quantize_info && + quantize_info->find(renamed_tensor_name) != quantize_info->end()) { + (*quantize_info)[new_tensor_name] = + (*quantize_info)[renamed_tensor_name]; + } + *(item->mutable_output(i)) = new_tensor_name; + renamer[renamed_tensor_name] = new_tensor_name; + } + tensor_names.insert(item->output(i)); + } + } + + for (auto& item : *outputs) { + if (renamer.find(item->name()) != renamer.end()) { + auto updated_name = renamer[item->name()]; + while (renamer.find(updated_name) != renamer.end()) { + updated_name = renamer[updated_name]; + } + item->set_name(updated_name); + } + } +} + +void ModelExporter::SaveExternalData(::paddle2onnx::GraphProto* graph, + const std::string& external_file_path, + bool* save_external) { + P2OLogger() << "The exported ONNX model is bigger than 2G, external data " + "will save to file: " + << external_file_path << std::endl; + std::string file_name = GetFilenameFromPath(external_file_path); + if (save_external) { + *save_external = true; + } + std::fstream f(external_file_path, std::ios::out); + Assert(f.is_open(), "Failed to open: " + external_file_path + + " file to save external data"); + for (auto index = 0; index < graph->node_size(); index++) { + auto node = graph->mutable_node(index); + if (node->op_type() != "Constant") { + continue; + } + for (auto i = 0; i < node->attribute_size(); i++) { + auto attr = node->mutable_attribute(i); + if (attr->name() != "value") { + continue; + } + auto tensor = attr->mutable_t(); + + if (tensor->raw_data().size() <= 128) { + continue; + } + + tensor->set_data_location(TensorProto::EXTERNAL); + auto external_data = tensor->add_external_data(); + external_data->set_key("location"); + external_data->set_value(file_name); + + external_data = tensor->add_external_data(); + external_data->set_key("offset"); + f.seekg(0, std::ios::end); + int64_t offset = f.tellg(); + external_data->set_value(std::to_string(offset)); + auto raw_data = tensor->raw_data(); + f << raw_data; + external_data = tensor->add_external_data(); + external_data->set_key("length"); + int64_t raw_datas_size = raw_data.size(); + external_data->set_value(std::to_string(raw_datas_size)); + tensor->clear_raw_data(); + } + } + f.close(); +} +void ModelExporter::ONNXChecker(const ONNX_NAMESPACE::ModelProto& model, + const bool& verbose) { + // TODO(jiangjiajun) + // If we need to integrate with framework + // this check will return a information + // to let framework know the conversion is + // pass or fail + try { + // ONNX_NAMESPACE::checker::check_model(*(model.get())); + ONNX_NAMESPACE::checker::check_model(model); + } catch (const std::exception& e) { + P2OLogger(verbose) << "The exported ONNX model is invalid." << std::endl; + P2OLogger(verbose) << "Model checker error log: " << e.what() << std::endl; + } + P2OLogger(verbose) << "PaddlePaddle model is exported as ONNX format now." + << std::endl; +} + +std::string ModelExporter::Run( + const PaddleParser& parser, int opset_version, bool auto_upgrade_opset, + bool verbose, bool enable_onnx_checker, bool enable_experimental_op, + bool enable_optimize, const std::string& deploy_backend, + std::string* calibration_cache, const std::string& external_file, + bool* save_external, bool export_fp16_model) { + _deploy_backend = deploy_backend; + _helper.SetOpsetVersion(opset_version); + _total_ops_num = 0; + _current_exported_num = 0; + for (auto i = 0; i < parser.NumOfBlocks(); ++i) { + _total_ops_num += parser.NumOfOps(i); + } + _helper.nodes.reserve(_total_ops_num * 3); + Assert(opset_version <= MAX_ONNX_OPSET_VERSION && opset_version >= 7, + "Paddle2ONNX now only support opset version in range of [7, " + + std::to_string(MAX_ONNX_OPSET_VERSION) + "]."); + _helper.Clear(); + inputs.clear(); + outputs.clear(); + parameters.clear(); + + // clear name_counter + // this use to generate unique name + // for intermdiate + // while converting all the op + MapperHelper::Get()->ClearNameCounter(); + + std::set unsupported_ops; + if (!CheckIfOpSupported(parser, &unsupported_ops, enable_experimental_op)) { + auto logger = P2OLogger(); + logger << "Oops, there are some operators not supported yet, including "; + for (auto& item : unsupported_ops) { + logger << item << ","; + } + logger << std::endl; + Assert(1 == 0, + "Due to the unsupported operators, the conversion is aborted."); + } + + int32_t min_opset = GetMinOpset(parser, verbose); + if (min_opset < 0) { + Assert(false, + "Model exporting failed, you can report this problem to " + "https://github.com/PaddlePaddle/Paddle2ONNX.git."); + } + if (!auto_upgrade_opset) { + if (min_opset > opset_version) { + P2OLogger() << "This PaddlePaddle model is not able to export to ONNX " + "with opset_version=" + << opset_version << ", please set the opset_version to " + << min_opset << " or higher for successfully conversion." + << std::endl; + Assert(false, + "Due to opset version, the model exporting is aborted, please set " + "a higher opset_version or set auto_upgrade_opset=true."); + } + } else { + if (min_opset > opset_version) { + P2OLogger() << "Opset version will change to " << min_opset << " from " + << opset_version << std::endl; + opset_version = min_opset; + } + } + _helper.SetOpsetVersion(opset_version); + P2OLogger(verbose) << "Use opset_version = " << _helper.GetOpsetVersion() + << " for ONNX export." << std::endl; + ExportParameters(parser.params); + ExportInputOutputs(parser.inputs, parser.outputs); + + // Only convert blocks 0 now + // because control flow is not supported yet + for (auto i = 0; i < parser.NumOfOps(0); ++i) { + auto op = parser.GetOpDesc(0, i); + if (op.type() == "feed") { + continue; + } else if (op.type() == "fetch") { + continue; + } + ExportOp(parser, &_helper, opset_version, 0, i, verbose); + } + + // construct a onnx model proto + auto model = std::make_shared(); + // TODO(jiangjiajun) ir version is related to onnx version + model->set_ir_version(ONNX_NAMESPACE::IR_VERSION); + auto graph = model->mutable_graph(); + graph->set_name("Model from PaddlePaddle."); + auto opset_id = model->add_opset_import(); + opset_id->set_domain(""); + opset_id->set_version(opset_version); + if (custom_ops.size()) { + auto opset_paddle_id = model->add_opset_import(); + opset_paddle_id->set_domain("Paddle"); + opset_paddle_id->set_version(1); + } + + ProcessGraphDumplicateNames(¶meters, &inputs, &outputs, &_helper.nodes, + &_helper.quantize_info); + if (parser.is_quantized_model) { + quantize_model_processer.ProcessQuantizeModel( + ¶meters, &inputs, &outputs, &_helper.nodes, &_helper, + deploy_backend, parser, calibration_cache); + // Update int8 weights in quantized OP to float32 + UpdateParameters(_helper.updated_params); + } + + for (auto& item : parameters) { + *(graph->add_node()) = *(item.get()); + } + for (auto& item : inputs) { + *(graph->add_input()) = *(item.get()); + } + for (auto& item : _helper.nodes) { + *(graph->add_node()) = (*item.get()); + } + for (auto& item : outputs) { + *(graph->add_output()) = (*item.get()); + } + for (auto& item : _helper.value_infos) { + *(graph->add_value_info()) = (*item.get()); + } + + ONNX_NAMESPACE::ModelProto onnx_model; + std::string out; + if (enable_optimize) { + onnx_model = Optimize(*(model.get())); + } else { + onnx_model = *model.get(); + } + + // convert fp32 model to fp16 + if (export_fp16_model) { + P2OLogger(verbose) << "Convert FP32 ONNX model to FP16." << std::endl; + ConvertFp32ToFp16 convert; + convert.SetCustomOps(custom_ops); + convert.Convert(&onnx_model); + } + + // save external data file for big model + std::string external_data_file; + if (onnx_model.ByteSizeLong() > INT_MAX) { + if (external_file.empty()) { + external_data_file = "external_data"; + } else { + external_data_file = external_file; + } + } + if (external_data_file.size()) { + SaveExternalData(onnx_model.mutable_graph(), external_data_file, + save_external); + } + // check model + if (enable_onnx_checker) { + ONNXChecker(onnx_model, verbose); + } + + if (!onnx_model.SerializeToString(&out)) { + P2OLogger(verbose) + << "Error happenedd while optimizing the exported ONNX model." + << std::endl; + return ""; + } + return out; +} + +bool ModelExporter::CheckIfOpSupported(const PaddleParser& parser, + std::set* unsupported_ops, + bool enable_experimental_op) { + unsupported_ops->clear(); + for (auto i = 0; i < parser.NumOfBlocks(); ++i) { + for (auto j = 0; j < parser.NumOfOps(i); ++j) { + auto op = parser.GetOpDesc(i, j); + if (op.type() == "feed" || op.type() == "fetch") { + continue; + } + if (op.type() == "while" && enable_experimental_op) { + if (!IsLoopSupported(parser, i, j)) { + unsupported_ops->insert("while"); + } + continue; + } + if (!MapperHelper::Get()->IsRegistered(op.type())) { + unsupported_ops->insert(op.type()); + } else if (!enable_experimental_op) { + auto mapper = MapperHelper::Get()->CreateMapper(op.type(), parser, + &_helper, i, j); + if (mapper->IsExperimentalOp()) { + unsupported_ops->insert(op.type()); + } + delete mapper; + } + } + } + return (unsupported_ops->size() == 0); +} + +int32_t ModelExporter::GetMinOpset(const PaddleParser& parser, bool verbose) { + int32_t opset_version = _helper.GetOpsetVersion(); + int32_t max_opset = 7; + bool exportable = true; + // Record the number of ops that need to be converted + int converted_op_num = 0; + std::set verbose_log; + for (auto i = 0; i < parser.NumOfBlocks(); ++i) { + for (auto j = 0; j < parser.NumOfOps(i); ++j) { + auto op = parser.GetOpDesc(i, j); + if (custom_ops.find(op.type()) != custom_ops.end()) { + continue; + } + if (op.type() == "feed" || op.type() == "fetch") { + continue; + } + converted_op_num += 1; + int current_min_opset = 7; + if (op.type() == "while") { + P2OLogger() << "Detected there's control flow 'while' op in your " + "model, this requires the minimal opset version of 13." + << std::endl; + current_min_opset = 13; + } else { + auto mapper = MapperHelper::Get()->CreateMapper(op.type(), parser, + &_helper, i, j); + auto iter = custom_ops.find(op.type()); + if (iter != custom_ops.end()) { + mapper->export_as_custom_op = true; + } + current_min_opset = mapper->GetMinOpset(verbose); + delete mapper; + } + if (current_min_opset < 0) { + exportable = false; + P2OLogger(verbose) << "Due to the operator: " << op.type() + << ", this model cannot be exported to ONNX." + << std::endl; + } else if (current_min_opset > max_opset) { + max_opset = current_min_opset; + if (verbose && current_min_opset > opset_version) { + verbose_log.insert("Due to the operator: " + op.type() + + ", requires opset_version >= " + + std::to_string(current_min_opset) + "."); + } + } + } + } + if (verbose) { + for (auto iter = verbose_log.begin(); iter != verbose_log.end(); ++iter) { + P2OLogger() << *iter << std::endl; + } + } + + // Here we put some checks to make sure + // paddle2onnx could compatible with + // other version of onnx + int32_t max_support_opset = MAX_ONNX_OPSET_VERSION; + if (exportable && (max_opset > MAX_ONNX_OPSET_VERSION)) { + exportable = false; + P2OLogger() << "[ERROR] The compiled ONNX version only supports opset 7~" + << MAX_ONNX_OPSET_VERSION + << ", but now this model need as least opset " << max_opset + << ", please compile with higher version of ONNX." << std::endl; + } + if (exportable) { + return max_opset; + } + + return -1; +} + +ONNX_NAMESPACE::ModelProto ModelExporter::Optimize( + const ONNX_NAMESPACE::ModelProto& model) { + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + std::vector passes = {"eliminate_identity", + "eliminate_deadend", + "eliminate_deadend", + "fuse_constant_reshape", + "fuse_constant_unsqueeze", + "fuse_paddle_conv_bias", + "fuse_consecutive_transposes", + "eliminate_non_transpose", + "fuse_matmul_add_bias_into_gemm", + "eliminate_identity", + "eliminate_deadend", + "eliminate_unused_initializer"}; + return ONNX_NAMESPACE::optimization::Optimize(model, passes); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/exporter.h b/paddle2onnx/mapper/exporter.h new file mode 100755 index 000000000..484c76359 --- /dev/null +++ b/paddle2onnx/mapper/exporter.h @@ -0,0 +1,122 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include + +#include +#include + +#include "paddle2onnx/mapper/mapper.h" +#include "paddle2onnx/mapper/quantize_helper.h" +#include "paddle2onnx/parser/parser.h" + +#ifdef _MSC_VER +#define PATH_SEP "\\" +#else +#define PATH_SEP "/" +#endif + +inline std::string GetFilenameFromPath(const std::string& path) { + auto pos = path.find_last_of(PATH_SEP); + if (pos == std::string::npos) { + return path; + } + return path.substr(pos + 1); +} + +namespace paddle2onnx { + +struct ModelExporter { + private: + std::vector> parameters; + std::vector> inputs; + std::vector> outputs; + // The _deploy_backend will pass to Mapper to influence the conversion + std::string _deploy_backend = "onnxruntime"; + OnnxHelper _helper; + int32_t _total_ops_num = 0; + int32_t _current_exported_num = 0; + + void ExportParameters(const std::map& params, + bool use_initializer = false); + + // Update constant node in parameters. When process quantize model, the weight + // dtype may be int8, it should be convet to float32 and use this function to + // update converted params. + void UpdateParameters(const std::map& params); + void ExportInputOutputs(const std::vector& input_infos, + const std::vector& output_infos); + void ExportOp(const PaddleParser& parser, OnnxHelper* helper, + int32_t opset_version, int64_t block_id, int64_t op_id, + bool verbose); + bool IsLoopSupported(const PaddleParser& parser, const int64_t& block_id, + const int64_t& op_id); + void ExportLoop(const PaddleParser& parser, OnnxHelper* helper, + int32_t opset_version, int64_t block_id, int64_t op_id, + bool verbose); + + ONNX_NAMESPACE::ModelProto Optimize(const ONNX_NAMESPACE::ModelProto& model); + + public: + // custom operators for export + // + std::map custom_ops; + + QuantizeModelProcessor quantize_model_processer; + // Get a proper opset version in range of [7, 16] + // Also will check the model is convertable, this will include 2 parts + // 1. is the op convert function implemented + // 2. is the op convertable(some cases may not be able to convert) + // If the model is not convertable, return -1 + int32_t GetMinOpset(const PaddleParser& parser, bool verbose = false); + + // // Remove isolated nodes in onnx model + // void RemoveIsolatedNodes( + // std::vector>* parameters, + // std::vector>* inputs, + // std::vector>* outputs, + // std::vector>* nodes); + // Process dumplicate tensor names in paddle model + void ProcessGraphDumplicateNames( + std::vector>* parameters, + std::vector>* inputs, + std::vector>* outputs, + std::vector>* nodes, + std::map* quantize_info = nullptr); + + bool CheckIfOpSupported(const PaddleParser& parser, + std::set* unsupported_ops, + bool enable_experimental_op); + + void SaveExternalData(::paddle2onnx::GraphProto* graph, + const std::string& external_file_path, + bool* save_external = nullptr); + + void ONNXChecker(const ONNX_NAMESPACE::ModelProto& model, + const bool& verbose); + + std::string Run(const PaddleParser& parser, int opset_version = 9, + bool auto_upgrade_opset = true, bool verbose = false, + bool enable_onnx_checker = true, + bool enable_experimental_op = false, + bool enable_optimize = true, + const std::string& deploy_backend = "onnxruntime", + std::string* calibration_cache = nullptr, + const std::string& external_file = "", + bool* save_external = nullptr, + bool export_fp16_model = false); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/loop.cc b/paddle2onnx/mapper/loop.cc new file mode 100644 index 000000000..00d72b323 --- /dev/null +++ b/paddle2onnx/mapper/loop.cc @@ -0,0 +1,195 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/exporter.h" + +namespace paddle2onnx { + +bool ModelExporter::IsLoopSupported(const PaddleParser& parser, + const int64_t& block_id, + const int64_t& op_id) { + auto x_info = parser.GetOpInput(block_id, op_id, "X"); + auto out_info = parser.GetOpOutput(block_id, op_id, "Out"); + auto cond_info = parser.GetOpInput(block_id, op_id, "Condition"); + std::set input_names; + for (size_t i = 0; i < x_info.size(); ++i) { + input_names.insert(x_info[i].name); + } + input_names.insert(cond_info[0].name); + + for (size_t i = 0; i < out_info.size(); ++i) { + auto iter = input_names.find(out_info[i].name); + if (iter == input_names.end()) { + P2OLogger() << "Cannot find output:" << out_info[i].name << " in input tensors while converting operator 'while', Paddle2ONNX doesn't support this situation now." << std::endl; + return false; + } + } + for (size_t i = 0; i < x_info.size(); ++i) { + if (x_info[i].is_tensor_array) { + P2OLogger() << "LodTensorArray is not supported." << std::endl; + return false; + } + } + return true; +} + +void ModelExporter::ExportLoop(const PaddleParser& parser, OnnxHelper* helper, + int32_t opset_version, int64_t block_id, + int64_t op_id, bool verbose) { + auto op = parser.GetOpDesc(block_id, op_id); + int32_t sub_block_idx = -1; + for (size_t i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == "sub_block") { + sub_block_idx = op.attrs(i).block_idx(); + break; + } + } + Assert(sub_block_idx > 0, "Cannot find sub_block in while operator."); + auto x_info = parser.GetOpInput(block_id, op_id, "X"); + auto cond_info = parser.GetOpInput(block_id, op_id, "Condition"); + + std::vector> inputs; + std::vector> outputs; + + // make loop iter + auto iter_name = MapperHelper::Get()->GenName("loop.iter"); + TensorInfo iter_info(iter_name, std::vector(1, 1), + P2ODataType::INT64); + inputs.push_back(std::move(MakeValueInfo(iter_info))); + + std::set input_names; + // make cond + inputs.push_back(std::move(MakeValueInfo(cond_info[0]))); + input_names.insert(cond_info[0].name); + // other inputs + outputs.push_back(std::move(std::move(MakeValueInfo(cond_info[0])))); + for (size_t i = 0; i < x_info.size(); ++i) { + if (x_info[i].is_tensor_array) { + continue; + } + if (input_names.find(x_info[i].name) != input_names.end()) { + continue; + } + input_names.insert(x_info[i].name); + inputs.push_back(std::move(MakeValueInfo(x_info[i]))); + outputs.push_back(std::move(MakeValueInfo(x_info[i]))); + } + for (size_t i = 0; i < x_info.size(); ++i) { + if (x_info[i].is_tensor_array) { + if (input_names.find(x_info[i].name) != input_names.end()) { + continue; + } + input_names.insert(x_info[i].name); + outputs.push_back(std::move(MakeValueInfo(x_info[i]))); + } + } + + // make op nodes + OnnxHelper loop_helper; + loop_helper.SetOpsetVersion(opset_version); + + for (auto i = 0; i < parser.NumOfOps(sub_block_idx); ++i) { + auto op = parser.GetOpDesc(sub_block_idx, i); + ExportOp(parser, &loop_helper, opset_version, sub_block_idx, i, verbose); + } + + std::vector> parameters; + ProcessGraphDumplicateNames(¶meters, &inputs, &outputs, + &loop_helper.nodes); + std::map renamer; + for (auto& item : inputs) { + auto name = MapperHelper::Get()->GenName("loop.input"); + renamer[item->name()] = name; + item->set_name(name); + } + for (auto& item : loop_helper.nodes) { + for (size_t i = 0; i < item->input_size(); ++i) { + if (renamer.find(item->input(i)) != renamer.end()) { + auto updated_name = renamer[item->input(i)]; + while (renamer.find(updated_name) != renamer.end()) { + updated_name = renamer[updated_name]; + } + *(item->mutable_input(i)) = updated_name; + } + } + } + for (auto& item : outputs) { + if (renamer.find(item->name()) != renamer.end()) { + auto updated_name = renamer[item->name()]; + while (renamer.find(updated_name) != renamer.end()) { + updated_name = renamer[updated_name]; + } + item->set_name(updated_name); + } + } + + // // construct a onnx model proto + // // consider to optimize the subgraph + // auto model = std::make_shared(); + // model->set_ir_version(ONNX_NAMESPACE::IR_VERSION); + // auto graph = model->mutable_graph(); + // auto graph_name = MapperHelper::Get()->GenName("Model from + // PaddlePaddle(Loop)."); + // graph->set_name(graph_name); + // auto opset_id = model->add_opset_import(); + // opset_id->set_domain(""); + // opset_id->set_version(loop_helper->GetOpsetVersion()); + + auto graph_name = MapperHelper::Get()->GenName("paddle.loop"); + auto graph = std::make_shared(); + graph->set_name(graph_name); + for (auto& item : inputs) { + *(graph->add_input()) = *(item.get()); + } + for (auto& item : loop_helper.nodes) { + *(graph->add_node()) = (*item.get()); + } + for (auto& item : outputs) { + *(graph->add_output()) = (*item.get()); + } + + // fake iter + auto fake_iter = helper->Constant(ONNX_NAMESPACE::TensorProto::INT64, + std::vector(1, 1024)); + std::vector x_names; + x_names.push_back(fake_iter); + x_names.push_back(cond_info[0].name); + std::vector out_names; + for (size_t i = 0; i < x_info.size(); ++i) { + if (x_info[i].is_tensor_array) { + continue; + } + if (std::find(x_names.begin(), x_names.end(), x_info[i].name) != x_names.end()) { + continue; + } + x_names.push_back(x_info[i].name); + out_names.push_back(x_info[i].name); + } + for (size_t i = 0; i < x_info.size(); ++i) { + if (x_info[i].is_tensor_array) { + if (std::find(x_names.begin(), x_names.end(), x_info[i].name) != x_names.end()) { + continue; + } + out_names.push_back(x_info[i].name); + } + } + + auto loop_node = helper->MakeNode("Loop", x_names, out_names); + auto attr = loop_node->add_attribute(); + attr->set_name("body"); + attr->set_type(ONNX_NAMESPACE::AttributeProto::GRAPH); + *(attr->mutable_g()) = *(graph.get()); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/mapper.h b/paddle2onnx/mapper/mapper.h new file mode 100755 index 000000000..1cb72d59f --- /dev/null +++ b/paddle2onnx/mapper/mapper.h @@ -0,0 +1,246 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once +#include + +#include "paddle2onnx/mapper/data_helper.h" +#include "paddle2onnx/mapper/onnx_helper.h" +#include "paddle2onnx/mapper/register_mapper.h" +#include "paddle2onnx/parser/parser.h" + +namespace paddle2onnx { + +class Mapper { + public: + Mapper() {} + Mapper(const PaddleParser& p, OnnxHelper* helper, int32_t block_id, + int32_t op_id, std::string name = {}) + : parser_(&p) { + block_idx_ = block_id; + op_idx_ = op_id; + helper_ = helper; + name_ = name; + } + + // The flag will control if the op is exported as a custom operator + // if export_as_custom_op = true, will exported as description in + // custom_op_info + bool export_as_custom_op = false; + // [exported_op_name, domain] + std::string custom_op_name; + std::string deploy_backend; + + P2OLogger Logger(const bool& verbose, const int32_t& opset_version = 100) { + bool v = verbose; + if (opset_version <= helper_->GetOpsetVersion()) { + v = false; + } + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + std::string output_name = ""; + if (op.outputs(0).arguments_size() > 0) { + output_name = op.outputs(0).arguments(0); + } + std::string op_type = op.type(); + std::string prefix = "[Paddle2ONNX] [" + op_type + ": " + output_name + "]"; + return P2OLogger(v, prefix); + } + + P2OLogger Error() { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + std::string output_name = ""; + if (op.outputs(0).arguments_size() > 0) { + output_name = op.outputs(0).arguments(0); + } + std::string op_type = op.type(); + std::string prefix = + "[ERROR][Paddle2ONNX] [" + op_type + ": " + output_name + "]"; + return P2OLogger(true, prefix); + } + + P2OLogger Warn() { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + std::string output_name = ""; + if (op.outputs(0).arguments_size() > 0) { + output_name = op.outputs(0).arguments(0); + } + std::string op_type = op.type(); + std::string prefix = + "[WARN][Paddle2ONNX] [" + op_type + ": " + output_name + "]"; + return P2OLogger(true, prefix); + } + + // Some operators is not implement very well, e.g the output may not be same + // We mark these operators as experimental, these operators requires double + // checking after model exported. + virtual void MarkAsExperimentalOp() { is_experimental_op_ = true; } + virtual bool IsExperimentalOp() const { return is_experimental_op_; } + // the return value in [7, MAX_ONNX_OPSET_VERSION], represent the minimum + // opset_version + // if return value < 0, means the op is not supported. + virtual int32_t GetMinOpset(bool verbose = false) { return 7; } + + virtual bool IsExportAsCustomOp() { return export_as_custom_op; } + + void Run() { + int32_t opset_version = helper_->GetOpsetVersion(); + Assert(opset_version >= 7 && opset_version <= MAX_ONNX_OPSET_VERSION, + "[Paddle2ONNX] Only support opset_version in range of [7, " + + std::to_string(MAX_ONNX_OPSET_VERSION) + "]."); + if (IsExportAsCustomOp()) { + return ExportAsCustomOp(); + } + if (opset_version == 16) { + Opset16(); + } else if (opset_version == 15) { + Opset15(); + } else if (opset_version == 14) { + Opset14(); + } else if (opset_version == 13) { + Opset13(); + } else if (opset_version == 12) { + Opset12(); + } else if (opset_version == 11) { + Opset11(); + } else if (opset_version == 10) { + Opset10(); + } else if (opset_version == 9) { + Opset9(); + } else if (opset_version == 8) { + Opset8(); + } else { + Opset7(); + } + } + + virtual void ExportAsCustomOp() { + Assert(false, + "Operator " + name_ + "doesn't support export as custom operator."); + } + + virtual void Opset16() { Opset15(); } + + virtual void Opset15() { Opset14(); } + + virtual void Opset14() { Opset13(); } + + virtual void Opset13() { Opset12(); } + + virtual void Opset12() { Opset11(); } + + virtual void Opset11() { Opset10(); } + + virtual void Opset10() { Opset9(); } + + virtual void Opset9() { Opset8(); } + + virtual void Opset8() { Opset7(); } + + virtual void Opset7() { + Assert(false, + "This error shouldn't happend, please report to " + "https://github.com/PaddlePaddle/Paddle2ONNX.git."); + } + + virtual ~Mapper() = default; + bool is_experimental_op_ = false; + const PaddleParser* parser_; + OnnxHelper* helper_; + int32_t block_idx_; + int32_t op_idx_; + std::string name_; // op transform name + + std::string OpType() const { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + return op.type(); + } + + std::string Name() const { return name_; } + + bool HasInput(const std::string& name) const { + return parser_->OpHasInput(block_idx_, op_idx_, name); + } + bool HasOutput(const std::string& name) const { + return parser_->OpHasOutput(block_idx_, op_idx_, name); + } + std::vector GetInput(const std::string& name) const { + return parser_->GetOpInput(block_idx_, op_idx_, name); + } + std::vector GetOutput(const std::string& name) const { + return parser_->GetOpOutput(block_idx_, op_idx_, name); + } + // Judge whether Attribute(name)'s type is Var or Vars. + bool IsAttrVar(const std::string& name) const { + return parser_->OpIsAttrVar(block_idx_, op_idx_, name); + } + + // Get TensorInfo(s) from Attribute Var or Vars. + std::vector GetAttrVar(const std::string& name) const { + return parser_->GetOpAttrVar(block_idx_, op_idx_, name); + } + + bool HasAttr(const std::string& name) const { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + return parser_->OpHasAttr(op, name); + } + void GetAttr(const std::string& name, int64_t* val) { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + parser_->GetOpAttr(op, name, val); + } + void GetAttr(const std::string& name, float* val) { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + parser_->GetOpAttr(op, name, val); + } + void GetAttr(const std::string& name, bool* val) { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + parser_->GetOpAttr(op, name, val); + } + void GetAttr(const std::string& name, std::string* val) { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + parser_->GetOpAttr(op, name, val); + } + void GetAttr(const std::string& name, std::vector* val) { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + parser_->GetOpAttr(op, name, val); + } + void GetAttr(const std::string& name, std::vector* val) { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + parser_->GetOpAttr(op, name, val); + } + void GetAttr(const std::string& name, std::vector* val) { + auto& op = parser_->GetOpDesc(block_idx_, op_idx_); + parser_->GetOpAttr(op, name, val); + } + + bool IsConstantInput(const std::string& input_key) const { + auto input_info = GetInput(input_key); + return parser_->IsConstantTensor(block_idx_, input_info[0].name); + } + + bool IsConstant(const TensorInfo& info) const { + return parser_->IsConstantTensor(block_idx_, info.name); + } + + template + bool TryGetInputValue(const std::string& input_key, std::vector* data) { + auto input_info = GetInput(input_key); + return parser_->TryGetTensorValue(block_idx_, input_info[0].name, data); + } + + template + bool TryGetValue(const TensorInfo& info, std::vector* data) { + return parser_->TryGetTensorValue(block_idx_, info.name, data); + } +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/affine_channel.cc b/paddle2onnx/mapper/nn/affine_channel.cc new file mode 100644 index 000000000..87b5efd80 --- /dev/null +++ b/paddle2onnx/mapper/nn/affine_channel.cc @@ -0,0 +1,44 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/affine_channel.h" + +namespace paddle2onnx { +REGISTER_MAPPER(affine_channel, AffineChannelMapper) + +int32_t AffineChannelMapper::GetMinOpset(bool verbose) { + if (data_layout_ == "NHWC") { + Error() << "Data format NHWC is not supported." << std::endl; + return false; + } + return 7; +} + +void AffineChannelMapper::Opset7() { + auto x_info = GetInput("X"); + auto scale_info = GetInput("Scale"); + auto bias_info = GetInput("Bias"); + auto out_info = GetOutput("Out"); + + auto scale = scale_info[0].name; + auto bias = bias_info[0].name; + if (scale_info[0].shape.size() <= 1) { + scale = helper_->Reshape(scale, {1, -1, 1, 1}); + bias = helper_->Reshape(bias, {1, -1, 1, 1}); + } + auto out = helper_->MakeNode("Mul", {x_info[0].name, scale})->output(0); + helper_->MakeNode("Add", {out, bias}, {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/affine_channel.h b/paddle2onnx/mapper/nn/affine_channel.h new file mode 100644 index 000000000..fcb14920c --- /dev/null +++ b/paddle2onnx/mapper/nn/affine_channel.h @@ -0,0 +1,38 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class AffineChannelMapper : public Mapper { + public: + AffineChannelMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("data_layout", &data_layout_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::string data_layout_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/batch_norm.cc b/paddle2onnx/mapper/nn/batch_norm.cc new file mode 100644 index 000000000..dd81622e0 --- /dev/null +++ b/paddle2onnx/mapper/nn/batch_norm.cc @@ -0,0 +1,45 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/batch_norm.h" + +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(batch_norm, BatchNormMapper) + +void BatchNormMapper::Opset7() { + auto input_info = GetInput("X"); + auto scale_info = GetInput("Scale"); + auto bias_info = GetInput("Bias"); + auto mean_info = GetInput("Mean"); + auto variance_info = GetInput("Variance"); + auto output_info = GetOutput("Y"); + + auto node = helper_->MakeNode( + "BatchNormalization", + {input_info[0].name, scale_info[0].name, bias_info[0].name, + mean_info[0].name, variance_info[0].name}, + {output_info[0].name}); + if (helper_->GetOpsetVersion() < 9) { + int64_t spatial = 1; + AddAttribute(node, "spatial", spatial); + } + + AddAttribute(node, "epsilon", epsilon_); + AddAttribute(node, "momentum", momentum_); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/batch_norm.h b/paddle2onnx/mapper/nn/batch_norm.h new file mode 100644 index 000000000..abc649e02 --- /dev/null +++ b/paddle2onnx/mapper/nn/batch_norm.h @@ -0,0 +1,39 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class BatchNormMapper : public Mapper { + public: + BatchNormMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("epsilon", &epsilon_); + GetAttr("momentum", &momentum_); + } + + void Opset7(); + + private: + float epsilon_; + float momentum_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/conv2d.cc b/paddle2onnx/mapper/nn/conv2d.cc new file mode 100644 index 000000000..7c763a066 --- /dev/null +++ b/paddle2onnx/mapper/nn/conv2d.cc @@ -0,0 +1,81 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/conv2d.h" + +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(conv2d, Conv2dMapper) +REGISTER_MAPPER(depthwise_conv2d, Conv2dMapper) + +int32_t Conv2dMapper::GetMinOpset(bool verbose) { + // NHWC is not supported + if (data_format_ == "NHWC") { + Error() << "Cannot support input with NHWC format." << std::endl; + return -1; + } + if (padding_algorithm_ == "EXPLICIT") { + if (paddings_.size() != 2 && paddings_.size() != 4) { + Error() << "While padding_algorithm is EXPLICIT, size of paddings should " + "be 2 or 4." + << std::endl; + return -1; + } + } + if (dilations_[0] != 1 || dilations_[1] != 1) { + if (padding_algorithm_ == "SAME") { + Error() << "While dilations != 1, cannot support padding = 'SAME'." + << std::endl; + return -1; + } + } + return 7; +} + +void Conv2dMapper::Opset7() { + auto kernel_info = GetInput("Filter"); + auto input_info = GetInput("Input"); + auto output_info = GetOutput("Output"); + + auto node = helper_->MakeNode( + "Conv", {input_info[0].name, kernel_info[0].name}, {output_info[0].name}); + AddAttribute(node, "dilations", dilations_); + std::vector kernel_shape = {kernel_info[0].shape[2], + kernel_info[0].shape[3]}; + AddAttribute(node, "kernel_shape", kernel_shape); + AddAttribute(node, "strides", strides_); + AddAttribute(node, "group", groups_); + if (padding_algorithm_ == "SAME") { + std::string auto_pad = "SAME_UPPER"; + AddAttribute(node, "auto_pad", auto_pad); + } else if (padding_algorithm_ == "VALID") { + std::string auto_pad = "VALID"; + AddAttribute(node, "auto_pad", auto_pad); + } else { + std::vector paddings; + if (paddings_.size() == 2) { + paddings.insert(paddings.begin(), paddings_.begin(), paddings_.end()); + paddings.insert(paddings.begin(), paddings_.begin(), paddings_.end()); + } else { + paddings.assign(paddings_.begin(), paddings_.end()); + paddings[1] = paddings_[2]; + paddings[2] = paddings_[1]; + } + AddAttribute(node, "pads", paddings); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/conv2d.h b/paddle2onnx/mapper/nn/conv2d.h new file mode 100644 index 000000000..06efdf4ef --- /dev/null +++ b/paddle2onnx/mapper/nn/conv2d.h @@ -0,0 +1,48 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Conv2dMapper : public Mapper { + public: + Conv2dMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("groups", &groups_); + GetAttr("dilations", &dilations_); + GetAttr("strides", &strides_); + GetAttr("paddings", &paddings_); + GetAttr("padding_algorithm", &padding_algorithm_); + GetAttr("data_format", &data_format_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::vector dilations_; + std::vector strides_; + std::vector paddings_; + std::string padding_algorithm_; + std::string data_format_; + int64_t groups_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/conv2d_transpose.cc b/paddle2onnx/mapper/nn/conv2d_transpose.cc new file mode 100755 index 000000000..b397c6f97 --- /dev/null +++ b/paddle2onnx/mapper/nn/conv2d_transpose.cc @@ -0,0 +1,66 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/conv2d_transpose.h" + +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(conv2d_transpose, Conv2dTransposeMapper) +REGISTER_MAPPER(depthwise_conv2d_transpose, Conv2dTransposeMapper) + +int32_t Conv2dTransposeMapper::GetMinOpset(bool verbose) { + // NHWC is not supported + if (data_format_ == "NHWC") { + Error() << "[ERROR] Cannot support NHWC format for operator " + "conv2d_transpose/depthwise_conv2d_transpose." + << std::endl; + return -1; + } + return 7; +} + +void Conv2dTransposeMapper::Opset7() { + auto kernel_info = GetInput("Filter"); + auto input_info = GetInput("Input"); + auto output_info = GetOutput("Output"); + auto input = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + auto kernel = helper_->AutoCast(kernel_info[0].name, kernel_info[0].dtype, + P2ODataType::FP32); + auto node = helper_->MakeNode("ConvTranspose", {input, kernel}); + AddAttribute(node, "dilations", dilations_); + std::vector kernel_shape = {kernel_info[0].shape[2], + kernel_info[0].shape[3]}; + AddAttribute(node, "kernel_shape", kernel_shape); + AddAttribute(node, "strides", strides_); + AddAttribute(node, "group", groups_); + if (padding_algorithm_ == "SAME") { + std::string auto_pad = "SAME_UPPER"; + AddAttribute(node, "auto_pad", auto_pad); + } else if (padding_algorithm_ == "VALID") { + std::string auto_pad = "VALID"; + AddAttribute(node, "auto_pad", auto_pad); + } else { + AddAttribute(node, "pads", paddings_); + } + if (output_padding_.size() > 0) { + AddAttribute(node, "output_padding", output_padding_); + } + helper_->AutoCast(node->output(0), output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/conv2d_transpose.h b/paddle2onnx/mapper/nn/conv2d_transpose.h new file mode 100755 index 000000000..3a8b472fd --- /dev/null +++ b/paddle2onnx/mapper/nn/conv2d_transpose.h @@ -0,0 +1,58 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Conv2dTransposeMapper : public Mapper { + public: + Conv2dTransposeMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("groups", &groups_); + GetAttr("dilations", &dilations_); + GetAttr("strides", &strides_); + GetAttr("paddings", &paddings_); + GetAttr("padding_algorithm", &padding_algorithm_); + GetAttr("output_padding", &output_padding_); + GetAttr("data_format", &data_format_); + if (paddings_.size() == 2) { + paddings_.push_back(paddings_[0]); + paddings_.push_back(paddings_[1]); + } else if (paddings_.size() == 4) { + int32_t tmp = paddings_[1]; + paddings_[1] = paddings_[2]; + paddings_[2] = tmp; + } + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::vector dilations_; + std::vector strides_; + std::vector paddings_; + std::vector output_padding_; + std::string padding_algorithm_; + std::string data_format_; + int64_t groups_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/conv3d.cc b/paddle2onnx/mapper/nn/conv3d.cc new file mode 100644 index 000000000..44e457f9b --- /dev/null +++ b/paddle2onnx/mapper/nn/conv3d.cc @@ -0,0 +1,82 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/conv3d.h" + +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(conv3d, Conv3dMapper) + +int32_t Conv3dMapper::GetMinOpset(bool verbose) { + // NDHWC is not supported + if (data_format_ == "NDHWC") { + Error() << "Cannot support input with NDHWC format." << std::endl; + return -1; + } + if (padding_algorithm_ == "EXPLICIT") { + if (paddings_.size() != 3 && paddings_.size() != 6) { + Error() << "While padding_algorithm is EXPLICIT, size of paddings should " + "be 3 or 6." + << std::endl; + return -1; + } + } + if (dilations_[0] != 1 || dilations_[1] != 1 || dilations_[2] != 1) { + if (padding_algorithm_ == "SAME") { + Error() << "While dilations != 1, cannot support padding = 'SAME'." + << std::endl; + return -1; + } + } + return 7; +} + +void Conv3dMapper::Opset7() { + auto kernel_info = GetInput("Filter"); + auto input_info = GetInput("Input"); + auto output_info = GetOutput("Output"); + + auto node = helper_->MakeNode( + "Conv", {input_info[0].name, kernel_info[0].name}, {output_info[0].name}); + AddAttribute(node, "dilations", dilations_); + std::vector kernel_shape = {kernel_info[0].shape[2], + kernel_info[0].shape[3], + kernel_info[0].shape[4]}; + AddAttribute(node, "kernel_shape", kernel_shape); + AddAttribute(node, "strides", strides_); + AddAttribute(node, "group", groups_); + if (padding_algorithm_ == "SAME") { + std::string auto_pad = "SAME_UPPER"; + AddAttribute(node, "auto_pad", auto_pad); + } else if (padding_algorithm_ == "VALID") { + std::string auto_pad = "VALID"; + AddAttribute(node, "auto_pad", auto_pad); + } else { + std::vector paddings; + if (paddings_.size() == 3) { + paddings.insert(paddings.begin(), paddings_.begin(), paddings_.end()); + paddings.insert(paddings.begin(), paddings_.begin(), paddings_.end()); + } else { + std::vector index = {0, 2, 4, 1, 3, 5}; + for (auto &i : index) { + paddings.push_back(paddings_[i]); + } + } + AddAttribute(node, "pads", paddings); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/conv3d.h b/paddle2onnx/mapper/nn/conv3d.h new file mode 100755 index 000000000..310edd5cc --- /dev/null +++ b/paddle2onnx/mapper/nn/conv3d.h @@ -0,0 +1,48 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Conv3dMapper : public Mapper { + public: + Conv3dMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("groups", &groups_); + GetAttr("dilations", &dilations_); + GetAttr("strides", &strides_); + GetAttr("paddings", &paddings_); + GetAttr("padding_algorithm", &padding_algorithm_); + GetAttr("data_format", &data_format_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::vector dilations_; + std::vector strides_; + std::vector paddings_; + std::string padding_algorithm_; + std::string data_format_; + int64_t groups_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/data_norm.cc b/paddle2onnx/mapper/nn/data_norm.cc new file mode 100644 index 000000000..2cea544f4 --- /dev/null +++ b/paddle2onnx/mapper/nn/data_norm.cc @@ -0,0 +1,43 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/data_norm.h" + +namespace paddle2onnx { +REGISTER_MAPPER(data_norm, DataNormMapper) + +int32_t DataNormMapper::GetMinOpset(bool verbose) { + if (slot_dim_ > 0) { + Error() << "slot_dim > 0 is not supported." << std::endl; + return -1; + } + return 7; +} + +void DataNormMapper::Opset7() { + auto input_info = GetInput("X"); + auto batch_size_info = GetInput("BatchSize"); + auto batch_sum_info = GetInput("BatchSum"); + auto batch_square_sum_info = GetInput("BatchSquareSum"); + auto output_info = GetOutput("Y"); + + Assert(slot_dim_ <= 0, "slot_dim > 0 is not supported."); + auto mean_arr = helper_->MakeNode("Div", {batch_sum_info[0].name, batch_size_info[0].name})->output(0); + auto scale_arr = helper_->MakeNode("Div", {batch_size_info[0].name, batch_square_sum_info[0].name})->output(0); + scale_arr = helper_->MakeNode("Sqrt", {scale_arr})->output(0); + auto out = helper_->MakeNode("Sub", {input_info[0].name, mean_arr})->output(0); + helper_->MakeNode("Mul" ,{out, scale_arr}, {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/data_norm.h b/paddle2onnx/mapper/nn/data_norm.h new file mode 100644 index 000000000..576a53d9d --- /dev/null +++ b/paddle2onnx/mapper/nn/data_norm.h @@ -0,0 +1,44 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class DataNormMapper : public Mapper { + public: + DataNormMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("data_layout", &data_layout_); + GetAttr("epsilon", &epsilon_); + if (HasAttr("slot_dim")) { + GetAttr("slot_dim", &slot_dim_); + } + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::string data_layout_; + float epsilon_; + int64_t slot_dim_ = -1; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/dropout.cc b/paddle2onnx/mapper/nn/dropout.cc new file mode 100644 index 000000000..3f10ad1f8 --- /dev/null +++ b/paddle2onnx/mapper/nn/dropout.cc @@ -0,0 +1,66 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#include "paddle2onnx/mapper/nn/dropout.h" + +#include + +namespace paddle2onnx { + +REGISTER_MAPPER(dropout, DropoutMapper) + +int32_t DropoutMapper::GetMinOpset(bool verbose) { + if (dropout_implementation_ != "downgrade_in_infer" && + dropout_implementation_ != "upscale_in_train") { + Error() << "Drop out type: " << dropout_implementation_ + << " is not supported yet." << std::endl; + return -1; + } + if (dropout_implementation_ == "downgrade_in_infer") { + if (IsAttrVar("dropout_prob") && + !IsConstant(GetAttrVar("dropout_prob")[0])) { + Error() << "While Attribute(dropout_prob)'s type is Tensor, it's not " + "supported " + "unless it's a constant tensor when dropout_implementation is " + "downgrade_in_infer." + << std::endl; + return -1; + } + } + return 7; +} + +void DropoutMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + if (dropout_implementation_ == "upscale_in_train") { + helper_->MakeNode("Identity", {input_info[0].name}, {output_info[0].name}); + } else { + if (IsAttrVar("dropout_prob")) { + auto prob_info = GetAttrVar("dropout_prob"); + std::vector temp; + TryGetValue(prob_info[0], &temp); + dropout_prob_ = temp[0]; + } else { + GetAttr("dropout_prob", &dropout_prob_); + } + std::vector value = {1 - dropout_prob_}; + std::string scale_node = + helper_->Constant(GetOnnxDtype(input_info[0].dtype), value); + helper_->MakeNode("Mul", {input_info[0].name, scale_node}, + {output_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/dropout.h b/paddle2onnx/mapper/nn/dropout.h new file mode 100755 index 000000000..048d9b660 --- /dev/null +++ b/paddle2onnx/mapper/nn/dropout.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class DropoutMapper : public Mapper { + public: + DropoutMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("dropout_implementation", &dropout_implementation_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + float dropout_prob_ = 0.0; + std::string dropout_implementation_ = "upscale_in_train"; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/group_norm.cc b/paddle2onnx/mapper/nn/group_norm.cc new file mode 100644 index 000000000..717401d27 --- /dev/null +++ b/paddle2onnx/mapper/nn/group_norm.cc @@ -0,0 +1,75 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/group_norm.h" + +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(group_norm, GroupNormMapper) + +int32_t GroupNormMapper::GetMinOpset(bool verbose) { + auto input_info = GetInput("X"); + if (input_info[0].Rank() != 4) { + Error() << "Only support 4D-Tensor as input for GroupNorm" << std::endl; + return -1; + } + return 7; +} + +void GroupNormMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Y"); + + std::vector shape_val = {0, groups_, -1}; + std::string shape = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), shape_val); + + auto reshape_input = + helper_->MakeNode("Reshape", {input_info[0].name, shape}); + + std::string scale_ = helper_->Constant(GetOnnxDtype(input_info[0].dtype), + std::vector(groups_, 1.0)); + + std::string bias_ = helper_->Constant(GetOnnxDtype(input_info[0].dtype), + std::vector(groups_, 0.0)); + + auto reshaped_output = helper_->MakeNode( + "InstanceNormalization", {reshape_input->output(0), scale_, bias_}); + AddAttribute(reshaped_output, "epsilon", epsilon_); + + auto origin_shape = helper_->MakeNode("Shape", {input_info[0].name}); + + if (HasInput("Scale") && HasInput("Bias")) { + auto scale_info = GetInput("Scale"); + auto bias_info = GetInput("Bias"); + auto output = helper_->MakeNode( + "Reshape", {reshaped_output->output(0), origin_shape->output(0)}); + std::string unsqueezed_scale = + helper_->Unsqueeze(scale_info[0].name, {1, 2}); + std::string unsqueezed_bias = helper_->Unsqueeze(bias_info[0].name, {1, 2}); + auto scale_output = + helper_->MakeNode("Mul", {output->output(0), unsqueezed_scale}); + helper_->MakeNode("Add", {scale_output->output(0), unsqueezed_bias}, + {output_info[0].name}); + } else { + helper_->MakeNode("Reshape", + {reshaped_output->output(0), origin_shape->output(0)}, + {output_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/group_norm.h b/paddle2onnx/mapper/nn/group_norm.h new file mode 100755 index 000000000..a2bd1bd8d --- /dev/null +++ b/paddle2onnx/mapper/nn/group_norm.h @@ -0,0 +1,40 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class GroupNormMapper : public Mapper { + public: + GroupNormMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("groups", &groups_); + GetAttr("epsilon", &epsilon_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + int64_t groups_; + float epsilon_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/instance_norm.cc b/paddle2onnx/mapper/nn/instance_norm.cc new file mode 100644 index 000000000..edddac10f --- /dev/null +++ b/paddle2onnx/mapper/nn/instance_norm.cc @@ -0,0 +1,59 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/instance_norm.h" + +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(instance_norm, InstanceNormMapper) + +int32_t InstanceNormMapper::GetMinOpset(bool verbose) { + auto input_info = GetInput("X"); + int num_groups = input_info[0].shape[1]; + if (num_groups < 0) { + Error() << "The dimension in axis=1 of input tensor must be known, but now it's unknown." << std::endl; + return -1; + } + return 7; +} + +void InstanceNormMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Y"); + int num_groups = input_info[0].shape[1]; + + std::string scale = ""; + if (HasInput("Scale")) { + scale = GetInput("Scale")[0].name; + } else { + scale = helper_->Constant(GetOnnxDtype(input_info[0].dtype), std::vector(num_groups, 1.0)); + } + + std::string bias = ""; + if (HasInput("Bias")) { + bias = GetInput("Bias")[0].name; + } else { + bias = helper_->Constant(GetOnnxDtype(input_info[0].dtype), std::vector(num_groups, 0.0)); + } + + auto node = helper_->MakeNode( + "InstanceNormalization", + {input_info[0].name, scale, bias}, + {output_info[0].name}); + AddAttribute(node, "epsilon", epsilon_); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/instance_norm.h b/paddle2onnx/mapper/nn/instance_norm.h new file mode 100644 index 000000000..c569b1f92 --- /dev/null +++ b/paddle2onnx/mapper/nn/instance_norm.h @@ -0,0 +1,38 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class InstanceNormMapper : public Mapper { + public: + InstanceNormMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("epsilon", &epsilon_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + float epsilon_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/interpolate.cc b/paddle2onnx/mapper/nn/interpolate.cc new file mode 100755 index 000000000..49523a8a6 --- /dev/null +++ b/paddle2onnx/mapper/nn/interpolate.cc @@ -0,0 +1,136 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/interpolate.h" + +namespace paddle2onnx { +REGISTER_MAPPER(bilinear_interp, InterpolateMapper) +REGISTER_MAPPER(bilinear_interp_v2, InterpolateMapper) +REGISTER_MAPPER(nearest_interp_v2, InterpolateMapper) +REGISTER_MAPPER(bicubic_interp_v2, InterpolateMapper) +REGISTER_MAPPER(linear_interp_v2, InterpolateMapper) +REGISTER_MAPPER(trilinear_interp_v2, InterpolateMapper) + +int32_t InterpolateMapper::GetMinOpset(bool verbose) { + if (data_layout_ == "NHWC") { + Error() << "Data format of NHWC is not supported." << std::endl; + return -1; + } + auto x_info = GetInput("X"); + if (x_info[0].Rank() > 5 && x_info[0].Rank() < 3) { + Error() << "Only support 3D/4D/5D tensor, but now its dimension is " + << x_info[0].Rank() << std::endl; + return -1; + } + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; +} + +std::string InterpolateMapper::ComputeOutSize() { + bool has_out_size = HasInput("OutSize"); + bool has_size_tensor = HasInput("SizeTensor"); + if (has_out_size) { + auto out_size_info = GetInput("OutSize"); + return helper_->AutoCast(out_size_info[0].name, out_size_info[0].dtype, + P2ODataType::INT64); + } else { + auto size_tensor_info = GetInput("SizeTensor"); + return helper_->ConcatIndices(size_tensor_info); + } +} + +std::string InterpolateMapper::ComputeScale() { + auto scale_info = GetInput("Scale"); + auto scale = helper_->AutoCast(scale_info[0].name, scale_info[0].dtype, + P2ODataType::FP32); + auto padding = helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, + std::vector(2, 1.0)); + scale = helper_->Concat({padding, scale}, 0); + return scale; +} + +void InterpolateMapper::Opset11() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + std::string coordinate_transformation_mode = "half_pixel"; + auto resize_type = resize_mapper_[method_]; + if (align_corners_) { + coordinate_transformation_mode = "align_corners"; + } else if (resize_type == "nearest") { + coordinate_transformation_mode = "asymmetric"; + } else if (align_mode_ == 1 && resize_type != "cubic") { + coordinate_transformation_mode = "asymmetric"; + } + std::string scale = ""; + std::string size = ""; + bool has_out_size = HasInput("OutSize"); + bool has_size_tensor = HasInput("SizeTensor"); + bool has_scale_tensor = HasInput("Scale"); + if (has_out_size || has_size_tensor) { + size = ComputeOutSize(); + } else if (has_scale_tensor) { + scale = ComputeScale(); + } else { + // get size or scale from attribute + if (out_d_ > 0 || out_w_ > 0 || out_h_ > 0) { + std::vector out_size; + if (x_info[0].Rank() == 5) { + out_size.push_back(out_d_); + out_size.push_back(out_h_); + } + if (x_info[0].Rank() == 4) { + out_size.push_back(out_h_); + } + out_size.push_back(out_w_); + size = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, out_size); + } else { + std::vector scale_; + GetAttr("scale", &scale_); + float padding = 1.0; + scale_.insert(scale_.begin(), padding); + scale_.insert(scale_.begin(), padding); + scale = helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, scale_); + } + } + std::string roi = helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, std::vector()); + if (scale == "") { + // has to generate a empty tensor for resize + scale = helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, + std::vector()); + } + if (size != "") { + auto ipt_shape = helper_->MakeNode("Shape", {x_info[0].name})->output(0); + auto nc = helper_->Slice(ipt_shape, {0}, {0}, {2}); + size = helper_->Concat({nc, size}, 0); + } + std::shared_ptr node; + if (size != "") { + node = helper_->MakeNode("Resize", {x_info[0].name, roi, scale, size}, + {out_info[0].name}); + } else { + node = helper_->MakeNode("Resize", {x_info[0].name, roi, scale}, + {out_info[0].name}); + } + Assert(resize_mapper_.find(OpType()) != resize_mapper_.end(), + "Cannot find " + OpType() + " in resize_mapper."); + AddAttribute(node, "mode", resize_mapper_[OpType()]); + AddAttribute(node, "coordinate_transformation_mode", + coordinate_transformation_mode); + if (resize_mapper_[OpType()] == "nearest" && + coordinate_transformation_mode == "asymmetric") { + AddAttribute(node, "nearest_mode", "floor"); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/interpolate.h b/paddle2onnx/mapper/nn/interpolate.h new file mode 100755 index 000000000..d3b8a7a7a --- /dev/null +++ b/paddle2onnx/mapper/nn/interpolate.h @@ -0,0 +1,57 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class InterpolateMapper : public Mapper { + public: + InterpolateMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("data_layout", &data_layout_); + GetAttr("align_corners", &align_corners_); + GetAttr("align_mode", &align_mode_); + GetAttr("out_d", &out_d_); + GetAttr("out_h", &out_h_); + GetAttr("out_w", &out_w_); + method_ = OpType(); + + resize_mapper_["bilinear_interp"] = "linear"; + resize_mapper_["bilinear_interp_v2"] = "linear"; + resize_mapper_["nearest_interp_v2"] = "nearest"; + resize_mapper_["bicubic_interp_v2"] = "cubic"; + resize_mapper_["linear_interp_v2"] = "linear"; + resize_mapper_["trilinear_interp_v2"] = "linear"; + } + + int32_t GetMinOpset(bool verbose = false); + void Opset11(); + + private: + std::string ComputeOutSize(); + std::string ComputeScale(); + std::map resize_mapper_; + std::string method_; + std::string data_layout_; + int64_t align_mode_; + int64_t out_d_; + int64_t out_h_; + int64_t out_w_; + bool align_corners_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/layer_norm.cc b/paddle2onnx/mapper/nn/layer_norm.cc new file mode 100644 index 000000000..5fab8da22 --- /dev/null +++ b/paddle2onnx/mapper/nn/layer_norm.cc @@ -0,0 +1,146 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/layer_norm.h" + +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(layer_norm, LayerNormMapper) + +void LayerNormMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Y"); + + std::string input_name = helper_->AutoCast( + input_info[0].name, input_info[0].dtype, P2ODataType::FP32); + + std::vector input_shape = input_info[0].shape; + std::vector axes; + for (auto i = begin_norm_axis_; i < input_shape.size(); i++) { + axes.push_back(i); + } + if (begin_norm_axis_ == input_shape.size() - 1) { + axes[0] = -1; + } + + float epsilon = epsilon_; + std::string epsilon_node = + helper_->Constant({}, GetOnnxDtype(P2ODataType::FP32), epsilon); + std::string two_node = + helper_->Constant({}, GetOnnxDtype(P2ODataType::FP32), float(2.0)); + + auto mean_node = helper_->MakeNode("ReduceMean", {input_name}); + AddAttribute(mean_node, "axes", axes); + + auto numerator_node = + helper_->MakeNode("Sub", {input_name, mean_node->output(0)}); + auto pow_num_node = + helper_->MakeNode("Pow", {numerator_node->output(0), two_node}); + + auto variance_node = + helper_->MakeNode("ReduceMean", {pow_num_node->output(0)}); + AddAttribute(variance_node, "axes", axes); + + auto add_eps_node = + helper_->MakeNode("Add", {variance_node->output(0), epsilon_node}); + + auto denominator_node = helper_->MakeNode("Sqrt", {add_eps_node->output(0)}); + + auto ipt_shape_node = helper_->MakeNode("Shape", {input_name}); + std::vector slice_axes = {0}; + std::vector start = { + static_cast(input_shape.size() - axes.size())}; + std::vector end = {static_cast(input_shape.size())}; + std::string weight_shape_node = + helper_->Slice(ipt_shape_node->output(0), slice_axes, start, end); + + bool has_input_Bias = HasInput("Bias"); + bool has_input_Scale = HasInput("Scale"); + + if (has_input_Bias && has_input_Scale) { + auto scale_info = GetInput("Scale"); + auto bias_info = GetInput("Bias"); + std::string scale_name = helper_->AutoCast( + scale_info[0].name, scale_info[0].dtype, P2ODataType::FP32); + std::string bias_name = helper_->AutoCast( + bias_info[0].name, bias_info[0].dtype, P2ODataType::FP32); + std::string scale_node = ""; + std::string bias_node = ""; + if (begin_norm_axis_ == input_shape.size() - 1) { + scale_node = helper_->Reshape(scale_name, {-1}); + bias_node = helper_->Reshape(bias_name, {-1}); + } else { + scale_node = helper_->MakeNode("Reshape", {scale_name, weight_shape_node}) + ->output(0); + bias_node = helper_->MakeNode("Reshape", {bias_name, weight_shape_node}) + ->output(0); + } + auto layer_norm_pre_node = helper_->MakeNode( + "Div", {numerator_node->output(0), denominator_node->output(0)}); + auto layer_norm_node = + helper_->MakeNode("Mul", {layer_norm_pre_node->output(0), scale_node}); + auto pre_cast_node = + helper_->MakeNode("Add", {layer_norm_node->output(0), bias_node}); + helper_->AutoCast(pre_cast_node->output(0), output_info[0].name, + P2ODataType::FP32, output_info[0].dtype); + return; + } + if (has_input_Bias) { + auto bias_info = GetInput("Bias"); + std::string bias_name = helper_->AutoCast( + bias_info[0].name, bias_info[0].dtype, P2ODataType::FP32); + std::string bias_node = ""; + if (begin_norm_axis_ == input_shape.size() - 1) { + bias_node = helper_->Reshape(bias_name, {-1}); + } else { + bias_node = helper_->MakeNode("Reshape", {bias_name, weight_shape_node}) + ->output(0); + } + auto layer_norm_node = helper_->MakeNode( + "Div", {numerator_node->output(0), denominator_node->output(0)}); + auto pre_cast_node = + helper_->MakeNode("Add", {layer_norm_node->output(0), bias_node}); + helper_->AutoCast(pre_cast_node->output(0), output_info[0].name, + P2ODataType::FP32, output_info[0].dtype); + return; + } + if (has_input_Scale) { + auto scale_info = GetInput("Scale"); + std::string scale_name = helper_->AutoCast( + scale_info[0].name, scale_info[0].dtype, P2ODataType::FP32); + std::string scale_node = ""; + if (begin_norm_axis_ == input_shape.size() - 1) { + scale_node = helper_->Reshape(scale_name, {-1}); + } else { + scale_node = helper_->MakeNode("Reshape", {scale_name, weight_shape_node}) + ->output(0); + } + auto layer_norm_node = helper_->MakeNode( + "Div", {numerator_node->output(0), denominator_node->output(0)}); + auto pre_cast_node = + helper_->MakeNode("Mul", {layer_norm_node->output(0), scale_node}); + helper_->AutoCast(pre_cast_node->output(0), output_info[0].name, + P2ODataType::FP32, output_info[0].dtype); + return; + } + auto pre_cast_node = helper_->MakeNode( + "Div", {numerator_node->output(0), denominator_node->output(0)}); + helper_->AutoCast(pre_cast_node->output(0), output_info[0].name, + P2ODataType::FP32, output_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/layer_norm.h b/paddle2onnx/mapper/nn/layer_norm.h new file mode 100644 index 000000000..6eebe062e --- /dev/null +++ b/paddle2onnx/mapper/nn/layer_norm.h @@ -0,0 +1,39 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class LayerNormMapper : public Mapper { + public: + LayerNormMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("begin_norm_axis", &begin_norm_axis_); + GetAttr("epsilon", &epsilon_); + } + + void Opset7(); + + private: + int64_t begin_norm_axis_; + float epsilon_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/norm.cc b/paddle2onnx/mapper/nn/norm.cc new file mode 100755 index 000000000..abe188f27 --- /dev/null +++ b/paddle2onnx/mapper/nn/norm.cc @@ -0,0 +1,28 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/norm.h" + +namespace paddle2onnx { +REGISTER_MAPPER(norm, NormMapper) + +void NormMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto node = helper_->MakeNode("LpNormalization", {input_info[0].name}, + {output_info[0].name}); + AddAttribute(node, "axis", axis_); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/norm.h b/paddle2onnx/mapper/nn/norm.h new file mode 100644 index 000000000..f3eb01bfd --- /dev/null +++ b/paddle2onnx/mapper/nn/norm.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class NormMapper : public Mapper { + public: + NormMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + + void Opset7(); + + private: + int64_t axis_ = -1; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/pad3d.cc b/paddle2onnx/mapper/nn/pad3d.cc new file mode 100644 index 000000000..304024736 --- /dev/null +++ b/paddle2onnx/mapper/nn/pad3d.cc @@ -0,0 +1,114 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/pad3d.h" + +namespace paddle2onnx { +REGISTER_MAPPER(pad3d, Pad3DMapper) + +int32_t Pad3DMapper::GetMinOpset(bool verbose) { + if (data_format_ == "NDHWC") { + Error() << "NDHWC format is not supported." << std::endl; + return -1; + } + if (mode_ == "circular") { + Error() << "Padding mode `circular` is not supported." << std::endl; + return -1; + } + if (HasInput("Paddings")) { + if (!IsConstantInput("Paddings")) { + Logger(verbose, 11) << "While Paddings is input and it's not a constant tensor, " << RequireOpset(11) << std::endl; + return 11; + } + std::vector paddings; + if (!TryGetInputValue("Paddings", &paddings)) { + Logger(verbose, 11) << "Cannot get constant value from input of Paddings, " << RequireOpset(11) << std::endl; + return 11; + } else { + if (paddings.size() != 6) { + Error() << "Size of paddings should be equal to 6, but now it's " << paddings.size() << std::endl; + return -1; + } + } + } else { + if (paddings_.size() != 6) { + Error() << "Size of paddings should be equal to 6, but now it's " << paddings_.size() << std::endl; + return -1; + } + } + return 7; +} + +std::vector Pad3DMapper::ConvertPaddingParameter(const std::vector& paddings) { + std::vector new_paddings(10, 0); + new_paddings[2] = paddings[4]; + new_paddings[3] = paddings[2]; + new_paddings[4] = paddings[0]; + new_paddings[7] = paddings[5]; + new_paddings[8] = paddings[3]; + new_paddings[9] = paddings[1]; + return new_paddings; +} + +void Pad3DMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto mode = mode_; + if (mode == "replicate") { + mode = "edge"; + } + std::vector paddings; + if (HasInput("Paddings")) { + Assert(TryGetInputValue("Paddings", &paddings), "Cannot get constant value from input of Paddings, " + RequireOpset(11)); + } else { + paddings.assign(paddings_.begin(), paddings_.end()); + } + std::vector new_paddings = ConvertPaddingParameter(paddings); + auto node = helper_->MakeNode("Pad", {input_info[0].name}, {output_info[0].name}); + AddAttribute(node, "mode", mode); + AddAttribute(node, "value", value_); + AddAttribute(node, "pads", new_paddings); +} + +void Pad3DMapper::Opset11() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto mode = mode_; + if (mode == "replicate") { + mode = "edge"; + } + + std::string paddings = ""; + if (HasInput("Paddings")) { + std::vector paddings_value; + if (TryGetInputValue("Paddings", &paddings_value)) { + std::vector new_paddings = ConvertPaddingParameter(paddings_value); + paddings = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, new_paddings); + } else { + auto pad_info = GetInput("Paddings"); + auto cast_pad = helper_->AutoCast(pad_info[0].name, pad_info[0].dtype, P2ODataType::INT64); + auto split_pads = helper_->Split(cast_pad, std::vector(6, 1), 0); + auto zero = helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, int64_t(0)); + paddings = helper_->Concat({zero, zero, split_pads[4], split_pads[2], split_pads[0], zero, zero, split_pads[5], split_pads[3], split_pads[1]}, 0); + } + } else { + std::vector new_paddings = ConvertPaddingParameter(paddings_); + paddings = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, new_paddings); + } + auto value = helper_->Constant({}, GetOnnxDtype(input_info[0].dtype), value_); + auto node = helper_->MakeNode("Pad", {input_info[0].name, paddings, value}, {output_info[0].name}); + AddAttribute(node, "mode", mode); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/pad3d.h b/paddle2onnx/mapper/nn/pad3d.h new file mode 100644 index 000000000..3e9f50599 --- /dev/null +++ b/paddle2onnx/mapper/nn/pad3d.h @@ -0,0 +1,45 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Pad3DMapper : public Mapper { + public: + Pad3DMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("data_format", &data_format_); + GetAttr("mode", &mode_); + GetAttr("value", &value_); + GetAttr("paddings", &paddings_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + void Opset11(); + + private: + std::vector ConvertPaddingParameter(const std::vector& paddings); + std::string data_format_; + std::string mode_; + std::vector paddings_; + float value_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/pool2d.cc b/paddle2onnx/mapper/nn/pool2d.cc new file mode 100644 index 000000000..435e3caba --- /dev/null +++ b/paddle2onnx/mapper/nn/pool2d.cc @@ -0,0 +1,332 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/pool2d.h" + +#include +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(pool2d, Pool2dMapper) +REGISTER_MAPPER(max_pool2d_with_index, Pool2dMapper) + +bool Pool2dMapper::IsSameSpan(const int64_t& in_size, const int64_t& out_size) { + std::vector spans; + spans.reserve(out_size); + for (auto i = 0; i < out_size; ++i) { + int64_t start = std::floor(i * (in_size / out_size)); + int64_t end = std::ceil((i + 1) * (in_size / out_size)); + spans.push_back(end - start); + } + std::sort(spans.begin(), spans.end()); + return spans[0] == spans[spans.size() - 1]; +} + +bool Pool2dMapper::IsExportAsCustomOp() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + GetAttr("ksize", &k_size_); + if (global_pooling_ || (k_size_[0] == 1 && k_size_[1] == 1)) { + return false; + } + if (export_as_custom_op && adaptive_) { + bool is_1x1_kernel = true; + for (auto i : k_size_) { + if (i != 1) { + is_1x1_kernel = false; + } + } + if (is_1x1_kernel) { + return false; + } + for (auto one_input : input_info) { + for (auto i = 2; i < one_input.shape.size(); ++i) { + if (one_input.shape[i] == -1) { + return true; + } + } + } + int64_t input_h = input_info[0].shape[2]; + int64_t input_w = input_info[0].shape[3]; + int64_t output_h = output_info[0].shape[2]; + int64_t output_w = output_info[0].shape[3]; + if (output_h == -1 || output_w == -1 || !IsSameSpan(input_h, output_h) || + !IsSameSpan(input_w, output_w)) { + return true; + } + } + return false; +} + +void Pool2dMapper::ExportAsCustomOp() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto node = helper_->MakeNode(custom_op_name, {input_info[0].name}, + {output_info[0].name}); + node->set_domain("Paddle"); + AddAttribute(node, "pooling_type", pooling_type_); + for (auto i = 1; i < output_info[0].shape.size(); i++) { + if (output_info[0].shape[i] == -1) { + if (input_info[0].shape[i] == -1) { + Assert(false, + "Can not convert to AdaptivePool custom OP, because the shapes " + "of the input and output are unknown."); + } else { + output_info[0].shape[i] = input_info[0].shape[i]; + } + } + } + AddAttribute(node, "output_size", output_info[0].shape); + Warn() << "Pool2d is exported as custom operator: " << custom_op_name + << std::endl; + helper_->MakeValueInfo(input_info[0].name, input_info[0].dtype, + input_info[0].shape); + helper_->MakeValueInfo(output_info[0].name, output_info[0].dtype, + output_info[0].shape); +} + +void Pool2dMapper::AdaptivePool(const std::vector& input_info, + const std::vector& output_info) { + int64_t input_h = input_info[0].shape[2]; + int64_t input_w = input_info[0].shape[3]; + int64_t output_h = output_info[0].shape[2]; + int64_t output_w = output_info[0].shape[3]; + int64_t stride_h = std::floor(input_h / output_h); + int64_t stride_w = std::floor(input_w / output_w); + int64_t kernel_h = input_h - (output_h - 1) * stride_h; + int64_t kernel_w = input_w - (output_w - 1) * stride_w; + std::string onnx_pool_type; + if (OpType() == "max_pool2d_with_index") { + onnx_pool_type = "MaxPool"; + } else { + auto iter = op_mapper_.find(pooling_type_); + onnx_pool_type = iter->second[0]; + } + + std::shared_ptr* node_ptr; + auto input = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + auto node = helper_->MakeNode(onnx_pool_type, {input}); + helper_->AutoCast(node->output(0), output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); + std::vector kernel_size = {kernel_h, kernel_w}; + AddAttribute(node, "kernel_shape", kernel_size); + std::vector strides = {stride_h, stride_w}; + AddAttribute(node, "strides", strides); + + if (helper_->GetOpsetVersion() > 10) { + AddAttribute(node, "ceil_mode", static_cast(ceil_mode_)); + } + + std::string auto_pad = "NOTSET"; + if (padding_algorithm_ == "SAME") { + auto_pad = "SAME_UPPER"; + } else if (padding_algorithm_ == "VALID") { + auto_pad = "VALID"; + } + AddAttribute(node, "auto_pad", auto_pad); + if (pooling_type_ == "avg") { + AddAttribute(node, "count_include_pad", static_cast(exclusive_)); + } +} + +void Pool2dMapper::NoAdaptivePool(const std::vector& input_info, + const std::vector& output_info) { + std::vector input_shape = input_info[0].shape; + if (pads_.size() == 2) { + pads_.push_back(pads_[0]); + pads_.push_back(pads_[1]); + } else if (pads_.size() == 4) { + std::vector index = {0, 2, 1, 3}; + std::vector copy = pads_; + for (auto i = 0; i < index.size(); ++i) { + pads_[i] = copy[index[i]]; + } + } + if (input_shape[2] > 0 && input_shape[2] + pads_[0] < k_size_[0]) { + k_size_[0] = input_shape[2] + pads_[0]; + } + if (input_shape[3] > 0 && input_shape[3] + pads_[1] < k_size_[1]) { + k_size_[1] = input_shape[3] + pads_[1]; + } + + int64_t max_ksize = *std::max_element(std::begin(k_size_), std::end(k_size_)); + int64_t max_pads = *std::max_element(std::begin(pads_), std::end(pads_)); + auto input_x = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + if (max_ksize <= max_pads) { + std::vector onnx_paddings = {0, 0, pads_[0], pads_[1], + 0, 0, pads_[2], pads_[3]}; + std::vector inputs_names = {input_x}; + if (helper_->GetOpsetVersion() >= 11) { + std::string paddings_node = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), onnx_paddings); + inputs_names.push_back(paddings_node); + std::vector val = {0.0}; + std::string val_node = + helper_->Constant(GetOnnxDtype(P2ODataType::FP32), val); + inputs_names.push_back(val_node); + } + auto node = helper_->MakeNode("Pad", inputs_names); + std::string mode = "constant"; + AddAttribute(node, "mode", mode); + if (helper_->GetOpsetVersion() < 11) { + AddAttribute(node, "pads", onnx_paddings); + float val = 0.0; + AddAttribute(node, "value", val); + } + input_x = node->output(0); + pads_.clear(); + pads_.resize(4, 0); + } + std::string onnx_pool_type; + if (OpType() == "max_pool2d_with_index") { + onnx_pool_type = "MaxPool"; + } else { + auto iter = op_mapper_.find(pooling_type_); + onnx_pool_type = iter->second[0]; + } + auto node = helper_->MakeNode(onnx_pool_type, {input_x}); + helper_->AutoCast(node->output(0), output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); + + AddAttribute(node, "kernel_shape", k_size_); + AddAttribute(node, "strides", strides_); + std::string auto_pad = "NOTSET"; + if (padding_algorithm_ == "SAME") { + auto_pad = "SAME_UPPER"; + AddAttribute(node, "auto_pad", auto_pad); + } else if (padding_algorithm_ == "VALID") { + auto_pad = "VALID"; + AddAttribute(node, "auto_pad", auto_pad); + } else { + AddAttribute(node, "pads", pads_); + } + if (OpType() != "max_pool2d_with_index" && helper_->GetOpsetVersion() >= 10) { + AddAttribute(node, "ceil_mode", static_cast(ceil_mode_)); + } + if (OpType() != "max_pool2d_with_index" && pooling_type_ == "avg") { + AddAttribute(node, "count_include_pad", static_cast(exclusive_)); + } +} + +int32_t Pool2dMapper::GetMinOpset(bool verbose) { + // NHWC is not supported + if (data_format_ == "NHWC") { + Error() << "NHWC format is not supported." << std::endl; + return -1; + } + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + if (IsAttrVar("ksize")) { + Error() << "While Attribute(ksize)'s type is Tensor, it's not " + "supported." + << std::endl; + return -1; + } else { + GetAttr("ksize", &k_size_); + } + + if (global_pooling_ || (k_size_[0] == 1 && k_size_[1] == 1)) { + if (ceil_mode_) { + Logger(verbose, 10) << "While ceil_model is True, " << RequireOpset(10) + << std::endl; + return 10; + } + return 7; + } + + if (adaptive_) { + for (auto one_input : input_info) { + for (auto i = 2; i < one_input.shape.size(); ++i) { + if (one_input.shape[i] == -1) { + if (export_as_custom_op) { + return 7; + } else { + Error() << "Adaptive only support static input shape." << std::endl; + return -1; + } + } + } + } + int64_t input_h = input_info[0].shape[2]; + int64_t input_w = input_info[0].shape[3]; + int64_t output_h = output_info[0].shape[2]; + int64_t output_w = output_info[0].shape[3]; + if (output_h == -1 || output_w == -1 || !IsSameSpan(input_h, output_h) || + !IsSameSpan(input_w, output_w)) { + if (export_as_custom_op) { + return 7; + } else { + Error() << "Cannot convert adaptive pool with input_size: " << input_h + << " " << input_h << " output_size: " << output_h << " " + << output_w << std::endl; + return -1; + } + } + } + if (OpType() == "max_pool2d_with_index") { + return 9; + } + auto iter = op_mapper_.find(pooling_type_); + if (op_mapper_.end() == iter) { + Error() << "Cannot find " << pooling_type_ << " in pool op_mapper." + << std::endl; + return -1; + } + + if (ceil_mode_) { + Logger(verbose, 10) << "While ceil_model is True, " << RequireOpset(10) + << std::endl; + return 10; + } + return 7; +} + +void Pool2dMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + GetAttr("ksize", &k_size_); + + bool is_1x1_kernel = true; + for (auto i : k_size_) { + if (i != 1) { + is_1x1_kernel = false; + } + } + + if (global_pooling_ || (adaptive_ && is_1x1_kernel)) { + std::string onnx_pool_type; + if (OpType() == "max_pool2d_with_index") { + onnx_pool_type = "GlobalMaxPool"; + } else { + auto iter = op_mapper_.find(pooling_type_); + onnx_pool_type = iter->second[1]; + } + auto input = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + auto output = helper_->MakeNode(onnx_pool_type, {input})->output(0); + helper_->AutoCast(output, output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); + } else if (adaptive_) { + AdaptivePool(input_info, output_info); + } else { + NoAdaptivePool(input_info, output_info); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/pool2d.h b/paddle2onnx/mapper/nn/pool2d.h new file mode 100644 index 000000000..bbaf7c787 --- /dev/null +++ b/paddle2onnx/mapper/nn/pool2d.h @@ -0,0 +1,67 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Pool2dMapper : public Mapper { + public: + Pool2dMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + op_mapper_["max"] = {"MaxPool", "GlobalMaxPool"}; + op_mapper_["avg"] = {"AveragePool", "GlobalAveragePool"}; + GetAttr("global_pooling", &global_pooling_); + GetAttr("adaptive", &adaptive_); + GetAttr("strides", &strides_); + GetAttr("paddings", &pads_); + if (OpType() != "max_pool2d_with_index") { + GetAttr("pooling_type", &pooling_type_); + GetAttr("data_format", &data_format_); + GetAttr("ceil_mode", &ceil_mode_); + GetAttr("padding_algorithm", &padding_algorithm_); + GetAttr("exclusive", &exclusive_); + exclusive_ = !exclusive_; + } + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + void ExportAsCustomOp(); + bool IsExportAsCustomOp(); + + private: + bool IsSameSpan(const int64_t& in_size, const int64_t& out_size); + void AdaptivePool(const std::vector& input_info, + const std::vector& output_info); + void NoAdaptivePool(const std::vector& input_info, + const std::vector& output_info); + bool ceil_mode_; + bool global_pooling_; + bool adaptive_; + bool exclusive_; + std::string data_format_; + std::string pooling_type_; + std::string padding_algorithm_; + std::vector k_size_; + std::vector pads_; + std::vector strides_; + std::map> op_mapper_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/pool3d.cc b/paddle2onnx/mapper/nn/pool3d.cc new file mode 100644 index 000000000..fb6916fa1 --- /dev/null +++ b/paddle2onnx/mapper/nn/pool3d.cc @@ -0,0 +1,262 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/pool3d.h" + +#include +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(pool3d, Pool3dMapper) +REGISTER_MAPPER(max_pool3d_with_index, Pool3dMapper) + +bool Pool3dMapper::IsSameSpan(const int64_t& in_size, const int64_t& out_size) { + std::vector spans; + spans.reserve(out_size); + for (auto i = 0; i < out_size; ++i) { + int64_t start = std::floor(i * (in_size / out_size)); + int64_t end = std::ceil((i + 1) * (in_size / out_size)); + spans.push_back(end - start); + } + std::sort(spans.begin(), spans.end()); + return spans[0] == spans[spans.size() - 1]; +} + +void Pool3dMapper::AdaptivePool(const std::vector& input_info, + const std::vector& output_info) { + int64_t input_d = input_info[0].shape[2]; + int64_t input_h = input_info[0].shape[3]; + int64_t input_w = input_info[0].shape[4]; + int64_t output_d = output_info[0].shape[2]; + int64_t output_h = output_info[0].shape[3]; + int64_t output_w = output_info[0].shape[4]; + int64_t stride_d = std::floor(input_d / output_d); + int64_t stride_h = std::floor(input_h / output_h); + int64_t stride_w = std::floor(input_w / output_w); + int64_t kernel_d = input_d - (output_d - 1) * stride_d; + int64_t kernel_h = input_h - (output_h - 1) * stride_h; + int64_t kernel_w = input_w - (output_w - 1) * stride_w; + std::string onnx_pool_type; + if (OpType() == "max_pool3d_with_index") { + onnx_pool_type = "MaxPool"; + } else { + auto iter = op_mapper_.find(pooling_type_); + onnx_pool_type = iter->second[0]; + } + std::shared_ptr* node_ptr; + auto input = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + auto node = helper_->MakeNode(onnx_pool_type, {input}); + helper_->AutoCast(node->output(0), output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); + std::vector kernel_size = {kernel_d, kernel_h, kernel_w}; + AddAttribute(node, "kernel_shape", kernel_size); + std::vector strides = {stride_d, stride_h, stride_w}; + AddAttribute(node, "strides", strides); + + if (helper_->GetOpsetVersion() > 10) { + AddAttribute(node, "ceil_mode", static_cast(ceil_mode_)); + } + + std::string auto_pad = "NOTSET"; + if (padding_algorithm_ == "SAME") { + auto_pad = "SAME_UPPER"; + } else if (padding_algorithm_ == "VALID") { + auto_pad = "VALID"; + } + AddAttribute(node, "auto_pad", auto_pad); + if (pooling_type_ == "avg") { + AddAttribute(node, "count_include_pad", static_cast(exclusive_)); + } +} + +void Pool3dMapper::NoAdaptivePool(const std::vector& input_info, + const std::vector& output_info) { + std::vector input_shape = input_info[0].shape; + if (pads_.size() == 3) { + pads_.push_back(pads_[0]); + pads_.push_back(pads_[1]); + pads_.push_back(pads_[2]); + } else if (pads_.size() == 6) { + std::vector index = {0, 2, 4, 1, 3, 5}; + std::vector copy = pads_; + for (auto i = 0; i < index.size(); ++i) { + pads_[i] = copy[index[i]]; + } + } + if (input_shape[2] > 0 && input_shape[2] + pads_[0] < k_size_[0]) { + k_size_[0] = input_shape[2] + pads_[0]; + } + if (input_shape[3] > 0 && input_shape[3] + pads_[1] < k_size_[1]) { + k_size_[1] = input_shape[3] + pads_[1]; + } + if (input_shape[4] > 0 && input_shape[4] + pads_[2] < k_size_[2]) { + k_size_[2] = input_shape[4] + pads_[2]; + } + + int64_t max_ksize = *std::max_element(std::begin(k_size_), std::end(k_size_)); + int64_t max_pads = *std::max_element(std::begin(pads_), std::end(pads_)); + auto input_x = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + if (max_ksize <= max_pads) { + std::vector onnx_paddings = {0, 0, pads_[0], pads_[1], pads_[2], + 0, 0, pads_[3], pads_[4], pads_[5]}; + std::vector inputs_names = {input_x}; + if (helper_->GetOpsetVersion() >= 11) { + std::string paddings_node = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), onnx_paddings); + inputs_names.push_back(paddings_node); + std::vector val = {0.0}; + std::string val_node = + helper_->Constant(GetOnnxDtype(P2ODataType::FP32), val); + inputs_names.push_back(val_node); + } + auto node = helper_->MakeNode("Pad", inputs_names); + std::string mode = "constant"; + AddAttribute(node, "mode", mode); + if (helper_->GetOpsetVersion() < 11) { + AddAttribute(node, "pads", onnx_paddings); + float val = 0.0; + AddAttribute(node, "value", val); + } + input_x = node->output(0); + pads_.clear(); + pads_.resize(6, 0); + } + std::string onnx_pool_type; + if (OpType() == "max_pool3d_with_index") { + onnx_pool_type = "MaxPool"; + } else { + auto iter = op_mapper_.find(pooling_type_); + onnx_pool_type = iter->second[0]; + } + auto node = helper_->MakeNode(onnx_pool_type, {input_x}); + helper_->AutoCast(node->output(0), output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); + + AddAttribute(node, "kernel_shape", k_size_); + AddAttribute(node, "strides", strides_); + std::string auto_pad = "NOTSET"; + if (padding_algorithm_ == "SAME") { + auto_pad = "SAME_UPPER"; + AddAttribute(node, "auto_pad", auto_pad); + } else if (padding_algorithm_ == "VALID") { + auto_pad = "VALID"; + AddAttribute(node, "auto_pad", auto_pad); + } else { + AddAttribute(node, "pads", pads_); + } + if (OpType() != "max_pool3d_with_index" && helper_->GetOpsetVersion() >= 10) { + AddAttribute(node, "ceil_mode", static_cast(ceil_mode_)); + } + if (pooling_type_ == "avg") { + AddAttribute(node, "count_include_pad", static_cast(exclusive_)); + } +} + +int32_t Pool3dMapper::GetMinOpset(bool verbose) { + // NHWC is not supported + if (data_format_ == "NDHWC") { + Error() << "NDHWC format is not supported." << std::endl; + return -1; + } + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + if (global_pooling_ || + (k_size_[0] == 1 && k_size_[1] == 1 && k_size_[2] == 1)) { + if (ceil_mode_) { + Logger(verbose, 10) << "While ceil_model is True, " << RequireOpset(10) + << std::endl; + return 10; + } + return 7; + } + + if (adaptive_) { + for (auto one_input : input_info) { + for (auto i = 2; i < one_input.shape.size(); ++i) { + if (one_input.shape[i] == -1) { + Error() << "Adaptive only support static input shape." << std::endl; + return -1; + } + } + } + int64_t input_d = input_info[0].shape[2]; + int64_t input_h = input_info[0].shape[3]; + int64_t input_w = input_info[0].shape[4]; + int64_t output_d = output_info[0].shape[2]; + int64_t output_h = output_info[0].shape[3]; + int64_t output_w = output_info[0].shape[4]; + if (!IsSameSpan(input_h, output_h) || !IsSameSpan(input_w, output_w) || + !IsSameSpan(input_d, output_d)) { + Error() << "Cannot convert adaptive pool with input_size: " << input_d + << " " << input_h << " " << input_w + << " output_size: " << output_d << " " << output_h << " " + << output_w << std::endl; + return -1; + } + } + if (OpType() == "max_pool3d_with_index") { + return 9; + } + auto iter = op_mapper_.find(pooling_type_); + if (op_mapper_.end() == iter) { + Error() << "Cannot find " << pooling_type_ << " in pool op_mapper." + << std::endl; + return -1; + } + + if (ceil_mode_) { + Logger(verbose, 10) << "While ceil_model is True, " << RequireOpset(10) + << std::endl; + return 10; + } + return 7; +} + +void Pool3dMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + bool is_1x1_kernel = true; + for (auto i : k_size_) { + if (i != 1) { + is_1x1_kernel = false; + } + } + + if (global_pooling_ || (adaptive_ && is_1x1_kernel)) { + std::string onnx_pool_type; + if (OpType() == "max_pool3d_with_index") { + onnx_pool_type = "GlobalMaxPool"; + } else { + auto iter = op_mapper_.find(pooling_type_); + onnx_pool_type = iter->second[1]; + } + auto input = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + auto output = helper_->MakeNode(onnx_pool_type, {input})->output(0); + helper_->AutoCast(output, output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); + } else if (adaptive_) { + AdaptivePool(input_info, output_info); + } else { + NoAdaptivePool(input_info, output_info); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/pool3d.h b/paddle2onnx/mapper/nn/pool3d.h new file mode 100644 index 000000000..9be0c901d --- /dev/null +++ b/paddle2onnx/mapper/nn/pool3d.h @@ -0,0 +1,66 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Pool3dMapper : public Mapper { + public: + Pool3dMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + op_mapper_["max"] = {"MaxPool", "GlobalMaxPool"}; + op_mapper_["avg"] = {"AveragePool", "GlobalAveragePool"}; + GetAttr("global_pooling", &global_pooling_); + GetAttr("adaptive", &adaptive_); + GetAttr("strides", &strides_); + GetAttr("paddings", &pads_); + GetAttr("ksize", &k_size_); + if (OpType() != "max_pool3d_with_index") { + GetAttr("pooling_type", &pooling_type_); + GetAttr("data_format", &data_format_); + GetAttr("ceil_mode", &ceil_mode_); + GetAttr("padding_algorithm", &padding_algorithm_); + GetAttr("exclusive", &exclusive_); + exclusive_ = !exclusive_; + } + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + bool IsSameSpan(const int64_t& in_size, const int64_t& out_size); + void AdaptivePool(const std::vector& input_info, + const std::vector& output_info); + void NoAdaptivePool(const std::vector& input_info, + const std::vector& output_info); + bool ceil_mode_; + bool global_pooling_; + bool adaptive_; + bool exclusive_; + std::string data_format_; + std::string pooling_type_; + std::string padding_algorithm_; + std::vector k_size_; + std::vector pads_; + std::vector strides_; + std::map> op_mapper_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/rnn.cc b/paddle2onnx/mapper/nn/rnn.cc new file mode 100644 index 000000000..1c6f609fb --- /dev/null +++ b/paddle2onnx/mapper/nn/rnn.cc @@ -0,0 +1,156 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/rnn.h" +#include + +namespace paddle2onnx { +REGISTER_MAPPER(rnn, RnnMapper) + +int32_t RnnMapper::GetMinOpset(bool verbose) { + return 7; +} + +std::string RnnMapper::ReformWeight(const std::string& weight, const int64_t& size, const std::vector& perm) { + std::vector items; + for (size_t i = 0; i < perm.size(); i += 2) { + auto item = helper_->Slice(weight, {1}, {perm[i] * size}, {perm[i + 1] * size}); + items.push_back(item); + } + return helper_->Concat(items, 1); +} + +std::vector RnnMapper::MakeParamInputs(int64_t layer_index) { + auto weight_list_info = GetInput("WeightList"); + int64_t bidirect_len = is_bidirec_ ? 4 : 2; + int64_t all_layer_param_len = weight_list_info.size(); + int64_t single_layer_param_len = std::floor(all_layer_param_len / num_layers_); + int64_t weight_start_idx = layer_index * bidirect_len; + int64_t weight_end_idx = weight_start_idx + bidirect_len; + int64_t bias_start_idx = weight_start_idx + std::floor(all_layer_param_len / 2); + int64_t bias_end_idx = bias_start_idx + bidirect_len; + + std::vector unsqueezed_weights; + for (auto i = weight_start_idx; i < weight_end_idx; ++i) { + unsqueezed_weights.push_back(helper_->Unsqueeze(weight_list_info[i].name, {0})); + } + for (auto i = bias_start_idx; i < bias_end_idx; ++i) { + unsqueezed_weights.push_back(helper_->Unsqueeze(weight_list_info[i].name, {0})); + } + + std::vector input_weight; + std::vector hidden_weight; + for (size_t i = 0; i < bidirect_len; i += 2) { + input_weight.push_back(unsqueezed_weights[i]); + } + for (size_t i = 1; i < bidirect_len; i += 2) { + hidden_weight.push_back(unsqueezed_weights[i]); + } + std::vector input_bias; + std::vector hidden_bias; + for (size_t i = bidirect_len; i < 2 * bidirect_len; i += 2) { + input_bias.push_back(unsqueezed_weights[i]); + } + for (size_t i = bidirect_len + 1; i < 2 * bidirect_len; i += 2) { + hidden_bias.push_back(unsqueezed_weights[i]); + } + + auto input_weight_tensor = helper_->Concat(input_weight, 0); + auto hidden_weight_tensor = helper_->Concat(hidden_weight, 0); + auto input_bias_tensor = helper_->Concat(input_bias, 0); + auto hidden_bias_tensor = helper_->Concat(hidden_bias, 0); + + std::vector reform_permutation; + if (mode_ == "LSTM") { + std::vector perm({0, 1, 3, 4, 1, 3}); + reform_permutation.assign(perm.begin(), perm.end()); + } else if (mode_ == "GRU") { + std::vector perm({1, 2, 0, 1, 2, 3}); + reform_permutation.assign(perm.begin(), perm.end()); + } + input_weight_tensor = ReformWeight(input_weight_tensor, hidden_size_, reform_permutation); + hidden_weight_tensor = ReformWeight(hidden_weight_tensor, hidden_size_, reform_permutation); + input_bias_tensor = ReformWeight(input_bias_tensor, hidden_size_, reform_permutation); + hidden_bias_tensor = ReformWeight(hidden_bias_tensor, hidden_size_, reform_permutation); + + std::vector outputs; + outputs.push_back(input_weight_tensor); + outputs.push_back(hidden_weight_tensor); + outputs.push_back(helper_->Concat({input_bias_tensor, hidden_bias_tensor}, 1)); + outputs.push_back(""); + return outputs; +} + +std::vector RnnMapper::MakeInitParamInputs(int64_t layer_index) { + std::vector outputs; + auto prestate_info = GetInput("PreState"); + int64_t bidirect_len = is_bidirec_ ? 2 : 1; + auto init_h = helper_->Slice(prestate_info[0].name, {0}, {layer_index * bidirect_len}, {layer_index * bidirect_len + bidirect_len}); + outputs.push_back(init_h); + if (mode_ == "GRU") { + return outputs; + } + auto init_c = helper_->Slice(prestate_info[1].name, {0}, {layer_index * bidirect_len}, {layer_index * bidirect_len + bidirect_len}); + outputs.push_back(init_c); + return outputs; +} + +void RnnMapper::Opset7() { + auto input_info = GetInput("Input"); + auto state_info = GetOutput("State"); + auto out_info = GetOutput("Out"); + auto input = input_info[0].name; + if (mode_ == "LSTM") { + std::string h_out = ""; + std::string c_out = ""; + for (auto i = 0; i < num_layers_; ++i) { + auto param_inputs = MakeParamInputs(i); + auto init_param_inputs = MakeInitParamInputs(i); + std::vector inputs({input}); + inputs.insert(inputs.end(), param_inputs.begin(), param_inputs.end()); + inputs.insert(inputs.end(), init_param_inputs.begin(), init_param_inputs.end()); + auto node = helper_->MakeNode("LSTM", inputs, 3); + std::string direction = is_bidirec_ ? "bidirectional" : "forward"; + AddAttribute(node, "direction", direction); + AddAttribute(node, "hidden_size", hidden_size_); + input = helper_->Transpose(node->output(0), {0, 2, 1, 3}); + input = helper_->Reshape(input, {0, 0, -1}); + h_out = node->output(1); + c_out = node->output(2); + } + helper_->MakeNode("Identity", {h_out}, {state_info[0].name}); + helper_->MakeNode("Identity", {c_out}, {state_info[1].name}); + helper_->MakeNode("Identity", {input}, {out_info[0].name}); + } else if (mode_ == "GRU") { + std::string h_out = ""; + for (auto i = 0; i < num_layers_; ++i) { + auto param_inputs = MakeParamInputs(i); + auto init_param_inputs = MakeInitParamInputs(i); + std::vector inputs({input}); + inputs.insert(inputs.end(), param_inputs.begin(), param_inputs.end()); + inputs.insert(inputs.end(), init_param_inputs.begin(), init_param_inputs.end()); + auto node = helper_->MakeNode("GRU", inputs, 2); + std::string direction = is_bidirec_ ? "bidirectional" : "forward"; + AddAttribute(node, "direction", direction); + AddAttribute(node, "hidden_size", hidden_size_); + AddAttribute(node, "linear_before_reset", int64_t(1)); + input = helper_->Transpose(node->output(0), {0, 2, 1, 3}); + input = helper_->Reshape(input, {0, 0, -1}); + h_out = node->output(1); + } + helper_->MakeNode("Identity", {h_out}, {state_info[0].name}); + helper_->MakeNode("Identity", {input}, {out_info[0].name}); + } +} +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/rnn.h b/paddle2onnx/mapper/nn/rnn.h new file mode 100644 index 000000000..b2ef24df1 --- /dev/null +++ b/paddle2onnx/mapper/nn/rnn.h @@ -0,0 +1,58 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class RnnMapper : public Mapper { + public: + RnnMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + MarkAsExperimentalOp(); + GetAttr("num_layers", &num_layers_); + GetAttr("input_size", &input_size_); + GetAttr("hidden_size", &hidden_size_); + GetAttr("seed", &seed_); + GetAttr("dropout_prob", &dropout_prob_); + GetAttr("mode", &mode_); + GetAttr("is_bidirec", &is_bidirec_); + if (HasAttr("is_test")) { + GetAttr("is_test", &is_test_); + } + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::vector MakeParamInputs(int64_t layer_index); + std::vector MakeInitParamInputs(int64_t layer_index); + std::string ReformWeight(const std::string& weight, const int64_t& size, const std::vector& perm); + int64_t num_layers_; + int64_t input_size_; + int64_t hidden_size_; + int64_t seed_; + float dropout_prob_; + std::string mode_; + bool is_test_ = false; + bool is_bidirec_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/shape.cc b/paddle2onnx/mapper/nn/shape.cc new file mode 100644 index 000000000..d82a1d00f --- /dev/null +++ b/paddle2onnx/mapper/nn/shape.cc @@ -0,0 +1,29 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/shape.h" + +namespace paddle2onnx { +REGISTER_MAPPER(shape, ShapeMapper) + +void ShapeMapper::Opset7() { + auto input_info = GetInput("Input"); + auto output_info = GetOutput("Out"); + + auto shape_out = helper_->MakeNode("Shape", {input_info[0].name})->output(0); + helper_->AutoCast(shape_out, output_info[0].name, P2ODataType::INT64, + output_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/shape.h b/paddle2onnx/mapper/nn/shape.h new file mode 100644 index 000000000..6fd1867c6 --- /dev/null +++ b/paddle2onnx/mapper/nn/shape.h @@ -0,0 +1,32 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ShapeMapper : public Mapper { + public: + ShapeMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/softmax_with_cross_entropy.cc b/paddle2onnx/mapper/nn/softmax_with_cross_entropy.cc new file mode 100644 index 000000000..14c64e9d0 --- /dev/null +++ b/paddle2onnx/mapper/nn/softmax_with_cross_entropy.cc @@ -0,0 +1,126 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/nn/softmax_with_cross_entropy.h" + +namespace paddle2onnx { +REGISTER_MAPPER(softmax_with_cross_entropy, SoftmaxCrossEntropyLossMapper) + +int32_t SoftmaxCrossEntropyLossMapper::GetMinOpset(bool verbose) { + auto logits = GetInput("Logits"); + std::vector logits_shape = logits[0].shape; + if (logits_shape.size() < 2) { + Error() << "SoftmaxCrossEntropyLoss in onnx not support 1D logits." + << std::endl; + return -1; + } + Logger(verbose, 12) << RequireOpset(12) << std::endl; + return 12; +} + +void SoftmaxCrossEntropyLossMapper::Opset12() { + auto logits = GetInput("Logits"); + auto labels = GetInput("Label"); + + auto loss = GetOutput("Loss"); + auto softmax = GetOutput("Softmax"); + std::vector logits_shape = logits[0].shape; + auto dim = logits[0].Rank(); + if (axis_ < 0) { + axis_ += dim; + } + if (soft_label_) { + std::vector split; + split.resize(logits_shape[axis_], 1); + std::vector axes_val = {axis_}; + std::string axes_node = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), axes_val); + if (axis_ == dim - 1) { + auto logsoftmax_node = helper_->MakeNode("LogSoftmax", {logits[0].name}); + AddAttribute(logsoftmax_node, "axis", axis_); + helper_->MakeNode("Exp", {logsoftmax_node->output(0)}, {softmax[0].name}); + auto mul_result = helper_->MakeNode( + "Mul", {logsoftmax_node->output(0), labels[0].name}); + if (helper_->GetOpsetVersion() < 13) { + auto reducesum_node = + helper_->MakeNode("ReduceSum", {mul_result->output(0)}); + AddAttribute(reducesum_node, "axes", axes_val); + helper_->MakeNode("Neg", {reducesum_node->output(0)}, {loss[0].name}); + } else { + auto reducesum_node = + helper_->MakeNode("ReduceSum", {mul_result->output(0), axes_node}); + helper_->MakeNode("Neg", {reducesum_node->output(0)}, {loss[0].name}); + } + } else { + auto perm = Arange(0, dim); + perm[dim - 1] = axis_; + perm[axis_] = dim - 1; + auto output = helper_->Transpose(logits[0].name, perm); + auto logsoftmax_node = helper_->MakeNode("LogSoftmax", {output}); + AddAttribute(logsoftmax_node, "axis", int64_t(-1)); + auto transpose_logsoftmax_node = + helper_->Transpose(logsoftmax_node->output(0), perm); + helper_->MakeNode("Exp", {transpose_logsoftmax_node}, {softmax[0].name}); + auto mul_result = + helper_->MakeNode("Mul", {transpose_logsoftmax_node, labels[0].name}); + if (helper_->GetOpsetVersion() < 13) { + auto reducesum_node = + helper_->MakeNode("ReduceSum", {mul_result->output(0)}); + AddAttribute(reducesum_node, "axes", axes_val); + helper_->MakeNode("Neg", {reducesum_node->output(0)}, {loss[0].name}); + } else { + auto reducesum_node = + helper_->MakeNode("ReduceSum", {mul_result->output(0), axes_node}); + helper_->MakeNode("Neg", {reducesum_node->output(0)}, {loss[0].name}); + } + } + } else { + if (axis_ == 1) { + auto squeeze_node = helper_->Squeeze(labels[0].name, {axis_}); + auto node = helper_->MakeNode("SoftmaxCrossEntropyLoss", + {logits[0].name, squeeze_node}, 2); + AddAttribute(node, "ignore_index", ignore_index_); + AddAttribute(node, "reduction", "none"); + auto loss_node = + helper_->Unsqueeze(node->output(0), loss[0].name, {axis_}); + // onnx output is log(softmax), but paddle output is softmax + helper_->MakeNode("Exp", {node->output(1)}, {softmax[0].name}); + } else { + std::vector perm = Arange(0, dim); + perm[1] = axis_; + perm[axis_] = 1; + auto transpose_logits = helper_->MakeNode("Transpose", {logits[0].name}); + AddAttribute(transpose_logits, "perm", perm); + auto transpose_labels = helper_->MakeNode("Transpose", {labels[0].name}); + AddAttribute(transpose_labels, "perm", perm); + auto squeeze_labels = helper_->Squeeze(transpose_labels->output(0), {1}); + auto node = + helper_->MakeNode("SoftmaxCrossEntropyLoss", + {transpose_logits->output(0), squeeze_labels}, 2); + AddAttribute(node, "ignore_index", ignore_index_); + AddAttribute(node, "reduction", "none"); + auto unsqueeze_node = helper_->Unsqueeze(node->output(0), {1}); + auto revert_transpose_logits = + helper_->MakeNode("Transpose", {unsqueeze_node}, {loss[0].name}); + AddAttribute(revert_transpose_logits, "perm", perm); + auto revert_transpose_softmax = + helper_->MakeNode("Transpose", {node->output(1)}); + AddAttribute(revert_transpose_softmax, "perm", perm); + // onnx output is log(softmax), but paddle output is softmax + helper_->MakeNode("Exp", {revert_transpose_softmax->output(0)}, + {softmax[0].name}); + } + } +} +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/nn/softmax_with_cross_entropy.h b/paddle2onnx/mapper/nn/softmax_with_cross_entropy.h new file mode 100644 index 000000000..960f978de --- /dev/null +++ b/paddle2onnx/mapper/nn/softmax_with_cross_entropy.h @@ -0,0 +1,40 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class SoftmaxCrossEntropyLossMapper : public Mapper { + public: + SoftmaxCrossEntropyLossMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + GetAttr("soft_label", &soft_label_); + GetAttr("ignore_index", &ignore_index_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset12(); + + private: + int64_t axis_ = -1; + bool soft_label_ = false; + int64_t ignore_index_ = -100; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/onnx_helper.cc b/paddle2onnx/mapper/onnx_helper.cc new file mode 100644 index 000000000..6f0b0142f --- /dev/null +++ b/paddle2onnx/mapper/onnx_helper.cc @@ -0,0 +1,534 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/onnx_helper.h" + +#include + +namespace paddle2onnx { + +void AddAttribute(std::shared_ptr node, + const std::string& name, const int64_t& value) { + for (int i = 0; i < node->attribute_size(); ++i) { + if (node->attribute(i).name() == name) { + node->mutable_attribute(i)->set_i(value); + node->mutable_attribute(i)->set_type(ONNX_NAMESPACE::AttributeProto::INT); + return; + } + } + auto attr = node->add_attribute(); + attr->set_name(name); + attr->set_i(value); + attr->set_type(ONNX_NAMESPACE::AttributeProto::INT); +} + +void AddAttribute(std::shared_ptr node, + const std::string& name, const float& value) { + for (int i = 0; i < node->attribute_size(); ++i) { + if (node->attribute(i).name() == name) { + node->mutable_attribute(i)->set_f(value); + node->mutable_attribute(i)->set_type( + ONNX_NAMESPACE::AttributeProto::FLOAT); + return; + } + } + auto attr = node->add_attribute(); + attr->set_name(name); + attr->set_f(value); + attr->set_type(ONNX_NAMESPACE::AttributeProto::FLOAT); +} + +void AddAttribute(std::shared_ptr node, + const std::string& name, const std::string& value) { + auto attr = node->add_attribute(); + attr->set_name(name); + attr->set_s(value); + attr->set_type(ONNX_NAMESPACE::AttributeProto::STRING); +} + +void AddAttribute(std::shared_ptr node, + const std::string& name, const std::vector& values) { + auto attr = node->add_attribute(); + attr->set_name(name); + for (auto& item : values) { + attr->add_ints(item); + } + attr->set_type(ONNX_NAMESPACE::AttributeProto::INTS); +} + +void AddAttribute(std::shared_ptr node, + const std::string& name, const std::vector& values) { + auto attr = node->add_attribute(); + attr->set_name(name); + for (auto& item : values) { + attr->add_floats(item); + } + attr->set_type(ONNX_NAMESPACE::AttributeProto::FLOAT); +} + +void AddAttribute(std::shared_ptr node, + const std::string& name, + ONNX_NAMESPACE::TensorProto_DataType dtype) { + auto attr = node->add_attribute(); + attr->set_name(name); + attr->set_i(static_cast(dtype)); + attr->set_type(ONNX_NAMESPACE::AttributeProto::INT); +} + +ONNX_NAMESPACE::TensorProto_DataType GetOnnxDtype(int32_t paddle_dtype) { + Assert((paddle_dtype >= 0 && paddle_dtype <= 6) || paddle_dtype == 20 || + paddle_dtype == 21, + "Unknow paddle data type: " + std::to_string(paddle_dtype) + + " While call GetOnnxDtype."); + auto onnx_dtype = ONNX_NAMESPACE::TensorProto::FLOAT; + if (paddle_dtype == P2ODataType::BOOL) { + onnx_dtype = ONNX_NAMESPACE::TensorProto::BOOL; + } else if (paddle_dtype == P2ODataType::INT8) { + onnx_dtype = ONNX_NAMESPACE::TensorProto::INT8; + } else if (paddle_dtype == P2ODataType::INT16) { + onnx_dtype = ONNX_NAMESPACE::TensorProto::INT16; + } else if (paddle_dtype == P2ODataType::INT32) { + onnx_dtype = ONNX_NAMESPACE::TensorProto::INT32; + } else if (paddle_dtype == P2ODataType::INT64) { + onnx_dtype = ONNX_NAMESPACE::TensorProto::INT64; + } else if (paddle_dtype == P2ODataType::FP16) { + onnx_dtype = ONNX_NAMESPACE::TensorProto::FLOAT16; + } else if (paddle_dtype == P2ODataType::FP32) { + onnx_dtype = ONNX_NAMESPACE::TensorProto::FLOAT; + } else if (paddle_dtype == P2ODataType::FP64) { + onnx_dtype = ONNX_NAMESPACE::TensorProto::DOUBLE; + } else { + onnx_dtype = ONNX_NAMESPACE::TensorProto::UINT8; + } + return onnx_dtype; +} + +std::shared_ptr MakeConstant(const std::string& name, + const Weight& weight) { + auto node = std::make_shared(); + node->set_op_type("Constant"); + node->add_output(name); + auto attr = node->add_attribute(); + attr->set_name("value"); + attr->set_type(ONNX_NAMESPACE::AttributeProto::TENSOR); + auto tensor = attr->mutable_t(); + tensor->set_name(name); + auto onnx_dtype = GetOnnxDtype(weight.dtype); + tensor->set_data_type(onnx_dtype); + for (auto& dim : weight.shape) { + tensor->add_dims(dim); + } + tensor->set_raw_data(std::string(weight.buffer.data(), weight.buffer.size())); + return node; +} + +// std::shared_ptr OnnxHelper::MakeConstant( +// const Weight& weight) { +// auto node_name = MapperHelper::Get()->GenName("auto.constant"); +// return MakeConstant(node_name, weight); +//} +// +// std::shared_ptr OnnxHelper::MakeConstant( +// const std::string& name, const Weight& weight) { +// auto node = std::make_shared(); +// node->set_op_type("Constant"); +// node->add_output(name); +// auto attr = node->add_attribute(); +// attr->set_name("value"); +// attr->set_type(ONNX_NAMESPACE::AttributeProto::TENSOR); +// auto tensor = attr->mutable_t(); +// tensor->set_name(name); +// auto onnx_dtype = GetOnnxDtype(weight.dtype); +// tensor->set_data_type(onnx_dtype); +// for (auto& dim : weight.shape) { +// tensor->add_dims(dim); +// } +// tensor->set_raw_data(std::string(weight.buffer.data(), +// weight.buffer.size())); +// nodes.push_back(node); +// return node; +//} + +std::shared_ptr MakeValueInfo( + const TensorInfo& info) { + auto value_info = std::make_shared(); + value_info->set_name(info.name); + auto type_proto = value_info->mutable_type(); + auto tensor_type_proto = type_proto->mutable_tensor_type(); + tensor_type_proto->set_elem_type(GetOnnxDtype(info.dtype)); + auto shape = tensor_type_proto->mutable_shape(); + for (auto& dim : info.shape) { + if (dim < 0) { + auto dynamic_dim_name = MapperHelper::Get()->GenName("DynamicDimension"); + shape->add_dim()->set_dim_param(dynamic_dim_name); + } else { + shape->add_dim()->set_dim_value(dim); + } + } + return value_info; +} + +std::shared_ptr OnnxHelper::MakeValueInfo( + const std::string& name, const int32_t& dtype, + std::vector& shape) { + auto value_info = std::make_shared(); + value_info->set_name(name); + auto type_proto = value_info->mutable_type(); + auto tensor_type_proto = type_proto->mutable_tensor_type(); + tensor_type_proto->set_elem_type(GetOnnxDtype(dtype)); + auto shape_proto = tensor_type_proto->mutable_shape(); + for (auto& dim : shape) { + if (dim < 0) { + auto dynamic_dim_name = MapperHelper::Get()->GenName("DynamicDimension"); + shape_proto->add_dim()->set_dim_param(dynamic_dim_name); + } else { + shape_proto->add_dim()->set_dim_value(dim); + } + } + value_infos.push_back(value_info); + return value_info; +} + +std::shared_ptr OnnxHelper::MakeNode( + const std::string& op_type, const std::vector& inputs, + const std::vector& outputs) { +#ifdef PADDLE2ONNX_DEBUG + P2OLogger(true) << "ONNX Node: " << op_type << std::endl; +#endif + auto node = std::make_shared(); + auto node_name = MapperHelper::Get()->GenName(op_type); + node->set_name(node_name); + node->set_op_type(op_type); + for (size_t i = 0; i < inputs.size(); ++i) { + node->add_input(inputs[i]); + } + for (size_t i = 0; i < outputs.size(); ++i) { + node->add_output(outputs[i]); + } + if (op_type == "Reshape" && GetOpsetVersion() >= 14) { + AddAttribute(node, "allowzero", int64_t(0)); + } + + nodes.push_back(node); + return node; +} + +std::shared_ptr OnnxHelper::MakeNode( + const std::string& op_type, const std::vector& inputs, + int num_outputs) { +#ifdef PADDLE2ONNX_DEBUG + P2OLogger(true) << "ONNX Node: " << op_type << std::endl; +#endif + auto node = std::make_shared(); + auto node_name = MapperHelper::Get()->GenName(op_type); + node->set_name(node_name); + node->set_op_type(op_type); + for (size_t i = 0; i < inputs.size(); ++i) { + node->add_input(inputs[i]); + } + std::vector outputs; + for (auto i = 0; i < num_outputs; ++i) { + outputs.push_back(MapperHelper::Get()->GenName(op_type)); + } + for (size_t i = 0; i < outputs.size(); ++i) { + node->add_output(outputs[i]); + } + if (op_type == "Reshape" && GetOpsetVersion() >= 14) { + AddAttribute(node, "allowzero", int64_t(0)); + } + nodes.push_back(node); + return node; +} + +std::string OnnxHelper::AutoCast(const std::string& input, + int32_t input_paddle_dtype, + int32_t to_paddle_dtype) { + std::string output = MapperHelper::Get()->GenName("auto.cast"); + if (input_paddle_dtype == to_paddle_dtype) { + MakeNode("Identity", {input}, {output}); + return output; + } + auto cast_node = MakeNode("Cast", {input}, {output}); + AddAttribute(cast_node, "to", GetOnnxDtype(to_paddle_dtype)); + return cast_node->output(0); +} + +std::string OnnxHelper::AutoCast(const std::string& input, + const std::string& output, + int32_t input_paddle_dtype, + int32_t to_paddle_dtype) { + if (input_paddle_dtype == to_paddle_dtype) { + auto node = MakeNode("Identity", {input}, {output}); + return output; + } + auto cast_node = MakeNode("Cast", {input}, {output}); + AddAttribute(cast_node, "to", GetOnnxDtype(to_paddle_dtype)); + return cast_node->output(0); +} + +std::string OnnxHelper::ConcatIndices(const std::vector& indices) { + std::vector vars; + // make sure all the indices be 1-D tensor + for (size_t i = 0; i < indices.size(); ++i) { + std::string var = indices[i].name; + if (indices[i].Rank() != 1) { + var = Reshape(indices[i].name, {1}); + } + vars.push_back(var); + } + // make sure all the indices be int64 + for (size_t i = 0; i < indices.size(); ++i) { + if (indices[i].dtype != P2ODataType::INT64) { + auto node = MakeNode("Cast", {vars[i]}); + AddAttribute(node, "to", ONNX_NAMESPACE::TensorProto::INT64); + vars[i] = node->output(0); + } + } + // concat and return + if (vars.size() > 1) { + return Concat(vars, 0); + } + return vars[0]; +} + +std::string OnnxHelper::Clip(const std::string& input, + const std::string& output, const float& min, + const float& max, const int32_t& in_dtype) { + // onnxruntime only supports float input + std::string input_name = AutoCast(input, in_dtype, P2ODataType::FP32); + if (opset_version < 11) { + auto node = MakeNode("Clip", {input_name}); + AddAttribute(node, "max", max); + AddAttribute(node, "min", min); + auto res = AutoCast(node->output(0), output, P2ODataType::FP32, in_dtype); + return res; + } else { + int32_t dtype = P2ODataType::FP32; + std::string min_name = Constant({}, GetOnnxDtype(dtype), min); + std::string max_name; + max_name = Constant({}, GetOnnxDtype(dtype), max); + auto node = MakeNode("Clip", {input_name, min_name, max_name}); + auto res = AutoCast(node->output(0), {output}, P2ODataType::FP32, in_dtype); + return res; + } +} + +std::string OnnxHelper::Clip(const std::string& input, const float& min, + const float& max, const int32_t& in_dtype) { + std::string output = MapperHelper::Get()->GenName("helper.clip"); + return Clip(input, output, min, max, in_dtype); +} + +std::string OnnxHelper::Squeeze(const std::string& input, + const std::string& output, + const std::vector& axes) { + if (axes.size() == 0) { + auto node = MakeNode("Squeeze", {input}, {output}); + } else { + if (opset_version < 13) { + auto node = MakeNode("Squeeze", {input}, {output}); + AddAttribute(node, "axes", axes); + } else { + auto axes_node = Constant(ONNX_NAMESPACE::TensorProto::INT64, axes); + auto node = MakeNode("Squeeze", {input, axes_node}, {output}); + } + } + return output; +} + +std::string OnnxHelper::Squeeze(const std::string& input, + const std::vector& axes) { + std::string output = MapperHelper::Get()->GenName("helper.squeeze"); + return Squeeze(input, output, axes); +} + +std::string OnnxHelper::Unsqueeze(const std::string& input, + const std::string& output, + const std::vector& axes) { + Assert(axes.size() >= 0, "OnnxHelper::Unsqueeze Size of axes should > 0"); + for (auto& item : axes) { + Assert(item >= 0, + "OnnxHelper::Unsqueeze All the elements in axes should >= 0"); + } + if (opset_version < 13) { + auto node = MakeNode("Unsqueeze", {input}, {output}); + AddAttribute(node, "axes", axes); + } else { + auto axes_node = Constant(ONNX_NAMESPACE::TensorProto::INT64, axes); + auto node = MakeNode("Unsqueeze", {input, axes_node}, {output}); + } + return output; +} + +std::string OnnxHelper::Unsqueeze(const std::string& input, + const std::vector& axes) { + std::string output = MapperHelper::Get()->GenName("helper.unsqueeze"); + return Unsqueeze(input, output, axes); +} + +std::string OnnxHelper::Reshape(const std::string& input, + const std::string& output, + const std::vector& shape) { + if (opset_version < 6) { + auto node = MakeNode("Reshape", {input}, {output}); + AddAttribute(node, "shape", shape); + } else { + auto shape_node = Constant(ONNX_NAMESPACE::TensorProto::INT64, shape); + auto node = MakeNode("Reshape", {input, shape_node}, {output}); + if (opset_version >= 14) { + AddAttribute(node, "allowzero", int64_t(0)); + } + } + return output; +} + +std::string OnnxHelper::Reshape(const std::string& input, + const std::vector& shape) { + std::string output = MapperHelper::Get()->GenName("helper.reshape"); + return Reshape(input, output, shape); +} + +std::string OnnxHelper::Flatten(const std::string& input, + const std::string& output) { + return Reshape(input, output, std::vector(1, -1)); +} + +std::string OnnxHelper::Flatten(const std::string& input) { + std::string output = MapperHelper::Get()->GenName("helper.flatten"); + return Flatten(input, output); +} + +std::string OnnxHelper::Slice(const std::string& input, + const std::string& output, + const std::vector& axes, + const std::vector& starts, + const std::vector& ends) { + if (opset_version < 10) { + auto node = MakeNode("Slice", {input}, {output}); + AddAttribute(node, "axes", axes); + AddAttribute(node, "starts", starts); + AddAttribute(node, "ends", ends); + } else { + auto axes_node = Constant(ONNX_NAMESPACE::TensorProto::INT64, axes); + auto starts_node = Constant(ONNX_NAMESPACE::TensorProto::INT64, starts); + auto ends_node = Constant(ONNX_NAMESPACE::TensorProto::INT64, ends); + auto node = + MakeNode("Slice", {input, starts_node, ends_node, axes_node}, {output}); + } + return output; +} + +std::string OnnxHelper::Slice(const std::string& input, + const std::vector& axes, + const std::vector& starts, + const std::vector& ends) { + std::string output = MapperHelper::Get()->GenName("helper.slice"); + return Slice(input, output, axes, starts, ends); +} + +std::string OnnxHelper::Concat(const std::vector& input, + const std::string& output, int64_t axis) { + auto node = MakeNode("Concat", input, {output}); + AddAttribute(node, "axis", axis); + return output; +} + +std::string OnnxHelper::Concat(const std::vector& input, + int64_t axis) { + auto output = MapperHelper::Get()->GenName("helper.concat"); + return Concat(input, output, axis); +} + +std::string OnnxHelper::Transpose(const std::string& input, + const std::string& output, + const std::vector& perm) { + auto node = MakeNode("Transpose", {input}, {output}); + AddAttribute(node, "perm", perm); + return output; +} + +std::string OnnxHelper::Transpose(const std::string& input, + const std::vector& perm) { + auto output = MapperHelper::Get()->GenName("helper.transpose"); + return Transpose(input, output, perm); +} + +std::vector OnnxHelper::Split( + const std::string& input, const std::vector& outputs, + const std::vector& split, int64_t axis) { + Assert(outputs.size() > 0 || split.size() > 0, + "OnnxHelper::Split requires the size of outputs or the size of split " + "> 0."); + auto node = std::make_shared(); + auto node_name = MapperHelper::Get()->GenName("Split"); + node->set_name(node_name); + node->set_op_type("Split"); + node->add_input(input); + for (size_t i = 0; i < outputs.size(); ++i) { + node->add_output(outputs[i]); + } + AddAttribute(node, "axis", axis); + if (split.size() > 0) { + Assert(outputs.size() == split.size(), + "OnnxHelper::Split While size of outputs and the size of split both " + "> 0, their size must be same."); + if (opset_version < 13) { + AddAttribute(node, "split", split); + } else { + auto split_const = Constant(ONNX_NAMESPACE::TensorProto::INT64, split); + node->add_input(split_const); + } + } + nodes.push_back(node); + return outputs; +} + +std::vector OnnxHelper::Split(const std::string& input, + const std::vector& split, + int64_t axis) { + Assert(split.size() > 0, + "OnnxHelper::Split requires the size of parameter split > 0."); + std::vector outputs(split.size()); + for (size_t i = 0; i < split.size(); ++i) { + outputs[i] = MapperHelper::Get()->GenName("helper.split"); + } + return Split(input, outputs, split, axis); +} +std::vector OnnxHelper::DtypeAlignment( + const std::vector& input_info, int32_t* out_dtype) { + Assert(input_info.size() > 0, + "OnnxHelper::DtypeAlignment requires the size of input info > 0."); + std::vector input_dtypes; + input_dtypes.reserve(input_info.size()); + for (auto i = 0; i < input_info.size(); ++i) { + input_dtypes.push_back(input_info[i].dtype); + } + int32_t max_index = -1; + for (auto i : input_dtypes) { + if (i > max_index) { + max_index = i; + } + } + *out_dtype = max_index; + std::vector casted_node; + casted_node.reserve(input_info.size()); + for (auto i = 0; i < input_info.size(); ++i) { + std::string cast_name = + AutoCast(input_info[i].name, input_info[i].dtype, max_index); + casted_node.push_back(cast_name); + } + return casted_node; +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/onnx_helper.h b/paddle2onnx/mapper/onnx_helper.h new file mode 100644 index 000000000..5958eb38f --- /dev/null +++ b/paddle2onnx/mapper/onnx_helper.h @@ -0,0 +1,561 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include + +#include +#include +#include + +#include "paddle2onnx/mapper/register_mapper.h" +#include "paddle2onnx/parser/parser.h" + +namespace paddle2onnx { + +void AddAttribute(std::shared_ptr node, + const std::string& name, const int64_t& value); +void AddAttribute(std::shared_ptr node, + const std::string& name, const float& value); +void AddAttribute(std::shared_ptr node, + const std::string& name, const std::string& value); +void AddAttribute(std::shared_ptr node, + const std::string& name, const std::vector& values); +void AddAttribute(std::shared_ptr node, + const std::string& name, const std::vector& values); +void AddAttribute(std::shared_ptr node, + const std::string& name, + ONNX_NAMESPACE::TensorProto_DataType dtype); + +ONNX_NAMESPACE::TensorProto_DataType GetOnnxDtype(int32_t paddle_dtype); +std::shared_ptr MakeConstant(const std::string& name, + const Weight& weight); +std::shared_ptr MakeValueInfo( + const TensorInfo& info); + +struct QuantizeInfo { + public: + std::vector scale_; + std::vector zeros_; + std::string zeros_node_; + std::string scale_node_; + int64_t quantize_axis_; + + QuantizeInfo() {} + QuantizeInfo(const std::vector& scale, + const std::vector& zeros, const std::string& scale_node, + const std::string& zeros_node, const int64_t& quantize_axis) { + zeros_node_ = zeros_node; + scale_node_ = scale_node; + quantize_axis_ = quantize_axis; + scale_.resize(scale.size()); + memcpy(scale_.data(), scale.data(), scale.size() * sizeof(float)); + zeros_.resize(zeros.size()); + memcpy(zeros_.data(), zeros.data(), zeros.size() * sizeof(int64_t)); + } +}; + +class OnnxHelper { + public: + std::vector> nodes; + std::vector> value_infos; + int32_t opset_version = 7; + // Use updated_params to store params that were changed during conversion + std::map updated_params; + // Use quantize_info to record quantization-related information, scale and + // zero information corresponding to each tensor + std::map quantize_info; + + void Clear() { nodes.clear(); } + + void SetOpsetVersion(int32_t op_v) { opset_version = op_v; } + + int32_t GetOpsetVersion() { return opset_version; } + + template + bool TryGetTensorValue(const std::string& name, std::vector* value); + + std::shared_ptr MakeValueInfo( + const std::string& name, const int32_t& dtype, + std::vector& shape); + + std::shared_ptr MakeNode( + const std::string& op_type, const std::vector& inputs, + const std::vector& outputs); + // we use this function to generate some temporary node + // we do not need to define the outputs, because the outputs + // is generate by MapperHelper, which will make sure there's no + // name confict problem + // the parameter `num_outputs` will define the number of output names + std::shared_ptr MakeNode( + const std::string& op_type, const std::vector& inputs, + int num_outputs = 1); + + template + std::string ConstOfShape(const std::string& input, const std::string& output, + ONNX_NAMESPACE::TensorProto_DataType dtype, T value); + template + std::string ConstOfShape(const std::string& input, + ONNX_NAMESPACE::TensorProto_DataType dtype, T value); + + std::string AutoCast(const std::string& input, int32_t input_paddle_dtype, + int32_t to_paddle_dtype); + std::string AutoCast(const std::string& input, const std::string& output, + int32_t input_paddle_dtype, int32_t to_paddle_dtype); + + // Helper function for PaddlePaddle's shape tensor list inputs + // will cast all data type to int64 + // will make sure all inputs to be 1-D tensor + // will concat them as output + std::string ConcatIndices(const std::vector& indices); + std::vector DtypeAlignment( + const std::vector& input_info, int32_t* out_dtype); + std::string Clip(const std::string& input, const float& min, const float& max, + const int32_t& in_dtype); + std::string Clip(const std::string& input, const std::string& output, + const float& min, const float& max, const int32_t& in_dtype); + std::string Squeeze(const std::string& input, + const std::vector& axes); + std::string Squeeze(const std::string& input, const std::string& output, + const std::vector& axes); + std::string Unsqueeze(const std::string& input, + const std::vector& axes); + std::string Unsqueeze(const std::string& input, const std::string& output, + const std::vector& axes); + std::string Reshape(const std::string& input, const std::string& output, + const std::vector& shape); + std::string Reshape(const std::string& input, + const std::vector& shape); + std::string Flatten(const std::string& input, const std::string& output); + std::string Flatten(const std::string& input); + std::string Slice(const std::string& input, const std::string& output, + const std::vector& axes, + const std::vector& starts, + const std::vector& ends); + std::string Slice(const std::string& input, const std::vector& axes, + const std::vector& starts, + const std::vector& ends); + std::string Concat(const std::vector& input, + const std::string& output, int64_t axis); + std::string Concat(const std::vector& input, int64_t axis); + + std::string Transpose(const std::string& input, const std::string& output, + const std::vector& perm); + std::string Transpose(const std::string& input, + const std::vector& perm); + + std::vector Split(const std::string& input, + const std::vector& outputs, + const std::vector& split, + int64_t axis); + std::vector Split(const std::string& input, + const std::vector& split, + int64_t axis); + + template + std::string Constant(const std::string& output, + ONNX_NAMESPACE::TensorProto_DataType dtype, + const std::vector& value); + template + std::string Constant(ONNX_NAMESPACE::TensorProto_DataType dtype, + const std::vector& value); + template + std::string Constant(const std::string& output, + const std::vector& shape, + ONNX_NAMESPACE::TensorProto_DataType dtype, T value); + template + std::string Constant(const std::vector& shape, + ONNX_NAMESPACE::TensorProto_DataType dtype, T value); + + template + std::string Constant(const std::vector& shape, + ONNX_NAMESPACE::TensorProto_DataType dtype, + std::vector& value); + + template + std::string Assign(const std::string& output, + const ONNX_NAMESPACE::TensorProto_DataType& dtype, + const std::vector& shape, + const std::vector& value); + template + std::string Assign(const ONNX_NAMESPACE::TensorProto_DataType& dtype, + const std::vector& shape, + const std::vector& value); +}; + +template +std::string OnnxHelper::Constant(const std::vector& shape, + ONNX_NAMESPACE::TensorProto_DataType dtype, + std::vector& value) { + auto node = std::make_shared(); + node->set_op_type("Constant"); + auto name = MapperHelper::Get()->GenName("const"); + node->add_output(name); + auto attr = node->add_attribute(); + attr->set_name("value"); + attr->set_type(ONNX_NAMESPACE::AttributeProto::TENSOR); + auto tensor = attr->mutable_t(); + tensor->set_name(name); + + int numel = 1; + for (size_t i = 0; i < shape.size(); ++i) { + tensor->add_dims(shape[i]); + numel *= shape[i]; + } + Assert(numel == value.size(), + "numel and val number is not equal in Constant " + "function."); + tensor->set_data_type(dtype); + if (dtype == ONNX_NAMESPACE::TensorProto::FLOAT) { + std::vector data; + data.reserve(numel); + for (auto& i : value) { + data.push_back(static_cast(i)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 4)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::DOUBLE) { + std::vector data; + data.reserve(numel); + for (auto& i : value) { + data.push_back(static_cast(i)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT64) { + std::vector data; + data.reserve(numel); + for (auto& i : value) { + data.push_back(static_cast(i)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::BOOL) { + bool* data = new bool[numel]; + for (size_t i = 0; i < numel; ++i) { + data[i] = static_cast(value[i]); + } + tensor->set_raw_data(std::string((const char*)(data), numel)); + delete[] data; + } else { + Assert(false, + "Only support data type of BOOL/FLOAT/DOUBLE/INT64 in Constant " + "function."); + } + nodes.push_back(node); + return node->output(0); +} + +template +std::string OnnxHelper::Constant(const std::string& output, + ONNX_NAMESPACE::TensorProto_DataType dtype, + const std::vector& value) { + auto node = std::make_shared(); + node->set_op_type("Constant"); + node->add_output(output); + auto attr = node->add_attribute(); + attr->set_name("value"); + attr->set_type(ONNX_NAMESPACE::AttributeProto::TENSOR); + auto tensor = attr->mutable_t(); + tensor->set_name(output); + + int numel = value.size(); + tensor->add_dims(numel); + tensor->set_data_type(dtype); + if (value.size() == 0) { + nodes.push_back(node); + return output; + } + if (dtype == ONNX_NAMESPACE::TensorProto::FLOAT) { + std::vector data; + for (auto& item : value) { + data.push_back(static_cast(item)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 4)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::DOUBLE) { + std::vector data; + for (auto& item : value) { + data.push_back(static_cast(item)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT64) { + std::vector data; + for (auto& item : value) { + data.push_back(static_cast(item)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT32) { + std::vector data; + for (auto& item : value) { + data.push_back(static_cast(item)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 4)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::BOOL) { + bool* data = new bool[numel]; + for (size_t i = 0; i < numel; ++i) { + data[i] = static_cast(value[i]); + } + tensor->set_raw_data(std::string((const char*)(data), numel)); + delete[] data; + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT8) { + std::vector data; + data.reserve(numel); + for (auto& i : value) { + data.push_back(static_cast(i)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel)); + } else { + Assert(false, + "Only support data type of BOOL/FLOAT/DOUBLE/INT32/INT64/INT8 in " + "Constant " + "function."); + } + nodes.push_back(node); + return output; +} + +template +std::string OnnxHelper::Constant(ONNX_NAMESPACE::TensorProto_DataType dtype, + const std::vector& value) { + auto output = MapperHelper::Get()->GenName("helper.constant"); + return Constant(output, dtype, value); +} + +template +std::string OnnxHelper::Constant(const std::string& output, + const std::vector& shape, + ONNX_NAMESPACE::TensorProto_DataType dtype, + T value) { + auto node = std::make_shared(); + node->set_op_type("Constant"); + node->add_output(output); + auto attr = node->add_attribute(); + attr->set_name("value"); + attr->set_type(ONNX_NAMESPACE::AttributeProto::TENSOR); + auto tensor = attr->mutable_t(); + tensor->set_name(output); + + int numel = 1; + for (size_t i = 0; i < shape.size(); ++i) { + tensor->add_dims(shape[i]); + numel *= shape[i]; + } + tensor->set_data_type(dtype); + if (dtype == ONNX_NAMESPACE::TensorProto::FLOAT) { + std::vector data(numel, static_cast(value)); + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 4)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::DOUBLE) { + std::vector data(numel, static_cast(value)); + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT64) { + std::vector data(numel, static_cast(value)); + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT32) { + std::vector data(numel, static_cast(value)); + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 4)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT8) { + std::vector data(numel, static_cast(value)); + tensor->set_raw_data(std::string((const char*)(data.data()), numel)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::BOOL) { + bool* data = new bool[numel]; + for (size_t i = 0; i < numel; ++i) { + data[i] = static_cast(value); + } + tensor->set_raw_data(std::string((const char*)(data), numel)); + delete[] data; + } else { + Assert( + false, + "Only support data type of BOOL/FLOAT/DOUBLE/INT32/INT64 in Constant " + "function."); + } + nodes.push_back(node); + return output; +} + +template +std::string OnnxHelper::Constant(const std::vector& shape, + ONNX_NAMESPACE::TensorProto_DataType dtype, + T value) { + auto output = MapperHelper::Get()->GenName("helper.constant"); + return Constant(output, shape, dtype, value); +} + +template +std::string OnnxHelper::ConstOfShape(const std::string& input, + ONNX_NAMESPACE::TensorProto_DataType dtype, + T value) { + auto output = MapperHelper::Get()->GenName("helper.constofshape"); + return ConstOfShape(input, output, dtype, value); +} + +template +std::string OnnxHelper::ConstOfShape(const std::string& input, + const std::string& output, + ONNX_NAMESPACE::TensorProto_DataType dtype, + T value) { + auto node = MakeNode("ConstantOfShape", {input}, {output}); + auto attr = node->add_attribute(); + attr->set_name("value"); + attr->set_type(ONNX_NAMESPACE::AttributeProto::TENSOR); + auto tensor = attr->mutable_t(); + tensor->set_name("tensor_value"); + std::vector shape = {1}; + int numel = 1; + for (size_t i = 0; i < shape.size(); ++i) { + tensor->add_dims(shape[i]); + numel *= shape[i]; + } + tensor->set_data_type(dtype); + if (dtype == ONNX_NAMESPACE::TensorProto::FLOAT) { + std::vector data(numel, static_cast(value)); + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 4)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::DOUBLE) { + std::vector data(numel, static_cast(value)); + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT64) { + std::vector data(numel, static_cast(value)); + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT32) { + std::vector data(numel, static_cast(value)); + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 4)); + } else { + Assert(false, + "Only support data type of FLOAT/DOUBLE/INT64/INT32 in ConstOfShape " + "function."); + } + return output; +} + +template +std::string OnnxHelper::Assign( + const std::string& output, + const ONNX_NAMESPACE::TensorProto_DataType& dtype, + const std::vector& shape, const std::vector& value) { + auto node = std::make_shared(); + node->set_op_type("Constant"); + node->add_output(output); + auto attr = node->add_attribute(); + attr->set_name("value"); + attr->set_type(ONNX_NAMESPACE::AttributeProto::TENSOR); + auto tensor = attr->mutable_t(); + tensor->set_name(output); + + int numel = std::accumulate(std::begin(shape), std::end(shape), 1, + std::multiplies()); + Assert(numel == value.size(), + "Numel of value not satisfy the input shape while creating contant " + "tensor."); + for (size_t i = 0; i < shape.size(); ++i) { + tensor->add_dims(shape[i]); + } + tensor->set_data_type(dtype); + if (dtype == ONNX_NAMESPACE::TensorProto::FLOAT) { + std::vector data; + for (auto& item : value) { + data.push_back(static_cast(item)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 4)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::DOUBLE) { + std::vector data; + for (auto& item : value) { + data.push_back(static_cast(item)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT64) { + std::vector data; + for (auto& item : value) { + data.push_back(static_cast(item)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 8)); + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT32) { + std::vector data; + for (auto& item : value) { + data.push_back(static_cast(item)); + } + tensor->set_raw_data(std::string((const char*)(data.data()), numel * 4)); + } else { + Assert(false, + "Only support data type of FLOAT/DOUBLE/INT32/INT64 in Constant " + "function."); + } + nodes.push_back(node); + return output; +} + +template +std::string OnnxHelper::Assign( + const ONNX_NAMESPACE::TensorProto_DataType& dtype, + const std::vector& shape, const std::vector& value) { + auto output = MapperHelper::Get()->GenName("helper.constant"); + return Assign(output, dtype, shape, value); +} + +template +bool OnnxHelper::TryGetTensorValue(const std::string& name, + std::vector* value) { + for (auto iter = nodes.begin(); iter != nodes.end(); iter++) { + auto node = *iter; + if (node->op_type() != "Constant") { + continue; + } + if (node->output(0) == name) { + for (auto i = 0; i < node->attribute_size(); i++) { + auto attr = node->attribute(i); + if (attr.name() == "value") { + auto tensor = attr.mutable_t(); + auto dtype = tensor->data_type(); + std::vector shape; + for (int64_t i = 0; i < tensor->dims_size(); i++) { + shape.push_back(tensor->dims(i)); + } + int64_t nums = 1; + for (auto& i : shape) nums *= i; + value->resize(nums); + if (dtype == ONNX_NAMESPACE::TensorProto::INT64) { + std::vector val(nums, 0); + memcpy(val.data(), tensor->raw_data().data(), + nums * sizeof(int64_t)); + value->assign(val.begin(), val.end()); + return true; + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT32) { + std::vector val(nums, 0); + memcpy(val.data(), tensor->raw_data().data(), + nums * sizeof(int32_t)); + value->assign(val.begin(), val.end()); + return true; + } else if (dtype == ONNX_NAMESPACE::TensorProto::FLOAT) { + std::vector val(nums, 0); + memcpy(val.data(), tensor->raw_data().data(), nums * sizeof(float)); + value->assign(val.begin(), val.end()); + return true; + } else if (dtype == ONNX_NAMESPACE::TensorProto::DOUBLE) { + std::vector val(nums, 0); + memcpy(val.data(), tensor->raw_data().data(), + nums * sizeof(double)); + value->assign(val.begin(), val.end()); + return true; + } else { + P2OLogger() << "[WARNING] OnnxHelper function TryGetTensorValue " + "only support get int64_t/int32_t/float/double " + "value from Constant now." + << std::endl; + return false; + } + } + } + } + } + return false; +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/quantize/dequantize_linear.cc b/paddle2onnx/mapper/quantize/dequantize_linear.cc new file mode 100644 index 000000000..9bf7797fd --- /dev/null +++ b/paddle2onnx/mapper/quantize/dequantize_linear.cc @@ -0,0 +1,183 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/quantize/dequantize_linear.h" + +namespace paddle2onnx { +REGISTER_MAPPER(dequantize_linear, DequantizeLinearMapper) + +int32_t DequantizeLinearMapper::GetMinOpset(bool verbose) { + if (!IsConstantInput("Scale")) { + Error() << "Input `Scale` requires to be a constant tensor." << std::endl; + return -1; + } + std::vector scales; + if (!TryGetInputValue("Scale", &scales)) { + Error() << "Failed to read tensor value of `Scale`." << std::endl; + return -1; + } + if (bit_length_ != 8) { + Error() << "Only support bit_length = 8." << std::endl; + return -1; + } + if (scales.size() > 1) { + auto x_info = GetInput("X"); + if (x_info[0].shape[quant_axis_] != scales.size()) { + Error() << "Scale size must equal to the size of input quantize axis." + << std::endl; + return -1; + } + Logger(verbose, 13) << "While size of scales greater than 1, " + << RequireOpset(13) << std::endl; + return 13; + } + auto x_info = GetInput("X"); + auto x_shape = x_info[0].shape; + if (x_shape.size() == 2) { + if (quant_axis_ != 1) { + Error() << "When the rank of input is 2, the attribute quant_axis " + "requires to be 1." + << std::endl; + return -1; + } + } else if (x_shape.size() == 4) { + if (!(quant_axis_ == 1 || quant_axis_ == 0)) { + Error() << "When the rank of input is 4, the attribute quant_axis " + "requires to be 0 or 1." + << std::endl; + return -1; + } + } + + Logger(verbose, 10) << RequireOpset(10) << std::endl; + return 10; +} + +void DequantizeLinearMapper::ConvertInt8ToFp32( + const std::vector &onnx_scales, std::vector *weight) { + auto x_info = GetInput("X"); + auto x_shape = x_info[0].shape; + if (x_shape.size() == 2) { + for (auto j = 0; j < x_shape[1]; ++j) { + float scale_value = 0; + if (onnx_scales.size() == 1) { + scale_value = onnx_scales[0]; + } else { + scale_value = onnx_scales[j]; + } + for (auto i = 0; i < x_shape[0]; ++i) { + auto offset = i * x_shape[1] + j; + (*weight)[offset] *= scale_value; + } + } + } else if (x_shape.size() == 4) { + if (quant_axis_ == 0) { + auto inner_offset = 1; + for (auto i : x_shape) { + inner_offset *= i; + } + inner_offset /= x_shape[0]; + for (int i = 0; i < x_shape[0]; ++i) { + float scale_value = 0; + if (onnx_scales.size() == 1) { + scale_value = onnx_scales[0]; + } else { + scale_value = onnx_scales[i]; + } + for (auto j = 0; j < inner_offset; ++j) { + auto offset = i * inner_offset + j; + (*weight)[offset] *= scale_value; + } + } + } else { + auto inner_offset = x_shape[2] * x_shape[3]; + auto outter_offset = x_shape[1] * inner_offset; + for (auto i = 0; i < x_shape[0]; ++i) { + for (auto j = 0; j < x_shape[1]; ++j) { + float scale_value = 0; + if (onnx_scales.size() == 1) { + scale_value = onnx_scales[0]; + } else { + scale_value = onnx_scales[j]; + } + for (auto k = 0; k < inner_offset; k++) { + auto offset = i * outter_offset + j * inner_offset + k; + (*weight)[offset] *= scale_value; + } + } + } + } + } +} + +void DequantizeLinearMapper::Opset10() { + auto x_info = GetInput("X"); + auto x_shape = x_info[0].shape; + std::vector scales; + Assert(TryGetInputValue("Scale", &scales), + "Failed to read tensor value of `Scale`."); + std::vector onnx_scales; + onnx_scales.reserve(scales.size()); + for (auto &i : scales) { + onnx_scales.push_back(i / 127); + } + std::vector onnx_zeros(onnx_scales.size(), 0); + std::string scale_node, zero_node; + if (onnx_zeros.size() == 1) { + scale_node = helper_->Constant({}, ONNX_NAMESPACE::TensorProto::FLOAT, + onnx_scales[0]); + zero_node = + helper_->Constant({}, ONNX_NAMESPACE::TensorProto::INT8, onnx_zeros[0]); + } else { + scale_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, onnx_scales); + zero_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::INT8, onnx_zeros); + } + + std::vector weight; + TryGetInputValue("X", &weight); + if (weight.empty()) { + auto node = helper_->MakeNode("DequantizeLinear", + {x_info[0].name, scale_node, zero_node}, + {GetOutput("Y")[0].name}); + if (helper_->GetOpsetVersion() >= 13) { + AddAttribute(node, "axis", quant_axis_); + } + QuantizeInfo quantize_info(onnx_scales, onnx_zeros, scale_node, zero_node, + quant_axis_); + helper_->quantize_info[GetOutput("Y")[0].name] = quantize_info; + return; + } + ConvertInt8ToFp32(onnx_scales, &weight); + + QuantizeInfo quantize_info(onnx_scales, onnx_zeros, scale_node, zero_node, + quant_axis_); + helper_->quantize_info[x_info[0].name] = quantize_info; + Weight fp32_weight; + fp32_weight.set(P2ODataType::FP32, x_shape, weight); + helper_->updated_params[x_info[0].name] = fp32_weight; + auto node = helper_->MakeNode("QuantizeLinear", + {x_info[0].name, scale_node, zero_node}); + if (helper_->GetOpsetVersion() >= 13) { + AddAttribute(node, "axis", quant_axis_); + } + auto dq_node = helper_->MakeNode("DequantizeLinear", + {node->output(0), scale_node, zero_node}, + {GetOutput("Y")[0].name}); + if (helper_->GetOpsetVersion() >= 13) { + AddAttribute(dq_node, "axis", quant_axis_); + } +} +} // namespace paddle2onnx \ No newline at end of file diff --git a/paddle2onnx/mapper/quantize/dequantize_linear.h b/paddle2onnx/mapper/quantize/dequantize_linear.h new file mode 100755 index 000000000..e49ed1d22 --- /dev/null +++ b/paddle2onnx/mapper/quantize/dequantize_linear.h @@ -0,0 +1,42 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class DequantizeLinearMapper : public Mapper { + public: + DequantizeLinearMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("quant_axis", &quant_axis_); + GetAttr("bit_length", &bit_length_); + if (quant_axis_ == -1) { + quant_axis_ = 1; + } + } + + int32_t GetMinOpset(bool verbose = false); + void Opset10(); + + private: + void ConvertInt8ToFp32(const std::vector& onnx_scales, + std::vector* weight); + int64_t quant_axis_ = 1; + int64_t bit_length_ = 8; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/quantize/quantize_linear.cc b/paddle2onnx/mapper/quantize/quantize_linear.cc new file mode 100755 index 000000000..6ff1c1880 --- /dev/null +++ b/paddle2onnx/mapper/quantize/quantize_linear.cc @@ -0,0 +1,88 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/quantize/quantize_linear.h" + +namespace paddle2onnx { +REGISTER_MAPPER(quantize_linear, QuantizeLinearMapper) + +int32_t QuantizeLinearMapper::GetMinOpset(bool verbose) { + if (!IsConstantInput("Scale")) { + Error() << "Input `Scale` requires to be a constant tensor." << std::endl; + return -1; + } + std::vector scales; + if (!TryGetInputValue("Scale", &scales)) { + Error() << "Failed to read tensor value of `Scale`." << std::endl; + return -1; + } + if (bit_length_ != 8) { + Error() << "Only support bit_length = 8." << std::endl; + return -1; + } + if (round_type_ != 0) { + Error() << "The round_type attr of quantize_linear must be 0." << std::endl; + return -1; + } + if (scales.size() > 1) { + auto x_info = GetInput("X"); + if (x_info[0].shape[quant_axis_] != scales.size()) { + Error() << "Scale size must equal to the size of input quantize axis." + << std::endl; + return -1; + } + Logger(verbose, 13) << "While size of scales greater than 1, " + << RequireOpset(13) << std::endl; + return 13; + } + Logger(verbose, 10) << RequireOpset(10) << std::endl; + return 10; +} + +void QuantizeLinearMapper::Opset10() { + auto x_info = GetInput("X"); + std::vector scales; + Assert(TryGetInputValue("Scale", &scales), + "Failed to read tensor value of `Scale`."); + std::vector onnx_scales; + onnx_scales.reserve(scales.size()); + for (auto i : scales) { + onnx_scales.push_back(i / 127); + } + std::vector onnx_zeros(onnx_scales.size(), 0); + + std::string scale_node, zero_node; + if (onnx_scales.size() == 1) { + scale_node = helper_->Constant({}, ONNX_NAMESPACE::TensorProto::FLOAT, + onnx_scales[0]); + zero_node = + helper_->Constant({}, ONNX_NAMESPACE::TensorProto::INT8, onnx_zeros[0]); + } else { + scale_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, onnx_scales); + zero_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::INT8, onnx_zeros); + } + + auto node = helper_->MakeNode("QuantizeLinear", + {x_info[0].name, scale_node, zero_node}, + {GetOutput("Y")[0].name}); + if (helper_->GetOpsetVersion() >= 13) { + AddAttribute(node, "axis", quant_axis_); + } + QuantizeInfo quantize_info(onnx_scales, onnx_zeros, scale_node, zero_node, + quant_axis_); + helper_->quantize_info[x_info[0].name] = quantize_info; +} +} // namespace paddle2onnx \ No newline at end of file diff --git a/paddle2onnx/mapper/quantize/quantize_linear.h b/paddle2onnx/mapper/quantize/quantize_linear.h new file mode 100644 index 000000000..a209fdbb0 --- /dev/null +++ b/paddle2onnx/mapper/quantize/quantize_linear.h @@ -0,0 +1,45 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class QuantizeLinearMapper : public Mapper { + public: + QuantizeLinearMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("quant_axis", &quant_axis_); + GetAttr("bit_length", &bit_length_); + if (quant_axis_ == -1) { + quant_axis_ = 1; + } + if (HasAttr("round_type")) { + GetAttr("round_type", &round_type_); + } + } + + int32_t GetMinOpset(bool verbose = false); + void Opset10(); + + private: + int64_t round_type_ = 0; // 0: rounding to nearest ties to even. 1: rounding + // to nearest ties away from zero. + int64_t quant_axis_ = 1; + int64_t bit_length_ = 8; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/quantize_helper.cc b/paddle2onnx/mapper/quantize_helper.cc new file mode 100755 index 000000000..f99e5171a --- /dev/null +++ b/paddle2onnx/mapper/quantize_helper.cc @@ -0,0 +1,1205 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/quantize_helper.h" + +namespace paddle2onnx { + +void QuantizeModelProcessor::RemoveNodeByName(const std::string& name, + const bool& update_io) { + if (name.empty()) { + return; + } + for (auto iter = nodes_->begin(); iter != nodes_->end(); iter++) { + if ((*iter)->name() == name) { + std::string input_name = (*iter)->input(0); + std::string output_name = (*iter)->output(0); + nodes_->erase(iter); + if (update_io) { + ReplaceInputOfAllNodes(output_name, input_name); + } + return; + } + } +} + +void QuantizeModelProcessor::ReplaceInputOfAllNodes( + const std::string& old_name, const std::string& new_name, + const std::vector>& + except_nodes) { + auto iter = name2node_dict_.find(old_name); + std::vector> need_rename_nodes; + // after replace all old_name to new_name, replace the quantize_info of new + // name with the quantize_info of old name + auto quantize_info_iter = helper_->quantize_info.find(old_name); + if (quantize_info_iter != helper_->quantize_info.end()) { + helper_->quantize_info[new_name] = helper_->quantize_info[old_name]; + } + + if (iter != name2node_dict_.end()) { + need_rename_nodes = iter->second; + } + for (auto& node : need_rename_nodes) { + auto iter = std::find(except_nodes.begin(), except_nodes.end(), node); + if (iter != except_nodes.end()) { + continue; + } + for (size_t i = 0; i < node->input_size(); ++i) { + if (node->input(i) == old_name) { + node->set_input(i, new_name); + } + } + } +} + +void QuantizeModelProcessor::UpdateInputNameToNodes() { + name2node_dict_.clear(); + for (auto& node : *nodes_) { + for (size_t i = 0; i < node->input_size(); ++i) { + std::string node_input = node->input(i); + if (name2node_dict_.find(node_input) != name2node_dict_.end()) { + name2node_dict_[node_input].push_back(node); + } else { + name2node_dict_[node_input] = {node}; + } + } + } +} + +void QuantizeModelProcessor::ProcessQuantizeModel( + std::vector>* parameters, + std::vector>* inputs, + std::vector>* outputs, + std::vector>* nodes, + OnnxHelper* helper, const std::string& deploy_backend, + const PaddleParser& parser, std::string* calibration_cache) { + // Determine whether the model contains quantization related OPs, if not, exit + // directly + bool quantized_model = false; + for (auto& node : *nodes) { + if (node->op_type() == "QuantizeLinear" || + node->op_type() == "DequantizeLinear") { + quantized_model = true; + break; + } + } + if (!quantized_model) { + return; + } + parser_ = &parser; + helper_ = helper; + parameters_ = parameters; + inputs_ = inputs; + outputs_ = outputs; + nodes_ = nodes; + P2OLogger() << "[Info] Quantize model deploy backend is: " << deploy_backend + << std::endl; + // Determine the format of the exported ONNX quantization model according to + // the deploy_backend + if (deploy_backend == "others") { + // If deploy_backend is others, the quantization model is exported as a + // float model + quantization table. + RemoveAllQuantizeOps(); + std::ofstream outfile; + outfile.open("max_range.txt", std::ios::out); + if (!outfile.is_open()) { + P2OLogger() << "[WARNING] Quantize model processer failed to write range " + "information in current location." + << std::endl; + return; + } + for (auto iter = helper_->quantize_info.begin(); + iter != helper_->quantize_info.end(); iter++) { + std::string log = iter->first; + auto scale = iter->second.scale_; + if (scale.size() == 1) { + log = log + ": " + std::to_string(scale[0] * 127); + outfile << log << std::endl; + } + } + outfile.close(); + } else if (deploy_backend == "onnxruntime") { + // When deploy_backend is ONNXRuntime, use the follow four steps to process: + // 1. broadcast quantize info + // 2. remove all quantize ops + // 3. merge conv and add + // 4. merge conv and bn + // 5. add Q and DQ according ONNXRuntime quantize OP fuse patten. + // 6. use topo sort in nodes + QuantizeInfoBroadcast(); + RemoveAllQuantizeOps(); + MergeConvAdd(); + MergeConvBN(); + AddQDQForORT(); + SortNodes(); + } else if (deploy_backend == "tensorrt") { + // When deploy_backend is TensorRT, use the follow four steps to process: + // For Explicit Quantization + // 1. broadcast quantize info + // 2. remove all quantize ops + // 3. add Q and DQ before conv and matmul. + // 4. use topo sort in nodes + + // For Implicit Quantization + // 1. remove all quantize ops + // 2. broadcast quantize info + // 3. save float onnx model and alibration.cache + QuantizeInfoBroadcast(); + RemoveAllQuantizeOps(); + // Add qdq for Explicit Quantization + // AddTrtQDQ(); + // SortNodes(); + + // Genarate calibration.cache for Implicit Quantization + // convert float to hex + GenerateCache(calibration_cache); + } else if (deploy_backend == "rknn") { + // When deploy_backend is RKNN, use the follow four steps to process: + // 1. broadcast quantize info + // 2. remove all quantize ops + // 3. merge conv and add + // 4. merge conv and bn + // 5. add Q and DQ + // 6. use topo sort in nodes + QuantizeInfoBroadcast(); + RemoveAllQuantizeOps(); + MergeConvAdd(); + MergeConvBN(); + AddQDQForRKNN(); + SortNodes(); + } else { + Assert(false, + "[QuantizeModelProcessor] Only support 'onnxruntime' / 'tensorrt' " + "/ 'others' as " + "backend now, but now the backend is: " + + deploy_backend + "."); + } +} + +void QuantizeModelProcessor::AddQDQForRKNN() { + UpdateInputNameToNodes(); + supported_quantize_type_ = {"Abs", + "Acos", + "Add", + "Asin", + "Atan", + "AveragePool", + "BatchNormalization", + "Ceil", + "Clip", + "Conv", + "ConvTranspose", + "Cos", + "Cosh", + "Concat", + "Elu", + "Erf", + "Exp", + "Floor", + "Gemm", + "HardSigmoid", + "InstanceNormalization", + "IsInf", + "IsNaN", + "Log", + "MaxPool", + "Mul", + "Neg", + "ReduceMean", + "Relu", + "Resize", + "Round", + "Sigmoid", + "Sin", + "Sinh", + "Split", + "Sqrt", + "Tan", + "Tanh"}; + for (auto iter = nodes_->begin(); iter < nodes_->end(); iter++) { + auto node = *iter; + auto type_iter = std::find(supported_quantize_type_.begin(), + supported_quantize_type_.end(), node->op_type()); + if (!supported_quantize_type_.empty() && + type_iter == supported_quantize_type_.end()) { + continue; + } + // Add Miss scale for Mul and MatMul + if (node->op_type() == "Mul" || node->op_type() == "MatMul" || + node->op_type() == "Add") { + for (size_t i = 0; i < node->input_size(); ++i) { + std::string node_input = node->input(i); + if (helper_->quantize_info.find(node_input) != + helper_->quantize_info.end()) { + continue; + } + std::vector weight; + if (!GetTensorByName(node_input, &weight)) { + continue; + } + std::vector weight_shape; + GetTensorShape(node_input, &weight_shape); + int64_t quantize_axis = 1; + if (node->op_type() == "Add") { + quantize_axis = 0; + } + std::vector scale; + std::vector zeros; + + if (node->op_type() == "Add" || weight_shape.size() == 1 || + weight_shape.empty()) { + GetTensorWiseQuantizeInfo(weight, &scale, &zeros); + } else { + GetChannelWiseQuantizeInfo(weight, weight_shape, quantize_axis, + &scale, &zeros); + } + std::string weight_scale_node, weight_zero_node; + if (scale.size() == 1) { + weight_scale_node = helper_->Constant( + {}, ONNX_NAMESPACE::TensorProto::FLOAT, scale[0]); + weight_zero_node = helper_->Constant( + {}, ONNX_NAMESPACE::TensorProto::INT8, zeros[0]); + } else { + weight_scale_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, scale); + weight_zero_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::INT8, zeros); + } + QuantizeInfo weight_quantize_info(scale, zeros, weight_scale_node, + weight_zero_node, quantize_axis); + helper_->quantize_info[node_input] = weight_quantize_info; + } + } + std::vector tensor_names; + for (size_t i = 0; i < node->input_size(); ++i) { + std::string node_input = node->input(i); + tensor_names.push_back(node_input); + } + for (size_t i = 0; i < node->output_size(); ++i) { + std::string node_output = node->output(i); + tensor_names.push_back(node_output); + } + if (!CanBeQuantize(tensor_names)) { + continue; + } + for (auto& name : tensor_names) { + AppendQuantizeTensor(name); + } + } + + // update name2node_dict for the change of Relu op. + UpdateInputNameToNodes(); + // Add QDQ in model + AddQDQInModel(tensors_to_be_quantize); +} + +void QuantizeModelProcessor::GenerateCache(std::string* calibration_cache) { + union { + float f; + unsigned char farray[4]; + } un; + *calibration_cache += "TRT-8XXX-EntropyCalibration2 \n"; + for (auto iter = helper_->quantize_info.rbegin(); + iter != helper_->quantize_info.rend(); iter++) { + std::string tensor_name = iter->first; + QuantizeInfo quantize_info = iter->second; + if (quantize_info.scale_.size() == 1) { + float val = quantize_info.scale_[0]; + un.f = val; + *calibration_cache += (tensor_name + ": "); + std::stringstream enc; + for (int64_t i = 3; i >= 0; i--) { + enc << std::hex << std::setw(2) << std::setfill('0') + << (int)(un.farray[i]); + } + *calibration_cache = *calibration_cache + enc.str() + "\n"; + } + } +} +// In TensorRT, all quantized op: Conv, ConvTranspose, liner(MatMul), MaxPool, +// AvgPool, AdaptiveAvgPool, rnn(not support now) +// https://github.com/NVIDIA/TensorRT/tree/main/tools/pytorch-quantization/pytorch_quantization/nn/modules +void QuantizeModelProcessor::AddTrtQDQ() { + UpdateInputNameToNodes(); + std::vector + quantize_tensors; // save the tensor names that need add quantize ops + std::vector pool_types = {"MaxPool", "AvgPool", + "AdaptiveAvgPool"}; + for (auto iter = nodes_->begin(); iter < nodes_->end(); iter++) { + quantize_tensors.clear(); + auto node = *iter; + if (node->op_type() == "Conv" || node->op_type() == "ConvTranspose") { + std::vector tensor_names = {node->input(0), node->input(1)}; + if (!CanBeQuantize(tensor_names)) { + continue; + } + quantize_tensors = tensor_names; + } + if (node->op_type() == "MatMul") { + std::vector tensor_names = {node->input(0), node->input(1)}; + for (auto& name : tensor_names) { + if (helper_->quantize_info.find(name) != helper_->quantize_info.end()) { + continue; + } + std::vector matmul_weight; + if (!GetTensorByName(name, &matmul_weight)) { + continue; + } + std::vector matmul_weight_shape; + if (!GetTensorShape(name, &matmul_weight_shape)) { + continue; + } + int64_t quantize_axis = 1; + std::vector scale; + std::vector zeros; + GetChannelWiseQuantizeInfo(matmul_weight, matmul_weight_shape, + quantize_axis, &scale, &zeros); + auto scale_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, scale); + auto zero_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::INT8, zeros); + QuantizeInfo matmul_weight_quantize_info(scale, zeros, scale_node, + zero_node, quantize_axis); + helper_->quantize_info[name] = matmul_weight_quantize_info; + } + if (!CanBeQuantize(tensor_names)) { + continue; + } + quantize_tensors = tensor_names; + } + auto type_iter = + std::find(pool_types.begin(), pool_types.end(), node->op_type()); + if (type_iter != pool_types.end()) { + std::vector tensor_names = {node->input(0)}; + if (!CanBeQuantize(tensor_names)) { + continue; + } + quantize_tensors = tensor_names; + } + + std::string negative_scale_tensor = ""; + for (std::string& name : quantize_tensors) { + Assert( + helper_->quantize_info.find(name) != helper_->quantize_info.end(), + "[QuantizeModelProcessor] Can not find quantize info for tensor: " + + name); + QuantizeInfo quantize_info = helper_->quantize_info[name]; + std::vector scales = quantize_info.scale_; + for (auto& i : scales) { + if (i <= 1e-10) { + negative_scale_tensor = negative_scale_tensor + " " + name; + } + } + } + if (negative_scale_tensor.size() > 0) { + P2OLogger() + << "[Warning] The scale of tensors: [ " + negative_scale_tensor + + " ] contains negative scale, so this OP will not be quantized." + << std::endl; + continue; + } + // An OP requires a separate quantize op + for (std::string& name : quantize_tensors) { + if (IsGraphOutput(name)) { + continue; + } + QuantizeInfo quantize_info = helper_->quantize_info[name]; + std::string scale_node = quantize_info.scale_node_; + std::string zeros_node = quantize_info.zeros_node_; + int64_t quantize_axis = quantize_info.quantize_axis_; + auto q_node = + helper_->MakeNode("QuantizeLinear", {name, scale_node, zeros_node}); + if (helper_->GetOpsetVersion() >= 13) { + AddAttribute(q_node, "axis", quantize_axis); + } + auto dq_node = helper_->MakeNode( + "DequantizeLinear", {q_node->output(0), scale_node, zeros_node}); + if (helper_->GetOpsetVersion() >= 13) { + AddAttribute(dq_node, "axis", quantize_axis); + } + for (size_t i = 0; i < node->input_size(); ++i) { + if (node->input(i) == name) { + node->set_input(i, dq_node->output(0)); + } + } + } + } +} + +// According to: +// https://github.com/microsoft/onnxruntime/blob/master/onnxruntime/core/optimizer/qdq_transformer/selectors_actions/qdq_selector_action_transformer.cc +void QuantizeModelProcessor::AddQDQForORT() { + UpdateInputNameToNodes(); + supported_quantize_type_ = {"Conv", "MatMul", "Mul", "Sigmoid", + "Add", "LeakyRelu", "Relu"}; + for (auto iter = nodes_->begin(); iter < nodes_->end(); iter++) { + auto node = *iter; + auto type_iter = std::find(supported_quantize_type_.begin(), + supported_quantize_type_.end(), node->op_type()); + if (!supported_quantize_type_.empty() && + type_iter == supported_quantize_type_.end()) { + continue; + } + // Here we only add Relu, Conv, mul and matmul, all tensors should add Q and + // DQ will be saved in tensors_to_be_quantize + if (node->op_type() == "Relu") { + std::vector tensor_names = {node->input(0), node->output(0)}; + if (!CanBeQuantize(tensor_names)) { + continue; + } + node->set_op_type("LeakyRelu"); + AddAttribute(node, "alpha", static_cast(0.0)); + for (auto& name : tensor_names) { + AppendQuantizeTensor(name); + } + } + if (node->op_type() == "LeakyRelu") { + std::vector tensor_names = {node->input(0), node->output(0)}; + if (!CanBeQuantize(tensor_names)) { + continue; + } + for (auto& name : tensor_names) { + AppendQuantizeTensor(name); + } + } + if (node->op_type() == "Add") { + std::vector tensor_names = {node->input(0), node->input(1), + node->output(0)}; + if (!CanBeQuantize(tensor_names)) { + continue; + } + for (auto& name : tensor_names) { + AppendQuantizeTensor(name); + } + } + if (node->op_type() == "Sigmoid") { + std::vector tensor_names = {node->input(0), node->output(0)}; + if (!CanBeQuantize(tensor_names)) { + continue; + } + for (auto& name : tensor_names) { + AppendQuantizeTensor(name); + } + } + if (node->op_type() == "Conv") { + std::vector tensor_names = {node->input(0), node->input(1), + node->output(0)}; + if (node->input_size() == 3) { + tensor_names.push_back(node->input(2)); + } + if (!CanBeQuantize(tensor_names, {2})) { + continue; + } + for (auto& name : tensor_names) { + AppendQuantizeTensor(name); + } + } + if (node->op_type() == "MatMul") { + std::vector tensor_names = {node->input(0), node->input(1), + node->output(0)}; + for (auto& name : tensor_names) { + if (helper_->quantize_info.find(name) != helper_->quantize_info.end()) { + continue; + } + std::vector matmul_weight; + if (!GetTensorByName(name, &matmul_weight)) { + continue; + } + std::vector matmul_weight_shape; + if (!GetTensorShape(name, &matmul_weight_shape)) { + continue; + } + int64_t quantize_axis = 1; + std::vector scale; + std::vector zeros; + GetChannelWiseQuantizeInfo(matmul_weight, matmul_weight_shape, + quantize_axis, &scale, &zeros); + auto scale_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, scale); + auto zero_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::INT8, zeros); + QuantizeInfo matmul_weight_quantize_info(scale, zeros, scale_node, + zero_node, quantize_axis); + helper_->quantize_info[name] = matmul_weight_quantize_info; + } + if (!CanBeQuantize(tensor_names)) { + tensor_names.pop_back(); + if (!CanBeQuantize(tensor_names)) { + continue; + } + } + for (auto& name : tensor_names) { + AppendQuantizeTensor(name); + } + } + if (node->op_type() == "Mul") { + std::vector tensor_names = {node->input(0), node->input(1), + node->output(0)}; + if (!CanBeQuantize(tensor_names)) { + continue; + } + for (auto& name : tensor_names) { + AppendQuantizeTensor(name); + } + } + } + // update name2node_dict for the change of Relu op. + UpdateInputNameToNodes(); + // Add QDQ in model + AddQDQInModel(tensors_to_be_quantize); +} + +void QuantizeModelProcessor::AddQDQInModel( + const std::vector& tensors_to_be_quantize) { + // add Q and DQ according to tensors_to_be_quantize + for (auto& name : tensors_to_be_quantize) { + if (IsGraphOutput(name)) { + continue; + } + Assert(helper_->quantize_info.find(name) != helper_->quantize_info.end(), + "[QuantizeModelProcessor] Can not find quantize info for tensor: " + + name); + QuantizeInfo quantize_info = helper_->quantize_info[name]; + std::string scale_node = quantize_info.scale_node_; + std::string zeros_node = quantize_info.zeros_node_; + int64_t quantize_axis = quantize_info.quantize_axis_; + auto iter = std::find(only_dequantize_tensors.begin(), + only_dequantize_tensors.end(), name); + if (iter != only_dequantize_tensors.end()) { + // if only add DequantizeLinear + std::vector scale = quantize_info.scale_; + std::vector bias; + Assert(GetTensorByName(name, &bias), + "[QuantizeModelProcessor] Can not find bias value: " + name); + std::vector new_bias(scale.size(), 0); + for (int64_t i = 0; i < bias.size(); i++) { + float scale_val = scale.size() == 1 ? scale[0] : scale[i]; + new_bias[i] = rint(bias[i] / scale_val); + } + + Weight updated_bias; + std::vector bias_shape = {static_cast(new_bias.size())}; + updated_bias.set(P2ODataType::INT32, bias_shape, new_bias); + helper_->updated_params[name] = updated_bias; + auto dq_node = + helper_->MakeNode("DequantizeLinear", {name, scale_node, zeros_node}); + if (helper_->GetOpsetVersion() >= 13) { + AddAttribute(dq_node, "axis", quantize_axis); + } + ReplaceInputOfAllNodes(name, dq_node->output(0)); + } else { + // Handle the following situations + // conv conv + // / | \ -> / \ + // conv conv scale DQD scale + // / \ + // conv conv + std::vector> except_nodes; + auto next_nodes = name2node_dict_[name]; + if (next_nodes.size() > 1) { + for (auto& node : next_nodes) { + auto iter = + std::find(supported_quantize_type_.begin(), + supported_quantize_type_.end(), node->op_type()); + if (iter == supported_quantize_type_.end()) { + except_nodes.push_back(node); + } + } + } + // When all the outputs of this tensor cannot be renamed, + // it means that the quantization OP will be merged + if (next_nodes.size() == except_nodes.size()) { + except_nodes.clear(); + } + auto q_node = + helper_->MakeNode("QuantizeLinear", {name, scale_node, zeros_node}); + if (helper_->GetOpsetVersion() >= 13) { + AddAttribute(q_node, "axis", quantize_axis); + } + auto dq_node = helper_->MakeNode( + "DequantizeLinear", {q_node->output(0), scale_node, zeros_node}); + if (helper_->GetOpsetVersion() >= 13) { + AddAttribute(dq_node, "axis", quantize_axis); + } + ReplaceInputOfAllNodes(name, dq_node->output(0), except_nodes); + } + } +} + +void QuantizeModelProcessor::MergeConvBN() { + UpdateInputNameToNodes(); + for (auto iter = nodes_->begin(); iter < nodes_->end(); iter++) { + auto conv_node = *iter; + if (conv_node->op_type() != "Conv") { + continue; + } + + bool act_has_quantize_info = + helper_->quantize_info.find(conv_node->input(0)) != + helper_->quantize_info.end(); + if (!act_has_quantize_info) { + continue; + } + auto next_nodes = name2node_dict_[conv_node->output(0)]; + + if (next_nodes.size() > 1 || IsGraphOutput(conv_node->output(0))) { + continue; + } + + auto bn_node = next_nodes[0]; + if (bn_node->op_type() != "BatchNormalization" || + IsGraphOutput(bn_node->output(0))) { + continue; + } + + std::vector conv_weight; + Assert(GetTensorByName(conv_node->input(1), &conv_weight), + "Can not get " + conv_node->input(1) + " from Conv."); + + std::vector bn_scale; + Assert(GetTensorByName(bn_node->input(1), &bn_scale), + "Can not get " + bn_node->input(1) + " from BN."); + + std::vector bn_bias; + Assert(GetTensorByName(bn_node->input(2), &bn_bias), + "Can not get " + bn_node->input(2) + " from BN."); + + std::vector bn_mean; + Assert(GetTensorByName(bn_node->input(3), &bn_mean), + "Can not get " + bn_node->input(3) + " from BN."); + + std::vector bn_var; + Assert(GetTensorByName(bn_node->input(4), &bn_var), + "Can not get " + bn_node->input(4) + " from BN."); + + float epsilon = 1; + for (auto i = 0; i < bn_node->attribute_size(); i++) { + auto attr = bn_node->attribute(i); + if (attr.name() == "epsilon") { + epsilon = attr.f(); + } + } + + std::vector conv_bias(bn_bias.size(), 0); + std::string conv_bias_node = conv_node->input(1) + ".merged.bias"; + if (conv_node->input_size() == 3) { + conv_bias_node = conv_node->input(2); + conv_bias.clear(); + Assert(GetTensorByName(conv_bias_node, &conv_bias), + "Can not get " + conv_node->input(2) + " in Conv."); + } + + // merge conv and bn + std::vector alpha(bn_scale.size()); + for (int64_t i = 0; i < bn_scale.size(); i++) { + alpha[i] = bn_scale[i] / sqrt(bn_var[i] + epsilon); + } + + std::vector new_bias(bn_scale.size()); + for (int64_t i = 0; i < bn_scale.size(); i++) { + new_bias[i] = + conv_bias[i] * alpha[i] + (bn_bias[i] - bn_mean[i] * alpha[i]); + } + std::vector new_weight(conv_weight.size()); + int64_t offset = conv_weight.size() / bn_bias.size(); + for (int64_t i = 0; i < bn_scale.size(); i++) { + int64_t outter_offset = i * offset; + for (int64_t j = 0; j < offset; j++) { + int64_t index = outter_offset + j; + new_weight[index] = conv_weight[index] * alpha[i]; + } + } + // update weight + std::vector weight_shape; + Assert(GetTensorShape(conv_node->input(1), &weight_shape), + "Can not get the shape of " + conv_node->input(1) + " in Conv."); + Weight updated_conv_weight; + updated_conv_weight.set(P2ODataType::FP32, weight_shape, new_weight); + helper_->updated_params[conv_node->input(1)] = updated_conv_weight; + // update bias + Weight updated_bias_weight; + std::vector bias_shape = {static_cast(new_bias.size())}; + updated_bias_weight.set(P2ODataType::FP32, bias_shape, new_bias); + helper_->updated_params[conv_bias_node] = updated_bias_weight; + AppendQuantizeTensor(conv_bias_node, true); + // update weight scale + auto quantize_info = helper_->quantize_info[conv_node->input(1)]; + std::string scale_node = quantize_info.scale_node_; + std::string zero_node = quantize_info.zeros_node_; + int64_t quantize_axis = quantize_info.quantize_axis_; + RemoveNodeByName(scale_node); + RemoveNodeByName(zero_node); + std::vector scale = quantize_info.scale_; + std::vector new_scale; + std::vector new_zeros; + if (scale.size() == 1) { + GetTensorWiseQuantizeInfo(new_weight, &new_scale, &new_zeros); + } else { + GetChannelWiseQuantizeInfo(new_weight, weight_shape, quantize_axis, + &new_scale, &new_zeros); + } + auto weight_scale_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, new_scale); + auto weight_zero_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::INT8, new_zeros); + QuantizeInfo updated_weight_quantize_info(new_scale, new_zeros, + weight_scale_node, + weight_zero_node, quantize_axis); + helper_->quantize_info[conv_node->input(1)] = updated_weight_quantize_info; + // add bias scale and update bias + auto act_quantize_info = helper_->quantize_info[conv_node->input(0)]; + std::vector act_scale = act_quantize_info.scale_; + std::vector bias_scale; + for (int64_t i = 0; i < new_scale.size(); i++) { + bias_scale.push_back(act_scale[0] * new_scale[i]); + } + std::vector bias_zeros(bias_scale.size(), 0); + auto bias_scale_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, bias_scale); + auto bias_zero_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::INT32, bias_zeros); + QuantizeInfo bias_quantize_info(bias_scale, bias_zeros, bias_scale_node, + bias_zero_node, 0); + helper_->quantize_info[conv_bias_node] = bias_quantize_info; + if (conv_node->input_size() == 2) { + conv_node->add_input(conv_bias_node); + } + // remove BN op + RemoveNodeByName(bn_node->name()); + } +} + +void QuantizeModelProcessor::MergeConvAdd() { + UpdateInputNameToNodes(); + for (auto iter = nodes_->begin(); iter < nodes_->end(); iter++) { + auto node = *iter; + if (node->op_type() != "Conv") { + continue; + } + // if act input of conv does not have quantize info, continue + bool act_has_quantize_info = helper_->quantize_info.find(node->input(0)) != + helper_->quantize_info.end(); + if (!act_has_quantize_info) { + continue; + } + + // if weight of conv does not have quantize info, continue + bool weight_has_quantize_info = + helper_->quantize_info.find(node->input(1)) != + helper_->quantize_info.end(); + if (!weight_has_quantize_info) { + continue; + } + auto next_nodes = name2node_dict_[node->output(0)]; + + if (next_nodes.size() > 1 || IsGraphOutput(node->output(0))) { + continue; + } + + auto next_node = next_nodes[0]; + if (next_node->op_type() != "Add" || IsGraphOutput(next_node->output(0))) { + continue; + } + std::string reshape_node = node->output(0) == next_node->input(0) + ? next_node->input(1) + : next_node->input(0); + std::vector> before_nodes; + for (auto& node : *nodes_) { + for (size_t i = 0; i < node->output_size(); ++i) { + std::string node_output = node->output(i); + if (node_output == reshape_node) { + before_nodes.push_back(node); + break; + } + } + } + + if (before_nodes.size() != 1 || before_nodes[0]->op_type() != "Reshape") { + continue; + } + + std::string bias_node = before_nodes[0]->input(0); + // continue if bias is not a constant + std::vector bias_val; + if (!GetTensorByName(bias_node, &bias_val)) { + continue; + } + + // continue if shape tensor of reshape op is not a constant + std::vector shape_val; + if (!GetTensorByName(before_nodes[0]->input(1), &shape_val)) { + continue; + } + // continue if shape_val != [1, bias_val.size(), 1, 1] + std::vector target = {1, static_cast(bias_val.size()), 1, + 1}; + if (target != shape_val) { + continue; + } + // remove Reshape op + RemoveNodeByName(before_nodes[0]->name()); + // add scale for bias + std::vector weight_scale = + helper_->quantize_info[node->input(1)].scale_; + std::vector act_scale = + helper_->quantize_info[node->input(0)].scale_; + std::vector bias_scale; + for (int64_t i = 0; i < weight_scale.size(); i++) { + bias_scale.push_back(weight_scale[i] * act_scale[0]); + } + std::vector onnx_zeros(bias_scale.size(), 0); + auto scale_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, bias_scale); + auto zero_node = + helper_->Constant(ONNX_NAMESPACE::TensorProto::INT32, onnx_zeros); + + QuantizeInfo quantize_info(bias_scale, onnx_zeros, scale_node, zero_node, + 0); + + helper_->quantize_info[bias_node] = quantize_info; + AppendQuantizeTensor(bias_node, true); + node->add_input(bias_node); + RemoveNodeByName(next_node->name()); + } +} + +void QuantizeModelProcessor::SortNodes() { + // return the topo sort of nodes; + // 1. Get i2o_mapper and constant_nodes, i2o_mapper means the node map to its + // all output nodes, constant_nodes save all constant nodes. + // 2. Nodes without output nodes are first saved to new_nodes, and then + // cyclically delete the records of the node in i2o_mapper items, and nodes + // whose output nodes are empty are also saved to new_nodes in turn. + // 3. Store constant nodes in new_nodes. + // 4. Reverse new_nodes, then assign to nodes. + std::map> i2o_mapper; + std::vector> constant_nodes; + std::map> + name2node_mapper; + for (int64_t i = 0; i < nodes_->size(); i++) { + auto node = (*nodes_)[i]; + if (node->op_type() == "Constant") { + constant_nodes.push_back(node); + continue; + } + name2node_mapper[node->name()] = node; + for (int64_t in_index = 0; in_index < node->input_size(); in_index++) { + std::string input = node->input(in_index); + for (int64_t j = 0; j < nodes_->size(); j++) { + if (i == j) { + continue; + } + auto input_node = (*nodes_)[j]; + if (input_node->op_type() == "Constant") { + continue; + } + for (int64_t out_index = 0; out_index < input_node->output_size(); + out_index++) { + if (input == input_node->output(out_index)) { + if (i2o_mapper.find(input_node->name()) == i2o_mapper.end()) { + i2o_mapper[input_node->name()] = {node->name()}; + } else { + auto iter = + std::find(i2o_mapper[input_node->name()].begin(), + i2o_mapper[input_node->name()].end(), node->name()); + if (iter == i2o_mapper[input_node->name()].end()) { + i2o_mapper[input_node->name()].push_back(node->name()); + } + } + } + } + } + } + } + std::vector> new_nodes; + + for (int64_t i = 0; i < nodes_->size(); i++) { + auto node_name = (*nodes_)[i]->name(); + auto node = (*nodes_)[i]; + if (node->op_type() == "Constant") { + continue; + } + if (i2o_mapper.find(node_name) == i2o_mapper.end()) { + new_nodes.push_back(node); + } + } + int64_t index = 0; + while (index < new_nodes.size()) { + auto current_node = new_nodes[index]; + std::string current_node_name = current_node->name(); + for (auto iter = i2o_mapper.begin(); iter != i2o_mapper.end(); iter++) { + std::string input_node_name = iter->first; + std::vector* output_nodes_name = &iter->second; + if (output_nodes_name->empty()) { + continue; + } + auto in_inter = std::find(output_nodes_name->begin(), + output_nodes_name->end(), current_node_name); + if (in_inter != output_nodes_name->end()) { + output_nodes_name->erase(in_inter); + } + if (output_nodes_name->empty()) { + new_nodes.push_back(name2node_mapper[input_node_name]); + } + } + index++; + } + + for (auto& node : constant_nodes) { + new_nodes.push_back(node); + } + std::reverse(new_nodes.begin(), new_nodes.end()); + Assert(nodes_->size() == new_nodes.size(), + "The number of nodes after topological sorting is not equal to the " + "number before sorting"); + *nodes_ = new_nodes; +} + +void QuantizeModelProcessor::RemoveAllQuantizeOps() { + UpdateInputNameToNodes(); + for (auto iter = nodes_->begin(); iter < nodes_->end(); iter++) { + auto node = *iter; + if (node->op_type() != "QuantizeLinear") { + continue; + } + auto next_node_names = name2node_dict_[node->output(0)]; + + if (next_node_names.empty() || !next_node_names[0]->has_op_type() || + next_node_names[0]->op_type() != "DequantizeLinear") { + continue; + } + std::string input_name = node->input(0); + RemoveNodeByName(node->name()); + std::string output_name = next_node_names[0]->output(0); + RemoveNodeByName(next_node_names[0]->name()); + ReplaceInputOfAllNodes(output_name, input_name); + } +} + +// Broadcast quantize info between the input and output of the OPs that will not +// change quantize info +void QuantizeModelProcessor::QuantizeInfoBroadcast() { + UpdateInputNameToNodes(); + for (auto iter = nodes_->begin(); iter < nodes_->end(); iter++) { + auto node = *iter; + if (node->op_type() != "Identity") { + continue; + } + std::string input_name = node->input(0); + std::string output_name = node->output(0); + auto input_quantize_info_iter = helper_->quantize_info.find(input_name); + auto output_quantize_info_iter = helper_->quantize_info.find(output_name); + // The input and output of Identity do not have quantize info + if (input_quantize_info_iter == helper_->quantize_info.end() && + output_quantize_info_iter == helper_->quantize_info.end()) { + continue; + } + // The input and output of Identity have quantize info + if (input_quantize_info_iter != helper_->quantize_info.end() && + output_quantize_info_iter != helper_->quantize_info.end()) { + continue; + } + if (input_quantize_info_iter != helper_->quantize_info.end()) { + helper_->quantize_info[output_name] = helper_->quantize_info[input_name]; + } else if (output_quantize_info_iter != helper_->quantize_info.end()) { + helper_->quantize_info[input_name] = helper_->quantize_info[output_name]; + } + if (ConnectToOutput(output_name)) { + continue; + } + RemoveNodeByName(node->name()); + iter--; + } +} + +bool QuantizeModelProcessor::IsGraphOutput(const std::string& name) { + for (auto& item : *outputs_) { + auto out_node = (*item.get()); + if (name == out_node.name()) { + return true; + } + } + return false; +} + +// Try get tensor shape value +bool QuantizeModelProcessor::GetTensorShape(const std::string& name, + std::vector* shape) { + for (auto& item : *parameters_) { + auto node = *(item.get()); + if (node.output(0) != name) { + continue; + } + for (auto i = 0; i < node.attribute_size(); i++) { + auto attr = node.attribute(i); + if (attr.name() == "value") { + auto tensor = attr.mutable_t(); + for (int64_t i = 0; i < tensor->dims_size(); i++) { + shape->push_back(tensor->dims(i)); + } + } + } + } + return !shape->empty(); +} + +void QuantizeModelProcessor::GetTensorWiseQuantizeInfo( + const std::vector& tensor, std::vector* scale, + std::vector* zero) { + float max_val = -1; + for (int64_t i = 0; i < tensor.size(); i++) { + if (fabs(tensor[i]) > max_val) { + max_val = fabs(tensor[i]); + } + } + Assert(max_val >= 0, + "[GetTensorWiseQuantizeInfo] Require the scale >= 0, but now it's " + + std::to_string(max_val) + "."); + scale->push_back(max_val / 127); + zero->push_back(0); +} + +void QuantizeModelProcessor::GetChannelWiseQuantizeInfo( + const std::vector& tensor, const std::vector& shape, + const int64_t& quant_axis, std::vector* scale, + std::vector* zero) { + int64_t channel_count = shape[quant_axis]; + + for (int64_t i = 0; i < channel_count; i++) { + if (quant_axis == 0) { + float max_val = -1; + int64_t inner_offset = 1; + for (auto& j : shape) { + inner_offset *= j; + } + inner_offset /= channel_count; + int64_t index = i * inner_offset; + for (int64_t j = 0; j < inner_offset; j++) { + if (fabs(tensor[index + j]) > max_val) { + max_val = fabs(tensor[index + j]); + } + } + Assert( + max_val >= 0, + "[GetChannelWiseQuantizeInfo] Require the scale >= 0, but now it's " + + std::to_string(max_val) + "."); + scale->push_back(max_val / 127); + zero->push_back(0); + } else if (quant_axis == 1) { + float max_val = -1; + int64_t inner_offset = shape.size() == 4 ? shape[2] * shape[3] : 1; + for (int64_t outter = 0; outter < shape[0]; outter++) { + int64_t index = outter * channel_count * inner_offset; + for (int64_t inner = 0; inner < inner_offset; inner++) { + int64_t final_index = index + i * inner_offset + inner; + if (fabs(tensor[final_index]) > max_val) { + max_val = fabs(tensor[final_index]); + } + } + } + Assert( + max_val >= 0, + "[GetChannelWiseQuantizeInfo] Require the scale >= 0, but now it's " + + std::to_string(max_val) + "."); + scale->push_back(max_val / 127); + zero->push_back(0); + } else { + Assert(false, + "QuantizeModelProcessor::GetChannelWiseQuantizeInfo only supports " + "quant_axis equals to 0 or 1, but now it's " + + std::to_string(quant_axis) + "."); + } + } +} + +template +bool QuantizeModelProcessor::GetTensorByName(const std::string& name, + std::vector* value) { + // Find tensor values in the following order, if found, store the data in + // value, and return true: + // 1. updated_parameters, the weight of conv or matmul. + // 2. parameters of original graph, the scale or bias of BN. + // 3. constant node in nodes, other vals. + auto updated_params_iter = helper_->updated_params.find(name); + if (updated_params_iter != helper_->updated_params.end()) { + (updated_params_iter->second).get(value); + return true; + } + for (int64_t block_index = 0; block_index < parser_->NumOfBlocks(); + block_index++) { + if (parser_->TryGetTensorValue(block_index, name, value)) { + return true; + } + } + return helper_->TryGetTensorValue(name, value); +} + +bool QuantizeModelProcessor::ConnectToOutput(const std::string& output_name) { + std::vector names = {output_name}; + while (!names.empty()) { + std::string name = names[names.size() - 1]; + names.pop_back(); + if (IsGraphOutput(name)) { + return true; + } + auto next_nodes = name2node_dict_[name]; + for (auto& next : next_nodes) { + if (next->op_type() == "Identity") { + names.push_back(next->output(0)); + } + } + } + return false; +} + +bool QuantizeModelProcessor::CanBeQuantize( + const std::vector& tensor_names, + const std::vector& output_index) { + for (auto& tensor : tensor_names) { + if (helper_->quantize_info.find(tensor) == helper_->quantize_info.end()) { + return false; + } + } + // If there is an OP linked to the output by identity, it needs to be skipped, + // do not quantize the OP + for (auto i = 0; i < output_index.size(); i++) { + int64_t index = output_index[i]; + if (index == -1) { + index = tensor_names.size() - 1; + } + + std::string output_name = tensor_names[index]; + if (ConnectToOutput(output_name)) { + return false; + } + } + return true; +} + +void QuantizeModelProcessor::AppendQuantizeTensor(const std::string& tensor, + const bool& only_dequantize) { + if (only_dequantize) { + if (std::find(only_dequantize_tensors.begin(), + only_dequantize_tensors.end(), + tensor) == only_dequantize_tensors.end()) { + only_dequantize_tensors.push_back(tensor); + } + } else { + if (std::find(tensors_to_be_quantize.begin(), tensors_to_be_quantize.end(), + tensor) == tensors_to_be_quantize.end()) { + tensors_to_be_quantize.push_back(tensor); + } + } +} +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/quantize_helper.h b/paddle2onnx/mapper/quantize_helper.h new file mode 100644 index 000000000..c60a284f6 --- /dev/null +++ b/paddle2onnx/mapper/quantize_helper.h @@ -0,0 +1,133 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include + +#include +#include +#include + +#include "paddle2onnx/mapper/mapper.h" +#include "paddle2onnx/parser/parser.h" +namespace paddle2onnx { + +struct QuantizeModelProcessor { + public: + std::vector quantize_info; + const PaddleParser* parser_; + OnnxHelper* helper_; + + std::vector>* parameters_; + std::vector>* inputs_; + std::vector>* outputs_; + std::vector>* nodes_; + // All types that support quantization + std::vector supported_quantize_type_; + + std::map>> + name2node_dict_; + std::vector tensors_to_be_quantize; // records those tensors + // that need to add quantize + // and dequantize op + std::vector only_dequantize_tensors; // records those tensors + // that only need to add + // the dequantize op + // Convert to different model formats based on backend, backend can be + // TensorRT, ONNXRuntime and Others + void ProcessQuantizeModel( + std::vector>* parameters, + std::vector>* inputs, + std::vector>* outputs, + std::vector>* nodes, + OnnxHelper* helper, const std::string& deploy_backend, + const PaddleParser& parser, std::string* calibration_cache = nullptr); + + // Remove all Quantize and Dequantize ops + void RemoveAllQuantizeOps(); + + // If all tensors in tensor_names have quantize info and all the next nodes + // can be quantized, return True, otherwise + // return false + bool CanBeQuantize(const std::vector& tensor_names, + const std::vector& output_index = {-1}); + // only_dequantize records those tensors that only need to add the dequantize + // op + void AppendQuantizeTensor(const std::string& tensor, + const bool& only_dequantize = false); + + // Add QDQ for ORT according to: + // https://github.com/microsoft/onnxruntime/blob/master/onnxruntime/core/optimizer/qdq_transformer/selectors_actions/qdq_selector_action_transformer.cc + void AddQDQForORT(); + + // Determine if the tensor is directly linked to the output by identity + bool ConnectToOutput(const std::string& output_name); + + // Generate cache file for TensorRT8.X int8 deploy + void GenerateCache(std::string* calibration_cache); + + // Add QDQ for TRT according to: + // https://github.com/NVIDIA/TensorRT/tree/main/tools/pytorch-quantization/pytorch_quantization/nn/modules + void AddTrtQDQ(); + + // Add QDQ for RKNN + void AddQDQForRKNN(); + + // Add quantize related op in model according to tensor names + void AddQDQInModel(const std::vector& tensors_to_be_quantize); + + void QuantizeInfoBroadcast(); + + // merge conv + add + void MergeConvAdd(); + + // merge conv + BN + void MergeConvBN(); + + // Determine whether a tensor is an output + bool IsGraphOutput(const std::string& name); + + // Because processing the quantize model will add new nodes, which will + // destroy the topo sorting of nodes, this function will sort the nodes again + void SortNodes(); + + bool GetTensorShape(const std::string& name, std::vector* shape); + + // return the value of tensor by name + template + bool GetTensorByName(const std::string& name, std::vector* value); + + // Perform tensor wise quantization, returning scale and zero + void GetTensorWiseQuantizeInfo(const std::vector& tensor, + std::vector* scale, + std::vector* zero); + + // Perform channel wise quantization, returning scale and zero + void GetChannelWiseQuantizeInfo(const std::vector& tensor, + const std::vector& shape, + const int64_t& quant_axis, + std::vector* scale, + std::vector* zero); + + // Generate name2node_dict to save input name and its related nodes + void UpdateInputNameToNodes(); + + void RemoveNodeByName(const std::string& name, const bool& update_io = true); + + void ReplaceInputOfAllNodes( + const std::string& old_name, const std::string& new_name, + const std::vector>& + except_nodes = {}); +}; +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/register_mapper.h b/paddle2onnx/mapper/register_mapper.h new file mode 100644 index 000000000..1d2253e0f --- /dev/null +++ b/paddle2onnx/mapper/register_mapper.h @@ -0,0 +1,115 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include +#include + +#include "paddle2onnx/utils/utils.h" +// This code is modified from +// https://blog.csdn.net/ZJU_fish1996/article/details/86515711 +namespace paddle2onnx { +class Mapper; +class PaddleParser; +class OnnxHelper; +#define REGISTER_MAPPER(op_name, class_name) \ + class op_name##Generator : public Generator { \ + public: \ + op_name##Generator() { MapperHelper::Get()->Push(#op_name, this); } \ + void Touch() {}; \ + Mapper* Create(const PaddleParser& p, OnnxHelper* h, int64_t b, \ + int64_t o) { \ + auto m = new class_name(p, h, b, o); \ + m->name_ = #class_name; \ + return m; \ + } \ + }; \ + op_name##Generator* op_name##inst = new op_name##Generator(); \ + int Touch##op_name##class_name() { \ + op_name##inst->Touch(); \ + return 0; \ + } + +class Generator { + public: + virtual Mapper* Create(const PaddleParser&, OnnxHelper* helper, int64_t, + int64_t) = 0; +}; + +class MapperHelper { + private: + std::map mappers; + std::map name_counter; + MapperHelper() {} + + public: + static MapperHelper* helper; + static MapperHelper* Get() { + if (nullptr == helper) { + helper = new MapperHelper(); + } + return helper; + } + + int64_t GetAllOps(const std::string& file_path) { + std::ofstream outfile(file_path); + if (!outfile) { + std::cerr << "Failed to open file: " << file_path << std::endl; + return mappers.size(); + } + for (auto iter = mappers.begin(); iter != mappers.end(); iter++) { + outfile << iter->first << std::endl; + } + outfile << "Total OPs: " << mappers.size() << std::endl; + std::cout << " [ * Paddle2ONNX * ] All Registered OPs saved in " + << file_path << std::endl; + outfile.close(); + return mappers.size(); + } + + bool IsRegistered(const std::string& op_name) { + auto iter = mappers.find(op_name); + if (mappers.end() == iter) { + return false; + } + return true; + } + + std::string GenName(const std::string& op_name) { + std::string key = "p2o." + op_name + "."; + if (name_counter.find(key) == name_counter.end()) { + name_counter[key] = 0; + } else { + name_counter[key] += 1; + } + return key + std::to_string(name_counter[key]); + } + + void ClearNameCounter() { name_counter.clear(); } + + Mapper* CreateMapper(const std::string& name, const PaddleParser& parser, + OnnxHelper* helper, int64_t block_id, int64_t op_id) { + Assert(mappers.find(name) != mappers.end(), + name + " cannot be found in registered mappers."); + return mappers[name]->Create(parser, helper, block_id, op_id); + } + + void Push(const std::string& name, Generator* generator) { + Assert(mappers.find(name) == mappers.end(), + name + " has been registered before."); + mappers[name] = generator; + } +}; +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/add_n.cc b/paddle2onnx/mapper/tensor/add_n.cc new file mode 100644 index 000000000..24c5c67da --- /dev/null +++ b/paddle2onnx/mapper/tensor/add_n.cc @@ -0,0 +1,38 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/add_n.h" + +namespace paddle2onnx { +REGISTER_MAPPER(sum, AddNMapper) + +void AddNMapper::Opset7() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + if (x_info.size() == 1) { + helper_->AutoCast(x_info[0].name, out_info[0].name, x_info[0].dtype, + out_info[0].dtype); + } else { + std::vector inputs; + for (auto i = 0; i < x_info.size(); ++i) { + inputs.push_back(helper_->AutoCast(x_info[i].name, x_info[0].dtype, + P2ODataType::FP32)); + } + auto output = helper_->MakeNode("Sum", inputs)->output(0); + helper_->AutoCast(output, out_info[0].name, P2ODataType::FP32, + out_info[0].dtype); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/add_n.h b/paddle2onnx/mapper/tensor/add_n.h new file mode 100644 index 000000000..b74191a46 --- /dev/null +++ b/paddle2onnx/mapper/tensor/add_n.h @@ -0,0 +1,31 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class AddNMapper : public Mapper { + public: + AddNMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/argmax.cc b/paddle2onnx/mapper/tensor/argmax.cc new file mode 100644 index 000000000..3327eea3d --- /dev/null +++ b/paddle2onnx/mapper/tensor/argmax.cc @@ -0,0 +1,73 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/argmax.h" + +namespace paddle2onnx { +REGISTER_MAPPER(arg_max, ArgMaxMapper) + +int32_t ArgMaxMapper::GetMinOpset(bool verbose) { + if (IsAttrVar("axis") && !IsConstant(GetAttrVar("axis")[0])) { + Error() << "While Attribute(axis)'s type is Tensor, it's not " + "supported " + "unless it's a constant tensor." + << std::endl; + return -1; + } + return 7; +} + +void ArgMaxMapper::Opset7() { + auto input_info = parser_->GetOpInput(block_idx_, op_idx_, "X"); + auto output_info = parser_->GetOpOutput(block_idx_, op_idx_, "Out"); + auto input = input_info[0].name; + if (flatten_) { + input = helper_->Flatten(input_info[0].name); + } + + // Make sure the output tensor has to be 1D-Tensor + bool need_unsqueeze = false; + if (flatten_ || input_info[0].shape.size() <= 1) { + if (!keepdims_) { + need_unsqueeze = true; + } + } + if (IsAttrVar("axis")) { + auto axis_info = GetAttrVar("axis"); + std::vector temp; + TryGetValue(axis_info[0], &temp); + axis_ = temp[0]; + } else { + GetAttr("axis", &axis_); + } + if (input_info[0].dtype == P2ODataType::FP64) { + input = helper_->AutoCast(input, P2ODataType::FP64, P2ODataType::FP32); + } + if (input_info[0].dtype == P2ODataType::INT64) { + input = helper_->AutoCast(input, P2ODataType::INT64, P2ODataType::INT32); + } + auto arg_node = helper_->MakeNode("ArgMax", {input}); + AddAttribute(arg_node, "axis", axis_); + AddAttribute(arg_node, "keepdims", static_cast(keepdims_)); + if (!need_unsqueeze) { + helper_->AutoCast(arg_node->output(0), output_info[0].name, + P2ODataType::INT64, output_info[0].dtype); + } else { + auto out = helper_->Unsqueeze(arg_node->output(0), {0}); + helper_->AutoCast(out, output_info[0].name, P2ODataType::INT64, + output_info[0].dtype); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/argmax.h b/paddle2onnx/mapper/tensor/argmax.h new file mode 100755 index 000000000..f7375e94e --- /dev/null +++ b/paddle2onnx/mapper/tensor/argmax.h @@ -0,0 +1,42 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ArgMaxMapper : public Mapper { + public: + ArgMaxMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("flatten", &flatten_); + GetAttr("keepdims", &keepdims_); + GetAttr("dtype", &dtype_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + bool flatten_; + bool keepdims_; + int64_t axis_; + int64_t dtype_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/argmin.cc b/paddle2onnx/mapper/tensor/argmin.cc new file mode 100644 index 000000000..f0be6eda1 --- /dev/null +++ b/paddle2onnx/mapper/tensor/argmin.cc @@ -0,0 +1,73 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/argmin.h" + +namespace paddle2onnx { +REGISTER_MAPPER(arg_min, ArgMinMapper) + +int32_t ArgMinMapper::GetMinOpset(bool verbose) { + if (IsAttrVar("axis") && !IsConstant(GetAttrVar("axis")[0])) { + Error() << "While Attribute(axis)'s type is Tensor, it's not " + "supported " + "unless it's a constant tensor." + << std::endl; + return -1; + } + return 7; +} + +void ArgMinMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto input = input_info[0].name; + if (flatten_) { + input = helper_->Flatten(input_info[0].name); + } + + // Make sure the output tensor has to be 1D-Tensor + bool need_unsqueeze = false; + if (flatten_ || input_info[0].shape.size() <= 1) { + if (!keepdims_) { + need_unsqueeze = true; + } + } + if (IsAttrVar("axis")) { + auto axis_info = GetAttrVar("axis"); + std::vector temp; + TryGetValue(axis_info[0], &temp); + axis_ = temp[0]; + } else { + GetAttr("axis", &axis_); + } + if (input_info[0].dtype == P2ODataType::FP64) { + input = helper_->AutoCast(input, P2ODataType::FP64, P2ODataType::FP32); + } + if (input_info[0].dtype == P2ODataType::INT64) { + input = helper_->AutoCast(input, P2ODataType::INT64, P2ODataType::INT32); + } + auto arg_node = helper_->MakeNode("ArgMin", {input}); + AddAttribute(arg_node, "axis", axis_); + AddAttribute(arg_node, "keepdims", static_cast(keepdims_)); + if (!need_unsqueeze) { + helper_->AutoCast(arg_node->output(0), output_info[0].name, + P2ODataType::INT64, output_info[0].dtype); + } else { + auto out = helper_->Unsqueeze(arg_node->output(0), {0}); + helper_->AutoCast(out, output_info[0].name, P2ODataType::INT64, + output_info[0].dtype); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/argmin.h b/paddle2onnx/mapper/tensor/argmin.h new file mode 100755 index 000000000..ca29d1a59 --- /dev/null +++ b/paddle2onnx/mapper/tensor/argmin.h @@ -0,0 +1,42 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ArgMinMapper : public Mapper { + public: + ArgMinMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("flatten", &flatten_); + GetAttr("keepdims", &keepdims_); + GetAttr("dtype", &dtype_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + bool flatten_; + bool keepdims_; + int64_t axis_; + int64_t dtype_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/argsort.cc b/paddle2onnx/mapper/tensor/argsort.cc new file mode 100644 index 000000000..bef100213 --- /dev/null +++ b/paddle2onnx/mapper/tensor/argsort.cc @@ -0,0 +1,77 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/argsort.h" + +namespace paddle2onnx { +REGISTER_MAPPER(argsort, ArgsortMapper) + +int32_t ArgsortMapper::GetMinOpset(bool verbose) { + if (!descending_) { + Logger(verbose, 11) << "While descending=False, " << RequireOpset(11) + << std::endl; + return 11; + } + + if (axis_ < 0) { + axis_ = axis_ + GetInput("X")[0].Rank(); + } + if (GetInput("X")[0].shape[axis_] <= 0) { + Logger(verbose, 10) << "While input shape is dynamic, " << RequireOpset(10) + << std::endl; + return 10; + } + return 7; +} + +void ArgsortMapper::Opset10() { + auto x_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto indices_info = GetOutput("Indices"); + + auto shape = helper_->MakeNode("Shape", {x_info[0].name})->output(0); + if (axis_ < 0) { + axis_ = axis_ + x_info[0].Rank(); + } + auto dim_size = helper_->Slice(shape, {0}, {axis_}, {axis_ + 1}); + + auto out_node = + helper_->MakeNode("TopK", {x_info[0].name, dim_size}, + {output_info[0].name, indices_info[0].name}); + AddAttribute(out_node, "axis", axis_); + if (helper_->GetOpsetVersion() > 10) { + if (!descending_) { + AddAttribute(out_node, "largest", static_cast(0)); + } else { + AddAttribute(out_node, "largest", static_cast(1)); + } + } +} + +void ArgsortMapper::Opset7() { + auto x_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto indices_info = GetOutput("Indices"); + + if (axis_ < 0) { + axis_ = axis_ + x_info[0].Rank(); + } + + auto out_node = helper_->MakeNode( + "TopK", {x_info[0].name}, {output_info[0].name, indices_info[0].name}); + AddAttribute(out_node, "axis", axis_); + AddAttribute(out_node, "k", x_info[0].shape[axis_]); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/argsort.h b/paddle2onnx/mapper/tensor/argsort.h new file mode 100644 index 000000000..c33956672 --- /dev/null +++ b/paddle2onnx/mapper/tensor/argsort.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ArgsortMapper : public Mapper { + public: + ArgsortMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("descending", &descending_); + GetAttr("axis", &axis_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset10(); + void Opset7(); + + private: + bool descending_; + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/assign.cc b/paddle2onnx/mapper/tensor/assign.cc new file mode 100644 index 000000000..a4d0d3553 --- /dev/null +++ b/paddle2onnx/mapper/tensor/assign.cc @@ -0,0 +1,48 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/assign.h" + +namespace paddle2onnx { +REGISTER_MAPPER(assign, AssignMapper) +REGISTER_MAPPER(share_data, AssignMapper) + +void AssignMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + if (block_idx_ != 0 && OpType() != "share_data") { + // Here's a trick for tensorrt + // Consider remove this trick + if (input_info[0].dtype == P2ODataType::BOOL) { + auto zero = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, + std::vector(1, 0)); + auto cast_input = helper_->AutoCast(input_info[0].name, P2ODataType::BOOL, + P2ODataType::INT64); + auto result = helper_->MakeNode("Add", {cast_input, zero})->output(0); + helper_->AutoCast(result, output_info[0].name, P2ODataType::INT64, + output_info[0].dtype); + } else { + auto zero = helper_->Constant(GetOnnxDtype(input_info[0].dtype), + std::vector(1, 0.0)); + auto new_input = + helper_->Unsqueeze(input_info[0].name, std::vector(1, 0)); + auto result = helper_->MakeNode("Add", {new_input, zero})->output(0); + helper_->Squeeze(result, output_info[0].name, std::vector(1, 0)); + } + } else { + helper_->MakeNode("Identity", {input_info[0].name}, {output_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/assign.h b/paddle2onnx/mapper/tensor/assign.h new file mode 100644 index 000000000..ad9585978 --- /dev/null +++ b/paddle2onnx/mapper/tensor/assign.h @@ -0,0 +1,31 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class AssignMapper : public Mapper { + public: + AssignMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/assign_value.cc b/paddle2onnx/mapper/tensor/assign_value.cc new file mode 100644 index 000000000..6f476cd44 --- /dev/null +++ b/paddle2onnx/mapper/tensor/assign_value.cc @@ -0,0 +1,49 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/assign_value.h" + +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(assign_value, AssignValueMapper) + +int32_t AssignValueMapper::GetMinOpset(bool verbose) { + int32_t dtype = static_cast(dtype_); + if (dtype != P2ODataType::INT32 && dtype != P2ODataType::INT64 && + dtype != P2ODataType::FP32) { + Error() << "Only supports int32/int64/float32." << std::endl; + return -1; + } + return 7; +} + +void AssignValueMapper::Opset7() { + auto output_info = GetOutput("Out"); + int32_t dtype = static_cast(dtype_); + if (dtype == P2ODataType::INT32) { + helper_->Assign(output_info[0].name, GetOnnxDtype(output_info[0].dtype), + shape_, int64_values_); + } else if (dtype == P2ODataType::FP32) { + helper_->Assign(output_info[0].name, GetOnnxDtype(output_info[0].dtype), + shape_, fp32_values_); + } else if (dtype == P2ODataType::INT64) { + helper_->Assign(output_info[0].name, GetOnnxDtype(output_info[0].dtype), + shape_, int64_values_); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/assign_value.h b/paddle2onnx/mapper/tensor/assign_value.h new file mode 100644 index 000000000..ebda25885 --- /dev/null +++ b/paddle2onnx/mapper/tensor/assign_value.h @@ -0,0 +1,49 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class AssignValueMapper : public Mapper { + public: + AssignValueMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("dtype", &dtype_); + GetAttr("shape", &shape_); + int32_t dtype = static_cast(dtype_); + if (dtype == P2ODataType::INT32) { + GetAttr("int32_values", &int64_values_); + } else if (dtype == P2ODataType::FP32) { + GetAttr("fp32_values", &fp32_values_); + } else if (dtype == P2ODataType::INT64) { + GetAttr("int64_values", &int64_values_); + } + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::vector fp32_values_; + std::vector int64_values_; + std::vector shape_; + int64_t dtype_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/bmm.cc b/paddle2onnx/mapper/tensor/bmm.cc new file mode 100644 index 000000000..7d8c0b76d --- /dev/null +++ b/paddle2onnx/mapper/tensor/bmm.cc @@ -0,0 +1,29 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/bmm.h" + +namespace paddle2onnx { +REGISTER_MAPPER(bmm, BmmMapper) + +void BmmMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + auto y = helper_->AutoCast(y_info[0].name, y_info[0].dtype, x_info[0].dtype); + helper_->MakeNode("MatMul", {x_info[0].name, y}, {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/bmm.h b/paddle2onnx/mapper/tensor/bmm.h new file mode 100644 index 000000000..0f0057f78 --- /dev/null +++ b/paddle2onnx/mapper/tensor/bmm.h @@ -0,0 +1,31 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class BmmMapper : public Mapper { + public: + BmmMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/cast.cc b/paddle2onnx/mapper/tensor/cast.cc new file mode 100644 index 000000000..8e9c6c647 --- /dev/null +++ b/paddle2onnx/mapper/tensor/cast.cc @@ -0,0 +1,28 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/cast.h" + +namespace paddle2onnx { +REGISTER_MAPPER(cast, CastMapper) + +void CastMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto node = + helper_->MakeNode("Cast", {input_info[0].name}, {output_info[0].name}); + AddAttribute(node, "to", GetOnnxDtype(out_dtype_)); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/cast.h b/paddle2onnx/mapper/tensor/cast.h new file mode 100644 index 000000000..d95c9c658 --- /dev/null +++ b/paddle2onnx/mapper/tensor/cast.h @@ -0,0 +1,36 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class CastMapper : public Mapper { + public: + CastMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("out_dtype", &out_dtype_); + } + void Opset7(); + + private: + int64_t out_dtype_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/clip.cc b/paddle2onnx/mapper/tensor/clip.cc new file mode 100644 index 000000000..6ef10525f --- /dev/null +++ b/paddle2onnx/mapper/tensor/clip.cc @@ -0,0 +1,89 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/clip.h" + +namespace paddle2onnx { +REGISTER_MAPPER(clip, ClipMapper) + +int32_t ClipMapper::GetMinOpset(bool verbose) { + bool has_max_tensor_input = HasInput("Max"); + bool has_min_tensor_input = HasInput("Min"); + if (has_max_tensor_input || has_min_tensor_input) { + return 11; + } + return 7; +} + +void ClipMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + bool has_max_tensor_input = HasInput("Max"); + bool has_min_tensor_input = HasInput("Min"); + + if (has_max_tensor_input || has_min_tensor_input) { + bool dtype_converted = false; + std::string input_name = input_info[0].name; + int32_t dtype = input_info[0].dtype; + // onnxruntime only supports float input + if (input_info[0].dtype != P2ODataType::FP32) { + input_name = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + dtype_converted = true; + dtype = P2ODataType::FP32; + } + std::string max_name; + if (has_max_tensor_input) { + auto max_info = GetInput("Max"); + max_name = helper_->AutoCast(max_info[0].name, max_info[0].dtype, dtype); + if (max_info[0].Rank() > 0) { + max_name = helper_->Squeeze(max_name, {}); + } + } else { + float max_val; + GetAttr("max", &max_val); + max_name = helper_->Constant({}, GetOnnxDtype(dtype), max_val); + } + std::string min_name; + if (has_min_tensor_input) { + auto min_info = GetInput("Min"); + min_name = helper_->AutoCast(min_info[0].name, min_info[0].dtype, dtype); + if (min_info[0].Rank() > 0) { + min_name = helper_->Squeeze(min_name, {}); + } + } else { + float min_val; + GetAttr("min", &min_val); + min_name = helper_->Constant({}, GetOnnxDtype(dtype), min_val); + } + if (dtype_converted) { + auto node = helper_->MakeNode("Clip", {input_name, min_name, max_name}); + helper_->AutoCast(node->output(0), output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); + } else { + helper_->MakeNode("Clip", {input_name, min_name, max_name}, + {output_info[0].name}); + } + } else { + float max_val; + GetAttr("max", &max_val); + float min_val; + GetAttr("min", &min_val); + helper_->Clip(input_info[0].name, output_info[0].name, min_val, max_val, + input_info[0].dtype); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/clip.h b/paddle2onnx/mapper/tensor/clip.h new file mode 100644 index 000000000..2e2019da6 --- /dev/null +++ b/paddle2onnx/mapper/tensor/clip.h @@ -0,0 +1,32 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ClipMapper : public Mapper { + public: + ClipMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false); + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/concat.cc b/paddle2onnx/mapper/tensor/concat.cc new file mode 100644 index 000000000..3b106bd5a --- /dev/null +++ b/paddle2onnx/mapper/tensor/concat.cc @@ -0,0 +1,72 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/concat.h" + +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(concat, ConcatMapper) + +int32_t ConcatMapper::GetMinOpset(bool verbose) { + if (HasInput("AxisTensor") && !IsConstantInput("AxisTensor")) { + Error() << "While AxisTensor as input exists, it's not supported unless " + "it's a constant tensor." + << std::endl; + return -1; + } else if (IsAttrVar("axis") && !IsConstant(GetAttrVar("axis")[0])) { + Error() << "While Attribute(axis)'s type is Tensor, it's not supported " + "unless it's a constant tensor." + << std::endl; + return -1; + } + return 7; +} + +void ConcatMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + int32_t casted_dtype; + std::vector casted_names = + helper_->DtypeAlignment(input_info, &casted_dtype); + + auto parse_axis_value = [&](const TensorInfo& tensor_info, int64_t& axis) { + std::vector value; + TryGetValue(tensor_info, &value); + axis = value[0]; + }; + + bool has_axis_tensor_input = HasInput("AxisTensor"); + + int64_t axis = axis_; + // NOTE(Aurelius84): we need to deprecate this branch in the future. + if (has_axis_tensor_input) { + auto info = GetInput("AxisTensor"); + parse_axis_value(info[0], axis); + } else if (IsAttrVar("axis")) { + auto info = GetAttrVar("axis"); + parse_axis_value(info[0], axis); + } + if (axis < 0) { + axis = axis + input_info[0].Rank(); + } + auto node = helper_->MakeNode("Concat", casted_names); + AddAttribute(node, "axis", axis); + helper_->AutoCast(node->output(0), output_info[0].name, casted_dtype, + output_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/concat.h b/paddle2onnx/mapper/tensor/concat.h new file mode 100644 index 000000000..4a4a79df1 --- /dev/null +++ b/paddle2onnx/mapper/tensor/concat.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ConcatMapper : public Mapper { + public: + ConcatMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/cumsum.cc b/paddle2onnx/mapper/tensor/cumsum.cc new file mode 100644 index 000000000..f16ef65c7 --- /dev/null +++ b/paddle2onnx/mapper/tensor/cumsum.cc @@ -0,0 +1,41 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/cumsum.h" + +namespace paddle2onnx { +REGISTER_MAPPER(cumsum, CumsumMapper) + +int32_t CumsumMapper::GetMinOpset(bool verbose) { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; +} + +void CumsumMapper::Opset11() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + std::string axis_node; + if (IsAttrVar("axis")) { + auto axis_info = GetAttrVar("axis"); + axis_node = helper_->AutoCast(axis_info[0].name, axis_info[0].dtype, + P2ODataType::INT64); + } else { + GetAttr("axis", &axis_); + axis_node = helper_->Constant({1}, GetOnnxDtype(P2ODataType::INT64), axis_); + } + helper_->MakeNode("CumSum", {input_info[0].name, axis_node}, + {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/cumsum.h b/paddle2onnx/mapper/tensor/cumsum.h new file mode 100644 index 000000000..7f747f55c --- /dev/null +++ b/paddle2onnx/mapper/tensor/cumsum.h @@ -0,0 +1,35 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class CumsumMapper : public Mapper { + public: + CumsumMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false); + void Opset11(); + + private: + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/dist.cc b/paddle2onnx/mapper/tensor/dist.cc new file mode 100644 index 000000000..b69bb3de7 --- /dev/null +++ b/paddle2onnx/mapper/tensor/dist.cc @@ -0,0 +1,67 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/dist.h" + +#include +#include + +namespace paddle2onnx { + +REGISTER_MAPPER(dist, DistMapper) + +const int g_NegIntInfinity = 0xFF800000; +const float g_NegFloatInfinity = *((float *)&g_NegIntInfinity); + +void DistMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto output_info = GetOutput("Out"); + + auto sub_node = helper_->MakeNode("Sub", {x_info[0].name, y_info[0].name}); + auto abs_node = helper_->MakeNode("Abs", {sub_node->output(0)}); + + if (fabs(p_) < 1e-6) { + auto sign_node = helper_->MakeNode("Sign", {abs_node->output(0)}); + auto sum_node = helper_->MakeNode("ReduceSum", {sign_node->output(0)}); + AddAttribute(sum_node, "keepdims", static_cast(0)); + auto s_sum_node = helper_->Reshape(sum_node->output(0), {-1}); + helper_->AutoCast(s_sum_node, output_info[0].name, x_info[0].dtype, + output_info[0].dtype); + } else if (p_ == std::numeric_limits::infinity()) { + auto max_node = helper_->MakeNode("ReduceMax", {abs_node->output(0)}); + AddAttribute(max_node, "keepdims", static_cast(0)); + auto s_max_node = helper_->Reshape(max_node->output(0), {-1}); + helper_->AutoCast(s_max_node, output_info[0].name, x_info[0].dtype, + output_info[0].dtype); + } else if (p_ == g_NegFloatInfinity) { + auto min_node = helper_->MakeNode("ReduceMin", {abs_node->output(0)}); + AddAttribute(min_node, "keepdims", static_cast(0)); + auto s_min_node = helper_->Reshape(min_node->output(0), {-1}); + helper_->AutoCast(s_min_node, output_info[0].name, x_info[0].dtype, + output_info[0].dtype); + } else { + std::string p = helper_->Constant({1}, GetOnnxDtype(x_info[0].dtype), p_); + auto pow_node = helper_->MakeNode("Pow", {abs_node->output(0), p}); + + auto sum_node = helper_->MakeNode("ReduceSum", {pow_node->output(0)}); + AddAttribute(sum_node, "keepdims", static_cast(0)); + auto s_node = helper_->Reshape(sum_node->output(0), {-1}); + + auto p_1 = helper_->MakeNode("Reciprocal", {p}); + helper_->MakeNode("Pow", {s_node, p_1->output(0)}, {output_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/dist.h b/paddle2onnx/mapper/tensor/dist.h new file mode 100644 index 000000000..8d7eeedae --- /dev/null +++ b/paddle2onnx/mapper/tensor/dist.h @@ -0,0 +1,34 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class DistMapper : public Mapper { + public: + DistMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("p", &p_); + } + void Opset7(); + + private: + float p_; +}; +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/dot.cc b/paddle2onnx/mapper/tensor/dot.cc new file mode 100755 index 000000000..0349b80c3 --- /dev/null +++ b/paddle2onnx/mapper/tensor/dot.cc @@ -0,0 +1,41 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/dot.h" + +namespace paddle2onnx { +REGISTER_MAPPER(dot, DotMapper) + +void DotMapper::Opset7() { + auto input_x_info = GetInput("X"); + auto input_y_info = GetInput("Y"); + auto output_info = GetOutput("Out"); + + auto mul_node = + helper_->MakeNode("Mul", {input_x_info[0].name, input_y_info[0].name}); + + if (helper_->GetOpsetVersion() >= 13) { + std::string axes_node = helper_->Constant( + {1}, GetOnnxDtype(P2ODataType::INT64), input_x_info[0].Rank() - 1); + helper_->MakeNode("ReduceSum", {mul_node->output(0), axes_node}, + {output_info[0].name}); + } else { + auto reducesum_node = helper_->MakeNode("ReduceSum", {mul_node->output(0)}, + {output_info[0].name}); + std::vector axes = {input_x_info[0].Rank() - 1}; + AddAttribute(reducesum_node, "axes", axes); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/dot.h b/paddle2onnx/mapper/tensor/dot.h new file mode 100644 index 000000000..a9575060f --- /dev/null +++ b/paddle2onnx/mapper/tensor/dot.h @@ -0,0 +1,31 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class DotMapper : public Mapper { + public: + DotMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/equal.cc b/paddle2onnx/mapper/tensor/equal.cc new file mode 100644 index 000000000..e06be2442 --- /dev/null +++ b/paddle2onnx/mapper/tensor/equal.cc @@ -0,0 +1,44 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/equal.h" + +namespace paddle2onnx { +REGISTER_MAPPER(equal, EqualMapper) + +int32_t EqualMapper::GetMinOpset(bool verbose) { + if (axis_ != -1) { + Error() << "axis attribute must be -1 in operator equal." << std::endl; + return -1; + } + return 7; +} + +void EqualMapper::Opset7() { + auto input_x_info = GetInput("X"); + auto input_y_info = GetInput("Y"); + auto output_info = GetOutput("Out"); + + std::string input_x = input_x_info[0].name; + std::string input_y = input_y_info[0].name; + if (helper_->GetOpsetVersion() < 11) { + input_x = helper_->AutoCast(input_x_info[0].name, input_x_info[0].dtype, + P2ODataType::INT32); + input_y = helper_->AutoCast(input_y_info[0].name, input_y_info[0].dtype, + P2ODataType::INT32); + } + helper_->MakeNode("Equal", {input_x, input_y}, {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/equal.h b/paddle2onnx/mapper/tensor/equal.h new file mode 100644 index 000000000..23a85b649 --- /dev/null +++ b/paddle2onnx/mapper/tensor/equal.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class EqualMapper : public Mapper { + public: + EqualMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/expand.cc b/paddle2onnx/mapper/tensor/expand.cc new file mode 100644 index 000000000..f1a9cbf5e --- /dev/null +++ b/paddle2onnx/mapper/tensor/expand.cc @@ -0,0 +1,40 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/expand.h" + +namespace paddle2onnx { +REGISTER_MAPPER(expand, ExpandMapper) + +void ExpandMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::string expand_times = ""; + if (HasInput("expand_times_tensor")) { + auto info = GetInput("expand_times_tensor"); + expand_times = helper_->ConcatIndices(info); + } else if (HasInput("ExpandTimes")) { + auto info = GetInput("ExpandTimes"); + expand_times = helper_->AutoCast(info[0].name, info[0].dtype, P2ODataType::INT64); + } else { + expand_times = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, expand_times_); + } + + helper_->MakeNode("Tile", + {input_info[0].name, expand_times}, + {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/expand.h b/paddle2onnx/mapper/tensor/expand.h new file mode 100644 index 000000000..5d45aa6af --- /dev/null +++ b/paddle2onnx/mapper/tensor/expand.h @@ -0,0 +1,36 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ExpandMapper : public Mapper { + public: + ExpandMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("expand_times", &expand_times_); + } + void Opset7(); + + private: + std::vector expand_times_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/expand_as.cc b/paddle2onnx/mapper/tensor/expand_as.cc new file mode 100644 index 000000000..5a678aff7 --- /dev/null +++ b/paddle2onnx/mapper/tensor/expand_as.cc @@ -0,0 +1,52 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/expand_as.h" + +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(expand_as_v2, ExpandAsMapper) + +int32_t ExpandAsMapper::GetMinOpset(bool verbose) { + if (target_shape_.size() == 0 && !HasInput("target_tensor")) { + Error() << "Attribute `target_shape` or input tensor `target_tensor` is " + "not exist" + << std::endl; + return -1; + } + Logger(verbose, 8) << RequireOpset(8) << std::endl; + return 8; +}; + +void ExpandAsMapper::Opset8() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::string target_shape = ""; + if (HasInput("target_tensor")) { + auto info = GetInput("target_tensor"); + target_shape = helper_->MakeNode("Shape", {info[0].name})->output(0); + } else { + target_shape = + helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, target_shape_); + } + + helper_->MakeNode("Expand", {input_info[0].name, target_shape}, + {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/expand_as.h b/paddle2onnx/mapper/tensor/expand_as.h new file mode 100644 index 000000000..b45a43378 --- /dev/null +++ b/paddle2onnx/mapper/tensor/expand_as.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ExpandAsMapper : public Mapper { + public: + ExpandAsMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("target_shape", &target_shape_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset8(); + + private: + std::vector target_shape_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/expand_v2.cc b/paddle2onnx/mapper/tensor/expand_v2.cc new file mode 100644 index 000000000..c8758bbb0 --- /dev/null +++ b/paddle2onnx/mapper/tensor/expand_v2.cc @@ -0,0 +1,61 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/expand_v2.h" + +namespace paddle2onnx { +REGISTER_MAPPER(expand_v2, ExpandV2Mapper) + +void ExpandV2Mapper::Opset8() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + + int dim_diff = 0; + std::string shape = ""; + if (HasInput("Shape")) { + auto shape_info = GetInput("Shape"); + dim_diff = shape_info[0].shape[0] - x_info[0].Rank(); + shape = helper_->AutoCast(shape_info[0].name, shape_info[0].dtype, + P2ODataType::INT64); + } else if (HasInput("expand_shapes_tensor")) { + auto shape_info = GetInput("expand_shapes_tensor"); + dim_diff = shape_info.size() - x_info[0].Rank(); + shape = helper_->ConcatIndices(shape_info); + } else { + std::vector shape_value; + GetAttr("shape", &shape_value); + dim_diff = shape_value.size() - x_info[0].Rank(); + shape = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, shape_value); + } + + auto input_shape = helper_->MakeNode("Shape", {x_info[0].name})->output(0); + if (dim_diff > 0) { + auto padding_shape = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, + std::vector(dim_diff, 1)); + input_shape = helper_->Concat({padding_shape, input_shape}, 0); + } + if (helper_->GetOpsetVersion() < 12) { + // While opset < 12, Max cannot support int64 datatype with onnxruntime + input_shape = + helper_->AutoCast(input_shape, P2ODataType::INT64, P2ODataType::FP32); + shape = helper_->AutoCast(shape, P2ODataType::INT64, P2ODataType::FP32); + shape = helper_->MakeNode("Max", {input_shape, shape})->output(0); + shape = helper_->AutoCast(shape, P2ODataType::FP32, P2ODataType::INT64); + } else { + shape = helper_->MakeNode("Max", {input_shape, shape})->output(0); + } + helper_->MakeNode("Expand", {x_info[0].name, shape}, {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/expand_v2.h b/paddle2onnx/mapper/tensor/expand_v2.h new file mode 100644 index 000000000..00dc098c8 --- /dev/null +++ b/paddle2onnx/mapper/tensor/expand_v2.h @@ -0,0 +1,32 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ExpandV2Mapper : public Mapper { + public: + ExpandV2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 8) << RequireOpset(8) << std::endl; + return 8; + } + void Opset8(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/eye.cc b/paddle2onnx/mapper/tensor/eye.cc new file mode 100644 index 000000000..5af3aa675 --- /dev/null +++ b/paddle2onnx/mapper/tensor/eye.cc @@ -0,0 +1,87 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/eye.h" + +namespace paddle2onnx { +REGISTER_MAPPER(eye, EyeMapper) + +void EyeMapper::ParseValue(const TensorInfo& tensor_info, int64_t* num_val) { + std::vector value; + TryGetValue(tensor_info, &value); + *num_val = value[0]; +} + +int32_t EyeMapper::GetMinOpset(bool verbose) { + if (IsAttrVar("num_rows")) { + if (!IsConstant(GetAttrVar("num_rows")[0])) { + Error() + << "While Attribute(num_rows)'s type is Tensor, it's not supported " + "unless it's a constant tensor." + << std::endl; + return -1; + } else { + auto info = GetAttrVar("num_rows"); + ParseValue(info[0], &num_rows_); + } + } else { + GetAttr("num_rows", &num_rows_); + } + if (IsAttrVar("num_columns")) { + if (!IsConstant(GetAttrVar("num_columns")[0])) { + Error() << "While Attribute(num_columns)'s type is Tensor, it's not " + "supported " + "unless it's a constant tensor." + << std::endl; + return -1; + } else { + auto info = GetAttrVar("num_columns"); + ParseValue(info[0], &num_columns_); + } + } else { + GetAttr("num_columns", &num_columns_); + } + + if (num_rows_ <= 0 || num_columns_ <= 0) { + Error() << "Attribute `num_rows` or `num_columns` must greater than 0. " + << std::endl; + return -1; + } + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; +} + +void EyeMapper::Opset9() { + auto output_info = GetOutput("Out"); + if (IsAttrVar("num_rows")) { + auto info = GetAttrVar("num_rows"); + ParseValue(info[0], &num_rows_); + } else { + GetAttr("num_rows", &num_rows_); + } + if (IsAttrVar("num_columns")) { + auto info = GetAttrVar("num_columns"); + ParseValue(info[0], &num_columns_); + } else { + GetAttr("num_columns", &num_columns_); + } + + std::string constant_node = helper_->Constant( + {num_rows_, num_columns_}, GetOnnxDtype(output_info[0].dtype), 0); + + auto node = + helper_->MakeNode("EyeLike", {constant_node}, {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/eye.h b/paddle2onnx/mapper/tensor/eye.h new file mode 100644 index 000000000..7aa8629b2 --- /dev/null +++ b/paddle2onnx/mapper/tensor/eye.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class EyeMapper : public Mapper { + public: + EyeMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false); + void Opset9(); + + private: + void ParseValue(const TensorInfo& tensor_info, int64_t* num_val); + int64_t num_rows_; + int64_t num_columns_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/fill_constant.cc b/paddle2onnx/mapper/tensor/fill_constant.cc new file mode 100644 index 000000000..13b68b528 --- /dev/null +++ b/paddle2onnx/mapper/tensor/fill_constant.cc @@ -0,0 +1,153 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#include "paddle2onnx/mapper/tensor/fill_constant.h" + +#include +#include + +namespace paddle2onnx { + +REGISTER_MAPPER(fill_constant, FillConstantMapper) + +int32_t FillConstantMapper::GetMinOpset(bool verbose) { + auto out_info = GetOutput("Out"); + auto onnx_dtype = GetOnnxDtype(out_info[0].dtype); + if (onnx_dtype != ONNX_NAMESPACE::TensorProto::INT32 && + onnx_dtype != ONNX_NAMESPACE::TensorProto::INT64 && + onnx_dtype != ONNX_NAMESPACE::TensorProto::FLOAT && + onnx_dtype != ONNX_NAMESPACE::TensorProto::DOUBLE) { + Error() << "Only support int32/int64/float32/float64 data type in " + "fill_constant operator." + << std::endl; + return -1; + } + if (HasInput("ShapeTensorList")) { + Logger(verbose, 9) << "While ShapeTensorList as input, " << RequireOpset(9) << std::endl; + return 9; + } + if (HasInput("ShapeTensor") && !IsConstantInput("ShapeTensor")) { + Logger(verbose, 9) << "While ShapeTensor as input and it's not a constant tensor, " << RequireOpset(9) << std::endl; + return 9; + } + return 7; +} + +float FillConstantMapper::GetFillValue() { + float value = 0; + if (str_value_.empty()) { + value = value_; + } else { + if (str_value_ == "inf") { + value = std::numeric_limits::infinity(); + } else if (str_value_ == "-inf") { + value = -std::numeric_limits::infinity(); + } else if (str_value_ == "nan") { + value = std::numeric_limits::quiet_NaN(); + } else { + std::stringstream convert_stream(str_value_); + convert_stream >> value; + } + } + if (HasInput("ValueTensor")) { + value = 0.0; + } + return value; +} + +void FillConstantMapper::Opset7() { + auto out_info = GetOutput("Out"); + Assert(!HasInput("ShapeTensorList"), "While ShapeTensorList as input, requires opset_version>=9 for op fill_constant."); + std::vector shape; + if (HasInput("ShapeTensor")) { + Assert(TryGetInputValue("ShapeTensor", &shape), "While ShapeTensor as input and it's not a constant tensor, requires opset_version>=9 for op fill_constant."); + } else { + GetAttr("shape", &shape); + } + float value = GetFillValue(); + if (HasInput("ValueTensor")) { + auto value_info = GetInput("ValueTensor"); + auto value_tensor = helper_->AutoCast(value_info[0].name, value_info[0].dtype, out_info[0].dtype); + auto out = helper_->Constant(shape, GetOnnxDtype(out_info[0].dtype), float(0.0)); + helper_->MakeNode("Add", {out, value_tensor}, {out_info[0].name}); + } else { + helper_->Constant(out_info[0].name, shape, GetOnnxDtype(out_info[0].dtype), value); + } +} + +void FillConstantMapper::Opset9() { + if (GetMinOpset() == 7) { + return Opset7(); + } + auto out_info = GetOutput("Out"); + bool shape_is_tensor = HasInput("ShapeTensor") || HasInput("ShapeTensorList"); + bool value_is_tensor = HasInput("ValueTensor"); + auto onnx_dtype = GetOnnxDtype(out_info[0].dtype); + float value = GetFillValue(); + std::string out; + if (shape_is_tensor) { + std::string shape_name; + if (HasInput("ShapeTensor")) { + auto shape_info = GetInput("ShapeTensor"); + shape_name = helper_->AutoCast(shape_info[0].name, shape_info[0].dtype, + P2ODataType::INT64); + } else { + auto shape_info = GetInput("ShapeTensorList"); + shape_name = helper_->ConcatIndices(shape_info); + } + + auto node = helper_->MakeNode("ConstantOfShape", {shape_name}); + auto attr = node->add_attribute(); + attr->set_name("value"); + attr->set_type(ONNX_NAMESPACE::AttributeProto::TENSOR); + auto tensor = attr->mutable_t(); + tensor->set_name(out_info[0].name); + tensor->set_data_type(onnx_dtype); + tensor->add_dims(1); + if (onnx_dtype == ONNX_NAMESPACE::TensorProto::INT32) { + std::vector data(1); + data[0] = static_cast(value); + auto ptr = reinterpret_cast(data.data()); + tensor->set_raw_data(std::string(ptr, sizeof(int32_t))); + } else if (onnx_dtype == ONNX_NAMESPACE::TensorProto::INT64) { + std::vector data(1); + data[0] = static_cast(value); + auto ptr = reinterpret_cast(data.data()); + tensor->set_raw_data(std::string(ptr, sizeof(int64_t))); + } else if (onnx_dtype == ONNX_NAMESPACE::TensorProto::FLOAT) { + std::vector data(1, value_); + auto ptr = reinterpret_cast(data.data()); + tensor->set_raw_data(std::string(ptr, sizeof(float))); + } else if (onnx_dtype == ONNX_NAMESPACE::TensorProto::DOUBLE) { + std::vector data(1); + data[0] = static_cast(value); + auto ptr = reinterpret_cast(data.data()); + tensor->set_raw_data(std::string(ptr, sizeof(double))); + } + out = node->output(0); + } else { + std::vector shape; + GetAttr("shape", &shape); + out = helper_->Constant(shape, onnx_dtype, value); + } + if (value_is_tensor) { + auto value_info = GetInput("ValueTensor"); + std::string cast_value = helper_->AutoCast( + value_info[0].name, value_info[0].dtype, out_info[0].dtype); + helper_->MakeNode("Add", {out, cast_value}, {out_info[0].name}); + } else { + helper_->MakeNode("Identity", {out}, {out_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/fill_constant.h b/paddle2onnx/mapper/tensor/fill_constant.h new file mode 100644 index 000000000..231cb8402 --- /dev/null +++ b/paddle2onnx/mapper/tensor/fill_constant.h @@ -0,0 +1,38 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class FillConstantMapper : public Mapper { + public: + FillConstantMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("str_value", &str_value_); + GetAttr("value", &value_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + void Opset9(); + + private: + float GetFillValue(); + std::string str_value_; + float value_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/fill_constant_batch_size_like.cc b/paddle2onnx/mapper/tensor/fill_constant_batch_size_like.cc new file mode 100644 index 000000000..80fbc7877 --- /dev/null +++ b/paddle2onnx/mapper/tensor/fill_constant_batch_size_like.cc @@ -0,0 +1,84 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#include "paddle2onnx/mapper/tensor/fill_constant_batch_size_like.h" + +namespace paddle2onnx { + +REGISTER_MAPPER(fill_constant_batch_size_like, FillConstantBatchSizeLikeMapper) + +int32_t FillConstantBatchSizeLikeMapper::GetMinOpset(bool verbose) { + auto out_info = GetOutput("Out"); + if (out_info[0].dtype == P2ODataType::BOOL) { + Error() << "Dtype of boolean is not supported." << std::endl; + return -1; + } + return 7; +} + +void FillConstantBatchSizeLikeMapper::Opset7() { + auto input_info = GetInput("Input"); + auto out_info = GetOutput("Out"); + float value = value_; + if (!str_value_.empty()) { + std::stringstream convert_stream(str_value_); + convert_stream >> value; + } + std::vector shape; + shape.assign(shape_.begin(), shape_.end()); + shape[output_dim_idx_] = 1; + + auto input_shape = + helper_->MakeNode("Shape", {input_info[0].name})->output(0); + auto batch = + helper_->Slice(input_shape, {0}, {input_dim_idx_}, {input_dim_idx_ + 1}); + + if (output_dim_idx_ == 0) { + auto constant = + helper_->Constant(shape, GetOnnxDtype(out_info[0].dtype), value); + auto repeat = batch; + if (shape.size() > 1) { + auto tmp = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, + std::vector(shape.size() - 1, 1)); + repeat = helper_->Concat({batch, tmp}, 0); + } + helper_->MakeNode("Tile", {constant, repeat}, {out_info[0].name}); + } else if (output_dim_idx_ == shape.size() - 1) { + auto constant = + helper_->Constant(shape, GetOnnxDtype(out_info[0].dtype), value); + auto repeat = batch; + if (shape.size() > 1) { + auto tmp = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, + std::vector(shape.size() - 1, 1)); + repeat = helper_->Concat({tmp, batch}, 0); + } + helper_->MakeNode("Tile", {constant, repeat}, {out_info[0].name}); + } else { + shape.erase(shape.begin() + output_dim_idx_); + shape.insert(shape.begin(), int64_t(1)); + auto constant = + helper_->Constant(shape, GetOnnxDtype(out_info[0].dtype), value); + auto repeat = batch; + if (shape.size() > 1) { + auto tmp = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, + std::vector(shape.size() - 1, 1)); + repeat = helper_->Concat({batch, tmp}, 0); + } + auto out = helper_->MakeNode("Tile", {constant, repeat})->output(0); + auto perm = Arange(1, shape.size()); + perm.insert(perm.begin() + output_dim_idx_, int64_t(0)); + helper_->Transpose(out, out_info[0].name, perm); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/fill_constant_batch_size_like.h b/paddle2onnx/mapper/tensor/fill_constant_batch_size_like.h new file mode 100644 index 000000000..c58ecf870 --- /dev/null +++ b/paddle2onnx/mapper/tensor/fill_constant_batch_size_like.h @@ -0,0 +1,48 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once +#include +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class FillConstantBatchSizeLikeMapper : public Mapper { + public: + FillConstantBatchSizeLikeMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("dtype", &dtype_); + GetAttr("value", &value_); + GetAttr("shape", &shape_); + GetAttr("str_value", &str_value_); + GetAttr("input_dim_idx", &input_dim_idx_); + GetAttr("output_dim_idx", &output_dim_idx_); + } + + int32_t GetMinOpset(bool verbose = true); + void Opset7(); + + private: + int64_t dtype_; + float value_; + std::string str_value_; + int64_t input_dim_idx_; + int64_t output_dim_idx_; + std::vector shape_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/fill_like.cc b/paddle2onnx/mapper/tensor/fill_like.cc new file mode 100644 index 000000000..575950243 --- /dev/null +++ b/paddle2onnx/mapper/tensor/fill_like.cc @@ -0,0 +1,48 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#include "paddle2onnx/mapper/tensor/fill_like.h" + +namespace paddle2onnx { + +REGISTER_MAPPER(fill_any_like, FillLikeMapper) +REGISTER_MAPPER(fill_zeros_like, FillLikeMapper) + +void FillLikeMapper::Opset9() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + bool is_fixed_shape = true; + for (size_t i = 0; i < input_info[0].shape.size(); ++i) { + if (input_info[0].shape[i] < 0) { + is_fixed_shape = false; + } + } + if (is_fixed_shape) { + helper_->Constant(output_info[0].name, input_info[0].shape, + GetOnnxDtype(output_info[0].dtype), value_); + return; + } + auto shape_node = helper_->MakeNode("Shape", {input_info[0].name}); + int64_t dtype = output_info[0].dtype; + // There's some problem with tensorrt with `ConstantOfShape` + // Maybe we should use a graph pass to solve this problem + // but now we just to avoid using `ConstantOfShape` + auto const_node = helper_->Constant({1}, GetOnnxDtype(dtype), value_); + helper_->MakeNode("Expand", {const_node, shape_node->output(0)}, + {output_info[0].name}); + // helper_->ConstOfShape(shape_node->output(0), output_info[0].name, + // GetOnnxDtype(dtype), value_); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/fill_like.h b/paddle2onnx/mapper/tensor/fill_like.h new file mode 100644 index 000000000..b0b0ad239 --- /dev/null +++ b/paddle2onnx/mapper/tensor/fill_like.h @@ -0,0 +1,46 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once +#include +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class FillLikeMapper : public Mapper { + public: + FillLikeMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + if (OpType() == "fill_zeros_like") { + value_ = 0.0; + } else { + GetAttr("value", &value_); + } + } + + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; + } + void Opset9(); + + private: + float value_; + std::vector op_mapper_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/flatten.cc b/paddle2onnx/mapper/tensor/flatten.cc new file mode 100644 index 000000000..5407138f4 --- /dev/null +++ b/paddle2onnx/mapper/tensor/flatten.cc @@ -0,0 +1,75 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/flatten.h" + +#include + +namespace paddle2onnx { + +REGISTER_MAPPER(flatten_contiguous_range, FlattenMapper) + +void FlattenMapper::Opset7() { + auto input_info = GetInput("X"); + if (start_axis_ < 0) { + start_axis_ += input_info[0].Rank(); + } + if (stop_axis_ < 0) { + stop_axis_ += input_info[0].Rank(); + } + auto output_info = GetOutput("Out"); + + auto unknown_dim_node = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, -1); + if (start_axis_ == 0 && stop_axis_ == input_info[0].Rank() - 1) { + helper_->MakeNode("Reshape", {input_info[0].name, unknown_dim_node}, + {output_info[0].name}); + } else { + auto input_shape_node = helper_->MakeNode("Shape", {input_info[0].name}); + if (start_axis_ == 0) { + auto second_part_shape = + helper_->Slice(input_shape_node->output(0), {0}, {stop_axis_ + 1}, + {input_info[0].Rank()}); + auto new_shape_node = + helper_->MakeNode("Concat", {unknown_dim_node, second_part_shape}); + AddAttribute(new_shape_node, "axis", int64_t(0)); + helper_->MakeNode("Reshape", + {input_info[0].name, new_shape_node->output(0)}, + {output_info[0].name}); + } else if (stop_axis_ == input_info[0].Rank() - 1) { + auto first_part_shape = + helper_->Slice(input_shape_node->output(0), {0}, {0}, {start_axis_}); + auto new_shape_node = + helper_->MakeNode("Concat", {first_part_shape, unknown_dim_node}); + AddAttribute(new_shape_node, "axis", int64_t(0)); + helper_->MakeNode("Reshape", + {input_info[0].name, new_shape_node->output(0)}, + {output_info[0].name}); + } else { + auto first_part_shape = + helper_->Slice(input_shape_node->output(0), {0}, {0}, {start_axis_}); + auto second_part_shape = + helper_->Slice(input_shape_node->output(0), {0}, {stop_axis_ + 1}, + {input_info[0].Rank()}); + auto new_shape_node = helper_->MakeNode( + "Concat", {first_part_shape, unknown_dim_node, second_part_shape}); + AddAttribute(new_shape_node, "axis", int64_t(0)); + helper_->MakeNode("Reshape", + {input_info[0].name, new_shape_node->output(0)}, + {output_info[0].name}); + } + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/flatten.h b/paddle2onnx/mapper/tensor/flatten.h new file mode 100644 index 000000000..0789e49bf --- /dev/null +++ b/paddle2onnx/mapper/tensor/flatten.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class FlattenMapper : public Mapper { + public: + FlattenMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("start_axis", &start_axis_); + GetAttr("stop_axis", &stop_axis_); + } + + void Opset7(); + + private: + int64_t start_axis_; + int64_t stop_axis_; +}; +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/flatten2.cc b/paddle2onnx/mapper/tensor/flatten2.cc new file mode 100644 index 000000000..2615efa1e --- /dev/null +++ b/paddle2onnx/mapper/tensor/flatten2.cc @@ -0,0 +1,40 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/flatten2.h" + +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(flatten2, Flatten2Mapper) + +int32_t Flatten2Mapper::GetMinOpset(bool verbose) { + if (GetInput("X")[0].dtype != P2ODataType::FP32 || GetInput("X")[0].dtype != P2ODataType::FP64) { + Logger(verbose, 9) << "While data type of input is not float32/float64, "<< RequireOpset(9) << std::endl; + return 9; + } + return 7; +} + +void Flatten2Mapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + int64_t axis = axis_; + auto node = helper_->MakeNode("Flatten", {input_info[0].name}, {output_info[0].name}); + AddAttribute(node, "axis", axis); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/flatten2.h b/paddle2onnx/mapper/tensor/flatten2.h new file mode 100644 index 000000000..05656335d --- /dev/null +++ b/paddle2onnx/mapper/tensor/flatten2.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Flatten2Mapper : public Mapper { + public: + Flatten2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/flip.cc b/paddle2onnx/mapper/tensor/flip.cc new file mode 100644 index 000000000..6c423e988 --- /dev/null +++ b/paddle2onnx/mapper/tensor/flip.cc @@ -0,0 +1,89 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/flip.h" + +namespace paddle2onnx { +REGISTER_MAPPER(flip, FlipMapper) + +int32_t FlipMapper::GetMinOpset(bool verbose) { + auto input_info = parser_->GetOpInput(block_idx_, op_idx_, "X"); + for (auto i = 0; i < axes_.size(); i++) { + if (input_info[0].shape[axes_[i]] <= 0) { + Error() << "The dimension in axis of input must be fixed for flip " + "operator, but now the input shape in axis is unkown." + << std::endl; + return -1; + } + } + return 7; +} + +void FlipMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::string input_name = input_info[0].name; + bool need_convert = false; + if (input_info[0].dtype == P2ODataType::BOOL || + input_info[0].dtype == P2ODataType::FP64) { + need_convert = true; + input_name = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + } + + std::string temp_input = input_name; + for (auto i = 0; i < axes_.size(); ++i) { + int64_t axis = axes_[i]; + if (input_info[0].shape[axis] == 1) { + if (i != axes_.size() - 1) { + continue; + } + if (need_convert) { + input_name = helper_->AutoCast(temp_input, output_info[0].name, + P2ODataType::FP32, output_info[0].dtype); + } else { + auto out_node = + helper_->MakeNode("Identity", {temp_input}, {output_info[0].name}); + } + } else { + std::vector split; + split.resize(input_info[0].shape[axis], 1); + std::vector splits_outputs = + helper_->Split(temp_input, split, axis); + std::vector reversed_splits; + for (int64_t index = splits_outputs.size() - 1; index >= 0; --index) { + reversed_splits.push_back(splits_outputs[index]); + } + if (i != axes_.size() - 1) { + auto concat_node = helper_->MakeNode("Concat", reversed_splits); + AddAttribute(concat_node, "axis", axis); + temp_input = concat_node->output(0); + } else { + if (need_convert) { + auto concat_node = helper_->MakeNode("Concat", reversed_splits); + AddAttribute(concat_node, "axis", axis); + helper_->AutoCast(concat_node->output(0), output_info[0].name, + P2ODataType::FP32, output_info[0].dtype); + } else { + auto concat_node = helper_->MakeNode("Concat", reversed_splits, + {output_info[0].name}); + AddAttribute(concat_node, "axis", axis); + } + } + } + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/flip.h b/paddle2onnx/mapper/tensor/flip.h new file mode 100755 index 000000000..5e40d3e1a --- /dev/null +++ b/paddle2onnx/mapper/tensor/flip.h @@ -0,0 +1,40 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class FlipMapper : public Mapper { + public: + FlipMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axes_); + auto input_info = GetInput("X"); + for (auto i = 0; i < axes_.size(); i++) { + if (axes_[i] < 0) { + axes_[i] += input_info[0].Rank(); + } + } + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::vector axes_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/gather.cc b/paddle2onnx/mapper/tensor/gather.cc new file mode 100644 index 000000000..4cfb6f371 --- /dev/null +++ b/paddle2onnx/mapper/tensor/gather.cc @@ -0,0 +1,85 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/gather.h" + +namespace paddle2onnx { +REGISTER_MAPPER(gather, GatherMapper) + +int32_t GatherMapper::GetMinOpset(bool verbose) { + if (HasInput("Axis")) { + if (!IsConstantInput("Axis")) { + Error() << "Parameter axis as input tensor is not supported." + << std::endl; + return -1; + } + } + auto index_info = GetInput("Index"); + if (index_info[0].shape.size() > 1) { + Logger(verbose, 11) << "While rank of index > 1, " << RequireOpset(11) + << std::endl; + return 11; + } + return 7; +} + +void GatherMapper::Opset7() { + auto x_info = GetInput("X"); + auto index_info = GetInput("Index"); + auto out_info = GetOutput("Out"); + + bool has_input_axis = HasInput("Axis"); + auto axis = axis_; + if (has_input_axis) { + std::vector axes; + Assert(TryGetInputValue("Axis", &axes), + "Paddle2ONNX does not support axis as input tensor for operator: " + "gather."); + axis = axes[0]; + } + Assert(index_info[0].shape.size() == 1, + "Paddle2ONNX: While rank of index > 1, opset must >= 11 for operator: " + "gather."); + auto node = helper_->MakeNode("Gather", {x_info[0].name, index_info[0].name}, + {out_info[0].name}); + AddAttribute(node, "axis", axis); +} + +void GatherMapper::Opset11() { + auto x_info = GetInput("X"); + auto index_info = GetInput("Index"); + auto out_info = GetOutput("Out"); + + bool has_input_axis = HasInput("Axis"); + auto axis = axis_; + if (has_input_axis) { + std::vector axes; + Assert(TryGetInputValue("Axis", &axes), + "Paddle2ONNX does not support axis as input tensor for operator: " + "gather."); + axis = axes[0]; + } + if (index_info[0].shape.size() == 1) { + auto node = helper_->MakeNode( + "Gather", {x_info[0].name, index_info[0].name}, {out_info[0].name}); + AddAttribute(node, "axis", axis); + } else { + auto index = helper_->AutoCast(index_info[0].name, index_info[0].dtype, + P2ODataType::INT64); + helper_->MakeNode("GatherND", {x_info[0].name, index_info[0].name}, + {out_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/gather.h b/paddle2onnx/mapper/tensor/gather.h new file mode 100644 index 000000000..b12c7f5b2 --- /dev/null +++ b/paddle2onnx/mapper/tensor/gather.h @@ -0,0 +1,41 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class GatherMapper : public Mapper { + public: + GatherMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + if (HasAttr("axis")) { + GetAttr("axis", &axis_); + } + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + void Opset11(); + + private: + int64_t axis_ = 0; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/gather_nd.cc b/paddle2onnx/mapper/tensor/gather_nd.cc new file mode 100755 index 000000000..d7fcb875d --- /dev/null +++ b/paddle2onnx/mapper/tensor/gather_nd.cc @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/gather_nd.h" + +namespace paddle2onnx { +REGISTER_MAPPER(gather_nd, GatherNdMapper) + +int32_t GatherNdMapper::GetMinOpset(bool verbose) { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; +} + +void GatherNdMapper::Opset11() { + auto input_x_info = GetInput("X"); + auto input_index_info = GetInput("Index"); + auto output_info = GetOutput("Out"); + + std::string index_node = helper_->AutoCast( + input_index_info[0].name, input_index_info[0].dtype, P2ODataType::INT64); + + helper_->MakeNode("GatherND", {input_x_info[0].name, index_node}, + {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/gather_nd.h b/paddle2onnx/mapper/tensor/gather_nd.h new file mode 100755 index 000000000..ae7de4f5c --- /dev/null +++ b/paddle2onnx/mapper/tensor/gather_nd.h @@ -0,0 +1,32 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class GatherNdMapper : public Mapper { + public: + GatherNdMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false); + void Opset11(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/gaussian_random.cc b/paddle2onnx/mapper/tensor/gaussian_random.cc new file mode 100644 index 000000000..511a11d6d --- /dev/null +++ b/paddle2onnx/mapper/tensor/gaussian_random.cc @@ -0,0 +1,64 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/gaussian_random.h" + +namespace paddle2onnx { +REGISTER_MAPPER(gaussian_random, GaussianRandomMapper) + +int32_t GaussianRandomMapper::GetMinOpset(bool verbose) { + if (HasInput("ShapeTensor") && !IsConstantInput("ShapeTensor")) { + Logger(verbose, 9) << "While ShapeTensor as input and it's not a constant tensor, " << RequireOpset(9) << std::endl; + return 9; + } + if (HasInput("ShapeTensorList")) { + Logger(verbose, 9) << "While ShapeTensorList as input, " << RequireOpset(9) << std::endl; + return 9; + } + return 7; +} + +void GaussianRandomMapper::Opset7() { + auto out_info = GetOutput("Out"); + std::string shape_tensor_name = ""; + std::vector shape; + if (HasInput("ShapeTensor")) { + if (!TryGetInputValue("ShapeTensor", &shape)) { + auto shape_info = GetInput("ShapeTensor"); + shape_tensor_name = helper_->AutoCast(shape_info[0].name, shape_info[0].dtype, P2ODataType::INT64); + } + } else if (HasInput("ShapeTensorList")) { + auto shape_info = GetInput("ShapeTensorList"); + shape_tensor_name = helper_->ConcatIndices(shape_info); + } else { + shape.assign(shape_.begin(), shape_.end()); + } + if (shape.size() > 0) { + auto node = helper_->MakeNode("RandomNormal", {}, {out_info[0].name}); + AddAttribute(node, "dtype", GetOnnxDtype(out_info[0].dtype)); + AddAttribute(node, "mean", mean_); + AddAttribute(node, "scale", std_); + AddAttribute(node, "shape", shape_); + AddAttribute(node, "seed", static_cast(seed_)); + } else { + auto tensor = helper_->ConstOfShape(shape_tensor_name, GetOnnxDtype(out_info[0].dtype), float(0)); + auto node = helper_->MakeNode("RandomNormalLike", {tensor}, {out_info[0].name}); + AddAttribute(node, "dtype", GetOnnxDtype(out_info[0].dtype)); + AddAttribute(node, "mean", mean_); + AddAttribute(node, "scale", std_); + AddAttribute(node, "seed", static_cast(seed_)); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/gaussian_random.h b/paddle2onnx/mapper/tensor/gaussian_random.h new file mode 100644 index 000000000..0fde072ed --- /dev/null +++ b/paddle2onnx/mapper/tensor/gaussian_random.h @@ -0,0 +1,40 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class GaussianRandomMapper : public Mapper { + public: + GaussianRandomMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("mean", &mean_); + GetAttr("std", &std_); + GetAttr("shape", &shape_); + GetAttr("seed", &seed_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + private: + std::vector shape_; + float mean_; + float std_; + int64_t seed_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/greater_equal.cc b/paddle2onnx/mapper/tensor/greater_equal.cc new file mode 100644 index 000000000..ac386755b --- /dev/null +++ b/paddle2onnx/mapper/tensor/greater_equal.cc @@ -0,0 +1,51 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/greater_equal.h" + +namespace paddle2onnx { +REGISTER_MAPPER(greater_equal, GreaterEqualMapper) + +void GreaterEqualMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + int out_dtype = 0; + std::vector aligned_inputs = + helper_->DtypeAlignment({x_info[0], y_info[0]}, &out_dtype); + if (out_dtype != P2ODataType::FP32 && out_dtype != P2ODataType::FP64 && + helper_->GetOpsetVersion() < 11) { + aligned_inputs[0] = + helper_->AutoCast(aligned_inputs[0], out_dtype, P2ODataType::FP32); + aligned_inputs[1] = + helper_->AutoCast(aligned_inputs[1], out_dtype, P2ODataType::FP32); + } + + auto out = helper_->MakeNode("Less", aligned_inputs)->output(0); + helper_->MakeNode("Not", {out}, {out_info[0].name}); +} + +void GreaterEqualMapper::Opset12() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + int out_dtype = 0; + std::vector aligned_inputs = + helper_->DtypeAlignment({x_info[0], y_info[0]}, &out_dtype); + + helper_->MakeNode("GreaterOrEqual", aligned_inputs, {out_info[0].name}); +} +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/greater_equal.h b/paddle2onnx/mapper/tensor/greater_equal.h new file mode 100644 index 000000000..200ea6bd8 --- /dev/null +++ b/paddle2onnx/mapper/tensor/greater_equal.h @@ -0,0 +1,29 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class GreaterEqualMapper : public Mapper { + public: + GreaterEqualMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); + void Opset12(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/greater_than.cc b/paddle2onnx/mapper/tensor/greater_than.cc new file mode 100644 index 000000000..36c4220a6 --- /dev/null +++ b/paddle2onnx/mapper/tensor/greater_than.cc @@ -0,0 +1,39 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/greater_than.h" + +namespace paddle2onnx { +REGISTER_MAPPER(greater_than, GreaterThanMapper) + +void GreaterThanMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + int out_dtype = 0; + std::vector aligned_inputs = + helper_->DtypeAlignment({x_info[0], y_info[0]}, &out_dtype); + if (out_dtype != P2ODataType::FP32 && out_dtype != P2ODataType::FP64 && + helper_->GetOpsetVersion() < 11) { + aligned_inputs[0] = + helper_->AutoCast(aligned_inputs[0], out_dtype, P2ODataType::FP32); + aligned_inputs[1] = + helper_->AutoCast(aligned_inputs[1], out_dtype, P2ODataType::FP32); + } + + helper_->MakeNode("Greater", aligned_inputs, {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/greater_than.h b/paddle2onnx/mapper/tensor/greater_than.h new file mode 100644 index 000000000..c9867d864 --- /dev/null +++ b/paddle2onnx/mapper/tensor/greater_than.h @@ -0,0 +1,28 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class GreaterThanMapper : public Mapper { + public: + GreaterThanMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/grid_sampler.cc b/paddle2onnx/mapper/tensor/grid_sampler.cc new file mode 100644 index 000000000..0a08e4cda --- /dev/null +++ b/paddle2onnx/mapper/tensor/grid_sampler.cc @@ -0,0 +1,41 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/grid_sampler.h" + +namespace paddle2onnx { +REGISTER_MAPPER(grid_sampler, GridSamplerMapper) + +int32_t GridSamplerMapper::GetMinOpset(bool verbose) { + Logger(verbose, 16) << RequireOpset(16) << std::endl; + return 16; +}; + +void GridSamplerMapper::Opset16() { + auto x_info = GetInput("X"); + auto grid_info = GetInput("Grid"); + auto out_info = GetOutput("Output"); + std::string cast_input = + helper_->AutoCast(x_info[0].name, x_info[0].dtype, P2ODataType::FP32); + std::string cast_grid = helper_->AutoCast( + grid_info[0].name, grid_info[0].dtype, P2ODataType::FP32); + auto node = helper_->MakeNode("GridSample", {cast_input, cast_grid}); + AddAttribute(node, "padding_mode", padding_mode_); + AddAttribute(node, "mode", mode_); + AddAttribute(node, "align_corners", static_cast(align_corners_)); + helper_->AutoCast(node->output(0), out_info[0].name, P2ODataType::FP32, + out_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/grid_sampler.h b/paddle2onnx/mapper/tensor/grid_sampler.h new file mode 100644 index 000000000..28da730ca --- /dev/null +++ b/paddle2onnx/mapper/tensor/grid_sampler.h @@ -0,0 +1,43 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class GridSamplerMapper : public Mapper { + public: + GridSamplerMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("padding_mode", &padding_mode_); + GetAttr("mode", &mode_); + GetAttr("align_corners", &align_corners_); + } + + int32_t GetMinOpset(bool verbose = false); + + void Opset16(); + + private: + std::string padding_mode_ = "zeros"; + std::string mode_ = "bilinear"; + bool align_corners_ = false; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/index_sample.cc b/paddle2onnx/mapper/tensor/index_sample.cc new file mode 100644 index 000000000..1522dcbef --- /dev/null +++ b/paddle2onnx/mapper/tensor/index_sample.cc @@ -0,0 +1,44 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/index_sample.h" + +namespace paddle2onnx { +REGISTER_MAPPER(index_sample, IndexSampleMapper) + +int32_t IndexSampleMapper::GetMinOpset(bool verbose) { + auto x_info = GetInput("X"); + auto index_info = GetInput("Index"); + if (x_info[0].Rank() != 2 || index_info[0].Rank() != 2) { + Error() << "The rank of X and Index must be 2, but the rank of X is: " + << x_info[0].Rank() + << " , and the rank of Index is: " << index_info[0].Rank() << "." + << std::endl; + return -1; + } + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; +} + +void IndexSampleMapper::Opset11() { + auto x_info = GetInput("X"); + auto index_info = GetInput("Index"); + auto out_info = GetOutput("Out"); + auto node = + helper_->MakeNode("GatherElements", {x_info[0].name, index_info[0].name}, + {out_info[0].name}); + AddAttribute(node, "axis", static_cast(1)); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/index_sample.h b/paddle2onnx/mapper/tensor/index_sample.h new file mode 100755 index 000000000..f6bcaabd5 --- /dev/null +++ b/paddle2onnx/mapper/tensor/index_sample.h @@ -0,0 +1,32 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class IndexSampleMapper : public Mapper { + public: + IndexSampleMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false); + void Opset11(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/index_select.cc b/paddle2onnx/mapper/tensor/index_select.cc new file mode 100644 index 000000000..3ff40cd2a --- /dev/null +++ b/paddle2onnx/mapper/tensor/index_select.cc @@ -0,0 +1,29 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/index_select.h" + +namespace paddle2onnx { +REGISTER_MAPPER(index_select, IndexSelectMapper) + +void IndexSelectMapper::Opset7() { + auto x_info = GetInput("X"); + auto index_info = GetInput("Index"); + auto out_info = GetOutput("Out"); + auto node = helper_->MakeNode("Gather", {x_info[0].name, index_info[0].name}, + {out_info[0].name}); + AddAttribute(node, "axis", axis_); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/index_select.h b/paddle2onnx/mapper/tensor/index_select.h new file mode 100644 index 000000000..463718a73 --- /dev/null +++ b/paddle2onnx/mapper/tensor/index_select.h @@ -0,0 +1,36 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class IndexSelectMapper : public Mapper { + public: + IndexSelectMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("dim", &axis_); + } + void Opset7(); + + private: + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/less_equal.cc b/paddle2onnx/mapper/tensor/less_equal.cc new file mode 100644 index 000000000..43abd8f8b --- /dev/null +++ b/paddle2onnx/mapper/tensor/less_equal.cc @@ -0,0 +1,51 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/less_equal.h" + +namespace paddle2onnx { +REGISTER_MAPPER(less_equal, LessEqualMapper) + +void LessEqualMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + int out_dtype = 0; + std::vector aligned_inputs = + helper_->DtypeAlignment({x_info[0], y_info[0]}, &out_dtype); + if (out_dtype != P2ODataType::FP32 && out_dtype != P2ODataType::FP64 && + helper_->GetOpsetVersion() < 11) { + aligned_inputs[0] = + helper_->AutoCast(aligned_inputs[0], out_dtype, P2ODataType::FP32); + aligned_inputs[1] = + helper_->AutoCast(aligned_inputs[1], out_dtype, P2ODataType::FP32); + } + + auto out = helper_->MakeNode("Greater", aligned_inputs)->output(0); + helper_->MakeNode("Not", {out}, {out_info[0].name}); +} + +void LessEqualMapper::Opset12() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + int out_dtype = 0; + std::vector aligned_inputs = + helper_->DtypeAlignment({x_info[0], y_info[0]}, &out_dtype); + + helper_->MakeNode("LessOrEqual", aligned_inputs, {out_info[0].name}); +} +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/less_equal.h b/paddle2onnx/mapper/tensor/less_equal.h new file mode 100644 index 000000000..c1a265425 --- /dev/null +++ b/paddle2onnx/mapper/tensor/less_equal.h @@ -0,0 +1,29 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class LessEqualMapper : public Mapper { + public: + LessEqualMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); + void Opset12(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/less_than.cc b/paddle2onnx/mapper/tensor/less_than.cc new file mode 100644 index 000000000..f0db74dca --- /dev/null +++ b/paddle2onnx/mapper/tensor/less_than.cc @@ -0,0 +1,39 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/less_than.h" + +namespace paddle2onnx { +REGISTER_MAPPER(less_than, LessThanMapper) + +void LessThanMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + int out_dtype = 0; + std::vector aligned_inputs = + helper_->DtypeAlignment({x_info[0], y_info[0]}, &out_dtype); + if (out_dtype != P2ODataType::FP32 && out_dtype != P2ODataType::FP64 && + helper_->GetOpsetVersion() < 11) { + aligned_inputs[0] = + helper_->AutoCast(aligned_inputs[0], out_dtype, P2ODataType::FP32); + aligned_inputs[1] = + helper_->AutoCast(aligned_inputs[1], out_dtype, P2ODataType::FP32); + } + + helper_->MakeNode("Less", aligned_inputs, {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/less_than.h b/paddle2onnx/mapper/tensor/less_than.h new file mode 100644 index 000000000..a25432d1b --- /dev/null +++ b/paddle2onnx/mapper/tensor/less_than.h @@ -0,0 +1,28 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class LessThanMapper : public Mapper { + public: + LessThanMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/linspace.cc b/paddle2onnx/mapper/tensor/linspace.cc new file mode 100644 index 000000000..9d62fb058 --- /dev/null +++ b/paddle2onnx/mapper/tensor/linspace.cc @@ -0,0 +1,75 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/linspace.h" + +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(linspace, LinspaceMapper) + +int32_t LinspaceMapper::GetMinOpset(bool verbose) { + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; +}; + +void LinspaceMapper::Opset9() { + auto start_info = GetInput("Start"); + auto stop_info = GetInput("Stop"); + auto num_info = GetInput("Num"); + auto output_info = GetOutput("Out"); + + std::string cast_start = helper_->AutoCast( + start_info[0].name, start_info[0].dtype, P2ODataType::FP32); + std::string cast_stop = helper_->AutoCast( + stop_info[0].name, stop_info[0].dtype, P2ODataType::FP32); + + auto sub_a_node = helper_->MakeNode("Sub", {cast_stop, cast_start}); + + std::string one_node = helper_->Constant(GetOnnxDtype(num_info[0].dtype), + std::vector(1, 1)); + + auto sub_b_node = helper_->MakeNode("Sub", {num_info[0].name, one_node}); + + std::string sub_b_float_node = helper_->AutoCast( + sub_b_node->output(0), num_info[0].dtype, P2ODataType::FP32); + + auto step = + helper_->MakeNode("Div", {sub_a_node->output(0), sub_b_float_node}); + + std::string range_tensor = helper_->AutoCast( + num_info[0].name, num_info[0].dtype, P2ODataType::INT64); + + std::string one_like_node = helper_->ConstOfShape( + range_tensor, GetOnnxDtype(P2ODataType::FP32), static_cast(1)); + + auto none_zero_node = helper_->MakeNode("NonZero", {one_like_node}); + + std::string trans_squeeze = + helper_->Squeeze(none_zero_node->output(0), std::vector(1, 0)); + + std::string cast_trans_squeeze = + helper_->AutoCast(trans_squeeze, P2ODataType::INT64, P2ODataType::FP32); + + auto mul_node = + helper_->MakeNode("Mul", {cast_trans_squeeze, step->output(0)}); + + auto add_node = helper_->MakeNode("Add", {mul_node->output(0), cast_start}); + + helper_->AutoCast(add_node->output(0), output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/linspace.h b/paddle2onnx/mapper/tensor/linspace.h new file mode 100644 index 000000000..b43c97d47 --- /dev/null +++ b/paddle2onnx/mapper/tensor/linspace.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class LinspaceMapper : public Mapper { + public: + LinspaceMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("dtype", &dtype_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset9(); + + private: + int64_t dtype_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/logical_not.cc b/paddle2onnx/mapper/tensor/logical_not.cc new file mode 100644 index 000000000..c1b79aba0 --- /dev/null +++ b/paddle2onnx/mapper/tensor/logical_not.cc @@ -0,0 +1,27 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/logical_not.h" + +namespace paddle2onnx { +REGISTER_MAPPER(logical_not, LogicalNotMapper) + +void LogicalNotMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + helper_->MakeNode("Not", {input_info[0].name}, {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/logical_not.h b/paddle2onnx/mapper/tensor/logical_not.h new file mode 100644 index 000000000..f667628fb --- /dev/null +++ b/paddle2onnx/mapper/tensor/logical_not.h @@ -0,0 +1,31 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class LogicalNotMapper : public Mapper { + public: + LogicalNotMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/logical_op.cc b/paddle2onnx/mapper/tensor/logical_op.cc new file mode 100644 index 000000000..5f0646228 --- /dev/null +++ b/paddle2onnx/mapper/tensor/logical_op.cc @@ -0,0 +1,36 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/logical_op.h" + +namespace paddle2onnx { +REGISTER_MAPPER(logical_and, LogicalOpMapper) +REGISTER_MAPPER(logical_or, LogicalOpMapper) +REGISTER_MAPPER(logical_xor, LogicalOpMapper) + +void LogicalOpMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + std::map op_mapper; + op_mapper["logical_and"] = "And"; + op_mapper["logical_or"] = "Or"; + op_mapper["logical_xor"] = "Xor"; + + helper_->MakeNode(op_mapper[OpType()], {x_info[0].name, y_info[0].name}, + {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/logical_op.h b/paddle2onnx/mapper/tensor/logical_op.h new file mode 100644 index 000000000..163b66851 --- /dev/null +++ b/paddle2onnx/mapper/tensor/logical_op.h @@ -0,0 +1,31 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class LogicalOpMapper : public Mapper { + public: + LogicalOpMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/lookup_table.cc b/paddle2onnx/mapper/tensor/lookup_table.cc new file mode 100644 index 000000000..5342ba2ef --- /dev/null +++ b/paddle2onnx/mapper/tensor/lookup_table.cc @@ -0,0 +1,132 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/lookup_table.h" + +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(lookup_table, LookupTableMapper) +REGISTER_MAPPER(lookup_table_v2, LookupTableMapper) + +int32_t LookupTableMapper::GetMinOpset(bool verbose) { + auto input_w_info = GetInput("W"); + bool has_minus = false; + for (auto i : input_w_info[0].shape) { + has_minus = (i == -1); + if (has_minus) { + break; + } + } + if (padding_idx_ != -1 && has_minus) { + Logger(verbose, 11) + << "While the input W has dynamic shape and padding_idx != -1, " + << RequireOpset(11) << std::endl; + return 11; + } + return 7; +} + +void LookupTableMapper::Opset7() { + auto input_ids_info = GetInput("Ids"); + auto input_w_info = GetInput("W"); + auto output_info = GetOutput("Out"); + + std::string ids_node = input_ids_info[0].name; + auto ids_shape = input_ids_info[0].shape; + if (OpType() == "lookup_table" && ids_shape[ids_shape.size() - 1] == 1) { + ids_node = helper_->Squeeze(input_ids_info[0].name, {-1}); + } + + auto input_shape = input_w_info[0].shape; + int64_t sum_val = 1; + for (auto i : input_shape) { + sum_val *= i; + } + int interval = sum_val / input_shape[0]; + + if (padding_idx_ != -1) { + std::vector data(sum_val, 1); + for (auto i = 0; i < interval; i++) { + data[padding_idx_ * interval + i] = 0; + } + std::string constant = helper_->Constant( + input_shape, GetOnnxDtype(input_w_info[0].dtype), data); + auto weight_node = + helper_->MakeNode("Mul", {input_w_info[0].name, constant}); + helper_->MakeNode("Gather", {weight_node->output(0), ids_node}, + {output_info[0].name}); + } else { + helper_->MakeNode("Gather", {input_w_info[0].name, ids_node}, + {output_info[0].name}); + } +} + +void LookupTableMapper::Opset11() { + auto input_ids_info = GetInput("Ids"); + auto input_w_info = GetInput("W"); + auto output_info = GetOutput("Out"); + + std::string ids_node = input_ids_info[0].name; + auto ids_shape = input_ids_info[0].shape; + if (OpType() == "lookup_table" && ids_shape[ids_shape.size() - 1] == 1) { + ids_node = helper_->Squeeze(input_ids_info[0].name, {-1}); + } + + auto input_shape = input_w_info[0].shape; + int64_t sum_val = 1; + for (auto i : input_shape) { + sum_val *= i; + } + int interval = sum_val / input_shape[0]; + + if (padding_idx_ != -1) { + bool has_minus = false; + for (auto i : input_w_info[0].shape) { + has_minus = (i == -1); + if (has_minus) { + break; + } + } + if (has_minus) { + std::vector shape = {interval}; + std::string replace_data = + helper_->Constant(shape, GetOnnxDtype(input_w_info[0].dtype), 0.0); + std::string index = helper_->Constant( + {1}, ONNX_NAMESPACE::TensorProto::INT64, padding_idx_); + auto scatter_node = helper_->MakeNode( + "ScatterND", {input_w_info[0].name, index, replace_data}); + helper_->MakeNode("Gather", {scatter_node->output(0), ids_node}, + {output_info[0].name}); + } else { + std::vector data(sum_val, 1); + for (auto i = 0; i < interval; i++) { + data[padding_idx_ * interval + i] = 0; + } + std::string constant = helper_->Constant( + input_shape, GetOnnxDtype(input_w_info[0].dtype), data); + auto weight_node = + helper_->MakeNode("Mul", {input_w_info[0].name, constant}); + helper_->MakeNode("Gather", {weight_node->output(0), ids_node}, + {output_info[0].name}); + } + } else { + helper_->MakeNode("Gather", {input_w_info[0].name, ids_node}, + {output_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/lookup_table.h b/paddle2onnx/mapper/tensor/lookup_table.h new file mode 100644 index 000000000..df537a981 --- /dev/null +++ b/paddle2onnx/mapper/tensor/lookup_table.h @@ -0,0 +1,39 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class LookupTableMapper : public Mapper { + public: + LookupTableMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("padding_idx", &padding_idx_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + void Opset11(); + + private: + int64_t padding_idx_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/matmul.cc b/paddle2onnx/mapper/tensor/matmul.cc new file mode 100644 index 000000000..fd8bb1264 --- /dev/null +++ b/paddle2onnx/mapper/tensor/matmul.cc @@ -0,0 +1,61 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/matmul.h" +#include + +namespace paddle2onnx { +REGISTER_MAPPER(matmul, MatmulMapper) + +std::string MatmulMapper::GetTrans(std::vector& input_info) { + std::string castd_name = input_info[0].name; + if (input_info[0].dtype == P2ODataType::FP64) { + castd_name = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + } + std::vector perm = Arange(0, input_info[0].Rank()); + std::swap(perm[perm.size() - 1], perm[perm.size() - 2]); + auto transpose_node = helper_->MakeNode("Transpose", {castd_name}); + AddAttribute(transpose_node, "perm", perm); + return transpose_node->output(0); +} + +void MatmulMapper::Opset7() { + auto input_x_info = GetInput("X"); + auto input_y_info = GetInput("Y"); + auto output_info = GetOutput("Out"); + std::string input_x = input_x_info[0].name; + if (transpose_X_) { + input_x = GetTrans(input_x_info); + } + std::string input_y = input_y_info[0].name; + if (transpose_Y_) { + input_y = GetTrans(input_y_info); + } + if (fabs(alpha_ - 1.0) < 1e-6) { + auto node = helper_->MakeNode("MatMul", {input_x, input_y}); + helper_->AutoCast(node->output(0), output_info[0].name, P2ODataType::FP32, + input_y_info[0].dtype); + } else { + auto mutmul_node = helper_->MakeNode("MatMul", {input_x, input_y}); + std::string scale_node = + helper_->Constant({1}, GetOnnxDtype(input_x_info[0].dtype), alpha_); + auto mul_node = + helper_->MakeNode("Mul", {mutmul_node->output(0), scale_node}); + helper_->AutoCast(mul_node->output(0), output_info[0].name, + P2ODataType::FP32, input_y_info[0].dtype); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/matmul.h b/paddle2onnx/mapper/tensor/matmul.h new file mode 100644 index 000000000..16957701f --- /dev/null +++ b/paddle2onnx/mapper/tensor/matmul.h @@ -0,0 +1,42 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class MatmulMapper : public Mapper { + public: + MatmulMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("transpose_X", &transpose_X_); + GetAttr("transpose_Y", &transpose_Y_); + GetAttr("alpha", &alpha_); + } + + void Opset7(); + + private: + std::string GetTrans(std::vector& input_info); + bool transpose_X_ = false; + bool transpose_Y_ = false; + float alpha_ = 1.0; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/matmul_v2.cc b/paddle2onnx/mapper/tensor/matmul_v2.cc new file mode 100644 index 000000000..f78a26f42 --- /dev/null +++ b/paddle2onnx/mapper/tensor/matmul_v2.cc @@ -0,0 +1,51 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/matmul_v2.h" + +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(matmul_v2, MatmulV2Mapper) + +std::string MatmulV2Mapper::GetTrans(std::vector& input_info) { + std::string castd_name = helper_->AutoCast( + input_info[0].name, input_info[0].dtype, P2ODataType::FP32); + std::vector perm = Arange(0, input_info[0].Rank()); + std::swap(perm[perm.size() - 1], perm[perm.size() - 2]); + auto transpose_node = helper_->MakeNode("Transpose", {castd_name}); + AddAttribute(transpose_node, "perm", perm); + return transpose_node->output(0); +} + +void MatmulV2Mapper::Opset7() { + auto input_x_info = GetInput("X"); + auto input_y_info = GetInput("Y"); + auto output_info = GetOutput("Out"); + std::string input_x = input_x_info[0].name; + if (trans_x_) { + input_x = GetTrans(input_x_info); + } + std::string input_y = input_y_info[0].name; + if (trans_y_) { + input_y = GetTrans(input_y_info); + } + auto node = helper_->MakeNode("MatMul", {input_x, input_y}); + helper_->AutoCast(node->output(0), output_info[0].name, P2ODataType::FP32, + input_y_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/matmul_v2.h b/paddle2onnx/mapper/tensor/matmul_v2.h new file mode 100644 index 000000000..bb3762a34 --- /dev/null +++ b/paddle2onnx/mapper/tensor/matmul_v2.h @@ -0,0 +1,40 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class MatmulV2Mapper : public Mapper { + public: + MatmulV2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("trans_x", &trans_x_); + GetAttr("trans_y", &trans_y_); + } + + void Opset7(); + + private: + std::string GetTrans(std::vector& input_info); + bool trans_x_ = false; + bool trans_y_ = false; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/mean.cc b/paddle2onnx/mapper/tensor/mean.cc new file mode 100644 index 000000000..de1fae3cb --- /dev/null +++ b/paddle2onnx/mapper/tensor/mean.cc @@ -0,0 +1,29 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/mean.h" + +namespace paddle2onnx { +REGISTER_MAPPER(mean, MeanMapper) + +void MeanMapper::Opset7() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + auto input = helper_->Reshape(x_info[0].name, {-1}); + auto node = helper_->MakeNode("ReduceMean", {input}, {out_info[0].name}); + AddAttribute(node, "axes", std::vector(1, 0)); + AddAttribute(node, "keepdims", int64_t(1)); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/mean.h b/paddle2onnx/mapper/tensor/mean.h new file mode 100644 index 000000000..bbb6a2bd8 --- /dev/null +++ b/paddle2onnx/mapper/tensor/mean.h @@ -0,0 +1,31 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class MeanMapper : public Mapper { + public: + MeanMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/meshgrid.cc b/paddle2onnx/mapper/tensor/meshgrid.cc new file mode 100644 index 000000000..b855d1544 --- /dev/null +++ b/paddle2onnx/mapper/tensor/meshgrid.cc @@ -0,0 +1,46 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/meshgrid.h" + +namespace paddle2onnx { +REGISTER_MAPPER(meshgrid, MeshgridMapper) + +void MeshgridMapper::Opset8() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + + std::vector x_shapes(x_info.size()); + for (size_t i = 0; i < x_info.size(); ++i) { + x_shapes[i] = helper_->MakeNode("Shape", {x_info[i].name})->output(0); + } + auto out_shape = helper_->Concat(x_shapes, 0); + for (size_t i = 0; i < x_info.size(); ++i) { + std::vector intermediate_shape(x_info.size()); + for (size_t j = 0; j < x_info.size(); ++j) { + if (j == i) { + intermediate_shape[j] = x_shapes[i]; + } else { + intermediate_shape[j] = helper_->Constant( + ONNX_NAMESPACE::TensorProto::INT64, std::vector(1, 1)); + } + } + auto t_reshaped = helper_->Concat(intermediate_shape, 0); + t_reshaped = + helper_->MakeNode("Reshape", {x_info[i].name, t_reshaped})->output(0); + helper_->MakeNode("Expand", {t_reshaped, out_shape}, {out_info[i].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/meshgrid.h b/paddle2onnx/mapper/tensor/meshgrid.h new file mode 100644 index 000000000..d83d677b0 --- /dev/null +++ b/paddle2onnx/mapper/tensor/meshgrid.h @@ -0,0 +1,35 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class MeshgridMapper : public Mapper { + public: + MeshgridMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + MarkAsExperimentalOp(); + } + + int32_t GetMinOpset(bool verbose = false) { return 8; } + void Opset8(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/mul.cc b/paddle2onnx/mapper/tensor/mul.cc new file mode 100644 index 000000000..3ba9e1212 --- /dev/null +++ b/paddle2onnx/mapper/tensor/mul.cc @@ -0,0 +1,50 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/mul.h" + +namespace paddle2onnx { +REGISTER_MAPPER(mul, MulMapper) + +void MulMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + auto x_input = x_info[0].name; + auto y_input = y_info[0].name; + if (x_info[0].Rank() > 2) { + auto node = helper_->MakeNode("Flatten", {x_input}); + AddAttribute(node, "axis", x_num_col_dims_); + x_input = node->output(0); + } + if (y_info[0].Rank() > 2) { + auto node = helper_->MakeNode("Flatten", {y_input}); + AddAttribute(node, "axis", y_num_col_dims_); + y_input = node->output(0); + } + auto out = helper_->MakeNode("MatMul", {x_input, y_input})->output(0); + + if (x_info[0].Rank() != 2 || y_info[0].Rank() != 2) { + auto x_shape = helper_->MakeNode("Shape", {x_info[0].name})->output(0); + auto y_shape = helper_->MakeNode("Shape", {y_info[0].name})->output(0); + auto out_shape_0 = helper_->Slice(x_shape, {0}, {0}, {x_num_col_dims_}); + auto out_shape_1 = helper_->Slice(y_shape, {0}, {y_num_col_dims_}, {y_info[0].Rank()}); + auto out_shape = helper_->Concat({out_shape_0, out_shape_1}, 0); + out = helper_->MakeNode("Reshape", {out, out_shape})->output(0); + } + helper_->MakeNode("Identity", {out}, {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/mul.h b/paddle2onnx/mapper/tensor/mul.h new file mode 100644 index 000000000..ad3171948 --- /dev/null +++ b/paddle2onnx/mapper/tensor/mul.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class MulMapper : public Mapper { + public: + MulMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("x_num_col_dims", &x_num_col_dims_); + GetAttr("y_num_col_dims", &y_num_col_dims_); + } + void Opset7(); + private: + int64_t x_num_col_dims_ = 1; + int64_t y_num_col_dims_ = 1; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/mv.cc b/paddle2onnx/mapper/tensor/mv.cc new file mode 100644 index 000000000..dcbbdb8e3 --- /dev/null +++ b/paddle2onnx/mapper/tensor/mv.cc @@ -0,0 +1,33 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/mv.h" + +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(mv, MVMapper) + +void MVMapper::Opset7() { + auto input_x_info = GetInput("X"); + auto input_y_info = GetInput("Vec"); + auto output_info = GetOutput("Out"); + auto node = + helper_->MakeNode("MatMul", {input_x_info[0].name, input_y_info[0].name}, + {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/mv.h b/paddle2onnx/mapper/tensor/mv.h new file mode 100644 index 000000000..20acbf3c3 --- /dev/null +++ b/paddle2onnx/mapper/tensor/mv.h @@ -0,0 +1,32 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class MVMapper : public Mapper { + public: + MVMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/nonzero.cc b/paddle2onnx/mapper/tensor/nonzero.cc new file mode 100644 index 000000000..fd4c0abed --- /dev/null +++ b/paddle2onnx/mapper/tensor/nonzero.cc @@ -0,0 +1,28 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/nonzero.h" + +namespace paddle2onnx { +REGISTER_MAPPER(where_index, NonZeroMapper) + +void NonZeroMapper::Opset9() { + auto input_info = GetInput("Condition"); + auto output_info = GetOutput("Out"); + auto non_zero_indices = + helper_->MakeNode("NonZero", {input_info[0].name})->output(0); + helper_->Transpose(non_zero_indices, output_info[0].name, {1, 0}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/nonzero.h b/paddle2onnx/mapper/tensor/nonzero.h new file mode 100644 index 000000000..a5c26dba2 --- /dev/null +++ b/paddle2onnx/mapper/tensor/nonzero.h @@ -0,0 +1,33 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class NonZeroMapper : public Mapper { + public: + NonZeroMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; + } + void Opset9(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/not_equal.cc b/paddle2onnx/mapper/tensor/not_equal.cc new file mode 100644 index 000000000..66b987f1b --- /dev/null +++ b/paddle2onnx/mapper/tensor/not_equal.cc @@ -0,0 +1,45 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/not_equal.h" + +namespace paddle2onnx { +REGISTER_MAPPER(not_equal, NotEqualMapper) + +int32_t NotEqualMapper::GetMinOpset(bool verbose) { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + if (x_info[0].dtype == P2ODataType::FP32 || + x_info[0].dtype == P2ODataType::FP64) { + Logger(verbose, 11) << "While input is dtype of float32/float64, " + << RequireOpset(11) << std::endl; + return 11; + } + return 7; +} + +void NotEqualMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto out_info = GetOutput("Out"); + + int out_dtype = 0; + std::vector aligned_inputs = + helper_->DtypeAlignment({x_info[0], y_info[0]}, &out_dtype); + + auto output = helper_->MakeNode("Equal", aligned_inputs)->output(0); + helper_->MakeNode("Not", {output}, {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/not_equal.h b/paddle2onnx/mapper/tensor/not_equal.h new file mode 100644 index 000000000..7c9f9c5f3 --- /dev/null +++ b/paddle2onnx/mapper/tensor/not_equal.h @@ -0,0 +1,29 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class NotEqualMapper : public Mapper { + public: + NotEqualMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false); + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/one_hot_v2.cc b/paddle2onnx/mapper/tensor/one_hot_v2.cc new file mode 100644 index 000000000..6b877bb9b --- /dev/null +++ b/paddle2onnx/mapper/tensor/one_hot_v2.cc @@ -0,0 +1,58 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/one_hot_v2.h" + +namespace paddle2onnx { +REGISTER_MAPPER(one_hot_v2, OneHotV2Mapper) + +int32_t OneHotV2Mapper::GetMinOpset(bool verbose) { + if (allow_out_of_range_) { + Error() << "allow_out_of_range is not supported in one_hot_v2." + << std::endl; + return -1; + } + auto output_info = GetOutput("Out"); + if (output_info[0].dtype != dtype_) { + Error() << "dtype attribute and output dtype do not match." << std::endl; + return -1; + } + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; +} + +void OneHotV2Mapper::Opset9() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::string casted_input = helper_->AutoCast( + input_info[0].name, input_info[0].dtype, P2ODataType::INT64); + + std::vector vals = {0, 1}; + std::string value_node = + helper_->Constant(GetOnnxDtype(output_info[0].dtype), vals); + + std::string depth_node = ""; + if (HasInput("depth_tensor")) { + auto input_depth_info = GetInput("depth_tensor"); + depth_node = input_depth_info[0].name; + } else { + depth_node = + helper_->Constant({1}, GetOnnxDtype(input_info[0].dtype), depth_); + } + auto one_hot_node = helper_->MakeNode( + "OneHot", {casted_input, depth_node, value_node}, {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/one_hot_v2.h b/paddle2onnx/mapper/tensor/one_hot_v2.h new file mode 100644 index 000000000..bf5602105 --- /dev/null +++ b/paddle2onnx/mapper/tensor/one_hot_v2.h @@ -0,0 +1,41 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class OneHotV2Mapper : public Mapper { + public: + OneHotV2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("allow_out_of_range", &allow_out_of_range_); + GetAttr("depth", &depth_); + GetAttr("dtype", &dtype_); + } + int32_t GetMinOpset(bool verbose); + void Opset9(); + + private: + bool allow_out_of_range_; + int64_t depth_; + int64_t dtype_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/p_norm.cc b/paddle2onnx/mapper/tensor/p_norm.cc new file mode 100755 index 000000000..84bc84476 --- /dev/null +++ b/paddle2onnx/mapper/tensor/p_norm.cc @@ -0,0 +1,50 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/p_norm.h" + +namespace paddle2onnx { +REGISTER_MAPPER(p_norm, PNormMapper) + +void PNormMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::string pnode = + helper_->Constant({1}, GetOnnxDtype(input_info[0].dtype), porder_); + + auto abs_node = helper_->MakeNode("Abs", {input_info[0].name}); + auto pow_node = helper_->MakeNode("Pow", {abs_node->output(0), pnode}); + std::string reducesum_node = ""; + std::vector axes_val = {axis_}; + if (helper_->GetOpsetVersion() < 13) { + auto node = helper_->MakeNode("ReduceSum", {pow_node->output(0)}); + AddAttribute(node, "axes", axes_val); + AddAttribute(node, "keepdims", static_cast(keepdim_)); + reducesum_node = node->output(0); + } else { + std::string axes_node = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), axes_val); + auto node = + helper_->MakeNode("ReduceSum", {pow_node->output(0), axes_node}); + AddAttribute(node, "keepdims", static_cast(keepdim_)); + reducesum_node = node->output(0); + } + + std::string pnode1 = + helper_->Constant({1}, GetOnnxDtype(input_info[0].dtype), 1.0 / porder_); + helper_->MakeNode("Pow", {reducesum_node, pnode1}, {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/p_norm.h b/paddle2onnx/mapper/tensor/p_norm.h new file mode 100755 index 000000000..e7417369c --- /dev/null +++ b/paddle2onnx/mapper/tensor/p_norm.h @@ -0,0 +1,40 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class PNormMapper : public Mapper { + public: + PNormMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("keepdim", &keepdim_); + GetAttr("axis", &axis_); + GetAttr("porder", &porder_); + } + void Opset7(); + + private: + bool keepdim_; + int64_t axis_; + float porder_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/partial_ops.cc b/paddle2onnx/mapper/tensor/partial_ops.cc new file mode 100755 index 000000000..d22f3e73d --- /dev/null +++ b/paddle2onnx/mapper/tensor/partial_ops.cc @@ -0,0 +1,88 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/partial_ops.h" + +namespace paddle2onnx { +REGISTER_MAPPER(partial_sum, PartialOpsMapper) +REGISTER_MAPPER(partial_concat, PartialOpsMapper) + +int32_t PartialOpsMapper::GetMinOpset(bool verbose) { + auto input_info = GetInput("X"); + for (auto &in : input_info) { + if (in.Rank() != 2) { + Error() << "The input dim of partial_sum OP must be 2." << std::endl; + return -1; + } + } + if (start_index_ < 0) { + start_index_ = start_index_ + input_info[0].shape[1]; + } + int64_t batch_size = input_info[0].shape[0]; + int64_t max_length = input_info[0].shape[1]; + for (auto &in : input_info) { + if (in.shape[0] != batch_size || in.shape[1] != max_length) { + Error() + << "The batch_size and max_length of all inputs must be same in " + + OpType() + " OP." + << std::endl; + return -1; + } + } + if (max_length < start_index_) { + Error() << "start_index must be less than input len in " + OpType() + " OP." + << std::endl; + return -1; + } + if (length_ > 0 && start_index_ + length_ > max_length) { + Error() << "start_index + length is larger than input length in " + + OpType() + " OP." + << std::endl; + return -1; + } + auto iter = op_mapper_.find(OpType()); + if (op_mapper_.end() == iter) { + Error() << "Cannot find " + OpType() + " in partial op_mapper." + << std::endl; + return -1; + } + return 7; +} + +void PartialOpsMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + int64_t end; + if (length_ < 0) { + end = input_info[0].shape[1]; + } else { + end = start_index_ + length_; + } + std::vector slice_outputs; + for (auto &in : input_info) { + auto out = helper_->Slice(in.name, {1}, {start_index_}, {end}); + std::string casted_node = + helper_->AutoCast(out, in.dtype, P2ODataType::FP32); + slice_outputs.push_back(casted_node); + } + auto iter = op_mapper_.find(OpType()); + auto node = helper_->MakeNode(iter->second, slice_outputs); + if (iter->second == "Concat") { + AddAttribute(node, "axis", static_cast(1)); + } + helper_->AutoCast(node->output(0), {output_info[0].name}, P2ODataType::FP32, + output_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/partial_ops.h b/paddle2onnx/mapper/tensor/partial_ops.h new file mode 100755 index 000000000..54eb7ecc3 --- /dev/null +++ b/paddle2onnx/mapper/tensor/partial_ops.h @@ -0,0 +1,42 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class PartialOpsMapper : public Mapper { + public: + PartialOpsMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("start_index", &start_index_); + GetAttr("length", &length_); + op_mapper_["partial_sum"] = "Sum"; + op_mapper_["partial_concat"] = "Concat"; + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::map op_mapper_; + int64_t start_index_; + int64_t length_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/pixel_shuffle.cc b/paddle2onnx/mapper/tensor/pixel_shuffle.cc new file mode 100644 index 000000000..9f10087d1 --- /dev/null +++ b/paddle2onnx/mapper/tensor/pixel_shuffle.cc @@ -0,0 +1,30 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/pixel_shuffle.h" + +namespace paddle2onnx { +REGISTER_MAPPER(pixel_shuffle, PixelShuffleMapper) + +void PixelShuffleMapper::Opset11() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + auto node = helper_->MakeNode("DepthToSpace", {input_info[0].name}, + {output_info[0].name}); + AddAttribute(node, "blocksize", upscale_factor_); + AddAttribute(node, "mode", static_cast("CRD")); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/pixel_shuffle.h b/paddle2onnx/mapper/tensor/pixel_shuffle.h new file mode 100644 index 000000000..915881060 --- /dev/null +++ b/paddle2onnx/mapper/tensor/pixel_shuffle.h @@ -0,0 +1,41 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class PixelShuffleMapper : public Mapper { + public: + PixelShuffleMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("upscale_factor", &upscale_factor_); + } + + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; + } + void Opset11(); + + private: + int64_t upscale_factor_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/pow.cc b/paddle2onnx/mapper/tensor/pow.cc new file mode 100644 index 000000000..57dc18801 --- /dev/null +++ b/paddle2onnx/mapper/tensor/pow.cc @@ -0,0 +1,38 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/pow.h" +#include + +namespace paddle2onnx { +REGISTER_MAPPER(pow, PowMapper) + +void PowMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + auto factor_node = helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, + std::vector(1, factor_)); + if (input_info[0].dtype != P2ODataType::FP32) { + std::string x_cast_name = helper_->AutoCast( + {input_info[0].name}, input_info[0].dtype, P2ODataType::FP32); + auto node = helper_->MakeNode("Pow", {x_cast_name, factor_node}); + helper_->AutoCast(node->output(0), {output_info[0].name}, P2ODataType::FP32, + input_info[0].dtype); + } else { + helper_->MakeNode("Pow", {input_info[0].name, factor_node}, {output_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/pow.h b/paddle2onnx/mapper/tensor/pow.h new file mode 100644 index 000000000..60b445094 --- /dev/null +++ b/paddle2onnx/mapper/tensor/pow.h @@ -0,0 +1,36 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class PowMapper : public Mapper { + public: + PowMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("factor", &factor_); + } + void Opset7(); + + private: + float factor_ = 0.0; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/range.cc b/paddle2onnx/mapper/tensor/range.cc new file mode 100644 index 000000000..0254bf6a0 --- /dev/null +++ b/paddle2onnx/mapper/tensor/range.cc @@ -0,0 +1,76 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/range.h" + +namespace paddle2onnx { +REGISTER_MAPPER(range, RangeMapper) + +void RangeMapper::Opset11() { + auto start_info = GetInput("Start"); + auto end_info = GetInput("End"); + auto step_info = GetInput("Step"); + auto out_info = GetOutput("Out"); + int32_t out_dtype = -1; + // TODO(jiangjiajun) cast for constant is an eleminable operation + std::vector aligned_inputs = helper_->DtypeAlignment( + {start_info[0], end_info[0], step_info[0]}, &out_dtype); + std::vector empty_axes; + + // // Trick for tensorrt + // if (out_dtype == P2ODataType::INT32 || out_dtype == P2ODataType::INT64 || + // true) { + // if (start_info[0].Rank() != 1) { + // aligned_inputs[0] = helper_->Reshape(aligned_inputs[0], {-1}); + // } + // if (end_info[0].Rank() != 1) { + // aligned_inputs[1] = helper_->Reshape(aligned_inputs[1], {-1}); + // } + // if (step_info[0].Rank() != 1) { + // aligned_inputs[2] = helper_->Reshape(aligned_inputs[2], {-1}); + // } + // auto length = helper_->MakeNode("Sub", {aligned_inputs[1], + // aligned_inputs[0]})->output(0); + // length = helper_->AutoCast(length, out_dtype, P2ODataType::INT64); + // auto one = helper_->Constant({1}, GetOnnxDtype(out_dtype), int64_t(1)); + // auto expaned_one = helper_->MakeNode("Expand", {one, + // length})->output(0); auto axis = helper_->Constant({}, + // ONNX_NAMESPACE::TensorProto::INT64, int64_t(0)); auto cumsumed_data = + // helper_->MakeNode("CumSum", {expaned_one, axis})->output(0); + // cumsumed_data = helper_->MakeNode("Sub", {cumsumed_data, + // one})->output(0); + // + // auto zero = helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, + // int64_t(0)); + // auto new_step = helper_->AutoCast(aligned_inputs[2], step_info[0].dtype, + // P2ODataType::INT64); + // helper_->MakeNode("Slice", {cumsumed_data, zero, length, zero, + // new_step}, {out_info[0].name}); return; + // } + + // TODO(jiangjiajun) squeeze for constant is an eleminable operation + if (start_info[0].shape.size() > 0) { + aligned_inputs[0] = helper_->Squeeze(aligned_inputs[0], empty_axes); + } + if (end_info[0].shape.size() > 0) { + aligned_inputs[1] = helper_->Squeeze(aligned_inputs[1], empty_axes); + } + if (step_info[0].shape.size() > 0) { + aligned_inputs[2] = helper_->Squeeze(aligned_inputs[2], empty_axes); + } + auto out = helper_->MakeNode("Range", aligned_inputs)->output(0); + helper_->AutoCast(out, out_info[0].name, out_dtype, out_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/range.h b/paddle2onnx/mapper/tensor/range.h new file mode 100644 index 000000000..df5c2dfe3 --- /dev/null +++ b/paddle2onnx/mapper/tensor/range.h @@ -0,0 +1,36 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class RangeMapper : public Mapper { + public: + RangeMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; + } + void Opset11(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/reduce.cc b/paddle2onnx/mapper/tensor/reduce.cc new file mode 100644 index 000000000..82b98619c --- /dev/null +++ b/paddle2onnx/mapper/tensor/reduce.cc @@ -0,0 +1,144 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/reduce.h" + +namespace paddle2onnx { +REGISTER_MAPPER(reduce_mean, ReduceMapper) +REGISTER_MAPPER(reduce_sum, ReduceMapper) +REGISTER_MAPPER(reduce_min, ReduceMapper) +REGISTER_MAPPER(reduce_max, ReduceMapper) +REGISTER_MAPPER(reduce_prod, ReduceMapper) +REGISTER_MAPPER(logsumexp, ReduceMapper) +REGISTER_MAPPER(reduce_all, ReduceMapper) +REGISTER_MAPPER(reduce_any, ReduceMapper) + +int32_t ReduceMapper::GetMinOpset(bool verbose) { + std::string axis_name; + if (OpType() == "logsumexp") { + axis_name = "axis"; + } else { + axis_name = "dim"; + } + if (IsAttrVar(axis_name) && !IsConstant(GetAttrVar(axis_name)[0])) { + if (OpType() == "reduce_sum") { + return 13; + } + Error() << "While Attribute(" << axis_name + << ")'s type is Tensor, it's not supported " + "unless it's a constant tensor." + << std::endl; + return -1; + } + return 7; +} + +void ReduceMapper::Opset7() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + std::map op_map; + op_map["reduce_mean"] = "ReduceMean"; + op_map["reduce_sum"] = "ReduceSum"; + op_map["reduce_min"] = "ReduceMin"; + op_map["reduce_max"] = "ReduceMax"; + op_map["reduce_prod"] = "ReduceProd"; + op_map["logsumexp"] = "ReduceLogSumExp"; + std::string out = ""; + + std::string axis_name; + if (OpType() == "logsumexp") { + axis_name = "axis"; + } else { + axis_name = "dim"; + } + + if (IsAttrVar(axis_name)) { + auto info = GetAttrVar(axis_name); + TryGetValue(info[0], &dim_); + } else { + GetAttr(axis_name, &dim_); + } + + bool reduce_all_axes = dim_.size() == x_info[0].Rank(); + if (reduce_all_) { + reduce_all_axes = true; + } + + if (helper_->GetOpsetVersion() >= 13 && OpType() == "reduce_sum") { + std::string dims = ""; + if (IsAttrVar(axis_name)) { + auto info = GetAttrVar(axis_name); + dims = helper_->AutoCast(info[0].name, info[0].dtype, P2ODataType::INT64); + } else { + if (!reduce_all_) { + dims = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, dim_); + } else { + dims = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, + Arange(0, x_info[0].Rank())); + } + } + auto reduce_node = + helper_->MakeNode(op_map[OpType()], {x_info[0].name, dims}); + AddAttribute(reduce_node, "keepdims", static_cast(keep_dim_)); + out = reduce_node->output(0); + } else if (OpType() == "reduce_all") { + auto int32_x = + helper_->AutoCast(x_info[0].name, x_info[0].dtype, P2ODataType::INT32); + auto reduce_node = helper_->MakeNode("ReduceMin", {int32_x}); + if (!reduce_all_) { + AddAttribute(reduce_node, "axes", dim_); + } else { + AddAttribute(reduce_node, "axes", Arange(0, x_info[0].Rank())); + } + AddAttribute(reduce_node, "keepdims", static_cast(keep_dim_)); + out = helper_->AutoCast(reduce_node->output(0), P2ODataType::INT32, + P2ODataType::BOOL); + } else if (OpType() == "reduce_any") { + auto int32_x = + helper_->AutoCast(x_info[0].name, x_info[0].dtype, P2ODataType::INT32); + auto reduce_node = helper_->MakeNode("ReduceMax", {int32_x}); + if (!reduce_all_) { + AddAttribute(reduce_node, "axes", dim_); + } else { + AddAttribute(reduce_node, "axes", Arange(0, x_info[0].Rank())); + } + AddAttribute(reduce_node, "keepdims", static_cast(keep_dim_)); + out = helper_->AutoCast(reduce_node->output(0), P2ODataType::INT32, + P2ODataType::BOOL); + } else { + std::string input_name = x_info[0].name; + if (OpType() == "reduce_prod" && x_info[0].dtype == P2ODataType::FP64) { + input_name = helper_->AutoCast(x_info[0].name, P2ODataType::FP64, + P2ODataType::FP32); + } + auto reduce_node = helper_->MakeNode(op_map[OpType()], {input_name}); + if (!reduce_all_) { + AddAttribute(reduce_node, "axes", dim_); + } else { + AddAttribute(reduce_node, "axes", Arange(0, x_info[0].Rank())); + } + AddAttribute(reduce_node, "keepdims", static_cast(keep_dim_)); + out = reduce_node->output(0); + if (OpType() == "reduce_prod" && x_info[0].dtype == P2ODataType::FP64) { + out = helper_->AutoCast(reduce_node->output(0), P2ODataType::FP32, + P2ODataType::FP64); + } + } + if (!keep_dim_ && reduce_all_axes) { + out = helper_->Reshape(out, {-1}); + } + helper_->AutoCast(out, out_info[0].name, x_info[0].dtype, out_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/reduce.h b/paddle2onnx/mapper/tensor/reduce.h new file mode 100755 index 000000000..901a3f48c --- /dev/null +++ b/paddle2onnx/mapper/tensor/reduce.h @@ -0,0 +1,50 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ReduceMapper : public Mapper { + public: + ReduceMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + if (OpType() == "logsumexp") { + GetAttr("keepdim", &keep_dim_); + GetAttr("reduce_all", &reduce_all_); + } else { + GetAttr("keep_dim", &keep_dim_); + GetAttr("reduce_all", &reduce_all_); + GetAttr("in_dtype", &in_dtype_); + GetAttr("out_dtype", &out_dtype_); + } + } + void Opset7(); + + int32_t GetMinOpset(bool verbose = false); + + private: + bool keep_dim_; + bool reduce_all_; + int64_t in_dtype_; + int64_t out_dtype_; + std::vector dim_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/reshape2.cc b/paddle2onnx/mapper/tensor/reshape2.cc new file mode 100644 index 000000000..ccdbc5a86 --- /dev/null +++ b/paddle2onnx/mapper/tensor/reshape2.cc @@ -0,0 +1,54 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/reshape2.h" + +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(reshape2, Reshape2Mapper) + +void Reshape2Mapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::string shape_name = "ShapeTensor"; + if (!HasInput(shape_name)) { + shape_name = "Shape"; + } + + std::string new_shape = ""; + if (HasInput(shape_name)) { + auto shape_info = GetInput(shape_name); + if (shape_info.size() > 1) { + new_shape = helper_->ConcatIndices(shape_info); + } else { + new_shape = helper_->AutoCast(shape_info[0].name, shape_info[0].dtype, + P2ODataType::INT64); + } + } else { + std::vector value; + GetAttr("shape", &value); + new_shape = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, value); + } + auto node = helper_->MakeNode("Reshape", {input_info[0].name, new_shape}, + {output_info[0].name}); + if (helper_->GetOpsetVersion()>= 14) { + AddAttribute(node, "allowzero", int64_t(0)); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/reshape2.h b/paddle2onnx/mapper/tensor/reshape2.h new file mode 100644 index 000000000..65ce42061 --- /dev/null +++ b/paddle2onnx/mapper/tensor/reshape2.h @@ -0,0 +1,32 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Reshape2Mapper : public Mapper { + public: + Reshape2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/scale.cc b/paddle2onnx/mapper/tensor/scale.cc new file mode 100644 index 000000000..a2afb0cfa --- /dev/null +++ b/paddle2onnx/mapper/tensor/scale.cc @@ -0,0 +1,76 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#include "paddle2onnx/mapper/tensor/scale.h" + +#include + +namespace paddle2onnx { + +REGISTER_MAPPER(scale, ScaleMapper) + +void ScaleMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + bool has_scale_tensor = HasInput("ScaleTensor"); + bool is_scale_1 = ((scale_ - 1.0) < 1e-06 && (scale_ - 1.0) > -1e-06); + bool is_bias_0 = (bias_ < 1e-06 && bias_ > -1e-06); + + if (!has_scale_tensor && is_scale_1 && is_bias_0) { + helper_->MakeNode("Identity", {input_info[0].name}, {output_info[0].name}); + } else { + auto input = helper_->AutoCast(input_info[0].name, input_info[0].dtype, + P2ODataType::FP32); + std::string out = input; + if (bias_after_scale_) { + if (!is_scale_1 || HasInput("ScaleTensor")) { + if (HasInput("ScaleTensor")) { + auto scale_info = GetInput("ScaleTensor"); + auto scale = helper_->AutoCast( + scale_info[0].name, scale_info[0].dtype, P2ODataType::FP32); + out = helper_->MakeNode("Mul", {out, scale})->output(0); + } else { + auto scale = helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, + std::vector(1, scale_)); + out = helper_->MakeNode("Mul", {out, scale})->output(0); + } + } + if (!is_bias_0) { + auto bias = helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, + std::vector(1, bias_)); + out = helper_->MakeNode("Add", {out, bias})->output(0); + } + } else { + if (!is_bias_0) { + auto bias = helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, + std::vector(1, bias_)); + out = helper_->MakeNode("Add", {out, bias})->output(0); + } + if (!is_scale_1 || HasInput("ScaleTensor")) { + if (HasInput("ScaleTensor")) { + auto scale_info = GetInput("ScaleTensor"); + auto scale = helper_->AutoCast( + scale_info[0].name, scale_info[0].dtype, P2ODataType::FP32); + out = helper_->MakeNode("Mul", {out, scale})->output(0); + } else { + auto scale = helper_->Constant(ONNX_NAMESPACE::TensorProto::FLOAT, + std::vector(1, scale_)); + out = helper_->MakeNode("Mul", {out, scale})->output(0); + } + } + } + helper_->AutoCast(out, output_info[0].name, P2ODataType::FP32, + output_info[0].dtype); + } +} +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/scale.h b/paddle2onnx/mapper/tensor/scale.h new file mode 100644 index 000000000..3970516c3 --- /dev/null +++ b/paddle2onnx/mapper/tensor/scale.h @@ -0,0 +1,39 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ScaleMapper : public Mapper { + public: + ScaleMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("scale", &scale_); + GetAttr("bias", &bias_); + GetAttr("bias_after_scale", &bias_after_scale_); + } + + void Opset7(); + + private: + float scale_ = 1.0; + float bias_ = 0.0; + bool bias_after_scale_ = true; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/scatter.cc b/paddle2onnx/mapper/tensor/scatter.cc new file mode 100644 index 000000000..73bb7dd6a --- /dev/null +++ b/paddle2onnx/mapper/tensor/scatter.cc @@ -0,0 +1,77 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/scatter.h" + +namespace paddle2onnx { +REGISTER_MAPPER(scatter, ScatterMapper) + +int32_t ScatterMapper::GetMinOpset(bool verbose) { + if (!overwrite_) { + Logger(verbose, 16) << "When overwrite is False, " << RequireOpset(16) + << std::endl; + return 16; + } + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; +} + +void ScatterMapper::Opset11() { + auto input_x_info = GetInput("X"); + auto input_ids_info = GetInput("Ids"); + auto input_updates_info = GetInput("Updates"); + auto output_info = GetOutput("Out"); + + std::string ids_node = helper_->AutoCast( + input_ids_info[0].name, input_ids_info[0].dtype, P2ODataType::INT64); + + std::vector shape_val = {input_ids_info[0].shape[0], 1}; + std::string shape_node = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), shape_val); + + auto reshape_index_node = + helper_->MakeNode("Reshape", {ids_node, shape_node}); + + if (!overwrite_) { + auto shape_node = helper_->MakeNode("Shape", {input_x_info[0].name}); + std::string zeros_like_node = helper_->ConstOfShape( + shape_node->output(0), GetOnnxDtype(input_x_info[0].dtype), + static_cast(0)); + auto scatter_nd_node = helper_->MakeNode( + "ScatterND", {zeros_like_node, reshape_index_node->output(0), + input_updates_info[0].name}); + AddAttribute(scatter_nd_node, "reduction", "add"); + + std::string zero_node = helper_->Constant( + {1}, GetOnnxDtype(input_x_info[0].dtype), static_cast(0)); + + auto equal_node = + helper_->MakeNode("Equal", {scatter_nd_node->output(0), zero_node}); + + std::string condition_node = helper_->AutoCast( + equal_node->output(0), P2ODataType::INT64, P2ODataType::BOOL); + + helper_->MakeNode("Where", {condition_node, input_x_info[0].name, + scatter_nd_node->output(0)}, + {output_info[0].name}); + + } else { + auto node = helper_->MakeNode( + "ScatterND", {input_x_info[0].name, reshape_index_node->output(0), + input_updates_info[0].name}, + {output_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/scatter.h b/paddle2onnx/mapper/tensor/scatter.h new file mode 100644 index 000000000..cefa80fae --- /dev/null +++ b/paddle2onnx/mapper/tensor/scatter.h @@ -0,0 +1,37 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ScatterMapper : public Mapper { + public: + ScatterMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("overwrite", &overwrite_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset11(); + + private: + bool overwrite_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/scatter_nd_add.cc b/paddle2onnx/mapper/tensor/scatter_nd_add.cc new file mode 100644 index 000000000..7bbe5c928 --- /dev/null +++ b/paddle2onnx/mapper/tensor/scatter_nd_add.cc @@ -0,0 +1,48 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/scatter_nd_add.h" + +namespace paddle2onnx { +REGISTER_MAPPER(scatter_nd_add, ScatterNdAddMapper) + +int32_t ScatterNdAddMapper::GetMinOpset(bool verbose) { + Logger(verbose, 16) << RequireOpset(16) << std::endl; + return 16; +} + +void ScatterNdAddMapper::Opset16() { + auto input_x_info = GetInput("X"); + auto input_ids_info = GetInput("Index"); + auto input_updates_info = GetInput("Updates"); + auto output_info = GetOutput("Out"); + + auto shape_node = helper_->MakeNode("Shape", {input_x_info[0].name}); + + std::string zeros_like_node = helper_->ConstOfShape( + shape_node->output(0), GetOnnxDtype(input_x_info[0].dtype), + static_cast(0)); + + std::string input_ids_node = helper_->AutoCast( + input_ids_info[0].name, input_ids_info[0].dtype, P2ODataType::INT64); + + auto scatter_nd_node = helper_->MakeNode( + "ScatterND", + {zeros_like_node, input_ids_node, input_updates_info[0].name}); + AddAttribute(scatter_nd_node, "reduction", "add"); + helper_->MakeNode("Add", {input_x_info[0].name, scatter_nd_node->output(0)}, + {output_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/scatter_nd_add.h b/paddle2onnx/mapper/tensor/scatter_nd_add.h new file mode 100644 index 000000000..053e5076d --- /dev/null +++ b/paddle2onnx/mapper/tensor/scatter_nd_add.h @@ -0,0 +1,34 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class ScatterNdAddMapper : public Mapper { + public: + ScatterNdAddMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false); + void Opset16(); + + private: +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/set_value.cc b/paddle2onnx/mapper/tensor/set_value.cc new file mode 100644 index 000000000..7b630b1f9 --- /dev/null +++ b/paddle2onnx/mapper/tensor/set_value.cc @@ -0,0 +1,143 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/set_value.h" + +namespace paddle2onnx { +REGISTER_MAPPER(set_value, SetValueMapper) + +int32_t SetValueMapper::GetMinOpset(bool verbose) { + if (none_axes_.size() > 0) { + Error() << "Attribute none_axes is not supported." << std::endl; + return -1; + } + if (axes_.size() > 1) { + Error() << "Attribute axes is supported while it only contains 1 element." + << std::endl; + return -1; + } + if (steps_.size() > 1) { + Error() << "ttribute steps is supported while it only contains 1 element." + << std::endl; + return -1; + } + if (GetInput("Input")[0].dtype == P2ODataType::BOOL) { + Error() << "Input X with data type of boolean is not supported." + << std::endl; + return -1; + } + Logger(verbose, 12) << RequireOpset(12) << std::endl; + return 12; +} + +void SetValueMapper::Opset12() { + auto input_info = GetInput("Input"); + auto output_info = GetOutput("Out"); + std::string starts = ""; + if (HasInput("StartsTensorList")) { + // if negtive value exists, not supported + starts = helper_->ConcatIndices(GetInput("StartsTensorList")); + } else { + starts = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, starts_); + } + std::string ends = ""; + if (HasInput("EndsTensorList")) { + ends = helper_->ConcatIndices(GetInput("EndsTensorList")); + } else { + // if out of range value in end exists, not supported + ends = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, ends_); + } + + auto input_tensor = input_info[0].name; + std::string axes = helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, + int64_t(axes_[0])); + // process out of range ends + auto input_shape = helper_->MakeNode("Shape", {input_tensor})->output(0); + auto gather_end_bound = helper_->MakeNode("Gather", {input_shape, axes}); + AddAttribute(gather_end_bound, "axis", int64_t(0)); + ends = + helper_->MakeNode("Min", {gather_end_bound->output(0), ends})->output(0); + + std::string steps = ""; + if (HasInput("StepsTensorList")) { + steps = helper_->ConcatIndices(GetInput("StepsTensorList")); + } else { + steps = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, steps_); + } + std::string value = ""; + int64_t value_rank = input_info[0].Rank(); + if (HasInput("ValueTensor")) { + auto value_info = GetInput("ValueTensor"); + value = value_info[0].name; + value_rank = value_info[0].Rank(); + } else { + value_rank = shape_.size(); + int in_dtype = input_info[0].dtype; + if (in_dtype == P2ODataType::INT32 || in_dtype == P2ODataType::INT64) { + value = helper_->Assign(GetOnnxDtype(output_info[0].dtype), shape_, + int_values_); + } else if (in_dtype == P2ODataType::FP32) { + value = helper_->Assign(GetOnnxDtype(output_info[0].dtype), shape_, + fp32_values_); + } else if (in_dtype == P2ODataType::FP64) { + value = helper_->Assign(GetOnnxDtype(output_info[0].dtype), shape_, + fp64_values_); + } + } + + auto sliced_data = + helper_->MakeNode("Slice", {input_tensor, starts, ends, axes, steps}) + ->output(0); + + auto sliced_shape = helper_->MakeNode("Shape", {sliced_data})->output(0); + if (decrease_axes_.size() > 0 && value_rank != input_info[0].Rank()) { + value = helper_->Unsqueeze(value, decrease_axes_); + } + auto expand_value = + helper_->MakeNode("Expand", {value, sliced_shape})->output(0); + + auto indices = helper_ + ->MakeNode("Range", {helper_->Squeeze(starts, {}), + helper_->Squeeze(ends, {}), + helper_->Squeeze(steps, {})}) + ->output(0); + if (axes_[0] == 0) { + indices = helper_->Unsqueeze(indices, {1}); + helper_->MakeNode("ScatterND", {input_tensor, indices, expand_value}, + {output_info[0].name}); + } else { + std::vector indices_shape(input_info[0].Rank(), 1); + indices_shape[axes_[0]] = -1; + indices = helper_->Reshape(indices, indices_shape); + auto one = + helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, int64_t(1)); + if (axes_[0] == input_info[0].Rank() - 1) { + auto part_shape = helper_->Slice(sliced_shape, {0}, {0}, {axes_[0]}); + auto tiled_shape = helper_->Concat({part_shape, one}, 0); + indices = helper_->MakeNode("Tile", {indices, tiled_shape})->output(0); + } else { + auto part_0_shape = helper_->Slice(sliced_shape, {0}, {0}, {axes_[0]}); + auto part_1_shape = helper_->Slice(sliced_shape, {0}, {axes_[0] + 1}, + {input_info[0].Rank()}); + auto tiled_shape = helper_->Concat({part_0_shape, one, part_1_shape}, 0); + indices = helper_->MakeNode("Tile", {indices, tiled_shape})->output(0); + } + auto scatter_node = helper_->MakeNode("ScatterElements", + {input_tensor, indices, expand_value}, + {output_info[0].name}); + AddAttribute(scatter_node, "axis", axes_[0]); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/set_value.h b/paddle2onnx/mapper/tensor/set_value.h new file mode 100644 index 000000000..c5ddb9a97 --- /dev/null +++ b/paddle2onnx/mapper/tensor/set_value.h @@ -0,0 +1,65 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class SetValueMapper : public Mapper { + public: + SetValueMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + MarkAsExperimentalOp(); + GetAttr("axes", &axes_); + GetAttr("starts", &starts_); + GetAttr("ends", &ends_); + GetAttr("steps", &steps_); + GetAttr("shape", &shape_); + GetAttr("decrease_axes", &decrease_axes_); + GetAttr("none_axes", &none_axes_); + if (!HasInput("ValueTensor")) { + auto dtype = GetInput("Input")[0].dtype; + if (dtype == P2ODataType::INT32) { + GetAttr("int32_values", &int_values_); + } else if (dtype == P2ODataType::INT64) { + GetAttr("int64_values", &int_values_); + } else if (dtype == P2ODataType::FP32) { + GetAttr("fp32_values", &fp32_values_); + } else if (dtype == P2ODataType::FP64) { + GetAttr("fp64_values", &fp64_values_); + } + } + } + int32_t GetMinOpset(bool verbose = false); + void Opset12(); + + private: + std::vector axes_; + std::vector starts_; + std::vector ends_; + std::vector steps_; + std::vector shape_; + std::vector decrease_axes_; + std::vector none_axes_; + std::vector int_values_; + std::vector fp32_values_; + std::vector fp64_values_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/slice.cc b/paddle2onnx/mapper/tensor/slice.cc new file mode 100644 index 000000000..317f3b9d5 --- /dev/null +++ b/paddle2onnx/mapper/tensor/slice.cc @@ -0,0 +1,175 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/slice.h" + +#include +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(slice, SliceMapper) +REGISTER_MAPPER(strided_slice, SliceMapper) + +int32_t SliceMapper::GetMinOpset(bool verbose) { + if (HasInput("StartsTensorList") || HasInput("EndsTensorList") || + HasInput("StridesTensorList")) { + Logger(verbose, 10) + << "While has input StartsTensorList/EndsTensorListStridesTensorList, " + << RequireOpset(10) << std::endl; + return 10; + } + if (HasInput("StartsTensor")) { + auto info = GetInput("StartsTensor"); + if (!IsConstantInput("StartsTensor")) { + Logger(verbose, 10) + << "While has input StartsTensor, and it's not a constant tensor, " + << RequireOpset(10) << std::endl; + return 10; + } + } + if (HasInput("EndsTensor")) { + auto info = GetInput("EndsTensor"); + if (!IsConstantInput("EndsTensor")) { + Logger(verbose, 10) + << "While has input EndsTensor, and it's not a constant tensor, " + << RequireOpset(10) << std::endl; + return 10; + } + } + if (HasInput("StridesTensor") || strides_.size() > 0) { + Logger(verbose, 10) << "While has strides, " << RequireOpset(10) + << std::endl; + return 10; + } + return 7; +} + +std::vector SliceMapper::DecreaseAxis() { + std::vector decrease_axis; + bool has_attr = HasAttr("decrease_axis"); + if (has_attr) { + GetAttr("decrease_axis", &decrease_axis); + auto input_info = GetInput("Input"); + auto output_info = GetOutput("Out"); + if (output_info[0].shape.size() == 1 && output_info[0].shape[0] == 0) { + return decrease_axis; + } + if (input_info[0].shape.size() > output_info[0].shape.size()) { + return decrease_axis; + } + return {}; + } + return decrease_axis; +} + +void SliceMapper::Opset7() { + auto input_info = GetInput("Input"); + auto output_info = GetOutput("Out"); + + Assert(!HasInput("StartsTensorList"), + "While slice/strided_slice has input StartsTensorList, requires " + "opset_version >= 10"); + + std::vector starts; + if (HasInput("StartsTensor")) { + Assert(TryGetInputValue("StartsTensor", &starts), + "While slice/strided_slice has input StartsTensor, and it's not a " + "constant tensor, then requires opset_version >= 10"); + } else { + starts = starts_; + } + + Assert(!HasInput("EndsTensorList"), + "While slice/strided_slice has input EndsTensorList, requires " + "opset_version >= 10"); + std::vector ends; + if (HasInput("EndsTensor")) { + auto info = GetInput("EndsTensor"); + Assert(TryGetInputValue("EndsTensor", &ends), + "While slice/strided_slice has input EndsTensor, and it's not a " + "constant tensor, then requires opset_version >= 10"); + } else { + ends = ends_; + } + + std::vector decrease_axis = DecreaseAxis(); + if (decrease_axis.empty()) { + helper_->Slice(input_info[0].name, output_info[0].name, axes_, starts, + ends); + } else { + std::string node = helper_->Slice(input_info[0].name, axes_, starts, ends); + helper_->Squeeze(node, output_info[0].name, decrease_axis); + } +} + +void SliceMapper::Opset10() { + auto input_info = GetInput("Input"); + auto output_info = GetOutput("Out"); + + std::string starts = ""; + if (HasInput("StartsTensorList")) { + auto info = GetInput("StartsTensorList"); + starts = helper_->ConcatIndices(info); + } else if (HasInput("StartsTensor")) { + auto info = GetInput("StartsTensor"); + starts = helper_->AutoCast(info[0].name, info[0].dtype, P2ODataType::INT64); + } else { + starts = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, starts_); + } + + std::string ends = ""; + if (HasInput("EndsTensorList")) { + auto info = GetInput("EndsTensorList"); + ends = helper_->ConcatIndices(info); + } else if (HasInput("EndsTensor")) { + auto info = GetInput("EndsTensor"); + ends = helper_->AutoCast(info[0].name, info[0].dtype, P2ODataType::INT64); + } else { + ends = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, ends_); + } + + std::string strides = ""; + if (HasInput("StridesTensorList")) { + auto info = GetInput("StridesTensorList"); + strides = helper_->ConcatIndices(info); + } else if (HasInput("StridesTensor")) { + auto info = GetInput("StridesTensor"); + strides = + helper_->AutoCast(info[0].name, info[0].dtype, P2ODataType::INT64); + } else { + if (strides_.size() == 0) { + strides = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, + std::vector(axes_.size(), 1)); + } else { + strides = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, strides_); + } + } + + auto axes = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, axes_); + std::vector decrease_axis = DecreaseAxis(); + if (decrease_axis.empty()) { + helper_->MakeNode("Slice", + {input_info[0].name, starts, ends, axes, strides}, + {output_info[0].name}); + } else { + auto out = helper_ + ->MakeNode("Slice", + {input_info[0].name, starts, ends, axes, strides}) + ->output(0); + helper_->Squeeze(out, output_info[0].name, decrease_axis); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/slice.h b/paddle2onnx/mapper/tensor/slice.h new file mode 100644 index 000000000..38e5dc2f7 --- /dev/null +++ b/paddle2onnx/mapper/tensor/slice.h @@ -0,0 +1,52 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class SliceMapper : public Mapper { + public: + SliceMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axes", &axes_); + GetAttr("starts", &starts_); + GetAttr("ends", &ends_); + if (HasAttr("strides")) { + GetAttr("strides", &strides_); + } + if (HasAttr("decrease_axis_")) { + GetAttr("decrease_axis", &decrease_axis_); + } + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + void Opset10(); + + private: + std::vector DecreaseAxis(); + std::vector axes_; + std::vector starts_; + std::vector ends_; + std::vector strides_; + std::vector decrease_axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/split.cc b/paddle2onnx/mapper/tensor/split.cc new file mode 100644 index 000000000..2642c85b6 --- /dev/null +++ b/paddle2onnx/mapper/tensor/split.cc @@ -0,0 +1,145 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/split.h" + +namespace paddle2onnx { +REGISTER_MAPPER(split, SplitMapper) + +int32_t SplitMapper::GetMinOpset(bool verbose) { + int64_t axis = axis_; + if (HasInput("AxisTensor")) { + std::vector value; + if (!TryGetInputValue("AxisTensor", &value)) { + Error() << "While AxisTensor as the input and it's not a constant " + "tensor, the conversion is not supported yet." + << std::endl; + return -1; + } + axis = value[0]; + } + + if (HasInput("SectionsTensorList")) { + Logger(verbose, 13) << "While has input SectionsTensorList, " + << RequireOpset(13) << std::endl; + return 13; + } + + for (size_t i = 0; i < sections_.size(); ++i) { + if (sections_[i] < 0) { + auto info = GetInput("X"); + if (info[0].shape[axis] < 0) { + Error() << "Cannot convert split op, while there's -1 in sections and " + "cannot be infered by input shape." + << std::endl; + return -1; + } + } + } + return 7; +} + +void SplitMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + int64_t axis = axis_; + if (HasInput("AxisTensor")) { + std::vector value; + Assert(TryGetInputValue("AxisTensor", &value), + "[Paddle2ONNX](split) Cannot get constant value from AxisTensor."); + axis = value[0]; + } + if (axis < 0) { + axis += input_info[0].Rank(); + } + Assert(!HasInput("SectionsTensorList"), + "[Paddle2ONNX](split) While SectionTensorList as input, requires " + "opset_version >= 13."); + + int sum_of_kown_dim = 0; + for (size_t i = 0; i < sections_.size(); ++i) { + if (sections_[i] > 0) { + sum_of_kown_dim += sections_[i]; + } + } + for (size_t i = 0; i < sections_.size(); ++i) { + if (sections_[i] < 0) { + Assert(input_info[0].shape[axis] > 0, + "Cannot convert split op, while there's -1 in sections and cannot " + "be infered by input shape."); + sections_[i] = input_info[0].shape[axis] - sum_of_kown_dim; + } + } + + std::vector output_names(output_info.size()); + for (size_t i = 0; i < output_info.size(); ++i) { + output_names[i] = output_info[i].name; + } + + helper_->Split(input_info[0].name, output_names, sections_, axis); +} + +void SplitMapper::Opset13() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + int64_t axis = axis_; + if (HasInput("AxisTensor")) { + std::vector value; + Assert(TryGetInputValue("AxisTensor", &value), + "[Paddle2ONNX](split) Cannot get constant value from AxisTensor."); + axis = value[0]; + } + if (axis < 0) { + axis += input_info[0].Rank(); + } + + std::string splits = ""; + if (HasInput("SectionsTensorList")) { + auto info = GetInput("SectionsTensorList"); + splits = helper_->ConcatIndices(info); + } else if (sections_.size() > 0) { + int sum_of_kown_dim = 0; + for (size_t i = 0; i < sections_.size(); ++i) { + if (sections_[i] > 0) { + sum_of_kown_dim += sections_[i]; + } + } + for (size_t i = 0; i < sections_.size(); ++i) { + if (sections_[i] < 0) { + Assert(input_info[0].shape[axis] > 0, + "Cannot convert split op, while there's -1 in sections and " + "cannot be infered by input shape."); + sections_[i] = input_info[0].shape[axis] - sum_of_kown_dim; + } + } + splits = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, sections_); + } + + std::vector output_names(output_info.size()); + for (size_t i = 0; i < output_info.size(); ++i) { + output_names[i] = output_info[i].name; + } + if (splits != "") { + auto node = + helper_->MakeNode("Split", {input_info[0].name, splits}, output_names); + AddAttribute(node, "axis", axis); + } else { + auto node = helper_->MakeNode("Split", {input_info[0].name}, output_names); + AddAttribute(node, "axis", axis); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/split.h b/paddle2onnx/mapper/tensor/split.h new file mode 100644 index 000000000..2665cfcdb --- /dev/null +++ b/paddle2onnx/mapper/tensor/split.h @@ -0,0 +1,41 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class SplitMapper : public Mapper { + public: + SplitMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + GetAttr("sections", §ions_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + void Opset13(); + + private: + int64_t axis_; + std::vector sections_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/squeeze2.cc b/paddle2onnx/mapper/tensor/squeeze2.cc new file mode 100644 index 000000000..953995875 --- /dev/null +++ b/paddle2onnx/mapper/tensor/squeeze2.cc @@ -0,0 +1,84 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/squeeze2.h" + +namespace paddle2onnx { +REGISTER_MAPPER(squeeze2, Squeeze2Mapper) + +int32_t Squeeze2Mapper::GetMinOpset(bool verbose) { + if (IsAttrVar("axes")) { + auto infos = GetAttrVar("axes"); + for (auto &info : infos) { + if (!IsConstant(info)) { + return 13; + } + } + } + return 7; +} + +void Squeeze2Mapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::vector ret; + ret.reserve(input_info[0].shape.size()); + for (auto i : input_info[0].shape) { + if (i > 1) ret.push_back(i); + } + if (ret.size() == input_info[0].Rank()) { + helper_->MakeNode("Identity", {input_info[0].name}, {output_info[0].name}); + } else { + if (helper_->GetOpsetVersion() >= 13 && IsAttrVar("axes")) { + auto axes_info = GetAttrVar("axes"); + std::string axes_name; + if (axes_info.size() == 1U) { + axes_name = helper_->AutoCast(axes_info[0].name, axes_info[0].dtype, + P2ODataType::INT64); + } else { + axes_name = helper_->ConcatIndices(axes_info); + } + helper_->MakeNode("Squeeze", {input_info[0].name, axes_name}, + {output_info[0].name}); + } else { + if (IsAttrVar("axes")) { + auto axes_info = GetAttrVar("axes"); + for (int64_t index = 0; index < axes_info.size(); index++) { + std::vector temp; + TryGetValue(axes_info[index], &temp); + for (auto &data : temp) { + axes_.push_back(data); + } + } + } else { + GetAttr("axes", &axes_); + } + std::vector axes(axes_.begin(), axes_.end()); + for (size_t i = 0; i < axes.size(); ++i) { + if (axes[i] < 0) { + axes[i] += input_info[0].Rank(); + } + } + if (axes.size() > 0) { + std::sort(axes.begin(), axes.end()); + helper_->Squeeze(input_info[0].name, output_info[0].name, axes); + } else { + helper_->Squeeze(input_info[0].name, output_info[0].name, {}); + } + } + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/squeeze2.h b/paddle2onnx/mapper/tensor/squeeze2.h new file mode 100644 index 000000000..ffa31c885 --- /dev/null +++ b/paddle2onnx/mapper/tensor/squeeze2.h @@ -0,0 +1,35 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Squeeze2Mapper : public Mapper { + public: + Squeeze2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + std::vector axes_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/stack.cc b/paddle2onnx/mapper/tensor/stack.cc new file mode 100644 index 000000000..4c6f249db --- /dev/null +++ b/paddle2onnx/mapper/tensor/stack.cc @@ -0,0 +1,39 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/stack.h" + +namespace paddle2onnx { +REGISTER_MAPPER(stack, StackMapper) + +void StackMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetOutput("Y"); + + int32_t out_dtype = 0; + std::vector aligned_inputs = + helper_->DtypeAlignment(x_info, &out_dtype); + auto axis = axis_; + if (axis < 0) { + axis = axis + x_info[0].Rank() + 1; + } + for (size_t i = 0; i < aligned_inputs.size(); ++i) { + aligned_inputs[i] = + helper_->Unsqueeze(aligned_inputs[i], std::vector(1, axis)); + } + auto out = helper_->Concat(aligned_inputs, axis_); + helper_->AutoCast(out, y_info[0].name, out_dtype, y_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/stack.h b/paddle2onnx/mapper/tensor/stack.h new file mode 100644 index 000000000..36d01d54a --- /dev/null +++ b/paddle2onnx/mapper/tensor/stack.h @@ -0,0 +1,33 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class StackMapper : public Mapper { + public: + StackMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + void Opset7(); + + private: + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/take_along_axis.cc b/paddle2onnx/mapper/tensor/take_along_axis.cc new file mode 100755 index 000000000..7262ffb3f --- /dev/null +++ b/paddle2onnx/mapper/tensor/take_along_axis.cc @@ -0,0 +1,38 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/take_along_axis.h" + +namespace paddle2onnx { +REGISTER_MAPPER(take_along_axis, TakeAlongAxisMapper) + +int32_t TakeAlongAxisMapper::GetMinOpset(bool verbose) { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; +} + +void TakeAlongAxisMapper::Opset11() { + auto x_info = GetInput("Input"); + auto index_info = GetInput("Index"); + auto out_info = GetOutput("Result"); + + auto axis = axis_; + + auto node = + helper_->MakeNode("GatherElements", {x_info[0].name, index_info[0].name}, + {out_info[0].name}); + AddAttribute(node, "axis", axis); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/take_along_axis.h b/paddle2onnx/mapper/tensor/take_along_axis.h new file mode 100755 index 000000000..8299d3de9 --- /dev/null +++ b/paddle2onnx/mapper/tensor/take_along_axis.h @@ -0,0 +1,38 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class TakeAlongAxisMapper : public Mapper { + public: + TakeAlongAxisMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("Axis", &axis_); + } + + int32_t GetMinOpset(bool verbose = false); + void Opset11(); + + private: + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/temporal_shift.cc b/paddle2onnx/mapper/tensor/temporal_shift.cc new file mode 100644 index 000000000..2a2aac510 --- /dev/null +++ b/paddle2onnx/mapper/tensor/temporal_shift.cc @@ -0,0 +1,79 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/temporal_shift.h" + +namespace paddle2onnx { +REGISTER_MAPPER(temporal_shift, TemporalShiftMapper) + +int32_t TemporalShiftMapper::GetMinOpset(bool verbose) { + if (data_format_ == "NHWC") { + Error() << "Only support data_format of NCHW, but now the data format is " + << data_format_ << "." << std::endl; + return -1; + } + auto input_info = GetOutput("Out"); + if (input_info[0].Rank() != 4) { + Error() << "The input dims must be 4, but now the input dims is " + << std::to_string(input_info[0].Rank()) << "." << std::endl; + return -1; + } + return 7; +} + +void TemporalShiftMapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + int64_t C = input_info[0].shape[1]; + int64_t H = input_info[0].shape[2]; + int64_t W = input_info[0].shape[3]; + std::vector reshape_shape = {-1, seg_num_, C, H, W}; + + std::string reshape_input = + helper_->Reshape(input_info[0].name, reshape_shape); + + std::vector paddings(10, 0); + paddings[1] = 1; + paddings[6] = 1; + + std::string padding_constant_node = + helper_->Constant(GetOnnxDtype(P2ODataType::INT64), paddings); + + std::string pad_node = ""; + if (helper_->GetOpsetVersion() < 11) { + auto node = helper_->MakeNode("Pad", {reshape_input}); + AddAttribute(node, "pads", paddings); + float val = 0.0; + AddAttribute(node, "value", val); + pad_node = node->output(0); + } else { + auto node = + helper_->MakeNode("Pad", {reshape_input, padding_constant_node}); + pad_node = node->output(0); + } + + int64_t C1 = C * shift_ratio_; + int64_t C2 = 2 * C * shift_ratio_; + std::string slice_1 = + helper_->Slice(pad_node, {1, 2}, {0, 0}, {seg_num_, C1}); + std::string slice_2 = + helper_->Slice(pad_node, {1, 2}, {2, C1}, {2 + seg_num_, C2}); + std::string slice_3 = + helper_->Slice(pad_node, {1, 2}, {1, C2}, {1 + seg_num_, C}); + std::string concat_out = helper_->Concat({slice_1, slice_2, slice_3}, 2); + helper_->Reshape(concat_out, output_info[0].name, {-1, C, H, W}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/temporal_shift.h b/paddle2onnx/mapper/tensor/temporal_shift.h new file mode 100644 index 000000000..d01ffb271 --- /dev/null +++ b/paddle2onnx/mapper/tensor/temporal_shift.h @@ -0,0 +1,41 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class TemporalShiftMapper : public Mapper { + public: + TemporalShiftMapper(const PaddleParser& p, OnnxHelper* helper, + int64_t block_id, int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("data_format", &data_format_); + GetAttr("shift_ratio", &shift_ratio_); + GetAttr("seg_num", &seg_num_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + + private: + int64_t seg_num_; + float shift_ratio_; + std::string data_format_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/tile.cc b/paddle2onnx/mapper/tensor/tile.cc new file mode 100644 index 000000000..97d9c97e2 --- /dev/null +++ b/paddle2onnx/mapper/tensor/tile.cc @@ -0,0 +1,55 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/tile.h" + +namespace paddle2onnx { +REGISTER_MAPPER(tile, TileMapper) + +void TileMapper::Opset7() { + auto x_info = GetInput("X"); + auto out_info = GetOutput("Out"); + + bool has_repeats_tensor = HasInput("RepeatTimes"); + bool has_repeats_tensor_list = HasInput("repeat_times_tensor"); + std::string repeats = ""; + // NOTE(Aurelius84): we need to deprecate this branch in the future. + if (has_repeats_tensor) { + auto repeats_info = GetInput("RepeatTimes"); + repeats = helper_->AutoCast(repeats_info[0].name, repeats_info[0].dtype, + P2ODataType::INT64); + } else if (has_repeats_tensor_list) { + auto repeats_info = GetInput("repeat_times_tensor"); + repeats = helper_->ConcatIndices(repeats_info); + } else if (IsAttrVar("repeat_times")) { + auto repeats_info = GetAttrVar("repeat_times"); + if (repeats_info.size() == 1U) { // repeat_times is a whole Tensor + repeats = helper_->AutoCast(repeats_info[0].name, repeats_info[0].dtype, + P2ODataType::INT64); + } else { // repeat_times is a tensor list + repeats = helper_->ConcatIndices(repeats_info); + } + } else { + std::vector values; + GetAttr("repeat_times", &values); + int64_t nums = values.size(); + for (int64_t i = 0; i < x_info[0].Rank() - nums; i++) { + values.insert(values.begin(), 1); + } + repeats = helper_->Constant(ONNX_NAMESPACE::TensorProto::INT64, values); + } + helper_->MakeNode("Tile", {x_info[0].name, repeats}, {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/tile.h b/paddle2onnx/mapper/tensor/tile.h new file mode 100644 index 000000000..f8a55494d --- /dev/null +++ b/paddle2onnx/mapper/tensor/tile.h @@ -0,0 +1,28 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class TileMapper : public Mapper { + public: + TileMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + void Opset7(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/top_k.cc b/paddle2onnx/mapper/tensor/top_k.cc new file mode 100755 index 000000000..bff09ee60 --- /dev/null +++ b/paddle2onnx/mapper/tensor/top_k.cc @@ -0,0 +1,44 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/top_k.h" + +namespace paddle2onnx { +REGISTER_MAPPER(top_k, TopKMapper) + +void TopKMapper::Opset11() { + auto x_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto indices_info = GetOutput("Indices"); + + std::string k = ""; + if (HasInput("K")) { + auto k_info = GetInput("K"); + k = helper_->AutoCast(k_info[0].name, k_info[0].dtype, P2ODataType::INT64); + if (k_info[0].Rank() == 0) { + k = helper_->Reshape(k, std::vector(1, -1)); + } + } else { + int64_t k_value = 0; + GetAttr("k", &k_value); + k = helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, k_value); + } + auto out_node = helper_->MakeNode("TopK", {x_info[0].name, k}, 2); + helper_->AutoCast(out_node->output(0), output_info[0].name, x_info[0].dtype, + output_info[0].dtype); + helper_->AutoCast(out_node->output(1), indices_info[0].name, + P2ODataType::INT64, indices_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/top_k.h b/paddle2onnx/mapper/tensor/top_k.h new file mode 100644 index 000000000..868c6b356 --- /dev/null +++ b/paddle2onnx/mapper/tensor/top_k.h @@ -0,0 +1,32 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class TopKMapper : public Mapper { + public: + TopKMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + int32_t GetMinOpset(bool verbose) { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; + } + void Opset11(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/top_k_v2.cc b/paddle2onnx/mapper/tensor/top_k_v2.cc new file mode 100755 index 000000000..c41561b6c --- /dev/null +++ b/paddle2onnx/mapper/tensor/top_k_v2.cc @@ -0,0 +1,47 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/top_k_v2.h" + +namespace paddle2onnx { +REGISTER_MAPPER(top_k_v2, TopKV2Mapper) + +void TopKV2Mapper::Opset11() { + auto x_info = GetInput("X"); + auto output_info = GetOutput("Out"); + auto indices_info = GetOutput("Indices"); + + std::string k = ""; + if (HasInput("K")) { + auto k_info = GetInput("K"); + k = helper_->AutoCast(k_info[0].name, k_info[0].dtype, P2ODataType::INT64); + if (k_info[0].Rank() == 0) { + k = helper_->Reshape(k, std::vector(1, -1)); + } + } else { + int64_t k_value = 0; + GetAttr("k", &k_value); + k = helper_->Constant({1}, ONNX_NAMESPACE::TensorProto::INT64, k_value); + } + auto out_node = helper_->MakeNode("TopK", {x_info[0].name, k}, 2); + AddAttribute(out_node, "largest", static_cast(largest_)); + AddAttribute(out_node, "sorted", static_cast(sorted_)); + AddAttribute(out_node, "axis", axis_); + helper_->AutoCast(out_node->output(0), output_info[0].name, x_info[0].dtype, + output_info[0].dtype); + helper_->AutoCast(out_node->output(1), indices_info[0].name, + P2ODataType::INT64, indices_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/top_k_v2.h b/paddle2onnx/mapper/tensor/top_k_v2.h new file mode 100644 index 000000000..1610e28e0 --- /dev/null +++ b/paddle2onnx/mapper/tensor/top_k_v2.h @@ -0,0 +1,41 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class TopKV2Mapper : public Mapper { + public: + TopKV2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("largest", &largest_); + GetAttr("sorted", &sorted_); + GetAttr("axis", &axis_); + } + int32_t GetMinOpset(bool verbose) { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; + } + void Opset11(); + + private: + bool largest_; + bool sorted_; + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/transpose2.cc b/paddle2onnx/mapper/tensor/transpose2.cc new file mode 100644 index 000000000..aa0e9a2b7 --- /dev/null +++ b/paddle2onnx/mapper/tensor/transpose2.cc @@ -0,0 +1,32 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/transpose2.h" + +#include +#include + +namespace paddle2onnx { +REGISTER_MAPPER(transpose2, Transpose2Mapper) + +void Transpose2Mapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + auto node = helper_->MakeNode("Transpose", {input_info[0].name}, + {output_info[0].name}); + AddAttribute(node, "perm", axis_); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/transpose2.h b/paddle2onnx/mapper/tensor/transpose2.h new file mode 100644 index 000000000..25c86fd50 --- /dev/null +++ b/paddle2onnx/mapper/tensor/transpose2.h @@ -0,0 +1,36 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Transpose2Mapper : public Mapper { + public: + Transpose2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + void Opset7(); + + private: + std::vector axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/unique.cc b/paddle2onnx/mapper/tensor/unique.cc new file mode 100644 index 000000000..38e5d1e6b --- /dev/null +++ b/paddle2onnx/mapper/tensor/unique.cc @@ -0,0 +1,49 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/unique.h" + +namespace paddle2onnx { +REGISTER_MAPPER(unique, UniqueMapper) + +int32_t UniqueMapper::GetMinOpset(bool verbose) { + Logger(verbose, 11) << RequireOpset(11) << std::endl; + return 11; +} + +void UniqueMapper::Opset11() { + auto intput_info = GetInput("X"); + auto output_out_info = GetOutput("Out"); + auto output_indices_info = GetOutput("Indices"); + auto output_index_info = GetOutput("Index"); + auto output_counts_info = GetOutput("Counts"); + + std::string out_index_name = "out_index"; + std::string out_indices_name = "out_indices"; + std::string out_counts_name = "out_counts"; + auto node = helper_->MakeNode("Unique", {intput_info[0].name}, + {output_out_info[0].name, out_indices_name, + out_index_name, out_counts_name}); + if (axis_.size()) { + AddAttribute(node, "axis", axis_[0]); + } + helper_->AutoCast(out_index_name, output_index_info[0].name, + P2ODataType::INT64, output_index_info[0].dtype); + helper_->AutoCast(out_indices_name, output_indices_info[0].name, + P2ODataType::INT64, output_indices_info[0].dtype); + helper_->AutoCast(out_counts_name, output_counts_info[0].name, + P2ODataType::INT64, output_counts_info[0].dtype); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/unique.h b/paddle2onnx/mapper/tensor/unique.h new file mode 100644 index 000000000..1049c5c97 --- /dev/null +++ b/paddle2onnx/mapper/tensor/unique.h @@ -0,0 +1,39 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class UniqueMapper : public Mapper { + public: + UniqueMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + GetAttr("dtype", &dtype_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset11(); + + private: + std::vector axis_; + int64_t dtype_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/unsqueeze2.cc b/paddle2onnx/mapper/tensor/unsqueeze2.cc new file mode 100644 index 000000000..ddeba0a1d --- /dev/null +++ b/paddle2onnx/mapper/tensor/unsqueeze2.cc @@ -0,0 +1,94 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/unsqueeze2.h" + +namespace paddle2onnx { +REGISTER_MAPPER(unsqueeze2, Unsqueeze2Mapper) + +int32_t Unsqueeze2Mapper::GetMinOpset(bool verbose) { + if (axes_.size() == 0) { + if (HasInput("AxesTensorList")) { + Logger(verbose, 13) << "While AxisTensorList as input, " + << RequireOpset(13) << std::endl; + return 13; + } else if (HasInput("AxesTensor")) { + auto info = GetInput("AxesTensor"); + if (!IsConstantInput("AxesTensor")) { + Logger(verbose, 13) + << "While AxesTensor as input, and it's not a constant tensor, " + << RequireOpset(13) << std::endl; + return 13; + } else { + return 7; + } + } + } + return 7; +} + +void Unsqueeze2Mapper::Opset7() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::vector axes; + if (axes_.empty()) { + Assert(TryGetInputValue("AxesTensor", &axes), + "While unsqueeze2 has input AxesTensor, it cannot be exported by " + "Paddle2ONNX"); + } else { + axes.assign(axes_.begin(), axes_.end()); + } + for (size_t i = 0; i < axes.size(); ++i) { + if (axes[i] < 0) { + axes[i] = axes[i] + input_info[0].Rank() + i + 1; + } + } + helper_->Unsqueeze(input_info[0].name, output_info[0].name, axes); +} + +void Unsqueeze2Mapper::Opset13() { + auto input_info = GetInput("X"); + auto output_info = GetOutput("Out"); + + std::vector axes; + if (axes_.empty()) { + TryGetInputValue("AxesTensor", &axes); + } else { + axes.assign(axes_.begin(), axes_.end()); + } + for (size_t i = 0; i < axes.size(); ++i) { + if (axes[i] < 0) { + axes[i] = axes[i] + input_info[0].Rank() + i + 1; + } + } + + if (axes.size() > 0) { + helper_->Unsqueeze(input_info[0].name, output_info[0].name, axes); + } else { + std::string axes_node = ""; + if (HasInput("AxesTensorList")) { + auto info = GetInput("AxesTensorList"); + axes_node = helper_->ConcatIndices(info); + } else { + auto info = GetInput("AxesTensor"); + axes_node = + helper_->AutoCast(info[0].name, info[0].dtype, P2ODataType::INT64); + } + helper_->MakeNode("Unsqueeze", {input_info[0].name, axes_node}, + {output_info[0].name}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/unsqueeze2.h b/paddle2onnx/mapper/tensor/unsqueeze2.h new file mode 100644 index 000000000..1d1fe2771 --- /dev/null +++ b/paddle2onnx/mapper/tensor/unsqueeze2.h @@ -0,0 +1,38 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class Unsqueeze2Mapper : public Mapper { + public: + Unsqueeze2Mapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axes", &axes_); + } + int32_t GetMinOpset(bool verbose = false); + void Opset7(); + void Opset13(); + + private: + std::vector axes_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/unstack.cc b/paddle2onnx/mapper/tensor/unstack.cc new file mode 100644 index 000000000..832dc94a3 --- /dev/null +++ b/paddle2onnx/mapper/tensor/unstack.cc @@ -0,0 +1,36 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/unstack.h" + +namespace paddle2onnx { +REGISTER_MAPPER(unstack, UnstackMapper) + +void UnstackMapper::Opset7() { + auto x_info = GetInput("X"); + auto y_info = GetOutput("Y"); + + if (axis_ < 0) { + axis_ = axis_ + x_info[0].Rank(); + } + + auto split_nodes = helper_->Split( + x_info[0].name, std::vector(y_info.size(), 1), axis_); + + for (size_t i = 0; i < split_nodes.size(); ++i) { + helper_->Squeeze(split_nodes[i], y_info[i].name, {axis_}); + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/unstack.h b/paddle2onnx/mapper/tensor/unstack.h new file mode 100644 index 000000000..1ad3d6f0c --- /dev/null +++ b/paddle2onnx/mapper/tensor/unstack.h @@ -0,0 +1,33 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class UnstackMapper : public Mapper { + public: + UnstackMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) { + GetAttr("axis", &axis_); + } + void Opset7(); + + private: + int64_t axis_; +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/where.cc b/paddle2onnx/mapper/tensor/where.cc new file mode 100644 index 000000000..f8adf1614 --- /dev/null +++ b/paddle2onnx/mapper/tensor/where.cc @@ -0,0 +1,31 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/mapper/tensor/where.h" + +namespace paddle2onnx { +REGISTER_MAPPER(where, WhereMapper) + +void WhereMapper::Opset9() { + auto x_info = GetInput("X"); + auto y_info = GetInput("Y"); + auto cond_info = GetInput("Condition"); + auto out_info = GetOutput("Out"); + + helper_->MakeNode("Where", + {cond_info[0].name, x_info[0].name, y_info[0].name}, + {out_info[0].name}); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/mapper/tensor/where.h b/paddle2onnx/mapper/tensor/where.h new file mode 100644 index 000000000..5f64303f7 --- /dev/null +++ b/paddle2onnx/mapper/tensor/where.h @@ -0,0 +1,36 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include + +#include "paddle2onnx/mapper/mapper.h" + +namespace paddle2onnx { + +class WhereMapper : public Mapper { + public: + WhereMapper(const PaddleParser& p, OnnxHelper* helper, int64_t block_id, + int64_t op_id) + : Mapper(p, helper, block_id, op_id) {} + + int32_t GetMinOpset(bool verbose = false) { + Logger(verbose, 9) << RequireOpset(9) << std::endl; + return 9; + } + void Opset9(); +}; + +} // namespace paddle2onnx diff --git a/paddle2onnx/mappers_registry.h.in b/paddle2onnx/mappers_registry.h.in new file mode 100755 index 000000000..5387f8ab1 --- /dev/null +++ b/paddle2onnx/mappers_registry.h.in @@ -0,0 +1,214 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#pragma once + +// If you want to use the paddle2onnx static library, add the +// registration logic here synchronously each time you add a new op. +#ifndef WITH_PADDLE2ONNX_STATIC_INTERNAL +#cmakedefine WITH_PADDLE2ONNX_STATIC_INTERNAL +#endif + +#if defined(WITH_PADDLE2ONNX_STATIC_INTERNAL) +#if (!defined(WITH_PADDLE2ONNX_STATIC_INTERNAL_AT_COMPILING)) + +#if defined(_WIN32) +#define UNUSED +#define __builtin_expect(EXP, C) (EXP) +#else +#define UNUSED __attribute__((unused)) +#endif + +#define USE_P2O_MAPPER(op_name, class_name) \ + namespace paddle2onnx { \ + extern int Touch##op_name##class_name(); \ + int op_name##__registry__ UNUSED = Touch##op_name##class_name(); \ + } + +USE_P2O_MAPPER(quantize_linear, QuantizeLinearMapper) +USE_P2O_MAPPER(dequantize_linear, DequantizeLinearMapper) +USE_P2O_MAPPER(batch_norm, BatchNormMapper) +USE_P2O_MAPPER(dropout, DropoutMapper) +USE_P2O_MAPPER(layer_norm, LayerNormMapper) +USE_P2O_MAPPER(rnn, RnnMapper) +USE_P2O_MAPPER(softmax_with_cross_entropy, SoftmaxCrossEntropyLossMapper) +USE_P2O_MAPPER(affine_channel, AffineChannelMapper) +USE_P2O_MAPPER(conv3d, Conv3dMapper) +USE_P2O_MAPPER(conv2d_transpose, Conv2dTransposeMapper) +USE_P2O_MAPPER(depthwise_conv2d_transpose, Conv2dTransposeMapper) +USE_P2O_MAPPER(conv2d, Conv2dMapper) +USE_P2O_MAPPER(depthwise_conv2d, Conv2dMapper) +USE_P2O_MAPPER(pool3d, Pool3dMapper) +USE_P2O_MAPPER(max_pool3d_with_index, Pool3dMapper) +USE_P2O_MAPPER(instance_norm, InstanceNormMapper) +USE_P2O_MAPPER(pool2d, Pool2dMapper) +USE_P2O_MAPPER(max_pool2d_with_index, Pool2dMapper) +USE_P2O_MAPPER(shape, ShapeMapper) +USE_P2O_MAPPER(bilinear_interp, InterpolateMapper) +USE_P2O_MAPPER(bilinear_interp_v2, InterpolateMapper) +USE_P2O_MAPPER(nearest_interp_v2, InterpolateMapper) +USE_P2O_MAPPER(bicubic_interp_v2, InterpolateMapper) +USE_P2O_MAPPER(linear_interp_v2, InterpolateMapper) +USE_P2O_MAPPER(trilinear_interp_v2, InterpolateMapper) +USE_P2O_MAPPER(data_norm, DataNormMapper) +USE_P2O_MAPPER(norm, NormMapper) +USE_P2O_MAPPER(group_norm, GroupNormMapper) +USE_P2O_MAPPER(pad3d, Pad3DMapper) +USE_P2O_MAPPER(relu, ActivationMapper) +USE_P2O_MAPPER(relu6, Relu6Mapper) +USE_P2O_MAPPER(tanh, ActivationMapper) +USE_P2O_MAPPER(log, ActivationMapper) +USE_P2O_MAPPER(sigmoid, ActivationMapper) +USE_P2O_MAPPER(sqrt, ActivationMapper) +USE_P2O_MAPPER(softplus, ActivationMapper) +USE_P2O_MAPPER(exp, ActivationMapper) +USE_P2O_MAPPER(floor, ActivationMapper) +USE_P2O_MAPPER(cos, ActivationMapper) +USE_P2O_MAPPER(sin, ActivationMapper) +USE_P2O_MAPPER(round, ActivationMapper) +USE_P2O_MAPPER(abs, ActivationMapper) +USE_P2O_MAPPER(acos, ActivationMapper) +USE_P2O_MAPPER(asin, ActivationMapper) +USE_P2O_MAPPER(atan, ActivationMapper) +USE_P2O_MAPPER(sinh, ActivationMapper) +USE_P2O_MAPPER(tan, ActivationMapper) +USE_P2O_MAPPER(ceil, ActivationMapper) +USE_P2O_MAPPER(cosh, ActivationMapper) +USE_P2O_MAPPER(softsign, ActivationMapper) +USE_P2O_MAPPER(sign, ActivationMapper) +USE_P2O_MAPPER(erf, ActivationMapper) +USE_P2O_MAPPER(reciprocal, ActivationMapper) +USE_P2O_MAPPER(leaky_relu, LeakyReluMapper) +USE_P2O_MAPPER(gelu, GeluMapper) +USE_P2O_MAPPER(selu, SeluMapper) +USE_P2O_MAPPER(prelu, PReluMapper) +USE_P2O_MAPPER(hard_sigmoid, HardSigmoidMapper) +USE_P2O_MAPPER(swish, SwishMapper) +USE_P2O_MAPPER(hard_swish, HardSwishMapper) +USE_P2O_MAPPER(softmax, SoftMaxMapper) +USE_P2O_MAPPER(brelu, BReluMapper) +USE_P2O_MAPPER(elu, EluMapper) +USE_P2O_MAPPER(hard_shrink, HardShrinkMapper) +USE_P2O_MAPPER(softshrink, SoftShrinkMapper) +USE_P2O_MAPPER(mish, MishMapper) +USE_P2O_MAPPER(square, SquareMapper) +USE_P2O_MAPPER(size, SizeMapper) +USE_P2O_MAPPER(rsqrt, RsqrtMapper) +USE_P2O_MAPPER(logsigmoid, LogSigmoidMapper) +USE_P2O_MAPPER(log_softmax, LogSoftmaxMapper) +USE_P2O_MAPPER(tanh_shrink, TanhShrinkMapper) +USE_P2O_MAPPER(thresholded_relu, ThresholdedReluMapper) +USE_P2O_MAPPER(log1p, Log1PMapper) +USE_P2O_MAPPER(log2, Log2Mapper) +USE_P2O_MAPPER(log10, Log10Mapper) +USE_P2O_MAPPER(silu, SiluMapper) +USE_P2O_MAPPER(elementwise_add, ElementwiseMapper) +USE_P2O_MAPPER(elementwise_sub, ElementwiseMapper) +USE_P2O_MAPPER(elementwise_div, ElementwiseMapper) +USE_P2O_MAPPER(elementwise_mul, ElementwiseMapper) +USE_P2O_MAPPER(elementwise_min, ElementwiseMapper) +USE_P2O_MAPPER(elementwise_max, ElementwiseMapper) +USE_P2O_MAPPER(elementwise_pow, ElementwiseMapper) +USE_P2O_MAPPER(elementwise_mod, ElementWiseModMapper) +USE_P2O_MAPPER(elementwise_floordiv, ElementWiseFloordivMapper) +USE_P2O_MAPPER(flatten2, Flatten2Mapper) +USE_P2O_MAPPER(squeeze2, Squeeze2Mapper) +USE_P2O_MAPPER(clip, ClipMapper) +USE_P2O_MAPPER(pixel_shuffle, PixelShuffleMapper) +USE_P2O_MAPPER(one_hot_v2, OneHotV2Mapper) +USE_P2O_MAPPER(expand_v2, ExpandV2Mapper) +USE_P2O_MAPPER(cumsum, CumsumMapper) +USE_P2O_MAPPER(dot, DotMapper) +USE_P2O_MAPPER(less_than, LessThanMapper) +USE_P2O_MAPPER(reshape2, Reshape2Mapper) +USE_P2O_MAPPER(not_equal, NotEqualMapper) +USE_P2O_MAPPER(arg_min, ArgMinMapper) +USE_P2O_MAPPER(matmul_v2, MatmulV2Mapper) +USE_P2O_MAPPER(greater_equal, GreaterEqualMapper) +USE_P2O_MAPPER(scale, ScaleMapper) +USE_P2O_MAPPER(expand, ExpandMapper) +USE_P2O_MAPPER(dist, DistMapper) +USE_P2O_MAPPER(expand_as_v2, ExpandAsMapper) +USE_P2O_MAPPER(p_norm, PNormMapper) +USE_P2O_MAPPER(split, SplitMapper) +USE_P2O_MAPPER(mean, MeanMapper) +USE_P2O_MAPPER(set_value, SetValueMapper) +USE_P2O_MAPPER(transpose2, Transpose2Mapper) +USE_P2O_MAPPER(temporal_shift, TemporalShiftMapper) +USE_P2O_MAPPER(mul, MulMapper) +USE_P2O_MAPPER(flip, FlipMapper) +USE_P2O_MAPPER(bmm, BmmMapper) +USE_P2O_MAPPER(index_select, IndexSelectMapper) +USE_P2O_MAPPER(stack, StackMapper) +USE_P2O_MAPPER(gather_nd, GatherNdMapper) +USE_P2O_MAPPER(lookup_table, LookupTableMapper) +USE_P2O_MAPPER(lookup_table_v2, LookupTableMapper) +USE_P2O_MAPPER(meshgrid, MeshgridMapper) +USE_P2O_MAPPER(scatter, ScatterMapper) +USE_P2O_MAPPER(assign, AssignMapper) +USE_P2O_MAPPER(share_data, AssignMapper) +USE_P2O_MAPPER(scatter_nd_add, ScatterNdAddMapper) +USE_P2O_MAPPER(top_k_v2, TopKV2Mapper) +USE_P2O_MAPPER(range, RangeMapper) +USE_P2O_MAPPER(logical_not, LogicalNotMapper) +USE_P2O_MAPPER(linspace, LinspaceMapper) +USE_P2O_MAPPER(eye, EyeMapper) +USE_P2O_MAPPER(where, WhereMapper) +USE_P2O_MAPPER(unique, UniqueMapper) +USE_P2O_MAPPER(assign_value, AssignValueMapper) +USE_P2O_MAPPER(unstack, UnstackMapper) +USE_P2O_MAPPER(fill_any_like, FillLikeMapper) +USE_P2O_MAPPER(fill_zeros_like, FillLikeMapper) +USE_P2O_MAPPER(partial_sum, PartialOpsMapper) +USE_P2O_MAPPER(partial_concat, PartialOpsMapper) +USE_P2O_MAPPER(top_k, TopKMapper) +USE_P2O_MAPPER(grid_sampler, GridSamplerMapper) +USE_P2O_MAPPER(sum, AddNMapper) +USE_P2O_MAPPER(unsqueeze2, Unsqueeze2Mapper) +USE_P2O_MAPPER(arg_max, ArgMaxMapper) +USE_P2O_MAPPER(cast, CastMapper) +USE_P2O_MAPPER(matmul, MatmulMapper) +USE_P2O_MAPPER(gather, GatherMapper) +USE_P2O_MAPPER(fill_constant, FillConstantMapper) +USE_P2O_MAPPER(take_along_axis, TakeAlongAxisMapper) +USE_P2O_MAPPER(greater_than, GreaterThanMapper) +USE_P2O_MAPPER(argsort, ArgsortMapper) +USE_P2O_MAPPER(pow, PowMapper) +USE_P2O_MAPPER(tile, TileMapper) +USE_P2O_MAPPER(logical_and, LogicalOpMapper) +USE_P2O_MAPPER(logical_or, LogicalOpMapper) +USE_P2O_MAPPER(logical_xor, LogicalOpMapper) +USE_P2O_MAPPER(fill_constant_batch_size_like, FillConstantBatchSizeLikeMapper) +USE_P2O_MAPPER(slice, SliceMapper) +USE_P2O_MAPPER(strided_slice, SliceMapper) +USE_P2O_MAPPER(where_index, NonZeroMapper) +USE_P2O_MAPPER(reduce_mean, ReduceMapper) +USE_P2O_MAPPER(reduce_sum, ReduceMapper) +USE_P2O_MAPPER(reduce_min, ReduceMapper) +USE_P2O_MAPPER(reduce_max, ReduceMapper) +USE_P2O_MAPPER(reduce_prod, ReduceMapper) +USE_P2O_MAPPER(logsumexp, ReduceMapper) +USE_P2O_MAPPER(reduce_all, ReduceMapper) +USE_P2O_MAPPER(reduce_any, ReduceMapper) +USE_P2O_MAPPER(concat, ConcatMapper) +USE_P2O_MAPPER(less_equal, LessEqualMapper) +USE_P2O_MAPPER(gaussian_random, GaussianRandomMapper) +USE_P2O_MAPPER(flatten_contiguous_range, FlattenMapper) +USE_P2O_MAPPER(equal, EqualMapper) +USE_P2O_MAPPER(yolo_box, YoloBoxMapper) +USE_P2O_MAPPER(multiclass_nms3, NMSMapper) +USE_P2O_MAPPER(roi_align, RoiAlignMapper) +USE_P2O_MAPPER(index_sample, IndexSampleMapper) +USE_P2O_MAPPER(mv, MvMapper) +#endif // WITH_PADDLE2ONNX_STATIC_INTERNAL_AT_COMPILING +#endif // WITH_PADDLE2ONNX_STATIC_INTERNAL diff --git a/paddle2onnx/onnx_reader.cc b/paddle2onnx/onnx_reader.cc new file mode 100644 index 000000000..0cf1160b1 --- /dev/null +++ b/paddle2onnx/onnx_reader.cc @@ -0,0 +1,124 @@ +#include +#include +#include +#include +#include +#include "paddle2onnx/converter.h" +#include "paddle2onnx/mapper/exporter.h" +#include "paddle2onnx/optimizer/paddle2onnx_optimizer.h" + +namespace paddle2onnx { + +int32_t GetDataTypeFromOnnx(int dtype) { + if (dtype == ONNX_NAMESPACE::TensorProto::FLOAT) { + return 0; + } else if (dtype == ONNX_NAMESPACE::TensorProto::DOUBLE) { + return 1; + } else if (dtype == ONNX_NAMESPACE::TensorProto::UINT8) { + return 2; + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT8) { + return 3; + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT32) { + return 4; + } else if (dtype == ONNX_NAMESPACE::TensorProto::INT64) { + return 5; + } else if (dtype == ONNX_NAMESPACE::TensorProto::FLOAT16) { + return 6; + } + Assert(false, "Only support float/double/uint8/int32/int64/float16 in OnnxReader."); + return -1; +} + +OnnxReader::OnnxReader(const char* model_buffer, int buffer_size) { + ONNX_NAMESPACE::ModelProto model; + std::string content(model_buffer, model_buffer + buffer_size); + model.ParseFromString(content); + + std::set initializer_names; + for (auto i = 0; i < model.graph().initializer_size(); ++i) { + initializer_names.insert(model.graph().initializer(i).name()); + } + + num_outputs = model.graph().output_size(); + Assert(num_outputs <= 100, + "The number of outputs is exceed 100, unexpected situation."); + + num_inputs = 0; + for (int i = 0; i < model.graph().input_size(); ++i) { + if (initializer_names.find(model.graph().input(i).name()) != + initializer_names.end()) { + continue; + } + num_inputs += 1; + Assert(num_inputs <= 100, + "The number of inputs is exceed 100, unexpected situation."); + + inputs[i].dtype = + GetDataTypeFromOnnx(model.graph().input(i).type().tensor_type().elem_type()); + std::strcpy(inputs[i].name, model.graph().input(i).name().c_str()); + auto& shape = model.graph().input(i).type().tensor_type().shape(); + int dim_size = shape.dim_size(); + inputs[i].rank = dim_size; + inputs[i].shape = new int64_t[dim_size]; + for (int j = 0; j < dim_size; ++j) { + inputs[i].shape[j] = static_cast(shape.dim(j).dim_value()); + if (inputs[i].shape[j] <= 0) { + inputs[i].shape[j] = -1; + } + } + } + + for (int i = 0; i < num_outputs; ++i) { + std::strcpy(outputs[i].name, model.graph().output(i).name().c_str()); + outputs[i].dtype = + GetDataTypeFromOnnx(model.graph().output(i).type().tensor_type().elem_type()); + auto& shape = model.graph().output(i).type().tensor_type().shape(); + int dim_size = shape.dim_size(); + outputs[i].rank = dim_size; + outputs[i].shape = new int64_t[dim_size]; + for (int j = 0; j < dim_size; ++j) { + outputs[i].shape[j] = static_cast(shape.dim(j).dim_value()); + if (outputs[i].shape[j] <= 0) { + outputs[i].shape[j] = -1; + } + } + } +} + +bool RemoveMultiClassNMS(const char* model_buffer, int buffer_size, + char** out_model, int* out_model_size) { + ONNX_NAMESPACE::ModelProto model; + std::string content(model_buffer, model_buffer + buffer_size); + model.ParseFromString(content); + auto* graph = model.mutable_graph(); + int nms_index = -1; + std::vector inputs; + for (int i = 0; i < graph->node_size(); ++i) { + if (graph->node(i).op_type() == "MultiClassNMS") { + nms_index = -1; + for (int j = 0; j < graph->node(i).input_size(); ++j) { + inputs.push_back(graph->node(i).input(j)); + } + break; + } + } + graph->clear_output(); + for (size_t i = 0; i < inputs.size(); ++i) { + auto output = graph->add_output(); + output->set_name(inputs[i]); + auto type_proto = output->mutable_type(); + auto tensor_type_proto = type_proto->mutable_tensor_type(); + tensor_type_proto->set_elem_type(ONNX_NAMESPACE::TensorProto::FLOAT); + auto shape = tensor_type_proto->mutable_shape(); + shape->add_dim()->set_dim_value(-1); + shape->add_dim()->set_dim_value(-1); + shape->add_dim()->set_dim_value(-1); + } + auto optimized_model = ONNX_NAMESPACE::optimization::OptimizeOnnxModel(model); + *out_model_size = optimized_model.ByteSizeLong(); + *out_model = new char[*out_model_size]; + optimized_model.SerializeToArray(*out_model, *out_model_size); + return true; +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/optimize.py b/paddle2onnx/optimize.py new file mode 100755 index 000000000..a4bf35b6e --- /dev/null +++ b/paddle2onnx/optimize.py @@ -0,0 +1,46 @@ +# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from __future__ import absolute_import + +import argparse +import sys +from paddle2onnx.utils import logging + + +def parse_arguments(): + parser = argparse.ArgumentParser() + parser.add_argument( + '--input_model', + required=True, + help='The path of input onnx model file.') + parser.add_argument( + '--output_model', + required=True, + help='The file path to write optimized onnx model file.') + parser.add_argument( + '--input_shape_dict', + default="", + help="The shape infos of inputs, e.g --input_shape_dict=\"{'image': [1, 3, 608, 608], 'scale_factor': [1, 2]}\"" + ) + return parser.parse_args() + + +if __name__ == '__main__': + args = parse_arguments() + import paddle2onnx.paddle2onnx_cpp2py_export as c_p2o + shape_dict = {} + if args.input_shape_dict != "": + shape_dict = eval(args.input_shape_dict) + c_p2o.optimize(args.input_model, args.output_model, shape_dict) + logging.info("Model optmized, saved in {}.".format(args.output_model)) diff --git a/paddle2onnx/optimizer/convert_fp32_to_fp16.cc b/paddle2onnx/optimizer/convert_fp32_to_fp16.cc new file mode 100644 index 000000000..71a92cc7f --- /dev/null +++ b/paddle2onnx/optimizer/convert_fp32_to_fp16.cc @@ -0,0 +1,843 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/optimizer/convert_fp32_to_fp16.h" +#include "paddle2onnx/utils/utils.h" + +namespace paddle2onnx { + +void ConvertFp32ToFp16::ConvertValToFloat16(float val, uint16_t* x) { + // Conversion routine adapted from + // http://stackoverflow.com/questions/1659440/32-bit-to-16-bit-floating-point-conversion + Bits v, s; + v.f = val; + uint32_t sign = v.si & sigN; + v.si ^= sign; + sign >>= shiftSign; // logical shift + s.si = mulN; + s.si = s.f * v.f; // correct subnormals + v.si ^= (s.si ^ v.si) & -(minN > v.si); + v.si ^= (infN ^ v.si) & -((infN > v.si) & (v.si > maxN)); + v.si ^= (nanN ^ v.si) & -((nanN > v.si) & (v.si > infN)); + v.ui >>= shift; // logical shift + v.si ^= ((v.si - maxD) ^ v.si) & -(v.si > maxC); + v.si ^= ((v.si - minD) ^ v.si) & -(v.si > subC); + *x = v.ui | sign; +} + +void ConvertFp32ToFp16::SortNodes(ONNX_NAMESPACE::ModelProto* model) { + // return the topo sort of nodes; + // 1. Get i2o_mapper and constant_nodes, i2o_mapper means the node map to its + // all output nodes, constant_nodes save all constant nodes. + // 2. Nodes without output nodes are first saved to new_nodes, and then + // cyclically delete the records of the node in i2o_mapper items, and nodes + // whose output nodes are empty are also saved to new_nodes in turn. + // 3. Store constant nodes in new_nodes. + // 4. Reverse new_nodes, then assign to nodes. + auto graph = model->mutable_graph(); + + // means the node map to its all output nodes + std::map> i2o_mapper; + // constant_nodes save all constant nodes. + std::vector constant_nodes; + // name map to its node + std::map name2node_mapper; + for (int64_t i = 0; i < graph->node_size(); i++) { + auto node = graph->mutable_node(i); + if (node->op_type() == "Constant") { + constant_nodes.push_back(*node); + continue; + } + name2node_mapper[node->name()] = *node; + for (int64_t in_index = 0; in_index < node->input_size(); in_index++) { + std::string input = node->input(in_index); + for (int64_t j = 0; j < graph->node_size(); j++) { + if (i == j) { + continue; + } + auto input_node = graph->mutable_node(j); + if (input_node->op_type() == "Constant") { + continue; + } + for (int64_t out_index = 0; out_index < input_node->output_size(); + out_index++) { + // find the pre node + if (input == input_node->output(out_index)) { + // does not find other input node before + if (i2o_mapper.find(input_node->name()) == i2o_mapper.end()) { + i2o_mapper[input_node->name()] = {node->name()}; + } else { + auto iter = + std::find(i2o_mapper[input_node->name()].begin(), + i2o_mapper[input_node->name()].end(), node->name()); + // not been found before + if (iter == i2o_mapper[input_node->name()].end()) { + i2o_mapper[input_node->name()].push_back(node->name()); + } + } + } + } + } + } + } + + // Store topologically sorted nodes + std::vector new_nodes; + + for (int64_t i = 0; i < graph->node_size(); i++) { + auto node = graph->mutable_node(i); + auto node_name = node->name(); + if (node->op_type() == "Constant") { + continue; + } + // Store those nodes that have no output first. + if (i2o_mapper.find(node_name) == i2o_mapper.end()) { + new_nodes.push_back(*node); + } + } + + int64_t index = 0; + while (index < new_nodes.size()) { + auto current_node = new_nodes[index]; + std::string current_node_name = current_node.name(); + for (auto iter = i2o_mapper.begin(); iter != i2o_mapper.end(); iter++) { + std::string input_node_name = iter->first; + std::vector* output_nodes_name = &iter->second; + if (output_nodes_name->empty()) { + continue; + } + auto in_inter = std::find(output_nodes_name->begin(), + output_nodes_name->end(), current_node_name); + // if find the pre node, erase current node name in i2o_mapper + if (in_inter != output_nodes_name->end()) { + output_nodes_name->erase(in_inter); + } + // if find on node that have no output, store it + if (output_nodes_name->empty()) { + new_nodes.push_back(name2node_mapper[input_node_name]); + } + } + index++; + } + + // store all constant node finally + for (auto& node : constant_nodes) { + new_nodes.push_back(node); + } + + // reverse the sorted nodes + std::reverse(new_nodes.begin(), new_nodes.end()); + + Assert(model->mutable_graph()->node_size() == new_nodes.size(), + "The number of nodes after topological sorting is not equal to the " + "number before sorting"); + // copy all new_nodes to graph + for (int64_t i = 0; i < graph->node_size(); i++) { + auto node = graph->mutable_node(i); + node->CopyFrom(new_nodes[i]); + } +} + +std::string ConvertFp32ToFp16::GenName(const std::string& prefix) { + int64_t name_index = 0; + auto iter = name_index_mapper.find(prefix); + if (iter != name_index_mapper.end()) { + name_index = iter->second; + name_index_mapper[prefix]++; + } else { + name_index_mapper[prefix] = 1; + } + return prefix + std::to_string(name_index); +} + +ONNX_NAMESPACE::ValueInfoProto* ConvertFp32ToFp16::MakeValueInfoFromTensor( + const ONNX_NAMESPACE::TensorProto& tensor) { + ONNX_NAMESPACE::ValueInfoProto* value_info = + new ONNX_NAMESPACE::ValueInfoProto(); + value_info->set_name(tensor.name()); + auto type_proto = value_info->mutable_type(); + auto tensor_type_proto = type_proto->mutable_tensor_type(); + tensor_type_proto->set_elem_type(tensor.data_type()); // TODO + auto shape = tensor_type_proto->mutable_shape(); + for (auto i = 0; i < tensor.dims_size(); i++) { + auto dim = tensor.dims(i); + if (dim < 0) { + auto dynamic_dim_name = GenName("DynamicDimension"); + shape->add_dim()->set_dim_param(dynamic_dim_name); + } else { + shape->add_dim()->set_dim_value(dim); + } + } + return value_info; +} + +ONNX_NAMESPACE::NodeProto* ConvertFp32ToFp16::MakeCastNode( + const std::string& op_name, const std::vector& inputs, + const std::vector& outputs, int32_t to_dtype) { + ONNX_NAMESPACE::NodeProto* node = new ONNX_NAMESPACE::NodeProto(); + node->set_name(op_name); + node->set_op_type("Cast"); + for (size_t i = 0; i < inputs.size(); ++i) { + node->add_input(inputs[i]); + } + for (size_t i = 0; i < outputs.size(); ++i) { + node->add_output(outputs[i]); + } + auto attr = node->add_attribute(); + attr->set_name("to"); + attr->set_i(static_cast(to_dtype)); + attr->set_type(ONNX_NAMESPACE::AttributeProto::INT); + return node; +} + +bool ConvertFp32ToFp16::GetTensorValue( + const ONNX_NAMESPACE::TensorProto& tensor, std::vector* value) { + auto dtype = tensor.data_type(); + if (dtype != ONNX_NAMESPACE::TensorProto::FLOAT) { + return false; + } + std::vector shape; + for (int64_t i = 0; i < tensor.dims_size(); i++) { + shape.push_back(tensor.dims(i)); + } + int64_t nums = 1; + for (auto& i : shape) nums *= i; + value->resize(nums); + memcpy(value->data(), tensor.raw_data().data(), nums * sizeof(float)); + return value->size(); +} + +// When the value of a tensor is greater than 10000, it is reserved as FP32 and +// not converted. +bool ConvertFp32ToFp16::KeepNodeType(ONNX_NAMESPACE::NodeProto* node) { + auto KeepType = [=](const ONNX_NAMESPACE::TensorProto& tensor) { + std::vector fp32_val; + GetTensorValue(tensor, &fp32_val); + for (auto i = 0; i < fp32_val.size(); i++) { + if (fp32_val[i] > 10000) { + return true; + } + } + return false; + }; + + for (auto attr_index = 0; attr_index < node->attribute_size(); attr_index++) { + auto attr = node->attribute(attr_index); + if (attr.has_t() && KeepType(attr.t())) { + return true; + } + for (auto t_index = 0; t_index < attr.tensors_size(); t_index++) { + if (KeepType(attr.tensors(t_index))) { + return true; + } + } + } + return false; +} + +void ConvertFp32ToFp16::ConvertTensorFloatToFloat16( + ONNX_NAMESPACE::TensorProto* tensor) { + if (tensor->data_type() == ONNX_NAMESPACE::TensorProto::FLOAT) { + if (tensor->float_data_size()) { + Assert(false, "No implemented! Please raise an issue to us."); + } + if (tensor->has_raw_data()) { + std::vector fp32_val; + GetTensorValue(*tensor, &fp32_val); + if (fp32_val.empty()) { + return; + } + converted_attr++; + tensor->set_data_type(ONNX_NAMESPACE::TensorProto::FLOAT16); + + std::vector fp16_val(fp32_val.size(), 0); + + float pos_min_val = max_finite_val_; + float pos_max_val = min_positive_val_; + float neg_min_val = -1 * max_finite_val_; + float neg_max_val = -1 * min_positive_val_; + + for (auto i = 0; i < fp32_val.size(); i++) { + if (0 < fp32_val[i] && fp32_val[i] < min_positive_val_) { + if (fp32_val[i] < pos_min_val) { + pos_min_val = fp32_val[i]; + } + fp32_val[i] = min_positive_val_; + } else if (0 > fp32_val[i] && fp32_val[i] > -1 * min_positive_val_) { + if (fp32_val[i] > neg_min_val) { + neg_min_val = fp32_val[i]; + } + fp32_val[i] = -1 * min_positive_val_; + } else if (fp32_val[i] > max_finite_val_) { + if (fp32_val[i] > pos_max_val) { + pos_max_val = fp32_val[i]; + } + fp32_val[i] = max_finite_val_; + } else if (fp32_val[i] < -1 * max_finite_val_) { + if (fp32_val[i] < neg_max_val) { + neg_max_val = fp32_val[i]; + } + fp32_val[i] = -1 * max_finite_val_; + } + ConvertValToFloat16(fp32_val[i], &fp16_val[i]); + } + if (pos_min_val < max_finite_val_ - 1) { + P2OLogger() << "[Info] the float32 number: " << pos_min_val + << " will be truncated to: " << min_positive_val_ + << std::endl; + } + if (pos_max_val > min_positive_val_ + 1) { + P2OLogger() << "[Info] the float32 number: " << pos_max_val + << " will be truncated to: " << max_finite_val_ + << std::endl; + } + if (neg_min_val > -1 * max_finite_val_ + 1) { + P2OLogger() << "[Info] the float32 number: " << neg_min_val + << " will be truncated to: " << -1 * min_positive_val_ + << std::endl; + } + if (neg_max_val < -1 * min_positive_val_ - 1) { + P2OLogger() << "[Info] the float32 number: " << neg_max_val + << " will be truncated to: " << -1 * max_finite_val_ + << std::endl; + } + tensor->set_raw_data(std::string((const char*)(fp16_val.data()), + fp16_val.size() * sizeof(uint16_t))); + } + } +} + +// return if the next node of name is Cast and its attr type is dtype. +bool ConvertFp32ToFp16::CastedTo(const std::string& name, + ONNX_NAMESPACE::ModelProto& model, + int64_t dtype) { + auto graph = model.mutable_graph(); + std::vector next_nodes; + for (auto i = 0; i < graph->node_size(); i++) { + auto n = graph->mutable_node(i); + for (auto i_index = 0; i_index < n->input_size(); i_index++) { + std::string input = n->input(i_index); + if (name == input) { + next_nodes.push_back(n); + } + } + } + bool casted = false; + for (auto node : next_nodes) { + if (node->op_type() == "Cast") { + for (auto attr_index = 0; attr_index < node->attribute_size(); + attr_index++) { + if (node->attribute(attr_index).has_i() && + node->attribute(attr_index).i() == dtype) { + casted = true; + break; + } + } + } + } + return casted; +} + +// return if the pre node of name is Cast and its attr type is dtype. +bool ConvertFp32ToFp16::CastedFrom(const std::string& name, + ONNX_NAMESPACE::ModelProto& model, + int64_t dtype) { + auto graph = model.mutable_graph(); + std::vector pre_nodes; + for (auto i = 0; i < graph->node_size(); i++) { + auto n = graph->mutable_node(i); + for (auto o_index = 0; o_index < n->output_size(); o_index++) { + std::string output = n->output(o_index); + if (name == output) { + pre_nodes.push_back(n); + } + } + } + bool casted = false; + for (auto node : pre_nodes) { + if (node->op_type() == "Cast") { + for (auto attr_index = 0; attr_index < node->attribute_size(); + attr_index++) { + if (node->attribute(attr_index).has_i() && + node->attribute(attr_index).i() == dtype) { + casted = true; + break; + } + } + } + } + return casted; +} + +// return if the name is the input of DEFAULT_OP_BLOCK_LIST +bool ConvertFp32ToFp16::IsInputOfOpBlock(const std::string& name, + ONNX_NAMESPACE::ModelProto& model) { + auto graph = model.mutable_graph(); + for (auto i = 0; i < graph->node_size(); i++) { + auto n = graph->mutable_node(i); + if (std::find(op_block_list_.begin(), op_block_list_.end(), n->op_type()) == + op_block_list_.end()) { + continue; + } + + for (auto i_index = 0; i_index < n->input_size(); i_index++) { + std::string input = n->input(i_index); + if (name == input) { + return true; + } + } + } + return false; +} + +bool ConvertFp32ToFp16::IsOutputOfOpBlockAndFP32Out( + const std::string& name, ONNX_NAMESPACE::ModelProto& model) { + auto graph = model.mutable_graph(); + for (auto i = 0; i < graph->node_size(); i++) { + auto n = graph->mutable_node(i); + if (std::find(op_block_list_.begin(), op_block_list_.end(), n->op_type()) == + op_block_list_.end() && + std::find(fp32_output_op_list.begin(), fp32_output_op_list.end(), + n->op_type()) == fp32_output_op_list.end()) { + continue; + } + for (auto o_index = 0; o_index < n->output_size(); o_index++) { + std::string output = n->output(o_index); + if (name == output) { + return true; + } + } + } + return false; +} + +void ConvertFp32ToFp16::KeepIoType(ONNX_NAMESPACE::ModelProto* model) { + auto graph = model->mutable_graph(); + for (auto i = 0; i < graph->input_size(); i++) { + auto input = graph->input(i); + if (input.type().tensor_type().elem_type() == + ONNX_NAMESPACE::TensorProto::FLOAT) { + // if the pre node is cast, and it is cast to float16, we do not need add + // Cast OP any more + if (CastedTo(input.name(), *model, 10)) { + graph_io_to_skip.push_back(input.name()); + continue; + } + std::string output_name = "graph_input_cast_" + std::to_string(i); + name_mapping[input.name()] = output_name; + graph_io_to_skip.push_back(input.name()); + std::string node_name = "graph_input_cast" + std::to_string(i); + auto new_value_info = graph->add_value_info(); + new_value_info->CopyFrom(input); + new_value_info->set_name(output_name); + new_value_info->mutable_type()->mutable_tensor_type()->set_elem_type( + ONNX_NAMESPACE::TensorProto::FLOAT16); + auto new_node = + MakeCastNode(node_name, {input.name()}, {output_name}, 10); + *(graph->add_node()) = (*new_node); + value_info_list.push_back(new_value_info); + io_casts.push_back(node_name); + } + } + for (auto i = 0; i < graph->output_size(); i++) { + auto output = graph->output(i); + if (output.type().tensor_type().elem_type() == + ONNX_NAMESPACE::TensorProto::FLOAT) { + // if the next node is cast, and it is cast to float, we do not need add + // Cast OP any more + if (CastedFrom(output.name(), *model, 1)) { + graph_io_to_skip.push_back(output.name()); + continue; + } + std::string output_name = "graph_output_cast_" + std::to_string(i); + name_mapping[output.name()] = output_name; + graph_io_to_skip.push_back(output.name()); + std::string node_name = "graph_output_cast" + std::to_string(i); + auto new_value_info = graph->add_value_info(); + new_value_info->CopyFrom(output); + new_value_info->set_name(output_name); + new_value_info->mutable_type()->mutable_tensor_type()->set_elem_type( + ONNX_NAMESPACE::TensorProto::FLOAT16); + auto new_node = + MakeCastNode(node_name, {output_name}, {output.name()}, 1); + *(graph->add_node()) = (*new_node); + value_info_list.push_back(new_value_info); + io_casts.push_back(node_name); + } + } +} + +void ConvertFp32ToFp16::ConvertAttribute(ONNX_NAMESPACE::ModelProto* model) { + proto_node new_node(*model); + queue.push_back(new_node); + + while (queue.size()) { + next_level.clear(); + for (auto q : queue) { + // process model proto + if (q.node_type == "model" && model->has_graph()) { + proto_node new_node(model->mutable_graph()); + next_level.push_back(new_node); + } + // process graph proto + if (q.node_type == "graph") { + for (auto i = 0; i < q.graph->node_size(); i++) { + auto n = q.graph->mutable_node(i); + if (std::find(io_casts.begin(), io_casts.end(), n->name()) != + io_casts.end()) { + continue; + } + for (auto i_index = 0; i_index < n->input_size(); i_index++) { + std::string* input = n->mutable_input(i_index); + auto iter = name_mapping.find(*input); + if (iter != name_mapping.end()) { + *input = iter->second; + } + } + for (auto o_index = 0; o_index < n->output_size(); o_index++) { + std::string* output = n->mutable_output(o_index); + auto iter = name_mapping.find(*output); + if (iter != name_mapping.end()) { + *output = iter->second; + } + } + // If the op type is in op_block_list_ or fp32_output_op_list, + // or needs to be kept without conversion, then store the node in + // node_list, + // which is convenient for adding cast op in the front or back + if (KeepNodeType(n)) { + if (n->op_type() != "Constant" && + std::find(node_list.begin(), node_list.end(), n) == + node_list.end()) { + node_list.push_back(n); + } else { + for (auto index = 0; index < q.graph->node_size(); index++) { + auto keep_type_node = q.graph->mutable_node(index); + bool is_pre_node = + std::find(keep_type_node->input().begin(), + keep_type_node->input().end(), + n->output()[0]) != keep_type_node->input().end(); + if (is_pre_node && + std::find(node_list.begin(), node_list.end(), n) == + node_list.end()) { + node_list.push_back(keep_type_node); + Assert( + n->op_type() == "Constant", + "The node type be Constant, but it is: " + n->op_type()); + keep_type_tensors.push_back(n->output()[0]); + } + } + } + } else if ((std::find(op_block_list_.begin(), op_block_list_.end(), + n->op_type()) != op_block_list_.end() || + std::find(fp32_output_op_list.begin(), + fp32_output_op_list.end(), + n->op_type()) != fp32_output_op_list.end()) && + std::find(node_list.begin(), node_list.end(), n) == + node_list.end()) { + node_list.push_back(n); + } else { + std::string op_name = n->name(); + if (n->op_type() == "Cast") { + for (auto attr_index = 0; attr_index < n->attribute_size(); + attr_index++) { + auto attr = n->mutable_attribute(attr_index); + if (attr->name() == "to" && attr->i() == 1) { + attr->set_i(10); + break; + } + } + } + for (auto attr_index = 0; attr_index < n->attribute_size(); + attr_index++) { + proto_node new_node(n->mutable_attribute(attr_index)); + next_level.push_back(new_node); + } + } + } + } + + // process attribute proto + if (q.node_type == "attribute") { + if (q.attr->has_g()) { + proto_node new_node(q.attr->mutable_g()); + next_level.push_back(new_node); + } + + for (auto g_index = 0; g_index < q.attr->graphs_size(); g_index++) { + proto_node new_node(q.attr->mutable_graphs(g_index)); + next_level.push_back(new_node); + } + if (q.attr->has_t()) { + ConvertTensorFloatToFloat16(q.attr->mutable_t()); + } + + for (auto t_index = 0; t_index < q.attr->tensors_size(); t_index++) { + ConvertTensorFloatToFloat16(q.attr->mutable_tensors(t_index)); + } + } + + // process graph proto + if (q.node_type == "graph") { + for (auto init_index = 0; init_index < q.graph->initializer_size(); + init_index++) { + auto init = q.graph->mutable_initializer(init_index); + if (init->data_type() == ONNX_NAMESPACE::TensorProto::FLOAT) { + ConvertTensorFloatToFloat16(init); + auto new_value = MakeValueInfoFromTensor(*init); + value_info_list.push_back(new_value); + } + } + for (auto i_index = 0; i_index < q.graph->input_size(); i_index++) { + auto input = q.graph->mutable_input(i_index); + bool skip = + std::find(graph_io_to_skip.begin(), graph_io_to_skip.end(), + input->name()) != graph_io_to_skip.end(); + if (!skip && + input->type().tensor_type().elem_type() == + ONNX_NAMESPACE::TensorProto::FLOAT) { + input->mutable_type()->mutable_tensor_type()->set_elem_type( + ONNX_NAMESPACE::TensorProto::FLOAT16); + value_info_list.push_back(input); + } + } + for (auto o_index = 0; o_index < q.graph->output_size(); o_index++) { + auto output = q.graph->mutable_output(o_index); + bool skip = + std::find(graph_io_to_skip.begin(), graph_io_to_skip.end(), + output->name()) != graph_io_to_skip.end(); + if (!skip && + output->type().tensor_type().elem_type() == + ONNX_NAMESPACE::TensorProto::FLOAT) { + output->mutable_type()->mutable_tensor_type()->set_elem_type( + ONNX_NAMESPACE::TensorProto::FLOAT16); + value_info_list.push_back(output); + } + } + for (auto value_index = 0; value_index < q.graph->value_info_size(); + value_index++) { + auto value = q.graph->mutable_value_info(value_index); + bool skip = + std::find(graph_io_to_skip.begin(), graph_io_to_skip.end(), + value->name()) != graph_io_to_skip.end(); + + // in Resize op, when the dims of input tensor is zero. + bool zero_shape_constant = false; + for (auto i = 0; i < q.graph->node_size(); i++) { + auto n = q.graph->mutable_node(i); + if (n->op_type() != "Constant" || n->output(0) != value->name()) { + continue; + } + for (auto attr_index = 0; attr_index < n->attribute_size(); + attr_index++) { + auto attr = n->mutable_attribute(attr_index); + if (attr->has_t() && attr->t().dims_size() == 1 && + attr->t().dims(0) == 0) { + zero_shape_constant = true; + } + } + if (zero_shape_constant) break; + } + + // if it is a tensor that should keep type float + bool keep_type_tensor = + std::find(keep_type_tensors.begin(), keep_type_tensors.end(), + value->name()) != keep_type_tensors.end(); + if (!zero_shape_constant && !skip && !keep_type_tensor && + value->type().tensor_type().elem_type() == + ONNX_NAMESPACE::TensorProto::FLOAT) { + value->mutable_type()->mutable_tensor_type()->set_elem_type( + ONNX_NAMESPACE::TensorProto::FLOAT16); + value_info_list.push_back(value); + } + } + } + } + queue.clear(); + queue = next_level; + } + // the model is a FP16 model + if (!converted_attr) { + return; + } + + auto graph = model->mutable_graph(); + for (auto node : node_list) { + // Handle the case of fp32_output OPs + // Add cast op for node output + if (std::find(fp32_output_op_list.begin(), fp32_output_op_list.end(), + node->op_type()) != fp32_output_op_list.end()) { + for (auto o_index = 0; o_index < node->output_size(); o_index++) { + std::string* output = node->mutable_output(o_index); + for (auto v_index = 0; v_index < graph->value_info().size(); + v_index++) { + auto value_info = graph->mutable_value_info(v_index); + if (value_info->name() == *output) { + if (value_info->type().tensor_type().elem_type() == + ONNX_NAMESPACE::TensorProto::FLOAT16 && + !CastedTo(*output, *model, 10)) { + std::string input_name = GenName(node->name() + "_output_cast_"); + std::string node_name = GenName(node->name() + "_output_cast"); + auto new_node = + MakeCastNode(node_name, {input_name}, {*output}, 10); + *(graph->add_node()) = (*new_node); + *(node->mutable_output(o_index)) = input_name; + } else { + break; + } + } + } + } + continue; + } + + // Handle the case of custom OPs + if (std::find(custom_ops_.begin(), custom_ops_.end(), node->op_type()) != + custom_ops_.end()) { + // add cast op for node input + for (auto i_index = 0; i_index < node->input_size(); i_index++) { + std::string* input = node->mutable_input(i_index); + for (auto v_index = 0; v_index < graph->value_info().size(); + v_index++) { + auto value_info = graph->mutable_value_info(v_index); + if (value_info->name() == *input) { + if (value_info->type().tensor_type().elem_type() == + ONNX_NAMESPACE::TensorProto::FLOAT16 && + !CastedFrom(*input, *model, 1)) { + std::string output_name = GenName(node->name() + "_input_cast_"); + std::string node_name = GenName(node->name() + "_input_cast"); + auto new_node = + MakeCastNode(node_name, {*input}, {output_name}, 1); + *(graph->add_node()) = (*new_node); + *(node->mutable_input(i_index)) = output_name; + } else { + break; + } + } + } + } + // add cast op for node output + for (auto o_index = 0; o_index < node->output_size(); o_index++) { + std::string* output = node->mutable_output(o_index); + for (auto v_index = 0; v_index < graph->value_info().size(); + v_index++) { + auto value_info = graph->mutable_value_info(v_index); + if (value_info->name() == *output) { + if (value_info->type().tensor_type().elem_type() == + ONNX_NAMESPACE::TensorProto::FLOAT16 && + !CastedTo(*output, *model, 10)) { + std::string input_name = GenName(node->name() + "_output_cast_"); + std::string node_name = GenName(node->name() + "_output_cast"); + auto new_node = + MakeCastNode(node_name, {input_name}, {*output}, 10); + *(graph->add_node()) = (*new_node); + *(node->mutable_output(o_index)) = input_name; + } else if (value_info->type().tensor_type().elem_type() == + ONNX_NAMESPACE::TensorProto::FLOAT16) { + value_info->mutable_type()->mutable_tensor_type()->set_elem_type( + ONNX_NAMESPACE::TensorProto::FLOAT); + } else { + break; + } + } + } + } + } else { + // Handle the case of DEFAULT_OP_BLOCK_LIST OPs + for (auto i_index = 0; i_index < node->input_size(); i_index++) { + std::string* input = node->mutable_input(i_index); + for (auto value_index = 0; value_index < value_info_list.size(); + value_index++) { + auto value_info = value_info_list[value_index]; + if (value_info->has_name() && *input == value_info->name() && + !CastedFrom(*input, *model, 1)) { + auto new_value_info = model->mutable_graph()->add_value_info(); + new_value_info->CopyFrom(*value_info); + std::string output_name = GenName(node->name() + "_input_cast_"); + new_value_info->set_name(output_name); + new_value_info->mutable_type() + ->mutable_tensor_type() + ->set_elem_type(ONNX_NAMESPACE::TensorProto::FLOAT); + std::string node_name = GenName(node->name() + "_input_cast"); + auto new_node = MakeCastNode(node_name, {*input}, {output_name}, 1); + *(graph->add_node()) = (*new_node); + *(node->mutable_input(i_index)) = output_name; + break; + } + } + } + for (auto o_index = 0; o_index < node->output_size(); o_index++) { + std::string* output = node->mutable_output(o_index); + for (auto value_index = 0; value_index < value_info_list.size(); + value_index++) { + if (*output == value_info_list[value_index]->name() && + !CastedTo(*output, *model, 10)) { + auto new_value_info = model->mutable_graph()->add_value_info(); + new_value_info->CopyFrom(*value_info_list[value_index]); + std::string input_name = GenName(node->name() + "_output_cast_"); + new_value_info->set_name(input_name); + new_value_info->mutable_type() + ->mutable_tensor_type() + ->set_elem_type(ONNX_NAMESPACE::TensorProto::FLOAT); + std::string node_name = GenName(node->name() + "_output_cast"); + auto new_node = + MakeCastNode(node_name, {input_name}, {*output}, 10); + *(graph->add_node()) = (*new_node); + *(node->mutable_output(o_index)) = input_name; + break; + } + } + } + } + } +} + +bool ConvertFp32ToFp16::IsFP16Model(const ONNX_NAMESPACE::ModelProto& model) { + for (auto node : model.graph().node()) { + if (node.op_type() == "Cast") { + auto name = node.name(); + if (name.find("_output_cast") != name.npos || + name.find("_input_cast") != name.npos || + name.find("graph_output_cast") != name.npos || + name.find("graph_input_cast") != name.npos) { + return true; + } + } + } + return false; +} + +void ConvertFp32ToFp16::Convert(ONNX_NAMESPACE::ModelProto* model) { + if (op_block_list_.empty()) { + op_block_list_ = DEFAULT_OP_BLOCK_LIST; + } + if (custom_ops_.size()) { + op_block_list_.insert(op_block_list_.end(), custom_ops_.begin(), + custom_ops_.end()); + } + shape_inference::InferShapes(*model); + // 1 if it is a FP16 model, skip this + if (IsFP16Model(*model)) { + P2OLogger() << "[Info] The input ONNX Model is a FP16 model." << std::endl; + return; + } + // 2 keep IO types + KeepIoType(model); + // 3 ConvertAttribute + ConvertAttribute(model); + // 4 sortnodes + SortNodes(model); +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/optimizer/convert_fp32_to_fp16.h b/paddle2onnx/optimizer/convert_fp32_to_fp16.h new file mode 100755 index 000000000..157bee66c --- /dev/null +++ b/paddle2onnx/optimizer/convert_fp32_to_fp16.h @@ -0,0 +1,235 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include + +#include +#include +#include + +#include +#include "paddle2onnx/mapper/mapper.h" +#include "paddle2onnx/parser/parser.h" +namespace paddle2onnx { + +struct proto_node { + public: + std::string node_type; // model, graph, node, arribute + ONNX_NAMESPACE::ModelProto* model; + ONNX_NAMESPACE::GraphProto* graph; + ONNX_NAMESPACE::NodeProto* node; + ONNX_NAMESPACE::AttributeProto* attr; + + explicit proto_node(ONNX_NAMESPACE::ModelProto new_model) { + node_type = "model"; + model = &new_model; + } + + explicit proto_node(ONNX_NAMESPACE::ModelProto* new_model) { + node_type = "model"; + model = new_model; + } + + explicit proto_node(ONNX_NAMESPACE::GraphProto new_graph) { + node_type = "graph"; + graph = &new_graph; + } + + explicit proto_node(ONNX_NAMESPACE::GraphProto* new_graph) { + node_type = "graph"; + graph = new_graph; + } + + explicit proto_node(ONNX_NAMESPACE::NodeProto new_node) { + node_type = "node"; + node = &new_node; + } + + explicit proto_node(ONNX_NAMESPACE::NodeProto* new_node) { + node_type = "node"; + node = new_node; + } + + explicit proto_node(ONNX_NAMESPACE::AttributeProto new_attribute) { + node_type = "attribute"; + attr = &new_attribute; + } + + explicit proto_node(ONNX_NAMESPACE::AttributeProto* new_attribute) { + node_type = "attribute"; + attr = new_attribute; + } +}; + +struct ConvertFp32ToFp16 { + public: + ConvertFp32ToFp16(float min_positive_val = 1e-7, float max_finite_val = 1e4, + bool keep_io_types = false, + bool disable_shape_infer = false, + const std::vector& op_block_list = {}, + const std::vector& node_block_list = {}) { + min_positive_val_ = min_positive_val; + max_finite_val_ = max_finite_val; + keep_io_types_ = keep_io_types; + disable_shape_infer_ = disable_shape_infer; + op_block_list_ = op_block_list; + node_block_list_ = node_block_list; + } + + void Convert(ONNX_NAMESPACE::ModelProto* model); + + ONNX_NAMESPACE::NodeProto* MakeCastNode( + const std::string& op_name, const std::vector& inputs, + const std::vector& outputs, int32_t to_dtype); + + ONNX_NAMESPACE::ValueInfoProto* MakeValueInfoFromTensor( + const ONNX_NAMESPACE::TensorProto& tensor); + + void KeepIoType(ONNX_NAMESPACE::ModelProto* model); + + void ConvertAttribute(ONNX_NAMESPACE::ModelProto* model); + + void ConvertTensorFloatToFloat16(ONNX_NAMESPACE::TensorProto* tensor); + + // return if keep the type of node + bool KeepNodeType(ONNX_NAMESPACE::NodeProto* node); + + bool GetTensorValue(const ONNX_NAMESPACE::TensorProto& tensor, + std::vector* value); + + // topo sort + void SortNodes(ONNX_NAMESPACE::ModelProto* model); + + void ConvertValToFloat16(float val, uint16_t* x); + + // return if the next node of name is Cast and its attr type is dtype. + bool CastedTo(const std::string& name, ONNX_NAMESPACE::ModelProto& model, + int64_t dtype); + // return if the pre node of name is Cast and its attr type is dtype. + bool CastedFrom(const std::string& name, ONNX_NAMESPACE::ModelProto& model, + int64_t dtype); + // return if the name is the input of DEFAULT_OP_BLOCK_LIST + bool IsInputOfOpBlock(const std::string& name, + ONNX_NAMESPACE::ModelProto& model); + + // return if the name is the input of DEFAULT_OP_BLOCK_LIST and + // fp32_output_op_list + bool IsOutputOfOpBlockAndFP32Out(const std::string& name, + ONNX_NAMESPACE::ModelProto& model); + + void SetCustomOps(const std::map& custom_ops) { + if (custom_ops.size()) { + custom_ops_.clear(); + for (auto op : custom_ops) { + custom_ops_.push_back(op.second); + } + } + } + // If the input ONNX model is a FP16 model, return True + bool IsFP16Model(const ONNX_NAMESPACE::ModelProto& model); + + private: + union Bits { + float f; + int32_t si; + uint32_t ui; + }; + static const int shift = 13; + static const int shiftSign = 16; + + static const int32_t infN = 0x7F800000; + static const int32_t maxN = 0x477FE000; // max flt16 as flt32 + static const int32_t minN = 0x38800000; // min flt16 normal as flt32 + static const int32_t sigN = 0x80000000; // sign bit + + static constexpr int32_t infC = infN >> shift; + static constexpr int32_t nanN = (infC + 1) + << shift; // minimum flt16 nan as float32 + static constexpr int32_t maxC = maxN >> shift; + static constexpr int32_t minC = minN >> shift; + static constexpr int32_t sigC = sigN >> shiftSign; + + static const int32_t mulN = 0x52000000; // (1 << 23) / minN + static const int32_t mulC = 0x33800000; // minN / (1 << (23 - shift)) + static const int32_t subC = 0x003FF; // max flt32 subnormal downshifted + static const int32_t norC = 0x00400; // min flt32 normal downshifted + + static constexpr int32_t maxD = infC - maxC - 1; + static constexpr int32_t minD = minC - subC - 1; + + float min_positive_val_ = 1e-7; + float max_finite_val_ = 1e4; + bool keep_io_types_ = false; + bool disable_shape_infer_ = false; + std::vector op_block_list_ = {}; + std::vector node_block_list_ = {}; + + std::vector custom_ops_ = {"AdaptivePool2d", "MultiClassNMS"}; + + int64_t converted_attr = 0; + + std::map name_mapping; + std::vector graph_io_to_skip; + std::vector value_info_list; + std::vector io_casts; + + std::vector node_list; + + std::vector queue; + std::vector next_level; + + std::map name_index_mapper; + // int64_t name_index = 0; + std::string GenName(const std::string& prefix); + + // save the tensor names that should keep data type + std::vector keep_type_tensors; + + // The input can be FP16, but the output can only be fp32 + std::vector fp32_output_op_list = {"RandomNormalLike"}; + + std::vector DEFAULT_OP_BLOCK_LIST = { + "ArrayFeatureExtractor", + "ReduceMean", // this op may cause wrong results on FP16 + "Binarizer", + "CastMap", + "CategoryMapper", + "DictVectorizer", + "FeatureVectorizer", + "Imputer", + "LabelEncoder", + "LinearClassifier", + "LinearRegressor", + "Normalizer", + "OneHotEncoder", + "RandomUniformLike", + "SVMClassifier", + "SVMRegressor", + "Scaler", + "TreeEnsembleClassifier", + "TreeEnsembleRegressor", + "ZipMap", + "NonMaxSuppression", + "TopK", + "RoiAlign", + "Resize", + "Range", + "CumSum", + "Min", + "Max", + "Upsample", // The following OP is added by Paddle developer + "EyeLike"}; +}; +} // namespace paddle2onnx diff --git a/paddle2onnx/optimizer/eliminate_non_transpose.h b/paddle2onnx/optimizer/eliminate_non_transpose.h new file mode 100644 index 000000000..3a1d28757 --- /dev/null +++ b/paddle2onnx/optimizer/eliminate_non_transpose.h @@ -0,0 +1,60 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +// ATTENTION: The code in this file is highly EXPERIMENTAL. +// Adventurous users should note that the APIs will probably change. + +#pragma once + +#include "onnxoptimizer/pass.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct EliminateNonTranspose final : public PredicateBasedPass { + explicit EliminateNonTranspose() + : PredicateBasedPass(PassType::Nop, PassEfficiency::Complete, + PassOptimizationType::Compute) {} + + std::string getPassName() const override { return "eliminate_non_transpose"; } + + bool patternMatchPredicate(Node* node) override { + return node->kind() == kTranspose; + } + bool runTransform(Node* node, Graph& graph, + NodeDestroyType& destroy_current) override { + if (node->hasAttribute(kperm)) { + auto perm = node->is(kperm); + for (size_t i = 0; i < perm.size(); ++i) { + if (perm[i] != i) { + return false; + } + } + } + const bool replacing_success = + tryReplacingAllUsesWith(node->output(), node->input()); + if (!replacing_success) { + return false; + } + destroy_current = NodeDestroyType::DestroyOne; + return true; + } +}; + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/fuse_constant_cast.h b/paddle2onnx/optimizer/fuse_constant_cast.h new file mode 100644 index 000000000..0fbaa4d55 --- /dev/null +++ b/paddle2onnx/optimizer/fuse_constant_cast.h @@ -0,0 +1,67 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// Before: +// B = Reshape(Constant) +// After: +// B = Constant (Constant with new shape) + +#include + +#include "onnx/defs/tensor_util.h" +#include "onnxoptimizer/pass.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct FuseConstantCast final : public PredicateBasedPass { + explicit FuseConstantCast() + : PredicateBasedPass(PassType::Fuse, PassEfficiency::Complete, + PassOptimizationType::Compute) {} + std::string getPassName() const override { return "fuse_constant_cast"; } + + bool patternMatchPredicate(Node* node) override { + return node->kind() == kCast && + node->inputs()[0]->node()->kind() == kConstant; + } + bool runTransform(Node* n, Graph& graph, + NodeDestroyType& destroy_current) override { + destroy_current = NodeDestroyType::DestroyZero; + + if (n->inputs()[0]->uses().size() > 1) { + return false; + } + + Node* cast = n; + Node* constant = n->inputs()[0]->node(); + Tensor t = constant->t(kvalue); + auto dtype = cast->i(kto); + t.elem_type() = dtype; + constant->t_(kvalue, std::move(t)); + if (!tryReplacingAllUsesWith(cast->output(), cast->inputs()[0])) { + return false; + } + destroy_current = NodeDestroyType::DestroyOne; + return true; + } +}; + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/fuse_constant_reshape.h b/paddle2onnx/optimizer/fuse_constant_reshape.h new file mode 100644 index 000000000..ba886f5c1 --- /dev/null +++ b/paddle2onnx/optimizer/fuse_constant_reshape.h @@ -0,0 +1,138 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// Before: +// B = Reshape(Constant) +// After: +// B = Constant (Constant with new shape) + +#include + +#include "onnx/defs/tensor_util.h" +#include "onnxoptimizer/pass.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct FuseConstantReshape final : public PredicateBasedPass { + explicit FuseConstantReshape() + : PredicateBasedPass(PassType::Fuse, PassEfficiency::Complete, + PassOptimizationType::Compute) {} + std::string getPassName() const override { return "fuse_constant_reshape"; } + + bool patternMatchPredicate(Node* node) override { + return node->kind() == kReshape && + node->inputs()[0]->node()->kind() == kConstant; + } + bool runTransform(Node* n, Graph& graph, + NodeDestroyType& destroy_current) override { + destroy_current = NodeDestroyType::DestroyZero; + + // check if Constant is only used by Reshape + if (n->inputs()[0]->uses().size() > 1) { + return false; + } + + Node* reshape = n; + Node* constant = n->inputs()[0]->node(); + + // Process 'reshape' data + std::vector shape; + if (reshape->hasAttribute(kshape)) { + // opset 5 and below + shape = reshape->is(kshape); + } else { + // opset 6 and above - first check if 'reshape' has 'shape' input + // constant + if (reshape->inputs()[1]->node()->kind() != kConstant) { + return false; + } + if (reshape->inputs()[1]->uses().size() > 1) { + return false; + } + Node* shape_const = reshape->inputs()[1]->node(); + Tensor t = shape_const->t(kvalue); + shape = ParseData(&t); + } + + int allow_zero = 0; + Symbol sym = Symbol("allowzero"); + if (reshape->hasAttribute(sym)) { + allow_zero = reshape->i(sym); + } + + Tensor t = constant->t(kvalue); + const auto& ori_size = t.sizes(); + + // process 0 in shape + if (allow_zero != 0) { + for (size_t i = 0; i < shape.size(); ++i) { + if (shape[i] == 0) { + // illegal situation + if (ori_size.size() <= i) { + return false; + } + shape[i] = ori_size[i]; + } + } + } + + // process -1 in shape + int count_of_unkown = 0; + int index_of_unkown = -1; + for (size_t i = 0; i < shape.size(); ++i) { + if (shape[i] == -1) { + count_of_unkown += 1; + index_of_unkown = i; + } + } + // illegal situtaion + if (count_of_unkown > 1) { + return false; + } + int64_t numel = std::accumulate(ori_size.begin(), ori_size.end(), 1, + std::multiplies()); + if (index_of_unkown >= 0) { + int64_t value_of_unkown = -1 * numel / + std::accumulate(shape.begin(), shape.end(), 1, + std::multiplies()); + shape[index_of_unkown] = value_of_unkown; + } + + t.sizes().clear(); + t.sizes().insert(t.sizes().begin(), shape.begin(), + shape.begin() + shape.size()); + constant->t_(kvalue, std::move(t)); + + // update constant node + constant->output()->setSizes(reshape->output()->sizes()); + constant->output()->setElemType(reshape->output()->elemType()); + const bool replacing_success = + tryReplacingAllUsesWith(reshape->output(), reshape->inputs()[0]); + if (!replacing_success) { + return false; + } + destroy_current = NodeDestroyType::DestroyOne; + return true; + } +}; + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/fuse_constant_unsqueeze.h b/paddle2onnx/optimizer/fuse_constant_unsqueeze.h new file mode 100644 index 000000000..e4fa7cdf4 --- /dev/null +++ b/paddle2onnx/optimizer/fuse_constant_unsqueeze.h @@ -0,0 +1,107 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// Before: +// B = Unsqueeze(Constant, axes) +// After: +// B = Constant (Constant with new shape) + +#include + +#include "onnx/defs/tensor_util.h" +#include "onnxoptimizer/pass.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct FuseConstantUnsqueeze final : public PredicateBasedPass { + explicit FuseConstantUnsqueeze() + : PredicateBasedPass(PassType::Fuse, PassEfficiency::Complete, + PassOptimizationType::Compute) {} + std::string getPassName() const override { return "fuse_constant_unsqueeze"; } + + bool patternMatchPredicate(Node* node) override { + return node->kind() == kUnsqueeze && + node->inputs()[0]->node()->kind() == kConstant; + } + bool runTransform(Node* n, Graph& graph, + NodeDestroyType& destroy_current) override { + destroy_current = NodeDestroyType::DestroyZero; + + // check if Constant is only used by Reshape + if (n->inputs()[0]->uses().size() > 1) { + return false; + } + + Node* unsqueeze = n; + Node* constant = n->inputs()[0]->node(); + + // Process 'axes' data + std::vector axes; + if (unsqueeze->hasAttribute(kaxes)) { + // opset 13 below + axes = unsqueeze->is(kaxes); + } else { + // opset 13 and above - first check if 'unsqueeze' has 'axes' input + // constant + if (unsqueeze->inputs()[1]->node()->kind() != kConstant) { + return false; + } + if (unsqueeze->inputs()[1]->uses().size() > 1) { + return false; + } + Node* axes_const = unsqueeze->inputs()[1]->node(); + Tensor t = axes_const->t(kvalue); + axes = ParseData(&t); + } + + Tensor t = constant->t(kvalue); + const auto& ori_size = t.sizes(); + for (size_t i = 0; i < axes.size(); ++i) { + if (axes[i] < 0) { + axes[i] = axes[i] + ori_size.size() + i + 1; + } + } + + std::vector new_size(ori_size.begin(), ori_size.end()); + for (size_t i = 0; i < axes.size(); ++i) { + new_size.insert(new_size.begin() + axes[i], 1); + } + + t.sizes().clear(); + t.sizes().insert(t.sizes().begin(), new_size.begin(), + new_size.begin() + new_size.size()); + constant->t_(kvalue, std::move(t)); + + // update constant node + constant->output()->setSizes(unsqueeze->output()->sizes()); + constant->output()->setElemType(unsqueeze->output()->elemType()); + const bool replacing_success = + tryReplacingAllUsesWith(unsqueeze->output(), unsqueeze->inputs()[0]); + if (!replacing_success) { + return false; + } + destroy_current = NodeDestroyType::DestroyOne; + return true; + } +}; + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/fuse_paddle_conv_bias.h b/paddle2onnx/optimizer/fuse_paddle_conv_bias.h new file mode 100644 index 000000000..89ed8883a --- /dev/null +++ b/paddle2onnx/optimizer/fuse_paddle_conv_bias.h @@ -0,0 +1,96 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// Only support conv2d + bias now + +#include + +#include "onnx/defs/tensor_util.h" +#include "onnxoptimizer/pass.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct FusePaddleConvBias final : public PredicateBasedPass { + explicit FusePaddleConvBias() + : PredicateBasedPass(PassType::Fuse, PassEfficiency::Complete, + PassOptimizationType::Compute) {} + std::string getPassName() const override { return "fuse_paddle_conv_bias"; } + + bool patternMatchPredicate(Node* node) override { + return node->kind() == kAdd && node->inputs()[0]->node()->kind() == kConv && + node->inputs()[1]->node()->kind() == kConstant && + node->inputs()[0]->node()->inputs()[1]->node()->kind() == kConstant; + } + bool runTransform(Node* n, Graph& graph, + NodeDestroyType& destroy_current) override { + destroy_current = NodeDestroyType::DestroyZero; + + // check if Conv is only used by Add + if (n->inputs()[0]->uses().size() > 1) { + return false; + } + // check if bias is only used by Add + if (n->inputs()[1]->uses().size() > 1) { + return false; + } + + Node* add = n; + Node* conv = n->inputs()[0]->node(); + Node* bias = n->inputs()[1]->node(); + Node* weight = conv->inputs()[1]->node(); + + if (conv->inputs().size() > 2) { + return false; + } + + Tensor bias_tensor = bias->t(kvalue); + Tensor weight_tensor = weight->t(kvalue); + const auto& bias_shape = bias_tensor.sizes(); + const auto& weight_shape = weight_tensor.sizes(); + if (bias_shape.size() != 4 || bias_shape.size() != weight_shape.size()) { + return false; + } + if (bias_shape[0] != 1 || bias_shape[2] != 1 || bias_shape[3] != 1) { + return false; + } + if (bias_shape[1] != weight_shape[0]) { + return false; + } + // reshape bias node + bias_tensor.sizes().clear(); + bias_tensor.sizes().push_back(weight_shape[0]); + bias->t_(kvalue, std::move(bias_tensor)); + + conv->addInput(bias->outputs()[0]); + conv->output()->setSizes(add->output()->sizes()); + conv->output()->setElemType(add->output()->elemType()); + const bool replacing_success = + tryReplacingAllUsesWith(add->output(), add->inputs()[0]); + if (!replacing_success) { + return false; + } + destroy_current = NodeDestroyType::DestroyOne; + return true; + } +}; + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/fuse_squeeze_act_unsqueeze.h.bak b/paddle2onnx/optimizer/fuse_squeeze_act_unsqueeze.h.bak new file mode 100644 index 000000000..dc5821b59 --- /dev/null +++ b/paddle2onnx/optimizer/fuse_squeeze_act_unsqueeze.h.bak @@ -0,0 +1,102 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// Before: +// axis = n +// A = Squeeze(x, axis) +// B = Act(A) +// C = Unsqueeze(x, axis) +// After: +// C = act(x) + +#include + +#include "onnx/defs/tensor_util.h" +#include "onnxoptimizer/pass.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct FuseSqueezeActUnsqueeze final : public PredicateBasedPass { + explicit FuseSqueezeActUnsqueeze() + : PredicateBasedPass(PassType::Fuse, PassEfficiency::Complete, + PassOptimizationType::Compute) {} + std::string getPassName() const override { return "fuse_squeeze_act_unsqueeze"; } + + bool patternMatchPredicate(Node* node) override { + // if you want more act supported + // just modify here + return node->kind() == kUnqueeze && + node->inputs()[0]->node()->kind() == kLeakyRelu && + node->inputs()[0]->node()->inputs()[0] == kSqueeze; + } + bool runTransform(Node* n, Graph& graph, + NodeDestroyType& destroy_current) override { + destroy_current = NodeDestroyType::DestroyZero; + + if (n->inputs()[0]->uses().size() > 1) { + return false; + } + if (n->inputs()[0]->node->inputs[0]->uses().size() > 1) { + return false; + } + + Node* unsqueeze = n; + Node* act = n->inputs()[0]->node(); + Node* squeeze = act->inputs()[0]->node(); + + // Process 'axes' data + std::vector unsqueeze_axes; + if (unsqueeze->hasAttribute(kaxes)) { + // opset 13 below + unsqueeze_axes = unsqueeze->is(kaxes); + } else { + // opset 13 and above - first check if 'unsqueeze' has 'axes' input + // constant + if (unsqueeze->inputs()[1]->node()->kind() != kConstant) { + return false; + } + if (unsqueeze->inputs()[1]->uses().size() > 1) { + return false; + } + Node* axes_const = unsqueeze->inputs()[1]->node(); + Tensor t = axes_const->t(kvalue); + unsqueeze_axes = ParseData(&t); + } + + Tensor t = constant->t(kvalue); + const auto& ori_size = t.sizes(); + for (size_t i = 0; i < axes.size(); ++i) { + if (axes[i] < 0) { + axes[i] = axes[i] + ori_size.size() + i + 1; + } + } + + std::vector new_size(ori_size.begin(), ori_size.end()); + for (size_t i = 0; i < axes.size(); ++i) { + new_size.insert(new_size.begin() + axes[i], 1); + } + + t.sizes().clear(); + t.sizes().insert(t.sizes().begin(), new_size.begin(), + new_size.begin() + new_size.size()); + constant->t_(kvalue, std::move(t)); + + // update constant node + constant->output()->setSizes(unsqueeze->output()->sizes()); + constant->output()->setElemType(unsqueeze->output()->elemType()); + const bool replacing_success = + tryReplacingAllUsesWith(unsqueeze->output(), unsqueeze->inputs()[0]); + if (!replacing_success) { + return false; + } + destroy_current = NodeDestroyType::DestroyOne; + return true; + } +}; + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/fuse_unsqueeze_conv2d_squeeze.h b/paddle2onnx/optimizer/fuse_unsqueeze_conv2d_squeeze.h new file mode 100644 index 000000000..e97a15c98 --- /dev/null +++ b/paddle2onnx/optimizer/fuse_unsqueeze_conv2d_squeeze.h @@ -0,0 +1,170 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// Before: +// X = Tensor(N, C, H) +// B = Unsqueeze(X, 2) +// C = Conv2d(B) +// D = Squeeze(C, 2) +// After: +// D = Conv1d(X) + +#include + +#include "onnx/defs/tensor_util.h" +#include "onnxoptimizer/pass.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct FuseUnsqueezeConv2dSqueeze final : public PredicateBasedPass { + explicit FuseUnsqueezeConv2dSqueeze() + : PredicateBasedPass(PassType::Fuse, PassEfficiency::Complete, + PassOptimizationType::Compute) {} + + std::string getPassName() const override { + return "fuse_unsqueeze_conv2d_squeeze"; + } + + bool patternMatchPredicate(Node* node) override { + return node->kind() == kSqueeze && + node->inputs()[0]->node()->kind() == kConv && + node->inputs()[0]->node()->inputs()[0]->node()->kind() == kUnsqueeze; + } + + bool runTransform(Node* n, Graph& graph, + NodeDestroyType& destroy_current) override { + Node* squeeze_node = n; + Node* conv_node = n->inputs()[0]->node(); + Node* unsqueeze_node = conv_node->inputs()[0]->node(); + if (squeeze_node->inputs()[0]->uses().size() > 1) { + return false; + } + if (conv_node->inputs()[0]->uses().size() > 1) { + return false; + } + + Node* weight_node = conv_node->inputs()[1]->node(); + if (weight_node->kind() != kConstant) { + return false; + } + Tensor weight = weight_node->t(kvalue); + if (weight.sizes().size() != 4) { + return false; + } + if (weight.sizes()[2] != 1) { + return false; + } + { + std::vector axes; + if (squeeze_node->hasAttribute(kaxes)) { + // opset 12 and below + axes = squeeze_node->is(kaxes); + } else { + // opset 13 and above + if (squeeze_node->inputs()[1]->node()->kind() != kConstant) { + return false; + } + if (squeeze_node->inputs()[1]->uses().size() > 1) { + return false; + } + Tensor t = squeeze_node->inputs()[1]->node()->t(kvalue); + axes = ParseData(&t); + } + if (axes.size() != 1 || axes[0] != 2) { + return false; + } + } + { + std::vector axes; + if (unsqueeze_node->hasAttribute(kaxes)) { + // opset 12 and below + axes = unsqueeze_node->is(kaxes); + } else { + // opset 13 and above + if (unsqueeze_node->inputs()[1]->node()->kind() != kConstant) { + return false; + } + if (unsqueeze_node->inputs()[1]->uses().size() > 1) { + return false; + } + Tensor t = unsqueeze_node->inputs()[1]->node()->t(kvalue); + axes = ParseData(&t); + } + if (axes.size() != 1 || axes[0] != 2) { + return false; + } + } + // update conv weight + weight.sizes().erase(weight.sizes().begin() + 2); + weight_node->t_(kvalue, std::move(weight)); + + if (conv_node->hasAttribute(kdilations)) { + std::vector dilations = conv_node->is(kdilations); + if (dilations.size() != 2 || dilations[0] != 1) { + return false; + } + dilations.erase(dilations.begin() + 0); + conv_node->is_(kdilations, std::move(dilations)); + } + if (conv_node->hasAttribute(kkernel_shape)) { + std::vector kernel_shape = conv_node->is(kkernel_shape); + if (kernel_shape.size() != 2 || kernel_shape[0] != 1) { + return false; + } + kernel_shape.erase(kernel_shape.begin() + 0); + conv_node->is_(kkernel_shape, std::move(kernel_shape)); + } + if (conv_node->hasAttribute(kpads)) { + std::vector pads = conv_node->is(kpads); + if (pads.size() != 4 || pads[0] != 0 || pads[2] != 0) { + return false; + } + pads.erase(pads.begin() + 2); + pads.erase(pads.begin() + 0); + conv_node->is_(kpads, std::move(pads)); + } + if (conv_node->hasAttribute(kstrides)) { + std::vector strides = conv_node->is(kstrides); + if (strides.size() != 2 || strides[0] != 1) { + return false; + } + strides.erase(strides.begin() + 0); + conv_node->is_(kstrides, std::move(strides)); + } + + conv_node->replaceInput(0, unsqueeze_node->inputs()[0]); + if (!tryReplacingAllUsesWith(unsqueeze_node->output(), + unsqueeze_node->inputs()[0])) { + return false; + } + if (!tryReplacingAllUsesWith(squeeze_node->output(), + squeeze_node->inputs()[0])) { + return false; + } + // unsqueeze_node->destroy(); + // squeeze_node->destroy(); + // destroy_current = NodeDestroyType::DestroyZero; + return true; + } +}; + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/paddle2onnx_optimizer.cc b/paddle2onnx/optimizer/paddle2onnx_optimizer.cc new file mode 100644 index 000000000..0900688b7 --- /dev/null +++ b/paddle2onnx/optimizer/paddle2onnx_optimizer.cc @@ -0,0 +1,240 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/optimizer/paddle2onnx_optimizer.h" +#include +#include +#include "onnxoptimizer/optimize.h" +#include "paddle2onnx/optimizer/eliminate_non_transpose.h" +#include "paddle2onnx/optimizer/fuse_constant_cast.h" +#include "paddle2onnx/optimizer/fuse_constant_reshape.h" +#include "paddle2onnx/optimizer/fuse_constant_unsqueeze.h" +#include "paddle2onnx/optimizer/fuse_paddle_conv_bias.h" +#include "paddle2onnx/optimizer/fuse_unsqueeze_conv2d_squeeze.h" +#include "paddle2onnx/optimizer/replace_add_to_identity.h" +#include "paddle2onnx/optimizer/replace_mul_to_identity.h" +#include "paddle2onnx/utils/utils.h" + +#include "paddle2onnx/converter.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +ONNX_NAMESPACE::ModelProto OptimizeOnnxModel( + const ONNX_NAMESPACE::ModelProto& model_proto) { + OptimizerOption option; + option.passes.clear(); + option.passes.push_back("eliminate_identity"); + option.passes.push_back("eliminate_deadend"); + + auto optimized_model_proto = + ONNX_NAMESPACE::optimization::Optimize(model_proto, option.passes); + + // reinfer shape for this onnx model + auto graph = optimized_model_proto.mutable_graph(); + // clear all the type info of outputs + auto output_size = graph->output_size(); + for (size_t i = 0; i < output_size; ++i) { + graph->mutable_output(i)->clear_type(); + } + + try { + shape_inference::InferShapes(optimized_model_proto); + } catch (const std::exception& e) { + P2OLogger(true) << "[ERROR] Failed to reinfer shape for this model." + << std::endl; + P2OLogger(true) << e.what() << std::endl; + } + return optimized_model_proto; +} + +std::shared_ptr LoadModelFromFile( + const std::string& file_path) { + auto model_proto = std::make_shared(); + std::ifstream fin(file_path, std::ios::in | std::ios::binary); + if (!fin.is_open()) { + P2OLogger(true) + << "Failed to read model file: " << file_path + << ", please make sure your model file or file path is valid." + << std::endl; + return model_proto; + } + std::string contents; + fin.seekg(0, std::ios::end); + contents.clear(); + contents.resize(fin.tellg()); + fin.seekg(0, std::ios::beg); + fin.read(&(contents.at(0)), contents.size()); + fin.close(); + + if (!model_proto->ParseFromString(contents)) { + P2OLogger(true) << "Failed to load ONNX model from file." << std::endl; + return model_proto; + } + return model_proto; +} + +bool OptimizePaddle2ONNX(const std::string& model_path, + const std::string& optimized_model_path, + const OptimizerOption& option) { + auto model_proto = LoadModelFromFile(model_path); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + + auto optimized_model_proto = ONNX_NAMESPACE::optimization::Optimize( + *(model_proto.get()), option.passes); + std::string optimized_model_str; + if (!optimized_model_proto.SerializeToString(&optimized_model_str)) { + P2OLogger(true) << "Failed to serialize the optimized model protobuf." + << std::endl; + return false; + } + + std::fstream out(optimized_model_path, std::ios::out | std::ios::binary); + if (!out) { + P2OLogger(true) << "Failed to write the optimized model to disk at " + << optimized_model_path << "." << std::endl; + return false; + } + out << optimized_model_str; + out.close(); + return true; +} + +bool OptimizePaddle2ONNX( + const std::string& model_path, const std::string& optimized_model_path, + const std::map>& shape_infos, + const OptimizerOption& option) { + auto model_proto = LoadModelFromFile(model_path); + if (shape_infos.size() > 0) { + // reinfer shape for this onnx model + auto graph = model_proto->mutable_graph(); + // clear all the type info of outputs + auto output_size = graph->output_size(); + for (size_t i = 0; i < output_size; ++i) { + graph->mutable_output(i)->clear_type(); + } + // reset type info of inputs + auto input_size = graph->input_size(); + for (size_t i = 0; i < input_size; ++i) { + auto input_name = graph->input(i).name(); + auto iter = shape_infos.find(input_name); + if (iter != shape_infos.end()) { + auto tensor_type_proto = + graph->mutable_input(i)->mutable_type()->mutable_tensor_type(); + tensor_type_proto->clear_shape(); + auto shape = tensor_type_proto->mutable_shape(); + for (auto& dim : iter->second) { + shape->add_dim()->set_dim_value(dim); + } + } + } + + try { + shape_inference::InferShapes(*(model_proto.get())); + } catch (const std::exception& e) { + P2OLogger(true) << "[ERROR] Failed to reinfer shape for this model." + << std::endl; + P2OLogger(true) << e.what() << std::endl; + return false; + } + } + + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + ONNX_NAMESPACE::optimization::Optimizer::passes + .registerPass(); + + auto optimized_model_proto = ONNX_NAMESPACE::optimization::Optimize( + *(model_proto.get()), option.passes); + std::string optimized_model_str; + if (!optimized_model_proto.SerializeToString(&optimized_model_str)) { + P2OLogger(true) << "Failed to serialize the optimized model protobuf." + << std::endl; + return false; + } + + std::fstream out(optimized_model_path, std::ios::out | std::ios::binary); + if (!out) { + P2OLogger(true) << "Failed to write the optimized model to disk at " + << optimized_model_path << "." << std::endl; + return false; + } + out << optimized_model_str; + out.close(); + return true; +} + +bool Paddle2ONNXFP32ToFP16(const std::string& model_path, + const std::string& converted_model_path) { + std::ifstream fin(model_path, std::ios::in | std::ios::binary); + if (!fin.is_open()) { + P2OLogger(true) + << "Failed to read model file: " << model_path + << ", please make sure your model file or file path is valid." + << std::endl; + return false; + } + std::string contents; + fin.seekg(0, std::ios::end); + contents.clear(); + contents.resize(fin.tellg()); + fin.seekg(0, std::ios::beg); + fin.read(&(contents.at(0)), contents.size()); + fin.close(); + + char* out_model_ptr = nullptr; + int size = 0; + ConvertFP32ToFP16(contents.c_str(), contents.size(), &out_model_ptr, &size); + std::string onnx_proto(out_model_ptr, out_model_ptr + size); + + std::fstream out(converted_model_path, std::ios::out | std::ios::binary); + if (!out) { + P2OLogger(true) << "Failed to write the optimized model to disk at " + << converted_model_path << "." << std::endl; + return false; + } + out << onnx_proto; + out.close(); + return true; +} + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/paddle2onnx_optimizer.h b/paddle2onnx/optimizer/paddle2onnx_optimizer.h new file mode 100644 index 000000000..743291996 --- /dev/null +++ b/paddle2onnx/optimizer/paddle2onnx_optimizer.h @@ -0,0 +1,58 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include +#include +#include + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct OptimizerOption { + std::vector passes; + OptimizerOption() { + passes.push_back("eliminate_identity"); + passes.push_back("eliminate_deadend"); + passes.push_back("fuse_constant_reshape"); + passes.push_back("fuse_constant_unsqueeze"); + passes.push_back("fuse_paddle_conv_bias"); + passes.push_back("fuse_consecutive_transposes"); + passes.push_back("eliminate_non_transpose"); + passes.push_back("replace_mul_to_identity"); + passes.push_back("replace_add_to_identity"); + passes.push_back("fuse_matmul_add_bias_into_gemm"); + passes.push_back("eliminate_identity"); + passes.push_back("eliminate_deadend"); + } +}; + +ONNX_NAMESPACE::ModelProto OptimizeOnnxModel( + const ONNX_NAMESPACE::ModelProto& model); + +bool OptimizePaddle2ONNX(const std::string& model_path, + const std::string& optimized_model_path, + const OptimizerOption& option = OptimizerOption()); + +bool OptimizePaddle2ONNX( + const std::string& model_path, const std::string& optimized_model_path, + const std::map>& shape_infos, + const OptimizerOption& option = OptimizerOption()); + +bool Paddle2ONNXFP32ToFP16(const std::string& model_path, + const std::string& optimized_model_path); + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/replace_add_to_identity.h b/paddle2onnx/optimizer/replace_add_to_identity.h new file mode 100644 index 000000000..cfff7fcde --- /dev/null +++ b/paddle2onnx/optimizer/replace_add_to_identity.h @@ -0,0 +1,122 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// Before: +// X = Constant() all elements equal to 0, shape is () or (1,) +// Y = Tensor() +// C = X + Y +// After: +// C = Identity(Y) + +#include +#include +#include "onnx/defs/tensor_util.h" +#include "onnxoptimizer/pass.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct ReplaceAddToIdentity final : public PredicateBasedPass { + explicit ReplaceAddToIdentity() + : PredicateBasedPass(PassType::Fuse, PassEfficiency::Complete, + PassOptimizationType::Compute) {} + + std::string getPassName() const override { + return "replace_add_to_identity"; + } + + bool patternMatchPredicate(Node* node) override { + return node->kind() == kAdd && + (node->inputs()[0]->node()->kind() == kConstant || node->inputs()[1]->node()->kind() == kConstant); + } + + bool runTransform(Node* n, Graph& graph, + NodeDestroyType& destroy_current) override { + Node* add_node = n; + Node* add_ipt_0 = n->inputs()[0]->node(); + Node* add_ipt_1 = n->inputs()[1]->node(); + + if (add_ipt_0->kind() == kConstant) { + auto bias = add_ipt_0->t(kvalue); + if (bias.sizes().size() == 1 && bias.sizes()[0] != 1) { + return false; + } + if (bias.sizes().size() > 1) { + return false; + } + const auto& float_data = bias.floats(); + if (float_data.size() > 0 && fabs(float_data[0]) > 1e-05) { + return false; + } + const auto& double_data = bias.doubles(); + if (double_data.size() > 0 && fabs(double_data[0]) > 1e-05) { + return false; + } + const auto& int32_data = bias.int32s(); + if (int32_data.size() > 0 && int32_data[0] != 0) { + return false; + } + const auto& int64_data = bias.int64s(); + if (int64_data.size() > 0 && int64_data[0] != 0) { + return false; + } + if (float_data.size() == 0 && double_data.size() == 0 && int32_data.size() == 0 && int64_data.size() == 0) { + return false; + } + if (!tryReplacingAllUsesWith(add_node->output(), add_node->inputs()[1])) { + return false; + } + } else { + auto bias = add_ipt_1->t(kvalue); + if (bias.sizes().size() == 1 && bias.sizes()[0] != 1) { + return false; + } + if (bias.sizes().size() > 1) { + return false; + } + const auto& float_data = bias.floats(); + if (float_data.size() > 0 && fabs(float_data[0]) > 1e-05) { + return false; + } + const auto& double_data = bias.doubles(); + if (double_data.size() > 0 && fabs(double_data[0]) > 1e-05) { + return false; + } + const auto& int32_data = bias.int32s(); + if (int32_data.size() > 0 && int32_data[0] != 0) { + return false; + } + const auto& int64_data = bias.int64s(); + if (int64_data.size() > 0 && int64_data[0] != 0) { + return false; + } + if (float_data.size() == 0 && double_data.size() == 0 && int32_data.size() == 0 && int64_data.size() == 0) { + return false; + } + if (!tryReplacingAllUsesWith(add_node->output(), add_node->inputs()[0])) { + return false; + } + } + return true; + } +}; + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/optimizer/replace_mul_to_identity.h b/paddle2onnx/optimizer/replace_mul_to_identity.h new file mode 100644 index 000000000..64516cbeb --- /dev/null +++ b/paddle2onnx/optimizer/replace_mul_to_identity.h @@ -0,0 +1,122 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +// Before: +// X = Constant() all elements equal to 1, shape is () or (1,) +// Y = Tensor() +// C = X * Y +// After: +// C = Identity(Y) + +#include +#include +#include "onnx/defs/tensor_util.h" +#include "onnxoptimizer/pass.h" + +namespace ONNX_NAMESPACE { +namespace optimization { + +struct ReplaceMulToIdentity final : public PredicateBasedPass { + explicit ReplaceMulToIdentity() + : PredicateBasedPass(PassType::Fuse, PassEfficiency::Complete, + PassOptimizationType::Compute) {} + + std::string getPassName() const override { + return "replace_mul_to_identity"; + } + + bool patternMatchPredicate(Node* node) override { + return node->kind() == kMul && + (node->inputs()[0]->node()->kind() == kConstant || node->inputs()[1]->node()->kind() == kConstant); + } + + bool runTransform(Node* n, Graph& graph, + NodeDestroyType& destroy_current) override { + Node* mul_node = n; + Node* mul_ipt_0 = n->inputs()[0]->node(); + Node* mul_ipt_1 = n->inputs()[1]->node(); + + if (mul_ipt_0->kind() == kConstant) { + auto scale = mul_ipt_0->t(kvalue); + if (scale.sizes().size() == 1 && scale.sizes()[0] != 1) { + return false; + } + if (scale.sizes().size() > 1) { + return false; + } + const auto& float_data = scale.floats(); + if (float_data.size() > 0 && fabs(float_data[0] - 1.0) > 1e-05) { + return false; + } + const auto& double_data = scale.doubles(); + if (double_data.size() > 0 && fabs(double_data[0] - 1.0) > 1e-05) { + return false; + } + const auto& int32_data = scale.int32s(); + if (int32_data.size() > 0 && int32_data[0] != 1) { + return false; + } + const auto& int64_data = scale.int64s(); + if (int64_data.size() > 0 && int64_data[0] != 1) { + return false; + } + if (float_data.size() == 0 && double_data.size() == 0 && int32_data.size() == 0 && int64_data.size() == 0) { + return false; + } + if (!tryReplacingAllUsesWith(mul_node->output(), mul_node->inputs()[1])) { + return false; + } + } else { + auto scale = mul_ipt_1->t(kvalue); + if (scale.sizes().size() == 1 && scale.sizes()[0] != 1) { + return false; + } + if (scale.sizes().size() > 1) { + return false; + } + const auto& float_data = scale.floats(); + if (float_data.size() > 0 && fabs(float_data[0] - 1.0) > 1e-05) { + return false; + } + const auto& double_data = scale.doubles(); + if (double_data.size() > 0 && fabs(double_data[0] - 1.0) > 1e-05) { + return false; + } + const auto& int32_data = scale.int32s(); + if (int32_data.size() > 0 && int32_data[0] != 1) { + return false; + } + const auto& int64_data = scale.int64s(); + if (int64_data.size() > 0 && int64_data[0] != 1) { + return false; + } + if (float_data.size() == 0 && double_data.size() == 0 && int32_data.size() == 0 && int64_data.size() == 0) { + return false; + } + if (!tryReplacingAllUsesWith(mul_node->output(), mul_node->inputs()[0])) { + return false; + } + } + return true; + } +}; + +} // namespace optimization +} // namespace ONNX_NAMESPACE diff --git a/paddle2onnx/paddle_reader.cc b/paddle2onnx/paddle_reader.cc new file mode 100755 index 000000000..4d4aca513 --- /dev/null +++ b/paddle2onnx/paddle_reader.cc @@ -0,0 +1,78 @@ +#include +#include +#include +#include +#include +#include "paddle2onnx/converter.h" +#include "paddle2onnx/mapper/exporter.h" +#include "paddle2onnx/parser/parser.h" + +namespace paddle2onnx { + +int32_t GetDataTypeFromPaddle(int dtype) { + if (dtype == P2ODataType::FP32) { + return 0; + } else if (dtype == P2ODataType::FP64) { + return 1; + } else if (dtype == P2ODataType::UINT8) { + return 2; + } else if (dtype == P2ODataType::INT8) { + return 3; + } else if (dtype == P2ODataType::INT32) { + return 4; + } else if (dtype == P2ODataType::INT64) { + return 5; + } + Assert(false, "Only support float/double/uint8/int32/int64 in PaddleReader."); + return -1; +} + +PaddleReader::PaddleReader(const char* model_buffer, int buffer_size) { + PaddleParser parser; + Assert(parser.Init(model_buffer, buffer_size), + "Failed to parse PaddlePaddle model."); + + num_inputs = parser.inputs.size(); + num_outputs = parser.outputs.size(); + for (int i = 0; i < num_inputs; ++i) { + std::strcpy(inputs[i].name, parser.inputs[i].name.c_str()); + inputs[i].rank = parser.inputs[i].Rank(); + inputs[i].shape = new int64_t[inputs[i].rank]; + for (int j = 0; j < inputs[i].rank; ++j) { + inputs[i].shape[j] = parser.inputs[i].shape[j]; + } + inputs[i].dtype = GetDataTypeFromPaddle(parser.inputs[i].dtype); + } + + for (int i = 0; i < num_outputs; ++i) { + std::strcpy(outputs[i].name, parser.outputs[i].name.c_str()); + outputs[i].rank = parser.outputs[i].Rank(); + outputs[i].shape = new int64_t[outputs[i].rank]; + for (int j = 0; j < outputs[i].rank; ++j) { + outputs[i].shape[j] = parser.outputs[i].shape[j]; + } + outputs[i].dtype = GetDataTypeFromPaddle(parser.outputs[i].dtype); + } + for (size_t i = 0; i < parser.NumOfOps(0); ++i) { + if (parser.GetOpDesc(0, i).type().find("quantize") != std::string::npos) { + is_quantize_model = true; + break; + } + } + for (size_t i = 0; i < parser.NumOfOps(0); ++i) { + if (parser.GetOpDesc(0, i).type().find("multiclass_nms3") != std::string::npos) { + has_nms = true; + auto& op = parser.GetOpDesc(0, i); + parser.GetOpAttr(op, "background_label", &nms_params.background_label); + parser.GetOpAttr(op, "keep_top_k", &nms_params.keep_top_k); + parser.GetOpAttr(op, "nms_eta", &nms_params.nms_eta); + parser.GetOpAttr(op, "nms_threshold", &nms_params.nms_threshold); + parser.GetOpAttr(op, "score_threshold", &nms_params.score_threshold); + parser.GetOpAttr(op, "nms_top_k", &nms_params.nms_top_k); + parser.GetOpAttr(op, "normalized", &nms_params.normalized); + break; + } + } +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/parser/parser.cc b/paddle2onnx/parser/parser.cc new file mode 100755 index 000000000..d2c743a2d --- /dev/null +++ b/paddle2onnx/parser/parser.cc @@ -0,0 +1,862 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "paddle2onnx/parser/parser.h" + +#include +#include +#include +#include + +#include "paddle2onnx/utils/utils.h" + +namespace paddle2onnx { +bool PaddleParser::LoadProgram(const std::string& model) { + prog = std::make_shared(); + std::ifstream fin(model, std::ios::in | std::ios::binary); + if (!fin.is_open()) { + P2OLogger() << "Failed to read model file: " << model + << ", please make sure your model file or file path is valid." + << std::endl; + return false; + } + + std::string contents; + fin.seekg(0, std::ios::end); + contents.clear(); + contents.resize(fin.tellg()); + fin.seekg(0, std::ios::beg); + fin.read(&(contents.at(0)), contents.size()); + fin.close(); + + if (!prog->ParseFromString(contents)) { + P2OLogger() << "Failed to parse paddlepaddle model from read content." + << std::endl; + return false; + } + return true; +} + +bool PaddleParser::LoadProgram(const void* model_buffer, int64_t model_size) { + prog = std::make_shared(); + if (!prog->ParseFromArray(model_buffer, model_size)) { + P2OLogger() << "Failed to parse PaddlePaddle model from memory buffer." + << std::endl; + return false; + } + return true; +} + +bool PaddleParser::GetParamNames(std::vector* var_names) { + var_names->clear(); + int block_size = prog->blocks_size(); + for (auto i = 0; i < block_size; ++i) { + auto block = prog->blocks(i); + int vars_size = block.vars_size(); + for (auto j = 0; j < vars_size; ++j) { + auto type = block.vars(j).type().type(); + if (type == framework::proto::VarType_Type::VarType_Type_SELECTED_ROWS) { + P2OLogger() + << "VarType of SELECTED_ROWS is not supported by Paddle2ONNX." + << std::endl; + return false; + } + if (type == framework::proto::VarType_Type::VarType_Type_FEED_MINIBATCH) { + continue; + } + if (type == paddle2onnx::framework::proto::VarType_Type:: + VarType_Type_FETCH_LIST) { + continue; + } + if (type == + paddle2onnx::framework::proto::VarType_Type::VarType_Type_READER) { + continue; + } + if (type == + paddle2onnx::framework::proto::VarType_Type::VarType_Type_RAW) { + continue; + } + if (!block.vars(j).persistable()) { + continue; + } + var_names->push_back(block.vars(j).name()); + } + } + std::sort(var_names->begin(), var_names->end()); + return true; +} + +bool PaddleParser::LoadParamsFromMemoryBuffer( + const std::string& params_buffer) { + params.clear(); + int64_t total_size = params_buffer.size(); + + std::vector var_names; + GetParamNames(&var_names); + + int read_size = 0; + while (read_size < total_size) { + auto index = params.size(); + if (index >= var_names.size()) { + P2OLogger() << "Unexcepted situation happend, while reading the " + "parameters of PaddlePaddle model." + << std::endl; + return false; + } + + { + // read version, we don't need this + uint32_t version; + params_buffer.copy(reinterpret_cast(&version), sizeof(version), + read_size); + read_size += sizeof(version); + } + { + // read lod_level, we don't use it + // this has to be zero, otherwise not support + uint64_t lod_level; + params_buffer.copy(reinterpret_cast(&lod_level), sizeof(lod_level), + read_size); + read_size += sizeof(lod_level); + if (lod_level != 0) { + P2OLogger() << "Only supports weight with lod_level = 0." << std::endl; + return false; + } + } + { + // Another version, we don't use it + uint32_t version; + params_buffer.copy(reinterpret_cast(&version), sizeof(version), + read_size); + read_size += sizeof(version); + } + { + // read size of TensorDesc + int32_t size; + params_buffer.copy(reinterpret_cast(&size), sizeof(size), + read_size); + read_size += sizeof(size); + // read TensorDesc + std::unique_ptr buf(new char[size]); + params_buffer.copy(reinterpret_cast(buf.get()), size, read_size); + read_size += size; + + std::unique_ptr + tensor_desc(new paddle2onnx::framework::proto::VarType_TensorDesc()); + tensor_desc->ParseFromArray(buf.get(), size); + + Weight weight; + + int32_t numel = 1; + int32_t data_type = tensor_desc->data_type(); + weight.dtype = data_type; + for (auto i = 0; i < tensor_desc->dims().size(); ++i) { + numel *= tensor_desc->dims()[i]; + weight.shape.push_back(tensor_desc->dims()[i]); + } + + // read weight data + weight.buffer.resize(numel * PaddleDataTypeSize(data_type)); + params_buffer.copy(weight.buffer.data(), + numel * PaddleDataTypeSize(data_type), read_size); + read_size += numel * PaddleDataTypeSize(data_type); + params[var_names[index]] = weight; + } + } + return true; +} + +bool PaddleParser::LoadParamsFromMemoryBuffer(const void* params_buffer, + int64_t params_size) { + params.clear(); + + const char* read_pointer = reinterpret_cast(params_buffer); + std::vector var_names; + GetParamNames(&var_names); + + while (params_size > 0) { + auto index = params.size(); + if (index >= var_names.size()) { + P2OLogger() << "Unexcepted situation happend, while reading the " + "parameters of PaddlePaddle model." + << std::endl; + return false; + } + + { + // read version, we don't need this + uint32_t version; + std::memcpy(&version, read_pointer, sizeof(version)); + read_pointer += sizeof(version); + params_size -= sizeof(version); + } + { + // read lod_level, we don't use it + // this has to be zero, otherwise not support + uint64_t lod_level; + std::memcpy(&lod_level, read_pointer, sizeof(lod_level)); + read_pointer += sizeof(lod_level); + params_size -= sizeof(lod_level); + if (lod_level != 0) { + P2OLogger() << "Only supports weight with lod_level = 0." << std::endl; + return false; + } + } + { + // Another version, we don't use it + uint32_t version; + std::memcpy(&version, read_pointer, sizeof(version)); + read_pointer += sizeof(version); + params_size -= sizeof(version); + } + { + // read size of TensorDesc + int32_t size; + std::memcpy(&size, read_pointer, sizeof(size)); + read_pointer += sizeof(size); + params_size -= sizeof(size); + // read TensorDesc + std::unique_ptr buf(new char[size]); + std::memcpy(buf.get(), read_pointer, size); + read_pointer += size; + params_size -= size; + + std::unique_ptr + tensor_desc(new paddle2onnx::framework::proto::VarType_TensorDesc()); + tensor_desc->ParseFromArray(buf.get(), size); + + Weight weight; + + int32_t numel = 1; + int32_t data_type = tensor_desc->data_type(); + weight.dtype = data_type; + for (auto i = 0; i < tensor_desc->dims().size(); ++i) { + numel *= tensor_desc->dims()[i]; + weight.shape.push_back(tensor_desc->dims()[i]); + } + + // read weight data + weight.buffer.resize(numel * PaddleDataTypeSize(data_type)); + std::memcpy(weight.buffer.data(), read_pointer, + numel * PaddleDataTypeSize(data_type)); + read_pointer += numel * PaddleDataTypeSize(data_type); + params_size -= numel * PaddleDataTypeSize(data_type); + params[var_names[index]] = weight; + } + } + return true; +} + +bool PaddleParser::LoadParams(const std::string& path) { + params.clear(); + std::ifstream is(path, std::ios::in | std::ios::binary); + if (!is.is_open()) { + P2OLogger() << "Cannot open file " << path << " to read." << std::endl; + return false; + } + is.seekg(0, std::ios::end); + int64_t total_size = is.tellg(); + is.seekg(0, std::ios::beg); + std::vector var_names; + GetParamNames(&var_names); + + int64_t read_size = 0; + while (read_size < total_size) { + { + // read version, we don't need this + uint32_t version; + read_size += sizeof(version); + is.read(reinterpret_cast(&version), sizeof(version)); + } + { + // read lod_level, we don't use it + // this has to be zero, otherwise not support + uint64_t lod_level; + read_size += sizeof(lod_level); + is.read(reinterpret_cast(&lod_level), sizeof(lod_level)); + Assert(lod_level == 0, + "Paddle2ONNX: Only support weight with lod_level = 0."); + } + { + // Another version, we don't use it + uint32_t version; + read_size += sizeof(version); + is.read(reinterpret_cast(&version), sizeof(version)); + } + { + // read size of TensorDesc + int32_t size; + read_size += sizeof(size); + is.read(reinterpret_cast(&size), sizeof(size)); + // read TensorDesc + std::unique_ptr buf(new char[size]); + read_size += size; + is.read(reinterpret_cast(buf.get()), size); + + std::unique_ptr + tensor_desc(new paddle2onnx::framework::proto::VarType_TensorDesc()); + tensor_desc->ParseFromArray(buf.get(), size); + + Weight weight; + + int32_t numel = 1; + int32_t data_type = tensor_desc->data_type(); + weight.dtype = data_type; + for (auto i = 0; i < tensor_desc->dims().size(); ++i) { + numel *= tensor_desc->dims()[i]; + weight.shape.push_back(tensor_desc->dims()[i]); + } + + // read weight data + weight.buffer.resize(numel * PaddleDataTypeSize(data_type)); + read_size += numel * PaddleDataTypeSize(data_type); + is.read(weight.buffer.data(), numel * PaddleDataTypeSize(data_type)); + auto index = params.size(); + if (index >= var_names.size()) { + P2OLogger() << "Unexcepted situation happend while reading parameters " + "of PaddlePaddle model." + << std::endl; + return false; + } + params[var_names[index]] = weight; + } + } + is.close(); + return true; +} + +int PaddleParser::NumOfBlocks() const { return prog->blocks_size(); } + +int PaddleParser::NumOfOps(int block_idx) const { + Assert(block_idx < NumOfBlocks(), + "block_idx is greater than number of blocks."); + return prog->blocks(block_idx).ops_size(); +} + +const framework::proto::OpDesc& PaddleParser::GetOpDesc(int32_t block_idx, + int32_t op_idx) const { + Assert(block_idx < NumOfBlocks(), + "block_idx is greater than number of blocks."); + Assert(op_idx < NumOfOps(block_idx), + "op_idx is greater than number of operators."); + return prog->blocks(block_idx).ops(op_idx); +} + +void PaddleParser::InitBlock() { + // if (ExistsDumplicateTensorName()) { + // return false; + // } + GetBlocksVarName2Id(); + GetBlocksOps(); + GetGlobalBlockInputOutputInfo(); +} + +bool PaddleParser::Init(const std::string& _model, const std::string& _params) { + std::vector weights; + if (!LoadProgram(_model)) { + P2OLogger() << "Failed to load program of PaddlePaddle model." << std::endl; + return false; + } + if (_params != "") { + if (!LoadParams(_params)) { + P2OLogger() << "Failed to load parameters of PaddlePaddle model." + << std::endl; + return false; + } + } + InitBlock(); + return true; +} + +bool PaddleParser::Init(const void* model_buffer, int64_t model_size, + const void* params_buffer, int64_t params_size) { + std::vector weights; + if (!LoadProgram(model_buffer, model_size)) { + P2OLogger() << "Failed to load program of PaddlePaddle model from memory." + << std::endl; + return false; + } + if (params_buffer != nullptr && params_size > 0) { + if (!LoadParamsFromMemoryBuffer(params_buffer, params_size)) { + P2OLogger() + << "Failed to load parameters of PaddlePaddle model from memory." + << std::endl; + return false; + } + } + InitBlock(); + return true; +} + +bool PaddleParser::IsConstantTensor(const int64_t& block_id, + const std::string& tensor_name) const { + Assert(block_id < _constant_ops.size(), + "block_id is out of range while calling IsConstantTensor."); + bool is_constant = false; + { + auto iter = _constant_ops[block_id].find(tensor_name); + is_constant = (iter != _constant_ops[block_id].end()); + } + if (!is_constant) { + auto iter = params.find(tensor_name); + is_constant = (iter != params.end()); + } + return is_constant; +} + +void PaddleParser::GetBlocksVarName2Id() { + _blocks_var_name2id.clear(); + _blocks_var_name2id.resize(prog->blocks_size()); + for (auto i = 0; i < prog->blocks_size(); ++i) { + for (auto j = 0; j < prog->blocks(i).vars_size(); ++j) { + _blocks_var_name2id[i][prog->blocks(i).vars(j).name()] = j; + } + } +} + +void PaddleParser::GetBlocksOps() { + is_quantized_model = false; + _blocks_ops.clear(); + _constant_ops.clear(); + _blocks_ops.resize(prog->blocks_size()); + _constant_ops.resize(prog->blocks_size()); + for (auto i = 0; i < prog->blocks_size(); ++i) { + _blocks_ops[i].reserve(prog->blocks(i).ops_size()); + for (auto j = 0; j < prog->blocks(i).ops_size(); ++j) { + _blocks_ops[i].push_back(&prog->blocks(i).ops(j)); + if (prog->blocks(i).ops(j).type() == "assign_value") { + _constant_ops[i][prog->blocks(i).ops(j).outputs(0).arguments(0)] = j; + } + // Determine whether the model is a quantized model, if it is a quantized + // model, set is_quantized_model to be true + if (!is_quantized_model && + prog->blocks(i).ops(j).type().find("quantize") != std::string::npos) { + is_quantized_model = true; + P2OLogger() << "[Info] The Paddle model is a quantized model. " + << std::endl; + } + } + } +} + +TensorInfo PaddleParser::GetTensorInfo( + const std::string& name, + const paddle2onnx::framework::proto::BlockDesc& block) const { + auto block_idx = block.idx(); + auto iter = _blocks_var_name2id[block_idx].find(name); + if (iter == _blocks_var_name2id[block_idx].end()) { + if (block_idx == 0) { + Assert(false, + "Cannot find " + name + " in _blocks_var_name2id(global block)."); + } else { + block_idx = block.parent_idx(); + iter = _blocks_var_name2id[block_idx].find(name); + Assert(iter != _blocks_var_name2id[block_idx].end(), + "Cannot find " + name + " in _blocks_var_name2id(parent block)."); + } + } + auto var_idx = iter->second; + + // Dangerous conversion, lod tensor array is under limited supporting + // Only works in some control flow situation + if (prog->blocks(block_idx).vars(var_idx).type().has_tensor_array()) { + auto tensor_array = + prog->blocks(block_idx).vars(var_idx).type().tensor_array(); + TensorInfo info; + info.is_tensor_array = true; + info.name = name; + info.dtype = tensor_array.tensor().data_type(); + for (auto i = 0; i < tensor_array.tensor().dims_size(); ++i) { + info.shape.push_back(tensor_array.tensor().dims(i)); + } + return info; + } + + auto tensor = prog->blocks(block_idx).vars(var_idx).type().lod_tensor(); + TensorInfo info; + info.name = name; + info.dtype = tensor.tensor().data_type(); + for (auto i = 0; i < tensor.tensor().dims_size(); ++i) { + info.shape.push_back(tensor.tensor().dims(i)); + } + + return info; +} + +bool PaddleParser::OpHasInput(int64_t block_id, int64_t op_id, + const std::string& name) const { + auto& block = prog->blocks(block_id); + auto& op = block.ops(op_id); + for (auto i = 0; i < op.inputs_size(); ++i) { + if (op.inputs(i).parameter() == name) { + if (op.inputs(i).arguments_size() > 0) { + return true; + } + } + } + return false; +} + +std::vector PaddleParser::GetOpInput( + int64_t block_id, int64_t op_id, const std::string& name) const { + auto& block = prog->blocks(block_id); + auto& op = block.ops(op_id); + std::vector inputs; + bool found = false; + for (auto i = 0; i < op.inputs_size(); ++i) { + if (op.inputs(i).parameter() == name) { + for (auto j = 0; j < op.inputs(i).arguments_size(); ++j) { + inputs.push_back(GetTensorInfo(op.inputs(i).arguments(j), block)); + found = true; + } + break; + } + } + Assert(found, "Cannot find input: " + name + " in operator: " + op.type()); + return inputs; +} + +bool PaddleParser::OpHasOutput(int64_t block_id, int64_t op_id, + const std::string& name) const { + auto& block = prog->blocks(block_id); + auto& op = block.ops(op_id); + for (auto i = 0; i < op.outputs_size(); ++i) { + if (op.outputs(i).parameter() == name) { + if (op.outputs(i).arguments_size() > 0) { + return true; + } + } + } + return false; +} + +std::vector PaddleParser::GetOpOutput( + int64_t block_id, int64_t op_id, const std::string& name) const { + auto& block = prog->blocks(block_id); + auto& op = block.ops(op_id); + std::vector outputs; + bool found = false; + for (auto i = 0; i < op.outputs_size(); ++i) { + if (op.outputs(i).parameter() == name) { + for (auto j = 0; j < op.outputs(i).arguments_size(); ++j) { + outputs.push_back(GetTensorInfo(op.outputs(i).arguments(j), block)); + found = true; + } + break; + } + } + Assert(found, "Cannot find output: " + name + " in operator: " + op.type()); + return outputs; +} + +bool PaddleParser::OpIsAttrVar(int64_t block_id, int64_t op_id, + const std::string& name) const { + bool is_attr_var = false; + auto& op = GetOpDesc(block_id, op_id); + for (auto i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == name && IsAttrVar(op, i)) { + is_attr_var = true; + break; + } + } + return is_attr_var; +} + +std::vector PaddleParser::GetOpAttrVar( + int64_t block_id, int64_t op_id, const std::string& name) const { + auto& block = prog->blocks(block_id); + auto& op = block.ops(op_id); + + bool found = false; + std::vector inputs; + for (auto i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == name) { + Assert(IsAttrVar(op, i), "Required AttrVar: " + name + + " type is Variable in operator: " + + op.type()); + // Case 1: Attribute is a single Var + if (op.attrs(i).has_var_name()) { + inputs.push_back(GetTensorInfo(op.attrs(i).var_name(), block)); + } else { // Case 2: Attribute is a List[Var] + for (int idx = 0; idx < op.attrs(i).vars_name_size(); ++idx) { + auto& var_name = op.attrs(i).vars_name(idx); + inputs.push_back(GetTensorInfo(var_name, block)); + } + } + found = true; + break; + } + } + Assert(found, "Cannot find AttrVar: " + name + " in operator: " + op.type()); + return inputs; +} + +bool PaddleParser::IsAttrVar(const paddle2onnx::framework::proto::OpDesc& op, + const int64_t& attr_id) const { + return op.attrs(attr_id).has_var_name() || + op.attrs(attr_id).vars_name_size() > 0; +} + +bool PaddleParser::OpHasAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name) const { + bool found = false; + for (auto i = 0; i < op.attrs_size(); ++i) { + // set found to true when name is in op attrs and can use GetOpAttr to get + // value + if (op.attrs(i).name() == name) { + found = true; + break; + } + } + return found; +} + +void PaddleParser::GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, int64_t* res) const { + bool found = false; + for (auto i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == name) { + found = true; + if (IsAttrVar(op, i)) break; + Assert(op.attrs(i).has_i() || op.attrs(i).has_l(), + "Cannot find int32/int64 data from attr: " + name + " in op:" + + op.type()); + if (op.attrs(i).has_i()) { + *res = (int64_t)(op.attrs(i).i()); + } else { + *res = op.attrs(i).l(); + } + break; + } + } + Assert(found, "Cannot found attribute " + name + " in op: " + op.type()); +} + +void PaddleParser::GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, float* res) const { + bool found = false; + for (auto i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == name) { + found = true; + if (IsAttrVar(op, i)) break; + Assert(op.attrs(i).has_f(), "Cannot find float data from attr: " + name + + " in op: " + op.type()); + *res = op.attrs(i).f(); + break; + } + } + Assert(found, "Cannot found attribute " + name + " in op: " + op.type()); +} + +void PaddleParser::GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, bool* res) const { + bool found = false; + for (auto i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == name) { + found = true; + if (IsAttrVar(op, i)) break; + Assert(op.attrs(i).has_b(), "Cannot find bool data from attr: " + name + + " in op: " + op.type()); + *res = op.attrs(i).b(); + break; + } + } + Assert(found, "Cannot found attribute " + name + " in op: " + op.type()); +} + +void PaddleParser::GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, std::string* res) const { + bool found = false; + for (auto i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == name) { + found = true; + if (IsAttrVar(op, i)) break; + Assert(op.attrs(i).has_s(), "Cannot find string data from attr: " + name + + " in op: " + op.type()); + *res = op.attrs(i).s(); + break; + } + } + Assert(found, "Cannot found attribute " + name + " in op: " + op.type()); +} + +void PaddleParser::GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, + std::vector* res) const { + bool found = false; + res->clear(); + for (auto i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == name) { + found = true; + if (IsAttrVar(op, i)) break; + Assert(op.attrs(i).ints_size() >= 0 || op.attrs(i).longs_size() >= 0, + "Cannot find list of int32/int64 data from attr: " + name + + " in op: " + op.type()); + if (op.attrs(i).ints_size() > 0) { + for (auto j = 0; j < op.attrs(i).ints_size(); ++j) { + res->push_back(static_cast(op.attrs(i).ints(j))); + } + } else { + for (auto j = 0; j < op.attrs(i).longs_size(); ++j) { + res->push_back(op.attrs(i).longs(j)); + } + } + break; + } + } + Assert(found, "Cannot found attribute " + name + " in op: " + op.type()); +} + +void PaddleParser::GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, + std::vector* res) const { + bool found = false; + res->clear(); + for (auto i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == name) { + found = true; + if (IsAttrVar(op, i)) break; + Assert(op.attrs(i).floats_size() >= 0, + "Cannot find list of float data from attr: " + name + " in op: " + + op.type()); + for (auto j = 0; j < op.attrs(i).floats_size(); ++j) { + res->push_back(static_cast(op.attrs(i).floats(j))); + } + break; + } + } + Assert(found, "Cannot found attribute " + name + " in op: " + op.type()); +} + +void PaddleParser::GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, + std::vector* res) const { + bool found = false; + res->clear(); + for (auto i = 0; i < op.attrs_size(); ++i) { + if (op.attrs(i).name() == name) { + found = true; + if (IsAttrVar(op, i)) break; + Assert(op.attrs(i).float64s_size() >= 0, + "Cannot find list of double data from attr: " + name + " in op: " + + op.type()); + for (auto j = 0; j < op.attrs(i).float64s_size(); ++j) { + res->push_back(static_cast(op.attrs(i).float64s(j))); + } + break; + } + } + Assert(found, "Cannot found attribute " + name + " in op: " + op.type()); +} + +void PaddleParser::GetGlobalBlockInputOutputInfo() { + inputs.clear(); + outputs.clear(); + // record the origin order of Paddle model + std::vector inputs_with_no_order; + std::vector outputs_with_no_order; + std::vector input_order; + std::vector output_order; + + for (auto i = 0; i < prog->blocks(0).ops_size(); ++i) { + if (prog->blocks(0).ops(i).type() == "fetch") { + std::string name = prog->blocks(0).ops(i).inputs(0).arguments(0); + outputs_with_no_order.push_back(GetTensorInfo(name, prog->blocks(0))); + int64_t order = -1; + GetOpAttr(prog->blocks(0).ops(i), "col", &order); + output_order.push_back(order); + } else if (prog->blocks(0).ops(i).type() == "feed") { + std::string name = prog->blocks(0).ops(i).outputs(0).arguments(0); + inputs_with_no_order.push_back(GetTensorInfo(name, prog->blocks(0))); + int64_t order = -1; + GetOpAttr(prog->blocks(0).ops(i), "col", &order); + input_order.push_back(order); + } + + // This is a trick check, due to the uncorrect shape inference of Paddle + // model + // Remove this after shape inference fixed + if (prog->blocks(0).ops(i).type() == "multiclass_nms3") { + _has_nms = true; + } + } + + // Reorder the inputs and outputs to keep same with the original Paddle model + inputs.resize(input_order.size()); + for (size_t i = 0; i < input_order.size(); ++i) { + inputs[input_order[i]] = inputs_with_no_order[i]; + } + outputs.resize(output_order.size()); + for (size_t i = 0; i < output_order.size(); ++i) { + outputs[output_order[i]] = outputs_with_no_order[i]; + } + + // Trick setting for nms, remove this after shape inference fixed + if (_has_nms) { + for (size_t i = 0; i < outputs.size(); ++i) { + if (outputs[i].shape.size() == 2) { + if (outputs[i].shape[1] == 6) { + outputs[i].shape[0] = -1; + } + } + } + } +} + +int32_t PaddleDataTypeSize(int32_t paddle_dtype) { + Assert(paddle_dtype != FP16, "Float16 is not supported."); + if (paddle_dtype == P2ODataType::BOOL) { + return sizeof(bool); + } else if (paddle_dtype == P2ODataType::INT8) { + return sizeof(int8_t); + } else if (paddle_dtype == P2ODataType::INT16) { + return sizeof(int16_t); + } else if (paddle_dtype == P2ODataType::INT32) { + return sizeof(int32_t); + } else if (paddle_dtype == P2ODataType::INT64) { + return sizeof(int64_t); + } else if (paddle_dtype == P2ODataType::FP32) { + return sizeof(float); + } else if (paddle_dtype == P2ODataType::FP64) { + return sizeof(double); + } else if (paddle_dtype == P2ODataType::UINT8) { + return sizeof(uint8_t); + } else { + Assert(false, "Unexpected data type: " + std::to_string(paddle_dtype)); + } + return -1; +} + +bool PaddleParser::ExistsDumplicateTensorName() const { + std::set names; + for (auto i = 0; i < prog->blocks(0).ops_size(); ++i) { + auto& op = prog->blocks(0).ops(i); + for (auto j = 0; j < op.outputs_size(); ++j) { + for (auto k = 0; k < op.outputs(j).arguments_size(); ++k) { + if (op.type() == "fetch") { + continue; + } + if (names.find(op.outputs(j).arguments(k)) != names.end()) { + P2OLogger() << "There's dumplicate output name: " + << op.outputs(j).arguments(k) + << " in this model, not supported yet." << std::endl; + return true; + } + names.insert(op.outputs(j).arguments(k)); + } + } + } + return false; +} +} // namespace paddle2onnx diff --git a/paddle2onnx/parser/parser.h b/paddle2onnx/parser/parser.h new file mode 100644 index 000000000..0d15a72bc --- /dev/null +++ b/paddle2onnx/parser/parser.h @@ -0,0 +1,258 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#include +#include +#include + +#include "paddle2onnx/proto/p2o_paddle.pb.h" +#include "paddle2onnx/utils/utils.h" + +namespace paddle2onnx { + +enum P2ODataType { + BOOL, + INT16, + INT32, + INT64, + FP16, + FP32, + FP64, + X7, + X8, + X9, + X10, + X11, + X12, + X13, + X14, + X15, + X16, + X17, + X18, + X19, + UINT8, + INT8, +}; +int32_t PaddleDataTypeSize(int32_t paddle_dtype); + +struct TensorInfo { + std::string name; + std::vector shape; + int64_t Rank() const { return static_cast(shape.size()); } + int32_t dtype; + bool is_tensor_array = false; + + TensorInfo() {} + TensorInfo(const std::string& _name, const std::vector& _shape, + const int32_t& _dtype) { + name = _name; + shape.assign(_shape.begin(), _shape.end()); + dtype = _dtype; + } + + TensorInfo(const TensorInfo& info) { + name = info.name; + shape.assign(info.shape.begin(), info.shape.end()); + dtype = info.dtype; + is_tensor_array = info.is_tensor_array; + } +}; + +struct Weight { + std::vector buffer; + std::vector shape; + int32_t dtype; + + template + void set(int32_t data_type, const std::vector& dims, + const std::vector& data) { + buffer.clear(); + shape.clear(); + dtype = data_type; + buffer.resize(data.size() * PaddleDataTypeSize(dtype)); + memcpy(buffer.data(), data.data(), data.size() * PaddleDataTypeSize(dtype)); + for (auto& d : dims) { + shape.push_back(d); + } + } + template + void get(std::vector* data) const { + int64_t nums = std::accumulate(std::begin(shape), std::end(shape), 1, + std::multiplies()); + data->resize(nums); + if (dtype == P2ODataType::INT64) { + std::vector value(nums); + memcpy(value.data(), buffer.data(), nums * sizeof(int64_t)); + data->assign(value.begin(), value.end()); + } else if (dtype == P2ODataType::INT32) { + std::vector value(nums); + memcpy(value.data(), buffer.data(), nums * sizeof(int32_t)); + data->assign(value.begin(), value.end()); + } else if (dtype == P2ODataType::INT8) { + std::vector value(nums); + memcpy(value.data(), buffer.data(), nums * sizeof(int8_t)); + data->assign(value.begin(), value.end()); + } else if (dtype == P2ODataType::FP32) { + std::vector value(nums); + memcpy(value.data(), buffer.data(), nums * sizeof(float)); + data->assign(value.begin(), value.end()); + } else if (dtype == P2ODataType::FP64) { + std::vector value(nums); + memcpy(value.data(), buffer.data(), nums * sizeof(double)); + data->assign(value.begin(), value.end()); + } else { + Assert(false, + "Weight::get() only support int64/int32/int8/float32/float64."); + } + } +}; + +class PaddleParser { + public: + // recording variable name:id for each block of a program + std::vector> _blocks_var_name2id; + // recoring set of operators for each block + std::vector> + _blocks_ops; + std::shared_ptr prog; + std::map params; + std::vector inputs; + std::vector outputs; + bool is_quantized_model = false; // If the Paddle model is a quantized model, + // set is_quantized_model to be true + + bool Init(const std::string& _model, const std::string& _params = ""); + bool Init(const void* model_buffer, int64_t model_size, + const void* params_buffer = nullptr, int64_t params_size = 0); + void InitBlock(); + + int NumOfBlocks() const; + int NumOfOps(int block_idx) const; + bool HasNms() const { return _has_nms; } + const framework::proto::OpDesc& GetOpDesc(int32_t block_idx, + int32_t op_idx) const; + + bool OpHasInput(int64_t block_id, int64_t op_id, + const std::string& name) const; + bool OpHasOutput(int64_t block_id, int64_t op_id, + const std::string& name) const; + + std::vector GetOpInput(int64_t block_id, int64_t op_id, + const std::string& name) const; + std::vector GetOpOutput(int64_t block_id, int64_t op_id, + const std::string& name) const; + + bool OpIsAttrVar(int64_t block_id, int64_t op_id, + const std::string& name) const; + + std::vector GetOpAttrVar(int64_t block_id, int64_t op_id, + const std::string& name) const; + + bool OpHasAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name) const; + + void GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, int64_t* res) const; + void GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, float* res) const; + void GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, bool* res) const; + void GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, std::string* res) const; + void GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, std::vector* res) const; + void GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, std::vector* res) const; + void GetOpAttr(const paddle2onnx::framework::proto::OpDesc& op, + const std::string& name, std::vector* res) const; + + bool IsConstantTensor(const int64_t& block_idx, + const std::string& tensor_name) const; + template + bool TryGetTensorValue(const int64_t& block_id, + const std::string& tensor_name, + std::vector* data) const; + + private: + // If the model has same output name in difference operators + // will fail to convert + bool IsAttrVar(const paddle2onnx::framework::proto::OpDesc& op, + const int64_t& attr_id) const; + bool ExistsDumplicateTensorName() const; + void GetBlocksVarName2Id(); + void GetBlocksOps(); + TensorInfo GetTensorInfo( + const std::string& name, + const paddle2onnx::framework::proto::BlockDesc& block) const; + void GetGlobalBlockInputOutputInfo(); + bool GetParamNames(std::vector* var_names); + bool LoadProgram(const std::string& model); + bool LoadProgram(const void* model_buffer, int64_t model_size); + bool LoadParams(const std::string& path); + bool LoadParamsFromMemoryBuffer(const std::string& buffer); + bool LoadParamsFromMemoryBuffer(const void* params_buffer, + int64_t params_size); + // This is a trick flag + // While there's a nms operator in paddle model, + // the shape inference of paddle is not correct + bool _has_nms = false; + std::vector> _constant_ops; +}; + +template +bool PaddleParser::TryGetTensorValue(const int64_t& block_id, + const std::string& tensor_name, + std::vector* data) const { + { + auto iter = params.find(tensor_name); + if (iter != params.end()) { + (iter->second).get(data); + return true; + } + } + Assert(block_id < _constant_ops.size(), + "block_id is out of range while calling TryGetTensorValue."); + auto iter = _constant_ops[block_id].find(tensor_name); + if (iter == _constant_ops[block_id].end()) { + return false; + } + Assert(iter->second < _blocks_ops[block_id].size(), + "op_idx is out of range while calling TryGetTensorValue."); + auto op = _blocks_ops[block_id][iter->second]; + int64_t dtype; + GetOpAttr(*op, "dtype", &dtype); + if (dtype == P2ODataType::INT64) { + std::vector value; + GetOpAttr(*op, "int64_values", &value); + data->assign(value.begin(), value.end()); + } else if (dtype == P2ODataType::INT32) { + std::vector value; + GetOpAttr(*op, "int32_values", &value); + data->assign(value.begin(), value.end()); + } else if (dtype == P2ODataType::FP32) { + std::vector value; + GetOpAttr(*op, "fp32_values", &value); + data->assign(value.begin(), value.end()); + } else { + Assert( + false, + "Only support int32/int64/float32 data type in assign_value operator."); + } + return true; +} + +} // namespace paddle2onnx diff --git a/paddle2onnx/proto/CMakeLists.txt b/paddle2onnx/proto/CMakeLists.txt new file mode 100644 index 000000000..41c2ba81e --- /dev/null +++ b/paddle2onnx/proto/CMakeLists.txt @@ -0,0 +1,11 @@ +if(NOT TARGET protobuf) + include(FindProtobuf) + find_package(Protobuf REQUIRED) + set(Protobuf_USE_STATIC_LIBS ON) + include_directories(${PROTOBUF_INCLUDE_DIR}) + include_directories(${CMAKE_CURRENT_SOURCE_DIR}) + set(PROTOBUF_LIBRARIES ${PROTOBUF_LIBRARIES} CACHE INTERNAL "" FORCE) +endif() + +PROTOBUF_GENERATE_CPP(PROTO_SRC PROTO_HEADER p2o_paddle.proto) +add_library(p2o_paddle_proto ${PROTO_HEADER} ${PROTO_SRC}) diff --git a/paddle2onnx/proto/p2o_paddle.proto b/paddle2onnx/proto/p2o_paddle.proto new file mode 100644 index 000000000..6398981f6 --- /dev/null +++ b/paddle2onnx/proto/p2o_paddle.proto @@ -0,0 +1,249 @@ +/* Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +syntax = "proto2"; +package paddle2onnx.framework.proto; + +// Any incompatible changes to ProgramDesc and its dependencies should +// raise the version defined version.h. +// +// Serailization and Deserialization codes should be modified in a way +// that supports old versions following the version and compatibility policy. +message Version { + optional int64 version = 1 [default = 0]; +} + +enum AttrType { + INT = 0; + FLOAT = 1; + STRING = 2; + INTS = 3; + FLOATS = 4; + STRINGS = 5; + BOOLEAN = 6; + BOOLEANS = 7; + BLOCK = 8; + LONG = 9; + BLOCKS = 10; + LONGS = 11; + FLOAT64S = 12; + VAR = 13; + VARS = 14; +} + +message ProcessMeshDesc { + required int32 id = 1; + required int32 parent_id = 2; + repeated int32 topology = 3; + repeated int32 process_group = 4; +}; + +// OpDesc describes an instance of a C++ framework::OperatorBase +// derived class type. +message OpDesc { + message Attr { + required string name = 1; + required AttrType type = 2; + optional int32 i = 3; + optional float f = 4; + optional string s = 5; + repeated int32 ints = 6; + repeated float floats = 7; + repeated string strings = 8; + optional bool b = 10; + repeated bool bools = 11; + optional int32 block_idx = 12; + optional int64 l = 13; + repeated int32 blocks_idx = 14; + repeated int64 longs = 15; + repeated double float64s = 16; + optional string var_name = 17; + repeated string vars_name = 18; + }; + + message Var { + required string parameter = 1; + repeated string arguments = 2; + }; + + required string type = 3; + repeated Var inputs = 1; + repeated Var outputs = 2; + repeated Attr attrs = 4; + optional bool is_target = 5 [default = false]; +}; + +// OpProto describes a C++ framework::OperatorBase derived class. +message OpProto { + // VarProto describes the C++ type framework::Variable. + message Var { + required string name = 1; + required string comment = 2; + + optional bool duplicable = 3 [default = false]; + optional bool intermediate = 4 [default = false]; + optional bool dispensable = 5 [default = false]; + optional bool extra = 6 [default = false]; + optional bool quant = 7 [default = false]; + } + + // AttrProto describes the C++ type Attribute. + message Attr { + required string name = 1; + required AttrType type = 2; + required string comment = 3; + // If that attribute is generated, it means the Paddle third + // language binding has responsibility to fill that + // attribute. End-User should not set that attribute. + optional bool generated = 4 [default = false]; + optional bool extra = 5 [default = false]; + optional bool quant = 6 [default = false]; + optional bool support_tensor = 7 [default = false]; + } + + required string type = 1; + repeated Var inputs = 2; + repeated Var outputs = 3; + repeated Attr attrs = 4; + required string comment = 5; +} + +message VarType { + enum Type { + // Pod Types + BOOL = 0; + INT16 = 1; + INT32 = 2; + INT64 = 3; + FP16 = 4; + FP32 = 5; + FP64 = 6; + // Tensor is used in C++. + SIZE_T = 19; + UINT8 = 20; + INT8 = 21; + BF16 = 22; + COMPLEX64 = 23; + COMPLEX128 = 24; + + // Other types that may need additional descriptions + LOD_TENSOR = 7; + SELECTED_ROWS = 8; + FEED_MINIBATCH = 9; + FETCH_LIST = 10; + STEP_SCOPES = 11; + LOD_RANK_TABLE = 12; + LOD_TENSOR_ARRAY = 13; + PLACE_LIST = 14; + READER = 15; + // Any runtime decided variable type is raw + // raw variables should manage their own allocations + // in operators like nccl_op + RAW = 17; + TUPLE = 18; + + STRING = 25; + STRINGS = 26; + VOCAB = 27; + FEED_LIST = 28; + } + + required Type type = 1; + + message TensorDesc { + // Should only be PODType. Is enforced in C++ + required Type data_type = 1; + repeated int64 dims = 2; // [UNK, 640, 480] is saved as [-1, 640, 480] + } + optional TensorDesc selected_rows = 2; + + message LoDTensorDesc { + required TensorDesc tensor = 1; + optional int32 lod_level = 2 [default = 0]; + } + optional LoDTensorDesc lod_tensor = 3; + + message LoDTensorArrayDesc { + required TensorDesc tensor = 1; + optional int32 lod_level = 2 [default = 0]; + } + optional LoDTensorArrayDesc tensor_array = 4; + + message ReaderDesc { + repeated LoDTensorDesc lod_tensor = 1; + } + optional ReaderDesc reader = 5; + + message Tuple { + repeated Type element_type = 1; + } + optional Tuple tuple = 7; + + optional TensorDesc string = 8; + optional TensorDesc strings = 9; + optional TensorDesc vocab = 10; +} + +message VarDesc { + message Attr { + required string name = 1; + required AttrType type = 2; + optional int32 i = 3; + optional string s = 4; + repeated int32 ints = 5; + }; + + required string name = 1; + required VarType type = 2; + optional bool persistable = 3 [default = false]; + // True if the variable is an input data and + // have to check the feed data shape and dtype + optional bool need_check_feed = 4 [default = false]; + optional bool is_parameter = 5 [default = false]; + optional bool stop_gradient = 6 [default = false]; + repeated Attr attrs = 7; +} + +message BlockDesc { + required int32 idx = 1; + required int32 parent_idx = 2; + repeated VarDesc vars = 3; + repeated OpDesc ops = 4; + optional int32 forward_block_idx = 5 [default = -1]; +} + +// In some cases, Paddle may perform operator definition iterations, +// and the operator uses OpVersionMap for compatibility testing. +message OpVersion { + required int32 version = 1; +} +message OpVersionMap { + message OpVersionPair { + required string op_name = 1; + required OpVersion op_version = 2; + } + repeated OpVersionPair pair = 1; +} + +// Please refer to +// https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/program.md +// for more details. +// TODO(panyx0718): A model can have multiple programs. Need a +// way to distinguish them. Maybe ID or name? +message ProgramDesc { + reserved 2, 3; // For backward compatibility. + repeated BlockDesc blocks = 1; + optional Version version = 4; + optional OpVersionMap op_version_map = 5; +} diff --git a/paddle2onnx/utils.py b/paddle2onnx/utils.py new file mode 100644 index 000000000..a65ca483b --- /dev/null +++ b/paddle2onnx/utils.py @@ -0,0 +1,131 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import + +import importlib +import collections +import time +import os +import sys + + +def try_import(module_name): + """Try importing a module, with an informative error message on failure.""" + install_name = module_name + try: + mod = importlib.import_module(module_name) + return mod + except ImportError: + err_msg = ( + "Failed importing {}. This likely means that some modules " + "requires additional dependencies that have to be " + "manually installed (usually with `pip install {}`). ").format( + module_name, install_name) + raise ImportError(err_msg) + + +def check_model(onnx_model): + onnx = try_import('onnx') + try: + onnx.checker.check_model(onnx_model) + except Exception: + raise Exception('ONNX model is not valid.') + finally: + logging.info('ONNX model generated is valid.') + + +levels = {0: 'ERROR', 1: 'WARNING', 2: 'INFO', 3: 'DEBUG'} + + +class logging(): + log_level = 2 + + @staticmethod + def log(level=2, message="", use_color=False): + current_time = time.time() + time_array = time.localtime(current_time) + current_time = time.strftime("%Y-%m-%d %H:%M:%S", time_array) + if logging.log_level >= level: + if use_color: + print("\033[1;31;40m{} [{}]\t{}\033[0m".format( + current_time, levels[level], message).encode("utf-8") + .decode("latin1")) + else: + print("{} [{}]\t{}".format(current_time, levels[level], message) + .encode("utf-8").decode("latin1")) + sys.stdout.flush() + + @staticmethod + def debug(message="", use_color=False): + logging.log(level=3, message=message, use_color=use_color) + + @staticmethod + def info(message="", use_color=False): + logging.log(level=2, message=message, use_color=use_color) + + @staticmethod + def warning(message="", use_color=True): + logging.log(level=1, message=message, use_color=use_color) + + @staticmethod + def error(message="", use_color=True, exit=True): + logging.log(level=0, message=message, use_color=use_color) + if exit: + sys.exit(-1) + + +def compare_value(a, b, cond): + if cond == 'equal': + if a != b: + return False + return True + if cond == 'greater_than': + if a <= b: + return False + return True + if cond == 'greater_equal': + if a < b: + return False + return True + if cond == 'less_equal': + if a > b: + return False + return True + if cond == 'less_than': + if a >= b: + return False + return True + + +def compare_attr(actual_value, target_value, attr_name, cond='equal'): + if not compare_value(actual_value, target_value, cond): + raise ValueError('Support {} {} {}, actually got {}=={}.'.format( + attr_name, cond, target_value, attr_name, actual_value)) + + +def compare_attr_between_dims(attr, dims, attr_name, cond='equal'): + if not compare_value(attr[dims[0]], attr[dims[1]], cond): + expect_info = 'Support {}[{}] {} {}[{}], '.format( + attr_name, dims[0], cond, attr_name, dims[1]) + actual_info = 'actually got {}[{}]=={}, not {} {}[{}]=={}.'.format( + attr_name, dims[0], attr[dims[0]], cond, attr_name, dims[1], + attr[dims[1]]) + raise ValueError(expect_info + actual_info) + + +def require_fixed_shape(op_name=None): + logging.error( + "[{}]Fixed shape is required, refer this doc for more information: https://github.com/PaddlePaddle/Paddle2ONNX/blob/develop/docs/zh/FAQ.md". + format(op_name)) diff --git a/paddle2onnx/utils/utils.h b/paddle2onnx/utils/utils.h new file mode 100644 index 000000000..463760703 --- /dev/null +++ b/paddle2onnx/utils/utils.h @@ -0,0 +1,80 @@ +// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include + +#include +#include +#include + +namespace paddle2onnx { + +inline void Assert(bool condition, const std::string& message) { + if (!condition) { + fprintf(stderr, "[ERROR] %s\n", message.c_str()); + std::abort(); + } +} + +inline const std::string RequireOpset(const int32_t& opset_version) { + return "Requires the minimal opset version of " + + std::to_string(opset_version) + "."; +} + +class P2OLogger { + public: + P2OLogger() { + line_ = ""; + prefix_ = "[Paddle2ONNX]"; + verbose_ = true; + } + explicit P2OLogger(bool verbose, + const std::string& prefix = "[Paddle2ONNX]") { + verbose_ = verbose; + line_ = ""; + prefix_ = prefix; + } + + template + P2OLogger& operator<<(const T& val) { + if (!verbose_) { + return *this; + } + std::stringstream ss; + ss << val; + line_ += ss.str(); + return *this; + } + P2OLogger& operator<<(std::ostream& (*os)(std::ostream&)) { + if (!verbose_) { + return *this; + } + std::cout << prefix_ << " " << line_ << std::endl; + line_ = ""; + return *this; + } + ~P2OLogger() { + if (!verbose_ && line_ != "") { + std::cout << line_ << std::endl; + } + } + + private: + std::string line_; + std::string prefix_; + bool verbose_ = true; +}; + +} // namespace paddle2onnx diff --git a/scripts/clean_sdk.sh b/scripts/clean_sdk.sh new file mode 100644 index 000000000..bb90b7a1e --- /dev/null +++ b/scripts/clean_sdk.sh @@ -0,0 +1,7 @@ +origin_install_dir=$1 + +rm -rf $origin_install_dir/include/onnx $origin_install_dir/include/paddle2onnx +mv $origin_install_dir/lib $origin_install_dir/lib_bak +mkdir $origin_install_dir/lib +cp $origin_install_dir/lib_bak/*fastdeploy* $origin_install_dir/lib +rm -rf $origin_install_dir/lib_bak diff --git a/third_party/onnx/.azure-pipelines/Linux-CI.yml b/third_party/onnx/.azure-pipelines/Linux-CI.yml new file mode 100644 index 000000000..dd200ba33 --- /dev/null +++ b/third_party/onnx/.azure-pipelines/Linux-CI.yml @@ -0,0 +1,140 @@ +trigger: +- main + +jobs: +- job: 'Test' + pool: + vmImage: 'Ubuntu-18.04' + strategy: + matrix: + py39-ml-debug: + python.version: '3.9' + onnx_ml: 1 + onnx_debug: 1 + onnx_lite: 0 + py38: + python.version: '3.8' + onnx_ml: 0 + onnx_debug: 0 + onnx_lite: 1 + py38-ml: + python.version: '3.8' + onnx_ml: 1 + onnx_debug: 0 + onnx_lite: 1 + py37: + python.version: '3.7' + onnx_ml: 0 + onnx_debug: 0 + onnx_lite: 1 + py37-ml: + python.version: '3.7' + onnx_ml: 1 + onnx_debug: 0 + onnx_lite: 1 + maxParallel: 6 + + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '$(python.version)' + addToPath: true + + - script: | + python -m pip -q install virtualenv + python -m virtualenv py$(python.version) + source py$(python.version)/bin/activate + + source workflow_scripts/protobuf/build_protobuf_unix.sh $(nproc) + + python -m pip install -q --upgrade pip + python -m pip install -q -r requirements-release.txt + + sudo apt-get install -qq -o=Dpkg::Use-Pty=0 -y --no-install-recommends dos2unix + git submodule update --init --recursive + export ONNX_BUILD_TESTS=1 + if [ '$(onnx_debug)' == '1' ]; then + export DEBUG=1 + fi + if [ '$(onnx_ml)' == '1' ]; then + export ONNX_ML=1 + fi + export CMAKE_ARGS="-DONNXIFI_DUMMY_BACKEND=ON -DONNX_WERROR=ON" + if [ '$(onnx_lite)' == '1' ]; then + export CMAKE_ARGS="${CMAKE_ARGS} -DONNX_USE_LITE_PROTO=ON" + fi + export ONNX_NAMESPACE=ONNX_NAMESPACE_FOO_BAR_FOR_CI + python setup.py --quiet install + displayName: 'Install ONNX and dependencies' + + - script: | + source py$(python.version)/bin/activate + + # style check (flake8 and mypy) + pip install .[lint] + bash tools/style.sh + if [ $? -ne 0 ]; then + echo "style check failed" + exit 1 + fi + + # check line endings to be UNIX + find . -type f -regextype posix-extended -regex '.*\.(py|cpp|md|h|cc|proto|proto3|in)' | xargs dos2unix --quiet + git status + git diff --exit-code + + # check auto-gen files up-to-date + python onnx/defs/gen_doc.py + python onnx/gen_proto.py -l + python onnx/gen_proto.py -l --ml + python onnx/backend/test/stat_coverage.py + + git status + git diff --exit-code -- . ':(exclude)onnx/onnx-data.proto' ':(exclude)onnx/onnx-data.proto3' + if [ $? -ne 0 ]; then + echo "git diff returned failures" + exit 1 + fi + + # Do not hardcode onnx's namespace in the c++ source code, so that + # other libraries who statically link with onnx can hide onnx symbols + # in a private namespace. + ! grep -R --include='*.cc' --include='*.h' 'namespace onnx' . + ! grep -R --include='*.cc' --include='*.h' 'onnx::' . + + pytest + if [ $? -ne 0 ]; then + echo "pytest failed" + exit 1 + fi + + # onnx c++ API tests + export LD_LIBRARY_PATH="./.setuptools-cmake-build/:$LD_LIBRARY_PATH" + ./.setuptools-cmake-build/onnx_gtests + if [ $? -ne 0 ]; then + echo "onnx_gtests failed" + exit 1 + fi + + ./.setuptools-cmake-build/onnxifi_test_driver_gtests onnx/backend/test/data/node + if [ $? -ne 0 ]; then + echo "onnxifi_test_driver_gtests failed" + exit 1 + fi + + # Mypy only works with our generated _pb.py files when we install in develop mode, so let's do that + python -m pip uninstall -y onnx + rm -rf .setuptools-cmake-build + python -m pip install -q . + + displayName: 'Run ONNX tests' + + - script: | + source py$(python.version)/bin/activate + # onnx.checker all existing backend data + python workflow_scripts/test_generated_backend.py + # onnx.checker all generated backend data + python onnx/backend/test/cmd_tools.py generate-data + python workflow_scripts/test_generated_backend.py + + displayName: Test backend test data diff --git a/third_party/onnx/.azure-pipelines/MacOS-CI.yml b/third_party/onnx/.azure-pipelines/MacOS-CI.yml new file mode 100644 index 000000000..e5ec5e930 --- /dev/null +++ b/third_party/onnx/.azure-pipelines/MacOS-CI.yml @@ -0,0 +1,105 @@ +trigger: +- main + +jobs: +- job: 'Test' + pool: + vmImage: 'macOS-10.15' + strategy: + matrix: + py39: + python.version: '3.9' + onnx_ml: 0 + onnx_debug: 0 + onnx_lite: 0 + py38: + python.version: '3.8' + onnx_ml: 0 + onnx_debug: 0 + onnx_lite: 1 + py38-ml: + python.version: '3.8' + onnx_ml: 1 + onnx_debug: 0 + onnx_lite: 1 + py38-ml-debug: + python.version: '3.8' + onnx_ml: 1 + onnx_debug: 1 + onnx_lite: 0 + py37-ml-debug: + python.version: '3.7' + onnx_ml: 1 + onnx_debug: 1 + onnx_lite: 0 + maxParallel: 6 + + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '$(python.version)' + + - script: | + # Install protobuf 3.16.0 from source + export NUM_CORES=`sysctl -n hw.logicalcpu` + source workflow_scripts/protobuf/build_protobuf_unix.sh $NUM_CORES $(pwd)/protobuf/protobuf_install + + git submodule update --init --recursive + python -m pip install -q --upgrade pip + python -m pip install -q -r requirements-release.txt + export ONNX_BUILD_TESTS=1 + if [ '$(onnx_debug)' == '1' ]; then + export DEBUG=1 + fi + if [ '$(onnx_ml)' == '1' ]; then + export ONNX_ML=1 + fi + export CMAKE_ARGS="-DONNXIFI_DUMMY_BACKEND=ON -DONNX_WERROR=ON" + if [ '$(onnx_lite)' == '1' ]; then + export CMAKE_ARGS="${CMAKE_ARGS} -DONNX_USE_LITE_PROTO=ON" + fi + export ONNX_NAMESPACE=ONNX_NAMESPACE_FOO_BAR_FOR_CI + python setup.py -q install + displayName: 'Install dependencies and ONNX' + + - script: | + # check auto-gen files up-to-date + python onnx/defs/gen_doc.py + python onnx/gen_proto.py -l + python onnx/gen_proto.py -l --ml + python onnx/backend/test/stat_coverage.py + + git status + git diff --exit-code -- . ':(exclude)onnx/onnx-data.proto' ':(exclude)onnx/onnx-data.proto3' + if [ $? -ne 0 ]; then + echo "git diff returned failures" + exit 1 + fi + + # Do not hardcode onnx's namespace in the c++ source code, so that + # other libraries who statically link with onnx can hide onnx symbols + # in a private namespace. + ! grep -R --include='*.cc' --include='*.h' 'namespace onnx' . + ! grep -R --include='*.cc' --include='*.h' 'onnx::' . + + pytest + if [ $? -ne 0 ]; then + echo "pytest failed" + exit 1 + fi + + # onnx c++ API tests + export LD_LIBRARY_PATH="./.setuptools-cmake-build/:$LD_LIBRARY_PATH" + ./.setuptools-cmake-build/onnx_gtests + if [ $? -ne 0 ]; then + echo "onnx_gtests failed" + exit 1 + fi + + ./.setuptools-cmake-build/onnxifi_test_driver_gtests onnx/backend/test/data/node + if [ $? -ne 0 ]; then + echo "onnxifi_test_driver_gtests failed" + exit 1 + fi + + displayName: 'Run ONNX Tests' diff --git a/third_party/onnx/.azure-pipelines/Windows-CI.yml b/third_party/onnx/.azure-pipelines/Windows-CI.yml new file mode 100644 index 000000000..38a2e6f17 --- /dev/null +++ b/third_party/onnx/.azure-pipelines/Windows-CI.yml @@ -0,0 +1,77 @@ +trigger: +- main + +jobs: + +- job: 'Test' + pool: + vmImage: 'windows-2019' + strategy: + matrix: + py39: + python.version: '3.9' + onnx_ml: 0 + onnx_verify_proto: 0 + py39_verify_proto: + python.version: '3.9' + onnx_ml: 0 + onnx_verify_proto: 1 + py38: + python.version: '3.8' + onnx_ml: 0 + onnx_verify_proto: 0 + py37: + python.version: '3.7' + onnx_ml: 0 + onnx_verify_proto: 0 + py37_onnx_ml: + python.version: '3.7' + onnx_ml: 1 + onnx_verify_proto: 0 + maxParallel: 4 + + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '$(python.version)' + architecture: 'x64' + + - powershell: Write-Host "##vso[task.prependpath]$env:CONDA\Scripts" + displayName: Add conda to PATH + + - script: | + conda create --yes --quiet --name py$(python.version) python=$(python.version) + conda install -n py$(python.version) -y -c conda-forge numpy libprotobuf=3.16.0 + displayName: Create Anaconda environment + + - script: | + call activate py$(python.version) + python -m pip install -q --upgrade pip + python -m pip install -q -r requirements-release.txt + + git submodule update --init --recursive + set ONNX_BUILD_TESTS=1 + set ONNX_ML=$(onnx_ml) + set CMAKE_ARGS=-DONNX_USE_PROTOBUF_SHARED_LIBS=ON -DONNX_USE_LITE_PROTO=ON -DONNX_WERROR=ON + + python setup.py -q install + pytest + IF NOT %ERRORLEVEL% EQU 0 ( + @echo "pytest failed" + EXIT 1 + ) + + python onnx/defs/gen_doc.py + python onnx/gen_proto.py -l + python onnx/gen_proto.py -l --ml + + git diff --exit-code -- . :(exclude)onnx/onnx-data.proto :(exclude)onnx/onnx-data.proto3 + IF NOT %ERRORLEVEL% EQU 0 ( + @echo "git diff returned failures" + EXIT 1 + ) + + rm -rf .setuptools-cmake-build + + + displayName: Install and test ONNX diff --git a/third_party/onnx/.clang-format b/third_party/onnx/.clang-format new file mode 100644 index 000000000..f5f354e5f --- /dev/null +++ b/third_party/onnx/.clang-format @@ -0,0 +1,101 @@ +--- +Language: Cpp +AccessModifierOffset: -1 +AlignAfterOpenBracket: AlwaysBreak +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Left +AlignOperands: false +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: true +BinPackArguments: false +BinPackParameters: false +BraceWrapping: + AfterClass: false + AfterControlStatement: false + AfterEnum: false + AfterFunction: false + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: false + AfterUnion: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Attach +BreakBeforeInheritanceComma: false +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +BreakConstructorInitializers: BeforeColon +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: false +ColumnLimit: 120 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: true +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - FOR_EACH_RANGE + - FOR_EACH + - BOOST_FOREACH +IncludeCategories: + - Regex: '^<.*\.h(pp)?>' + Priority: 1 + - Regex: '^<.*' + Priority: 2 + - Regex: '.*' + Priority: 3 +IncludeIsMainRegex: '(Test)?$' +IndentCaseLabels: true +IndentWidth: 2 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBlockIndentWidth: 2 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: false +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 1 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Left +ReflowComments: true +SortIncludes: true +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp11 +TabWidth: 8 +UseTab: Never \ No newline at end of file diff --git a/third_party/onnx/.gitattributes b/third_party/onnx/.gitattributes new file mode 100644 index 000000000..46239f68a --- /dev/null +++ b/third_party/onnx/.gitattributes @@ -0,0 +1 @@ +*.pb binary linguist-detectable=false diff --git a/third_party/onnx/.gitignore b/third_party/onnx/.gitignore new file mode 100644 index 000000000..cf345e705 --- /dev/null +++ b/third_party/onnx/.gitignore @@ -0,0 +1,104 @@ +## General + +# Compiled Object files +*.slo +*.lo +*.o +*.cuo + +# Compiled Dynamic libraries +*.so +*.dylib +*.pyd + +# Compiled Static libraries +*.lai +*.la +*.a + +# Compiled protocol buffers +*.pb.h +*.pb.cc +onnx/*_pb2.py +onnx/*_pb.py +onnx/*_pb2.pyi +onnx/*_pb.pyi + +# Compiled python +*.pyc + +# Compiled MATLAB +*.mex* + +# IPython notebook checkpoints +.ipynb_checkpoints + +# Editor temporaries +*.swn +*.swo +*.swp +*~ + +# Sublime Text settings +*.sublime-workspace +*.sublime-project + +# Eclipse Project settings +*.*project +.settings + +# QtCreator files +*.user + +# PyCharm files +.idea + +# Visual Studio Code files +.vscode + +# OSX dir files +.DS_Store + +## ONNX + +# build, distribute, and bins (+ python proto bindings) +build +build_* +.build_debug/* +.build_release/* +.setuptools-cmake-build/* + +# setup.py intermediates +.eggs +dist +onnx.egg-info +*.ninja +.ninja_deps +.ninja_log +compile_commands.json + +# generated files +onnx/version.py +compile_commands.json +tools/protoc-gen-mypy.sh + +# test generated files +.cache +.coverage +onnx/examples/.coverage.nbval +.pytest_cache +test_report + +# autocomplete +.ycm_extra_conf.py + +# test coverage data files +*.gcov + +.mypy_cache +virtualenv +venv + +# direnv, posh-direnv +.envrc +.psenvrc diff --git a/third_party/onnx/.gitmodules b/third_party/onnx/.gitmodules new file mode 100644 index 000000000..2b647e1a8 --- /dev/null +++ b/third_party/onnx/.gitmodules @@ -0,0 +1,7 @@ +[submodule "third_party/pybind11"] + path = third_party/pybind11 + url = https://github.com/pybind/pybind11.git + branch = master +[submodule "third_party/benchmark"] + path = third_party/benchmark + url = https://github.com/google/benchmark.git diff --git a/third_party/onnx/.lgtm.yml b/third_party/onnx/.lgtm.yml new file mode 100644 index 000000000..fa1cabd91 --- /dev/null +++ b/third_party/onnx/.lgtm.yml @@ -0,0 +1,12 @@ +# By default, C/C++ extraction from LGTM.com uses Python 2 +# Add this file to make it use Python 3 +# Build protobuf from source with -fPIC is required here to prevent protobuf symbol error +extraction: + cpp: + before_index: + # Always use Python 3 + - cp `which python3` $LGTM_WORKSPACE/python + - PATH=$LGTM_WORKSPACE:$PATH + # Build protobuf from source with -fPIC + - mkdir protobuf && cd protobuf + - source ../workflow_scripts/protobuf/build_protobuf_unix.sh $(nproc) $(pwd)/protobuf_install diff --git a/third_party/onnx/CMakeLists.txt b/third_party/onnx/CMakeLists.txt new file mode 100644 index 000000000..f914e78b1 --- /dev/null +++ b/third_party/onnx/CMakeLists.txt @@ -0,0 +1,714 @@ +# Minimum CMake required +cmake_minimum_required(VERSION 3.1) +include(cmake/Utils.cmake) +# Set default build type +if(NOT CMAKE_BUILD_TYPE) + message(STATUS "Build type not set - defaulting to Release") + set( + CMAKE_BUILD_TYPE "Release" + CACHE + STRING + "Choose the type of build from: Debug Release RelWithDebInfo MinSizeRel Coverage." + FORCE) +endif() +cmake_policy(SET CMP0063 NEW) + +# Project +project(onnx C CXX) +option(ONNX_BUILD_BENCHMARKS "Build ONNX micro-benchmarks" OFF) +option(ONNX_USE_PROTOBUF_SHARED_LIBS "Build ONNX using protobuf shared library. Sets PROTOBUF_USE_DLLS CMAKE Flag and Protobuf_USE_STATIC_LIBS. " OFF) + +option(BUILD_ONNX_PYTHON "Build Python binaries" OFF) +option(ONNX_GEN_PB_TYPE_STUBS "Generate protobuf python type stubs" ON) +option(ONNX_WERROR "Build with Werror" OFF) +option(ONNX_COVERAGE "Build with coverage instrumentation" OFF) +option(ONNX_BUILD_TESTS "Build ONNX C++ APIs Tests" OFF) +option(ONNX_USE_LITE_PROTO "Use lite protobuf instead of full." OFF) +option(ONNXIFI_ENABLE_EXT "Enable onnxifi extensions." OFF) +option(ONNX_DISABLE_EXCEPTIONS "Disable exception handling." OFF) +option(ONNX_DISABLE_STATIC_REGISTRATION "Disable static registration for onnx operator schemas." OFF) + +if(NOT DEFINED ONNX_ML) + if(DEFINED ENV{ONNX_ML}) + set(DEFAULT_ONNX_ML $ENV{ONNX_ML}) + else() + set(DEFAULT_ONNX_ML ON) + endif() + option(ONNX_ML "Enable traditional ML API." ${DEFAULT_ONNX_ML}) +endif() + +option(ONNXIFI_DUMMY_BACKEND "Use dummy backend in onnxifi test driver." OFF) + +if(NOT DEFINED ONNX_VERIFY_PROTO3) + if(DEFINED ENV{ONNX_VERIFY_PROTO3}) + set(PROTO3_ENABLED $ENV{ONNX_VERIFY_PROTO3}) + else() + set(PROTO3_ENABLED OFF) + endif() + option(ONNX_VERIFY_PROTO3 "Generate code by proto3" ${PROTO3_ENABLED}) +endif() + +if(ONNX_USE_PROTOBUF_SHARED_LIBS) + if(MSVC) + #TODO: if ONNX_USE_MSVC_STATIC_RUNTIME is ON, it may not work + add_definitions(-DPROTOBUF_USE_DLLS) + endif() + set(Protobuf_USE_STATIC_LIBS OFF) +else() + set(Protobuf_USE_STATIC_LIBS ON) +endif() + +# Set C++11 as standard for the whole project +if(NOT MSVC) + set(CMAKE_CXX_STANDARD 11) +endif(NOT MSVC) + +set(ONNX_ROOT ${PROJECT_SOURCE_DIR}) + +# Read ONNX version +file(READ "${PROJECT_SOURCE_DIR}/VERSION_NUMBER" ONNX_VERSION) +string(STRIP "${ONNX_VERSION}" ONNX_VERSION) + +if(NOT MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") + if(ONNX_COVERAGE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") + endif() +endif() + +if(NOT ONNX_NAMESPACE) + set(ONNX_NAMESPACE "onnx") +endif() + +if(MSVC) + if(NOT ONNX_DISABLE_EXCEPTIONS) + string(APPEND CMAKE_CXX_FLAGS " /EHsc /wd26812") + string(APPEND CMAKE_C_FLAGS " /EHsc /wd26812") + endif() +endif() + +if(ONNX_DISABLE_EXCEPTIONS) + add_compile_definitions("ONNX_NO_EXCEPTIONS") + # Disable C++ exceptions. + if(MSVC) + string(REGEX REPLACE "/EHsc" "/EHs-c-" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + add_definitions(-D_HAS_EXCEPTIONS=0) + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables") + endif() +endif() + +if(ONNX_WERROR) + if(MSVC) + string(APPEND CMAKE_CXX_FLAGS " /WX") + string(APPEND CMAKE_C_FLAGS " /WX") + else() + string(APPEND CMAKE_CXX_FLAGS " -Werror") + string(APPEND CMAKE_C_FLAGS " -Werror -Wno-error=incompatible-pointer-types") + endif() +endif() + +# find_package Python has replaced PythonInterp and PythonLibs since cmake 3.12 +# Use the following command in the future; now this is only compatible with the latest pybind11 +# find_package(Python ${PY_VERSION} COMPONENTS Interpreter Development REQUIRED) +find_package(PythonInterp ${PY_VERSION} REQUIRED) +find_package(PythonLibs ${PY_VERSION}) + +if(CMAKE_SYSTEM_NAME STREQUAL "AIX") + set(CMAKE_NO_SYSTEM_FROM_IMPORTED 1) +endif() + +if(ONNX_BUILD_TESTS) + list(APPEND CMAKE_MODULE_PATH ${ONNX_ROOT}/cmake/external) + include(googletest) +endif() + +if((ONNX_USE_LITE_PROTO AND TARGET protobuf::libprotobuf-lite) OR ((NOT ONNX_USE_LITE_PROTO) AND TARGET protobuf::libprotobuf)) + # Sometimes we need to use protoc compiled for host architecture while linking + # libprotobuf against target architecture. See https://github.com/caffe2/caffe + # 2/blob/96f35ad75480b25c1a23d6e9e97bccae9f7a7f9c/cmake/ProtoBuf.cmake#L92-L99 + if(EXISTS "${ONNX_CUSTOM_PROTOC_EXECUTABLE}") + message(STATUS "Using custom protoc executable") + set(ONNX_PROTOC_EXECUTABLE ${ONNX_CUSTOM_PROTOC_EXECUTABLE}) + else() + set(ONNX_PROTOC_EXECUTABLE $) + endif() +else() + # Customized version of find Protobuf. We need to avoid situations mentioned + # in https://github.com/caffe2/caffe2/blob/b7d983f255ef5496474f1ea188edb5e0ac4 + # 42761/cmake/ProtoBuf.cmake#L82-L92 The following section is stolen from + # cmake/ProtoBuf.cmake in Caffe2 + find_program(Protobuf_PROTOC_EXECUTABLE + NAMES protoc + DOC "The Google Protocol Buffers Compiler") + + # Only if protoc was found, seed the include directories and libraries. We + # assume that protoc is installed at PREFIX/bin. We use get_filename_component + # to resolve PREFIX. + if(Protobuf_PROTOC_EXECUTABLE) + set(ONNX_PROTOC_EXECUTABLE ${Protobuf_PROTOC_EXECUTABLE}) + get_filename_component(_PROTOBUF_INSTALL_PREFIX + ${Protobuf_PROTOC_EXECUTABLE} DIRECTORY) + get_filename_component(_PROTOBUF_INSTALL_PREFIX + ${_PROTOBUF_INSTALL_PREFIX}/.. REALPATH) + find_library(Protobuf_PROTOC_LIBRARY + NAMES protoc + PATHS ${_PROTOBUF_INSTALL_PREFIX}/lib + NO_DEFAULT_PATH) + if(ONNX_USE_LITE_PROTO) + find_library(Protobuf_LITE_LIBRARY + NAMES protobuf-lite + PATHS ${_PROTOBUF_INSTALL_PREFIX}/lib + NO_DEFAULT_PATH) + else() + find_library(Protobuf_LIBRARY + NAMES protobuf + PATHS ${_PROTOBUF_INSTALL_PREFIX}/lib + NO_DEFAULT_PATH) + endif(ONNX_USE_LITE_PROTO) + find_path(Protobuf_INCLUDE_DIR google/protobuf/service.h + PATHS ${_PROTOBUF_INSTALL_PREFIX}/include + NO_DEFAULT_PATH) + find_package(Protobuf REQUIRED) + endif() +endif() + +# Build the libraries with -fPIC +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +# function(RELATIVE_PROTOBUF_GENERATE_CPP SRCS HDRS ROOT_DIR) from https://githu +# b.com/tensorflow/tensorflow/blob/d2c3b873c6f8ff999a2e4ee707a84ff00d9c15a5/tens +# orflow/contrib/cmake/tf_core_framework.cmake to solve the problem that +# customized dir can't be specified when calling PROTOBUF_GENERATE_CPP. +function(RELATIVE_PROTOBUF_GENERATE_CPP NAME SRCS HDRS ROOT_DIR DEPEND) + if(NOT ARGN) + message( + SEND_ERROR + "Error: RELATIVE_PROTOBUF_GENERATE_CPP() called without any proto files" + ) + return() + endif() + + # Add ONNX_API prefix to protobuf classes and methods in all cases + set(ONNX_DLLEXPORT_STR "dllexport_decl=ONNX_API:") + + set(${SRCS}) + set(${HDRS}) + + set(GEN_PROTO_PY ${ROOT_DIR}/onnx/gen_proto.py) + foreach(INFILE ${ARGN}) + set(ABS_FILE ${ROOT_DIR}/${INFILE}) + get_filename_component(FILE_DIR ${ABS_FILE} DIRECTORY) + get_filename_component(FILE_WE ${INFILE} NAME_WE) + # "onnx-data" check is because we do not want to create/compile an "onnx-data-ml.proto" file + if(ONNX_ML AND NOT(FILE_WE STREQUAL "onnx-data")) + if(ONNX_NAMESPACE STREQUAL "onnx") + set(GENERATED_FILE_WE "${FILE_WE}-ml") + else() + set(GENERATED_FILE_WE "${FILE_WE}_${ONNX_NAMESPACE}-ml") + endif() + else() + if(ONNX_NAMESPACE STREQUAL "onnx") + set(GENERATED_FILE_WE "${FILE_WE}") + else() + set(GENERATED_FILE_WE "${FILE_WE}_${ONNX_NAMESPACE}") + endif() + endif() + file(RELATIVE_PATH REL_DIR ${ROOT_DIR} ${FILE_DIR}) + set(OUTPUT_PROTO_DIR "${CMAKE_CURRENT_BINARY_DIR}/${REL_DIR}") + + set(OUTPUT_PB_HEADER "${OUTPUT_PROTO_DIR}/${GENERATED_FILE_WE}.pb.h") + set(OUTPUT_PB_SRC "${OUTPUT_PROTO_DIR}/${GENERATED_FILE_WE}.pb.cc") + set(GENERATED_PROTO "${OUTPUT_PROTO_DIR}/${GENERATED_FILE_WE}.proto") + if(NOT (ONNX_NAMESPACE STREQUAL "onnx")) + # We need this dummy header generated by gen_proto.py when ONNX_NAMESPACE + # is not onnx + list(APPEND ${HDRS} "${OUTPUT_PROTO_DIR}/${GENERATED_FILE_WE}.pb.h") + endif() + list(APPEND ${SRCS} "${OUTPUT_PB_SRC}") + list(APPEND ${HDRS} "${OUTPUT_PB_HEADER}") + + if(NOT EXISTS "${OUTPUT_PROTO_DIR}") + file(MAKE_DIRECTORY "${OUTPUT_PROTO_DIR}") + endif() + + set(GEN_PROTO_ARGS + -p + "${ONNX_NAMESPACE}" + -o + "${OUTPUT_PROTO_DIR}" + "${FILE_WE}") + if(ONNX_ML) + list(APPEND GEN_PROTO_ARGS -m) + endif() + if(ONNX_USE_LITE_PROTO) + list(APPEND GEN_PROTO_ARGS -l) + endif() + if(ONNX_VERIFY_PROTO3) + if(NOT ONNX_PROTOC_EXECUTABLE) + message(FATAL_ERROR "Protobuf compiler not found") + endif() + list(APPEND GEN_PROTO_ARGS --protoc_path) + list(APPEND GEN_PROTO_ARGS "${ONNX_PROTOC_EXECUTABLE}") + endif() + + add_custom_command(OUTPUT "${GENERATED_PROTO}" + COMMAND "${PYTHON_EXECUTABLE}" "${GEN_PROTO_PY}" + ARGS ${GEN_PROTO_ARGS} + DEPENDS ${INFILE} + COMMENT "Running gen_proto.py on ${INFILE}" + VERBATIM) + message("Generated: ${GENERATED_PROTO}") + set(PROTOC_ARGS + ${GENERATED_PROTO} + -I + ${CMAKE_CURRENT_BINARY_DIR} + --cpp_out + ${ONNX_DLLEXPORT_STR}${CMAKE_CURRENT_BINARY_DIR}) + if(BUILD_ONNX_PYTHON) + list(APPEND PROTOC_ARGS --python_out + ${CMAKE_CURRENT_BINARY_DIR}) + if(ONNX_GEN_PB_TYPE_STUBS) + # Haven't figured out how to generate mypy stubs on Windows yet + if(NOT WIN32) + # use PYTHON_EXECUTABLE to python protoc-gen-mypy.py + configure_file( + ${ROOT_DIR}/tools/protoc-gen-mypy.sh.in + ${PROJECT_BINARY_DIR}/tools/protoc-gen-mypy.sh + @ONLY) + execute_process(COMMAND chmod +x ${PROJECT_BINARY_DIR}/tools/protoc-gen-mypy.sh) + configure_file( + ${ROOT_DIR}/tools/protoc-gen-mypy.py + ${PROJECT_BINARY_DIR}/tools/protoc-gen-mypy.py + COPYONLY) + set(PROTOC_MYPY_PLUGIN_FILE ${PROJECT_BINARY_DIR}/tools/protoc-gen-mypy.sh) + else() + set(PROTOC_MYPY_PLUGIN_FILE ${ROOT_DIR}/tools/protoc-gen-mypy.bat) + endif() + list(APPEND PROTOC_ARGS + --plugin + protoc-gen-mypy=${PROTOC_MYPY_PLUGIN_FILE} + --mypy_out + ${ONNX_DLLEXPORT_STR}${CMAKE_CURRENT_BINARY_DIR}) + endif() + endif() + if(NOT ONNX_PROTOC_EXECUTABLE) + message(FATAL_ERROR "Protobuf compiler not found") + endif() + if(ONNX_PROTO_POST_BUILD_SCRIPT) + add_custom_command( + OUTPUT "${OUTPUT_PB_SRC}" "${OUTPUT_PB_HEADER}" + COMMAND ${ONNX_PROTOC_EXECUTABLE} ARGS ${PROTOC_ARGS} + COMMAND "${CMAKE_COMMAND}" -DFILENAME=${OUTPUT_PB_HEADER} + -DNAMESPACES=${ONNX_NAMESPACE} -P + ${ONNX_PROTO_POST_BUILD_SCRIPT} + COMMAND "${CMAKE_COMMAND}" -DFILENAME=${OUTPUT_PB_SRC} + -DNAMESPACES=${ONNX_NAMESPACE} -P + ${ONNX_PROTO_POST_BUILD_SCRIPT} + DEPENDS ${GENERATED_PROTO} ${DEPEND} + COMMENT "Running C++ protocol buffer compiler on ${GENERATED_PROTO}" + VERBATIM) + else() + add_custom_command( + OUTPUT "${OUTPUT_PB_SRC}" "${OUTPUT_PB_HEADER}" + COMMAND ${ONNX_PROTOC_EXECUTABLE} ARGS ${PROTOC_ARGS} + DEPENDS ${GENERATED_PROTO} ${DEPEND} + COMMENT "Running C++ protocol buffer compiler on ${GENERATED_PROTO}" + VERBATIM) + endif() + add_custom_target(${NAME} DEPENDS ${OUTPUT_PB_SRC} ${OUTPUT_PB_HEADER}) + endforeach() + + set_source_files_properties(${${SRCS}} ${${HDRS}} PROPERTIES GENERATED TRUE) + set(${SRCS} ${${SRCS}} PARENT_SCOPE) + set(${HDRS} ${${HDRS}} PARENT_SCOPE) +endfunction() + +relative_protobuf_generate_cpp(gen_onnx_proto + __tmp_srcs + __tmp_hdrs + ${ONNX_ROOT} + "" + onnx/onnx.in.proto) +list(APPEND ONNX_PROTO_SRCS ${__tmp_srcs}) +list(APPEND ONNX_PROTO_HDRS ${__tmp_hdrs}) + +relative_protobuf_generate_cpp(gen_onnx_operators_proto + __tmp_srcs + __tmp_hdrs + ${ONNX_ROOT} + gen_onnx_proto + onnx/onnx-operators.in.proto) +list(APPEND ONNX_PROTO_SRCS ${__tmp_srcs}) +list(APPEND ONNX_PROTO_HDRS ${__tmp_hdrs}) + +relative_protobuf_generate_cpp(gen_onnx_data_proto + __tmp_srcs + __tmp_hdrs + ${ONNX_ROOT} + gen_onnx_proto + onnx/onnx-data.in.proto) +list(APPEND ONNX_PROTO_SRCS ${__tmp_srcs}) +list(APPEND ONNX_PROTO_HDRS ${__tmp_hdrs}) + +file(GLOB_RECURSE __tmp_srcs "${ONNX_ROOT}/onnx/*.h" "${ONNX_ROOT}/onnx/*.cc") +file(GLOB_RECURSE onnx_gtests_src "${ONNX_ROOT}/onnx/test/cpp/*.h" + "${ONNX_ROOT}/onnx/test/cpp/*.cc" + "${ONNX_ROOT}/onnx/backend/test/cpp/*.cc" + "${ONNX_ROOT}/onnx/backend/test/cpp/*.h") +list(REMOVE_ITEM __tmp_srcs "${ONNX_ROOT}/onnx/cpp2py_export.cc") +list(REMOVE_ITEM __tmp_srcs ${onnx_gtests_src}) +list(APPEND ONNX_SRCS ${__tmp_srcs}) + +add_library(onnx_proto ${ONNX_PROTO_SRCS} ${ONNX_PROTO_HDRS}) +add_dependencies(onnx_proto gen_onnx_operators_proto gen_onnx_data_proto) +target_include_directories(onnx_proto PUBLIC + $ + $ + $) + +if (MSVC) + if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + set(EXTRA_FLAGS + "-Wno-implicit-function-declaration" + "-Wno-undefined-inline" + "-Wno-incompatible-pointer-types" + "-Wno-dllexport-explicit-instantiation-decl" + "-Wno-microsoft-unqualified-friend" + "-Wno-absolute-value" + "-Wno-unused-variable" + "-Wno-unknown-argument" + "-Wno-writable-strings" + "-Qunused-arguments") + else() + set(EXTRA_FLAGS "") + endif() + if (BUILD_SHARED_LIBS OR ONNX_BUILD_MAIN_LIB) + set(ONNX_API_DEFINE "-DONNX_API=__declspec(dllexport)") + else() + set(ONNX_API_DEFINE "-DONNX_API=") + endif() +else() + # On non-Windows, hide all symbols we don't need + set(ONNX_API_DEFINE "-DONNX_API=__attribute__\(\(__visibility__\(\"default\"\)\)\)") + set_target_properties(onnx_proto PROPERTIES CXX_VISIBILITY_PRESET hidden) + set_target_properties(onnx_proto PROPERTIES VISIBILITY_INLINES_HIDDEN 1) +endif() +target_compile_definitions(onnx_proto PRIVATE ${ONNX_API_DEFINE}) + +if(ONNX_USE_LITE_PROTO) + if(TARGET protobuf::libprotobuf-lite) + target_link_libraries(onnx_proto PUBLIC protobuf::libprotobuf-lite) + else() + target_link_libraries(onnx_proto PUBLIC ${PROTOBUF_LITE_LIBRARIES}) + endif() +else() + if(TARGET protobuf::libprotobuf) + target_link_libraries(onnx_proto PUBLIC protobuf::libprotobuf) + else() + target_link_libraries(onnx_proto PUBLIC ${PROTOBUF_LIBRARIES}) + endif() +endif() +add_onnx_global_defines(onnx_proto) + +if(CMAKE_SYSTEM_NAME STREQUAL "AIX") + # whole-archive linker option not available on AIX. + # So, create a object library + add_library(onnx OBJECT ${ONNX_SRCS}) +else() + add_library(onnx ${ONNX_SRCS}) +endif() + +target_include_directories(onnx PUBLIC + $ + $ + $) +target_link_libraries(onnx PUBLIC onnx_proto) +add_onnx_global_defines(onnx) + +if(BUILD_ONNX_PYTHON) + if("${PY_EXT_SUFFIX}" STREQUAL "") + if(MSVC) + set(PY_EXT_SUFFIX ".pyd") + else() + set(PY_EXT_SUFFIX ".so") + endif() + endif() + + add_library(onnx_cpp2py_export MODULE "${ONNX_ROOT}/onnx/cpp2py_export.cc") + set_target_properties(onnx_cpp2py_export PROPERTIES PREFIX "") + set_target_properties(onnx_cpp2py_export + PROPERTIES COMPILE_FLAGS "-fvisibility=hidden") + set_target_properties(onnx_cpp2py_export PROPERTIES SUFFIX ${PY_EXT_SUFFIX}) + set_target_properties(onnx_cpp2py_export + PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) + target_include_directories(onnx_cpp2py_export PRIVATE + $ + $ + $) + + # pybind11 is a header only lib + find_package(pybind11 2.2 CONFIG) + if(NOT pybind11_FOUND) + if(EXISTS "${ONNX_ROOT}/third_party/pybind11/include/pybind11/pybind11.h") + add_subdirectory("${ONNX_ROOT}/third_party/pybind11") + else() + message(FATAL_ERROR "cannot find pybind") + endif() + endif() + + target_include_directories(onnx_cpp2py_export PUBLIC + "${pybind11_INCLUDE_DIRS}" + "${PYTHON_INCLUDE_DIRS}") + + if(APPLE) + set_target_properties(onnx_cpp2py_export + PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") + target_link_libraries(onnx_cpp2py_export + PRIVATE -Wl,-force_load,$) + elseif(MSVC) + # In MSVC, we will add whole archive in default + target_link_libraries(onnx_cpp2py_export + PRIVATE -WHOLEARCHIVE:$) + elseif(CMAKE_SYSTEM_NAME STREQUAL "AIX") + # whole-archive linker option not available on AIX + target_sources(onnx_cpp2py_export + PRIVATE $) + else() + # Assume everything else is like gcc + target_link_libraries(onnx_cpp2py_export + PRIVATE "-Wl,--whole-archive" $ + "-Wl,--no-whole-archive") + set_target_properties(onnx_cpp2py_export + PROPERTIES LINK_FLAGS "-Wl,--exclude-libs,ALL") + endif() + + target_link_libraries(onnx_cpp2py_export PRIVATE onnx) + + if(MSVC) + target_link_libraries(onnx_cpp2py_export PRIVATE ${PYTHON_LIBRARIES}) + target_compile_options(onnx_cpp2py_export + PRIVATE /MP + /wd4244 # 'argument': conversion from 'google:: + # protobuf::uint64' to 'int', possible + # loss of data + /wd4267 # Conversion from 'size_t' to 'int', + # possible loss of data + /wd4996 # The second parameter is ignored. + ${EXTRA_FLAGS}) + if(ONNX_USE_PROTOBUF_SHARED_LIBS) + target_compile_options(onnx_cpp2py_export + PRIVATE /wd4251 # 'identifier' : class 'type1' needs to + # have dll-interface to be used by + # clients of class 'type2' + ) + endif() + add_msvc_runtime_flag(onnx_cpp2py_export) + add_onnx_global_defines(onnx_cpp2py_export) + endif() +endif() + +if(ONNX_BUILD_BENCHMARKS) + if(NOT TARGET benchmark) + # We will not need to test benchmark lib itself. + set(BENCHMARK_ENABLE_TESTING OFF + CACHE BOOL "Disable benchmark testing as we don't need it.") + # We will not need to install benchmark since we link it statically. + set(BENCHMARK_ENABLE_INSTALL OFF + CACHE BOOL + "Disable benchmark install to avoid overwriting vendor install.") + add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/benchmark) + endif() + + add_executable(protobuf-bench tools/protobuf-bench.cc) + target_include_directories(protobuf-bench PUBLIC + $ + $ + $ + $) + target_link_libraries(protobuf-bench onnx_proto benchmark) +endif() + +# Export include directories +set(ONNX_INCLUDE_DIRS "${ONNX_ROOT}" "${CMAKE_CURRENT_BINARY_DIR}") +get_directory_property(hasParent PARENT_DIRECTORY) +if(hasParent) + set(ONNX_INCLUDE_DIRS ${ONNX_INCLUDE_DIRS} PARENT_SCOPE) +endif() + +if(MSVC) + target_compile_options(onnx_proto + PRIVATE /MP + /wd4244 #'argument': conversion from 'google:: + #protobuf::uint64' to 'int', possible + # loss of data + /wd4267 # Conversion from 'size_t' to 'int', + # possible loss of data + ${EXTRA_FLAGS}) + target_compile_options(onnx + PRIVATE /MP + /wd4244 # 'argument': conversion from 'google:: + # protobuf::uint64' to 'int', possible + # loss of data + /wd4267 # Conversion from 'size_t' to 'int', + # possible loss of data + /wd4996 # The second parameter is ignored. + ${EXTRA_FLAGS}) + if(ONNX_USE_PROTOBUF_SHARED_LIBS) + target_compile_options(onnx_proto + PRIVATE /wd4251 # 'identifier' : class 'type1' needs to + # have dll-interface to be used by + # clients of class 'type2' + ) + target_compile_options(onnx + PRIVATE /wd4251 # 'identifier' : class 'type1' needs to + # have dll-interface to be used by + # clients of class 'type2' + ) + endif() + add_msvc_runtime_flag(onnx_proto) + add_msvc_runtime_flag(onnx) + set(onnx_static_library_flags + -IGNORE:4221 # LNK4221: This object file does not define any previously + # undefined public symbols, so it will not be used by any + # link operation that consumes this library + ) + set_target_properties(onnx + PROPERTIES STATIC_LIBRARY_FLAGS + "${onnx_static_library_flags}") +elseif(APPLE) + +else() + target_compile_options(onnx PRIVATE -Wall -Wextra) +endif() + +if(APPLE) + set_target_properties(onnx PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") +endif() + +# ---[ ONNX Interface for Framework Integratin (ONNXIFI) +add_library(onnxifi INTERFACE) +target_include_directories(onnxifi INTERFACE + $ + $) + +# ---[ ONNXIFI loader +add_library(onnxifi_loader STATIC onnx/onnxifi_loader.c) +target_include_directories(onnxifi_loader PUBLIC + $ + $) +# Users of ONNX backend API would compile it with their toolchain, so it is +# implemented in standard C89 for maximum compatibility +set_target_properties(onnxifi_loader + PROPERTIES C_STANDARD + 90 + C_EXTENSIONS + NO) +target_link_libraries(onnxifi_loader PUBLIC onnxifi ${CMAKE_DL_LIBS}) +if(MSVC) + add_msvc_runtime_flag(onnxifi_loader) +endif() + +if (NOT ANDROID AND NOT IOS) + # ---[ ONNXIFI wrapper + add_library(onnxifi_wrapper MODULE onnx/onnxifi_wrapper.c) + if(MSVC) + add_msvc_runtime_flag(onnxifi_wrapper) + endif() + target_include_directories(onnxifi_wrapper PRIVATE + $ + $) + set_target_properties(onnxifi_wrapper PROPERTIES + C_STANDARD 99 + C_EXTENSIONS NO + OUTPUT_NAME "onnxifi" + POSITION_INDEPENDENT_CODE YES) + target_link_libraries(onnxifi_wrapper PRIVATE onnxifi_loader onnxifi) + if(DEFINED ONNXIFI_SEARCH_DIR) + target_compile_definitions(onnxifi_wrapper PRIVATE "ONNXIFI_SEARCH_DIR=\"${ONNXIFI_SEARCH_DIR}\"") + endif() + if(WIN32) + if(MSVC) + target_compile_definitions(onnxifi_wrapper PRIVATE "ONNXIFI_PUBLIC=__declspec(dllexport)") + else() + target_compile_definitions(onnxifi_wrapper PRIVATE "ONNXIFI_PUBLIC=__attribute__((__dllexport__))") + endif() + endif() + if(APPLE) + # By default CMake would use .so suffix on Mac + set_target_properties(onnxifi_wrapper PROPERTIES SUFFIX ".dylib") + endif() +endif() + +# ---[ ONNXIFI dummy backend +add_library(onnxifi_dummy SHARED onnx/onnxifi_dummy.c) + +if(ONNXIFI_ENABLE_EXT) + add_definitions(-DONNXIFI_ENABLE_EXT=ON) +endif() + +target_include_directories(onnxifi_dummy PRIVATE + $ + $) +target_link_libraries(onnxifi_dummy PUBLIC onnxifi ${CMAKE_DL_LIBS}) +target_compile_definitions(onnxifi_dummy PRIVATE ONNXIFI_BUILD_LIBRARY=TRUE) +if(MSVC) + add_msvc_runtime_flag(onnxifi_dummy) + + target_compile_options(onnxifi_dummy + PRIVATE /wd4113 # 'identifier1' differs in parameter + # lists from 'identifier2' + ) +endif() + +include(GNUInstallDirs) + +install(DIRECTORY ${ONNX_ROOT}/onnx + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING + PATTERN "*.h") +install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/onnx + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + FILES_MATCHING + PATTERN "*.h") + +configure_file( + ${PROJECT_SOURCE_DIR}/cmake/ONNXConfigVersion.cmake.in + ${PROJECT_BINARY_DIR}/ONNXConfigVersion.cmake + @ONLY) +configure_file( + ${PROJECT_SOURCE_DIR}/cmake/ONNXConfig.cmake.in + ${PROJECT_BINARY_DIR}/ONNXConfig.cmake + @ONLY) +install(FILES + ${PROJECT_BINARY_DIR}/ONNXConfigVersion.cmake + ${PROJECT_BINARY_DIR}/ONNXConfig.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ONNX + COMPONENT dev) +install(EXPORT ONNXTargets DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/ONNX") +install(TARGETS + onnx onnx_proto + onnxifi onnxifi_dummy onnxifi_loader + EXPORT ONNXTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +if(NOT ANDROID AND NOT IOS) + install(TARGETS onnxifi_wrapper + EXPORT ONNXTargets DESTINATION lib) +endif() + +if(ONNXIFI_DUMMY_BACKEND) + add_definitions(-DONNXIFI_DUMMY_BACKEND=1) +endif() + +if(ONNX_BUILD_TESTS) + include(${ONNX_ROOT}/cmake/unittest.cmake) +endif() + +# Support older g++ to use PRId64 +add_definitions(-D__STDC_FORMAT_MACROS) + +include(cmake/summary.cmake) +onnx_print_configuration_summary() diff --git a/third_party/onnx/CODEOWNERS b/third_party/onnx/CODEOWNERS new file mode 100644 index 000000000..ea3d8d9a2 --- /dev/null +++ b/third_party/onnx/CODEOWNERS @@ -0,0 +1,10 @@ +* @onnx/sig-archinfra-approvers +/community @onnx/steering-committee +/onnx/defs @onnx/sig-operators-approvers +/onnx/backend/test @onnx/sig-operators-approvers +/docs/AddNewOp.md @onnx/sig-operators-approvers +/docs/TestCoverage*.md @onnx/sig-operators-approvers +/docs/Operators*.md @onnx/sig-operators-approvers +/docs/OpConventions.md @onnx/sig-operators-approvers +/docs/Broadcasting.md @onnx/sig-operators-approvers +/docs/Changelog*.md @onnx/sig-operators-approvers diff --git a/third_party/onnx/CODE_OF_CONDUCT.md b/third_party/onnx/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..f282992e0 --- /dev/null +++ b/third_party/onnx/CODE_OF_CONDUCT.md @@ -0,0 +1 @@ +The ONNX Code Of Conduct is described at https://onnx.ai/codeofconduct.html diff --git a/third_party/onnx/CONTRIBUTING.md b/third_party/onnx/CONTRIBUTING.md new file mode 100644 index 000000000..4a214751c --- /dev/null +++ b/third_party/onnx/CONTRIBUTING.md @@ -0,0 +1,48 @@ + + +# ONNX Community Involvement and Contribution Guidelines + +ONNX is a community project and we welcome your contributions! In addition to contributing code, you can also contribute in many other ways: + +* Meetings and Discussions +Join SIGS, Working Groups, Community meetings to learn about what is needed and then where there is a good fit to interest and areas of expertise, find ways to actively contribute. Participate in [ONNX technical discussions](https://github.com/onnx/onnx/discussions) on GitHub. Join the ONNX Slack channels at LF AI and Data, help answer questions and welcome new members. + +* Use Cases and Tools +Develop use cases for ONNX and advocate for ONNX in developer conferences and meetups. Develop tools that import and export using the ONNX spec, and help grow the community of ONNX users. Become a champion for ONNX in your company or organization. + +* Roadmap and Features +Understand the ONNX roadmap document, feature priorities, and help implement them. Become an ONNX code and documentation contributor, and work towards committer status on important repos. + +* Releases and Model Zoo +Help in achieving a release of ONNX, including increasing the number of models in the ONNX Model Zoo that exercise ONNX features. + +* Publications and Blogs +Add to the growing number of arXiv papers that refer to ONNX. Create blogs, presentations, books, articles and other materials that help increase the adoption of ONNX, and grow the community of users and contributors. + +* Steering Committee +Attend ONNX Steering Committee meetings - they are open to all in the community. Help out where needed and appropriate on SC to-do items. Note that SIG and Working Groups leaders as well as others with demonstrated commitment and contributions to ONNX community may want to self-nominate during the annual SC election cycle. + +## Contributing code + +You can submit a pull request (PR) with your code. The [SIG](community/sigs.md) or [Working Group](community/working-groups.md) that is responsible for the area of the project your PR touches will review it and merge once any comments are addressed. + +### DCO +ONNX has adopted the [DCO](https://en.wikipedia.org/wiki/Developer_Certificate_of_Origin). All code repositories under ONNX require a DCO. (ONNX previously used a CLA, which is being replaced with the DCO.) + +DCO is provided by including a sign-off-by line in commit messages. Using the `-s` flag for `git commit` will automatically append this line. For example, running `git commit -s -m 'commit info.'` it will produce a commit that has the message `commit info. Signed-off-by: My Name `. The DCO bot will ensure commits are signed with an email address that matches the commit author before they are eligible to be merged. + +If you are using a GUI like the GitHub web site or GitHub Desktop, you'll need to append the `Signed-off-by: My Name ` manually to each commit message. + +NOTE: the sign-off is needed for each commit in the PR, not at the PR level. + +If you have old commits that are not signed, use the following commands to squash the old PR (original branch) into a single commit. This is an easier way to signoff old commits in old PR. + +```bash +git checkout main +git checkout -b temporary_patch # create a new branch as temporary +git merge --squash original_patch # copy from old branch +git branch -d original_patch # remove old branch +git checkout -b original_patch # create a new branch with the same name (override) +git commit -m 'type your own commit msg' -s # signoff that single commit +git push origin original_patch -f # forcibly override the old branch` +``` diff --git a/third_party/onnx/LICENSE b/third_party/onnx/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/third_party/onnx/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/third_party/onnx/MANIFEST.in b/third_party/onnx/MANIFEST.in new file mode 100644 index 000000000..ee04daa2c --- /dev/null +++ b/third_party/onnx/MANIFEST.in @@ -0,0 +1,10 @@ +recursive-include onnx *.h *.c *.cc *.proto +recursive-include third_party * +include LICENSE +recursive-include onnx/backend/test/data * +recursive-include onnx/examples * +recursive-include cmake * +recursive-include tools * +include VERSION_NUMBER +include CMakeLists.txt +include requirements.txt diff --git a/third_party/onnx/README.md b/third_party/onnx/README.md new file mode 100644 index 000000000..9765cbaa3 --- /dev/null +++ b/third_party/onnx/README.md @@ -0,0 +1,287 @@ + + +

+ + +[![Build Status](https://dev.azure.com/onnx-pipelines/onnx/_apis/build/status/Windows-CI?branchName=main)](https://dev.azure.com/onnx-pipelines/onnx/_build/latest?definitionId=5&branchName=main) +[![Build Status](https://dev.azure.com/onnx-pipelines/onnx/_apis/build/status/Linux-CI?branchName=main)](https://dev.azure.com/onnx-pipelines/onnx/_build/latest?definitionId=7&branchName=main) +[![Build Status](https://dev.azure.com/onnx-pipelines/onnx/_apis/build/status/MacOS-CI?branchName=main)](https://dev.azure.com/onnx-pipelines/onnx/_build/latest?definitionId=6&branchName=main) +[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3313/badge)](https://bestpractices.coreinfrastructure.org/projects/3313) + +[Open Neural Network Exchange (ONNX)](https://onnx.ai) is an open ecosystem that empowers AI developers +to choose the right tools as their project evolves. ONNX provides an open source format for AI models, both deep learning and traditional ML. It defines an extensible computation graph model, as well as definitions of built-in operators and standard +data types. Currently we focus on the capabilities needed for inferencing (scoring). + +ONNX is [widely supported](http://onnx.ai/supported-tools) and can be found in many frameworks, tools, and hardware. Enabling interoperability between different frameworks and streamlining the path from research to production helps increase the speed of innovation in the AI community. We invite the community to join us and further evolve ONNX. + +# Use ONNX +* [Tutorials for creating ONNX models](https://github.com/onnx/tutorials). +* [Pre-trained ONNX models](https://github.com/onnx/models) + +# Learn about the ONNX spec +* [Overview](docs/Overview.md) +* [ONNX intermediate representation spec](docs/IR.md) +* [Versioning principles of the spec](docs/Versioning.md) +* [Operators documentation](docs/Operators.md) +* [Python API Overview](docs/PythonAPIOverview.md) + +# Programming utilities for working with ONNX Graphs +* [Shape and Type Inference](docs/ShapeInference.md) +* [Graph Optimization](https://github.com/onnx/optimizer) +* [Opset Version Conversion](docs/VersionConverter.md) + +# NOTICE: ONNX now uses main branch as default branch +Here are the [steps](https://github.com/onnx/onnx/wiki/How-to-migrate-to-main-branch-in-local-repo) from ONNX wiki for migrating to main branch in local repo. + +# Contribute +ONNX is a [community project](community/readme.md). We encourage you to join the effort and contribute feedback, ideas, and code. You can participate in the [Special Interest Groups](community/sigs.md) and [Working Groups](community/working-groups.md) to shape the future of ONNX. + +Check out our [contribution guide](docs/CONTRIBUTING.md) to get started. + +If you think some operator should be added to ONNX specification, please read +[this document](docs/AddNewOp.md). + +# Discuss +We encourage you to open [Issues](https://github.com/onnx/onnx/issues), or use [Slack](https://lfaifoundation.slack.com/) (If you have not joined yet, please use this [link](https://join.slack.com/t/lfaifoundation/shared_invite/zt-o65errpw-gMTbwNr7FnNbVXNVFkmyNA) to join the group) for more real-time discussion. + +# Follow Us +Stay up to date with the latest ONNX news. [[Facebook](https://www.facebook.com/onnxai/)] [[Twitter](https://twitter.com/onnxai)] + + + + + + +# Installation + +## Prerequisites + +``` +numpy >= 1.16.6 +protobuf >= 3.12.2 +typing-extensions >= 3.6.2.1 +``` + +## Official Python packages +ONNX released packages are published in PyPi. +``` +pip install numpy protobuf==3.16.0 +pip install onnx +``` + +[Weekly packages](https://test.pypi.org/project/onnx-weekly/) are published in test pypi to enable experimentation and early testing. + + +## Conda packages +A binary build of ONNX is available from [Conda](https://conda.io), in [conda-forge](https://conda-forge.org/): +``` +conda install -c conda-forge numpy protobuf==3.16.0 libprotobuf=3.16.0 +conda install -c conda-forge onnx +``` + +You can also use the [onnx-dev docker image](https://hub.docker.com/r/onnx/onnx-dev) for a Linux-based installation without having to worry about dependency versioning. + + +## Build ONNX from Source +Before building from source uninstall any existing versions of onnx `pip uninstall onnx`. + +Generally speaking, you need to install [protobuf C/C++ libraries and tools](https://github.com/protocolbuffers/protobuf) before proceeding forward. Then depending on how you installed protobuf, you need to set environment variable CMAKE_ARGS to "-DONNX_USE_PROTOBUF_SHARED_LIBS=ON" or "-DONNX_USE_PROTOBUF_SHARED_LIBS=OFF". For example, you may need to run the following command: + +Linux: +```bash +export CMAKE_ARGS="-DONNX_USE_PROTOBUF_SHARED_LIBS=ON" +``` +Windows: +```bat +set CMAKE_ARGS="-DONNX_USE_PROTOBUF_SHARED_LIBS=ON" +``` + +The ON/OFF depends on what kind of protobuf library you have. Shared libraries are files ending with \*.dll/\*.so/\*.dylib. Static libraries are files ending with \*.a/\*.lib. This option depends on how you get your protobuf library and how it was built. And it is default OFF. You don't need to run the commands above if you'd prefer to use a static protobuf library. + + +### Windows +If you are building ONNX from source, it is recommended that you also build Protobuf locally as a static library. The version distributed with conda-forge is a DLL, but ONNX expects it to be a static library. Building protobuf locally also lets you control the version of protobuf. The tested and recommended version is 3.16.0. + +The instructions in this README assume you are using Visual Studio. It is recommended that you run all the commands from a shell started from "x64 Native Tools Command Prompt for VS 2019" and keep the build system generator for cmake (e.g., cmake -G "Visual Studio 16 2019") consistent while building protobuf as well as ONNX. + +You can get protobuf by running the following commands: +```bat +git clone https://github.com/protocolbuffers/protobuf.git +cd protobuf +git checkout v3.16.0 +cd cmake +cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX= -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_EXAMPLES=OFF . +msbuild protobuf.sln /m /p:Configuration=Release +msbuild INSTALL.vcxproj /p:Configuration=Release +``` +Then it will be built as a static library and installed to . Please add the bin directory(which contains protoc.exe) to your PATH. + +```bat +set PATH=/bin;%PATH% +``` + +Please note: if your protobuf_install_dir contains spaces, **do not** add quotation marks around it. + +Alternative: if you don't want to change your PATH, you can set ONNX_PROTOC_EXECUTABLE instead. +```bat +set CMAKE_ARGS=-DONNX_PROTOC_EXECUTABLE= +``` + +Then you can build ONNX as: +``` +git clone https://github.com/onnx/onnx.git +cd onnx +git submodule update --init --recursive +# prefer lite proto +set CMAKE_ARGS=-DONNX_USE_LITE_PROTO=ON +pip install -e . +``` +### Linux + +First, you need to install protobuf. + +Ubuntu users: the quickest way to install protobuf is to run + +```bash +apt-get install python3-pip python3-dev libprotobuf-dev protobuf-compiler +``` + +Then you can build ONNX as: +``` +export CMAKE_ARGS="-DONNX_USE_PROTOBUF_SHARED_LIBS=ON" +git clone --recursive https://github.com/onnx/onnx.git +cd onnx +# prefer lite proto +set CMAKE_ARGS=-DONNX_USE_LITE_PROTO=ON +pip install -e . +``` + +Otherwise, you may need to install it from source. You can use the following commands to do it: + +Debian/Ubuntu: +``` +git clone https://github.com/protocolbuffers/protobuf.git +cd protobuf +git checkout v3.16.0 +git submodule update --init --recursive +mkdir build_source && cd build_source +cmake ../cmake -Dprotobuf_BUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_POSITION_INDEPENDENT_CODE=ON -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release +make -j$(nproc) +make install +``` + +CentOS/RHEL/Fedora: +``` +git clone https://github.com/protocolbuffers/protobuf.git +cd protobuf +git checkout v3.16.0 +git submodule update --init --recursive +mkdir build_source && cd build_source +cmake ../cmake -DCMAKE_INSTALL_LIBDIR=lib64 -Dprotobuf_BUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_POSITION_INDEPENDENT_CODE=ON -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release +make -j$(nproc) +make install +``` + +Here "-DCMAKE_POSITION_INDEPENDENT_CODE=ON" is crucial. By default static libraries are built without "-fPIC" flag, they are not position independent code. But shared libraries must be position independent code. Python C/C++ extensions(like ONNX) are shared libraries. So if a static library was not built with "-fPIC", it can't be linked to such a shared library. + +Once build is successful, update PATH to include protobuf paths. + +Then you can build ONNX as: +``` +git clone https://github.com/onnx/onnx.git +cd onnx +git submodule update --init --recursive +# prefer lite proto +set CMAKE_ARGS=-DONNX_USE_LITE_PROTO=ON +pip install -e . +``` + +* **Mac** +``` +export NUM_CORES=`sysctl -n hw.ncpu` +brew update +brew install autoconf && brew install automake +wget https://github.com/protocolbuffers/protobuf/releases/download/v3.16.0/protobuf-cpp-3.16.0.tar.gz +tar -xvf protobuf-cpp-3.16.0.tar.gz +cd protobuf-3.16.0 +mkdir build_source && cd build_source +cmake ../cmake -Dprotobuf_BUILD_SHARED_LIBS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release +make -j${NUM_CORES} +make install +``` + +Once build is successful, update PATH to include protobuf paths. + +Then you can build ONNX as: +``` +git clone --recursive https://github.com/onnx/onnx.git +cd onnx +# prefer lite proto +set CMAKE_ARGS=-DONNX_USE_LITE_PROTO=ON +pip install -e . +``` + + +## Verify Installation +After installation, run + +``` +python -c "import onnx" +``` + +to verify it works. + + +## Common Build Options +For full list refer to CMakeLists.txt +**Environment variables** +* `USE_MSVC_STATIC_RUNTIME` should be 1 or 0, not ON or OFF. When set to 1 onnx links statically to runtime library. +**Default**: USE_MSVC_STATIC_RUNTIME=0 + +* `DEBUG` should be 0 or 1. When set to 1 onnx is built in debug mode. or debug versions of the dependencies, you need to open the [CMakeLists file](CMakeLists.txt) and append a letter `d` at the end of the package name lines. For example, `NAMES protobuf-lite` would become `NAMES protobuf-lited`. +**Default**: Debug=0 + +**CMake variables** +* `ONNX_USE_PROTOBUF_SHARED_LIBS` should be ON or OFF. +**Default**: ONNX_USE_PROTOBUF_SHARED_LIBS=OFF USE_MSVC_STATIC_RUNTIME=0 +`ONNX_USE_PROTOBUF_SHARED_LIBS` determines how onnx links to protobuf libraries. + - When set to ON - onnx will dynamically link to protobuf shared libs, PROTOBUF_USE_DLLS will be defined as described [here](https://github.com/protocolbuffers/protobuf/blob/master/cmake/README.md#dlls-vs-static-linking), Protobuf_USE_STATIC_LIBS will be set to OFF and `USE_MSVC_STATIC_RUNTIME` must be 0. + - When set to OFF - onnx will link statically to protobuf, and Protobuf_USE_STATIC_LIBS will be set to ON (to force the use of the static libraries) and `USE_MSVC_STATIC_RUNTIME` can be 0 or 1. + +* `ONNX_USE_LITE_PROTO` should be ON or OFF. When set to ON onnx uses lite protobuf instead of full protobuf. +**Default**: ONNX_USE_LITE_PROTO=OFF + +* `ONNX_WERROR` should be ON or OFF. When set to ON warnings are treated as errors. +**Default**: ONNX_WERROR=OFF in local builds, ON in CI and release pipelines. + + +## Common Errors +* Note: the `import onnx` command does not work from the source checkout directory; in this case you'll see `ModuleNotFoundError: No module named 'onnx.onnx_cpp2py_export'`. Change into another directory to fix this error. + +* Building ONNX on Ubuntu works well, but on CentOS/RHEL and other ManyLinux systems, you might need to open the [CMakeLists file][CMakeLists] and replace all instances of `/lib` with `/lib64`. + +# Testing + +ONNX uses [pytest](https://docs.pytest.org) as test driver. In order to run tests, you will first need to install pytest: + +``` +pip install pytest nbval +``` + +After installing pytest, use the following command to run tests. + +``` +pytest +``` + +# Development + +Check out the [contributor guide](docs/CONTRIBUTING.md) for instructions. + +# License + +[Apache License v2.0](LICENSE) + +# Code of Conduct + +[ONNX Open Source Code of Conduct](https://onnx.ai/codeofconduct.html) diff --git a/third_party/onnx/RELEASE-MANAGEMENT.md b/third_party/onnx/RELEASE-MANAGEMENT.md new file mode 100644 index 000000000..507cc8002 --- /dev/null +++ b/third_party/onnx/RELEASE-MANAGEMENT.md @@ -0,0 +1,71 @@ + + +# ONNX release management + +This describes the process by which versions of ONNX are officially released to the public. + +Releases +-------- + +Releases are versioned according to [ONNX Versioning](docs/Versioning.md). This describes IR and operator versioning policies, as well as propose how models themselves should be versioned. + +On a regular basis, new versions of ONNX are published, representing the aggregate of changes in the IR and operator sets. Such releases use semantic versioning to describe the progression of the standard. + +The GitHub repo for ONNX provides release branches where the project is stabilized as per the process described here. Release notes are used to communicate the stability and status of a release. The main branch will be used to continue work for subsequent releases. + +Major, minor and patch releases will have branch names and version numbers reflecting the nature of the change as per semantic versioning definitions. + +Workflow +-------- + +The following workflow describes the steps taken to release an update of ONNX, +and can be undertaken regardless of whether a major, minor or patch release is +to be produced. + +- The trigger for the workflow will typically be a time-based trigger based on + elapsed time (say every three months), but for the first release, we will + start the process in early November 2017. + +- The release manager will announce the intent of the process (to produce a + major, minor or patch update) and the overall timeline. A release branch is + created with the name rel-major#.minor#(.patch#), and any version + references in build scripts or version checks are updated. + +- The release manager announces the initial commit for testing. The first + period lasts a week; any regressions found should be fixed, typically via + the main branch. Incomplete features should be done or excised during this + period. A distribution can be made available with an -RC1 suffix. + +- The release manager announces a second round of testing (unless it's only a + patch update with no regressions found). Only critical bugs are fixed at + this point, or those introduced by patches from the first week. A third + weeek may be introduced at the release manager's discretion if significant + fixes need to be taken. Distributions with -RCn suffixes can be made + available if convenient. + +- Release notes are updated with final changes, and a file with sources is + provided along with a release on the GitHub project page. + +Testing +------- + +The release process really consists of communicating, testing to establish a +known state of the project, and distributing files. This section deals with +the second task. + +At the very least, the tests that are part of the /test folder should be run +under a variety of configurations. Issues fixed should ensure coverage in this +suite to avoid regressions. + +Send a Pull Request for updates to this section to include a configuration you +can help test if you care about one that's missing. + +The community is encouraged to perform additional testing during the test +periods. Bugs and issues should be filed in the ONNX GitHub repo. + +Distribution +------------ + +The distribution of files follows the basic procedures described in +[Creating Releases](https://help.github.com/articles/creating-releases/). + diff --git a/third_party/onnx/SECURITY.md b/third_party/onnx/SECURITY.md new file mode 100644 index 000000000..d9497cd94 --- /dev/null +++ b/third_party/onnx/SECURITY.md @@ -0,0 +1,15 @@ + + +# Security Policy + +## Reporting a Vulnerability +If you think you have found a security vulnerability, please send a report to onnx-security@lists.lfaidata.foundation. Please do not post security vulnerabilities on Slack. + +We don't currently have a PGP key, unfortunately. + +An ONNX committer will send you a response indicating the next steps in handling your report. After the initial reply to your report, the committer will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance. + +Important: Please don't disclose the vulnerability before it has been fixed and announced, to protect our users. + +## Security announcements +Please subscribe to the [announcements mailing list](https://lists.lfaidata.foundation/g/onnx-announce), where we post notifications and remediation details for security vulnerabilities. diff --git a/third_party/onnx/VERSION_NUMBER b/third_party/onnx/VERSION_NUMBER new file mode 100644 index 000000000..1cac385c6 --- /dev/null +++ b/third_party/onnx/VERSION_NUMBER @@ -0,0 +1 @@ +1.11.0 diff --git a/third_party/onnx/cmake/ONNXConfig.cmake.in b/third_party/onnx/cmake/ONNXConfig.cmake.in new file mode 100644 index 000000000..27837e919 --- /dev/null +++ b/third_party/onnx/cmake/ONNXConfig.cmake.in @@ -0,0 +1,23 @@ +# - Config file for the ONNX package +# It defines the following variable(s) +# ONNX_INCLUDE_DIRS - include directories for FooBar +# as well as ONNX targets for other cmake libraries to use. + +# library version information +set(ONNX_VERSION "@ONNX_VERSION@") + +# import targets +include ("${CMAKE_CURRENT_LIST_DIR}/ONNXTargets.cmake") + +# include directory. +# +# Newer versions of CMake set the INTERFACE_INCLUDE_DIRECTORIES property +# of the imported targets. It is hence not necessary to add this path +# manually to the include search path for targets which link to gflags. +# The following lines are here for backward compatibility, in case one +# would like to use the old-style include path. +get_filename_component( + CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component( + _INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) +set(ONNX_INCLUDE_DIRS "${_INSTALL_PREFIX}/include") diff --git a/third_party/onnx/cmake/ONNXConfigVersion.cmake.in b/third_party/onnx/cmake/ONNXConfigVersion.cmake.in new file mode 100644 index 000000000..03783c3a5 --- /dev/null +++ b/third_party/onnx/cmake/ONNXConfigVersion.cmake.in @@ -0,0 +1,11 @@ +set(PACKAGE_VERSION "@ONNX_VERSION@") + +# Check whether the requested PACKAGE_FIND_VERSION is compatible +if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/third_party/onnx/cmake/Utils.cmake b/third_party/onnx/cmake/Utils.cmake new file mode 100644 index 000000000..c0c82475c --- /dev/null +++ b/third_party/onnx/cmake/Utils.cmake @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# Add MSVC RunTime Flag +function(add_msvc_runtime_flag lib) + if(${ONNX_USE_MSVC_STATIC_RUNTIME}) + target_compile_options(${lib} PRIVATE $<$>:/MT> $<$:/MTd>) + else() + target_compile_options(${lib} PRIVATE $<$>:/MD> $<$:/MDd>) + endif() +endfunction() + +function(add_onnx_global_defines target) + target_compile_definitions(${target} PUBLIC "ONNX_NAMESPACE=${ONNX_NAMESPACE}") + + if(ONNX_ML) + target_compile_definitions(${target} PUBLIC "ONNX_ML=1") + endif() + + if(ONNX_USE_LITE_PROTO) + target_compile_definitions(${target} PUBLIC "ONNX_USE_LITE_PROTO=1") + endif() + + if(ONNX_DISABLE_STATIC_REGISTRATION) + target_compile_definitions(${target} PUBLIC "__ONNX_DISABLE_STATIC_REGISTRATION") + endif() +endfunction() + +function(add_whole_archive_flag lib output_var) + if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") + set(${output_var} -Wl,-force_load,$ PARENT_SCOPE) + elseif(MSVC) + # In MSVC, we will add whole archive in default. + set(${output_var} -WHOLEARCHIVE:$> + PARENT_SCOPE) + else() + # Assume everything else is like gcc + set(${output_var} + "-Wl,--whole-archive $ -Wl,--no-whole-archive" + PARENT_SCOPE) + endif() +endfunction() diff --git a/third_party/onnx/cmake/external/googletest.cmake b/third_party/onnx/cmake/external/googletest.cmake new file mode 100644 index 000000000..d8131fb39 --- /dev/null +++ b/third_party/onnx/cmake/external/googletest.cmake @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: Apache-2.0 + +include (ExternalProject) + +set(googletest_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/googletest/src/googletest/googletest/include) +set(googletest_URL https://github.com/google/googletest.git) +set(googletest_BUILD ${CMAKE_CURRENT_BINARY_DIR}/googletest/) +set(googletest_TAG e93da23920e5b6887d6a6a291c3a59f83f5b579e) +#0fe96607d85cf3a25ac40da369db62bbee2939a5 + +if(WIN32 AND CMAKE_BUILD_TYPE MATCHES Debug) + set(googletest_STATIC_LIBRARIES + ${CMAKE_CURRENT_BINARY_DIR}/googletest/src/googletest/googletest/Debug/gtestd.lib) +elseif(WIN32 AND NOT CMAKE_BUILD_TYPE MATCHES Debug) + set(googletest_STATIC_LIBRARIES + ${CMAKE_CURRENT_BINARY_DIR}/googletest/src/googletest/googletest/Release/gtest.lib) +elseif(CMAKE_BUILD_TYPE MATCHES Debug) + set(googletest_STATIC_LIBRARIES + ${CMAKE_CURRENT_BINARY_DIR}/googletest/src/googletest/googletest/libgtestd.a) +else() + set(googletest_STATIC_LIBRARIES + ${CMAKE_CURRENT_BINARY_DIR}/googletest/src/googletest/googletest/libgtest.a) +endif() + +if(ONNX_USE_MSVC_STATIC_RUNTIME) + set(ONNX_USE_MSVC_SHARED_RUNTIME OFF) +else() + set(ONNX_USE_MSVC_SHARED_RUNTIME ON) +endif() +ExternalProject_Add(googletest + PREFIX googletest + GIT_REPOSITORY ${googletest_URL} + GIT_TAG ${googletest_TAG} + DOWNLOAD_DIR "${DOWNLOAD_LOCATION}" + BUILD_IN_SOURCE 1 + BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} --target gtest + INSTALL_COMMAND "" + CMAKE_CACHE_ARGS + -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} + -DBUILD_GMOCK:BOOL=OFF + -DBUILD_GTEST:BOOL=ON + -Dgtest_force_shared_crt:BOOL=${ONNX_USE_MSVC_SHARED_RUNTIME} + BUILD_BYPRODUCTS ${googletest_STATIC_LIBRARIES} +) diff --git a/third_party/onnx/cmake/summary.cmake b/third_party/onnx/cmake/summary.cmake new file mode 100644 index 000000000..74c7230c5 --- /dev/null +++ b/third_party/onnx/cmake/summary.cmake @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: Apache-2.0 + +# Prints accumulated ONNX configuration summary +function (onnx_print_configuration_summary) + message(STATUS "") + message(STATUS "******** Summary ********") + message(STATUS " CMake version : ${CMAKE_VERSION}") + message(STATUS " CMake command : ${CMAKE_COMMAND}") + message(STATUS " System : ${CMAKE_SYSTEM_NAME}") + message(STATUS " C++ compiler : ${CMAKE_CXX_COMPILER}") + message(STATUS " C++ compiler version : ${CMAKE_CXX_COMPILER_VERSION}") + message(STATUS " CXX flags : ${CMAKE_CXX_FLAGS}") + message(STATUS " Build type : ${CMAKE_BUILD_TYPE}") + get_directory_property(tmp DIRECTORY ${PROJECT_SOURCE_DIR} COMPILE_DEFINITIONS) + message(STATUS " Compile definitions : ${tmp}") + message(STATUS " CMAKE_PREFIX_PATH : ${CMAKE_PREFIX_PATH}") + message(STATUS " CMAKE_INSTALL_PREFIX : ${CMAKE_INSTALL_PREFIX}") + message(STATUS " CMAKE_MODULE_PATH : ${CMAKE_MODULE_PATH}") + message(STATUS "") + message(STATUS " ONNX version : ${ONNX_VERSION}") + message(STATUS " ONNX NAMESPACE : ${ONNX_NAMESPACE}") + message(STATUS " ONNX_USE_LITE_PROTO : ${ONNX_USE_LITE_PROTO}") + message(STATUS " USE_PROTOBUF_SHARED_LIBS : ${ONNX_USE_PROTOBUF_SHARED_LIBS}") + message(STATUS " Protobuf_USE_STATIC_LIBS : ${Protobuf_USE_STATIC_LIBS}") + message(STATUS " ONNX_DISABLE_EXCEPTIONS : ${ONNX_DISABLE_EXCEPTIONS}") + message(STATUS " ONNX_WERROR : ${ONNX_WERROR}") + message(STATUS " ONNX_BUILD_TESTS : ${ONNX_BUILD_TESTS}") + message(STATUS " ONNX_BUILD_BENCHMARKS : ${ONNX_BUILD_BENCHMARKS}") + message(STATUS " ONNXIFI_DUMMY_BACKEND : ${ONNXIFI_DUMMY_BACKEND}") + message(STATUS " ONNXIFI_ENABLE_EXT : ${ONNXIFI_ENABLE_EXT}") + message(STATUS "") + message(STATUS " Protobuf compiler : ${PROTOBUF_PROTOC_EXECUTABLE}") + message(STATUS " Protobuf includes : ${PROTOBUF_INCLUDE_DIRS}") + message(STATUS " Protobuf libraries : ${PROTOBUF_LIBRARIES}") + message(STATUS " BUILD_ONNX_PYTHON : ${BUILD_ONNX_PYTHON}") + if (${BUILD_ONNX_PYTHON}) + message(STATUS " Python version : ${PY_VERSION}") + message(STATUS " Python executable : ${PYTHON_EXECUTABLE}") + message(STATUS " Python includes : ${PYTHON_INCLUDE_DIR}") + endif() +endfunction() diff --git a/third_party/onnx/cmake/unittest.cmake b/third_party/onnx/cmake/unittest.cmake new file mode 100644 index 000000000..83c6f9670 --- /dev/null +++ b/third_party/onnx/cmake/unittest.cmake @@ -0,0 +1,98 @@ +# SPDX-License-Identifier: Apache-2.0 + +set(UT_NAME ${PROJECT_NAME}_gtests) +set(ONNX_ROOT ${PROJECT_SOURCE_DIR}) +set(ONNXIFI_TEST_DRIVER onnxifi_test_driver_gtests) + +include(${ONNX_ROOT}/cmake/Utils.cmake) + +find_package(Threads) + +set(${UT_NAME}_libs ${googletest_STATIC_LIBRARIES}) +set(${ONNXIFI_TEST_DRIVER}_libs ${googletest_STATIC_LIBRARIES}) + +list(APPEND ${UT_NAME}_libs onnx) +list(APPEND ${UT_NAME}_libs onnx_proto) +list(APPEND ${UT_NAME}_libs onnxifi_loader) +list(APPEND ${UT_NAME}_libs onnxifi) +list(APPEND ${UT_NAME}_libs ${PROTOBUF_LIBRARIES}) + +list(APPEND ${ONNXIFI_TEST_DRIVER}_libs onnx) +list(APPEND ${ONNXIFI_TEST_DRIVER}_libs onnx_proto) +list(APPEND ${ONNXIFI_TEST_DRIVER}_libs onnxifi_loader) +list(APPEND ${ONNXIFI_TEST_DRIVER}_libs ${PROTOBUF_LIBRARIES}) +list(APPEND ${ONNXIFI_TEST_DRIVER}_libs onnxifi) + +file(GLOB_RECURSE ${UT_NAME}_src "${ONNX_ROOT}/onnx/test/cpp/*.cc") +file(GLOB_RECURSE ${ONNXIFI_TEST_DRIVER}_src "${ONNX_ROOT}/onnx/backend/test/cpp/*.h" "${ONNX_ROOT}/onnx/backend/test/cpp/*.cc") + +function(AddTest) + cmake_parse_arguments(_UT "" "TARGET" "LIBS;SOURCES" ${ARGN}) + + list(REMOVE_DUPLICATES _UT_LIBS) + list(REMOVE_DUPLICATES _UT_SOURCES) + + add_executable(${_UT_TARGET} ${_UT_SOURCES}) + add_dependencies(${_UT_TARGET} onnx onnx_proto googletest) + + target_include_directories(${_UT_TARGET} + PUBLIC ${googletest_INCLUDE_DIRS} + ${ONNX_INCLUDE_DIRS} + ${PROTOBUF_INCLUDE_DIRS} + ${ONNX_ROOT} + ${CMAKE_CURRENT_BINARY_DIR}) + target_link_libraries(${_UT_TARGET} ${_UT_LIBS} ${CMAKE_THREAD_LIBS_INIT}) + if(TARGET protobuf::libprotobuf) + target_link_libraries(${_UT_TARGET} protobuf::libprotobuf) + else() + target_link_libraries(${_UT_TARGET} ${PROTOBUF_LIBRARIES}) + endif() + + if(WIN32) + target_compile_options(${_UT_TARGET} + PRIVATE /EHsc # exception handling - C++ may throw, + # extern "C" will not + ) + add_msvc_runtime_flag(${_UT_TARGET}) + endif() + + if(MSVC) + target_compile_options(${_UT_TARGET} + PRIVATE /wd4146 # unary minus operator applied to + # unsigned type, result still + # unsigned from include\google\protob + # uf\wire_format_lite.h + /wd4244 # 'argument': conversion from 'google:: + # protobuf::uint64' to 'int', possible + # loss of data + /wd4267 # Conversion from 'size_t' to 'int', + # possible loss of data + /wd4996 # The second parameter is ignored. + ) + if(ONNX_USE_PROTOBUF_SHARED_LIBS) + target_compile_options(${_UT_TARGET} + PRIVATE /wd4251 # 'identifier' : class 'type1' needs to + # have dll-interface to be used by + # clients of class 'type2' + ) + endif() + endif() + + set(TEST_ARGS) + if(ONNX_GENERATE_TEST_REPORTS) + # generate a report file next to the test program + list( + APPEND + TEST_ARGS + "--gtest_output=xml:$.$.results.xml>" + ) + endif() + + add_test(NAME ${_UT_TARGET} + COMMAND ${_UT_TARGET} ${TEST_ARGS} + WORKING_DIRECTORY $) + +endfunction(AddTest) + +addtest(TARGET ${UT_NAME} SOURCES ${${UT_NAME}_src} LIBS ${${UT_NAME}_libs}) +addtest(TARGET ${ONNXIFI_TEST_DRIVER} SOURCES ${${ONNXIFI_TEST_DRIVER}_src} LIBS ${${ONNXIFI_TEST_DRIVER}_libs}) diff --git a/third_party/onnx/community/logo_request.md b/third_party/onnx/community/logo_request.md new file mode 100644 index 000000000..5cee33d97 --- /dev/null +++ b/third_party/onnx/community/logo_request.md @@ -0,0 +1,12 @@ + + +## Member Company logos + +Member Companies as defined [here](readme.md#community-roles) can request their logo be displayed on https://onnx.ai and other materials. + +To have your logo displayed, submit a PR to https://github.com/onnx/onnx.github.io with the following: +1. Text of the PR must include written permission indicating the logo can be used on the onnx.ai website as well as in presentations showing ONNX Member Companies +2. A high quality logo file with transparent background needs to be committed in the "assets" directory. The image file should be 300dpi (best if physical printing is ever required) or a vector file which can be saved in any resolution. +3. The URL of your company or product web page. Ideally the page mentions ONNX. + +Member Companies may ask for their logo to be removed at any time and their status as Member Company rescinded. The Steering Committee also can vote to remove a Member Company of their status. diff --git a/third_party/onnx/community/readme.md b/third_party/onnx/community/readme.md new file mode 100644 index 000000000..ec7b7a8cb --- /dev/null +++ b/third_party/onnx/community/readme.md @@ -0,0 +1,177 @@ + + +# ONNX Open Governance + +## TL;DR + +ONNX is rolling out open governance to encourage broader participation beyond the founding companies. We hope this will make the decision making process more transparent, enable better technical decisions with consideration of more viewpoints, and share the work of maintenance. We want ONNX to be the standard the whole community rallies to without reservations. + +ONNX open governance creates 3 roles: Member, Contributor, Approver. 3 structures are also created: Steering Committee, Special Interest Groups (SIGs), Working Groups. Contributors and Approvers can vote for the Steering Committee members. The Steering Committee charters SIGs and appoints SIG chairs. Every piece of ONNX belongs to some SIG. Contributors and Approvers participate in one or more SIGs. Our governance structured is based on the successful model of Kubernetes. + +The effort is bootstrapped with an initial Steering Committee and set of SIGs with the first elections to occur after 1 year. + +## Principles + +The ONNX community adheres to the following principles: + +* __Open__: ONNX is open source. See repository guidelines and CLA, below. +* __Welcoming and respectful__: See Code of Conduct, below. +* __Transparent and accessible__: Work and collaboration should be done in public. See SIG governance, below. +* __Merit__: Ideas and contributions are accepted according to their technical merit and alignment with project objectives, scope and design principles. Engineering investment >> corporate sponsorship +* __Speed__: Contributing the time and effort to ensure fast decision-making is key to ensuring that the specifications produced is aligned to the fast iteration of machine learning technologies. + +## Community Roles + +### Members +Members are individuals who are interested in or participate in the ONNX community. Members are able to follow and participate in all public modes of communication used by the ONNX community including but not limited to GitHub, Slack, Stack Overflow, email announcements and discussion aliases. Members are expected to adhere to the Code of Conduct but do not have any specific responsibilities. + +### Contributors +Contributors are Members who are active contributors in the community. They can have issues and PRs assigned to them. They also have voting privileges. Contributors can be active in many ways including but not limited to: + +* Authoring or reviewing PRs on GitHub +* Filing or commenting on issues on GitHub +* Contributing to SIG, subproject, or community discussions (e.g. Slack, meetings, email discussion forums, Stack Overflow, etc) +* Creator of content, promoting and advocating the ONNX specification + +A Member can become a Contributor by being sponsored by 2 existing Approvers from different companies. Contributors who are not active in the last 12 months will be removed. + +### Approvers +Approvers are Contributors who are experienced with some aspect of the project and with general software engineering principles. Approvers are responsible for reviewing contributions for acceptance by considering not just code quality but also holistic impact of the contribution including compatibility, performance, and interactions with other areas. + +Approvers need to be active Contributors for at least 3 months and be sponsored by a SIG chair with no objections from other SIG chairs. + +### Member Companies +Member Companies are organizations that support ONNX in one or more of the following ways: +* Having employees participate in SIGs, Working Groups, or the Steering Committee +* Hosting a workshop or meetup for ONNX +* Providing resources for building or hosting ONNX assets +* Doing media or PR activities to promote ONNX +* Shipping a product that supports ONNX + +Member Companies do not have any voting rights, except via their employees who are Contributors. Affiliates and subsidiaries are considered part of the Member Company and not as separate organizations. Being a Member Company does not by itself confer any compliance or certification to the Member Company's products. + +Member Companies can request their logo be displayed on the website and other materials by following these [instructions](logo_request.md). + +## Organizational Structure + +The ONNX community is organized in the following manner, with all governance and execution being planned and coordinated as follows: + +* **Steering Committee** is made up of a set number of people whose charter it is to define and iterate on the vision, goals, and governance process of the ONNX community. +* **Special Interest Groups (SIGs)** are persistent groups that are responsible for specific parts of the project. SIGs must have open and transparent proceedings. Anyone is welcome to participate and contribute provided they follow the Code of Conduct. The purpose of a SIG is to develop a set of goals to be achieved over a set period of time, and then to gather input, drive consensus and closure, implement code contributions, and other related activities to achieve the goal. SIGs are also responsible for ongoing maintenance of the code in their areas. +* **Working Groups** are temporary groups that are formed to address issues that cross SIG boundaries. Working groups do not own any code ownership or other long term artifacts. Working groups can report back and act through involved SIGs. + +### Steering Committee + +#### Role + +The Steering Committee has a set of rights and responsibilities including the following: + +* Define, evolve, and defend the vision, values, mission, and scope of the project. +* Define, evolve, and defend a Code of Conduct, which must include a neutral, unbiased process for resolving conflicts. +* Define and evolve project governance structures and policies, including how members become contributors, approvers, SIG chairs, etc. +* Charter and refine policy for defining new community groups (Special Interest Groups, Working Groups, and any future possible defined structure), and establish transparency and accountability policies for such groups. +* Decide, for the purpose of elections, who is a member of standing of the ONNX project, and what privileges that entails. +* Decide which functional areas and scope are part of the ONNX project, including accepting new or pruning old SIGs and Working Groups. +* Decide how and when official releases of ONNX artifacts are made and what they include. +* Declare releases when quality/feature/other requirements are met. +* Control access to, establish processes regarding, and provide a final escalation path for any ONNX repository, which currently includes all repositories under the ONNX GitHub organizations +* Control and delegate access to and establish processes regarding other project resources/assets, including artifact repositories, build and test infrastructure, web sites and their domains, blogs, social-media accounts, etc. +* Define any certification process. +* Manage the ONNX brand and any outbound marketing. +* Make decisions by majority vote if consensus cannot be reached. + +#### Structure + +The Steering Committee consists of 5 individuals. No single Member Company may have more than 1 representative. Members serve 1 year terms. + +The starting composition will be individuals from Microsoft, Facebook, Amazon, and 2 other Member Companies, who have been picked by the three founding members based on contributions and experience. + +After the initial term of each Steering Committee representative is completed, their seat will be open for any contributor in the community to be elected into the seat via a community vote. Only contributors may vote, but would be restricted to one vote per Member Company. Therefore, if a Member Company had three contributors in good standing, the three contributors would have to select who would vote on their behalf. + +If a member of the Steering Committee changes companies, by default they retain and may continue on with the role. However, should their company/organization ask this person to resign from the role, new elections will be held. If the employment change results in a single Member Company having more than one representative, then one of them must resign, and new elections are held. + +The Steering Committee will decide on and publish an election process within 3 months of formalizing this organizational structure. This will cover voting eligibility, eligibility for candidacy, election process and schedule. During this time period, the Steering Committee will also establish SIGs and Working Groups. + +A Steering Committee member can be removed due to Code of Conduct violations. + +### SIG - Special Interest Groups + +#### Role + +The ONNX project is organized primarily into Special Interest Groups, or SIGs. Each SIG is comprised of individuals from multiple companies and organizations, with a common purpose of advancing the project with respect to a specific topic. + +Our goal is to enable a distributed decision structure and code ownership, as well as providing focused forums for getting work done, making decisions, and on-boarding new contributors. Every identifiable part of the project (e.g., repository, subdirectory, API, test, issue, PR, Slack channel) is intended to be owned by some SIG. At the time of inception of this organizational structure, the following SIGs will be present: + +* Architecture & Infra + * This SIG is responsible for defining and maintaining the core ONNX format, the build and CI/CD systems for ONNX repositories, publishing release packages for ONNX, the onnx-docker repository, and creating tools to help integrate with and test against the ONNX standard. This SIG is also the defacto owner of files in the main ONNX repository unless explicitly owned by another SIG. +* Operator Standardization + * This SIG is responsible for determining the operators that are part of the ONNX spec (ONNX and ONNX-ML domains), ensuring high quality operator definitions and documentation, establishing criteria for adding new operators, managing ops domains and compliance tiers, and enforcing versioning mechanisms. +* Converters + * This SIG is responsible for developing and maintaining the various converter repositories under ONNX. +* Model zoo and tutorials + * This SIG is responsible for the respective repositories with the charter of providing a comprehensive collection of state of the art ONNX models from a variety of sources and making it easy for users to get started with ONNX and the ecosystem around it. + +#### Structure + +SIGs must have at least one, and may have up to two SIG chairs at any given time. SIG chairs are intended to be organizers and facilitators, responsible for the operation of the SIG and for communication and coordination with the other SIGs, the Steering Committee, and the broader community. All SIG chairs are appointed by the Steering Committee. If there are more than two contributors being considered for a particular SIG, the Steering Committee will vote on and resolve who the chairs would be. Candidates need to be Approvers. + +Each SIG must have a charter that specifies its scope (topics, subsystems, code repos and directories), responsibilities, and areas of authority. Charters are submitted to the ONNX GitHub via PR for review and approval by the Steering Committee who will be looking to ensure the scope of the SIG as represented in the charter is reasonable. All SIGs are expected to follow the standards established by the Steering Committee for how Contributors are roles of authority/leadership are selected/granted, how decisions are made, and how conflicts are resolved. + +A primary reason that SIGs exist is as forums for collaboration. Much work in a SIG should stay local within that SIG. However, SIGs must communicate in the open, ensure other SIGs and community members can find meeting notes, discussions, designs, and decisions, and periodically communicate a high-level summary of the SIG's work to the community. SIGs are also responsible to: + +* Meet regularly, at least monthly +* Keep up-to-date meeting notes, linked from the SIG's page in the community repo +* Announce meeting agenda and minutes after each meeting, on their SIG mailing list and/or Slack channel +* Ensure the SIG's mailing list is archived (i.e on GitHub) +* Report activity in overall ONNX community meetings +* Participate in release planning meetings, retrospective, etc (if relevant) +* Actively triage issues, PRs, test failures, etc. related to code and tests owned by the SIG +* Use the above forums as the primary means of working, communicating, and collaborating, as opposed to private emails and meetings + +#### Decision making + +When it is time to formalize the work-product from a SIG, votes are taken from every contributor who participates in the SIG. The list of active contributors is determined by the one (or two) SIG leads to ensure that only those who have actively participated in the SIG can vote. At this time there is no restrictions on how many contributors from any one Member Company can participate (and hence vote). The Steering Committee will monitor how the community behaves and apply constraints if needed in the future. + +While most work shouldn’t require expensive coordination with other SIGs, there will be efforts (features, refactoring, etc.) that cross SIG boundaries. In this case, it is expected that the SIGs coordinate with each other and come to mutually agreed solutions. In some cases, it may make sense to form a Working Group for joint work. Cross-SIG coordination will naturally require more time and implies a certain amount of overhead. This is intentional to encourage changes to be well encapsulated whenever possible. + +### WG - Working Groups + +Working Groups (WGs) are primarily used to facilitate topics of discussion that cross SIG lines, or are topics which are short-lived and require a limited set of decisions to be agreed upon. Working groups: + +* do not own code +* have a clear goal measured through specific deliverables +* will be disbanded after the goal is achieved + +Working Groups can create specifications, recommendations, or implementations for submission to the relevant SIGs for approval and acceptance. At time of inception of this organizational structure, the following WGs will be present: + + * Edge / Mobile + * Training + * Quantization + * Data Processing + +Working Groups are formed by submitting a proposal via PR to the Steering Committee. The proposal should cover: + +* what is the exact problem being worked on +* what is the exit criteria +* who are the chairs (up to 2) +* what are the meeting and discussion mechanics + +Working Groups are disbanded when there is no activity for more than *3 months* or when the chair informs the Steering Committee. + +## Repository Guidelines + +All repositories under the ONNX github org: + +* Must adopt the ONNX Code of Conduct +* All code projects use the Apache 2.0 license. Documentation repositories must use the Creative Commons License version 4.0. +* Must adopt the DCO bot +* All OWNERS must be members of standing as defined by ability to vote in ONNX steering committee elections +* Repository must be approved by the Steering Committee + +Repositories can be removed when they are inactive by archiving them. + +(Code repositories previously used the MIT license and moved to Apache 2.0 in October 2020.) + +## CLA / DCO + +As of October 2020, the CLA (https://cla-assistant.io/onnx/onnx) has been retired. All commits are subject to the DCO (https://www.developercertificate.com/) and need to be signed. diff --git a/third_party/onnx/community/repo_guidelines.md b/third_party/onnx/community/repo_guidelines.md new file mode 100644 index 000000000..15f0a02f0 --- /dev/null +++ b/third_party/onnx/community/repo_guidelines.md @@ -0,0 +1,35 @@ + + +# Repositories under ONNX GitHub organization + +The ONNX GitHub organization contains a number of repositories. Every repository is owned by a SIG and the Steering Committee is responsible for managing these repos. Requests for creating, transferring, modifying, or archiving repositories can be made by filing an issue a request against https://github.com/onnx/steering-committee. + +## Rules for all repos + +* Must be owned and managed by one of the ONNX SIGs +* Must be actively maintained +* Must adopt the ONNX Code of Conduct +* Must adopt the standard ONNX license(s) +* Must adopt the ONNX CLA bot +* Must adopt all ONNX automation (like LGTM) +* Must have CI or other automation in place for repos containing code to ensure quality +* All OWNERS must be members of standing as defined by ability to vote in Steering Committee elections. + +## Requirements for new, contributed repos + +We are happy to accept contributions as repos under the ONNX organization of new projects that meet the following requirements: + +* Project is closely related to ONNX +* Adds value to the ONNX ecosystem +* Determined to need a new repo rather than a folder in an existing repo +* All contributors must have signed the ONNX CLA +* Licenses of dependencies must be acceptable +* Committment to maintain the repo +* Approval of the SIG that will own the repo +* Approval of the Steering Committee + +If you want to contribute a repository, you should first work with the SIG that will own it. Then the SIG can work with the Steering Committee to finalize. + +## Archiving repos + +Repositories that are inactive or unneeded will be archived. The SIG that owns the repo is responsible for deciding when it should be archived. SIGs should regularly validate the repos they own are still active and necessary. diff --git a/third_party/onnx/community/sc-election-guidelines.md b/third_party/onnx/community/sc-election-guidelines.md new file mode 100644 index 000000000..99adce30c --- /dev/null +++ b/third_party/onnx/community/sc-election-guidelines.md @@ -0,0 +1,67 @@ + + +# ONNX Steering Commitee election guideline + +## Introduction + +To encourage community participation and wider adoption in the industry, ONNX has introduced [open governance](https://github.com/onnx/onnx/wiki/Expanded-ONNX-Steering-Committee-Announced!) in March 2018. The governance has three defined structures to propel the development of ONNX project forward: [Steering Committee](/community/readme.md#steering-committee), [Special Interest Groups (SIGs)](/community/readme.md#sig---special-interest-groups), and [Working Groups (WGs)](/community/readme.md#wg---working-groups). While SIGs and WGs primarily focus on the techinical roadmap of ONNX, the Steering Committe is responsible for setting the vision and governance process of the ONNX community. + +For the first year of its ONNX open governance, representatives from Facebook, Microsoft, AWS, Intel and Nvidia are chosen to serve as the ONNX Steering Committee to help guide the project. The Steering Committee will be elected by the [Contributors](/community/readme.md#community-roles) in its second year and will be re-elected every year. + +This document is created to provide guidelines for the election process to ensure maximum transparency and fairness. + + +## Timeline + +Candidate applications will be accepted in April, and the election will be held in May. The new term for Steering Committee begins on June 1st of the corresponding year. The following table outlines the schedule for the election process. + +| Schedule | Event | +|:-------------|:--------------------| +| 1st Monday of April| Application for Steering Committee candidates open. | +| 3rd Monday of April| Candidates and their applications posted on github. Campaigning session held over video conference with an option to pre-record.| +| 1st Monday of May| Election begins. | +| 2nd Monday of May| Election closes, and votes counted. Election results announced in the same week.| +| 3rd Monday of May| Previous Steering Committee to meet the newly elected Committee for official transition.| +| June 1 | New term begins with elected Steering Committee. Steering Committee Emeritus members help with the transition for the month of June. | + + +## Eligibility + +### Eligibility for Steering Committee candidacy +Candidates will be self-nominated, and they do not necessarly need to be a [Contributor](/community/readme.md#community-roles) to the ONNX project. The duties of the Steering Committee extend beyond simply contributing code to the ONNX project. + + +### Eligibility for voting + +To participate in the Steering commitee election, you must be a Contributor to the ONNX project. As defined in the community guideline, Contributor is sponsored by 2 approvers from different companies. + +Contributors are further required to submit their github handle, email address, and affiliated company name to be eligible for voting. Any Contributor who has not submitted their information by before April 31st will not be able to participate in the election. The Steering Committee is currently reviewing options for collecting contributor information, and the best option will be notified to the Contributors shortly. + +## Candidacy process + +## Voting process + +### General election procedure +In order to promote fairness, the Steering Committee has decided to limit 1 vote per Member Company. Contributors will be able to vote individually, but their votes will be rolled up to represent the vote of associated Member Company. This procedure will prevent large companies with lots of Contributors from dominating the election results. + +### Voting mechanics and algorithm + +The election will use [Condorcet ranking](https://en.wikipedia.org/wiki/Condorcet_method) with [Schulze method](https://en.wikipedia.org/wiki/Schulze_method). Condorcet ranking allows voters to indicate ranked preference for candidates, and Schultz method provides an algorithm to tally the overall preference. + +For ONNX Steering Committee election, the Condorcet ranking with Schulze method will be performed twice. The individual Contributor votes gets tallied first to Member Companies, and the results of the Member Company votes are ranked again using the same method. + +### Voting platform +We will use Condorcet Internet Voting Service ([civs.cs.cornell.edu](https://civs.cs.cornell.edu/)) to collect votes from Contributors. + +After votes are casted, the results of individual votes will be uploaded to ONNX Github election directory to ensure transparency. + +## Election officers and Steering Committee emeritus members + +### Election officers +Two election officers will be chosen from the current Steering committee to oversee the election process. They are responsible for overseeing the progress of the election and ensure the process is correctly implemented. Their duties include coordinating election as shown in the timeline above, tallying votes and announcing results for the ONNX community. + +### Steering Committee emeritus members +Two Steering Committee members will remain as emeritus members for the newly elected Committee to help with transition process for 1 month. If previous Steering Committee members are relected, then they will guide the transition for the new members, and there will not be a separate Steering Committe emeritus members. + + + diff --git a/third_party/onnx/community/sigs.md b/third_party/onnx/community/sigs.md new file mode 100644 index 000000000..c294d388f --- /dev/null +++ b/third_party/onnx/community/sigs.md @@ -0,0 +1,20 @@ + + +# SIGs - Special Interest Groups + +As described in the ONNX [governance](/community/readme.md#sig---special-interest-groups), Special Interest Groups (SIGs) are persistent groups responsible for specific parts of the project. SIGs have open and transparent proceedings to develop goals and implement code contributions. SIGs are also responsible for ongoing maintenance of the code in their areas. + +## Joining a SIG + +If you are interested in participating, please [join the discussion](https://slack.lfai.foundation/) in the respective Slack channels. Details about any upcoming meetings will also be shared in the Slack channels. SIG artifacts can be found in the [sigs repository](https://github.com/onnx/sigs). + +You can find the schedule of SIG meetings on the [LF AI calendar](https://wiki.lfai.foundation/pages/viewpage.action?pageId=18481196) + +## Current SIGs + +| Name | Responsibilities | +| ---- | ---------------- | +| [Architecture & Infra](https://lfaifoundation.slack.com/archives/C018Y2QG7V2) | Defining and maintaining the core ONNX format, the build and CI/CD systems for ONNX repositories, publishing release packages for ONNX, the onnx-docker repository, and creating tools to help integrate with and test against the ONNX standard. This SIG is also the defacto owner of files in the main ONNX repository unless explicitly owned by another SIG. | +| [Operators](https://lfaifoundation.slack.com/archives/C018Y2RAY4C) | Determining the operators that are part of the ONNX spec (ONNX and ONNX-ML domains), ensuring high quality operator definitions and documentation, establishing criteria for adding new operators, managing ops domains and compliance tiers, and enforcing versioning mechanisms. | +| [Converters](https://lfaifoundation.slack.com/archives/C0171FSKZBN) | Developing and maintaining the various converter repositories under ONNX. | +| [Models and tutorials](https://lfaifoundation.slack.com/archives/C018RE2BRBL) | Providing a comprehensive collection of state of the art ONNX models from a variety of sources and making it easy for users to get started with ONNX and the ecosystem around it. | diff --git a/third_party/onnx/community/working-groups.md b/third_party/onnx/community/working-groups.md new file mode 100644 index 000000000..4d03b3599 --- /dev/null +++ b/third_party/onnx/community/working-groups.md @@ -0,0 +1,37 @@ + + +# Working Groups + +As described in the ONNX [governance](/community/readme.md#wg---working-groups), Working Groups (WGs) are temporary groups formed to address issues that cross SIG boundaries. Working Groups have a have a clear goal measured through specific deliverables and disband after the goal is achieved. Working groups do not own artifacts long term; they create specifications, recommendations, and/or code implementations for submission to the relevant SIGs for approval and acceptance. + +## Proposing a new working group +New Working Groups are created when there is sufficient interest in a topic area and someone volunteers to be the chair for the group and submits a proposal to the steering committee. The chair facilitates the discussion and helps synthesize proposals and decisions. + +## Joining a working group +Working Groups have most of their discussions on Slack. If you are interested in participating, please join the discussion in the respective Slack channels. Details about any upcoming meetings will also be shared in the Slack channel. Working Group artifacts can be found in the [working-groups repository](https://github.com/onnx/working-groups). + +You can find the schedule of meetings on the [LF AI wiki](https://wiki.lfai.foundation/pages/viewpage.action?pageId=18481196) + +## Active working groups + +| Working Group | Objectives | +| ------------------ | ------------- | +| [Release](https://lfaifoundation.slack.com/archives/C018VGGJUGK) | Improve the release process for ONNX | +| [Training](https://lfaifoundation.slack.com/archives/C018K560U14) | Expand ONNX to support training as well as inference | +| [Preprocessing](https://lfaifoundation.slack.com/archives/C02AANGFBJB) | Make data preprocessing part of ONNX | + +## Completed working groups + +| Working Group | Objectives | Status | +| ------------------ | ------------- | ------ | +| [Control Flow and Loops](https://gitter.im/onnx/ControlFlowWG) | Enable dynamic control structures to enable advanced models for NLP, speech, and video/image processing | Completed - If, Loop, and Scan operators were added in ONNX 1.3 release. | +| [Quantization](https://gitter.im/onnx/quantization) | Enhance ONNX to support quantized data types and operators on a variety of runtimes and hardware devices | Completed - added in ONNX 1.5 release. | +| [Foundation](https://gitter.im/onnx/foundation) | Identify and evaluate non-profit foundation options for the ONNX consortium. Execute on best option. | Completed - ONNX joined LF AI in November 2019| + +## Inactive working groups + +| Working Group | Objectives | Status | +| ------------------ | ------------- | ------ | +| [Testing/Compliance](https://gitter.im/onnx/test_compliance) | Create tools, tests and APIs to ensure models and backends comply with the ONNX specification | became part of the ArchInfra SIG for now | +| [Edge/Mobile](https://gitter.im/onnx/edge) | Enable deployment of ONNX models to edge platforms by identifying the ONNX operators that must be supported by mobile and IoT runtimes, defining tool chain requirements, and contributing to ONNX compatibility tests | Stopped as of January 2020 | +| [Data Pipelines](https://gitter.im/onnx/pipelines) | Define new operators for processing the data that goes in and comes out | No recent activity | diff --git a/third_party/onnx/docs/AddNewOp.md b/third_party/onnx/docs/AddNewOp.md new file mode 100644 index 000000000..3f87cb65e --- /dev/null +++ b/third_party/onnx/docs/AddNewOp.md @@ -0,0 +1,98 @@ + + +# Table of Contents +1. [New Operator or Function](#new_operator_or_function) + 1. [Step 1: Proposing a new operator/function](#step1_new_operator_or_function) + 2. [Step 2: Submit PR](#step2_new_operator_or_function) + 3. [Step 3: PR Review by Operators SIG](#step3_new_operator_or_function) + 4. [Step 4: ONNX release](#step4_new_operator_or_function) + +2. [Removing Operator or Function](#removing_operator_or_function) + 1. [Removing operator](#removing_operator) + 2. [Removing function](#removing_function) + 3. [Document removing operator or function](#document_removing_operator_or_function) + +# Proposing and submitting a new operator or function to ONNX + +Operators are the basic building blocks that define ONNX model. With a rich set of operators, ONNX can describe most DNN and ML models from various frameworks. Functions allow for composing complex operators from more primitive operators. The ONNX specification includes a core set of operators that enable many models. It is a non-goal to add all possible operators, however more operators are added as needed to cover evolving needs. + +In this document, we describe the process of accepting a new proposed operator and how to properly submit a new operator as part of ONNX standard. The goal is to improve on what we currently have based on our experience, learning and feedbacks we gathered from the community. + +## 4 steps to add an operator +1. Decide what to propose +2. Submit PR for new operator/function +3. Review of PR by Operators SIG +4. Merging of PR and inclusion in next ONNX release + +## Step 1: Proposing a new operator/function +In order to propose a new operator/function, the following is needed: +1. If the operator can be composed by other ONNX operators, then it should be a function and not an operator (we have a function in ONNX : MeanVarianceNormalization). +2. If the operators can be split to new primitives, propose those primitives instead and make the operator a function. +3. Based on a model. This will help us understand the usage and that it solves an actual problem. For the case of the model being private or IP and can't be shared, the operator doesn't belong to the standard and should be implemented as custom OP. +4. The operator needs to be implemented by at-least one (well-known) framework. This help us to understand the actual behavior of the operator and its usage. +5. Operator signature and behavior: + 1. If the operator is available in numpy, prefer numpy semantics. + 2. If the operator is available in more than one frameworks, make sure that your design is general and cover those frameworks. +6. Prefer attributes over inputs. + +## Step 2: Submit PR +Once the criteria of proposing new operator/function has been satisfied, you will need to submit a PR for the new operator/function. Here the expectation of what the PR should include. The reviewer is expected to verify the completeness of the PR before signoff. +1. Description: + 1. Write a detailed description about the operator, and its expected behavior. Pretty much, the description should be clear enough to avoid confusion between implementors. + 2. Add an example in the description to illustrate the usage. + 3. Add reference to the source of the operator in the corresponding framework in the description (if possible). + 4. Write the mathematic formula or a pseudocode in the description. The core algorithm needs to be very clear. +2. Write a reference implementation in Python, this reference implementation should cover all the expected behavior of the operator. Only in extremely rare case, we will waive this requirement. +3. Operator version: check out our +[versioning doc](/docs/Versioning.md#operator-versioning) +4. Write unit test, that cover main usage and corner cases. + 1. The testing examples will be extracted to the doc. + 2. We also generate binary data for it. + 3. Example: [onnx/backend/test/case/node/abs.py](/onnx/backend/test/case/node/abs.py) +5. Add at least one automatic upgrade test for your operator in [onnx/test/automatic_upgrade_test.py](/onnx/test/automatic_upgrade_test.py) using `_test_op_upgrade`. These tests create a given operator at a given opset version (usually the version the operator was introduced in) and test that the version converter is able to convert them to the highest available version. So for a new operator `_test_op_upgrade` will not test anything, but as soon as the operator gets updated in a future opset the test will autoamtically become nontrivial. +6. Update the documentation and generate the test data. + 1. Running [the script](/tools/update_doc.sh) +to update the doc and generate the test data. +7. Shape Inference function + 1. Please provide a shape inference function in cases where it is meaningful and applicable. + 2. In cases where shape inference is not possible, it must have logic to perform +rank inference at the very least (adding right amount of dimensions to the output shape) + 3. Shape inference functions must be accompanied by unit tests ([onnx/test/shape_inference_test.py](/onnx/test/shape_inference_test.py)). + 4. You can refer to the shape inference function for the `TopK` operator while implementing your own function ([onnx/defs/math/defs.cc](/onnx/defs/math/defs.cc)) + +### Example to Follow +[PR 1959](https://github.com/onnx/onnx/pull/1959) is a good example to follow. + +## Step 3: PR Review by Operators SIG +The [Operators SIG](https://github.com/onnx/sigs/tree/main/operators) is responsible for the operators/functions in the ONNX specification. The SIG regularly meets and reviews PRs. + +### Sign-off +At least two sign-off from the Operators SIG [contributors](https://github.com/onnx/onnx/tree/main/community#community-roles). + +## Step 4: ONNX release +Once the PR is reviewed and signed off by the Operators SIG, it will be merged. Your new operator/function will be part of the main branch and available to anyone building from source. These are not official releases. ONNX periodically releases official new versions that are a snapshot of the main branch. Your new operator/function will be part of that release. + +# Removing operator or function +There are a lot of reasons for removing existing ONNX operator or function, such us being replaced with different operator or can be decomposed by a set of other operators. This document describes the criteria of removing an existing ONNX operator from the standard. + +## Removing operator +Any operator in ONNX was added because it was required by a model and/or framework. In order to deprecate such an operator we need to do the following. +* Operator can’t be deprecated unless there is a replacement. + * Replacement can be a more general operator that supersedes the old one. + * Or a set of primitive operators that together can implement the same functionality and behavior of the deprecated operator (Function). +* If the deprecated operator can be decomposed by existing operators then it must be converted to a function. +* If replacement isn’t in ONNX standard yet, then add the replacement operator or set of operators first. +* Add a version adapter which turns the operator into its replacement for the version converter. Example: [onnx/version_converter/adapters/upsample_9_10.h](/onnx/version_converter/adapters/upsample_9_10.h) +* No grace period is needed for deprecated operators. + +## Removing function +Function, by definition, is composed of ONNX primitives; however, function could have been accelerated by framework or runtime that support ONNX. So, removing function is not recommended, with the exception of adding another single function which supersede its functionality. + +## Document removing operator or function +To make sure everyone is aware of the deprecation, the following need to happen: +* Any removed operator or function from ONNX need to be mentioned in the release note. +* Their old documentation needs to be updated to show the new replacement and the mapping between the old to the new. + * Only `def.cc` need to be remove, `old.cc` will remain. + * `old.cc` need to be updated with the mapping to the replacement. +* ONNX checker need to be updated to error with a proper message. +* All removed operators need to be appended at the end of the `operator.md` file. diff --git a/third_party/onnx/docs/Broadcasting.md b/third_party/onnx/docs/Broadcasting.md new file mode 100644 index 000000000..02be7251f --- /dev/null +++ b/third_party/onnx/docs/Broadcasting.md @@ -0,0 +1,72 @@ + + +# Broadcasting in ONNX + +In ONNX, element-wise operators can take inputs with different shape, +as long as the input tensors are broadcastable to the same shape. +ONNX supports two types of broadcasting: multidirectional broadcasting and +unidirectional broadcasting. We will introduce these two types of broadcasting +respectively in the following sections. + + +## Multidirectional Broadcasting + +In ONNX, a set of tensors are multidirectional broadcastable to the same shape +if one of the following is true: +- The tensors all have exactly the same shape. +- The tensors all have the same number of dimensions and the length of +each dimensions is either a common length or 1. +- The tensors that have too few dimensions can have their shapes prepended +with a dimension of length 1 to satisfy property 2. + +For example, the following tensor shapes are supported by multidirectional broadcasting: + +- shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar ==> shape(result) = (2, 3, 4, 5) +- shape(A) = (2, 3, 4, 5), shape(B) = (5,), ==> shape(result) = (2, 3, 4, 5) +- shape(A) = (4, 5), shape(B) = (2, 3, 4, 5), ==> shape(result) = (2, 3, 4, 5) +- shape(A) = (1, 4, 5), shape(B) = (2, 3, 1, 1), ==> shape(result) = (2, 3, 4, 5) +- shape(A) = (3, 4, 5), shape(B) = (2, 1, 1, 1), ==> shape(result) = (2, 3, 4, 5) + +Multidirectional broadcasting is the same as [Numpy's broadcasting](https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html#general-broadcasting-rules). + +Multidirectional broadcasting is supported by the following operators in ONNX: +- [Add](Operators.md#Add) +- [And](Operators.md#And) +- [Div](Operators.md#Div) +- [Equal](Operators.md#Equal) +- [Greater](Operators.md#Greater) +- [Less](Operators.md#Less) +- [Max](Operators.md#Max) +- [Mean](Operators.md#Mean) +- [Min](Operators.md#Min) +- [Mul](Operators.md#Mul) +- [Or](Operators.md#Or) +- [Pow](Operators.md#Pow) +- [Sub](Operators.md#Sub) +- [Sum](Operators.md#Sum) +- [Where](Operators.md#Where) +- [Xor](Operators.md#Xor) + +## Unidirectional Broadcasting + +In ONNX, tensor B is unidirectional broadcastable to tensor A +if one of the following is true: +- Tensor A and B both have exactly the same shape. +- Tensor A and B all have the same number of dimensions and the length of +each dimensions is either a common length or B's length is 1. +- Tensor B has too few dimensions, and B can have its shapes prepended +with a dimension of length 1 to satisfy property 2. + +When unidirectional broadcasting happens, the output's shape is the same as +the shape of A (i.e., the larger shape of two input tensors). + +In the following examples, tensor B is unidirectional broadcastable to tensor A: + +- shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar ==> shape(result) = (2, 3, 4, 5) +- shape(A) = (2, 3, 4, 5), shape(B) = (5,), ==> shape(result) = (2, 3, 4, 5) +- shape(A) = (2, 3, 4, 5), shape(B) = (2, 1, 1, 5), ==> shape(result) = (2, 3, 4, 5) +- shape(A) = (2, 3, 4, 5), shape(B) = (1, 3, 1, 5), ==> shape(result) = (2, 3, 4, 5) + +Unidirectional broadcasting is supported by the following operators in ONNX: +- [Gemm](Operators.md#Gemm) +- [PRelu](Operators.md#PRelu) diff --git a/third_party/onnx/docs/CIPipelines.md b/third_party/onnx/docs/CIPipelines.md new file mode 100644 index 000000000..1fdec6a83 --- /dev/null +++ b/third_party/onnx/docs/CIPipelines.md @@ -0,0 +1,32 @@ + + +## ONNX CI Pipelines + +* CI pipelines matrix: + + |   | When it runs | Config | Test | + -- | -- | -- | -- | + [Linux-CI](/.azure-pipelines/Linux-CI.yml) | Every PR |
  • Ubuntu-18.04
  • DEBUG=1 or 0
  • ONNX_USE_LITE_PROTO=ON or OFF
  • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
  • ONNX_BUILD_TESTS=1
  • ONNX_WERROR=ON
  • ONNX_ML=1 or 0
|
  • ONNX C++ tests
  • Style check (flake8 and mypy)
  • Test doc generation
  • Test proto generation
  • Verify backend node data
  • Verify node test generation
| + [Windows-CI](/.azure-pipelines/Windows-CI.yml) | Every PR  |
  • vs2017-win2016
  • ONNX_USE_LITE_PROTO=ON
  • ONNX_USE_PROTOBUF_SHARED_LIBS=ON
  • ONNX_BUILD_TESTS=1
  • ONNX_WERROR=ON
  • ONNX_ML=1 or 0
|
  • Test building ONNX in conda environment
  • Test doc generation
  • Test proto generation
| + [Mac-CI](/.azure-pipelines/MacOS-CI.yml) | Every PR  |
  • macOS-10.14
  • DEBUG=1
  • ONNX_USE_LITE_PROTO=ON or OFF
  • ONNX_ML=1 or 0
  • ONNX_BUILD_TESTS=1
  • ONNX_WERROR=ON
|
  • ONNX C++ tests
  • Test doc generation
  • Test proto generation
| + [Windows_No_Exception CI](/.github/workflows/win_no_exception_ci.yml) | Every PR  |
  • vs2019-winlatest
  • ONNX_DISABLE_EXCEPTIONS=ON
  • ONNX_USE_LITE_PROTO=ON
  • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
  • ONNX_ML=1
  • ONNX_USE_MSVC_STATIC_RUNTIME=ON
  • ONNX_DISABLE_STATIC_REGISTRATION=ON or OFF
|
  • Only ONNX C++ tests
  • Test selective schema loading
| + [WindowsRelease](/.github/workflows/release_win.yml) |
  • Main branch
  • Release branch
  • Weekly(1)
|
  • Latest Windows
  • x86 and x64
  • ONNX_USE_LITE_PROTO=ON
  • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
  • ONNX_ML=1
  • ONNX_USE_MSVC_STATIC_RUNTIME=OFF
|
  • Release Windows wheel
  • Release onnx-weekly package
  • Verify backend node data
  • Verify node test generation
  • Verify with different dependency versions - latest numpy version, latest and min supported protobuf version(2)
  • Verify ONNX with the latest [ort-nightly](https://test.pypi.org/project/ort-nightly/)(3).
| + [LinuxRelease_aarch64](/.github/workflows/release_linux_aarch64.yml) |
  • Main branch
  • Release branch
  • Weekly
  |
  • Latest manylinux2014_aarch64
  • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
  • ONNX_ML=1
|
  • Release Linux aarch64 wheel
  • Release onnx-weekly package
  • Verify backend node data
  • Verify node test generation
  • Verify with different dependency versions - latest numpy version, latest and min supported protobuf version
  • Verify ONNX with the latest ort-nightly.
| + [LinuxRelease_x86_64](/.github/workflows/release_linux_x86_64.yml) |
  • Main branch
  • Release branch
  • Weekly
|
  • Latest LinuxRelease_x86_64
  • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
  • ONNX_ML=1
|
  • Release Linux x86_64 wheel
  • Release onnx-weekly package
  • Test TEST_HUB=1(4)
  • Verify backend node data
  • Verify node test generation
  • Verify with different dependency versions - latest numpy version, latest and min supported protobuf version
  • Verify ONNX with the latest ort-nightly.
| + [MacRelease](/.github/workflows/release_win.yml) |
  • Main branch
  • Release branch
  • Weekly
|
  • macos-10.15
  • MACOSX_DEPLOYMENT_TARGET=10.12(5)
  • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
  • ONNX_ML=1
|
  • Release Mac wheel
  • Release onnx-weekly package
  • Verify backend node data
  • Verify node test generation
  • Verify with different dependency versions - latest numpy version, latest and min supported protobuf version
  • Verify ONNX with the latest ort-nightly.
  • Test source distribution generation
  • Test build with source distribution
  • Release onnx-weekly source distribution
+ [Weekly CI with latest onnx.checker](/.github/workflows/weekly_mac_ci.yml) | weekly(6) |
  • macos-latest
  • MACOSX_DEPLOYMENT_TARGET=10.15
  • ONNX_USE_PROTOBUF_SHARED_LIBS=OFF
  • ONNX_ML=1
|
  • Test latest ONNX checker
  • Test latest ONNX shape inference
  • With all models from [onnx/models](https://github.com/onnx/models)(7)
| + + * (1) When the release CIs will run: + * After a PR has been merged into main/rel-* branch + * Run weekly (Sunday midnight) and release Python wheel to [onnx-weekly](https://test.pypi.org/project/onnx-weekly/) package on TestPyPI. + * Any PR targeting rel-* branch + * To manually run them, add a PR label "run release CIs" (only maintainers have permission). + * (2) Minimum supported versions are listed [here](/requirements.txt). + * (3) [Test](/onnx/test/test_with_ort.py) ONNX Python wheel with `onnxruntime.InferenceSession` from latest ONNXRuntime. Please note that ort-nightly does not support Windows-x86 thus its verification is skipped. + * (4) TEST_HUB=1 will test [onnx.hub](/onnx/test/hub_test.py) by using this API to download an ONNX model from onnx/models. This test is restricted to only 1 pipeline for saving quota usage. + * (5) Although the build environment is macos-10.15, use MACOSX_DEPLOYMENT_TARGET=10.12 and -p [macosx_10_12_x86_64](https://github.com/onnx/onnx/blob/2e048660ffa8243596aaf3338e60c7c0575458f2/.github/workflows/release_mac.yml#L74) to force the wheel to support 10.12+. + + * (6): + * The ONNX Model Zoo test will run weekly (Sunday midnight) + * To manually trigger it, add a PR label "test ONNX Model Zoo" (only maintainers have permission). Please note that it will need a lot of download bandwidth from [onnx/models](https://github.com/onnx/models) so use it with caution. + * (7) Some old deprecated models (opset-1) are [skipped](/workflow_scripts/config.py). diff --git a/third_party/onnx/docs/CONTRIBUTING.md b/third_party/onnx/docs/CONTRIBUTING.md new file mode 100644 index 000000000..9b0c2aeac --- /dev/null +++ b/third_party/onnx/docs/CONTRIBUTING.md @@ -0,0 +1,118 @@ + + +# Development + +To build ONNX from source please follow the instructions listed [here](https://github.com/onnx/onnx#build-onnx-from-source). + +Then, after you have made changes to Python and C++ files: + +- `Python files`: the changes are effective immediately in your installation. You don't need to install these again. +- `C++ files`: you need to install these again to trigger the native extension build. + +Assuming build succeed in the initial step, simply running +``` +pip install -e . +``` +from onnx root dir should work. + +## Folder structure + +- `onnx/`: the main folder that all code lies under + - `onnx.proto`: the protobuf that contains all the structures + - `checker.py`: a utility to check whether a serialized ONNX proto is legal + - `shape_inference.py`: a utility to infer types and shapes for ONNX models + - `version_converter.py`: a utility to upgrade or downgrade version for ONNX models + - `parser.py`: a utility to create an ONNX model or graph from a textual representation + - `hub.py`: a utility for downloading models from [ONNX Model Zoo](https://github.com/onnx/models) + - `compose.py`: a utility to merge ONNX models + - `helper.py`: tools for graph operation + - `defs/`: a subfolder that defines the ONNX operators + - `test/`: test files + +## Generated operator documentation + +[Operator docs in Operators.md](Operators.md) are automatically generated based on C++ operator definitions and backend Python snippets. To refresh these docs, run the following commands from the repo root and commit the results. Note `ONNX_ML=0` updates Operators.md whereas `ONNX_ML=1` updates Operators-ml.md: + +``` +set ONNX_ML=0 +pip install setup.py +python onnx/defs/gen_doc.py +``` + +## Adding a new operator + +ONNX is an open standard, and we encourage developers to contribute high +quality operators to ONNX specification. +Before proposing a new operator, please read [the tutorial](AddNewOp.md). + +# Code style + +We use flake8, mypy, and clang-format for checking code format. +*Note: You'll find the versions of these tools in `setup.py`.* +You can run these checks by: + +``` +pip install -e .[lint] + +./tools/style.sh +``` + +# Testing + +ONNX uses [pytest](https://docs.pytest.org) as a test driver. To run tests, you'll first need to install pytest: + +``` +pip install pytest nbval +``` + +After installing pytest, run from the root of the repo: + +``` +pytest +``` + +to begin the tests. + +You'll need to regenerate test coverage too, by running this command from the root of the repo: + +``` +python onnx\backend\test\stat_coverage.py +``` + +## Cpp tests (googletest) + +Some functionalities are tested with googletest. Those tests are listed in `test/cpp`, and include tests for shape inference, data propagation, parser, and others. + +To run them, first build ONNX with `-DONNX_BUILD_TESTS=1` or `ONNX_BUILD_TESTS=1 pip install -e .` and then run `.setuptools-cmake-build/onnx_gtests`. + +# Static typing (mypy) + +We use [mypy](http://mypy-lang.org/) to run static type checks on the onnx code base. To check that your code passes, you'll first need to install the mypy type checker. If you're using python 3, call from your onnx source folder: + +``` +pip install -e .[lint] +``` + +*Note: You'll find the version we're currently using in `setup.py`.* + +After having installed mypy, you can run the type checks: + +``` +python setup.py typecheck +``` +# CI Pipelines + +Every PR needs to pass CIs before merge. CI pipelines details are [here](CIPipelines.md). + +# Other developer documentation + +* [How to implement ONNX backend (ONNX to something converter)](ImplementingAnOnnxBackend.md) +* [Backend test infrastructure and how to add tests](OnnxBackendTest.md) + +# License + +[Apache License v2.0](/LICENSE) + +# Code of Conduct + +[ONNX Open Source Code of Conduct](http://onnx.ai/codeofconduct.html) diff --git a/third_party/onnx/docs/Changelog-ml.md b/third_party/onnx/docs/Changelog-ml.md new file mode 100644 index 000000000..30f5beca9 --- /dev/null +++ b/third_party/onnx/docs/Changelog-ml.md @@ -0,0 +1,1149 @@ + +## Operator Changelog +*This file is automatically generated from the + [def files](/onnx/defs) via [this script](/onnx/defs/gen_doc.py). + Do not modify directly and instead edit operator definitions.* + +For an operator input/output's differentiability, it can be differentiable, + non-differentiable, or undefined. If a variable's differentiability + is not specified, that variable has undefined differentiability. + +# ai.onnx.ml +## Version 1 of the 'ai.onnx.ml' operator set +### **ai.onnx.ml.ArrayFeatureExtractor-1** + + Select elements of the input tensor based on the indices passed.
+ The indices are applied to the last axes of the tensor. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Inputs + +
+
X : T
+
Data to be selected
+
Y : tensor(int64)
+
The indices, based on 0 as the first index of any dimension.
+
+ +#### Outputs + +
+
Z : T
+
Selected output data as an array
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32), tensor(string)
+
The input must be a tensor of a numeric type or string. The output will be of the same tensor type.
+
+ +### **ai.onnx.ml.Binarizer-1** + + Maps the values of the input tensor to either 0 or 1, element-wise, based on the outcome of a comparison against a threshold value. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
threshold : float (default is 0.0)
+
Values greater than this are mapped to 1, others to 0.
+
+ +#### Inputs + +
+
X : T
+
Data to be binarized
+
+ +#### Outputs + +
+
Y : T
+
Binarized output data
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type. The output will be of the same tensor type.
+
+ +### **ai.onnx.ml.CastMap-1** + + Converts a map to a tensor.
The map key must be an int64 and the values will be ordered + in ascending order based on this key.
The operator supports dense packing or sparse packing. + If using sparse packing, the key cannot exceed the max_map-1 value. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
cast_to : string (default is TO_FLOAT)
+
A string indicating the desired element type of the output tensor, one of 'TO_FLOAT', 'TO_STRING', 'TO_INT64'.
+
map_form : string (default is DENSE)
+
Indicates whether to only output as many values as are in the input (dense), or position the input based on using the key of the map as the index of the output (sparse).
One of 'DENSE', 'SPARSE'.
+
max_map : int (default is 1)
+
If the value of map_form is 'SPARSE,' this attribute indicates the total length of the output tensor.
+
+ +#### Inputs + +
+
X : T1
+
The input map that is to be cast to a tensor
+
+ +#### Outputs + +
+
Y : T2
+
A tensor representing the same data as the input map, ordered by their keys
+
+ +#### Type Constraints + +
+
T1 : map(int64, string), map(int64, float)
+
The input must be an integer map to either string or float.
+
T2 : tensor(string), tensor(float), tensor(int64)
+
The output is a 1-D tensor of string, float, or integer.
+
+ +### **ai.onnx.ml.CategoryMapper-1** + + Converts strings to integers and vice versa.
+ Two sequences of equal length are used to map between integers and strings, + with strings and integers at the same index detailing the mapping.
+ Each operator converts either integers to strings or strings to integers, depending + on which default value attribute is provided. Only one default value attribute + should be defined.
+ If the string default value is set, it will convert integers to strings. + If the int default value is set, it will convert strings to integers. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
cats_int64s : list of ints
+
The integers of the map. This sequence must be the same length as the 'cats_strings' sequence.
+
cats_strings : list of strings
+
The strings of the map. This sequence must be the same length as the 'cats_int64s' sequence
+
default_int64 : int (default is -1)
+
An integer to use when an input string value is not found in the map.
One and only one of the 'default_*' attributes must be defined.
+
default_string : string (default is _Unused)
+
A string to use when an input integer value is not found in the map.
One and only one of the 'default_*' attributes must be defined.
+
+ +#### Inputs + +
+
X : T1
+
Input data
+
+ +#### Outputs + +
+
Y : T2
+
Output data. If strings are input, the output values are integers, and vice versa.
+
+ +#### Type Constraints + +
+
T1 : tensor(string), tensor(int64)
+
The input must be a tensor of strings or integers, either [N,C] or [C].
+
T2 : tensor(string), tensor(int64)
+
The output is a tensor of strings or integers. Its shape will be the same as the input shape.
+
+ +### **ai.onnx.ml.DictVectorizer-1** + + Uses an index mapping to convert a dictionary to an array.
+ Given a dictionary, each key is looked up in the vocabulary attribute corresponding to + the key type. The index into the vocabulary array at which the key is found is then + used to index the output 1-D tensor 'Y' and insert into it the value found in the dictionary 'X'.
+ The key type of the input map must correspond to the element type of the defined vocabulary attribute. + Therefore, the output array will be equal in length to the index mapping vector parameter. + All keys in the input dictionary must be present in the index mapping vector. + For each item in the input dictionary, insert its value in the output array. + Any keys not present in the input dictionary, will be zero in the output array.
+ For example: if the ``string_vocabulary`` parameter is set to ``["a", "c", "b", "z"]``, + then an input of ``{"a": 4, "c": 8}`` will produce an output of ``[4, 8, 0, 0]``. + + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
int64_vocabulary : list of ints
+
An integer vocabulary array.
One and only one of the vocabularies must be defined.
+
string_vocabulary : list of strings
+
A string vocabulary array.
One and only one of the vocabularies must be defined.
+
+ +#### Inputs + +
+
X : T1
+
A dictionary.
+
+ +#### Outputs + +
+
Y : T2
+
A 1-D tensor holding values from the input dictionary.
+
+ +#### Type Constraints + +
+
T1 : map(string, int64), map(int64, string), map(int64, float), map(int64, double), map(string, float), map(string, double)
+
The input must be a map from strings or integers to either strings or a numeric type. The key and value types cannot be the same.
+
T2 : tensor(int64), tensor(float), tensor(double), tensor(string)
+
The output will be a tensor of the value type of the input map. It's shape will be [1,C], where C is the length of the input dictionary.
+
+ +### **ai.onnx.ml.FeatureVectorizer-1** + + Concatenates input tensors into one continuous output.
+ All input shapes are 2-D and are concatenated along the second dimention. 1-D tensors are treated as [1,C]. + Inputs are copied to the output maintaining the order of the input arguments.
+ All inputs must be integers or floats, while the output will be all floating point values. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
inputdimensions : list of ints
+
The size of each input in the input list
+
+ +#### Inputs (1 - ∞) + +
+
X (variadic) : T1
+
An ordered collection of tensors, all with the same element type.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
The output array, elements ordered as the inputs.
+
+ +#### Type Constraints + +
+
T1 : tensor(int32), tensor(int64), tensor(float), tensor(double)
+
The input type must be a tensor of a numeric type.
+
+ +### **ai.onnx.ml.Imputer-1** + + Replaces inputs that equal one value with another, leaving all other elements alone.
+ This operator is typically used to replace missing values in situations where they have a canonical + representation, such as -1, 0, NaN, or some extreme value.
+ One and only one of imputed_value_floats or imputed_value_int64s should be defined -- floats if the input tensor + holds floats, integers if the input tensor holds integers. The imputed values must all fit within the + width of the tensor element type. One and only one of the replaced_value_float or replaced_value_int64 should be defined, + which one depends on whether floats or integers are being processed.
+ The imputed_value attribute length can be 1 element, or it can have one element per input feature.
In other words, if the input tensor has the shape [*,F], then the length of the attribute array may be 1 or F. If it is 1, then it is broadcast along the last dimension and applied to each feature. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
imputed_value_floats : list of floats
+
Value(s) to change to
+
imputed_value_int64s : list of ints
+
Value(s) to change to.
+
replaced_value_float : float (default is 0.0)
+
A value that needs replacing.
+
replaced_value_int64 : int (default is 0)
+
A value that needs replacing.
+
+ +#### Inputs + +
+
X : T
+
Data to be processed.
+
+ +#### Outputs + +
+
Y : T
+
Imputed output data
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type, either [N,C] or [C]. The output type will be of the same tensor type and shape.
+
+ +### **ai.onnx.ml.LabelEncoder-1** + + Converts strings to integers and vice versa.
+ If the string default value is set, it will convert integers to strings. + If the int default value is set, it will convert strings to integers.
+ Each operator converts either integers to strings or strings to integers, depending + on which default value attribute is provided. Only one default value attribute + should be defined.
+ When converting from integers to strings, the string is fetched from the + 'classes_strings' list, by simple indexing.
+ When converting from strings to integers, the string is looked up in the list + and the index at which it is found is used as the converted value. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
classes_strings : list of strings
+
A list of labels.
+
default_int64 : int (default is -1)
+
An integer to use when an input string value is not found in the map.
One and only one of the 'default_*' attributes must be defined.
+
default_string : string (default is _Unused)
+
A string to use when an input integer value is not found in the map.
One and only one of the 'default_*' attributes must be defined.
+
+ +#### Inputs + +
+
X : T1
+
Input data.
+
+ +#### Outputs + +
+
Y : T2
+
Output data. If strings are input, the output values are integers, and vice versa.
+
+ +#### Type Constraints + +
+
T1 : tensor(string), tensor(int64)
+
The input type must be a tensor of integers or strings, of any shape.
+
T2 : tensor(string), tensor(int64)
+
The output type will be a tensor of strings or integers, and will have the same shape as the input.
+
+ +### **ai.onnx.ml.LinearClassifier-1** + + Linear classifier + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
classlabels_ints : list of ints
+
Class labels when using integer labels. One and only one 'classlabels' attribute must be defined.
+
classlabels_strings : list of strings
+
Class labels when using string labels. One and only one 'classlabels' attribute must be defined.
+
coefficients : list of floats (required)
+
A collection of weights of the model(s).
+
intercepts : list of floats
+
A collection of intercepts.
+
multi_class : int (default is 0)
+
Indicates whether to do OvR or multinomial (0=OvR is the default).
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the scores vector.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
+
+ +#### Inputs + +
+
X : T1
+
Data to be classified.
+
+ +#### Outputs + +
+
Y : T2
+
Classification outputs (one class per example).
+
Z : tensor(float)
+
Classification scores ([N,E] - one score for each class and example
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type, and of of shape [N,C] or [C]. In the latter case, it will be treated as [1,C]
+
T2 : tensor(string), tensor(int64)
+
The output will be a tensor of strings or integers.
+
+ +### **ai.onnx.ml.LinearRegressor-1** + + Generalized linear regression evaluation.
+ If targets is set to 1 (default) then univariate regression is performed.
+ If targets is set to M then M sets of coefficients must be passed in as a sequence + and M results will be output for each input n in N.
+ The coefficients array is of length n, and the coefficients for each target are contiguous. + Intercepts are optional but if provided must match the number of targets. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
coefficients : list of floats
+
Weights of the model(s).
+
intercepts : list of floats
+
Weights of the intercepts, if used.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the regression output vector.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
+
targets : int (default is 1)
+
The total number of regression targets, 1 if not defined.
+
+ +#### Inputs + +
+
X : T
+
Data to be regressed.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Regression outputs (one per target, per example).
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type.
+
+ +### **ai.onnx.ml.Normalizer-1** + + Normalize the input. There are three normalization modes, which have the corresponding formulas, + defined using element-wise infix operators '/' and '^' and tensor-wide functions 'max' and 'sum':
+
+ Max: Y = X / max(X)
+ L1: Y = X / sum(X)
+ L2: Y = sqrt(X^2 / sum(X^2)}
+ In all modes, if the divisor is zero, Y == X. +
+ For batches, that is, [N,C] tensors, normalization is done along the C axis. In other words, each row + of the batch is normalized independently. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
norm : string (default is MAX)
+
One of 'MAX,' 'L1,' 'L2'
+
+ +#### Inputs + +
+
X : T
+
Data to be encoded, a tensor of shape [N,C] or [C]
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Encoded output data
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type.
+
+ +### **ai.onnx.ml.OneHotEncoder-1** + + Replace each input element with an array of ones and zeros, where a single + one is placed at the index of the category that was passed in. The total category count + will determine the size of the extra dimension of the output array Y.
+ For example, if we pass a tensor with a single value of 4, and a category count of 8, + the output will be a tensor with ``[0,0,0,0,1,0,0,0]``.
+ This operator assumes every input feature is from the same set of categories.
+ If the input is a tensor of float, int32, or double, the data will be cast + to integers and the cats_int64s category list will be used for the lookups. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
cats_int64s : list of ints
+
List of categories, ints.
One and only one of the 'cats_*' attributes must be defined.
+
cats_strings : list of strings
+
List of categories, strings.
One and only one of the 'cats_*' attributes must be defined.
+
zeros : int (default is 1)
+
If true and category is not present, will return all zeros; if false and a category if not found, the operator will fail.
+
+ +#### Inputs + +
+
X : T
+
Data to be encoded.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Encoded output data, having one more dimension than X.
+
+ +#### Type Constraints + +
+
T : tensor(string), tensor(int64), tensor(int32), tensor(float), tensor(double)
+
The input must be a tensor of a numeric type.
+
+ +### **ai.onnx.ml.SVMClassifier-1** + + Support Vector Machine classifier + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
classlabels_ints : list of ints
+
Class labels if using integer labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
classlabels_strings : list of strings
+
Class labels if using string labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
coefficients : list of floats
+
+
kernel_params : list of floats
+
List of 3 elements containing gamma, coef0, and degree, in that order. Zero if unused for the kernel.
+
kernel_type : string (default is LINEAR)
+
The kernel type, one of 'LINEAR,' 'POLY,' 'RBF,' 'SIGMOID'.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
+
prob_a : list of floats
+
First set of probability coefficients.
+
prob_b : list of floats
+
Second set of probability coefficients. This array must be same size as prob_a.
If these are provided then output Z are probability estimates, otherwise they are raw scores.
+
rho : list of floats
+
+
support_vectors : list of floats
+
+
vectors_per_class : list of ints
+
+
+ +#### Inputs + +
+
X : T1
+
Data to be classified.
+
+ +#### Outputs + +
+
Y : T2
+
Classification outputs (one class per example).
+
Z : tensor(float)
+
Class scores (one per class per example), if prob_a and prob_b are provided they are probabilities for each class, otherwise they are raw scores.
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type, either [C] or [N,C].
+
T2 : tensor(string), tensor(int64)
+
The output type will be a tensor of strings or integers, depending on which of the the classlabels_* attributes is used. Its size will match the bactch size of the input.
+
+ +### **ai.onnx.ml.SVMRegressor-1** + + Support Vector Machine regression prediction and one-class SVM anomaly detection. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
coefficients : list of floats
+
Support vector coefficients.
+
kernel_params : list of floats
+
List of 3 elements containing gamma, coef0, and degree, in that order. Zero if unused for the kernel.
+
kernel_type : string (default is LINEAR)
+
The kernel type, one of 'LINEAR,' 'POLY,' 'RBF,' 'SIGMOID'.
+
n_supports : int (default is 0)
+
The number of support vectors.
+
one_class : int (default is 0)
+
Flag indicating whether the regression is a one-class SVM or not.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT.'
+
rho : list of floats
+
+
support_vectors : list of floats
+
Chosen support vectors
+
+ +#### Inputs + +
+
X : T
+
Data to be regressed.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Regression outputs (one score per target per example).
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type, either [C] or [N,C].
+
+ +### **ai.onnx.ml.Scaler-1** + + Rescale input data, for example to standardize features by removing the mean and scaling to unit variance. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
offset : list of floats
+
First, offset by this.
Can be length of features in an [N,F] tensor or length 1, in which case it applies to all features, regardless of dimension count.
+
scale : list of floats
+
Second, multiply by this.
Can be length of features in an [N,F] tensor or length 1, in which case it applies to all features, regardless of dimension count.
Must be same length as 'offset'
+
+ +#### Inputs + +
+
X : T
+
Data to be scaled.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Scaled output data.
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type.
+
+ +### **ai.onnx.ml.TreeEnsembleClassifier-1** + + Tree Ensemble classifier. Returns the top class for each of N inputs.
+ The attributes named 'nodes_X' form a sequence of tuples, associated by + index into the sequences, which must all be of equal length. These tuples + define the nodes.
+ Similarly, all fields prefixed with 'class_' are tuples of votes at the leaves. + A leaf may have multiple votes, where each vote is weighted by + the associated class_weights index.
+ One and only one of classlabels_strings or classlabels_int64s + will be defined. The class_ids are indices into this list. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
base_values : list of floats
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
class_ids : list of ints
+
The index of the class list that each weight is for.
+
class_nodeids : list of ints
+
node id that this weight is for.
+
class_treeids : list of ints
+
The id of the tree that this node is in.
+
class_weights : list of floats
+
The weight for the class in class_id.
+
classlabels_int64s : list of ints
+
Class labels if using integer labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
classlabels_strings : list of strings
+
Class labels if using string labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
nodes_falsenodeids : list of ints
+
Child node if expression is false.
+
nodes_featureids : list of ints
+
Feature id for each node.
+
nodes_hitrates : list of floats
+
Popularity of each node, used for performance and may be omitted.
+
nodes_missing_value_tracks_true : list of ints
+
For each node, define what to do in the presence of a missing value: if a value is missing (NaN), use the 'true' or 'false' branch based on the value in this array.
This attribute may be left undefined, and the defalt value is false (0) for all nodes.
+
nodes_modes : list of strings
+
The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf node.
One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'
+
nodes_nodeids : list of ints
+
Node id for each node. Ids may restart at zero for each tree, but it not required to.
+
nodes_treeids : list of ints
+
Tree id for each node.
+
nodes_truenodeids : list of ints
+
Child node if expression is true.
+
nodes_values : list of floats
+
Thresholds to do the splitting on for each node.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT.'
+
+ +#### Inputs + +
+
X : T1
+
Input of shape [N,F]
+
+ +#### Outputs + +
+
Y : T2
+
N, Top class for each point
+
Z : tensor(float)
+
The class score for each class, for each point, a tensor of shape [N,E].
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type.
+
T2 : tensor(string), tensor(int64)
+
The output type will be a tensor of strings or integers, depending on which of the the classlabels_* attributes is used.
+
+ +### **ai.onnx.ml.TreeEnsembleRegressor-1** + + Tree Ensemble regressor. Returns the regressed values for each input in N.
+ All args with nodes_ are fields of a tuple of tree nodes, and + it is assumed they are the same length, and an index i will decode the + tuple across these inputs. Each node id can appear only once + for each tree id.
+ All fields prefixed with target_ are tuples of votes at the leaves.
+ A leaf may have multiple votes, where each vote is weighted by + the associated target_weights index.
+ All trees must have their node ids start at 0 and increment by 1.
+ Mode enum is BRANCH_LEQ, BRANCH_LT, BRANCH_GTE, BRANCH_GT, BRANCH_EQ, BRANCH_NEQ, LEAF + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
aggregate_function : string (default is SUM)
+
Defines how to aggregate leaf values within a target.
One of 'AVERAGE,' 'SUM,' 'MIN,' 'MAX.'
+
base_values : list of floats
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
n_targets : int
+
The total number of targets.
+
nodes_falsenodeids : list of ints
+
Child node if expression is false
+
nodes_featureids : list of ints
+
Feature id for each node.
+
nodes_hitrates : list of floats
+
Popularity of each node, used for performance and may be omitted.
+
nodes_missing_value_tracks_true : list of ints
+
For each node, define what to do in the presence of a NaN: use the 'true' (if the attribute value is 1) or 'false' (if the attribute value is 0) branch based on the value in this array.
This attribute may be left undefined and the defalt value is false (0) for all nodes.
+
nodes_modes : list of strings
+
The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf node.
One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'
+
nodes_nodeids : list of ints
+
Node id for each node. Node ids must restart at zero for each tree and increase sequentially.
+
nodes_treeids : list of ints
+
Tree id for each node.
+
nodes_truenodeids : list of ints
+
Child node if expression is true
+
nodes_values : list of floats
+
Thresholds to do the splitting on for each node.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
+
target_ids : list of ints
+
The index of the target that each weight is for
+
target_nodeids : list of ints
+
The node id of each weight
+
target_treeids : list of ints
+
The id of the tree that each node is in.
+
target_weights : list of floats
+
The weight for each target
+
+ +#### Inputs + +
+
X : T
+
Input of shape [N,F]
+
+ +#### Outputs + +
+
Y : tensor(float)
+
N classes
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type.
+
+ +### **ai.onnx.ml.ZipMap-1** + + Creates a map from the input and the attributes.
+ The values are provided by the input tensor, while the keys are specified by the attributes. + Must provide keys in either classlabels_strings or classlabels_int64s (but not both).
+ The columns of the tensor correspond one-by-one to the keys specified by the attributes. There must be as many columns as keys.
+ +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
classlabels_int64s : list of ints
+
The keys when using int keys.
One and only one of the 'classlabels_*' attributes must be defined.
+
classlabels_strings : list of strings
+
The keys when using string keys.
One and only one of the 'classlabels_*' attributes must be defined.
+
+ +#### Inputs + +
+
X : tensor(float)
+
The input values
+
+ +#### Outputs + +
+
Z : T
+
The output map
+
+ +#### Type Constraints + +
+
T : seq(map(string, float)), seq(map(int64, float))
+
The output will be a sequence of string or integer maps to float.
+
+ +## Version 2 of the 'ai.onnx.ml' operator set +### **ai.onnx.ml.LabelEncoder-2** + + Maps each element in the input tensor to another value.
+ The mapping is determined by the two parallel attributes, 'keys_*' and + 'values_*' attribute. The i-th value in the specified 'keys_*' attribute + would be mapped to the i-th value in the specified 'values_*' attribute. It + implies that input's element type and the element type of the specified + 'keys_*' should be identical while the output type is identical to the + specified 'values_*' attribute. If an input element can not be found in the + specified 'keys_*' attribute, the 'default_*' that matches the specified + 'values_*' attribute may be used as its output value.
+ Let's consider an example which maps a string tensor to an integer tensor. + Assume and 'keys_strings' is ["Amy", "Sally"], 'values_int64s' is [5, 6], + and 'default_int64' is '-1'. The input ["Dori", "Amy", "Amy", "Sally", + "Sally"] would be mapped to [-1, 5, 5, 6, 6].
+ Since this operator is an one-to-one mapping, its input and output shapes + are the same. Notice that only one of 'keys_*'/'values_*' can be set.
+ For key look-up, bit-wise comparison is used so even a float NaN can be + mapped to a value in 'values_*' attribute.
+ +#### Version + +This version of the operator has been available since version 2 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
default_float : float (default is -0.0)
+
A float.
+
default_int64 : int (default is -1)
+
An integer.
+
default_string : string (default is _Unused)
+
A string.
+
keys_floats : list of floats
+
A list of floats.
+
keys_int64s : list of ints
+
A list of ints.
+
keys_strings : list of strings
+
A list of strings. One and only one of 'keys_*'s should be set.
+
values_floats : list of floats
+
A list of floats.
+
values_int64s : list of ints
+
A list of ints.
+
values_strings : list of strings
+
A list of strings. One and only one of 'value_*'s should be set.
+
+ +#### Inputs + +
+
X : T1
+
Input data. It can be either tensor or scalar.
+
+ +#### Outputs + +
+
Y : T2
+
Output data.
+
+ +#### Type Constraints + +
+
T1 : tensor(string), tensor(int64), tensor(float)
+
The input type is a tensor of any shape.
+
T2 : tensor(string), tensor(int64), tensor(float)
+
Output type is determined by the specified 'values_*' attribute.
+
+ +## Version 3 of the 'ai.onnx.ml' operator set +### **ai.onnx.ml.TreeEnsembleClassifier-3** + + Tree Ensemble classifier. Returns the top class for each of N inputs.
+ The attributes named 'nodes_X' form a sequence of tuples, associated by + index into the sequences, which must all be of equal length. These tuples + define the nodes.
+ Similarly, all fields prefixed with 'class_' are tuples of votes at the leaves. + A leaf may have multiple votes, where each vote is weighted by + the associated class_weights index.
+ One and only one of classlabels_strings or classlabels_int64s + will be defined. The class_ids are indices into this list. + All fields ending with _as_tensor can be used instead of the + same parameter without the suffix if the element type is double and not float. + +#### Version + +This version of the operator has been available since version 3 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
base_values : list of floats
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
base_values_as_tensor : tensor
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
class_ids : list of ints
+
The index of the class list that each weight is for.
+
class_nodeids : list of ints
+
node id that this weight is for.
+
class_treeids : list of ints
+
The id of the tree that this node is in.
+
class_weights : list of floats
+
The weight for the class in class_id.
+
class_weights_as_tensor : tensor
+
The weight for the class in class_id.
+
classlabels_int64s : list of ints
+
Class labels if using integer labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
classlabels_strings : list of strings
+
Class labels if using string labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
nodes_falsenodeids : list of ints
+
Child node if expression is false.
+
nodes_featureids : list of ints
+
Feature id for each node.
+
nodes_hitrates : list of floats
+
Popularity of each node, used for performance and may be omitted.
+
nodes_hitrates_as_tensor : tensor
+
Popularity of each node, used for performance and may be omitted.
+
nodes_missing_value_tracks_true : list of ints
+
For each node, define what to do in the presence of a missing value: if a value is missing (NaN), use the 'true' or 'false' branch based on the value in this array.
This attribute may be left undefined, and the defalt value is false (0) for all nodes.
+
nodes_modes : list of strings
+
The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf node.
One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'
+
nodes_nodeids : list of ints
+
Node id for each node. Ids may restart at zero for each tree, but it not required to.
+
nodes_treeids : list of ints
+
Tree id for each node.
+
nodes_truenodeids : list of ints
+
Child node if expression is true.
+
nodes_values : list of floats
+
Thresholds to do the splitting on for each node.
+
nodes_values_as_tensor : tensor
+
Thresholds to do the splitting on for each node.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT.'
+
+ +#### Inputs + +
+
X : T1
+
Input of shape [N,F]
+
+ +#### Outputs + +
+
Y : T2
+
N, Top class for each point
+
Z : tensor(float)
+
The class score for each class, for each point, a tensor of shape [N,E].
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type.
+
T2 : tensor(string), tensor(int64)
+
The output type will be a tensor of strings or integers, depending on which of the the classlabels_* attributes is used.
+
+ +### **ai.onnx.ml.TreeEnsembleRegressor-3** + + Tree Ensemble regressor. Returns the regressed values for each input in N.
+ All args with nodes_ are fields of a tuple of tree nodes, and + it is assumed they are the same length, and an index i will decode the + tuple across these inputs. Each node id can appear only once + for each tree id.
+ All fields prefixed with target_ are tuples of votes at the leaves.
+ A leaf may have multiple votes, where each vote is weighted by + the associated target_weights index.
+ All fields ending with _as_tensor can be used instead of the + same parameter without the suffix if the element type is double and not float. + All trees must have their node ids start at 0 and increment by 1.
+ Mode enum is BRANCH_LEQ, BRANCH_LT, BRANCH_GTE, BRANCH_GT, BRANCH_EQ, BRANCH_NEQ, LEAF + +#### Version + +This version of the operator has been available since version 3 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
aggregate_function : string (default is SUM)
+
Defines how to aggregate leaf values within a target.
One of 'AVERAGE,' 'SUM,' 'MIN,' 'MAX.'
+
base_values : list of floats
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
base_values_as_tensor : tensor
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
n_targets : int
+
The total number of targets.
+
nodes_falsenodeids : list of ints
+
Child node if expression is false
+
nodes_featureids : list of ints
+
Feature id for each node.
+
nodes_hitrates : list of floats
+
Popularity of each node, used for performance and may be omitted.
+
nodes_hitrates_as_tensor : tensor
+
Popularity of each node, used for performance and may be omitted.
+
nodes_missing_value_tracks_true : list of ints
+
For each node, define what to do in the presence of a NaN: use the 'true' (if the attribute value is 1) or 'false' (if the attribute value is 0) branch based on the value in this array.
This attribute may be left undefined and the defalt value is false (0) for all nodes.
+
nodes_modes : list of strings
+
The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf node.
One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'
+
nodes_nodeids : list of ints
+
Node id for each node. Node ids must restart at zero for each tree and increase sequentially.
+
nodes_treeids : list of ints
+
Tree id for each node.
+
nodes_truenodeids : list of ints
+
Child node if expression is true
+
nodes_values : list of floats
+
Thresholds to do the splitting on for each node.
+
nodes_values_as_tensor : tensor
+
Thresholds to do the splitting on for each node.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
+
target_ids : list of ints
+
The index of the target that each weight is for
+
target_nodeids : list of ints
+
The node id of each weight
+
target_treeids : list of ints
+
The id of the tree that each node is in.
+
target_weights : list of floats
+
The weight for each target
+
target_weights_as_tensor : tensor
+
The weight for each target
+
+ +#### Inputs + +
+
X : T
+
Input of shape [N,F]
+
+ +#### Outputs + +
+
Y : tensor(float)
+
N classes
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type.
+
+ diff --git a/third_party/onnx/docs/Changelog.md b/third_party/onnx/docs/Changelog.md new file mode 100644 index 000000000..51fa7cf23 --- /dev/null +++ b/third_party/onnx/docs/Changelog.md @@ -0,0 +1,21442 @@ + +## Operator Changelog +*This file is automatically generated from the + [def files](/onnx/defs) via [this script](/onnx/defs/gen_doc.py). + Do not modify directly and instead edit operator definitions.* + +For an operator input/output's differentiability, it can be differentiable, + non-differentiable, or undefined. If a variable's differentiability + is not specified, that variable has undefined differentiability. + +# ai.onnx (default) +## Version 1 of the default ONNX operator set +### **Abs-1** + + Absolute takes one input data (Tensor) and produces one output data + (Tensor) where the absolute is, y = abs(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Add-1** + + Performs element-wise binary addition (with limited broadcast support). + + If necessary the right-hand-side argument will be broadcasted to match the + shape of left-hand-side argument. When broadcasting is specified, the second + tensor can either be of element size 1 (including a scalar tensor and any + tensor with rank equal to or smaller than the first tensor), or having its + shape as a contiguous subset of the first tensor's shape. The starting of the + mutually equal shape is specified by the argument "axis", and if it is not set, + suffix matching is assumed. 1-dim expansion doesn't work yet. + + For example, the following tensor shapes are supported (with broadcast=1): + + shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar tensor + shape(A) = (2, 3, 4, 5), shape(B) = (1, 1), i.e. B is an 1-element tensor + shape(A) = (2, 3, 4, 5), shape(B) = (5,) + shape(A) = (2, 3, 4, 5), shape(B) = (4, 5) + shape(A) = (2, 3, 4, 5), shape(B) = (3, 4), with axis=1 + shape(A) = (2, 3, 4, 5), shape(B) = (2), with axis=0 + + Attribute `broadcast=1` needs to be passed to enable broadcasting. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions. See doc for details.
+
broadcast : int (default is 0)
+
Pass 1 to enable broadcasting
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
A : T
+
First operand, should share the type with the second operand.
+
B : T
+
Second operand. With broadcasting can be of smaller size than A. If broadcasting is disabled it should be of the same size.
+
+ +#### Outputs + +
+
C : T
+
Result, has same dimensions and type as A
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **And-1** + + Returns the tensor resulted from performing the `and` logical operation + elementwise on the input tensors `A` and `B`. + + If broadcasting is enabled, the right-hand-side argument will be broadcasted + to match the shape of left-hand-side argument. See the doc of `Add` for a + detailed description of the broadcasting rules. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions.
+
broadcast : int (default is 0)
+
Enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
Left input tensor for the logical operator.
+
B : T
+
Right input tensor for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input to boolean tensor.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **ArgMax-1** + + Computes the indices of the max elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equal 0, then the resulted tensor have the reduced dimension pruned. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **ArgMin-1** + + Computes the indices of the min elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equal 0, then the resulted tensor have the reduced dimension pruned. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **AveragePool-1** + + AveragePool consumes an input tensor X and applies average pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + average pooling consisting of computing the average on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i] + ``` + The output of each pooling window is divided by the number of elements exclude pad. + + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs + +
+
Y : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **BatchNormalization-1** + + Carries out batch normalization as described in the paper + https://arxiv.org/abs/1502.03167. Depending on the mode it is being run, + there are multiple cases for the number of outputs, which we list below: + + Output case #1: Y, mean, var, saved_mean, saved_var (training mode) + Output case #2: Y (test mode) + + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints (required)
+
legacy optimization attribute.
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero, default is 1e-5f.
+
is_test : int (default is 0)
+
If set to nonzero, run spatial batch normalization in test mode, default is 0.
+
momentum : float (default is 0.9)
+
Factor used in computing the running mean and variance.e.g., running_mean = running_mean * momentum + mean * (1 - momentum), default is 0.9f.
+
spatial : int (default is 1)
+
If true, compute the mean and variance across all spatial elements If false, compute the mean and variance across per feature.Default is 1.
+
+ +#### Inputs + +
+
X : T
+
The input 4-dimensional tensor of shape NCHW.
+
scale : T
+
The scale as a 1-dimensional tensor of size C to be applied to the output.
+
B : T
+
The bias as a 1-dimensional tensor of size C to be applied to the output.
+
mean : T
+
The running mean (training) or the estimated mean (testing) as a 1-dimensional tensor of size C.
+
var : T
+
The running variance (training) or the estimated variance (testing) as a 1-dimensional tensor of size C.
+
+ +#### Outputs (1 - 5) + +
+
Y : T
+
The output 4-dimensional tensor of the same shape as X.
+
mean (optional) : T
+
The running mean after the BatchNormalization operator. Must be in-place with the input mean. Should not be used for testing.
+
var (optional) : T
+
The running variance after the BatchNormalization operator. Must be in-place with the input var. Should not be used for testing.
+
saved_mean (optional) : T
+
Saved mean used during training to speed up gradient computation. Should not be used for testing.
+
saved_var (optional) : T
+
Saved variance used during training to speed up gradient computation. Should not be used for testing.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Cast-1** + + The operator casts the elements of a given input tensor to a data type + specified by the 'to' argument and returns an output tensor of the same size in + the converted type. The 'to' argument must be one of the data types specified + in the 'DataType' enum field in the TensorProto message. + NOTE: Casting to and from strings is not supported yet. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
to : string (required)
+
The data type to which the elements of the input tensor are cast. Strictly must be one of the types from DataType enum in TensorProto
+
+ +#### Inputs + +
+
input : T1
+
Input tensor to be cast.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor with the same shape as input with type specified by the 'to' argument
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain input types. Casting from strings and complex are not supported.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain output types. Casting to strings and complex are not supported.
+
+ +### **Ceil-1** + + Ceil takes one input data (Tensor) and produces one output data + (Tensor) where the ceil is, y = ceil(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Clip-1** + + Clip operator limits the given input within an interval. The interval is + specified with arguments 'min' and 'max'. They default to + numeric_limits::lowest() and numeric_limits::max() respectively. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
max : float
+
Maximum value, above which element is replaced by max
+
min : float
+
Minimum value, under which element is replaced by min
+
+ +#### Inputs + +
+
input : T
+
Input tensor whose elements to be clipped
+
+ +#### Outputs + +
+
output : T
+
Output tensor with clipped input elements
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Concat-1** + + Concatenate a list of tensors into a single tensor + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
Which axis to concat on. Default value is 1.
+
+ +#### Inputs (1 - ∞) + +
+
inputs (variadic) : T
+
List of tensors for concatenation
+
+ +#### Outputs + +
+
concat_result : T
+
Concatenated tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ +### **Constant-1** + + A constant tensor. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
value : tensor (required)
+
The value for the elements of the output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor containing the same value of the provided tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Conv-1** + + The convolution operator consumes an input tensor and a filter, and + computes the output. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input W.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs (2 - 3) + +
+
X : T
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn). Optionally, if dimension denotation is in effect, the operation expects input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
W : T
+
The weight tensor that will be used in the convolutions; has size (M x C/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the kernel shape will be (M x C/group x k1 x k2 x ... x kn), where (k1 x k2 x ... kn) is the dimension of the kernel. Optionally, if dimension denotation is in effect, the operation expects the weight tensor to arrive with the dimension denotation of [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL ...]. X.shape[1] == (W.shape[1] * group) == C (assuming zero based indices for the shape array). Or in other words FILTER_IN_CHANNEL should be equal to DATA_CHANNEL.
+
B (optional) : T
+
Optional 1D bias to be added to the convolution, has size of M.
+
+ +#### Outputs + +
+
Y : T
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, and pad lengths.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **ConvTranspose-1** + + The convolution transpose operator consumes an input tensor and a filter, + and computes the output. + + If the pads parameter is provided the shape of the output is calculated via the following equation: + + output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i] + + output_shape can also be explicitly specified in which case pads values are auto generated using these equations: + + total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] + If (auto_pads != SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) + Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2). + + + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input W.
+
output_padding : list of ints
+
The zero-padding added to one side of the output. This is also called adjs/adjustment in some frameworks.
+
output_shape : list of ints
+
The shape of the output can be explicitly set which will cause pads values to be auto generated. If output_shape is specified pads values are ignored. See doc for details for equations to generate pads
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs (2 - 3) + +
+
X : T
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn)
+
W : T
+
The weight tensor that will be used in the convolutions; has size (C x M/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the weight shape will be (C x M/group x k1 x k2 x ... x kn), where (k1 x k2 x ... x kn) is the dimension of the kernel. The number of channels in the output should be equal to W.shape[1] * group (assuming zero based indices of the shape array)
+
B (optional) : T
+
Optional 1D bias to be added to the convolution, has size of M.
+
+ +#### Outputs + +
+
Y : T
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, pad lengths and group count. The number of channels in the output should be equal to W.shape[1] * group (assuming zero based indices of the shape array)
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **DepthToSpace-1** + + DepthToSpace rearranges (permutes) data from depth into blocks of spatial data. + This is the reverse transformation of SpaceToDepth. More specifically, this op outputs a copy of + the input tensor where values from the depth dimension are moved in spatial blocks to the height + and width dimensions. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
blocksize : int (required)
+
Blocks of [blocksize, blocksize] are moved.
+
+ +#### Inputs + +
+
input : T
+
Input tensor of [N,C,H,W], where N is the batch axis, C is the channel or depth, H is the height and W is the width.
+
+ +#### Outputs + +
+
output : T
+
Output tensor of [N, C/(blocksize * blocksize), H * blocksize, W * blocksize].
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Div-1** + + Performs element-wise binary division (with limited broadcast support). + + If necessary the right-hand-side argument will be broadcasted to match the + shape of left-hand-side argument. When broadcasting is specified, the second + tensor can either be of element size 1 (including a scalar tensor and any + tensor with rank equal to or smaller than the first tensor), or having its + shape as a contiguous subset of the first tensor's shape. The starting of the + mutually equal shape is specified by the argument "axis", and if it is not set, + suffix matching is assumed. 1-dim expansion doesn't work yet. + + For example, the following tensor shapes are supported (with broadcast=1): + + shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar tensor + shape(A) = (2, 3, 4, 5), shape(B) = (1, 1), i.e. B is an 1-element tensor + shape(A) = (2, 3, 4, 5), shape(B) = (5,) + shape(A) = (2, 3, 4, 5), shape(B) = (4, 5) + shape(A) = (2, 3, 4, 5), shape(B) = (3, 4), with axis=1 + shape(A) = (2, 3, 4, 5), shape(B) = (2), with axis=0 + + Attribute `broadcast=1` needs to be passed to enable broadcasting. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions. See doc for details.
+
broadcast : int (default is 0)
+
Pass 1 to enable broadcasting
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
A : T
+
First operand, should share the type with the second operand.
+
B : T
+
Second operand. With broadcasting can be of smaller size than A. If broadcasting is disabled it should be of the same size.
+
+ +#### Outputs + +
+
C : T
+
Result, has same dimensions and type as A
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Dropout-1** + + Dropout takes one input data (Tensor) and produces two Tensor outputs, + output (Tensor) and mask (Tensor). Depending on whether it is in + test mode or not, the output Y will either be a random dropout, or a simple + copy of the input. Note that our implementation of Dropout does scaling in + the training phase, so during testing nothing needs to be done. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
is_test : int (default is 0)
+
(int, default 0) if nonzero, run dropout in test mode where the output is simply Y = X.
+
ratio : float (default is 0.5)
+
(float, default 0.5) the ratio of random dropout
+
+ +#### Inputs + +
+
data : T
+
The input data as Tensor.
+
+ +#### Outputs (1 - 2) + +
+
output : T
+
The output.
+
mask (optional) : T
+
The output mask. If is_test is nonzero, this output is not filled.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Elu-1** + + Elu takes one input data (Tensor) and produces one output data + (Tensor) where the function `f(x) = alpha * (exp(x) - 1.) for x < + 0`, `f(x) = x for x >= 0`., is applied to the tensor elementwise. + + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Coefficient of ELU default to 1.0.
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
1D input tensor
+
+ +#### Outputs + +
+
Y : T
+
1D input tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Equal-1** + + Returns the tensor resulted from performing the `equal` logical operation + elementwise on the input tensors `A` and `B`. + + If broadcasting is enabled, the right-hand-side argument will be broadcasted + to match the shape of left-hand-side argument. See the doc of `Add` for a + detailed description of the broadcasting rules. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions.
+
broadcast : int (default is 0)
+
Enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
Left input tensor for the logical operator.
+
B : T
+
Right input tensor for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool), tensor(int32), tensor(int64)
+
Constrain input to integral tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Exp-1** + + Calculates the exponential of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
input : T
+
Input tensor
+
+ +#### Outputs + +
+
output : T
+
The exponential of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Flatten-1** + + Flattens the input tensor into a 2D matrix. If input tensor has shape + (d_0, d_1, ... d_n) then the output will have shape + (d_0 X d_1 ... d_(axis-1), d_axis X d_(axis+1) ... X dn). + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Indicate up to which input dimensions (exclusive) should be flattened to the outer dimension of the output. The value for axis must be in the range [0, R], where R is the rank of the input tensor. When axis = 0, the shape of the output tensor is (1, (d_0 X d_1 ... d_n), where the shape of the input tensor is (d_0, d_1, ... d_n).
+
+ +#### Inputs + +
+
input : T
+
A tensor of rank >= axis.
+
+ +#### Outputs + +
+
output : T
+
A 2D tensor with the contents of the input tensor, with input dimensions up to axis flattened to the outer dimension of the output and remaining input dimensions flattened into the inner dimension of the output.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Floor-1** + + Floor takes one input data (Tensor) and produces one output data + (Tensor) where the floor is, y = floor(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **GRU-1** + + Computes an one-layer GRU. This operator is usually supported via some custom + implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `z` - update gate + + `r` - reset gate + + `h` - hidden gate + + `t` - time step (t-1 means previous time step) + + `W[zrh]` - W parameter weight matrix for update, reset, and hidden gates + + `R[zrh]` - R recurrence weight matrix for update, reset, and hidden gates + + `Wb[zrh]` - W bias vectors for update, reset, and hidden gates + + `Rb[zrh]` - R bias vectors for update, reset, and hidden gates + + `WB[zrh]` - W parameter weight matrix for backward update, reset, and hidden gates + + `RB[zrh]` - R recurrence weight matrix for backward update, reset, and hidden gates + + `WBb[zrh]` - W bias vectors for backward update, reset, and hidden gates + + `RBb[zrh]` - R bias vectors for backward update, reset, and hidden gates + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Sigmoid, g=Tanh): + + - zt = f(Xt*(Wz^T) + Ht-1*Rz + Wbz + Rbz) + + - rt = f(Xt*(Wr^T) + Ht-1*Rr + Wbr + Rbr) + + - ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*Rh + Rbh + Wbh) # default, when linear_before_reset = 0 + + - ht = g(Xt*(Wh^T) + (rt (.) (Ht-1*Rh + Rbh) + Wbh) # when linear_before_reset != 0 + + - Ht = (1 - zt) (.) ht + zt (.) Ht-1 + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM.
+
activations : list of strings
+
A list of 2 (or 4 if bidirectional) activation functions for update, reset, and hidden gates. The activation functions must be one of the activation functions specified above. Optional: See the equations for default if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is foward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
output_sequence : int (default is 0)
+
The sequence output for the hidden is optional if 0. Default 0.
+
+ +#### Inputs (3 - 6) + +
+
X : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W : T
+
The weight tensor for the gates. Concatenation of `W[zrh]` and `WB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, input_size]`.
+
R : T
+
The recurrence weight tensor. Concatenation of `R[zrh]` and `RB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, hidden_size]`.
+
B (optional) : T
+
The bias tensor for the gates. Concatenation of `[Wb[zrh], Rb[zrh]]` and `[WBb[zrh], RBb[zrh]]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 6*hidden_size]`. Optional: If not specified - assumed to be 0
+
sequence_lens (optional) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Outputs + +
+
Y (optional) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`. It is optional if `output_sequence` is 0.
+
Y_h : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +### **Gather-1** + + Given `data` tensor of rank r >= 1, and `indices` tensor of rank q, gather + entries of the axis dimension of `data` (by default outer-most one as axis=0) indexed by `indices`, and concatenates + them in an output tensor of rank q + (r - 1). + Example 1: + ``` + data = [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + indices = [ + [0, 1], + [1, 2], + ] + output = [ + [ + [1.0, 1.2], + [2.3, 3.4], + ], + [ + [2.3, 3.4], + [4.5, 5.7], + ], + ] + ``` + Example 2: + ``` + data = [ + [1.0, 1.2, 1.9], + [2.3, 3.4, 3.9], + [4.5, 5.7, 5.9], + ] + indices = [ + [0, 2], + ] + axis = 1, + output = [ + [ + [1.0, 1.9], + [2.3, 3.9], + [4.5, 5.9], + ], + ] + ``` + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to gather on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1]
+
+ +#### Inputs + +
+
data : T
+
Tensor of rank r >= 1.
+
indices : Tind
+
Tensor of int32/int64 indices, of any rank q. All index values are expected to be within bounds. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output : T
+
Tensor of rank q + (r - 1).
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **Gemm-1** + + General Matrix multiplication: + https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 + Compute Y = alpha * A * B + beta * C, where input tensor A has + dimension (M X K), input tensor B has dimension (K X N), input tensor C and + output tensor Y have dimension (M X N). + If attribute broadcast is non-zero, input tensor C will be broadcasted to match + the dimension requirement. A will be transposed before doing the computation + if attribute transA is non-zero, same for B and transB. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Scalar multiplier for the product of input tensors A * B, the default value is 1.0.
+
beta : float (default is 1.0)
+
Scalar multiplier for input tensor C, the default value is 1.0.
+
broadcast : int (default is 0)
+
Whether C should be broadcasted
+
transA : int (default is 0)
+
Whether A should be transposed
+
transB : int (default is 0)
+
Whether B should be transposed
+
+ +#### Inputs + +
+
A : T
+
Input tensor A
+
B : T
+
Input tensor B
+
C : T
+
Input tensor C, can be inplace.
+
+ +#### Outputs + +
+
Y : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **GlobalAveragePool-1** + + GlobalAveragePool consumes an input tensor X and applies average pooling across + the values in the same channel. This is equivalent to AveragePool with kernel size + equal to the spatial dimension of input tensor. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from pooling across the input tensor. The output tensor has the same rank as the input. The first two dimensions of output shape are the same as the input (N x C), while the other dimensions are all 1.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **GlobalLpPool-1** + + GlobalLpPool consumes an input tensor X and applies lp pool pooling across the + the values in the same channel. This is equivalent to LpPool with kernel size + equal to the spatial dimension of input tensor. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
p : float (default is 2.0)
+
p value of the Lp norm used to pool over the input data, default is 2.0.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimension are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y : T
+
Output data tensor from pooling across the input tensor. Dimensions will be N x C x 1 x 1
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **GlobalMaxPool-1** + + GlobalMaxPool consumes an input tensor X and applies max pooling across + the values in the same channel. This is equivalent to MaxPool with kernel size + equal to the spatial dimension of input tensor. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from pooling across the input tensor. The output tensor has the same rank as the input. The first two dimensions of output shape are the same as the input (N x C), while the other dimensions are all 1.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Greater-1** + + Returns the tensor resulted from performing the `greater` logical operation + elementwise on the input tensors `A` and `B`. + + If broadcasting is enabled, the right-hand-side argument will be broadcasted + to match the shape of left-hand-side argument. See the doc of `Add` for a + detailed description of the broadcasting rules. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions.
+
broadcast : int (default is 0)
+
Enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
Left input tensor for the logical operator.
+
B : T
+
Right input tensor for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input to float tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **HardSigmoid-1** + + HardSigmoid takes one input data (Tensor) and produces one output data + (Tensor) where the HardSigmoid function, y = max(0, min(1, alpha * x + beta)), + is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 0.2)
+
Value of alpha default to 0.2
+
beta : float (default is 0.5)
+
Value of beta default to 0.5
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Hardmax-1** + + The operator computes the hardmax (1 for the first maximum value, and 0 for all others) values for each layer in the batch + of the given input. The input is a 2-D tensor (Tensor) of size + (batch_size x input_feature_dimensions). The output tensor has the same shape + and contains the hardmax values of the corresponding input. + + Input does not need to explicitly be a 2D vector; rather, it will be + coerced into one. For an arbitrary n-dimensional tensor + input \in [a_0, a_1, ..., a_{k-1}, a_k, ..., a_{n-1}] and k is + the axis provided, then input will be coerced into a 2-dimensional tensor with + dimensions [a_0 * ... * a_{k-1}, a_k * ... * a_{n-1}]. For the default + case where axis=1, this means the input tensor will be coerced into a 2D tensor + of dimensions [a_0, a_1 * ... * a_{n-1}], where a_0 is often the batch size. + In this situation, we must have a_0 = N and a_1 * ... * a_{n-1} = D. + Each of these dimensions must be matched correctly, or else the operator + will throw errors. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Describes the axis of the inputs when coerced to 2D; defaults to one because the 0th axis most likely describes the batch_size
+
+ +#### Inputs + +
+
input : T
+
The input tensor that's coerced into a 2D matrix of size (NxD) as described above.
+
+ +#### Outputs + +
+
output : T
+
The output values with the same shape as input tensor (the original size without coercion).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Identity-1** + + Identity operator + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
input : T
+
Input tensor
+
+ +#### Outputs + +
+
output : T
+
Tensor to copy input into.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **If-1** + + If conditional + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
else_branch : graph (required)
+
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
+
then_branch : graph (required)
+
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
+
+ +#### Inputs + +
+
cond : B
+
Condition for the if
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : V
+
Values that are live-out to the enclosing scope. The return values in the `then_branch` and `else_branch` must be of the same shape and same data type.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
All Tensor types
+
B : tensor(bool)
+
Only bool
+
+ +### **InstanceNormalization-1** + + Carries out instance normalization as described in the paper + https://arxiv.org/abs/1607.08022. + + y = scale * (x - mean) / sqrt(variance + epsilon) + B, + where mean and variance are computed per instance per channel. + + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero, default is 1e-5f.
+
+ +#### Inputs + +
+
input : T
+
The input 4-dimensional tensor of shape NCHW.
+
scale : T
+
The input 1-dimensional scale tensor of size C.
+
B : T
+
The input 1-dimensional bias tensor of size C.
+
+ +#### Outputs + +
+
output : T
+
The output 4-dimensional tensor of the same shape as input.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **LRN-1** + + Local Response Normalization proposed in the [AlexNet paper](https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf). + It normalizes over local input regions. + The local region is defined across the channels. For an element X[n, c, d1, ..., dk] in a tensor + of shape (N x C x D1 x D2, ..., Dk), its region is + {X[n, i, d1, ..., dk] | max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2))}. + + square_sum[n, c, d1, ..., dk] = sum(X[n, i, d1, ..., dk] ^ 2), + where max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2)). + + Y[n, c, d1, ..., dk] = X[n, c, d1, ..., dk] / (bias + alpha / size * square_sum[n, c, d1, ..., dk] ) ^ beta + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 0.0001)
+
Scaling parameter.
+
beta : float (default is 0.75)
+
The exponent.
+
bias : float (default is 1.0)
+
+
size : int (required)
+
The number of channels to sum over
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs + +
+
Y : T
+
Output tensor, which has the shape and type as input tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **LSTM-1** + + Computes an one-layer LSTM. This operator is usually supported via some + custom implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `i` - input gate + + `o` - output gate + + `f` - forget gate + + `c` - cell gate + + `t` - time step (t-1 means previous time step) + + `W[iofc]` - W parameter weight matrix for input, output, forget, and cell gates + + `R[iofc]` - R recurrence weight matrix for input, output, forget, and cell gates + + `Wb[iofc]` - W bias vectors for input, output, forget, and cell gates + + `Rb[iofc]` - R bias vectors for input, output, forget, and cell gates + + `P[iof]` - P peephole weight vector for input, output, and forget gates + + `WB[iofc]` - W parameter weight matrix for backward input, output, forget, and cell gates + + `RB[iofc]` - R recurrence weight matrix for backward input, output, forget, and cell gates + + `WBb[iofc]` - W bias vectors for backward input, output, forget, and cell gates + + `RBb[iofc]` - R bias vectors for backward input, output, forget, and cell gates + + `PB[iof]` - P peephole weight vector for backward input, output, and forget gates + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Sigmoid, g=Tanh, h=Tanh): + + - it = f(Xt*(Wi^T) + Ht-1*Ri + Pi (.) Ct-1 + Wbi + Rbi) + + - ft = f(Xt*(Wf^T) + Ht-1*Rf + Pf (.) Ct-1 + Wbf + Rbf) + + - ct = g(Xt*(Wc^T) + Ht-1*Rc + Wbc + Rbc) + + - Ct = ft (.) Ct-1 + it (.) ct + + - ot = f(Xt*(Wo^T) + Ht-1*Ro + Po (.) Ct + Wbo + Rbo) + + - Ht = ot (.) h(Ct) + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings
+
A list of 3 (or 6 if bidirectional) activation functions for input, output, forget, cell, and hidden. The activation functions must be one of the activation functions specified above. Optional: See the equations for default if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
input_forget : int (default is 0)
+
Couple the input and forget gates if 1, default 0.
+
output_sequence : int (default is 0)
+
The sequence output for the hidden is optional if 0. Default 0.
+
+ +#### Inputs (3 - 8) + +
+
X : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W : T
+
The weight tensor for the gates. Concatenation of `W[iofc]` and `WB[iofc]` (if bidirectional) along dimension 0. The tensor has shape `[num_directions, 4*hidden_size, input_size]`.
+
R : T
+
The recurrence weight tensor. Concatenation of `R[iofc]` and `RB[iofc]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 4*hidden_size, hidden_size]`.
+
B (optional) : T
+
The bias tensor for input gate. Concatenation of `[Wb[iofc], Rb[iofc]]`, and `[WBb[iofc], RBb[iofc]]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 8*hidden_size]`. Optional: If not specified - assumed to be 0.
+
sequence_lens (optional) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
initial_c (optional) : T
+
Optional initial value of the cell. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
P (optional) : T
+
The weight tensor for peepholes. Concatenation of `P[iof]` and `PB[iof]` (if bidirectional) along dimension 0. It has shape `[num_directions, 3*hidde_size]`. Optional: If not specified - assumed to be 0.
+
+ +#### Outputs (0 - 3) + +
+
Y (optional) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`. It is optional if `output_sequence` is 0.
+
Y_h (optional) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
Y_c (optional) : T
+
The last output value of the cell. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +### **LeakyRelu-1** + + LeakyRelu takes input data (Tensor) and an argument alpha, and produces one + output data (Tensor) where the function `f(x) = alpha * x for x < 0`, + `f(x) = x for x >= 0`, is applied to the data tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 0.01)
+
Coefficient of leakage default to 0.01.
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Less-1** + + Returns the tensor resulted from performing the `less` logical operation + elementwise on the input tensors `A` and `B`. + + If broadcasting is enabled, the right-hand-side argument will be broadcasted + to match the shape of left-hand-side argument. See the doc of `Add` for a + detailed description of the broadcasting rules. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions.
+
broadcast : int (default is 0)
+
Enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
Left input tensor for the logical operator.
+
B : T
+
Right input tensor for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input to float tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Log-1** + + Calculates the natural log of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
input : T
+
Input tensor
+
+ +#### Outputs + +
+
output : T
+
The natural log of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **LogSoftmax-1** + + The operator computes the logsoftmax (log of softmax) values for each layer in the batch + of the given input. The input is a 2-D tensor (Tensor) of size + (batch_size x input_feature_dimensions). The output tensor has the same shape + and contains the logsoftmax values of the corresponding input. + + Input does not need to explicitly be a 2D vector; rather, it will be + coerced into one. For an arbitrary n-dimensional tensor + input \in [a_0, a_1, ..., a_{k-1}, a_k, ..., a_{n-1}] and k is + the axis provided, then input will be coerced into a 2-dimensional tensor with + dimensions [a_0 * ... * a_{k-1}, a_k * ... * a_{n-1}]. For the default + case where axis=1, this means the input tensor will be coerced into a 2D tensor + of dimensions [a_0, a_1 * ... * a_{n-1}], where a_0 is often the batch size. + In this situation, we must have a_0 = N and a_1 * ... * a_{n-1} = D. + Each of these dimensions must be matched correctly, or else the operator + will throw errors. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Describes the axis of the inputs when coerced to 2D; defaults to one because the 0th axis most likely describes the batch_size
+
+ +#### Inputs + +
+
input : T
+
The input tensor that's coerced into a 2D matrix of size (NxD) as described above.
+
+ +#### Outputs + +
+
output : T
+
The output values with the same shape as input tensor (the original size without coercion).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Loop-1** + + Generic Looping construct. This loop has multiple termination conditions: + + 1) Trip count. Iteration count specified at runtime. Set by + specifying the input M. Optional. Set to empty string to omit. + Note that a static trip count (specified at graph construction time) can be + specified by passing in a constant node for input M. + 2) Loop termination condition. This is an input to the op that determines + whether to run the first iteration and also a loop-carried dependency for + the body graph. The body graph must yield a value for the condition variable, + whether this input is provided or not. + + This table summarizes the operating modes of this operator with equivalent + C-style code: + + Operator inputs defined as (max_trip_count, condition_var). + + input ("", ""): + for (int i=0; ; ++i) { + cond = ... // Note this value is ignored, but is required in the body + } + + input ("", cond) // Note this is analogous to a while loop + bool cond = ...; + for (int i=0; cond; ++i) { + cond = ...; + } + + input ("", 1) // Note this is analogous to a do-while loop + bool cond = true + for (int i=0; cond; ++i) { + cond = ...; + } + + input (trip_count, "") // Note this is analogous to a for loop + int trip_count = ... + for (int i=0; i < trip_count; ++i) { + cond = ...; // ignored + } + + input (trip_count, cond) + int trip_count = ...; + bool cond = ...; + for (int i=0; i < trip_count && cond; ++i) { + cond = ...; + } + + + *Sample usage - cond as well as trip count* + + graph predict-net { + %a = Constant[value = ]() + %b = Constant[value = ]() + %keepgoing = Constant[value = ]() + %max_trip_count = Constant[value = ]() + %keepgoing_out, %b_out, %user_defined_vals = Loop[body = ](%max_trip_count, %keepgoing, %b) + return + } + + graph body-net ( + %i[INT32, scalar] + %keepgoing[BOOL, scalar] + %b[INT32, scalar] + ) { + %my_local = Add(%a, %b) + %b_out = Sub(%a, %b) + %keepgoing_out = Greater(%my_local, %b_out) + %user_defined_vals = Add(%b, %b) + return %keepgoing_out, %b_out, %user_defined_vals + } + + *Sample equivalent C code* + + { + /* User-defined code (enclosing scope) */ + int a = 3, b = 6; + bool keepgoing = true; // Analogous to input cond + /* End user-defined code */ + + /* Implicitly-defined code */ + const int max_trip_count = 10; // Analogous to input M + int user_defined_vals[]; // Imagine this is resizable + /* End implicitly-defined code */ + for (int i=0; i < max_trip_count && keepgoing; ++i) { + /* User-defined code (loop body) */ + int my_local = a + b; // Reading values in the enclosing scope is fine + b = a - b; // writes fine if we specify b as a loop-carried dependency + keepgoing = my_local > b; // keepgoing is a loop-carried dependency + user_defined_vals[i] = b + b; + /* End user-defined code */ + } + // my_local = 123; // Can't do this. my_local was defined in the the body + + // These below values are live-out from the loop and therefore accessible + b_out; user_defined_vals; keepgoing_out; + } + + There are several things of note in this code snippet: + + 1) Values from the enclosing scope (i.e. variable a here) are in scope and can + be referenced in the inputs of the loop. + 2) Any variables which you wish to make available in the enclosing scope (i.e. + the variables b and keepgoing) must be declared as either loop-carried + dependencies (both at the op inputs and output and at the body net input and + output) or scan_outputs. + 3) Values created in the body cannot be accessed in the enclosing scope. + + Note that the semantics of this op support "diagonal" or "wavefront" execution. + (See Step 3 here for an example: + https://devblogs.nvidia.com/optimizing-recurrent-neural-networks-cudnn-5/). + Frontends should emit multi-layer RNNs as a series of While operators (with + time being the inner looping dimension), with each successive layer consuming + the scan_outputs from the previous layer, possibly going through several + point-wise operators (e.g. dropout, residual connections, linear layer). + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has 2+N inputs: (iteration_num, condition, loop carried dependencies...). It has 1+N+K outputs: (condition, loop carried dependencies..., scan_outputs...). Each scan_output is created by concatenating the value of the specified output value at the end of each iteration of the loop. It is an error if the dimensions or data type of these scan_outputs change across loop iterations.
+
+ +#### Inputs (3 - ∞) + +
+
M (optional) : I
+
A maximum trip-count for the loop specified at runtime. Optional. Pass empty string to skip.
+
cond (optional) : B
+
A boolean termination condition. Optional. Pass empty string to skip.
+
v_initial (variadic, heterogeneous) : V
+
The initial values of any loop-carried dependencies (values that change across loop iterations)
+
+ +#### Outputs (1 - ∞) + +
+
v_final_and_scan_outputs (variadic, heterogeneous) : V
+
Final N loop carried dependency values then K scan_outputs
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
All Tensor types
+
I : tensor(int64)
+
tensor of int64, which should be a scalar.
+
B : tensor(bool)
+
tensor of bool, which should be a scalar.
+
+ +### **LpNormalization-1** + + Given a matrix, apply Lp-normalization along the provided axis. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
The axis on which to apply normalization, -1 mean last axis.
+
p : int (default is 2)
+
The order of the normalization, only 1 or 2 are supported.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Input matrix
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Matrix after normalization
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **LpPool-1** + + LpPool consumes an input tensor X and applies Lp pooling across the + the tensor according to kernel sizes, stride sizes, and pad lengths. + Lp pooling consisting of computing the Lp norm on all values of a subset + of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding. DEPRECATION NOTE: auto_pad is only intended to support legacy uses, and for framework authors, one is explicitly encouraged to use explicit padding specified in the pads attribute.
+
kernel_shape : list of ints
+
The size of the kernel along each axis.
+
p : float (default is 2.0)
+
p value of the Lp norm used to pool over the input data, default is 2.0.
+
pads : list of ints
+
Padding for the beginning and ending along each axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute.
+
strides : list of ints
+
Stride along each axis.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimension are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y : T
+
Output data tensor from Lp pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **MatMul-1** + + Matrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
N-dimensional matrix A
+
B : T
+
N-dimensional matrix B
+
+ +#### Outputs + +
+
Y : T
+
Matrix multiply results from A * B
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Max-1** + + Element-wise max of each of the input tensors. All inputs and outputs must + have the same shape and data type. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for Max.
+
+ +#### Outputs + +
+
max : T
+
Output tensor. Same dimension as inputs.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **MaxPool-1** + + MaxPool consumes an input tensor X and applies max pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + max pooling consisting of computing the max on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i] + ``` + The output of each pooling window is maximum number of elements exclude pad. + + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs + +
+
Y : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **MaxRoiPool-1** + + ROI max pool consumes an input tensor X and region of interests (RoIs) to + apply max pooling across each RoI, to produce output 4-D tensor of shape + (num_rois, channels, pooled_shape[0], pooled_shape[1]). + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
pooled_shape : list of ints (required)
+
ROI pool output shape (height, width).
+
spatial_scale : float (default is 1.0)
+
Multiplicative spatial scale factor to translate ROI coordinates from their input scale to the scale used when pooling.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data.
+
rois (non-differentiable) : T
+
RoIs (Regions of Interest) to pool over. Should be a 2-D tensor of shape (num_rois, 5) given as [[batch_id, x1, y1, x2, y2], ...].
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
RoI pooled output 4-D tensor of shape (num_rois, channels, pooled_shape[0], pooled_shape[1]).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Mean-1** + + Element-wise mean of each of the input tensors. All inputs and outputs must + have the same shape and data type. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for Mean.
+
+ +#### Outputs + +
+
mean : T
+
Output tensor. Same dimension as inputs.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Min-1** + + Element-wise min of each of the input tensors. All inputs and outputs must + have the same shape and data type. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for Min
+
+ +#### Outputs + +
+
min : T
+
Output tensor. Same dimension as inputs.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Mul-1** + + Performs element-wise binary multiplication (with limited broadcast support). + + If necessary the right-hand-side argument will be broadcasted to match the + shape of left-hand-side argument. When broadcasting is specified, the second + tensor can either be of element size 1 (including a scalar tensor and any + tensor with rank equal to or smaller than the first tensor), or having its + shape as a contiguous subset of the first tensor's shape. The starting of the + mutually equal shape is specified by the argument "axis", and if it is not set, + suffix matching is assumed. 1-dim expansion doesn't work yet. + + For example, the following tensor shapes are supported (with broadcast=1): + + shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar tensor + shape(A) = (2, 3, 4, 5), shape(B) = (1, 1), i.e. B is an 1-element tensor + shape(A) = (2, 3, 4, 5), shape(B) = (5,) + shape(A) = (2, 3, 4, 5), shape(B) = (4, 5) + shape(A) = (2, 3, 4, 5), shape(B) = (3, 4), with axis=1 + shape(A) = (2, 3, 4, 5), shape(B) = (2), with axis=0 + + Attribute `broadcast=1` needs to be passed to enable broadcasting. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions. See doc for details.
+
broadcast : int (default is 0)
+
Pass 1 to enable broadcasting
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
A : T
+
First operand, should share the type with the second operand.
+
B : T
+
Second operand. With broadcasting can be of smaller size than A. If broadcasting is disabled it should be of the same size.
+
+ +#### Outputs + +
+
C : T
+
Result, has same dimensions and type as A
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Neg-1** + + Neg takes one input data (Tensor) and produces one output data + (Tensor) where each element flipped sign, y = -x, is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Not-1** + + Returns the negation of the input tensor element-wise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
X (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input/output to boolean tensors.
+
+ +### **Or-1** + + Returns the tensor resulted from performing the `or` logical operation + elementwise on the input tensors `A` and `B`. + + If broadcasting is enabled, the right-hand-side argument will be broadcasted + to match the shape of left-hand-side argument. See the doc of `Add` for a + detailed description of the broadcasting rules. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions.
+
broadcast : int (default is 0)
+
Enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
Left input tensor for the logical operator.
+
B : T
+
Right input tensor for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input to boolean tensor.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **PRelu-1** + + PRelu takes input data (Tensor) and slope tensor as input, and produces one + output data (Tensor) where the function `f(x) = slope * x for x < 0`, + `f(x) = x for x >= 0`., is applied to the data tensor elementwise. + + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
slope : T
+
Slope tensor. If `Slope` is of size 1, the value is sharedacross different channels
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Pad-1** + + Given `data` tensor, paddings, mode, and value. + Example: + Insert 0 paddings to the beginning of the second dimension. + data = [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + paddings = [0, 0, 2, 0] + output = [ + [ + [0.0, 0.0, 1.0, 1.2], + [0.0, 0.0, 2.3, 3.4], + [0.0, 0.0, 4.5, 5.7], + ], + ] + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
mode : string (default is constant)
+
Three modes: constant(default), reflect, edge
+
paddings : list of ints (required)
+
List of integers indicate the padding element count at the beginning and end of each axis, for 2D it is the number of pixel. `paddings` rank should be double of the input's rank. `paddings` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`.
+
value : float (default is 0.0)
+
One float, indicates the value to be filled, default is 0
+
+ +#### Inputs + +
+
data : T
+
Input tensor.
+
+ +#### Outputs + +
+
output : T
+
Tensor after padding.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Pow-1** + + Pow takes input data (Tensor) and exponent Tensor, and + produces one output data (Tensor) where the function `f(x) = x^exponent`, + is applied to the data tensor elementwise. + + If necessary the right-hand-side argument will be broadcasted to match the + shape of left-hand-side argument. When broadcasting is specified, the second + tensor can either be of element size 1 (including a scalar tensor and any + tensor with rank equal to or smaller than the first tensor), or having its + shape as a contiguous subset of the first tensor's shape. The starting of the + mutually equal shape is specified by the argument "axis", and if it is not set, + suffix matching is assumed. 1-dim expansion doesn't work yet. + + For example, the following tensor shapes are supported (with broadcast=1): + + shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar tensor + shape(A) = (2, 3, 4, 5), shape(B) = (1, 1), i.e. B is an 1-element tensor + shape(A) = (2, 3, 4, 5), shape(B) = (5,) + shape(A) = (2, 3, 4, 5), shape(B) = (4, 5) + shape(A) = (2, 3, 4, 5), shape(B) = (3, 4), with axis=1 + shape(A) = (2, 3, 4, 5), shape(B) = (2), with axis=0 + + Attribute `broadcast=1` needs to be passed to enable broadcasting. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions. See doc for details.
+
broadcast : int (default is 0)
+
Pass 1 to enable broadcasting
+
+ +#### Inputs + +
+
X : T
+
Input tensor of any shape, base of the exponent.
+
Y : T
+
Input tensor of any shape broadcastable to X shape, the exponent component.
+
+ +#### Outputs + +
+
Z : T
+
Output tensor (same size as X)
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **RNN-1** + + Computes an one-layer simple RNN. This operator is usually supported + via some custom implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `i` - input gate + + `t` - time step (t-1 means previous time step) + + `Wi` - W parameter weight matrix for input gate + + `Ri` - R recurrence weight matrix for input gate + + `Wbi` - W parameter bias vector for input gate + + `Rbi` - R parameter bias vector for input gate + + `WBi` - W parameter weight matrix for backward input gate + + `RBi` - R recurrence weight matrix for backward input gate + + `WBbi` - WR bias vectors for backward input gate + + `RBbi` - RR bias vectors for backward input gate + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Tanh): + + - Ht = f(Xt*(Wi^T) + Ht-1*Ri + Wbi + Rbi) + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings (default is ['Tanh', 'Tanh'])
+
One (or two if bidirectional) activation function for input gate. The activation function must be one of the activation functions specified above. Optional: Default `Tanh` if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
output_sequence : int (default is 0)
+
The sequence output for the hidden is optional if 0. Default 0.
+
+ +#### Inputs (3 - 6) + +
+
X : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W : T
+
The weight tensor for input gate. Concatenation of `Wi` and `WBi` (if bidirectional). The tensor has shape `[num_directions, hidden_size, input_size]`.
+
R : T
+
The recurrence weight tensor. Concatenation of `Ri` and `RBi` (if bidirectional). The tensor has shape `[num_directions, hidden_size, hidden_size]`.
+
B (optional) : T
+
The bias tensor for input gate. Concatenation of `[Wbi, Rbi]` and `[WBbi, RBbi]` (if bidirectional). The tensor has shape `[num_directions, 2*hidden_size]`. Optional: If not specified - assumed to be 0.
+
sequence_lens (optional) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Outputs (0 - 2) + +
+
Y (optional) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`. It is optional if `output_sequence` is 0.
+
Y_h (optional) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +### **RandomNormal-1** + + Generate a tensor with random values drawn from a normal distribution. The shape + of the tensor is specified by the `shape` argument and the parameter of the normal distribution + specified by `mean` and `scale`. + + The data type is specified by the 'dtype' argument. The 'dtype' argument must + be one of the data types specified in the 'DataType' enum field in the + TensorProto message. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int (default is 1)
+
The data type for the elements of the output tensor. Default is TensorProto::FLOAT.
+
mean : float (default is 0.0)
+
The mean of the normal distribution.
+
scale : float (default is 1.0)
+
The standard deviation of the normal distribution.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
shape : list of ints (required)
+
The shape of the output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor of random values drawn from normal distribution
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ +### **RandomNormalLike-1** + + Generate a tensor with random values drawn from a normal distribution. + The shape of the output tensor is copied from the shape of the input tensor, + and the parameters of the normal distribution are specified by `mean` and `scale`. + + The data type is specified by the 'dtype' argument, or copied from the input tensor if not provided. + The 'dtype' argument must be one of the data types specified in the 'DataType' enum field in the + TensorProto message, and be valid as an output type. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
(Optional) The data type for the elements of the output tensor, if not specified, we will use the data type of the input tensor.
+
mean : float (default is 0.0)
+
The mean of the normal distribution.
+
scale : float (default is 1.0)
+
The standard deviation of the normal distribution.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs + +
+
input : T1
+
Input tensor to copy shape and optionally type information from.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor of random values drawn from normal distribution
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type. If the dtype attribute is not provided this must be a valid output type.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ +### **RandomUniform-1** + + Generate a tensor with random values drawn from a uniform distribution. The shape + of the tensor is specified by the `shape` argument and the range by `low` and `high`. + + The data type is specified by the 'dtype' argument. The 'dtype' argument must + be one of the data types specified in the 'DataType' enum field in the + TensorProto message. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int (default is 1)
+
The data type for the elements of the output tensor. If not specified, default is TensorProto::FLOAT.
+
high : float (default is 1.0)
+
Upper boundary of the output values.
+
low : float (default is 0.0)
+
Lower boundary of the output values.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
shape : list of ints (required)
+
The shape of the output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor of random values drawn from uniform distribution
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ +### **RandomUniformLike-1** + + Generate a tensor with random values drawn from a uniform distribution. + The shape of the output tensor is copied from the shape of the input tensor, + and the parameters of the uniform distribution are specified by `low` and `high`. + + The data type is specified by the 'dtype' argument, or copied from the input tensor if not provided. + The 'dtype' argument must be one of the data types specified in the 'DataType' enum field in the + TensorProto message and be valid as an output type. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
(Optional) The data type for the elements of the output tensor, if not specified, we will use the data type of the input tensor.
+
high : float (default is 1.0)
+
Upper boundary of the output values.
+
low : float (default is 0.0)
+
Lower boundary of the output values.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs + +
+
input : T1
+
Input tensor to copy shape and optionally type information from.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor of random values drawn from uniform distribution
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type. If the dtype attribute is not provided this must be a valid output type.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ +### **Reciprocal-1** + + Reciprocal takes one input data (Tensor) and produces one output data + (Tensor) where the reciprocal is, y = 1/x, is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **ReduceL1-1** + + Computes the L1 norm of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceL2-1** + + Computes the L2 norm of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceLogSum-1** + + Computes the log sum of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceLogSumExp-1** + + Computes the log sum exponent of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceMax-1** + + Computes the max of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceMean-1** + + Computes the mean of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceMin-1** + + Computes the min of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceProd-1** + + Computes the product of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceSum-1** + + Computes the sum of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceSumSquare-1** + + Computes the sum square of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor.
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Relu-1** + + Relu takes one input data (Tensor) and produces one output data + (Tensor) where the rectified linear function, y = max(0, x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Reshape-1** + + Reshape the input tensor similar to numpy.reshape. + It takes a tensor as input and an argument `shape`. It outputs the reshaped tensor. + At most one dimension of the new shape can be -1. In this case, the value is + inferred from the size of the tensor and the remaining dimensions. A dimension + could also be 0, in which case the actual dimension value is unchanged (i.e. taken + from the input tensor). Shape (second input) could be an empty shape, which means converting to a scalar. + The input tensor's shape and the output tensor's shape are required to have the same number of elements. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
shape : list of ints
+
New shape
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reshaped : T
+
Reshaped data.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Selu-1** + + Selu takes one input data (Tensor) and produces one output data + (Tensor) where the scaled exponential linear unit function, + `y = gamma * (alpha * e^x - alpha) for x <= 0`, `y = gamma * x for x > 0`, + is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.6732)
+
Coefficient of SELU default to 1.6732.
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
gamma : float (default is 1.0507)
+
Coefficient of SELU default to 1.0507.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Shape-1** + + Takes a tensor as input and outputs an 1D int64 tensor containing the shape of the input tensor. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
shape : T1
+
Shape of the input tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input tensor can be of arbitrary type.
+
T1 : tensor(int64)
+
Constrain output to int64 tensor.
+
+ +### **Sigmoid-1** + + Sigmoid takes one input data (Tensor) and produces one output data + (Tensor) where the sigmoid function, y = 1 / (1 + exp(-x)), is applied to the + tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Size-1** + + Takes a tensor as input and outputs a int64 scalar that equals to the total number of elements of the input tensor. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
size : T1
+
Total number of elements of the input tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input tensor can be of arbitrary type.
+
T1 : tensor(int64)
+
Constrain output to int64 tensor, which should be a scalar though.
+
+ +### **Slice-1** + + Produces a slice of the input tensor along multiple axes. Similar to numpy: + https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html + Slices uses `axes`, `starts` and `ends` attributes to specify the start and end + dimension for each axis in the list of axes, it uses this information to + slice the input `data` tensor. If a negative value is passed for any of the + start or end indices, it represent number of elements before the end of that + dimension. If the value passed to start or end is larger than the `n` (the + number of elements in this dimension), it represents `n`. For slicing to the + end of a dimension with unknown size, it is recommended to pass in `INT_MAX`. + If `axes` are omitted, they are set to `[0, ..., ndim-1]`. + Example 1: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + axes = [0, 1] + starts = [1, 0] + ends = [2, 3] + result = [ + [5, 6, 7], + ] + Example 2: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + starts = [0, 1] + ends = [-1, 1000] + result = [ + [2, 3, 4], + ] + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
Axes that `starts` and `ends` apply to. It's optional. If not present, will be treated as [0, 1, ..., len(`starts`) - 1].
+
ends : list of ints (required)
+
Ending indices (exclusive) of corresponding axis in axes`
+
starts : list of ints (required)
+
Starting indices of corresponding axis in `axes`
+
+ +#### Inputs + +
+
data : T
+
Tensor of data to extract slices from.
+
+ +#### Outputs + +
+
output : T
+
Sliced data tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Softmax-1** + + The operator computes the softmax (normalized exponential) values for each layer in the batch + of the given input. The input is a 2-D tensor (Tensor) of size + (batch_size x input_feature_dimensions). The output tensor has the same shape + and contains the softmax values of the corresponding input. + + Input does not need to explicitly be a 2D vector; rather, it will be + coerced into one. For an arbitrary n-dimensional tensor + input \in [a_0, a_1, ..., a_{k-1}, a_k, ..., a_{n-1}] and k is + the axis provided, then input will be coerced into a 2-dimensional tensor with + dimensions [a_0 * ... * a_{k-1}, a_k * ... * a_{n-1}]. For the default + case where axis=1, this means the input tensor will be coerced into a 2D tensor + of dimensions [a_0, a_1 * ... * a_{n-1}], where a_0 is often the batch size. + In this situation, we must have a_0 = N and a_1 * ... * a_{n-1} = D. + Each of these dimensions must be matched correctly, or else the operator + will throw errors. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Describes the axis of the inputs when coerced to 2D; defaults to one because the 0th axis most likely describes the batch_size
+
+ +#### Inputs + +
+
input : T
+
The input tensor that's coerced into a 2D matrix of size (NxD) as described above.
+
+ +#### Outputs + +
+
output : T
+
The output values with the same shape as input tensor (the original size without coercion).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Softplus-1** + + Softplus takes one input data (Tensor) and produces one output data + (Tensor) where the softplus function, y = ln(exp(x) + 1), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
1D input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
1D input tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Softsign-1** + + Calculates the softsign (x/(1+|x|)) of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The softsign (x/(1+|x|)) values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **SpaceToDepth-1** + + SpaceToDepth rearranges blocks of spatial data into depth. More specifically, + this op outputs a copy of the input tensor where values from the height and width dimensions + are moved to the depth dimension. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
blocksize : int (required)
+
Blocks of [blocksize, blocksize] are moved.
+
+ +#### Inputs + +
+
input : T
+
Input tensor of [N,C,H,W], where N is the batch axis, C is the channel or depth, H is the height and W is the width.
+
+ +#### Outputs + +
+
output : T
+
Output tensor of [N, C * blocksize * blocksize, H/blocksize, W/blocksize].
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Split-1** + + Split a tensor into a list of tensors, along the specified + 'axis'. The lengths of the split can be specified using argument 'axis' or + optional second input blob to the operator. Otherwise, the tensor is split + to equal sized parts. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
Which axis to split on
+
split : list of ints
+
length of each output
+
+ +#### Inputs (1 - 2) + +
+
input : T
+
The tensor to split
+
split (optional) : T
+
Optional list of output lengths (see also arg 'split')
+
+ +#### Outputs (1 - ∞) + +
+
outputs... (variadic) : T
+
One or more outputs forming list of tensors after splitting
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
+ +### **Sqrt-1** + + Square root takes one input data (Tensor) and produces one output data + (Tensor) where the square root is, y = x^0.5, is applied to + the tensor elementwise. If x is negative, then it will return NaN. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Squeeze-1** + + Remove single-dimensional entries from the shape of a tensor. + Takes a parameter `axes` with a list of axes to squeeze. + If `axes` is not provided, all the single dimensions will be removed from + the shape. If an axis is selected with shape entry not equal to one, an error is raised. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
List of non-negative integers, indicate the dimensions to squeeze.
+
+ +#### Inputs + +
+
data : T
+
Tensors with at least max(dims) dimensions.
+
+ +#### Outputs + +
+
squeezed : T
+
Reshaped tensor with same data as input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Sub-1** + + Performs element-wise binary subtraction (with limited broadcast support). + + If necessary the right-hand-side argument will be broadcasted to match the + shape of left-hand-side argument. When broadcasting is specified, the second + tensor can either be of element size 1 (including a scalar tensor and any + tensor with rank equal to or smaller than the first tensor), or having its + shape as a contiguous subset of the first tensor's shape. The starting of the + mutually equal shape is specified by the argument "axis", and if it is not set, + suffix matching is assumed. 1-dim expansion doesn't work yet. + + For example, the following tensor shapes are supported (with broadcast=1): + + shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar tensor + shape(A) = (2, 3, 4, 5), shape(B) = (1, 1), i.e. B is an 1-element tensor + shape(A) = (2, 3, 4, 5), shape(B) = (5,) + shape(A) = (2, 3, 4, 5), shape(B) = (4, 5) + shape(A) = (2, 3, 4, 5), shape(B) = (3, 4), with axis=1 + shape(A) = (2, 3, 4, 5), shape(B) = (2), with axis=0 + + Attribute `broadcast=1` needs to be passed to enable broadcasting. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions. See doc for details.
+
broadcast : int (default is 0)
+
Pass 1 to enable broadcasting
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
A : T
+
First operand, should share the type with the second operand.
+
B : T
+
Second operand. With broadcasting can be of smaller size than A. If broadcasting is disabled it should be of the same size.
+
+ +#### Outputs + +
+
C : T
+
Result, has same dimensions and type as A
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Sum-1** + + Element-wise sum of each of the input tensors. All inputs and outputs must + have the same shape and data type. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for Sum.
+
+ +#### Outputs + +
+
sum : T
+
Output tensor. Same dimension as inputs.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Tanh-1** + + Calculates the hyperbolic tangent of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
consumed_inputs : list of ints
+
legacy optimization attribute.
+
+ +#### Inputs + +
+
input : T
+
1-D input tensor
+
+ +#### Outputs + +
+
output : T
+
The hyperbolic tangent values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Tile-1** + + Repeat the elements of a tensor along an axis. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
input : T
+
Input tensor of any shape.
+
tiles : T
+
Number of repeated copies to make of the input tensor.
+
axis : T
+
Axis along which to repeat.
+
+ +#### Outputs + +
+
output : T
+
Output tensor of same shape and type as input.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
T1 : tensor(int64)
+
Constrain tiles and axis's type to int64 tensors.
+
+ +### **TopK-1** + + Retrieve the top-K elements along a specified axis. Given an input tensor of + shape [a_1, a_2, ..., a_n, r] and integer argument k, return two outputs: + -Value tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] + which contains the values of the top k elements along the specified axis + -Index tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] which + contains the indices of the top k elements (original indices from the input + tensor). + Given two equivalent values, this operator uses the indices along the axis as + a tiebreaker. That is, the element with the lower index will appear first. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
Dimension on which to do the sort.
+
k : int (required)
+
Number of top elements to retrieve
+
+ +#### Inputs + +
+
X : T
+
Tensor of shape [a_1, a_2, ..., a_n, r]
+
+ +#### Outputs + +
+
Values : T
+
Tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] containing top K values from the input tensor
+
Indices : I
+
Tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] containing the corresponding input tensor indices for the top K values.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
I : tensor(int64)
+
Constrain index tensor to int64
+
+ +### **Transpose-1** + + Transpose the input tensor similar to numpy.transpose. For example, when + perm=(1, 0, 2), given an input tensor of shape (1, 2, 3), the output shape + will be (2, 1, 3). + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
perm : list of ints
+
A list of integers. By default, reverse the dimensions, otherwise permute the axes according to the values given.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
transposed : T
+
Transposed output.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Unsqueeze-1** + + Insert single-dimensional entries to the shape of a tensor. + Takes one required argument `axes`, a list of dimensions that will be inserted. + Dimension indices in `axes` are as seen in the output tensor. For example: + Given a tensor such that tensor with shape [3, 4, 5], then + Unsqueeze(tensor, axes=[0, 4]) has shape [1, 3, 4, 5, 1] + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints (required)
+
List of non-negative integers, indicate the dimensions to be inserted
+
+ +#### Inputs + +
+
data : T
+
Original tensor
+
+ +#### Outputs + +
+
expanded : T
+
Reshaped tensor with same data as input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Upsample-1** + + Upsample the input tensor. + The width and height of the output tensor are: + output_width = floor(input_width * width_scale), + output_height = floor(input_height * height_scale). + Example: + Given `data` tensor, width_scale, height_scale, mode, + Upsample the input 4-D tensor in nearest mode: + data = [[[ + [1, 2], + [3, 4] + ]]] + width_scale = 2 + height_scale = 2 + mode = "nearest" + output = [[[ + [1, 1, 2, 2], + [1, 1, 2, 2], + [3, 3, 4, 4], + [3, 3, 4, 4] + ]]] + +#### Version + +No versioning maintained for experimental ops. +#### Attributes + +
+
height_scale : float (required)
+
The scale along height dimension. It takes value greater than or equal to 1.
+
mode : string (default is nearest)
+
Two interpolation modes: nearest(default), bilinear
+
width_scale : float (required)
+
The scale along width dimension. It takes value greater than or equal to 1.
+
+ +#### Inputs + +
+
X : T
+
4-D tensor, [N,C,H,W]
+
+ +#### Outputs + +
+
Y : T
+
4-D tensor after resizing, [N,C,H,W]
+
+ +#### Type Constraints + +
+
T : tensor(bool), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain output types to bool, int32, int64, float16, float, double tensors.
+
+ +### **Xor-1** + + Returns the tensor resulted from performing the `xor` logical operation + elementwise on the input tensors `A` and `B`. + + If broadcasting is enabled, the right-hand-side argument will be broadcasted + to match the shape of left-hand-side argument. See the doc of `Add` for a + detailed description of the broadcasting rules. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions.
+
broadcast : int (default is 0)
+
Enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
Left input tensor for the logical operator.
+
B : T
+
Right input tensor for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input to boolean tensor.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +## Version 2 of the default ONNX operator set +### **GlobalLpPool-2** + + GlobalLpPool consumes an input tensor X and applies lp pool pooling across + the values in the same channel. This is equivalent to LpPool with kernel size + equal to the spatial dimension of input tensor. + +#### Version + +This version of the operator has been available since version 2 of the default ONNX operator set. + +#### Attributes + +
+
p : int (default is 2)
+
p value of the Lp norm used to pool over the input data.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from pooling across the input tensor. The output tensor has the same rank as the input. The first two dimensions of output shape are the same as the input (N x C), while the other dimensions are all 1.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **LpPool-2** + + LpPool consumes an input tensor X and applies Lp pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + Lp pooling consisting of computing the Lp norm on all values of a subset + of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. + +#### Version + +This version of the operator has been available since version 2 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
p : int (default is 2)
+
p value of the Lp norm used to pool over the input data.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y : T
+
Output data tensor from Lp pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Pad-2** + + Given `data` tensor, pads, mode, and value. + Example: + Insert 0 pads to the beginning of the second dimension. + data = [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + pads = [0, 2, 0, 0] + output = [ + [ + [0.0, 0.0, 1.0, 1.2], + [0.0, 0.0, 2.3, 3.4], + [0.0, 0.0, 4.5, 5.7], + ], + ] + +#### Version + +This version of the operator has been available since version 2 of the default ONNX operator set. + +#### Attributes + +
+
mode : string (default is constant)
+
Three modes: constant(default), reflect, edge
+
pads : list of ints (required)
+
List of integers indicating the number of padding elements to add or remove (if negative) at the beginning and end of each axis. For 2D it is the number of pixels. `pads` rank should be double of the input's rank. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`.
+
value : float (default is 0.0)
+
One float, indicates the value to be filled.
+
+ +#### Inputs + +
+
data : T
+
Input tensor.
+
+ +#### Outputs + +
+
output : T
+
Tensor after padding.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Split-2** + + Split a tensor into a list of tensors, along the specified + 'axis'. Lengths of the parts can be specified using argument 'split'. + Otherwise, the tensor is split to equal sized parts. + +#### Version + +This version of the operator has been available since version 2 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to split on.
+
split : list of ints
+
length of each output
+
+ +#### Inputs + +
+
input : T
+
The tensor to split
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic) : T
+
One or more outputs forming list of tensors after splitting
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +## Version 3 of the default ONNX operator set +### **GRU-3** + + Computes an one-layer GRU. This operator is usually supported via some custom + implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `z` - update gate + + `r` - reset gate + + `h` - hidden gate + + `t` - time step (t-1 means previous time step) + + `W[zrh]` - W parameter weight matrix for update, reset, and hidden gates + + `R[zrh]` - R recurrence weight matrix for update, reset, and hidden gates + + `Wb[zrh]` - W bias vectors for update, reset, and hidden gates + + `Rb[zrh]` - R bias vectors for update, reset, and hidden gates + + `WB[zrh]` - W parameter weight matrix for backward update, reset, and hidden gates + + `RB[zrh]` - R recurrence weight matrix for backward update, reset, and hidden gates + + `WBb[zrh]` - W bias vectors for backward update, reset, and hidden gates + + `RBb[zrh]` - R bias vectors for backward update, reset, and hidden gates + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Sigmoid, g=Tanh): + + - zt = f(Xt*(Wz^T) + Ht-1*Rz + Wbz + Rbz) + + - rt = f(Xt*(Wr^T) + Ht-1*Rr + Wbr + Rbr) + + - ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*Rh + Rbh + Wbh) # default, when linear_before_reset = 0 + + - ht = g(Xt*(Wh^T) + (rt (.) (Ht-1*Rh + Rbh) + Wbh) # when linear_before_reset != 0 + + - Ht = (1 - zt) (.) ht + zt (.) Ht-1 + +#### Version + +This version of the operator has been available since version 3 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings
+
A list of 2 (or 4 if bidirectional) activation functions for update, reset, and hidden gates. The activation functions must be one of the activation functions specified above. Optional: See the equations for default if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
linear_before_reset : int (default is 0)
+
When computing the output of the hidden gate, apply the linear transformation before multiplying by the output of the reset gate.
+
output_sequence : int (default is 0)
+
The sequence output for the hidden is optional if 0. Default 0.
+
+ +#### Inputs (3 - 6) + +
+
X : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W : T
+
The weight tensor for the gates. Concatenation of `W[zrh]` and `WB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, input_size]`.
+
R : T
+
The recurrence weight tensor. Concatenation of `R[zrh]` and `RB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, hidden_size]`.
+
B (optional) : T
+
The bias tensor for the gates. Concatenation of `[Wb[zrh], Rb[zrh]]` and `[WBb[zrh], RBb[zrh]]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 6*hidden_size]`. Optional: If not specified - assumed to be 0
+
sequence_lens (optional) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Outputs (0 - 2) + +
+
Y (optional) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`. It is optional if `output_sequence` is 0.
+
Y_h (optional) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +## Version 4 of the default ONNX operator set +### **Concat-4** + + Concatenate a list of tensors into a single tensor + +#### Version + +This version of the operator has been available since version 4 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (required)
+
Which axis to concat on
+
+ +#### Inputs (1 - ∞) + +
+
inputs (variadic) : T
+
List of tensors for concatenation
+
+ +#### Outputs + +
+
concat_result : T
+
Concatenated tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain output types to any tensor type.
+
+ +## Version 5 of the default ONNX operator set +### **Reshape-5** + + Reshape the input tensor similar to numpy.reshape. + First input is the data tensor, second input is a shape tensor which specifies the output shape. It outputs the reshaped tensor. + At most one dimension of the new shape can be -1. In this case, the value is + inferred from the size of the tensor and the remaining dimensions. A dimension + could also be 0, in which case the actual dimension value is unchanged (i.e. taken + from the input tensor). Shape (second input) could be an empty shape, which means converting to a scalar. + The input tensor's shape and the output tensor's shape are required to have the same number of elements. + +#### Version + +This version of the operator has been available since version 5 of the default ONNX operator set. + +#### Inputs + +
+
data : T
+
An input tensor.
+
shape : tensor(int64)
+
Specified shape for output.
+
+ +#### Outputs + +
+
reshaped : T
+
Reshaped data.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +## Version 6 of the default ONNX operator set +### **Abs-6** + + Absolute takes one input data (Tensor) and produces one output data + (Tensor) where the absolute is, y = abs(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Add-6** + + Performs element-wise binary addition (with limited broadcast support). + + If necessary the right-hand-side argument will be broadcasted to match the + shape of left-hand-side argument. When broadcasting is specified, the second + tensor can either be of element size 1 (including a scalar tensor and any + tensor with rank equal to or smaller than the first tensor), or having its + shape as a contiguous subset of the first tensor's shape. The starting of the + mutually equal shape is specified by the argument "axis", and if it is not set, + suffix matching is assumed. 1-dim expansion doesn't work yet. + + For example, the following tensor shapes are supported (with broadcast=1): + + shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar tensor + shape(A) = (2, 3, 4, 5), shape(B) = (1, 1), i.e. B is an 1-element tensor + shape(A) = (2, 3, 4, 5), shape(B) = (5,) + shape(A) = (2, 3, 4, 5), shape(B) = (4, 5) + shape(A) = (2, 3, 4, 5), shape(B) = (3, 4), with axis=1 + shape(A) = (2, 3, 4, 5), shape(B) = (2), with axis=0 + + Attribute `broadcast=1` needs to be passed to enable broadcasting. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions. See doc for details.
+
broadcast : int (default is 0)
+
Pass 1 to enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
First operand, should share the type with the second operand.
+
B : T
+
Second operand. With broadcasting can be of smaller size than A. If broadcasting is disabled it should be of the same size.
+
+ +#### Outputs + +
+
C : T
+
Result, has same dimensions and type as A
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **BatchNormalization-6** + + Carries out batch normalization as described in the paper + https://arxiv.org/abs/1502.03167. Depending on the mode it is being run, + there are multiple cases for the number of outputs, which we list below: + + Output case #1: Y, mean, var, saved_mean, saved_var (training mode) + Output case #2: Y (test mode) + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero, default is 1e-5f.
+
is_test : int (default is 0)
+
If set to nonzero, run spatial batch normalization in test mode, default is 0.
+
momentum : float (default is 0.9)
+
Factor used in computing the running mean and variance.e.g., running_mean = running_mean * momentum + mean * (1 - momentum), default is 0.9f.
+
spatial : int (default is 1)
+
If true, compute the mean and variance across all spatial elements If false, compute the mean and variance across per feature.Default is 1.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
scale : T
+
The scale as a 1-dimensional tensor of size C to be applied to the output.
+
B : T
+
The bias as a 1-dimensional tensor of size C to be applied to the output.
+
mean : T
+
The running mean (training) or the estimated mean (testing) as a 1-dimensional tensor of size C.
+
var : T
+
The running variance (training) or the estimated variance (testing) as a 1-dimensional tensor of size C.
+
+ +#### Outputs (1 - 5) + +
+
Y : T
+
The output tensor of the same shape as X.
+
mean (optional) : T
+
The running mean after the BatchNormalization operator. Must be in-place with the input mean. Should not be used for testing.
+
var (optional) : T
+
The running variance after the BatchNormalization operator. Must be in-place with the input var. Should not be used for testing.
+
saved_mean (optional) : T
+
Saved mean used during training to speed up gradient computation. Should not be used for testing.
+
saved_var (optional) : T
+
Saved variance used during training to speed up gradient computation. Should not be used for testing.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Cast-6** + + The operator casts the elements of a given input tensor to a data type + specified by the 'to' argument and returns an output tensor of the same size in + the converted type. The 'to' argument must be one of the data types specified + in the 'DataType' enum field in the TensorProto message. + NOTE: Casting to and from strings is not supported yet. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
to : int (required)
+
The data type to which the elements of the input tensor are cast. Strictly must be one of the types from DataType enum in TensorProto
+
+ +#### Inputs + +
+
input : T1
+
Input tensor to be cast.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor with the same shape as input with type specified by the 'to' argument
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain input types. Casting from strings and complex are not supported.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain output types. Casting to strings and complex are not supported.
+
+ +### **Ceil-6** + + Ceil takes one input data (Tensor) and produces one output data + (Tensor) where the ceil is, y = ceil(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Clip-6** + + Clip operator limits the given input within an interval. The interval is + specified with arguments 'min' and 'max'. They default to + numeric_limits::lowest() and numeric_limits::max() respectively. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
max : float (default is (3.402823e+38))
+
Maximum value, above which element is replaced by max
+
min : float (default is (-3.402823e+38))
+
Minimum value, under which element is replaced by min
+
+ +#### Inputs + +
+
input : T
+
Input tensor whose elements to be clipped
+
+ +#### Outputs + +
+
output : T
+
Output tensor with clipped input elements
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Div-6** + + Performs element-wise binary division (with limited broadcast support). + + If necessary the right-hand-side argument will be broadcasted to match the + shape of left-hand-side argument. When broadcasting is specified, the second + tensor can either be of element size 1 (including a scalar tensor and any + tensor with rank equal to or smaller than the first tensor), or having its + shape as a contiguous subset of the first tensor's shape. The starting of the + mutually equal shape is specified by the argument "axis", and if it is not set, + suffix matching is assumed. 1-dim expansion doesn't work yet. + + For example, the following tensor shapes are supported (with broadcast=1): + + shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar tensor + shape(A) = (2, 3, 4, 5), shape(B) = (1, 1), i.e. B is an 1-element tensor + shape(A) = (2, 3, 4, 5), shape(B) = (5,) + shape(A) = (2, 3, 4, 5), shape(B) = (4, 5) + shape(A) = (2, 3, 4, 5), shape(B) = (3, 4), with axis=1 + shape(A) = (2, 3, 4, 5), shape(B) = (2), with axis=0 + + Attribute `broadcast=1` needs to be passed to enable broadcasting. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions. See doc for details.
+
broadcast : int (default is 0)
+
Pass 1 to enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
First operand, should share the type with the second operand.
+
B : T
+
Second operand. With broadcasting can be of smaller size than A. If broadcasting is disabled it should be of the same size.
+
+ +#### Outputs + +
+
C : T
+
Result, has same dimensions and type as A
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Dropout-6** + + Dropout takes one input data (Tensor) and produces two Tensor outputs, + output (Tensor) and mask (Tensor). Depending on whether it is in + test mode or not, the output Y will either be a random dropout, or a simple + copy of the input. Note that our implementation of Dropout does scaling in + the training phase, so during testing nothing needs to be done. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
is_test : int (default is 0)
+
(int, default 0) if nonzero, run dropout in test mode where the output is simply Y = X.
+
ratio : float (default is 0.5)
+
(float, default 0.5) the ratio of random dropout
+
+ +#### Inputs + +
+
data : T
+
The input data as Tensor.
+
+ +#### Outputs (1 - 2) + +
+
output : T
+
The output.
+
mask (optional) : T
+
The output mask. If is_test is nonzero, this output is not filled.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Elu-6** + + Elu takes one input data (Tensor) and produces one output data + (Tensor) where the function `f(x) = alpha * (exp(x) - 1.) for x < + 0`, `f(x) = x for x >= 0`., is applied to the tensor elementwise. + + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Coefficient of ELU.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
1D input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
1D output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Exp-6** + + Calculates the exponential of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
input : T
+
Input tensor
+
+ +#### Outputs + +
+
output : T
+
The exponential of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Floor-6** + + Floor takes one input data (Tensor) and produces one output data + (Tensor) where the floor is, y = floor(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Gemm-6** + + General Matrix multiplication: + https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 + Compute Y = alpha * A * B + beta * C, where input tensor A has + dimension (M X K), input tensor B has dimension (K X N), input tensor C and + output tensor Y have dimension (M X N). + If attribute broadcast is non-zero, input tensor C will be broadcasted to match + the dimension requirement. A will be transposed before doing the computation + if attribute transA is non-zero, same for B and transB. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Scalar multiplier for the product of input tensors A * B, the default value is 1.0.
+
beta : float (default is 1.0)
+
Scalar multiplier for input tensor C, the default value is 1.0.
+
broadcast : int (default is 0)
+
Whether C should be broadcasted
+
transA : int (default is 0)
+
Whether A should be transposed
+
transB : int (default is 0)
+
Whether B should be transposed
+
+ +#### Inputs + +
+
A : T
+
Input tensor A
+
B : T
+
Input tensor B
+
C : T
+
Input tensor C
+
+ +#### Outputs + +
+
Y : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **HardSigmoid-6** + + HardSigmoid takes one input data (Tensor) and produces one output data + (Tensor) where the HardSigmoid function, y = max(0, min(1, alpha * x + beta)), + is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 0.2)
+
Value of alpha.
+
beta : float (default is 0.5)
+
Value of beta.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **InstanceNormalization-6** + + Carries out instance normalization as described in the paper + https://arxiv.org/abs/1607.08022. + + y = scale * (x - mean) / sqrt(variance + epsilon) + B, + where mean and variance are computed per instance per channel. + + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
scale (differentiable) : T
+
The input 1-dimensional scale tensor of size C.
+
B (differentiable) : T
+
The input 1-dimensional bias tensor of size C.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output tensor of the same shape as input.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **LeakyRelu-6** + + LeakyRelu takes input data (Tensor) and an argument alpha, and produces one + output data (Tensor) where the function `f(x) = alpha * x for x < 0`, + `f(x) = x for x >= 0`, is applied to the data tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 0.01)
+
Coefficient of leakage.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Log-6** + + Calculates the natural log of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
input : T
+
Input tensor
+
+ +#### Outputs + +
+
output : T
+
The natural log of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Max-6** + + Element-wise max of each of the input tensors. All inputs and outputs must + have the same shape and data type. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for Max.
+
+ +#### Outputs + +
+
max : T
+
Output tensor. Same dimension as inputs.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Mean-6** + + Element-wise mean of each of the input tensors. All inputs and outputs must + have the same shape and data type. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for Mean.
+
+ +#### Outputs + +
+
mean : T
+
Output tensor. Same dimension as inputs.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Min-6** + + Element-wise min of each of the input tensors. All inputs and outputs must + have the same shape and data type. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for Min
+
+ +#### Outputs + +
+
min : T
+
Output tensor. Same dimension as inputs.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Mul-6** + + Performs element-wise binary multiplication (with limited broadcast support). + + If necessary the right-hand-side argument will be broadcasted to match the + shape of left-hand-side argument. When broadcasting is specified, the second + tensor can either be of element size 1 (including a scalar tensor and any + tensor with rank equal to or smaller than the first tensor), or having its + shape as a contiguous subset of the first tensor's shape. The starting of the + mutually equal shape is specified by the argument "axis", and if it is not set, + suffix matching is assumed. 1-dim expansion doesn't work yet. + + For example, the following tensor shapes are supported (with broadcast=1): + + shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar tensor + shape(A) = (2, 3, 4, 5), shape(B) = (1, 1), i.e. B is an 1-element tensor + shape(A) = (2, 3, 4, 5), shape(B) = (5,) + shape(A) = (2, 3, 4, 5), shape(B) = (4, 5) + shape(A) = (2, 3, 4, 5), shape(B) = (3, 4), with axis=1 + shape(A) = (2, 3, 4, 5), shape(B) = (2), with axis=0 + + Attribute `broadcast=1` needs to be passed to enable broadcasting. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions. See doc for details.
+
broadcast : int (default is 0)
+
Pass 1 to enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
First operand, should share the type with the second operand.
+
B : T
+
Second operand. With broadcasting can be of smaller size than A. If broadcasting is disabled it should be of the same size.
+
+ +#### Outputs + +
+
C : T
+
Result, has same dimensions and type as A
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Neg-6** + + Neg takes one input data (Tensor) and produces one output data + (Tensor) where each element flipped sign, y = -x, is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(int32), tensor(int8), tensor(int16), tensor(int64), tensor(float16), tensor(double)
+
Constrain input and output types to signed numeric tensors.
+
+ +### **PRelu-6** + + PRelu takes input data (Tensor) and slope tensor as input, and produces one + output data (Tensor) where the function `f(x) = slope * x for x < 0`, + `f(x) = x for x >= 0`., is applied to the data tensor elementwise. + + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
slope : T
+
Slope tensor. If `Slope` is of size 1, the value is sharedacross different channels
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Reciprocal-6** + + Reciprocal takes one input data (Tensor) and produces one output data + (Tensor) where the reciprocal is, y = 1/x, is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Relu-6** + + Relu takes one input data (Tensor) and produces one output data + (Tensor) where the rectified linear function, y = max(0, x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Selu-6** + + Selu takes one input data (Tensor) and produces one output data + (Tensor) where the scaled exponential linear unit function, + `y = gamma * (alpha * e^x - alpha) for x <= 0`, `y = gamma * x for x > 0`, + is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.67326)
+
Coefficient of SELU default to 1.67326319217681884765625 (i.e., float32 approximation of 1.6732632423543772848170429916717).
+
gamma : float (default is 1.0507)
+
Coefficient of SELU default to 1.05070102214813232421875 (i.e., float32 approximation of 1.0507009873554804934193349852946).
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Sigmoid-6** + + Sigmoid takes one input data (Tensor) and produces one output data + (Tensor) where the sigmoid function, y = 1 / (1 + exp(-x)), is applied to the + tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Sqrt-6** + + Square root takes one input data (Tensor) and produces one output data + (Tensor) where the square root is, y = x^0.5, is applied to + the tensor elementwise. If x is negative, then it will return NaN. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Sub-6** + + Performs element-wise binary subtraction (with limited broadcast support). + + If necessary the right-hand-side argument will be broadcasted to match the + shape of left-hand-side argument. When broadcasting is specified, the second + tensor can either be of element size 1 (including a scalar tensor and any + tensor with rank equal to or smaller than the first tensor), or having its + shape as a contiguous subset of the first tensor's shape. The starting of the + mutually equal shape is specified by the argument "axis", and if it is not set, + suffix matching is assumed. 1-dim expansion doesn't work yet. + + For example, the following tensor shapes are supported (with broadcast=1): + + shape(A) = (2, 3, 4, 5), shape(B) = (,), i.e. B is a scalar tensor + shape(A) = (2, 3, 4, 5), shape(B) = (1, 1), i.e. B is an 1-element tensor + shape(A) = (2, 3, 4, 5), shape(B) = (5,) + shape(A) = (2, 3, 4, 5), shape(B) = (4, 5) + shape(A) = (2, 3, 4, 5), shape(B) = (3, 4), with axis=1 + shape(A) = (2, 3, 4, 5), shape(B) = (2), with axis=0 + + Attribute `broadcast=1` needs to be passed to enable broadcasting. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
If set, defines the broadcast dimensions. See doc for details.
+
broadcast : int (default is 0)
+
Pass 1 to enable broadcasting
+
+ +#### Inputs + +
+
A : T
+
First operand, should share the type with the second operand.
+
B : T
+
Second operand. With broadcasting can be of smaller size than A. If broadcasting is disabled it should be of the same size.
+
+ +#### Outputs + +
+
C : T
+
Result, has same dimensions and type as A
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Sum-6** + + Element-wise sum of each of the input tensors. All inputs and outputs must + have the same shape and data type. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for Sum.
+
+ +#### Outputs + +
+
sum : T
+
Output tensor. Same dimension as inputs.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Tanh-6** + + Calculates the hyperbolic tangent of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
input : T
+
Input tensor
+
+ +#### Outputs + +
+
output : T
+
The hyperbolic tangent values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Tile-6** + + Constructs a tensor by tiling a given tensor. + This is the same as function `tile` in Numpy, but no broadcast. + For example A = [[1, 2], [3, 4]], B = [1, 2], tile(A, B) = [[1, 2, 1, 2], [3, 4, 3, 4]] + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +#### Inputs + +
+
input : T
+
Input tensor of any shape.
+
repeats : T1
+
1D int64 tensor of the same length as input's dimension number, includes numbers of repeated copies along input's dimensions.
+
+ +#### Outputs + +
+
output : T
+
Output tensor of the same dimensions and type as tensor input. output_dim[i] = input_dim[i] * repeats[i]
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
T1 : tensor(int64)
+
Constrain repeat's type to int64 tensors.
+
+ +## Version 7 of the default ONNX operator set +### **Acos-7** + + Calculates the arccosine (inverse of cosine) of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The arccosine of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Add-7** + + Performs element-wise binary addition (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First operand.
+
B : T
+
Second operand.
+
+ +#### Outputs + +
+
C : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **And-7** + + Returns the tensor resulted from performing the `and` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input to boolean tensor.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Asin-7** + + Calculates the arcsine (inverse of sine) of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The arcsine of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Atan-7** + + Calculates the arctangent (inverse of tangent) of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The arctangent of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **AveragePool-7** + + AveragePool consumes an input tensor X and applies average pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + average pooling consisting of computing the average on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i] + ``` + The output of each pooling window is divided by the number of elements (exclude pad when attribute count_include_pad is zero). + + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
count_include_pad : int (default is 0)
+
Whether include pad pixels when calculating values for the edges. Default is 0, doesn't count include pad.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs + +
+
Y : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **BatchNormalization-7** + + Carries out batch normalization as described in the paper + https://arxiv.org/abs/1502.03167. Depending on the mode it is being run, + there are multiple cases for the number of outputs, which we list below: + + Output case #1: Y, mean, var, saved_mean, saved_var (training mode) + Output case #2: Y (test mode) + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero.
+
momentum : float (default is 0.9)
+
Factor used in computing the running mean and variance.e.g., running_mean = running_mean * momentum + mean * (1 - momentum).
+
spatial : int (default is 1)
+
If true, compute the mean and variance across per activation. If false, compute the mean and variance across per feature over each mini-batch.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
scale : T
+
If spatial is true, the dimension of scale is (C). If spatial is false, the dimensions of scale are (C x D1 x ... x Dn)
+
B : T
+
If spatial is true, the dimension of bias is (C). If spatial is false, the dimensions of bias are (C x D1 x ... x Dn)
+
mean : T
+
If spatial is true, the dimension of the running mean (training) or the estimated mean (testing) is (C). If spatial is false, the dimensions of the running mean (training) or the estimated mean (testing) are (C x D1 x ... x Dn).
+
var : T
+
If spatial is true, the dimension of the running variance(training) or the estimated variance (testing) is (C). If spatial is false, the dimensions of the running variance(training) or the estimated variance (testing) are (C x D1 x ... x Dn).
+
+ +#### Outputs (1 - 5) + +
+
Y : T
+
The output tensor of the same shape as X
+
mean (optional) : T
+
The running mean after the BatchNormalization operator.
+
var (optional) : T
+
The running variance after the BatchNormalization operator.
+
saved_mean (optional) : T
+
Saved mean used during training to speed up gradient computation.
+
saved_var (optional) : T
+
Saved variance used during training to speed up gradient computation.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Cos-7** + + Calculates the cosine of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The cosine of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Div-7** + + Performs element-wise binary division (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First operand.
+
B : T
+
Second operand.
+
+ +#### Outputs + +
+
C : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Dropout-7** + + Dropout takes one input data (Tensor) and produces two Tensor outputs, + output (Tensor) and mask (Tensor). Depending on whether it is in + test mode or not, the output Y will either be a random dropout, or a simple + copy of the input. Note that our implementation of Dropout does scaling in + the training phase, so during testing nothing needs to be done. + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
ratio : float (default is 0.5)
+
The ratio of random dropout
+
+ +#### Inputs + +
+
data : T
+
The input data as Tensor.
+
+ +#### Outputs (1 - 2) + +
+
output : T
+
The output.
+
mask (optional) : T
+
The output mask.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Equal-7** + + Returns the tensor resulted from performing the `equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First input operand for the logical operator.
+
B : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool), tensor(int32), tensor(int64)
+
Constrain input to integral tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **GRU-7** + + Computes an one-layer GRU. This operator is usually supported via some custom + implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `z` - update gate + + `r` - reset gate + + `h` - hidden gate + + `t` - time step (t-1 means previous time step) + + `W[zrh]` - W parameter weight matrix for update, reset, and hidden gates + + `R[zrh]` - R recurrence weight matrix for update, reset, and hidden gates + + `Wb[zrh]` - W bias vectors for update, reset, and hidden gates + + `Rb[zrh]` - R bias vectors for update, reset, and hidden gates + + `WB[zrh]` - W parameter weight matrix for backward update, reset, and hidden gates + + `RB[zrh]` - R recurrence weight matrix for backward update, reset, and hidden gates + + `WBb[zrh]` - W bias vectors for backward update, reset, and hidden gates + + `RBb[zrh]` - R bias vectors for backward update, reset, and hidden gates + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Sigmoid, g=Tanh): + + - zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz) + + - rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr) + + - ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*(Rh^T) + Rbh + Wbh) # default, when linear_before_reset = 0 + + - ht = g(Xt*(Wh^T) + (rt (.) (Ht-1*(Rh^T) + Rbh)) + Wbh) # when linear_before_reset != 0 + + - Ht = (1 - zt) (.) ht + zt (.) Ht-1 + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings
+
A list of 2 (or 4 if bidirectional) activation functions for update, reset, and hidden gates. The activation functions must be one of the activation functions specified above. Optional: See the equations for default if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
linear_before_reset : int (default is 0)
+
When computing the output of the hidden gate, apply the linear transformation before multiplying by the output of the reset gate.
+
+ +#### Inputs (3 - 6) + +
+
X : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W : T
+
The weight tensor for the gates. Concatenation of `W[zrh]` and `WB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, input_size]`.
+
R : T
+
The recurrence weight tensor. Concatenation of `R[zrh]` and `RB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, hidden_size]`.
+
B (optional) : T
+
The bias tensor for the gates. Concatenation of `[Wb[zrh], Rb[zrh]]` and `[WBb[zrh], RBb[zrh]]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 6*hidden_size]`. Optional: If not specified - assumed to be 0
+
sequence_lens (optional) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Outputs (0 - 2) + +
+
Y (optional) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`.
+
Y_h (optional) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +### **Gemm-7** + + General Matrix multiplication: + https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 + + A' = transpose(A) if transA else A + + B' = transpose(B) if transB else B + + Compute Y = alpha * A' * B' + beta * C, where input tensor A has shape (M, K) or (K, M), + input tensor B has shape (K, N) or (N, K), input tensor C is broadcastable to shape (M, N), + and output tensor Y has shape (M, N). A will be transposed before doing the + computation if attribute transA is non-zero, same for B and transB. + This operator supports **unidirectional broadcasting** (tensor C should be unidirectional broadcastable to tensor A * B); for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Scalar multiplier for the product of input tensors A * B.
+
beta : float (default is 1.0)
+
Scalar multiplier for input tensor C.
+
transA : int (default is 0)
+
Whether A should be transposed
+
transB : int (default is 0)
+
Whether B should be transposed
+
+ +#### Inputs + +
+
A : T
+
Input tensor A. The shape of A should be (M, K) if transA is 0, or (K, M) if transA is non-zero.
+
B : T
+
Input tensor B. The shape of B should be (K, N) if transB is 0, or (N, K) if transB is non-zero.
+
C : T
+
Input tensor C. The shape of C should be unidirectional broadcastable to (M, N).
+
+ +#### Outputs + +
+
Y : T
+
Output tensor of shape (M, N).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Greater-7** + + Returns the tensor resulted from performing the `greater` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First input operand for the logical operator.
+
B : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input to float tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **LSTM-7** + + Computes an one-layer LSTM. This operator is usually supported via some + custom implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `i` - input gate + + `o` - output gate + + `f` - forget gate + + `c` - cell gate + + `t` - time step (t-1 means previous time step) + + `W[iofc]` - W parameter weight matrix for input, output, forget, and cell gates + + `R[iofc]` - R recurrence weight matrix for input, output, forget, and cell gates + + `Wb[iofc]` - W bias vectors for input, output, forget, and cell gates + + `Rb[iofc]` - R bias vectors for input, output, forget, and cell gates + + `P[iof]` - P peephole weight vector for input, output, and forget gates + + `WB[iofc]` - W parameter weight matrix for backward input, output, forget, and cell gates + + `RB[iofc]` - R recurrence weight matrix for backward input, output, forget, and cell gates + + `WBb[iofc]` - W bias vectors for backward input, output, forget, and cell gates + + `RBb[iofc]` - R bias vectors for backward input, output, forget, and cell gates + + `PB[iof]` - P peephole weight vector for backward input, output, and forget gates + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Sigmoid, g=Tanh, h=Tanh): + + - it = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Pi (.) Ct-1 + Wbi + Rbi) + + - ft = f(Xt*(Wf^T) + Ht-1*(Rf^T) + Pf (.) Ct-1 + Wbf + Rbf) + + - ct = g(Xt*(Wc^T) + Ht-1*(Rc^T) + Wbc + Rbc) + + - Ct = ft (.) Ct-1 + it (.) ct + + - ot = f(Xt*(Wo^T) + Ht-1*(Ro^T) + Po (.) Ct + Wbo + Rbo) + + - Ht = ot (.) h(Ct) + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings
+
A list of 3 (or 6 if bidirectional) activation functions for input, output, forget, cell, and hidden. The activation functions must be one of the activation functions specified above. Optional: See the equations for default if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
input_forget : int (default is 0)
+
Couple the input and forget gates if 1.
+
+ +#### Inputs (3 - 8) + +
+
X : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W : T
+
The weight tensor for the gates. Concatenation of `W[iofc]` and `WB[iofc]` (if bidirectional) along dimension 0. The tensor has shape `[num_directions, 4*hidden_size, input_size]`.
+
R : T
+
The recurrence weight tensor. Concatenation of `R[iofc]` and `RB[iofc]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 4*hidden_size, hidden_size]`.
+
B (optional) : T
+
The bias tensor for input gate. Concatenation of `[Wb[iofc], Rb[iofc]]`, and `[WBb[iofc], RBb[iofc]]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 8*hidden_size]`. Optional: If not specified - assumed to be 0.
+
sequence_lens (optional) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
initial_c (optional) : T
+
Optional initial value of the cell. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
P (optional) : T
+
The weight tensor for peepholes. Concatenation of `P[iof]` and `PB[iof]` (if bidirectional) along dimension 0. It has shape `[num_directions, 3*hidde_size]`. Optional: If not specified - assumed to be 0.
+
+ +#### Outputs (0 - 3) + +
+
Y (optional) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`.
+
Y_h (optional) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
Y_c (optional) : T
+
The last output value of the cell. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +### **Less-7** + + Returns the tensor resulted from performing the `less` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First input operand for the logical operator.
+
B : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input to float tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Mul-7** + + Performs element-wise binary multiplication (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First operand.
+
B : T
+
Second operand.
+
+ +#### Outputs + +
+
C : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Multinomial-7** + + Generate a tensor of samples from a multinomial distribution according to the probabilities + of each of the possible outcomes. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int (default is 6)
+
(Optional) The data type for the elements of the output tensor, if not specified, we will use int32.
+
sample_size : int (default is 1)
+
Number of times to sample.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs + +
+
input : T1
+
Input tensor with shape [batch_size, class_size], where class_size is the number of all possible outcomes. Each value along the axis zero represents the unnormalized log-probability of each corresponding outcome in a batch.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor with shape [batch_size, sample_size], where sample_size is the number of times to sample. Each value along the axis zero represents the outcome of the corresponding sample in a batch.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
T2 : tensor(int32), tensor(int64)
+
Constrain output types to integral tensors.
+
+ +### **Or-7** + + Returns the tensor resulted from performing the `or` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input to boolean tensor.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **PRelu-7** + + PRelu takes input data (Tensor) and slope tensor as input, and produces one + output data (Tensor) where the function `f(x) = slope * x for x < 0`, + `f(x) = x for x >= 0`., is applied to the data tensor elementwise. + This operator supports **unidirectional broadcasting** (tensor slope should be unidirectional broadcastable to input tensor X); for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
Input tensor
+
slope : T
+
Slope tensor. The shape of slope can be smaller then first input X; if so, its shape must be unidirectional broadcastable to X
+
+ +#### Outputs + +
+
Y : T
+
Output tensor (same size as X)
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Pow-7** + + Pow takes input data (Tensor) and exponent Tensor, and + produces one output data (Tensor) where the function `f(x) = x^exponent`, + is applied to the data tensor elementwise. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
First operand, base of the exponent.
+
Y : T
+
Second operand, power of the exponent.
+
+ +#### Outputs + +
+
Z : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **RNN-7** + + Computes an one-layer simple RNN. This operator is usually supported + via some custom implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `i` - input gate + + `t` - time step (t-1 means previous time step) + + `Wi` - W parameter weight matrix for input gate + + `Ri` - R recurrence weight matrix for input gate + + `Wbi` - W parameter bias vector for input gate + + `Rbi` - R parameter bias vector for input gate + + `WBi` - W parameter weight matrix for backward input gate + + `RBi` - R recurrence weight matrix for backward input gate + + `WBbi` - WR bias vectors for backward input gate + + `RBbi` - RR bias vectors for backward input gate + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Tanh): + + - Ht = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Wbi + Rbi) + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings (default is ['Tanh', 'Tanh'])
+
One (or two if bidirectional) activation function for input gate. The activation function must be one of the activation functions specified above. Optional: Default `Tanh` if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
+ +#### Inputs (3 - 6) + +
+
X : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W : T
+
The weight tensor for input gate. Concatenation of `Wi` and `WBi` (if bidirectional). The tensor has shape `[num_directions, hidden_size, input_size]`.
+
R : T
+
The recurrence weight tensor. Concatenation of `Ri` and `RBi` (if bidirectional). The tensor has shape `[num_directions, hidden_size, hidden_size]`.
+
B (optional) : T
+
The bias tensor for input gate. Concatenation of `[Wbi, Rbi]` and `[WBbi, RBbi]` (if bidirectional). The tensor has shape `[num_directions, 2*hidden_size]`. Optional: If not specified - assumed to be 0.
+
sequence_lens (optional) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Outputs (0 - 2) + +
+
Y (optional) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`.
+
Y_h (optional) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +### **Sin-7** + + Calculates the sine of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The sine of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Sub-7** + + Performs element-wise binary subtraction (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First operand.
+
B : T
+
Second operand.
+
+ +#### Outputs + +
+
C : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Tan-7** + + Calculates the tangent of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The tangent of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Upsample-7** + + Upsample the input tensor. + Each dimension value of the output tensor is: + output_dimension = floor(input_dimension * scale). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
mode : string (default is nearest)
+
Two interpolation modes: nearest (default), and linear (including bilinear, trilinear, etc)
+
scales : list of floats (required)
+
The scale array along each dimension. It takes value greater than or equal to 1. The number of elements of 'scales' should be the same as the rank of input 'X'.
+
+ +#### Inputs + +
+
X : T
+
N-D tensor
+
+ +#### Outputs + +
+
Y : T
+
N-D tensor after resizing
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Xor-7** + + Returns the tensor resulted from performing the `xor` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input to boolean tensor.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +## Version 8 of the default ONNX operator set +### **Expand-8** + + Broadcast the input tensor following the given shape and the broadcast rule. + The broadcast rule is similar to numpy.array(input) * numpy.ones(shape): + Dimensions are right alignment; + Two corresponding dimensions must have the same value, or one of them is equal to 1. + Also, this operator is similar to numpy.broadcast_to(input, shape), + but the major difference is numpy.broadcast_to() does not allow shape to be smaller than input.size(). + It is possible that the output.shape is not equal to shape, when some dimensions in shape is equal to 1, + or the shape.ndim < input.shape.ndim. + +#### Version + +This version of the operator has been available since version 8 of the default ONNX operator set. + +#### Inputs + +
+
input : T
+
Input tensor
+
shape : tensor(int64)
+
A 1-D tensor indicates the shape you want to expand to, following the broadcast rule
+
+ +#### Outputs + +
+
output : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensors.
+
+ +### **Max-8** + + Element-wise max of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 8 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for max.
+
+ +#### Outputs + +
+
max : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **MaxPool-8** + + MaxPool consumes an input tensor X and applies max pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + max pooling consisting of computing the max on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i] + ``` + The output of each pooling window is maximum number of elements exclude pad. + + +#### Version + +This version of the operator has been available since version 8 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
storage_order : int (default is 0)
+
The storage order of the tensor. 0 is row major, and 1 is column major.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs (1 - 2) + +
+
Y : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
Indices (optional) : I
+
Indices tensor from max pooling across the input tensor. The dimensions of indices are the same as output tensor. The values in indices of are the indices of the selected values during pooling. The indices are computed as flatten 1-D tensor, and the indices do not consider padding. So the values in indices are in [0, N x C x D1 x ... x Dn).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
I : tensor(int64)
+
Constrain index tensor to int64
+
+ +### **Mean-8** + + Element-wise mean of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 8 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for mean.
+
+ +#### Outputs + +
+
mean : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Min-8** + + Element-wise min of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 8 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for min.
+
+ +#### Outputs + +
+
min : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Scan-8** + + Scan can be used to iterate over one or more scan_input tensors, + constructing zero or more scan_output tensors. It combines ideas from general recurrences, + functional programming constructs such as scan, fold, map, and zip, and is intended to enable + generalizations of RNN-like constructs for sequence-to-sequence processing. + Other tensors (referred to as state_variables here) can be used to carry a state + when iterating from one element to another (similar to hidden-state in RNNs, also referred + to as loop-carried dependences in the context of loops). All these tensors are required to + have the same shape in each iteration of the loop (a restriction imposed to enable efficient + memory allocation). Many common usages involve a single scan_input tensor (where functionality + similar to scan, fold and map can be obtained). When more than one scan_input is used, + a behavior similar to zip is obtained. + + The attribute body must be a graph, specifying the computation to be performed in + every iteration. It takes as input the current values of the state_variables and + the current iterated element of the scan_inputs. It must return the (updated) values + of the state_variables and zero or more scan_output_element tensors. The values of the + scan_output_element tensors are concatenated over all the iterations to produce the + scan_output values of the scan construct (similar to the concatenated intermediate + hidden-state values of RNN-like constructs). + + The scan operation returns the final values of the state_variables as well as the + scan_outputs. + + The operation supports batching, and the batch-axis is required to be 0. + When multiple scan_input tensors are used, they must all have the same batch-size, + and they must all have the same maximum-sequence-length (the dimensionality of the + sequence axis or scan axis). The sequence axis or scan axis is required to be 1. + + The operation has an optional sequence_lens input (of shape [BATCH_SIZE]) to + allow variable length sequences of length <= the maximum-sequence-length. If this + input is not specified, all sequences are assumed to be of length equal to + maximum-sequence-length. For variable length input sequences, the scan_outputs + will consist of a sequence of same length as the input, padded to the + maximum-sequence-length. + + The optional attribute directions can be used to scan a sequence in the reverse direction. + If this attribute is omitted, all sequences are scanned in the forward direction. + A bidirectional scan be performed by specifying the same tensor input twice in the + scan_inputs, once with a forward direction, and once with a backward direction. + + Note that because of the ONNX restriction that only the last parameter of an operator can + be variadic, the initial-states and scan-inputs are listed together as one input parameter. + Similarly, the final-states and scan-outputs are listed together as one output parameter. + The attribute num_scan_inputs indicates the number M of scan-inputs. + + The behavior of + + Scan < + num_scan_inputs = m, + body = loop-body + > (sequence_lengths, init_1, ..., init_n, scan_1, ..., scan_m) + + is equivalent to the following pseudo-code: + + // T.shape[0] denotes the batch-size of T + // The batch-size of scan_1, ..., scan_m are all required to be equal + batch_size = scan_1.shape[0]; + + // scan_i.shape[1] denotes the (max) sequence-length of scan_i + // scan_i.shape[1] is required to be equal to scan_j.shape[1] for all i,j. + max_sequence_length = scan_1.shape[1]; + + for (int batch = 0; batch < batch_size; ++batch) { + // initialize state-variables + st_1 = init_1; ... st_n = init_n; + // initialize scan-output variables: [] denotes an empty tensor + scan_out_1 = []; ...; scan_out_k = []; + // identify number of iterations: + N = (sequence_lengths specified) ? sequence_lengths[batch] : max_sequence_length; + + // execute loop + for (int t = 0; t < N; ++t) { + // generate the scan-input elements: the notation T[t] indicates the sub-tensor + // of rank one less than T obtained by indexing T at position t along axis k. + si_1 = (scan_1[batch])[t]; + ... ; + si_m = (scan_m[batch])[t]; + // execute loop-body + st_1, ..., st_n, so_1, ..., so_k = loop-body(st_1, ..., st_n, si_1, ..., si_m) + // accumulate the scan-output elements + scan_out_1 = Concat(scan_out_1, so_1); ... ; scan_out_k = Concat(scan_out_k, so_k); + } + // accumulate the outputs for this batch: + bst_1[batch] = st_1; ..., bst_n[batch] = st_n; + // Note scan-outputs will have size max_sequence_length, but only first N values will be meaningful. + // The remaining values have an undefined value. + b_scan_out_1[batch] = scan_out_1; ...; b_scan_out_k[batch] = scan_out_k; + } + return bst_1, ..., bst_n, b_scan_out_1, ..., b_scan_out_k; + + + + *Sample usage: Encoding RNN using a Scan* + + The following example shows how a simple RNN over an input tensor %X, with weight tensor %Wi, + recurrence weight tensor %Ri, bias tensors %Wbi and %Rbi, and initial hidden-state %H_0 can + be encoded as a ScanLoop. Note that the loop-body is a nested graph, and it directly computes + %Wi, %Ri, %Wbi, and %Rbi (typically constants or initializers in the body graph). If these + values are computed in the outer graph, they need to be passed in as extra state_variables. + + graph rnn-encoding { + %H_0 = ... + %X = ... + %Y_h, %Y = Scan[body = , num_scan_inputs=1]("", %H_0, %X) + return %Y, %Y_h + } + + graph rnn-cell-1 ( + %H_tminus1[FLOAT, tensor] + %X_t[FLOAT, tensor] + ) { + %Wi = ... + %Ri = ... + %Wbi = ... + %Rbi = ... + %t1 = X_t * (Wi^T) + %t2 = H_tminus1*(Ri^T) + %t3 = Add(%t1, %t2) + %t4 = Add(%t3, %Wbi) + %t5 = Add(%t4, %Rbi) + %Ht = Tanh(%t5) + %Accumulate = Identity(%Ht) + return %Ht, %Accumulate + } + + +#### Version + +This version of the operator has been available since version 8 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has N+M inputs: (loop state variables..., scan_input_elts...). It has N+K outputs: (loop state variables..., scan_output_elts...). Each scan_output is created by concatenating the value of the specified scan_output_elt value at the end of each iteration of the loop. It is an error if the dimensions of these values change across loop iterations.
+
directions : list of ints
+
An optional list of M flags. The i-th element of the list specifies the direction to be scanned for the i-th scan_input tensor: 0 indicates forward direction and 1 indicates reverse direction. If omitted, all scan_input tensors will be scanned in the forward direction.
+
num_scan_inputs : int (required)
+
An attribute specifying the number of scan_inputs M.
+
+ +#### Inputs (2 - ∞) + +
+
sequence_lens (optional) : I
+
Optional tensor specifying lengths of the sequences in a batch. If this input is not specified, all sequences are assumed to be of the maximum sequence length (the dimension of the sequence axis of the scan_input tensors).
+
initial_state_and_scan_inputs (variadic, heterogeneous) : V
+
Initial values of the loop's N state variables followed by M scan_inputs
+
+ +#### Outputs (1 - ∞) + +
+
final_state_and_scan_outputs (variadic, heterogeneous) : V
+
Final values of the loop's N state variables followed by K scan_outputs
+
+ +#### Type Constraints + +
+
I : tensor(int64)
+
Int64 tensor
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
All Tensor types
+
+ +### **Sum-8** + + Element-wise sum of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 8 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for sum.
+
+ +#### Outputs + +
+
sum : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +## Version 9 of the default ONNX operator set +### **Acosh-9** + + Calculates the hyperbolic arccosine of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic arccosine values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Asinh-9** + + Calculates the hyperbolic arcsine of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic arcsine values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Atanh-9** + + Calculates the hyperbolic arctangent of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic arctangent values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **BatchNormalization-9** + + Carries out batch normalization as described in the paper + https://arxiv.org/abs/1502.03167. Depending on the mode it is being run, + there are multiple cases for the number of outputs, which we list below: + + Output case #1: Y, mean, var, saved_mean, saved_var (training mode) + Output case #2: Y (test mode) + + For previous (depreciated) non-spatial cases, implementors are suggested + to flatten the input shape to (N x C*D1*D2 ..*Dn) before a BatchNormalization Op. + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero.
+
momentum : float (default is 0.9)
+
Factor used in computing the running mean and variance.e.g., running_mean = running_mean * momentum + mean * (1 - momentum).
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size, C is the number of channels. Statistics are computed for every channel of C over N and D1 to Dn dimensions. For image data, input dimensions become (N x C x H x W). The op also accepts single dimension input of size N in which case C is assumed to be 1
+
scale (differentiable) : T
+
Scale tensor of shape (C).
+
B (differentiable) : T
+
Bias tensor of shape (C).
+
mean (differentiable) : T
+
running (training) or estimated (testing) mean tensor of shape (C).
+
var (differentiable) : T
+
running (training) or estimated (testing) variance tensor of shape (C).
+
+ +#### Outputs (1 - 5) + +
+
Y (differentiable) : T
+
The output tensor of the same shape as X
+
mean (optional, non-differentiable) : T
+
The running mean after the BatchNormalization operator.
+
var (optional, non-differentiable) : T
+
The running variance after the BatchNormalization operator.
+
saved_mean (optional, non-differentiable) : T
+
Saved mean used during training to speed up gradient computation.
+
saved_var (optional, non-differentiable) : T
+
Saved variance used during training to speed up gradient computation.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Cast-9** + + The operator casts the elements of a given input tensor to a data type + specified by the 'to' argument and returns an output tensor of the same size in + the converted type. The 'to' argument must be one of the data types specified + in the 'DataType' enum field in the TensorProto message. + + Casting from string tensor in plain (e.g., "3.14" and "1000") and scientific numeric representations + (e.g., "1e-5" and "1E8") to float types is supported. For example, converting string "100.5" to an integer may + result 100. There are some string literals reserved for special floating-point values; + "+INF" (and "INF"), "-INF", and "NaN" are positive infinity, negative infinity, and not-a-number, respectively. + Any string which can exactly match "+INF" in a case-insensitive way would be mapped to positive infinite. Similarly, + this case-insensitive rule is applied to "INF" and "NaN". When casting from numeric tensors + to string tensors, plain floating-point representation (such as "314.15926") would be used. + Converting non-numerical-literal string such as "Hello World!" is an undefined behavior. Cases + of converting string representing floating-point arithmetic value, such as "2.718", to INT is an undefined behavior. + + Conversion from a numerical type to any numerical type is always allowed. + User must be aware of precision loss and value change caused by range difference between two types. + For example, a 64-bit float 3.1415926459 may be round to a 32-bit float 3.141592. Similarly, converting + an integer 36 to Boolean may produce 1 because we truncate bits which can't be stored in the targeted type. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
to : int (required)
+
The data type to which the elements of the input tensor are cast. Strictly must be one of the types from DataType enum in TensorProto
+
+ +#### Inputs + +
+
input : T1
+
Input tensor to be cast.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor with the same shape as input with type specified by the 'to' argument
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string)
+
Constrain input types. Casting from complex is not supported.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string)
+
Constrain output types. Casting to complex is not supported.
+
+ +### **Compress-9** + + Selects slices from an input tensor along a given axis where condition evaluates to True for each axis index. + In case axis is not provided, input is flattened before elements are selected. + Compress behaves like numpy.compress: https://docs.scipy.org/doc/numpy/reference/generated/numpy.compress.html + + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
(Optional) Axis along which to take slices. If not specified, input is flattened before elements being selected.
+
+ +#### Inputs + +
+
input : T
+
Tensor of rank r >= 1.
+
condition : T1
+
Rank 1 tensor of booleans to indicate which slices or data elements to be selected. Its length can be less than the input length alone the axis or the flattened input size if axis is not specified. In such cases data slices or elements exceeding the condition length are discarded.
+
+ +#### Outputs + +
+
output : T
+
Tensor of rank r if axis is specified. Otherwise output is a Tensor of rank 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
T1 : tensor(bool)
+
Constrain to boolean tensors.
+
+ +### **Constant-9** + + A constant tensor. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
value : tensor (required)
+
The value for the elements of the output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor containing the same value of the provided tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **ConstantOfShape-9** + + Generate a tensor with given value and shape. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
value : tensor
+
(Optional) The value of the output elements.Should be a one-element tensor. If not specified, it defaults to a tensor of value 0 and datatype float32
+
+ +#### Inputs + +
+
input : T1
+
1D tensor. The shape of the expected output tensor. If empty tensor is given, the output would be a scalar. All values must be >= 0.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor of shape specified by 'input'.If attribute 'value' is specified, the value and datatype of the output tensor is taken from 'value'.If attribute 'value' is not specified, the value in the output defaults to 0, and the datatype defaults to float32.
+
+ +#### Type Constraints + +
+
T1 : tensor(int64)
+
Constrain input types.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain output types to be numerics.
+
+ +### **Cosh-9** + + Calculates the hyperbolic cosine of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic cosine values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Erf-9** + + Computes the error function of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input : T
+
Input tensor
+
+ +#### Outputs + +
+
output : T
+
The error function of the input tensor computed element-wise. It has the same shape and type of the input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **EyeLike-9** + + Generate a 2D tensor (matrix) with ones on the diagonal and zeros everywhere else. Only 2D + tensors are supported, i.e. input T1 must be of rank 2. The shape of the output tensor is the + same as the input tensor. The data type can be specified by the 'dtype' argument. If + 'dtype' is not specified, then the type of input tensor is used. By default, the main diagonal + is populated with ones, but attribute 'k' can be used to populate upper or lower diagonals. + The 'dtype' argument must be one of the data types specified in the 'DataType' enum field in the + TensorProto message and be valid as an output type. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
(Optional) The data type for the elements of the output tensor. If not specified,the data type of the input tensor T1 is used. If input tensor T1 is also notspecified, then type defaults to 'float'.
+
k : int (default is 0)
+
(Optional) Index of the diagonal to be populated with ones. Default is 0. If T2 is the output, this op sets T2[i, i+k] = 1. k = 0 populates the main diagonal, k > 0 populates an upper diagonal, and k < 0 populates a lower diagonal.
+
+ +#### Inputs + +
+
input : T1
+
2D input tensor to copy shape, and optionally, type information from.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor, same shape as input tensor T1.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain input types. Strings and complex are not supported.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain output types. Strings and complex are not supported.
+
+ +### **Flatten-9** + + Flattens the input tensor into a 2D matrix. If input tensor has shape + (d_0, d_1, ... d_n) then the output will have shape + (d_0 X d_1 ... d_(axis-1), d_axis X d_(axis+1) ... X dn). + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Indicate up to which input dimensions (exclusive) should be flattened to the outer dimension of the output. The value for axis must be in the range [0, R], where R is the rank of the input tensor. When axis = 0, the shape of the output tensor is (1, (d_0 X d_1 ... d_n), where the shape of the input tensor is (d_0, d_1, ... d_n).
+
+ +#### Inputs + +
+
input : T
+
A tensor of rank >= axis.
+
+ +#### Outputs + +
+
output : T
+
A 2D tensor with the contents of the input tensor, with input dimensions up to axis flattened to the outer dimension of the output and remaining input dimensions flattened into the inner dimension of the output.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output to all tensor types.
+
+ +### **Gemm-9** + + General Matrix multiplication: + https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 + + A' = transpose(A) if transA else A + + B' = transpose(B) if transB else B + + Compute Y = alpha * A' * B' + beta * C, where input tensor A has shape (M, K) or (K, M), + input tensor B has shape (K, N) or (N, K), input tensor C is broadcastable to shape (M, N), + and output tensor Y has shape (M, N). A will be transposed before doing the + computation if attribute transA is non-zero, same for B and transB. + This operator supports **unidirectional broadcasting** (tensor C should be unidirectional broadcastable to tensor A * B); for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Scalar multiplier for the product of input tensors A * B.
+
beta : float (default is 1.0)
+
Scalar multiplier for input tensor C.
+
transA : int (default is 0)
+
Whether A should be transposed
+
transB : int (default is 0)
+
Whether B should be transposed
+
+ +#### Inputs + +
+
A : T
+
Input tensor A. The shape of A should be (M, K) if transA is 0, or (K, M) if transA is non-zero.
+
B : T
+
Input tensor B. The shape of B should be (K, N) if transB is 0, or (N, K) if transB is non-zero.
+
C : T
+
Input tensor C. The shape of C should be unidirectional broadcastable to (M, N).
+
+ +#### Outputs + +
+
Y : T
+
Output tensor of shape (M, N).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64)
+
Constrain input and output types to float/int tensors.
+
+ +### **Greater-9** + + Returns the tensor resulted from performing the `greater` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First input operand for the logical operator.
+
B : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **IsNaN-9** + + Returns which elements of the input are NaN. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
X : T1
+
input
+
+ +#### Outputs + +
+
Y : T2
+
output
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
T2 : tensor(bool)
+
Constrain output types to boolean tensors.
+
+ +### **Less-9** + + Returns the tensor resulted from performing the `less` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First input operand for the logical operator.
+
B : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **MatMul-9** + + Matrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
N-dimensional matrix A
+
B : T
+
N-dimensional matrix B
+
+ +#### Outputs + +
+
Y : T
+
Matrix multiply results from A * B
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64)
+
Constrain input and output types to float/int tensors.
+
+ +### **MaxUnpool-9** + + MaxUnpool essentially computes the partial inverse of the MaxPool op. + The input information to this op is typically the the output information from a MaxPool op. The first + input tensor X is the tensor that needs to be unpooled, which is typically the pooled tensor (first output) + from MaxPool. The second input tensor, I, contains the indices to the (locally maximal) elements corrsponding + to the elements in the first input tensor X. Input tensor I is typically the second output of the MaxPool op. + The third (optional) input is a tensor that specifies the output size of the unpooling operation. + + MaxUnpool is intended to do 'partial' inverse of the MaxPool op. 'Partial' because all the non-maximal + values from the original input to MaxPool are set to zero in the output of the MaxUnpool op. Pooling + the result of an unpooling operation should give back the original input to the unpooling op. + + MaxUnpool can produce the same output size for several input sizes, which makes unpooling op ambiguous. + The third input argument, output_size, is meant to disambiguate the op and produce output tensor of + known/predictable size. + + In addition to the inputs, MaxUnpool takes three attributes, namely kernel_shape, strides, and pads, + which define the exact unpooling op. The attributes typically have the same values as the corrsponding + pooling op that the unpooling op is trying to invert. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs (2 - 3) + +
+
X : T1
+
Input data tensor that has to be unpooled. This tensor is typically the first output of the MaxPool op.Dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non-image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
I : T2
+
Input data tensor containing the indices corresponding to elements in the first input tensor X.This tensor is typically the second output of the MaxPool op.Dimensions must be the same as input tensor X. The indices are linear, i.e. computed considering the tensor as flattened 1-D tensor, assuming row-major storage. Also, the linear indices should not consider padding. So the values in indices are in the range [0, N x C x D1 x ... x Dn).
+
output_shape (optional) : T2
+
The shape of the output can be explicitly set which will cause pads values to be auto generated. If 'output_shape' is specified, 'pads' values are ignored.
+
+ +#### Outputs + +
+
output : T1
+
Output data tensor that contains the result of the unpooling.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T2 : tensor(int64)
+
Constrain index tensor to int64
+
+ +### **MeanVarianceNormalization-9** + + A MeanVarianceNormalization Function: Perform mean variance normalization + on the input tensor X using formula:
``` (X-EX)/sqrt(E(X-EX)^2) ``` + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints (default is ['0', '2', '3'])
+
A list of integers, along which to reduce. The default is to caculate along axes [0,2,3] for calculating mean and variance along each channel. Two variables with the same C-coordinate are associated with the same mean and variance.
+
+ +#### Inputs + +
+
X : T
+
Input tensor
+
+ +#### Outputs + +
+
Y : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **NonZero-9** + + Returns the indices of the elements that are non-zero + (in row-major order - by dimension). + NonZero behaves similar to numpy.nonzero: + https://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
input
+
+ +#### Outputs + +
+
Y : tensor(int64)
+
output
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to all tensor types.
+
+ +### **OneHot-9** + + Produces a one-hot tensor based on inputs. + The locations represented by the index values in the 'indices' input tensor will have 'on_value' + and the other locations will have 'off_value' in the output tensor, where 'on_value' and 'off_value' + are specified as part of required input argument 'values', which is a two-element tensor of format + [off_value, on_value]. The rank of the output tensor will be one greater than the rank of the + input tensor. The additional dimension is for one-hot representation. The additional dimension will + be inserted at the position specified by 'axis'. If 'axis' is not specified then then additional + dimension will be inserted as the innermost dimension, i.e. axis=-1. The size of the additional + dimension is specified by required scalar input 'depth'. The type of the output tensor is the same + as the type of the 'values' input. Any entries in the 'indices' input tensor with values outside + the range [0, depth) will result in one-hot representation with all 'off_value' values in the + output tensor. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
(Optional) Axis along which one-hot representation in added. Default: axis=-1. axis=-1 means that the additional dimension will be inserted as the innermost/last dimension in the output tensor.
+
+ +#### Inputs + +
+
indices : T1
+
Input tensor containing indices. The values must be non-negative integers. Any entries in the 'indices' input tensor with values outside the range [0, depth) will result in one-hot representation with all 'off_value' values in the output tensor.In case 'indices' is of non-integer type, the values will be casted to int64 before use.
+
depth : T2
+
Scalar specifying the number of classes in one-hot tensor. This is also the size of the one-hot dimension (specified by 'axis' attribute) added on in the output tensor. The values in the 'indices' input tensor are expected to be in the range [0, depth). In case 'depth' is of non-integer type, it will be casted to int64 before use.
+
values : T3
+
Rank 1 tensor containing exactly two elements, in the format [off_value, on_value], where 'on_value' is the value used for filling locations specified in 'indices' input tensor, and 'off_value' is the value used for filling locations other than those specified in 'indices' input tensor.
+
+ +#### Outputs + +
+
output : T3
+
Tensor of rank one greater than input tensor 'indices', i.e. rank(output) = rank(indices) + 1. The data type for the elements of the output tensor is the same as the type of input 'values' is used.
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input to only numeric types.
+
T2 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input to only numeric types.
+
T3 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type.
+
+ +### **PRelu-9** + + PRelu takes input data (Tensor) and slope tensor as input, and produces one + output data (Tensor) where the function `f(x) = slope * x for x < 0`, + `f(x) = x for x >= 0`., is applied to the data tensor elementwise. + This operator supports **unidirectional broadcasting** (tensor slope should be unidirectional broadcastable to input tensor X); for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
slope (differentiable) : T
+
Slope tensor. The shape of slope can be smaller then first input X; if so, its shape must be unidirectional broadcastable to X
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor (same size as X)
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64)
+
Constrain input and output types to float/int tensors.
+
+ +### **Scan-9** + + Scan can be used to iterate over one or more scan_input tensors, + constructing zero or more scan_output tensors. It combines ideas from general recurrences, + functional programming constructs such as scan, fold, map, and zip, and is intended to enable + generalizations of RNN-like constructs for sequence-to-sequence processing. + Other tensors (referred to as state_variables here) can be used to carry a state + when iterating from one element to another (similar to hidden-state in RNNs, also referred + to as loop-carried dependences in the context of loops). + Many common usages involve a single scan_input tensor (where functionality + similar to scan, fold and map can be obtained). When more than one scan_input is used, + a behavior similar to zip is obtained. + + The attribute body must be a graph, specifying the computation to be performed in + every iteration. It takes as input the current values of the state_variables and + the current iterated element of the scan_inputs. It must return the (updated) values + of the state_variables and zero or more scan_output_element tensors. The values of the + scan_output_element tensors are concatenated over all the iterations to produce the + scan_output values of the scan construct (similar to the concatenated intermediate + hidden-state values of RNN-like constructs). All the output tensors (state_variables as + well as scan_output_element tensors) are required to have the same shape in each iteration + of the loop (a restriction imposed to enable efficient memory allocation). + + Note that the iterated element passed to the body subgraph does not have a sequence + axis. It will have a rank one less than the rank of the corresponding scan_input. + + The scan operation returns the final values of the state_variables as well as the + scan_outputs. + + The optional attribute scan_input_directions specifies the direction (forward or backward) + for each scan input. If this attribute is omitted, all sequences are scanned in the forward + direction. A bidirectional scan may be performed by specifying the same tensor input twice + in the scan_inputs, once with a forward direction, and once with a backward direction. + + The scan_output of the operation is produced by concatenating the scan_output_element + values produced by the body in each iteration. The optional attribute scan_output_directions + specifies the direction in which scan_output is constructed (by appending or prepending the + scan_output_element to scan_output in each iteration) for each scan_output. If this attribute + is omitted, the scan_output_element is appended to the scan_output in each iteration. + + The optional attribute scan_input_axes specifies the axis to be scanned for each scan_input. + If omitted, every scan_input will be scanned in axis 0. For example, if axis 0 is the + batch axis and axis 1 is the time axis (to be scanned), specify an axis value of 1. + Note that scanning a non-zero axis may be less efficient than scanning axis zero. + + The optional attribute scan_output_axes specifies the axis along which the scan_outputs + are accumulated for each scan_output. For example, if axis 1 is the time axis (to be + scanned) for both inputs and outputs, specify a scan_input axis and scan_output axis + value of 1. + + Note that because of the ONNX restriction that only the last parameter of an operator can + be variadic, the initial-states and scan-inputs are listed together as one input parameter. + Similarly, the final-states and scan-outputs are listed together as one output parameter. + The attribute num_scan_inputs indicates the number M of scan-inputs. + + The behavior of + + Scan < + num_scan_inputs = m, + body = loop-body, + scan_input_axes = [axis_1, ..., axis_m] + > (init_1, ..., init_n, scan_1, ..., scan_m) + + is equivalent to the following pseudo-code: + + // scan_i.shape[axis_i] denotes the (max) sequence-length of scan_i + // scan_i.shape[axis_i] is required to be equal to scan_j.shape[axis_j] for all i,j. + sequence_length = scan_1.shape[axis_1]; + + // initialize state-variables + st_1 = init_1; ... st_n = init_n; + // initialize scan-output variables: [] denotes an empty tensor + scan_out_1 = []; ...; scan_out_k = []; + // identify number of iterations: + + // execute loop + for (int t = 0; t < sequence_length; ++t) { + // generate the scan-input elements: the notation T[t] indicates the sub-tensor + // of rank one less than T obtained by indexing T at position t along axis k. + si_1 = scan_1[t]; + ... ; + si_m = scan_m[t]; + // execute loop-body + st_1, ..., st_n, so_1, ..., so_k = loop-body(st_1, ..., st_n, si_1, ..., si_m) + // accumulate the scan-output elements + scan_out_1 = Concat(scan_out_1, so_1); ... ; scan_out_k = Concat(scan_out_k, so_k); + } + + return st_1, ..., st_n, scan_out_1, ..., scan_out_k; + + *Sample usage: Encoding RNN using a Scan* + + The following example shows how a simple RNN over an input tensor %X, with weight tensor %Wi, + recurrence weight tensor %Ri, bias tensors %Wbi and %Rbi, and initial hidden-state %H_0 can + be encoded as a ScanLoop. Note that the loop-body is a nested graph, and it directly computes + %Wi, %Ri, %Wbi, and %Rbi (typically constants or initializers in the body graph). If these + values are computed in the outer graph, they need to be passed in as extra state_variables. + + graph rnn-encoding { + %H_0 = ... + %X = ... + %Y_h, %Y = Scan[body = , num_scan_inputs=1](%H_0, %X) + return %Y, %Y_h + } + + graph rnn-cell-1 ( + %H_tminus1[FLOAT, tensor] + %X_t[FLOAT, tensor] + ) { + %Wi = ... + %Ri = ... + %Wbi = ... + %Rbi = ... + %t1 = X_t * (Wi^T) + %t2 = H_tminus1*(Ri^T) + %t3 = Add(%t1, %t2) + %t4 = Add(%t3, %Wbi) + %t5 = Add(%t4, %Rbi) + %Ht = Tanh(%t5) + %Accumulate = Identity(%Ht) + return %Ht, %Accumulate + } + + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has N+M inputs: (loop state variables..., scan_input_elts...). It has N+K outputs: (loop state variables..., scan_output_elts...). Each scan_output is created by concatenating the value of the specified scan_output_elt value at the end of each iteration of the loop. It is an error if the dimensions of these values change across loop iterations.
+
num_scan_inputs : int (required)
+
An attribute specifying the number of scan_inputs M.
+
scan_input_axes : list of ints
+
An optional list of M flags. The i-th element of the list specifies the axis to be scanned (the sequence axis) for the i-th scan_input. If omitted, 0 will be used as the scan axis for every scan_input.
+
scan_input_directions : list of ints
+
An optional list of M flags. The i-th element of the list specifies the direction to be scanned for the i-th scan_input tensor: 0 indicates forward direction and 1 indicates reverse direction. If omitted, all scan_input tensors will be scanned in the forward direction.
+
scan_output_axes : list of ints
+
An optional list of K flags. The i-th element of the list specifies the axis for the i-th scan_output. The scan outputs are accumulated along the specified axis. If omitted, 0 will be used as the scan axis for every scan_output.
+
scan_output_directions : list of ints
+
An optional list of K flags, one for each scan_output. The i-th element of the list specifies whether the i-th scan_output should be constructed by appending or prepending a new value in each iteration: 0 indicates appending and 1 indicates prepending. If omitted, all scan_output tensors will be produced by appending a value in each iteration.
+
+ +#### Inputs (1 - ∞) + +
+
initial_state_and_scan_inputs (variadic, heterogeneous) : V
+
Initial values of the loop's N state variables followed by M scan_inputs
+
+ +#### Outputs (1 - ∞) + +
+
final_state_and_scan_outputs (variadic, heterogeneous) : V
+
Final values of the loop's N state variables followed by K scan_outputs
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
All Tensor types
+
+ +### **Scatter-9** + + Given `data`, `updates` and `indices` input tensors of rank r >= 1, write the values provided by `updates` + into the first input, `data`, along `axis` dimension of `data` (by default outer-most one as axis=0) at corresponding `indices`. + For each entry in `updates`, the target index in `data` is specified by corresponding entry in `indices` + for dimension = axis, and index in source for dimension != axis. For instance, in a 2-D tensor case, + data[indices[i][j]][j] = updates[i][j] if axis = 0, or data[i][indices[i][j]] = updates[i][j] if axis = 1, + where i and j are loop counters from 0 up to the respective size in `updates` - 1. + Example 1: + data = [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + ] + indices = [ + [1, 0, 2], + [0, 2, 1], + ] + updates = [ + [1.0, 1.1, 1.2], + [2.0, 2.1, 2.2], + ] + output = [ + [2.0, 1.1, 0.0] + [1.0, 0.0, 2.2] + [0.0, 2.1, 1.2] + ] + Example 2: + data = [[1.0, 2.0, 3.0, 4.0, 5.0]] + indices = [[1, 3]] + updates = [[1.1, 2.1]] + axis = 1 + output = [[1.0, 1.1, 3.0, 2.1, 5.0]] + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to scatter on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1]
+
+ +#### Inputs + +
+
data : T
+
Tensor of rank r >= 1.
+
indices : Tind
+
Tensor of int32/int64 indices, of r >= 1 (same rank as input).
+
updates : T
+
Tensor of rank r >=1 (same rank and shape as indices)
+
+ +#### Outputs + +
+
output : T
+
Tensor of rank r >= 1 (same rank as input).
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input and output types can be of any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **Shrink-9** + + Shrink takes one input data (Tensor) and produces one Tensor output, + having same datatype and shape with input. It has two attributes, lambd and + bias. The formula of this operator is: If x < -lambd, y = x + bias; + If x > lambd, y = x - bias; Otherwise, y = 0. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
bias : float (default is 0.0)
+
The bias value added to output. Default is 0.
+
lambd : float (default is 0.5)
+
The lambd value for the Shrink formulation. Default is 0.5.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
The input data as Tensor.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input to only numeric types.
+
+ +### **Sign-9** + + Calculate the sign of the given input tensor element-wise. + If input > 0, output 1. if input < 0, output -1. if input == 0, output 0. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input : T
+
Input tensor
+
+ +#### Outputs + +
+
output : T
+
The sign of the input tensor computed element-wise. It has the same shape and type of the input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Sinh-9** + + Calculates the hyperbolic sine of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic sine values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **TfIdfVectorizer-9** + + This transform extracts n-grams from the input sequence and save them as a vector. Input can + be either a 1-D or 2-D tensor. For 1-D input, output is the n-gram representation of that input. + For 2-D input, the output is also a 2-D tensor whose i-th row is the n-gram representation of the i-th input row. + More specifically, if input shape is [C], the corresponding output shape would be [max(ngram_indexes) + 1]. + If input shape is [N, C], this operator produces a [N, max(ngram_indexes) + 1]-tensor. + + In contrast to standard n-gram extraction, here, the indexes of extracting an n-gram from the original + sequence are not necessarily consecutive numbers. The discontinuity between indexes are controlled by the number of skips. + If the number of skips is 2, we should skip two tokens when scanning through the original sequence. + Let's consider an example. Assume that input sequence is [94, 17, 36, 12, 28] and the number of skips is 2. + The associated 2-grams are [94, 12] and [17, 28] respectively indexed by [0, 3] and [1, 4]. + If the number of skips becomes 0, the 2-grams generated are [94, 17], [17, 36], [36, 12], [12, 28] + indexed by [0, 1], [1, 2], [2, 3], [3, 4], respectively. + + The output vector (denoted by Y) stores the count of each n-gram; + Y[ngram_indexes[i]] indicates the times that the i-th n-gram is found. The attribute ngram_indexes is used to determine the mapping + between index i and the corresponding n-gram's output coordinate. If pool_int64s is [94, 17, 17, 36], ngram_indexes is [1, 0], + ngram_counts=[0, 0], then the Y[0] (first element in Y) and Y[1] (second element in Y) are the counts of [17, 36] and [94, 17], + respectively. An n-gram which cannot be found in pool_strings/pool_int64s should be ignored and has no effect on the output. + Note that we may consider all skips up to S when generating the n-grams. + + The examples used above are true if mode is "TF". If mode is "IDF", all the counts larger than 1 would be truncated to 1 and + the i-th element in weights would be used to scale (by multiplication) the count of the i-th n-gram in pool. If mode is "TFIDF", + this operator first computes the counts of all n-grams and then scale them by the associated values in the weights attribute. + + Only one of pool_strings and pool_int64s can be set. If pool_int64s is set, the input should be an integer tensor. + If pool_strings is set, the input must be a string tensor. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
max_gram_length : int (required)
+
Maximum n-gram length. If this value is 3, 3-grams will be used to generate the output.
+
max_skip_count : int (required)
+
Maximum number of items (integers/strings) to be skipped when constructing an n-gram from X. If max_skip_count=1, min_gram_length=2, max_gram_length=3, this operator may generate 2-grams with skip_count=0 and skip_count=1, and 3-grams with skip_count=0 and skip_count=1
+
min_gram_length : int (required)
+
Minimum n-gram length. If this value is 2 and max_gram_length is 3, output may contain counts of 2-grams and 3-grams.
+
mode : string (required)
+
The weighting criteria. It can be one of "TF" (term frequency), "IDF" (inverse document frequency), and "TFIDF" (the combination of TF and IDF)
+
ngram_counts : list of ints (required)
+
The starting indexes of 1-grams, 2-grams, and so on in pool. It is useful when determining the boundary between two consecutive collections of n-grams. For example, if ngram_counts is [0, 17, 36], the first index (zero-based) of 1-gram/2-gram/3-gram in pool are 0/17/36. This format is essentially identical to CSR (or CSC) sparse matrix format, and we choose to use this due to its popularity.
+
ngram_indexes : list of ints (required)
+
list of int64s (type: AttributeProto::INTS). This list is parallel to the specified 'pool_*' attribute. The i-th element in ngram_indexes indicate the coordinate of the i-th n-gram in the output tensor.
+
pool_int64s : list of ints
+
List of int64 n-grams learned from the training set. Either this or pool_strings attributes must be present but not both. It's an 1-D tensor starting with the collections of all 1-grams and ending with the collections of n-grams. The i-th element in pool stores the n-gram that should be mapped to coordinate ngram_indexes[i] in the output vector.
+
pool_strings : list of strings
+
List of strings n-grams learned from the training set. Either this or pool_int64s attributes must be present but not both. It's an 1-D tensor starting with the collections of all 1-grams and ending with the collections of n-grams. The i-th element in pool stores the n-gram that should be mapped to coordinate ngram_indexes[i] in the output vector.
+
weights : list of floats
+
list of floats. This attribute stores the weight of each n-gram in pool. The i-th element in weights is the weight of the i-th n-gram in pool. Its length equals to the size of ngram_indexes. By default, weights is an all-one tensor.This attribute is used when mode is "IDF" or "TFIDF" to scale the associated word counts.
+
+ +#### Inputs + +
+
X (non-differentiable) : T
+
Input for n-gram extraction
+
+ +#### Outputs + +
+
Y (non-differentiable) : T1
+
Ngram results
+
+ +#### Type Constraints + +
+
T : tensor(string), tensor(int32), tensor(int64)
+
Input is ether string UTF-8 or int32/int64
+
T1 : tensor(float)
+
1-D tensor of floats
+
+ +### **Upsample-9** + + Upsample the input tensor. + Each dimension value of the output tensor is: + output_dimension = floor(input_dimension * scale). + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
mode : string (default is nearest)
+
Two interpolation modes: nearest (default), and linear (including bilinear, trilinear, etc)
+
+ +#### Inputs + +
+
X : T
+
N-D tensor
+
scales : tensor(float)
+
The scale array along each dimension. It takes value greater than or equal to 1. The number of elements of 'scales' should be the same as the rank of input 'X'.
+
+ +#### Outputs + +
+
Y : T
+
N-D tensor after resizing
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input 'X' and output 'Y' to all tensor types.
+
+ +### **Where-9** + + Return elements, either from X or Y, depending on condition. + Where behaves like + [numpy.where](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) + with three parameters. + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
condition (non-differentiable) : B
+
When True (nonzero), yield X, otherwise yield Y
+
X (differentiable) : T
+
values selected at indices where condition is True
+
Y (differentiable) : T
+
values selected at indices where condition is False
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of shape equal to the broadcasted shape of condition, X, and Y.
+
+ +#### Type Constraints + +
+
B : tensor(bool)
+
Constrain to boolean tensors.
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +## Version 10 of the default ONNX operator set +### **AveragePool-10** + + AveragePool consumes an input tensor X and applies average pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + average pooling consisting of computing the average on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + ``` + or + ``` + output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + ``` + if ceil_mode is enabled + + ``` + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i] + ``` + The output of each pooling window is divided by the number of elements (exclude pad when attribute count_include_pad is zero). + + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
ceil_mode : int (default is 0)
+
Whether to use ceil or floor (default) to compute the output shape.
+
count_include_pad : int (default is 0)
+
Whether include pad pixels when calculating values for the edges. Default is 0, doesn't count include pad.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs + +
+
Y : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **ConvInteger-10** + + The integer convolution operator consumes an input tensor, its zero-point, a filter, and its zero-point, + and computes the output. The production MUST never overflow. The accumulation may overflow if and only if in 32 bits. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter. If not present, the dilation defaults to 1 along each axis.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into. default is 1.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input 'w'.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0.The value represent the number of pixels added to the beginning and end part of the corresponding axis.`pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number ofpixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`.This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaultsto 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each axis.
+
+ +#### Inputs (2 - 4) + +
+
x : T1
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn). Optionally, if dimension denotation is in effect, the operation expects input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
w : T2
+
The weight tensor that will be used in the convolutions; has size (M x C/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the kernel shape will be (M x C/group x k1 x k2 x ... x kn), where (k1 x k2 x ... kn) is the dimension of the kernel. Optionally, if dimension denotation is in effect, the operation expects the weight tensor to arrive with the dimension denotation of [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL ...]. X.shape[1] == (W.shape[1] * group) == C (assuming zero based indices for the shape array). Or in other words FILTER_IN_CHANNEL should be equal to DATA_CHANNEL.
+
x_zero_point (optional) : T1
+
Zero point tensor for input 'x'. It's optional and default value is 0. It's a scalar, which means a per-tensor/layer quantization.
+
w_zero_point (optional) : T2
+
Zero point tensor for input 'w'. It's optional and default value is 0. It could be a scalar or a 1-D tensor, which means a per-tensor/layer or per output channel quantization. If it's a 1-D tensor, its number of elements should be equal to the number of output channels (M)
+
+ +#### Outputs + +
+
y : T3
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, and pad lengths.
+
+ +#### Type Constraints + +
+
T1 : tensor(int8), tensor(uint8)
+
Constrain input x and its zero point data type to 8-bit integer tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain input w and its zero point data type to 8-bit integer tensor.
+
T3 : tensor(int32)
+
Constrain output y data type to 32-bit integer tensor.
+
+ +### **DequantizeLinear-10** + + The linear dequantization operator. It consumes a quantized tensor, a scale, a zero point to compute the full precision tensor. + The dequantization formula is y = (x - x_zero_point) * x_scale. 'x_scale' and 'x_zero_point' are both scalars. + 'x_zero_point' and 'x' must have same type. 'x' and 'y' must have same shape. In the case of dequantizing int32, + there's no zero point (zero point is supposed to be 0). + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Inputs (2 - 3) + +
+
x : T
+
N-D quantized input tensor to be de-quantized.
+
x_scale : tensor(float)
+
Scale for input 'x'. It's a scalar, which means a per-tensor/layer quantization.
+
x_zero_point (optional) : T
+
Zero point for input 'x'. It's a scalar, which means a per-tensor/layer quantization. It's optional. 0 is the default value when it's not specified.
+
+ +#### Outputs + +
+
y : tensor(float)
+
N-D full precision output tensor. It has same shape as input 'x'.
+
+ +#### Type Constraints + +
+
T : tensor(int8), tensor(uint8), tensor(int32)
+
Constrain 'x_zero_point' and 'x' to 8-bit/32-bit integer tensor.
+
+ +### **Dropout-10** + + Dropout takes one input floating tensor and produces two tensor outputs, + output (floating tensor) and mask (`Tensor`). Depending on whether it is + in test mode or not, the output Y will either be a random dropout, or a simple + copy of the input. Note that our implementation of Dropout does scaling in + the training phase, so during testing nothing needs to be done. + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
ratio : float (default is 0.5)
+
The ratio of random dropout
+
+ +#### Inputs + +
+
data : T
+
The input data as Tensor.
+
+ +#### Outputs (1 - 2) + +
+
output : T
+
The output.
+
mask (optional) : T1
+
The output mask.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(bool)
+
Constrain output mask types to boolean tensors.
+
+ +### **IsInf-10** + + Map infinity to true and other values to false. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
detect_negative : int (default is 1)
+
(Optional) Whether map negative infinity to true. Default to 1 so that negative infinity induces true. Set this attribute to 0 if negative infinity should be mapped to false.
+
detect_positive : int (default is 1)
+
(Optional) Whether map positive infinity to true. Default to 1 so that positive infinity induces true. Set this attribute to 0 if positive infinity should be mapped to false.
+
+ +#### Inputs + +
+
X (non-differentiable) : T1
+
input
+
+ +#### Outputs + +
+
Y (non-differentiable) : T2
+
output
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
T2 : tensor(bool)
+
Constrain output types to boolean tensors.
+
+ +### **MatMulInteger-10** + + Matrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html. + The production MUST never overflow. The accumulation may overflow if and only if in 32 bits. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Inputs (2 - 4) + +
+
A (non-differentiable) : T1
+
N-dimensional matrix A
+
B (non-differentiable) : T2
+
N-dimensional matrix B
+
a_zero_point (optional, non-differentiable) : T1
+
Zero point tensor for input 'A'. It's optional and default value is 0. It could be a scalar or N-D tensor. Scalar refers to per tensor quantization whereas N-D refers to per row quantization. If the input is 2D of shape [M, K] then zero point tensor may be an M element vector [zp_1, zp_2, ..., zp_M]. If the input is N-D tensor with shape [D1, D2, M, K] then zero point tensor may have shape [D1, D2, M, 1].
+
b_zero_point (optional, non-differentiable) : T2
+
Zero point tensor for input 'B'. It's optional and default value is 0. It could be a scalar or a N-D tensor, Scalar refers to per tensor quantization whereas N-D refers to per col quantization. If the input is 2D of shape [K, N] then zero point tensor may be an N element vector [zp_1, zp_2, ..., zp_N]. If the input is N-D tensor with shape [D1, D2, K, N] then zero point tensor may have shape [D1, D2, 1, N].
+
+ +#### Outputs + +
+
Y (non-differentiable) : T3
+
Matrix multiply results from A * B
+
+ +#### Type Constraints + +
+
T1 : tensor(int8), tensor(uint8)
+
Constrain input A data type to 8-bit integer tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain input B data type to 8-bit integer tensor.
+
T3 : tensor(int32)
+
Constrain output Y data type as 32-bit integer tensor.
+
+ +### **MaxPool-10** + + MaxPool consumes an input tensor X and applies max pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + max pooling consisting of computing the max on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1) + ``` + or + ``` + output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1) + ``` + if ceil_mode is enabled + + ``` + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i] + ``` + The output of each pooling window is maximum number of elements exclude pad. + + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
ceil_mode : int (default is 0)
+
Whether to use ceil or floor (default) to compute the output shape.
+
dilations : list of ints
+
Dilation value along each spatial axis of filter.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
storage_order : int (default is 0)
+
The storage order of the tensor. 0 is row major, and 1 is column major.
+
strides : list of ints
+
Stride along each spatial axis.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs (1 - 2) + +
+
Y : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
Indices (optional) : I
+
Indices tensor from max pooling across the input tensor. The dimensions of indices are the same as output tensor. The values in indices of are the indices of the selected values during pooling. The indices are computed as flatten 1-D tensor, and the indices do not consider padding. So the values in indices are in [0, N x C x D1 x ... x Dn).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
I : tensor(int64)
+
Constrain index tensor to int64
+
+ +### **Mod-10** + + Performs element-wise binary modulus (with Numpy-style broadcasting support). + The sign of the remainder is the same as that of the Divisor. + + Mod operator can also behave like C fmod() or numpy.fmod. In this case, the sign of the remainder however, will be the same as the Dividend + (in contrast to integer mod). To force a behavior like numpy.fmod() an 'fmod' Attribute is provided. + This attribute is set to 0 by default causing the behavior to be like integer mod. + Setting this attribute to 1 causes the remainder to be calculated similar to that of numpy.fmod(). + + If the input type is floating point, then `fmod` attribute must be set to 1. + + In case of dividend being zero, the results will be platform dependent. + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
fmod : int (default is 0)
+
Whether the operator should behave like fmod (default=0 meaning it will do integer mods); Set this to 1 to force fmod treatment
+
+ +#### Inputs + +
+
A : T
+
Dividend tensor
+
B : T
+
Divisor tensor
+
+ +#### Outputs + +
+
C : T
+
Remainder tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **NonMaxSuppression-10** + + Filter out boxes that have high intersection-over-union (IOU) overlap with previously selected boxes. + Bounding boxes with score less than score_threshold are removed. Bounding box format is indicated by attribute center_point_box. + Note that this algorithm is agnostic to where the origin is in the coordinate system and more generally is invariant to + orthogonal transformations and translations of the coordinate system; thus translating or reflections of the coordinate system + result in the same boxes being selected by the algorithm. + The selected_indices output is a set of integers indexing into the input collection of bounding boxes representing the selected boxes. + The bounding box coordinates corresponding to the selected indices can then be obtained using the Gather or GatherND operation. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
center_point_box : int (default is 0)
+
Integer indicate the format of the box data. The default is 0. 0 - the box data is supplied as [y1, x1, y2, x2] where (y1, x1) and (y2, x2) are the coordinates of any diagonal pair of box corners and the coordinates can be provided as normalized (i.e., lying in the interval [0, 1]) or absolute. Mostly used for TF models. 1 - the box data is supplied as [x_center, y_center, width, height]. Mostly used for Pytorch models.
+
+ +#### Inputs (2 - 5) + +
+
boxes : tensor(float)
+
An input tensor with shape [num_batches, spatial_dimension, 4]. The single box data format is indicated by center_point_box.
+
scores : tensor(float)
+
An input tensor with shape [num_batches, num_classes, spatial_dimension]
+
max_output_boxes_per_class (optional) : tensor(int64)
+
Integer representing the maximum number of boxes to be selected per batch per class. It is a scalar. Default to 0, which means no output.
+
iou_threshold (optional) : tensor(float)
+
Float representing the threshold for deciding whether boxes overlap too much with respect to IOU. It is scalar. Value range [0, 1]. Default to 0.
+
score_threshold (optional) : tensor(float)
+
Float representing the threshold for deciding when to remove boxes based on score. It is a scalar.
+
+ +#### Outputs + +
+
selected_indices : tensor(int64)
+
selected indices from the boxes tensor. [num_selected_indices, 3], the selected index format is [batch_index, class_index, box_index].
+
+ +#### Type Constraints + + +### **QLinearConv-10** + + The convolution operator consumes a quantized input tensor, its scale and zero point, + a quantized filter, its scale and zero point, and output's scale and zero point, + and computes the quantized output. Each scale and zero-point pair must have same shape. + It means they must be either scalars (per tensor) or 1-D tensors (per output channel). + Each input or output and its related zero point must have same type. + When bias is present it must be quantized using scale = input scale * weight scale and + zero point as 0. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter. If not present, the dilation defaults to 1 along each spatial axis.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into. default is 1.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input 'w'.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0.The value represent the number of pixels added to the beginning and end part of the corresponding axis.`pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number ofpixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`.This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaultsto 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs (8 - 9) + +
+
x : T1
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn). Optionally, if dimension denotation is in effect, the operation expects input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
x_scale : tensor(float)
+
Scale tensor for input 'x'. It's a scalar, which means a per-tensor/layer quantization.
+
x_zero_point : T1
+
Zero point tensor for input 'x'. It's a scalar, which means a per-tensor/layer quantization.
+
w : T2
+
The weight tensor that will be used in the convolutions; has size (M x C/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the kernel shape will be (M x C/group x k1 x k2 x ... x kn), where (k1 x k2 x ... kn) is the dimension of the kernel. Optionally, if dimension denotation is in effect, the operation expects the weight tensor to arrive with the dimension denotation of [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL ...]. X.shape[1] == (W.shape[1] * group) == C (assuming zero based indices for the shape array). Or in other words FILTER_IN_CHANNEL should be equal to DATA_CHANNEL.
+
w_scale : tensor(float)
+
Scale tensor for input 'w'. It could be a scalar or a 1-D tensor, which means a per-tensor/layer or per output channel quantization. If it's a 1-D tensor, its number of elements should be equal to the number of output channels (M).
+
w_zero_point : T2
+
Zero point tensor for input 'w'. It could be a scalar or a 1-D tensor, which means a per-tensor/layer or per output channel quantization. If it's a 1-D tensor, its number of elements should be equal to the number of output channels (M).
+
y_scale : tensor(float)
+
Scale tensor for output 'y'. It's a scalar, which means a per-tensor/layer quantization.
+
y_zero_point : T3
+
Zero point tensor for output 'y'. It's a scalar, which means a per-tensor/layer quantization.
+
B (optional) : T4
+
Optional 1D bias to be added to the convolution, has size of M. Bias must be quantized using scale = x_scale * w_scale and zero_point = 0
+
+ +#### Outputs + +
+
y : T3
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, and pad lengths.
+
+ +#### Type Constraints + +
+
T1 : tensor(int8), tensor(uint8)
+
Constrain input type to 8-bit integer tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain filter type to 8-bit integer tensor.
+
T3 : tensor(int8), tensor(uint8)
+
Constrain output type to 8-bit integer tensor.
+
T4 : tensor(int32)
+
Constrain bias type to 32-bit integer tensor.
+
+ +### **QLinearMatMul-10** + + Matrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html. + It consumes two quantized input tensors, their scales and zero points, scale and zero point of output, + and computes the quantized output. The quantization formula is y = saturate((x / y_scale) + y_zero_point). + For (x / y_scale), it is rounding to nearest ties to even. Refer to https://en.wikipedia.org/wiki/Rounding for details. + Scale and zero point must have same shape. They must be either scalar (per tensor) or N-D tensor + (per row for 'a' and per column for 'b'). Scalar refers to per tensor quantization whereas N-D refers to per row + or per column quantization. If the input is 2D of shape [M, K] then zero point and scale tensor may be + an M element vector [v_1, v_2, ..., v_M] for per row quantization and K element vector of shape [v_1, v_2, ..., v_K] + for per column quantization. If the input is N-D tensor with shape [D1, D2, M, K] then zero point and scale tensor may + have shape [D1, D2, M, 1] for per row quantization and shape [D1, D2, 1, K] for per column quantization. + Production must never overflow, and accumulation may overflow if and only if in 32 bits. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Inputs + +
+
a (non-differentiable) : T1
+
N-dimensional quantized matrix a
+
a_scale (non-differentiable) : tensor(float)
+
scale of quantized input a
+
a_zero_point (non-differentiable) : T1
+
zero point of quantized input a
+
b (non-differentiable) : T2
+
N-dimensional quantized matrix b
+
b_scale (non-differentiable) : tensor(float)
+
scale of quantized input b
+
b_zero_point (non-differentiable) : T2
+
zero point of quantized input b
+
y_scale (non-differentiable) : tensor(float)
+
scale of quantized output y
+
y_zero_point (non-differentiable) : T3
+
zero point of quantized output y
+
+ +#### Outputs + +
+
y (non-differentiable) : T3
+
Quantized matrix multiply results from a * b
+
+ +#### Type Constraints + +
+
T1 : tensor(int8), tensor(uint8)
+
Constrain input a and its zero point data type to 8-bit integer tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain input b and its zero point data type to 8-bit integer tensor.
+
T3 : tensor(int8), tensor(uint8)
+
Constrain output y and its zero point data type to 8-bit integer tensor.
+
+ +### **QuantizeLinear-10** + + The linear per-tensor/layer quantization operator. It consumes a high precision tensor, a scale, a zero point to compute the low precision / quantized tensor. + The quantization formula is y = saturate ((x / y_scale) + y_zero_point). For saturation, it saturates to [0, 255] if it's uint8, or [-128, 127] if it's int8. + For (x / y_scale), it's rounding to nearest ties to even. Refer to https://en.wikipedia.org/wiki/Rounding for details. 'y_zero_point' and 'y' must have same type. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Inputs (2 - 3) + +
+
x : T1
+
N-D full precision Input tensor to be quantized.
+
y_scale : tensor(float)
+
Scale for doing quantization to get 'y'. It's a scalar, which means a per-tensor/layer quantization.
+
y_zero_point (optional) : T2
+
Zero point for doing quantization to get 'y'. It's a scalar, which means a per-tensor/layer quantization. Default value is uint8 typed 0 if it's not specified.
+
+ +#### Outputs + +
+
y : T2
+
N-D quantized output tensor. It has same shape as input 'x'.
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(int32)
+
Constrain 'x' to float or int32 tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain 'y_zero_point' and 'y' to 8-bit integer tensor.
+
+ +### **Resize-10** + + Resize the input tensor. + Each dimension value of the output tensor is: + output_dimension = floor(input_dimension * scale). + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
mode : string (default is nearest)
+
Two interpolation modes: nearest (default), and linear (including bilinear, trilinear, etc)
+
+ +#### Inputs + +
+
X : T
+
N-D tensor
+
scales : tensor(float)
+
The scale array along each dimension. It takes value greater than 0. If it's less than 1, it's sampling down, otherwise, it's upsampling. The number of elements of 'scales' should be the same as the rank of input 'X'.
+
+ +#### Outputs + +
+
Y : T
+
N-D tensor after resizing
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input 'X' and output 'Y' to all tensor types.
+
+ +### **ReverseSequence-10** + + Reverse batch of sequences having different lengths specified by `sequence_lens`. + + For each slice i iterating on batch axis, the operator reverses the first sequence_lens[i] elements on time axis, + and copies elements whose index's beyond sequence_lens[i] to the output. So the output slice i contains reversed + sequences on the first sequence_lens[i] elements, then have original values copied for the other elements. + + Example 1: + input = [[0.0, 4.0, 8.0, 12.0], + [1.0, 5.0, 9.0, 13.0], + [2.0, 6.0, 10.0, 14.0], + [3.0, 7.0, 11.0, 15.0]] + sequence_lens = [4, 3, 2, 1] + time_axis = 0 + batch_axis = 1 + + output = [[3.0, 6.0, 9.0, 12.0], + [2.0, 5.0, 8.0, 13.0], + [1.0, 4.0, 10.0, 14.0], + [0.0, 7.0, 11.0, 15.0]] + + Example 2: + input = [[0.0, 1.0, 2.0, 3.0 ], + [4.0, 5.0, 6.0, 7.0 ], + [8.0, 9.0, 10.0, 11.0], + [12.0, 13.0, 14.0, 15.0]] + sequence_lens = [1, 2, 3, 4] + time_axis = 1 + batch_axis = 0 + + output = [[0.0, 1.0, 2.0, 3.0 ], + [5.0, 4.0, 6.0, 7.0 ], + [10.0, 9.0, 8.0, 11.0], + [15.0, 14.0, 13.0, 12.0]] + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
batch_axis : int (default is 1)
+
(Optional) Specify which axis is batch axis. Must be one of 1 (default), or 0.
+
time_axis : int (default is 0)
+
(Optional) Specify which axis is time axis. Must be one of 0 (default), or 1.
+
+ +#### Inputs + +
+
input : T
+
Tensor of rank r >= 2.
+
sequence_lens : tensor(int64)
+
Tensor specifying lengths of the sequences in a batch. It has shape `[batch_size]`.
+
+ +#### Outputs + +
+
Y : T
+
Tensor with same shape of input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input and output types can be of any tensor type.
+
+ +### **RoiAlign-10** + + Region of Interest (RoI) align operation described in the + [Mask R-CNN paper](https://arxiv.org/abs/1703.06870). + RoiAlign consumes an input tensor X and region of interests (rois) + to apply pooling across each RoI; it produces a 4-D tensor of shape + (num_rois, C, output_height, output_width). + + RoiAlign is proposed to avoid the misalignment by removing + quantizations while converting from original image into feature + map and from feature map into RoI feature; in each ROI bin, + the value of the sampled locations are computed directly + through bilinear interpolation. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
mode : string (default is avg)
+
The pooling method. Two modes are supported: 'avg' and 'max'. Default is 'avg'.
+
output_height : int (default is 1)
+
default 1; Pooled output Y's height.
+
output_width : int (default is 1)
+
default 1; Pooled output Y's width.
+
sampling_ratio : int (default is 0)
+
Number of sampling points in the interpolation grid used to compute the output value of each pooled output bin. If > 0, then exactly sampling_ratio x sampling_ratio grid points are used. If == 0, then an adaptive number of grid points are used (computed as ceil(roi_width / output_width), and likewise for height). Default is 0.
+
spatial_scale : float (default is 1.0)
+
Multiplicative spatial scale factor to translate ROI coordinates from their input spatial scale to the scale used when pooling, i.e., spatial scale of the input feature map X relative to the input image. E.g.; default is 1.0f.
+
+ +#### Inputs + +
+
X : T1
+
Input data tensor from the previous operator; 4-D feature map of shape (N, C, H, W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data.
+
rois : T1
+
RoIs (Regions of Interest) to pool over; rois is 2-D input of shape (num_rois, 4) given as [[x1, y1, x2, y2], ...]. The RoIs' coordinates are in the coordinate system of the input image. Each coordinate set has a 1:1 correspondence with the 'batch_indices' input.
+
batch_indices : T2
+
1-D tensor of shape (num_rois,) with each element denoting the index of the corresponding image in the batch.
+
+ +#### Outputs + +
+
Y : T1
+
RoI pooled output, 4-D tensor of shape (num_rois, C, output_height, output_width). The r-th batch element Y[r-1] is a pooled feature map corresponding to the r-th RoI X[r-1].
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain types to float tensors.
+
T2 : tensor(int64)
+
Constrain types to int tensors.
+
+ +### **Slice-10** + + Produces a slice of the input tensor along multiple axes. Similar to numpy: + https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html + Slices uses `starts`, `ends`, `axes` and `steps` inputs to specify the start and end + dimension and step for each axis in the list of axes, it uses this information to + slice the input `data` tensor. If a negative value is passed for any of the + start or end indices, it represent number of elements before the end of that + dimension. If the value passed to start or end is larger than the `n` (the + number of elements in this dimension), it represents `n`. For slicing to the + end of a dimension with unknown size, it is recommended to pass in `INT_MAX`. + If a negative value is passed for step, it represents slicing backward. + If `axes` are omitted, they are set to `[0, ..., ndim-1]`. + If `steps` are omitted, they are set to `[1, ..., 1]` of length `len(starts)` + Example 1: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + axes = [0, 1] + starts = [1, 0] + ends = [2, 3] + steps = [1, 2] + result = [ + [5, 7], + ] + Example 2: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + starts = [0, 1] + ends = [-1, 1000] + result = [ + [2, 3, 4], + ] + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Inputs (3 - 5) + +
+
data : T
+
Tensor of data to extract slices from.
+
starts : Tind
+
1-D tensor of starting indices of corresponding axis in `axes`
+
ends : Tind
+
1-D tensor of ending indices (exclusive) of corresponding axis in `axes`
+
axes (optional) : Tind
+
1-D tensor of axes that `starts` and `ends` apply to.
+
steps (optional) : Tind
+
1-D tensor of slice step of corresponding axis in `axes`. Default to 1.
+
+ +#### Outputs + +
+
output : T
+
Sliced data tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **StringNormalizer-10** + + StringNormalization performs string operations for basic cleaning. + This operator has only one input (denoted by X) and only one output + (denoted by Y). This operator first examines the elements in the X, + and removes elements specified in "stopwords" attribute. + After removing stop words, the intermediate result can be further lowercased, + uppercased, or just returned depending the "case_change_action" attribute. + This operator only accepts [C]- and [1, C]-tensor. + If all elements in X are dropped, the output will be the empty value of string tensor with shape [1] + if input shape is [C] and shape [1, 1] if input shape is [1, C]. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
case_change_action : string (default is NONE)
+
string enum that cases output to be lowercased/uppercases/unchanged. Valid values are "LOWER", "UPPER", "NONE". Default is "NONE"
+
is_case_sensitive : int (default is 0)
+
Boolean. Whether the identification of stop words in X is case-sensitive. Default is false
+
locale : string
+
Environment dependent string that denotes the locale according to which output strings needs to be upper/lowercased.Default en_US or platform specific equivalent as decided by the implementation.
+
stopwords : list of strings
+
List of stop words. If not set, no word would be removed from X.
+
+ +#### Inputs + +
+
X : tensor(string)
+
UTF-8 strings to normalize
+
+ +#### Outputs + +
+
Y : tensor(string)
+
UTF-8 Normalized strings
+
+ +#### Type Constraints + + +### **ThresholdedRelu-10** + + ThresholdedRelu takes one input data (Tensor) and produces one output data + (Tensor) where the rectified linear function, y = x for x > alpha, y = 0 otherwise, + is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Threshold value
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **TopK-10** + + Retrieve the top-K elements along a specified axis. Given an input tensor of + shape [a_1, a_2, ..., a_n, r] and integer argument k, return two outputs: + -Value tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] + which contains the values of the top k elements along the specified axis + -Index tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] which + contains the indices of the top k elements (original indices from the input + tensor). + + Given two equivalent values, this operator uses the indices along the axis as + a tiebreaker. That is, the element with the lower index will appear first. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
Dimension on which to do the sort.
+
+ +#### Inputs + +
+
X : T
+
Tensor of shape [a_1, a_2, ..., a_n, r]
+
K : tensor(int64)
+
A 1-D tensor containing a single positive value corresponding to the number of top elements to retrieve
+
+ +#### Outputs + +
+
Values : T
+
Tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] containing top K values from the input tensor
+
Indices : I
+
Tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] containing the corresponding input tensor indices for the top K values.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
I : tensor(int64)
+
Constrain index tensor to int64
+
+ +### **Upsample-10** (deprecated) + + Upsample the input tensor. + Each dimension value of the output tensor is: + output_dimension = floor(input_dimension * scale). + +#### Version + +This version of the operator has been deprecated since version 10 of the default ONNX operator set. + +## Version 11 of the default ONNX operator set +### **ArgMax-11** + + Computes the indices of the max elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equal 0, then the resulting tensor has the reduced dimension pruned. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **ArgMin-11** + + Computes the indices of the min elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equal 0, then the resulting tensor has the reduced dimension pruned. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **AveragePool-11** + + AveragePool consumes an input tensor X and applies average pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + average pooling consisting of computing the average on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + ``` + or + ``` + output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + ``` + if ceil_mode is enabled + + ``` + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i] + ``` + The output of each pooling window is divided by the number of elements (exclude pad when attribute count_include_pad is zero). + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
ceil_mode : int (default is 0)
+
Whether to use ceil or floor (default) to compute the output shape.
+
count_include_pad : int (default is 0)
+
Whether include pad pixels when calculating values for the edges. Default is 0, doesn't count include pad.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **BitShift-11** + + Bitwise shift operator performs element-wise operation. For each input element, if the + attribute "direction" is "RIGHT", this operator moves its binary representation toward + the right side so that the input value is effectively decreased. If the attribute "direction" + is "LEFT", bits of binary representation moves toward the left side, which results the + increase of its actual value. The input X is the tensor to be shifted and another input + Y specifies the amounts of shifting. For example, if "direction" is "Right", X is [1, 4], + and S is [1, 1], the corresponding output Z would be [0, 2]. If "direction" is "LEFT" with + X=[1, 2] and S=[1, 2], the corresponding output Y would be [2, 8]. + + Because this operator supports Numpy-style broadcasting, X's and Y's shapes are + not necessarily identical. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
direction : string (required)
+
Direction of moving bits. It can be either "RIGHT" (for right shift) or "LEFT" (for left shift).
+
+ +#### Inputs + +
+
X (non-differentiable) : T
+
First operand, input to be shifted.
+
Y (non-differentiable) : T
+
Second operand, amounts of shift.
+
+ +#### Outputs + +
+
Z (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64)
+
Constrain input and output types to integer tensors.
+
+ +### **Clip-11** + + Clip operator limits the given input within an interval. The interval is + specified by the inputs 'min' and 'max'. They default to + numeric_limits::lowest() and numeric_limits::max(), respectively. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs (1 - 3) + +
+
input : T
+
Input tensor whose elements to be clipped
+
min (optional) : T
+
Minimum value, under which element is replaced by min. It must be a scalar(tensor of empty shape).
+
max (optional) : T
+
Maximum value, above which element is replaced by max. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
output : T
+
Output tensor with clipped input elements
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Compress-11** + + Selects slices from an input tensor along a given axis where condition evaluates to True for each axis index. + In case axis is not provided, input is flattened before elements are selected. + Compress behaves like numpy.compress: https://docs.scipy.org/doc/numpy/reference/generated/numpy.compress.html + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
(Optional) Axis along which to take slices. If not specified, input is flattened before elements being selected. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Tensor of rank r >= 1.
+
condition (non-differentiable) : T1
+
Rank 1 tensor of booleans to indicate which slices or data elements to be selected. Its length can be less than the input length along the axis or the flattened input size if axis is not specified. In such cases data slices or elements exceeding the condition length are discarded.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank r if axis is specified. Otherwise output is a Tensor of rank 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
T1 : tensor(bool)
+
Constrain to boolean tensors.
+
+ +### **Concat-11** + + Concatenate a list of tensors into a single tensor. All input tensors must have the same shape, except for the dimension size of the axis to concatenate on. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (required)
+
Which axis to concat on. A negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(inputs)..
+
+ +#### Inputs (1 - ∞) + +
+
inputs (variadic) : T
+
List of tensors for concatenation
+
+ +#### Outputs + +
+
concat_result : T
+
Concatenated tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain output types to any tensor type.
+
+ +### **ConcatFromSequence-11** + + Concatenate a sequence of tensors into a single tensor. + All input tensors must have the same shape, except for the dimension size of the axis to concatenate on. + By default 'new_axis' is 0, the behavior is similar to numpy.concatenate. + When 'new_axis' is 1, the behavior is similar to numpy.stack. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (required)
+
Which axis to concat on. Accepted range in `[-r, r - 1]`, where `r` is the rank of input tensors. When `new_axis` is 1, accepted range is `[-r - 1, r]`.
+
new_axis : int (default is 0)
+
Insert and concatenate on a new axis or not, default 0 means do not insert new axis.
+
+ +#### Inputs + +
+
input_sequence : S
+
Sequence of tensors for concatenation
+
+ +#### Outputs + +
+
concat_result : T
+
Concatenated tensor
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain input types to any tensor type.
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain output types to any tensor type.
+
+ +### **Constant-11** + + A constant tensor. Exactly one of the two attributes, either value or sparse_value, + must be specified. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
sparse_value : sparse_tensor
+
The value for the elements of the output tensor in sparse format.
+
value : tensor
+
The value for the elements of the output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor containing the same value of the provided tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Conv-11** + + The convolution operator consumes an input tensor and a filter, and + computes the output. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter. If not present, the dilation defaults is 1 along each spatial axis.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input W.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults is 1 along each spatial axis.
+
+ +#### Inputs (2 - 3) + +
+
X (differentiable) : T
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn). Optionally, if dimension denotation is in effect, the operation expects input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
W (differentiable) : T
+
The weight tensor that will be used in the convolutions; has size (M x C/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the kernel shape will be (M x C/group x k1 x k2 x ... x kn), where (k1 x k2 x ... kn) is the dimension of the kernel. Optionally, if dimension denotation is in effect, the operation expects the weight tensor to arrive with the dimension denotation of [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL ...]. Assuming zero based indices for the shape array, X.shape[1] == (W.shape[1] * group) == C and W.shape[0] mod G == 0. Or in other words FILTER_IN_CHANNEL multiplied by the number of groups should be equal to DATA_CHANNEL and the number of feature maps M should be a multiple of the number of groups G.
+
B (optional, differentiable) : T
+
Optional 1D bias to be added to the convolution, has size of M.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, and pad lengths.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **ConvTranspose-11** + + The convolution transpose operator consumes an input tensor and a filter, + and computes the output. + + If the pads parameter is provided the shape of the output is calculated via the following equation: + + output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i] + + output_shape can also be explicitly specified in which case pads values are auto generated using these equations: + + total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] + If (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) + Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2). + + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = input_shape[i] * strides[i]` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter. If not present, the dilation defaults to 1 along each spatial axis.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input W.
+
output_padding : list of ints
+
Additional elements added to the side with higher coordinate indices in the output. Each padding value in "output_padding" must be less than the corresponding stride/dilation dimension. By default, this attribute is a zero vector. Note that this attribute doesn't directly affect the computed output values. It only controls the selection of the computed values, so changing this attribute only adds or removes output elements. If "output_shape" is explicitly provided, "output_padding" does not contribute additional size to "output_shape" but participates in the computation of the needed padding amount. This is also called adjs or adjustment in some frameworks.
+
output_shape : list of ints
+
The shape of the output can be explicitly set which will cause pads values to be auto generated. If output_shape is specified pads values are ignored. See doc for details for equations to generate pads
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs (2 - 3) + +
+
X (differentiable) : T
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn)
+
W (differentiable) : T
+
The weight tensor that will be used in the convolutions; has size (C x M/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the weight shape will be (C x M/group x k1 x k2 x ... x kn), where (k1 x k2 x ... x kn) is the dimension of the kernel. The number of channels in the output should be equal to W.shape[1] * group (assuming zero based indices of the shape array)
+
B (optional, differentiable) : T
+
Optional 1D bias to be added to the convolution, has size of M.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, pad lengths and group count. The number of channels in the output should be equal to W.shape[1] * group (assuming zero based indices of the shape array)
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **CumSum-11** + + Performs cumulative sum of the input elements along the given axis. + By default, it will do the sum inclusively meaning the first element is copied as is. + Through an `exclusive` attribute, this behavior can change to exclude the first element. + It can also perform summation in the opposite direction of the axis. For that, set `reverse` attribute to 1. + + Example: + ``` + input_x = [1, 2, 3] + axis=0 + output = [1, 3, 6] + exclusive=1 + output = [0, 1, 3] + exclusive=0 + reverse=1 + output = [6, 5, 3] + exclusive=1 + reverse=1 + output = [5, 3, 0] + ``` + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
exclusive : int (default is 0)
+
If set to 1 will return exclusive sum in which the top element is not included. In other terms, if set to 1, the j-th output element would be the sum of the first (j-1) elements. Otherwise, it would be the sum of the first j elements.
+
reverse : int (default is 0)
+
If set to 1 will perform the sums in reverse direction.
+
+ +#### Inputs + +
+
x (differentiable) : T
+
An input tensor that is to be processed.
+
axis (non-differentiable) : T2
+
A 0-D tensor. Must be in the range [-rank(x), rank(x)-1]. Negative value means counting dimensions from the back.
+
+ +#### Outputs + +
+
y (differentiable) : T
+
Output tensor of the same type as 'x' with cumulative sums of the x's elements
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float), tensor(double)
+
Input can be of any tensor type.
+
T2 : tensor(int32), tensor(int64)
+
axis tensor can be int32 or int64 only
+
+ +### **DepthToSpace-11** + + DepthToSpace rearranges (permutes) data from depth into blocks of spatial data. + This is the reverse transformation of SpaceToDepth. More specifically, this op outputs a copy of + the input tensor where values from the depth dimension are moved in spatial blocks to the height + and width dimensions. By default, `mode` = `DCR`. + In the DCR mode, elements along the depth dimension from the input tensor are rearranged in the + following order: depth, column, and then row. The output y is computed from the input x as below: + + b, c, h, w = x.shape + + tmp = np.reshape(x, [b, blocksize, blocksize, c // (blocksize**2), h, w]) + + tmp = np.transpose(tmp, [0, 3, 4, 1, 5, 2]) + + y = np.reshape(tmp, [b, c // (blocksize**2), h * blocksize, w * blocksize]) + + + In the CRD mode, elements along the depth dimension from the input tensor are rearranged in the + following order: column, row, and the depth. The output y is computed from the input x as below: + + b, c, h, w = x.shape + + tmp = np.reshape(x, [b, c // (blocksize ** 2), blocksize, blocksize, h, w]) + + tmp = np.transpose(tmp, [0, 1, 4, 2, 5, 3]) + + y = np.reshape(tmp, [b, c // (blocksize ** 2), h * blocksize, w * blocksize]) + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
blocksize : int (required)
+
Blocks of [blocksize, blocksize] are moved.
+
mode : string (default is DCR)
+
DCR (default) for depth-column-row order re-arrangement. Use CRD for column-row-depth order.
+
+ +#### Inputs + +
+
input : T
+
Input tensor of [N,C,H,W], where N is the batch axis, C is the channel or depth, H is the height and W is the width.
+
+ +#### Outputs + +
+
output : T
+
Output tensor of [N, C/(blocksize * blocksize), H * blocksize, W * blocksize].
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Det-11** + + Det calculates determinant of a square matrix or batches of square matrices. + Det takes one input tensor of shape `[*, M, M]`, where `*` is zero or more batch dimensions, + and the inner-most 2 dimensions form square matrices. + The output is a tensor of shape `[*]`, containing the determinants of all input submatrices. + e.g., When the input is 2-D, the output is a scalar(shape is empty: `[]`). + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to floating-point tensors.
+
+ +### **DynamicQuantizeLinear-11** + + A Function to fuse calculation for Scale, Zero Point and FP32->8Bit convertion of FP32 Input data. + Outputs Scale, ZeroPoint and Quantized Input for a given FP32 Input. + Scale is calculated as: + ``` + y_scale = (max(x) - min(x))/(qmax - qmin) + * where qmax and qmin are max and min values for quantization range .i.e [0, 255] in case of uint8 + * data range is adjusted to include 0. + ``` + Zero point is calculated as: + ``` + intermediate_zero_point = qmin - min(x)/y_scale + y_zero_point = cast(round(saturate(itermediate_zero_point))) + * where qmax and qmin are max and min values for quantization range .i.e [0, 255] in case of uint8 + * for saturation, it saturates to [0, 255] if it's uint8, or [-127, 127] if it's int8. Right now only uint8 is supported. + * rounding to nearest ties to even. + ``` + Data quantization formula is: + ``` + y = saturate (round (x / y_scale) + y_zero_point) + * for saturation, it saturates to [0, 255] if it's uint8, or [-127, 127] if it's int8. Right now only uint8 is supported. + * rounding to nearest ties to even. + ``` + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
x : T1
+
Input tensor
+
+ +#### Outputs + +
+
y : T2
+
Quantized output tensor
+
y_scale : tensor(float)
+
Output scale. It's a scalar, which means a per-tensor/layer quantization.
+
y_zero_point : T2
+
Output zero point. It's a scalar, which means a per-tensor/layer quantization.
+
+ +#### Type Constraints + +
+
T1 : tensor(float)
+
Constrain 'x' to float tensor.
+
T2 : tensor(uint8)
+
Constrain 'y_zero_point' and 'y' to 8-bit unsigned integer tensor.
+
+ +### **Equal-11** + + Returns the tensor resulted from performing the `equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
A : T
+
First input operand for the logical operator.
+
B : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Flatten-11** + + Flattens the input tensor into a 2D matrix. If input tensor has shape + (d_0, d_1, ... d_n) then the output will have shape + (d_0 X d_1 ... d_(axis-1), d_axis X d_(axis+1) ... X dn). + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Indicate up to which input dimensions (exclusive) should be flattened to the outer dimension of the output. The value for axis must be in the range [-r, r], where r is the rank of the input tensor. Negative value means counting dimensions from the back. When axis = 0, the shape of the output tensor is (1, (d_0 X d_1 ... d_n), where the shape of the input tensor is (d_0, d_1, ... d_n).
+
+ +#### Inputs + +
+
input : T
+
A tensor of rank >= axis.
+
+ +#### Outputs + +
+
output : T
+
A 2D tensor with the contents of the input tensor, with input dimensions up to axis flattened to the outer dimension of the output and remaining input dimensions flattened into the inner dimension of the output.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output to all tensor types.
+
+ +### **Gather-11** + + Given `data` tensor of rank r >= 1, and `indices` tensor of rank q, gather + entries of the axis dimension of `data` (by default outer-most one as axis=0) indexed by `indices`, and concatenates + them in an output tensor of rank q + (r - 1). + + axis = 0 : + + Let + k = indices[i_{0}, ..., i_{q-1}] + Then + output[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}] = input[k , j_{0}, ..., j_{r-2}] + + ``` + data = [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + indices = [ + [0, 1], + [1, 2], + ] + output = [ + [ + [1.0, 1.2], + [2.3, 3.4], + ], + [ + [2.3, 3.4], + [4.5, 5.7], + ], + ] + ``` + axis = 1 : + + Let + k = indices[i_{0}, ..., i_{q-1}] + Then + output[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}] = input[j_{0}, k, j_{1}, ..., j_{r-2}] + + ``` + data = [ + [1.0, 1.2, 1.9], + [2.3, 3.4, 3.9], + [4.5, 5.7, 5.9], + ] + indices = [ + [0, 2], + ] + axis = 1, + output = [ + [ + [1.0, 1.9], + [2.3, 3.9], + [4.5, 5.9], + ], + ] + ``` + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to gather on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Inputs + +
+
data : T
+
Tensor of rank r >= 1.
+
indices : Tind
+
Tensor of int32/int64 indices, of any rank q. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output : T
+
Tensor of rank q + (r - 1).
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **GatherElements-11** + + GatherElements takes two inputs `data` and `indices` of the same rank r >= 1 + and an optional attribute `axis` that identifies an axis of `data` + (by default, the outer-most axis, that is axis 0). It is an indexing operation + that produces its output by indexing into the input data tensor at index + positions determined by elements of the `indices` tensor. + Its output shape is the same as the shape of `indices` and consists of one value + (gathered from the `data`) for each element in `indices`. + + For instance, in the 3-D case (r = 3), the output produced is determined + by the following equations: + ``` + out[i][j][k] = input[index[i][j][k]][j][k] if axis = 0, + out[i][j][k] = input[i][index[i][j][k]][k] if axis = 1, + out[i][j][k] = input[i][j][index[i][j][k]] if axis = 2, + ``` + + This operator is also the inverse of ScatterElements. It is similar to Torch's gather operation. + + Example 1: + ``` + data = [ + [1, 2], + [3, 4], + ] + indices = [ + [0, 0], + [1, 0], + ] + axis = 1 + output = [ + [ + [1, 1], + [4, 3], + ], + ] + ``` + Example 2: + ``` + data = [ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], + ] + indices = [ + [1, 2, 0], + [2, 0, 0], + ] + axis = 0 + output = [ + [ + [4, 8, 3], + [7, 2, 3], + ], + ] + ``` + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to gather on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Inputs + +
+
data : T
+
Tensor of rank r >= 1.
+
indices : Tind
+
Tensor of int32/int64 indices, with the same rank r as the input. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output : T
+
Tensor of the same shape as indices.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **GatherND-11** + + Given `data` tensor of rank `r` >= 1, and `indices` tensor of rank `q` >= 1, this operator gathers + slices of `data` into an output tensor of rank `q + r - indices_shape[-1] - 1`. + + `indices` is an q-dimensional integer tensor, best thought of as a `(q-1)`-dimensional tensor of index-tuples into `data`, + where each element defines a slice of `data` + + Some salient points about the inputs' rank and shape: + + 1) r >= 1 and q >= 1 are to be honored. There is no dependency condition to be met between ranks `r` and `q` + + 2) The `indices_shape[-1]` should have a value between 1 (inclusive) and rank `r` (inclusive) + + 3) All values in `indices` are expected to be within bounds [-s, s-1] along axis of size `s` (i.e.) `-data_shape[i] <= indices[...,i] <= data_shape[i] - 1`. + It is an error if any of the index values are out of bounds. + + The output is computed as follows: + + The output tensor is obtained by mapping each index-tuple in the `indices` tensor to the corresponding slice of the input `data`. + + 1) If `indices_shape[-1] > r` => error condition + + 2) If `indices_shape[-1] == r`, since the rank of `indices` is `q`, `indices` can be thought of as a `(q-1)`-dimensional tensor + containing 1-D tensors of dimension `r`. Let us think of each such `r` ranked tensor as `indices_slice`. + Each *scalar value* corresponding to `data[indices_slice]` is filled into the corresponding location of the `(q-1)`-dimensional tensor + to form the `output` tensor (Example 1 below) + + 3) If `indices_shape[-1] < r`, since the rank of `indices` is `q`, `indices` can be thought of as a `(q-1)`-dimensional tensor + containing 1-D tensors of dimension `< r`. Let us think of each such tensors as `indices_slice`. + Each *tensor slice* corresponding to `data[indices_slice , :]` is filled into the corresponding location of the `(q-1)`-dimensional tensor + to form the `output` tensor (Examples 2, 3, and 4 below) + + This operator is the inverse of `ScatterND`. + + `Example 1` + + data = [[0,1],[2,3]] # data_shape = [2, 2] + + indices = [[0,0],[1,1]] # indices_shape = [2, 2] + + output = [0,3] # output_shape = [2] + + `Example 2` + + data = [[0,1],[2,3]] # data_shape = [2, 2] + + indices = [[1],[0]] # indices_shape = [2, 1] + + output = [[2,3],[0,1]] # output_shape = [2, 2] + + `Example 3` + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[0,1],[1,0]] # indices_shape = [2, 2] + + output = [[2,3],[4,5]] # output_shape = [2, 2] + + `Example 4` + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[[0,1]],[[1,0]]] # indices_shape = [2, 1, 2] + + output = [[[2,3]],[[4,5]]] # output_shape = [2, 1, 2] + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
data : T
+
Tensor of rank r >= 1.
+
indices : tensor(int64)
+
Tensor of rank q >= 1. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output : T
+
Tensor of rank q + r - indices_shape[-1] - 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
+ +### **Gemm-11** + + General Matrix multiplication: + https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 + + A' = transpose(A) if transA else A + + B' = transpose(B) if transB else B + + Compute Y = alpha * A' * B' + beta * C, where input tensor A has shape (M, K) or (K, M), + input tensor B has shape (K, N) or (N, K), input tensor C is broadcastable to shape (M, N), + and output tensor Y has shape (M, N). A will be transposed before doing the + computation if attribute transA is non-zero, same for B and transB. + This operator supports **unidirectional broadcasting** (tensor C should be unidirectional broadcastable to tensor A * B); for more details please check [the doc](Broadcasting.md). + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Scalar multiplier for the product of input tensors A * B.
+
beta : float (default is 1.0)
+
Scalar multiplier for input tensor C.
+
transA : int (default is 0)
+
Whether A should be transposed
+
transB : int (default is 0)
+
Whether B should be transposed
+
+ +#### Inputs (2 - 3) + +
+
A : T
+
Input tensor A. The shape of A should be (M, K) if transA is 0, or (K, M) if transA is non-zero.
+
B : T
+
Input tensor B. The shape of B should be (K, N) if transB is 0, or (N, K) if transB is non-zero.
+
C (optional) : T
+
Optional input tensor C. If not specified, the computation is done as if C is a scalar 0. The shape of C should be unidirectional broadcastable to (M, N).
+
+ +#### Outputs + +
+
Y : T
+
Output tensor of shape (M, N).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64)
+
Constrain input and output types to float/int tensors.
+
+ +### **Hardmax-11** + + The operator computes the hardmax (1 for the first maximum value, and 0 for all others) values for each layer in the batch + of the given input. + + The input does not need to explicitly be a 2D vector; rather, it will be + coerced into one. For an arbitrary n-dimensional tensor + input \in [a_0, a_1, ..., a_{k-1}, a_k, ..., a_{n-1}] and k is + the axis provided, then input will be coerced into a 2-dimensional tensor with + dimensions [a_0 * ... * a_{k-1}, a_k * ... * a_{n-1}]. For the default + case where axis=1, this means the input tensor will be coerced into a 2D tensor + of dimensions [a_0, a_1 * ... * a_{n-1}], where a_0 is often the batch size. + In this situation, we must have a_0 = N and a_1 * ... * a_{n-1} = D. + Each of these dimensions must be matched correctly, or else the operator + will throw errors. The output tensor has the same shape + and contains the hardmax values of the corresponding input. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Describes the axis of the inputs when coerced to 2D; defaults to one because the 0th axis most likely describes the batch_size. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
+ +#### Inputs + +
+
input : T
+
The input tensor that's coerced into a 2D matrix of size (NxD) as described above.
+
+ +#### Outputs + +
+
output : T
+
The output values with the same shape as input tensor (the original size without coercion).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **If-11** + + If conditional + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
else_branch : graph (required)
+
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
+
then_branch : graph (required)
+
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
+
+ +#### Inputs + +
+
cond : B
+
Condition for the if
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : V
+
Values that are live-out to the enclosing scope. The return values in the `then_branch` and `else_branch` must be of the same data type. The `then_branch` and `else_branch` may produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the the first output of `then_branch` is typed float tensor with shape [2] and the first output of `else_branch` is another float tensor with shape [3], If's first output should have (a) no shape set, or (b) a shape of rank 1 with neither `dim_value` nor `dim_param` set, or (c) a shape of rank 1 with a unique `dim_param`. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
All Tensor types
+
B : tensor(bool)
+
Only bool
+
+ +### **LogSoftmax-11** + + The operator computes the logsoftmax (log of softmax) values for each layer in the batch + of the given input. + + The input does not need to explicitly be a 2D vector; rather, it will be + coerced into one. For an arbitrary n-dimensional tensor + input \in [a_0, a_1, ..., a_{k-1}, a_k, ..., a_{n-1}] and k is + the axis provided, then input will be coerced into a 2-dimensional tensor with + dimensions [a_0 * ... * a_{k-1}, a_k * ... * a_{n-1}]. For the default + case where axis=1, this means the input tensor will be coerced into a 2D tensor + of dimensions [a_0, a_1 * ... * a_{n-1}], where a_0 is often the batch size. + In this situation, we must have a_0 = N and a_1 * ... * a_{n-1} = D. + Each of these dimensions must be matched correctly, or else the operator + will throw errors. The output tensor has the same shape + and contains the logsoftmax values of the corresponding input. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Describes the axis of the inputs when coerced to 2D; defaults to one because the 0th axis most likely describes the batch_size. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
+ +#### Inputs + +
+
input : T
+
The input tensor that's coerced into a 2D matrix of size (NxD) as described above.
+
+ +#### Outputs + +
+
output : T
+
The output values with the same shape as input tensor (the original size without coercion).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Loop-11** + + Generic Looping construct. This loop has multiple termination conditions: + + 1) Trip count. Iteration count specified at runtime. Set by + specifying the input M. Optional. Set to empty string to omit. + Note that a static trip count (specified at graph construction time) can be + specified by passing in a constant node for input M. + 2) Loop termination condition. This is an input to the op that determines + whether to run the first iteration and also a loop-carried dependency for + the body graph. The body graph must yield a value for the condition variable, + whether this input is provided or not. + + This table summarizes the operating modes of this operator with equivalent + C-style code: + + Operator inputs defined as (max_trip_count, condition_var). + + input ("", ""): + for (int i=0; ; ++i) { + cond = ... // Note this value is ignored, but is required in the body + } + + input ("", cond) // Note this is analogous to a while loop + bool cond = ...; + for (int i=0; cond; ++i) { + cond = ...; + } + + input ("", 1) // Note this is analogous to a do-while loop + bool cond = true + for (int i=0; cond; ++i) { + cond = ...; + } + + input (trip_count, "") // Note this is analogous to a for loop + int trip_count = ... + for (int i=0; i < trip_count; ++i) { + cond = ...; // ignored + } + + input (trip_count, cond) + int trip_count = ...; + bool cond = ...; + for (int i=0; i < trip_count && cond; ++i) { + cond = ...; + } + + + *Sample usage - cond as well as trip count* + + graph predict-net { + %a = Constant[value = ]() + %b = Constant[value = ]() + %keepgoing = Constant[value = ]() + %max_trip_count = Constant[value = ]() + %keepgoing_out, %b_out, %user_defined_vals = Loop[body = ](%max_trip_count, %keepgoing, %b) + return + } + + graph body-net ( + %i[INT32, scalar] // iteration number + %keepgoing_in[BOOL, scalar] // incoming loop-termination-condition; not used + %b_in[INT32, scalar] // incoming value of loop-carried-dependency b + ) { + %my_local = Add(%a, %b_in) + %b_out = Sub(%a, %b_in) // outgoing value of loop-carried-dependency b + %keepgoing_out = Greater(%my_local, %b_out) // outgoing loop-termination-condition + %user_defined_val = Add(%b_in, %b_in) // scan-output value to be accumulated + return %keepgoing_out, %b_out, %user_defined_val + } + + *Sample equivalent C code* + + { + /* User-defined code (enclosing scope) */ + int a = 3, b = 6; + bool keepgoing = true; // Analogous to input cond + /* End user-defined code */ + + /* Implicitly-defined code */ + const int max_trip_count = 10; // Analogous to input M + int user_defined_vals[]; // Imagine this is resizable + /* End implicitly-defined code */ + /* initialize loop-carried variables and scan-output variables */ + bool keepgoing_out = keepgoing + int b_out = b + + for (int i=0; i < max_trip_count && keepgoing_out; ++i) { + /* Implicitly-defined code: bind actual parameter values + to formal parameter variables of loop-body */ + bool keepgoing_in = keepgoing_out; + bool b_in = b_out; + + /* User-defined code (loop body) */ + int my_local = a + b_in; // Reading value "a" from the enclosing scope is fine + b_out = a - b_in; + keepgoing_out = my_local > b_out; + user_defined_val = b_in + b_in; // b_in and b_out are different variables + /* End user-defined code */ + + /* Implicitly defined-code */ + user_defined_vals[i] = user_defined_val // accumulate scan-output values + } + // int t = my_local; // Can't do this. my_local is not accessible here. + + // The values below are bound to the output variables of the loop and therefore accessible + // b_out; user_defined_vals; keepgoing_out; + } + + There are several things of note in this code snippet: + + 1) Values from the enclosing scope (i.e. variable "a" here) are in scope and can + be referenced in the inputs of the loop. + 2) Any values computed in the loop body that needs to be used in a subsequent + iteration or after the loop are modelled using a pair of variables in the loop-body, + consisting of an input variable (eg., b_in) and an output variable (eg., b_out). + These are referred to as loop-carried dependences. The loop operation node + supplies the input value of the input variable for the first iteration, and + returns the output value of the output variable produced by the final + iteration. + 3) Scan_output variables are used to implicitly concatenate values computed across + all the iterations. In the above example, the value of user_defined_val computed + over all iterations are concatenated and returned as the value of user_defined_vals + after the loop. + 4) Values created in the body cannot be accessed in the enclosing scope, + except using the mechanism described above. + + Note that the semantics of this op support "diagonal" or "wavefront" execution. + (See Step 3 here for an example: + https://devblogs.nvidia.com/optimizing-recurrent-neural-networks-cudnn-5/). + Frontends should emit multi-layer RNNs as a series of While operators (with + time being the inner looping dimension), with each successive layer consuming + the scan_outputs from the previous layer, possibly going through several + point-wise operators (e.g. dropout, residual connections, linear layer). + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has 2+N inputs: (iteration_num, condition, loop carried dependencies...). It has 1+N+K outputs: (condition, loop carried dependencies..., scan_outputs...). Each scan_output is created by concatenating the value of the specified output value at the end of each iteration of the loop. It is an error if the dimensions or data type of these scan_outputs change across loop iterations.
+
+ +#### Inputs (2 - ∞) + +
+
M (optional) : I
+
A maximum trip-count for the loop specified at runtime. Optional. Pass empty string to skip.
+
cond (optional) : B
+
A boolean termination condition. Optional. Pass empty string to skip.
+
v_initial (variadic, heterogeneous) : V
+
The initial values of any loop-carried dependencies (values that change across loop iterations)
+
+ +#### Outputs (1 - ∞) + +
+
v_final_and_scan_outputs (variadic, heterogeneous) : V
+
Final N loop carried dependency values then K scan_outputs
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
All Tensor types
+
I : tensor(int64)
+
tensor of int64, which should be a scalar.
+
B : tensor(bool)
+
tensor of bool, which should be a scalar.
+
+ +### **LpPool-11** + + LpPool consumes an input tensor X and applies Lp pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + Lp pooling consisting of computing the Lp norm on all values of a subset + of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
p : int (default is 2)
+
p value of the Lp norm used to pool over the input data.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from Lp pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **MaxPool-11** + + MaxPool consumes an input tensor X and applies max pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + max pooling consisting of computing the max on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1) + ``` + or + ``` + output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1) + ``` + if ceil_mode is enabled + + ``` + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i] + ``` + The output of each pooling window is maximum number of elements exclude pad. + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that the output spatial size match the input.In case of odd number add the extra padding at the end for SAME_UPPER and at the beginning for SAME_LOWER. VALID mean no padding.
+
ceil_mode : int (default is 0)
+
Whether to use ceil or floor (default) to compute the output shape.
+
dilations : list of ints
+
Dilation value along each spatial axis of filter. If not present, the dilation defaults to 1 along each spatial axis.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
storage_order : int (default is 0)
+
The storage order of the tensor. 0 is row major, and 1 is column major.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs + +
+
X : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs (1 - 2) + +
+
Y : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
Indices (optional) : I
+
Indices tensor from max pooling across the input tensor. The dimensions of indices are the same as output tensor. The values in indices of are the indices of the selected values during pooling. The indices are computed as flatten 1-D tensor, and the indices do not consider padding. So the values in indices are in [0, N x C x D1 x ... x Dn).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
I : tensor(int64)
+
Constrain index tensor to int64
+
+ +### **MaxUnpool-11** + + MaxUnpool essentially computes the partial inverse of the MaxPool op. + The input information to this op is typically the the output information from a MaxPool op. The first + input tensor X is the tensor that needs to be unpooled, which is typically the pooled tensor (first output) + from MaxPool. The second input tensor, I, contains the indices to the (locally maximal) elements corrsponding + to the elements in the first input tensor X. Input tensor I is typically the second output of the MaxPool op. + The third (optional) input is a tensor that specifies the output size of the unpooling operation. + + MaxUnpool is intended to do 'partial' inverse of the MaxPool op. 'Partial' because all the non-maximal + values from the original input to MaxPool are set to zero in the output of the MaxUnpool op. Pooling + the result of an unpooling operation should give back the original input to the unpooling op. + + MaxUnpool can produce the same output size for several input sizes, which makes unpooling op ambiguous. + The third input argument, output_size, is meant to disambiguate the op and produce output tensor of + known/predictable size. + + In addition to the inputs, MaxUnpool takes three attributes, namely kernel_shape, strides, and pads, + which define the exact unpooling op. The attributes typically have the same values as the corrsponding + pooling op that the unpooling op is trying to invert. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs (2 - 3) + +
+
X (differentiable) : T1
+
Input data tensor that has to be unpooled. This tensor is typically the first output of the MaxPool op.Dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non-image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
I (non-differentiable) : T2
+
Input data tensor containing the indices corresponding to elements in the first input tensor X.This tensor is typically the second output of the MaxPool op.Dimensions must be the same as input tensor X. The indices are linear, i.e. computed considering the tensor as flattened 1-D tensor, assuming row-major storage. Also, the linear indices should not consider padding. So the values in indices are in the range [0, N x C x D1 x ... x Dn).
+
output_shape (optional, non-differentiable) : T2
+
The shape of the output can be explicitly set which will cause pads values to be auto generated. If 'output_shape' is specified, 'pads' values are ignored.
+
+ +#### Outputs + +
+
output (differentiable) : T1
+
Output data tensor that contains the result of the unpooling.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T2 : tensor(int64)
+
Constrain index tensor to int64
+
+ +### **NonMaxSuppression-11** + + Filter out boxes that have high intersection-over-union (IOU) overlap with previously selected boxes. + Bounding boxes with score less than score_threshold are removed. Bounding box format is indicated by attribute center_point_box. + Note that this algorithm is agnostic to where the origin is in the coordinate system and more generally is invariant to + orthogonal transformations and translations of the coordinate system; thus translating or reflections of the coordinate system + result in the same boxes being selected by the algorithm. + The selected_indices output is a set of integers indexing into the input collection of bounding boxes representing the selected boxes. + The bounding box coordinates corresponding to the selected indices can then be obtained using the Gather or GatherND operation. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
center_point_box : int (default is 0)
+
Integer indicate the format of the box data. The default is 0. 0 - the box data is supplied as [y1, x1, y2, x2] where (y1, x1) and (y2, x2) are the coordinates of any diagonal pair of box corners and the coordinates can be provided as normalized (i.e., lying in the interval [0, 1]) or absolute. Mostly used for TF models. 1 - the box data is supplied as [x_center, y_center, width, height]. Mostly used for Pytorch models.
+
+ +#### Inputs (2 - 5) + +
+
boxes : tensor(float)
+
An input tensor with shape [num_batches, spatial_dimension, 4]. The single box data format is indicated by center_point_box.
+
scores : tensor(float)
+
An input tensor with shape [num_batches, num_classes, spatial_dimension]
+
max_output_boxes_per_class (optional) : tensor(int64)
+
Integer representing the maximum number of boxes to be selected per batch per class. It is a scalar. Default to 0, which means no output.
+
iou_threshold (optional) : tensor(float)
+
Float representing the threshold for deciding whether boxes overlap too much with respect to IOU. It is scalar. Value range [0, 1]. Default to 0.
+
score_threshold (optional) : tensor(float)
+
Float representing the threshold for deciding when to remove boxes based on score. It is a scalar.
+
+ +#### Outputs + +
+
selected_indices : tensor(int64)
+
selected indices from the boxes tensor. [num_selected_indices, 3], the selected index format is [batch_index, class_index, box_index].
+
+ +#### Type Constraints + + +### **OneHot-11** + + Produces a one-hot tensor based on inputs. + The locations represented by the index values in the 'indices' input tensor will have 'on_value' + and the other locations will have 'off_value' in the output tensor, where 'on_value' and 'off_value' + are specified as part of required input argument 'values', which is a two-element tensor of format + [off_value, on_value]. The rank of the output tensor will be one greater than the rank of the + input tensor. The additional dimension is for one-hot representation. The additional dimension will + be inserted at the position specified by 'axis'. If 'axis' is not specified then then additional + dimension will be inserted as the innermost dimension, i.e. axis=-1. The size of the additional + dimension is specified by required scalar input 'depth'. The type of the output tensor is the same + as the type of the 'values' input. Any entries in the 'indices' input tensor with values outside + the range [-depth, depth-1] will result in one-hot representation with all 'off_value' values in the + output tensor. + + when axis = 0: + output[input[i, j, k], i, j, k] = 1 for all i, j, k and 0 otherwise. + + when axis = -1: + output[i, j, k, input[i, j, k]] = 1 for all i, j, k and 0 otherwise. + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
(Optional) Axis along which one-hot representation in added. Default: axis=-1. axis=-1 means that the additional dimension will be inserted as the innermost/last dimension in the output tensor. Negative value means counting dimensions from the back. Accepted range is [-r-1, r] where r = rank(indices).
+
+ +#### Inputs + +
+
indices (non-differentiable) : T1
+
Input tensor containing indices. Any entries in the 'indices' input tensor with values outside the range [-depth, depth-1] will result in one-hot representation with all 'off_value' values in the output tensor.In case 'indices' is of non-integer type, the values will be casted to int64 before use.
+
depth (non-differentiable) : T2
+
Scalar specifying the number of classes in one-hot tensor. This is also the size of the one-hot dimension (specified by 'axis' attribute) added on in the output tensor. The values in the 'indices' input tensor are expected to be in the range [-depth, depth-1]. In case 'depth' is of non-integer type, it will be casted to int64 before use.
+
values (non-differentiable) : T3
+
Rank 1 tensor containing exactly two elements, in the format [off_value, on_value], where 'on_value' is the value used for filling locations specified in 'indices' input tensor, and 'off_value' is the value used for filling locations other than those specified in 'indices' input tensor.
+
+ +#### Outputs + +
+
output (non-differentiable) : T3
+
Tensor of rank one greater than input tensor 'indices', i.e. rank(output) = rank(indices) + 1. The data type for the elements of the output tensor is the same as the type of input 'values' is used.
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input to only numeric types.
+
T2 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input to only numeric types.
+
T3 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type.
+
+ +### **Pad-11** + + Given a tensor containing the data to be padded (`data`), a tensor containing the number of start and end pad values for axis (`pads`), (optionally) a `mode`, and (optionally) `constant_value`, + a padded tensor (`output`) is generated. + + The three supported `modes` are (similar to corresponding modes supported by `numpy.pad`): + + 1) `constant`(default) - pads with a given constant value as specified by `constant_value` (which defaults to 0) + + 2) `reflect` - pads with the reflection of the vector mirrored on the first and last values of the vector along each axis + + 3) `edge` - pads with the edge values of array + + + Example 1 (`constant` mode): + Insert 0 pads to the beginning of the second dimension. + + data = + [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + + pads = [0, 2, 0, 0] + + mode = 'constant' + + constant_value = 0.0 + + output = + [ + [0.0, 0.0, 1.0, 1.2], + [0.0, 0.0, 2.3, 3.4], + [0.0, 0.0, 4.5, 5.7], + ] + + + Example 2 (`reflect` mode): + data = + [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + + pads = [0, 2, 0, 0] + + mode = 'reflect' + + output = + [ + [1.0, 1.2, 1.0, 1.2], + [2.3, 3.4, 2.3, 3.4], + [4.5, 5.7, 4.5, 5.7], + ] + + + Example 3 (`edge` mode): + data = + [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + + pads = [0, 2, 0, 0] + + mode = 'edge' + + output = + [ + [1.0, 1.0, 1.0, 1.2], + [2.3, 2.3, 2.3, 3.4], + [4.5, 4.5, 4.5, 5.7], + ] + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
mode : string (default is constant)
+
Supported modes: `constant`(default), `reflect`, `edge`
+
+ +#### Inputs (2 - 3) + +
+
data : T
+
Input tensor.
+
pads : tensor(int64)
+
Tensor of integers indicating the number of padding elements to add or remove (if negative) at the beginning and end of each axis. For 2D input tensor, it is the number of pixels. `pads` should be a 1D tensor of shape [2 * input_rank]. `pads` format should be: [x1_begin, x2_begin,...,x1_end, x2_end,...], where xi_begin is the number of pad values added at the beginning of axis `i` and xi_end, the number of pad values added at the end of axis `i`.
+
constant_value (optional) : T
+
(Optional) A scalar value to be used if the mode chosen is `constant` (by default it is 0).
+
+ +#### Outputs + +
+
output : T
+
Tensor after padding.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output to only numeric types.
+
+ +### **Range-11** + + Generate a tensor containing a sequence of numbers that begin at `start` and extends by increments of `delta` + up to `limit` (exclusive). + + The number of elements in the output of range is computed as below- + + `number_of_elements = max( ceil( (limit - start) / delta ) , 0 )` + + The pseudocode determining the contents of the output is shown below- + + `for(int i=0; i +
start : T
+
Scalar. First entry for the range of output values.
+
limit : T
+
Scalar. Exclusive upper limit for the range of output values.
+
delta : T
+
Scalar. Value to step by.
+ + +#### Outputs + +
+
output : T
+
A 1-D tensor with same type as the inputs containing generated range of values.
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int16), tensor(int32), tensor(int64)
+
Constrain input types to common numeric type tensors.
+
+ +### **ReduceL1-11** + + Computes the L1 norm of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceL2-11** + + Computes the L2 norm of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceLogSum-11** + + Computes the log sum of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceLogSumExp-11** + + Computes the log sum exponent of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceMax-11** + + Computes the max of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceMean-11** + + Computes the mean of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceMin-11** + + Computes the min of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceProd-11** + + Computes the product of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceSum-11** + + Computes the sum of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceSumSquare-11** + + Computes the sum square of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Resize-11** + + Resize the input tensor. In general, it calculates every value in the output tensor as a weighted average of neighborhood (a.k.a. sampling locations) in the input tensor. + Each dimension value of the output tensor is: + output_dimension = floor(input_dimension * (roi_end - roi_start) * scale) if input \"sizes\" is not specified. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
coordinate_transformation_mode : string (default is half_pixel)
+
+This attribute describes how to transform the coordinate in the resized tensor to the coordinate in the original tensor.
+ +The coordinate of each dimension is transformed individually. Let's describe a case using axis x as an example. +Denote x_resized as the coordinate of axis x in the resized tensor, x_original as the coordinate of axis x in the original tensor, length_original as the length of the original tensor in axis x, length_resized as the length of the resized tensor in axis x, roi_x = (start_x, end_x) of the axis x in input "roi", scale = length_resized / length_original,
+ +if coordinate_transformation_mode is "half_pixel",
+x_original = (x_resized + 0.5) / scale - 0.5,
+ +if coordinate_transformation_mode is "pytorch_half_pixel",
+x_original = length_resized > 1 ? (x_resized + 0.5) / scale - 0.5 : 0,
+ +if coordinate_transformation_mode is "align_corners",
+x_original = x_resized * (length_original - 1) / (length_resized - 1),
+ +if coordinate_transformation_mode is "asymmetric",
+x_original = x_resized / scale,
+ +if coordinate_transformation_mode is "tf_half_pixel_for_nn",
+x_original = (x_resized + 0.5) / scale,
+ +if coordinate_transformation_mode is "tf_crop_and_resize",
+x_original = length_resized > 1 ? start_x * (length_original - 1) + x_resized * (end_x - start_x) * (length_original - 1) / (length_resized - 1) : 0.5 * (start_x + end_x) * (length_original - 1).
+
cubic_coeff_a : float (default is -0.75)
+
The coefficient 'a' used in cubic interpolation. Two common choice are -0.5 (in some cases of TensorFlow) and -0.75 (in PyTorch). Check out Equation (4) in https://ieeexplore.ieee.org/document/1163711 for the details. This attribute is valid only if "mode" is "cubic".
+
exclude_outside : int (default is 0)
+
If set to 1, the weight of sampling locations outside the tensor will be set to 0 and the weight will be renormalized so that their sum is 1.0. The default value is 0.
+
extrapolation_value : float (default is 0.0)
+
When coordinate_transformation_mode is "tf_crop_and_resize" and x_original is outside the range [0, length_original - 1], this value is used as the corresponding output value. Default is 0.0f.
+
mode : string (default is nearest)
+
Three interpolation modes: nearest (default), linear and cubic. The "linear" mode includes linear interpolation for 1D tensor and N-linear interpolation for N-D tensor (for example, bilinear interpolation for 2D tensor). The "cubic" mode includes cubic interpolation for 1D tensor and N-cubic interpolation for N-D tensor (for example, bicubic interpolation for 2D tensor).
+
nearest_mode : string (default is round_prefer_floor)
+
Four modes: round_prefer_floor (default, as known as round half down), round_prefer_ceil (as known as round half up), floor, ceil. Only used by nearest interpolation. It indicates how to get "nearest" pixel in input tensor from x_original, so this attribute is valid only if "mode" is "nearest".
+
+ +#### Inputs (3 - 4) + +
+
X : T1
+
N-D tensor
+
roi : T2
+
1-D tensor given as [start1, ..., startN, end1, ..., endN], where N is the rank of X. The RoIs' coordinates are normalized in the coordinate system of the input image. It only takes effect when coordinate_transformation_mode is "tf_crop_and_resize"
+
scales : tensor(float)
+
The scale array along each dimension. It takes value greater than 0. If it's less than 1, it's sampling down, otherwise, it's upsampling. The number of elements of 'scales' should be the same as the rank of input 'X'. If 'size' is needed, the user must set 'scales' to an empty tensor.
+
sizes (optional) : tensor(int64)
+
The size of the output tensor. The number of elements of 'sizes' should be the same as the rank of input 'X'. May only be set if 'scales' is set to an empty tensor.
+
+ +#### Outputs + +
+
Y : T1
+
N-D tensor after resizing
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input 'X' and output 'Y' to all tensor types.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Constrain roi type to float or double.
+
+ +### **Round-11** + + Round takes one input Tensor and rounds the values, element-wise, meaning + it finds the nearest integer for each value. + In case of halfs, the rule is to round them to the nearest even integer. + The output tensor has the same shape and type as the input. + + Examples: + ``` + round([0.9]) = [1.0] + round([2.5]) = [2.0] + round([2.3]) = [2.0] + round([1.5]) = [2.0] + round([-4.5]) = [-4.0] + ``` + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
X (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Scan-11** + + Scan can be used to iterate over one or more scan_input tensors, + constructing zero or more scan_output tensors. It combines ideas from general recurrences, + functional programming constructs such as scan, fold, map, and zip, and is intended to enable + generalizations of RNN-like constructs for sequence-to-sequence processing. + Other tensors (referred to as state_variables here) can be used to carry a state + when iterating from one element to another (similar to hidden-state in RNNs, also referred + to as loop-carried dependences in the context of loops). + Many common usages involve a single scan_input tensor (where functionality + similar to scan, fold and map can be obtained). When more than one scan_input is used, + a behavior similar to zip is obtained. + + The attribute body must be a graph, specifying the computation to be performed in + every iteration. It takes as input the current values of the state_variables and + the current iterated element of the scan_inputs. It must return the (updated) values + of the state_variables and zero or more scan_output_element tensors. The values of the + scan_output_element tensors are concatenated over all the iterations to produce the + scan_output values of the scan construct (similar to the concatenated intermediate + hidden-state values of RNN-like constructs). All the output tensors (state_variables as + well as scan_output_element tensors) are required to have the same shape in each iteration + of the loop (a restriction imposed to enable efficient memory allocation). + + Note that the iterated element passed to the body subgraph does not have a sequence + axis. It will have a rank one less than the rank of the corresponding scan_input. + + The scan operation returns the final values of the state_variables as well as the + scan_outputs. + + The optional attribute scan_input_directions specifies the direction (forward or backward) + for each scan input. If this attribute is omitted, all sequences are scanned in the forward + direction. A bidirectional scan may be performed by specifying the same tensor input twice + in the scan_inputs, once with a forward direction, and once with a backward direction. + + The scan_output of the operation is produced by concatenating the scan_output_element + values produced by the body in each iteration. The optional attribute scan_output_directions + specifies the direction in which scan_output is constructed (by appending or prepending the + scan_output_element to scan_output in each iteration) for each scan_output. If this attribute + is omitted, the scan_output_element is appended to the scan_output in each iteration. + + The optional attribute scan_input_axes specifies the axis to be scanned for each scan_input. + If omitted, every scan_input will be scanned in axis 0. For example, if axis 0 is the + batch axis and axis 1 is the time axis (to be scanned), specify an axis value of 1. + Note that scanning a non-zero axis may be less efficient than scanning axis zero. + + The optional attribute scan_output_axes specifies the axis along which the scan_outputs + are accumulated for each scan_output. For example, if axis 1 is the time axis (to be + scanned) for both inputs and outputs, specify a scan_input axis and scan_output axis + value of 1. + + Note that because of the ONNX restriction that only the last parameter of an operator can + be variadic, the initial-states and scan-inputs are listed together as one input parameter. + Similarly, the final-states and scan-outputs are listed together as one output parameter. + The attribute num_scan_inputs indicates the number M of scan-inputs. + + The behavior of + + Scan < + num_scan_inputs = m, + body = loop-body, + scan_input_axes = [axis_1, ..., axis_m] + > (init_1, ..., init_n, scan_1, ..., scan_m) + + is equivalent to the following pseudo-code: + + // scan_i.shape[axis_i] denotes the (max) sequence-length of scan_i + // scan_i.shape[axis_i] is required to be equal to scan_j.shape[axis_j] for all i,j. + sequence_length = scan_1.shape[axis_1]; + + // initialize state-variables + st_1 = init_1; ... st_n = init_n; + // initialize scan-output variables: [] denotes an empty tensor + scan_out_1 = []; ...; scan_out_k = []; + // identify number of iterations: + + // execute loop + for (int t = 0; t < sequence_length; ++t) { + // generate the scan-input elements: the notation T[t] indicates the sub-tensor + // of rank one less than T obtained by indexing T at position t along axis k. + si_1 = scan_1[t]; + ... ; + si_m = scan_m[t]; + // execute loop-body + st_1, ..., st_n, so_1, ..., so_k = loop-body(st_1, ..., st_n, si_1, ..., si_m) + // accumulate the scan-output elements + scan_out_1 = Concat(scan_out_1, so_1); ... ; scan_out_k = Concat(scan_out_k, so_k); + } + + return st_1, ..., st_n, scan_out_1, ..., scan_out_k; + + *Sample usage: Encoding RNN using a Scan* + + The following example shows how a simple RNN over an input tensor %X, with weight tensor %Wi, + recurrence weight tensor %Ri, bias tensors %Wbi and %Rbi, and initial hidden-state %H_0 can + be encoded as a ScanLoop. Note that the loop-body is a nested graph, and it directly computes + %Wi, %Ri, %Wbi, and %Rbi (typically constants or initializers in the body graph). If these + values are computed in the outer graph, they need to be passed in as extra state_variables. + + graph rnn-encoding { + %H_0 = ... + %X = ... + %Y_h, %Y = Scan[body = , num_scan_inputs=1](%H_0, %X) + return %Y, %Y_h + } + + graph rnn-cell-1 ( + %H_tminus1[FLOAT, tensor] + %X_t[FLOAT, tensor] + ) { + %Wi = ... + %Ri = ... + %Wbi = ... + %Rbi = ... + %t1 = X_t * (Wi^T) + %t2 = H_tminus1*(Ri^T) + %t3 = Add(%t1, %t2) + %t4 = Add(%t3, %Wbi) + %t5 = Add(%t4, %Rbi) + %Ht = Tanh(%t5) + %Accumulate = Identity(%Ht) + return %Ht, %Accumulate + } + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has N+M inputs: (loop state variables..., scan_input_elts...). It has N+K outputs: (loop state variables..., scan_output_elts...). Each scan_output is created by concatenating the value of the specified scan_output_elt value at the end of each iteration of the loop. It is an error if the dimensions of these values change across loop iterations.
+
num_scan_inputs : int (required)
+
An attribute specifying the number of scan_inputs M.
+
scan_input_axes : list of ints
+
An optional list of M flags. The i-th element of the list specifies the axis to be scanned (the sequence axis) for the i-th scan_input. If omitted, 0 will be used as the scan axis for every scan_input. Negative value for an axis means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
scan_input_directions : list of ints
+
An optional list of M flags. The i-th element of the list specifies the direction to be scanned for the i-th scan_input tensor: 0 indicates forward direction and 1 indicates reverse direction. If omitted, all scan_input tensors will be scanned in the forward direction.
+
scan_output_axes : list of ints
+
An optional list of K flags. The i-th element of the list specifies the axis for the i-th scan_output. The scan outputs are accumulated along the specified axis. If omitted, 0 will be used as the scan axis for every scan_output. Negative value for an axis means counting dimensions from the back. Accepted range is [-r, r-1].
+
scan_output_directions : list of ints
+
An optional list of K flags, one for each scan_output. The i-th element of the list specifies whether the i-th scan_output should be constructed by appending or prepending a new value in each iteration: 0 indicates appending and 1 indicates prepending. If omitted, all scan_output tensors will be produced by appending a value in each iteration.
+
+ +#### Inputs (1 - ∞) + +
+
initial_state_and_scan_inputs (variadic, heterogeneous) : V
+
Initial values of the loop's N state variables followed by M scan_inputs
+
+ +#### Outputs (1 - ∞) + +
+
final_state_and_scan_outputs (variadic, heterogeneous) : V
+
Final values of the loop's N state variables followed by K scan_outputs
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
All Tensor types
+
+ +### **Scatter-11** (deprecated) + + This operator is deprecated. Please use ScatterElements, which provides the same functionality. + + Scatter takes three inputs `data`, `updates`, and `indices` of the same + rank r >= 1 and an optional attribute axis that identifies an axis of `data` + (by default, the outer-most axis, that is axis 0). The output of the operation + is produced by creating a copy of the input `data`, and then updating its value + to values specified by `updates` at specific index positions specified by + `indices`. Its output shape is the same as the shape of `data`. + + For each entry in `updates`, the target index in `data` is obtained by combining + the corresponding entry in `indices` with the index of the entry itself: the + index-value for dimension = axis is obtained from the value of the corresponding + entry in `indices` and the index-value for dimension != axis is obtained from the + index of the entry itself. + + For instance, in a 2-D tensor case, the update corresponding to the [i][j] entry + is performed as below: + ``` + output[indices[i][j]][j] = updates[i][j] if axis = 0, + output[i][indices[i][j]] = updates[i][j] if axis = 1, + ``` + + This operator is the inverse of GatherElements. It is similar to Torch's Scatter operation. + + Example 1: + ``` + data = [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + ] + indices = [ + [1, 0, 2], + [0, 2, 1], + ] + updates = [ + [1.0, 1.1, 1.2], + [2.0, 2.1, 2.2], + ] + output = [ + [2.0, 1.1, 0.0] + [1.0, 0.0, 2.2] + [0.0, 2.1, 1.2] + ] + ``` + Example 2: + ``` + data = [[1.0, 2.0, 3.0, 4.0, 5.0]] + indices = [[1, 3]] + updates = [[1.1, 2.1]] + axis = 1 + output = [[1.0, 1.1, 3.0, 2.1, 5.0]] + ``` + +#### Version + +This version of the operator has been deprecated since version 11 of the default ONNX operator set. + +### **ScatterElements-11** + + ScatterElements takes three inputs `data`, `updates`, and `indices` of the same + rank r >= 1 and an optional attribute axis that identifies an axis of `data` + (by default, the outer-most axis, that is axis 0). The output of the operation + is produced by creating a copy of the input `data`, and then updating its value + to values specified by `updates` at specific index positions specified by + `indices`. Its output shape is the same as the shape of `data`. + + For each entry in `updates`, the target index in `data` is obtained by combining + the corresponding entry in `indices` with the index of the entry itself: the + index-value for dimension = axis is obtained from the value of the corresponding + entry in `indices` and the index-value for dimension != axis is obtained from the + index of the entry itself. + + For instance, in a 2-D tensor case, the update corresponding to the [i][j] entry + is performed as below: + ``` + output[indices[i][j]][j] = updates[i][j] if axis = 0, + output[i][indices[i][j]] = updates[i][j] if axis = 1, + ``` + + This operator is the inverse of GatherElements. It is similar to Torch's Scatter operation. + + Example 1: + ``` + data = [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + ] + indices = [ + [1, 0, 2], + [0, 2, 1], + ] + updates = [ + [1.0, 1.1, 1.2], + [2.0, 2.1, 2.2], + ] + output = [ + [2.0, 1.1, 0.0] + [1.0, 0.0, 2.2] + [0.0, 2.1, 1.2] + ] + ``` + Example 2: + ``` + data = [[1.0, 2.0, 3.0, 4.0, 5.0]] + indices = [[1, 3]] + updates = [[1.1, 2.1]] + axis = 1 + output = [[1.0, 1.1, 3.0, 2.1, 5.0]] + ``` + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to scatter on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Inputs + +
+
data : T
+
Tensor of rank r >= 1.
+
indices : Tind
+
Tensor of int32/int64 indices, of r >= 1 (same rank as input). All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
updates : T
+
Tensor of rank r >=1 (same rank and shape as indices)
+
+ +#### Outputs + +
+
output : T
+
Tensor of rank r >= 1 (same rank as input).
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input and output types can be of any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **ScatterND-11** + + ScatterND takes three inputs `data` tensor of rank r >= 1, `indices` tensor of rank q >= 1, + and `updates` tensor of rank q + r - indices.shape[-1] - 1. The output of the operation + is produced by creating a copy of the input `data`, and then updating its value to values + specified by `updates` at specific index positions specified by `indices`. Its output shape + is the same as the shape of `data`. Note that `indices` should not have duplicate entries. + That is, two or more `updates` for the same index-location is not supported. + + `indices` is an integer tensor. Let k denote indices.shape[-1], the last dimension in the shape of `indices`. + `indices` is treated as a (q-1)-dimensional tensor of k-tuples, where each k-tuple is a partial-index into `data`. + Hence, k can be a value at most the rank of `data`. When k equals rank(data), each update entry specifies an + update to a single element of the tensor. When k is less than rank(data) each update entry specifies an + update to a slice of the tensor. + + `updates` is treated as a (q-1)-dimensional tensor of replacement-slice-values. Thus, the + first (q-1) dimensions of updates.shape must match the first (q-1) dimensions of indices.shape. + The remaining dimensions of `updates` correspond to the dimensions of the + replacement-slice-values. Each replacement-slice-value is a (r-k) dimensional tensor, + corresponding to the trailing (r-k) dimensions of `data`. Thus, the shape of `updates` + must equal indices.shape[0:q-1] ++ data.shape[k:r-1], where ++ denotes the concatenation + of shapes. + + The `output` is calculated via the following equation: + + output = np.copy(data) + update_indices = indices.shape[:-1] + for idx in np.ndindex(update_indices): + output[indices[idx]] = updates[idx] + + The order of iteration in the above loop is not specified. + In particular, indices should not have duplicate entries: that is, if idx1 != idx2, then indices[idx1] != indices[idx2]. + This ensures that the output value does not depend on the iteration order. + + This operator is the inverse of GatherND. + + Example 1: + ``` + data = [1, 2, 3, 4, 5, 6, 7, 8] + indices = [[4], [3], [1], [7]] + updates = [9, 10, 11, 12] + output = [1, 11, 3, 10, 9, 6, 7, 12] + ``` + + Example 2: + ``` + data = [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]] + indices = [[0], [2]] + updates = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]] + output = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]] + ``` + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
data : T
+
Tensor of rank r >= 1.
+
indices : tensor(int64)
+
Tensor of rank q >= 1.
+
updates : T
+
Tensor of rank q + r - indices_shape[-1] - 1.
+
+ +#### Outputs + +
+
output : T
+
Tensor of rank r >= 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
+ +### **SequenceAt-11** + + Outputs a tensor copy from the tensor at 'position' in 'input_sequence'. + Accepted range for 'position' is in `[-n, n - 1]`, where `n` is the number of tensors in 'input_sequence'. + Negative value means counting positions from the back. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
input_sequence : S
+
Input sequence.
+
position : I
+
Position of the tensor in the sequence. Negative value means counting positions from the back. Accepted range in `[-n, n - 1]`, where `n` is the number of tensors in 'input_sequence'. It is an error if any of the index values are out of bounds. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
tensor : T
+
Output tensor at the specified position in the input sequence.
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor type.
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type.
+
I : tensor(int32), tensor(int64)
+
Constrain position to integral tensor. It must be a scalar(tensor of empty shape).
+
+ +### **SequenceConstruct-11** + + Construct a tensor sequence containing 'inputs' tensors. + All tensors in 'inputs' must have the same data type. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
inputs (variadic) : T
+
Tensors.
+
+ +#### Outputs + +
+
output_sequence : S
+
Sequence enclosing the input tensors.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input types to any tensor type.
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain output types to any tensor type.
+
+ +### **SequenceEmpty-11** + + Construct an empty tensor sequence, with given data type. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
(Optional) The data type of the tensors in the output sequence. The default type is 'float'.
+
+ +#### Inputs + + +#### Outputs + +
+
output : S
+
Empty sequence.
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain output types to any tensor type.
+
+ +### **SequenceErase-11** + + Outputs a tensor sequence that removes the tensor at 'position' from 'input_sequence'. + Accepted range for 'position' is in `[-n, n - 1]`, where `n` is the number of tensors in 'input_sequence'. + Negative value means counting positions from the back. + 'position' is optional, by default it erases the last tensor from 'input_sequence'. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs (1 - 2) + +
+
input_sequence : S
+
Input sequence.
+
position (optional) : I
+
Position of the tensor in the sequence. Negative value means counting positions from the back. Accepted range in `[-n, n - 1]`, where `n` is the number of tensors in 'input_sequence'. It is an error if any of the index values are out of bounds. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
output_sequence : S
+
Output sequence that has the tensor at the specified position removed.
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor type.
+
I : tensor(int32), tensor(int64)
+
Constrain position to integral tensor. It must be a scalar(tensor of empty shape).
+
+ +### **SequenceInsert-11** + + Outputs a tensor sequence that inserts 'tensor' into 'input_sequence' at 'position'. + 'tensor' must have the same data type as 'input_sequence'. + Accepted range for 'position' is in `[-n, n]`, where `n` is the number of tensors in 'input_sequence'. + Negative value means counting positions from the back. + 'position' is optional, by default it inserts 'tensor' to the back of 'input_sequence'. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs (2 - 3) + +
+
input_sequence : S
+
Input sequence.
+
tensor : T
+
Input tensor to be inserted into the input sequence.
+
position (optional) : I
+
Position in the sequence where the new tensor is inserted. It is optional and default is to insert to the back of the sequence. Negative value means counting positions from the back. Accepted range in `[-n, n]`, where `n` is the number of tensors in 'input_sequence'. It is an error if any of the index values are out of bounds. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
output_sequence : S
+
Output sequence that contains the inserted tensor at given position.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type.
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor type.
+
I : tensor(int32), tensor(int64)
+
Constrain position to integral tensor. It must be a scalar(tensor of empty shape).
+
+ +### **SequenceLength-11** + + Produces a scalar(tensor of empty shape) containing the number of tensors in 'input_sequence'. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
input_sequence : S
+
Input sequence.
+
+ +#### Outputs + +
+
length : I
+
Length of input sequence. It must be a scalar(tensor of empty shape).
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor type.
+
I : tensor(int64)
+
Constrain output to integral tensor. It must be a scalar(tensor of empty shape).
+
+ +### **Slice-11** + + Produces a slice of the input tensor along multiple axes. Similar to numpy: + https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html + Slices uses `starts`, `ends`, `axes` and `steps` inputs to specify the start and end + dimension and step for each axis in the list of axes, it uses this information to + slice the input `data` tensor. If a negative value is passed for any of the + start or end indices, it represents number of elements before the end of that + dimension. If the value passed to start or end is larger than the `n` (the + number of elements in this dimension), it represents `n`. For slicing to the + end of a dimension with unknown size, it is recommended to pass in `INT_MAX` + when sclicing forward and 'INT_MIN' when slicing backward. + If a negative value is passed for step, it represents slicing backward. + However step value cannot be 0. + If `axes` are omitted, they are set to `[0, ..., ndim-1]`. + If `steps` are omitted, they are set to `[1, ..., 1]` of length `len(starts)` + Example 1: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + axes = [0, 1] + starts = [1, 0] + ends = [2, 3] + steps = [1, 2] + result = [ + [5, 7], + ] + Example 2: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + starts = [0, 1] + ends = [-1, 1000] + result = [ + [2, 3, 4], + ] + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs (3 - 5) + +
+
data : T
+
Tensor of data to extract slices from.
+
starts : Tind
+
1-D tensor of starting indices of corresponding axis in `axes`
+
ends : Tind
+
1-D tensor of ending indices (exclusive) of corresponding axis in `axes`
+
axes (optional) : Tind
+
1-D tensor of axes that `starts` and `ends` apply to. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
steps (optional) : Tind
+
1-D tensor of slice step of corresponding axis in `axes`. Negative value means slicing backward. 'steps' cannot be 0. Defaults to 1.
+
+ +#### Outputs + +
+
output : T
+
Sliced data tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **Softmax-11** + + The operator computes the softmax (normalized exponential) values for each layer in the batch + of the given input. + + The input does not need to explicitly be a 2D vector; rather, it will be + coerced into one. For an arbitrary n-dimensional tensor + input \in [a_0, a_1, ..., a_{k-1}, a_k, ..., a_{n-1}] and k is + the axis provided, then input will be coerced into a 2-dimensional tensor with + dimensions [a_0 * ... * a_{k-1}, a_k * ... * a_{n-1}]. For the default + case where axis=1, this means the input tensor will be coerced into a 2D tensor + of dimensions [a_0, a_1 * ... * a_{n-1}], where a_0 is often the batch size. + In this situation, we must have a_0 = N and a_1 * ... * a_{n-1} = D. + Each of these dimensions must be matched correctly, or else the operator + will throw errors. The output tensor has the same shape + and contains the softmax values of the corresponding input. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Describes the axis of the inputs when coerced to 2D; defaults to one because the 0th axis most likely describes the batch_size. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
+ +#### Inputs + +
+
input : T
+
The input tensor that's coerced into a 2D matrix of size (NxD) as described above.
+
+ +#### Outputs + +
+
output : T
+
The output values with the same shape as input tensor (the original size without coercion).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Split-11** + + Split a tensor into a list of tensors, along the specified + 'axis'. Lengths of the parts can be specified using argument 'split'. + Otherwise, the tensor is split to equal sized parts. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to split on. A negative value means counting dimensions from the back. Accepted range is [-rank, rank-1] where r = rank(input).
+
split : list of ints
+
length of each output. Values should be >= 0.
+
+ +#### Inputs + +
+
input : T
+
The tensor to split
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic) : T
+
One or more outputs forming list of tensors after splitting
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **SplitToSequence-11** + + Split a tensor into a sequence of tensors, along the specified + 'axis'. Lengths of the parts can be specified using argument 'split'. + 'split' must contain only positive numbers. + 'split' is either a scalar (tensor of empty shape), or a 1-D tensor. + If 'split' is a scalar, then 'input' will be split into equally sized chunks(if possible). + Last chunk will be smaller if the 'input' size along the given axis 'axis' is not divisible + by 'split'. + Otherwise, the tensor is split into 'size(split)' chunks, with lengths of the parts on 'axis' + specified in 'split'. In this scenario, the sum of entries in 'split' must be equal to the + dimension size of input tensor on 'axis'. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to split on. A negative value means counting dimensions from the back. Accepted range is [-rank, rank-1].
+
keepdims : int (default is 1)
+
Keep the split dimension or not. Default 1, which means we keep split dimension. If input 'split' is specified, this attribute is ignored.
+
+ +#### Inputs (1 - 2) + +
+
input : T
+
The tensor to split
+
split (optional) : I
+
Length of each output. It can be either a scalar(tensor of empty shape), or a 1-D tensor. All values must be >= 0.
+
+ +#### Outputs + +
+
output_sequence : S
+
One or more outputs forming a sequence of tensors after splitting
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input types to all tensor types.
+
I : tensor(int32), tensor(int64)
+
Constrain split size to integral tensor.
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain output types to all tensor types.
+
+ +### **Squeeze-11** + + Remove single-dimensional entries from the shape of a tensor. + Takes a parameter `axes` with a list of axes to squeeze. + If `axes` is not provided, all the single dimensions will be removed from + the shape. If an axis is selected with shape entry not equal to one, an error is raised. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
List of integers indicating the dimensions to squeeze. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Inputs + +
+
data : T
+
Tensors with at least max(dims) dimensions.
+
+ +#### Outputs + +
+
squeezed : T
+
Reshaped tensor with same data as input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **TopK-11** + + Retrieve the top-K largest or smallest elements along a specified axis. Given an input tensor of + shape [a_1, a_2, ..., a_n, r] and integer argument k, return two outputs: + -Value tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] + which contains the values of the top k elements along the specified axis + -Index tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] which + contains the indices of the top k elements (original indices from the input + tensor). + + If "largest" is 1 (the default value) then the k largest elements are returned. + If "sorted" is 1 (the default value) then the resulting k elements will be sorted. + If "sorted" is 0, order of returned 'Values' and 'Indices' are undefined. + + Given two equivalent values, this operator uses the indices along the axis as + a tiebreaker. That is, the element with the lower index will appear first. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
Dimension on which to do the sort. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
largest : int (default is 1)
+
Whether to return the top-K largest or smallest elements.
+
sorted : int (default is 1)
+
Whether to return the elements in sorted order.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Tensor of shape [a_1, a_2, ..., a_n, r]
+
K (non-differentiable) : tensor(int64)
+
A 1-D tensor containing a single positive value corresponding to the number of top elements to retrieve
+
+ +#### Outputs + +
+
Values (differentiable) : T
+
Tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] containing top K values from the input tensor
+
Indices (non-differentiable) : I
+
Tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] containing the corresponding input tensor indices for the top K values.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to numeric tensors.
+
I : tensor(int64)
+
Constrain index tensor to int64
+
+ +### **Unique-11** + + Find the unique elements of a tensor. When an optional attribute 'axis' is provided, unique subtensors sliced along the 'axis' are returned. + Otherwise the input tensor is flattened and unique values of the flattened tensor are returned. + + This operator returns the unique values or sliced unique subtensors of the input tensor and three optional outputs. + The first output tensor 'Y' contains all unique values or subtensors of the input. + The second optional output tensor 'indices' contains indices of 'Y' elements' first occurance in 'X'.. + The third optional output tensor 'inverse_indices' contains, for elements of 'X', its corresponding indices in 'Y'. ". + The fourth optional output tensor 'counts' contains the count of each element of 'Y' in the input. + + Outputs are either sorted in ascending order or optionally in the order of the first occurrence of the values in the input. + + https://docs.scipy.org/doc/numpy/reference/generated/numpy.unique.html + + Example 1: + input_X = [2, 1, 1, 3, 4, 3] + attribute_sorted = 0 + attribute_axis = None + output_Y = [2, 1, 3, 4] + output_indices = [0, 1, 3, 4] + output_inverse_indices = [0, 1, 1, 2, 3, 2] + output_counts = [1, 2, 2, 1] + + Example 2: + input_X = [[1, 3], [2, 3]] + attribute_sorted = 1 + attribute_axis = None + output_Y = [1, 2, 3] + output_indices = [0, 2, 1] + output_inverse_indices = [0, 2, 1, 2] + output_counts = [1, 1, 2] + + Example 3: + input_X = [[1, 0, 0], [1, 0, 0], [2, 3, 4]] + attribute_sorted = 1 + attribute_axis = 0 + output_Y = [[1, 0, 0], [2, 3, 4]] + output_indices = [0, 2] + output_inverse_indices = [0, 0, 1] + output_counts = [2, 1] + + Example 4: + input_x = [[[1., 1.], [0., 1.], [2., 1.], [0., 1.]], + [[1., 1.], [0., 1.], [2., 1.], [0., 1.]]] + attribute_sorted = 1 + attribute_axis = 1 + + intermediate data are presented below for better understanding: + + there are 4 subtensors sliced along axis 1 of input_x (shape = (2, 4, 2)): + A: [[1, 1], [1, 1]], + [[0, 1], [0, 1]], + [[2, 1], [2, 1]], + [[0, 1], [0, 1]]. + + there are 3 unique subtensors: + [[1, 1], [1, 1]], + [[0, 1], [0, 1]], + [[2, 1], [2, 1]]. + + sorted unique subtensors: + B: [[0, 1], [0, 1]], + [[1, 1], [1, 1]], + [[2, 1], [2, 1]]. + + output_Y is constructed from B: + [[[0. 1.], [1. 1.], [2. 1.]], + [[0. 1.], [1. 1.], [2. 1.]]] + + output_indices is to map from B to A: + [1, 0, 2] + + output_inverse_indices is to map from A to B: + [1, 0, 2, 0] + + output_counts = [2 1 1] + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
(Optional) The dimension to apply unique. If not specified, the unique elements of the flattened input are returned. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
sorted : int (default is 1)
+
(Optional) Whether to sort the unique elements in ascending order before returning as output. Must be one of 0, or 1 (default).
+
+ +#### Inputs + +
+
X (non-differentiable) : T
+
A N-D input tensor that is to be processed.
+
+ +#### Outputs (1 - 4) + +
+
Y (non-differentiable) : T
+
A tensor of the same type as 'X' containing all the unique values or subtensors sliced along a provided 'axis' in 'X', either sorted or maintained in the same order they occur in input 'X'
+
indices (optional, non-differentiable) : tensor(int64)
+
A 1-D INT64 tensor containing indices of 'Y' elements' first occurance in 'X'. When 'axis' is provided, it contains indices to subtensors in input 'X' on the 'axis'. When 'axis' is not provided, it contains indices to values in the flattened input tensor.
+
inverse_indices (optional, non-differentiable) : tensor(int64)
+
A 1-D INT64 tensor containing, for elements of 'X', its corresponding indices in 'Y'. When 'axis' is provided, it contains indices to subtensors in output 'Y' on the 'axis'. When 'axis' is not provided, it contains indices to values in output 'Y'.
+
counts (optional, non-differentiable) : tensor(int64)
+
A 1-D INT64 tensor containing the count of each element of 'Y' in input 'X'
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input can be of any tensor type.
+
+ +### **Unsqueeze-11** + + Insert single-dimensional entries to the shape of an input tensor (`data`). + Takes one required argument `axes` - which contains a list of dimension indices and this operator will insert a dimension of value `1` into the corresponding index of the output tensor (`expanded`). + + For example: + Given an input tensor (`data`) of shape [3, 4, 5], then + Unsqueeze(data, axes=[0, 4]) outputs a tensor (`expanded`) containing same data as `data` but with shape [1, 3, 4, 5, 1]. + + The attribute `axes` should not contain any duplicate entries. It is an error if it contains duplicates. + The rank of the output tensor (`output_rank`) is the rank of the input tensor (`data`) plus the number of values in `axes`. + Each value in `axes` should be within the (inclusive) range [-output_rank , output_rank - 1]. + The order of values in `axes` does not matter and can come in any order. + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints (required)
+
List of integers indicating the dimensions to be inserted. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(expanded).
+
+ +#### Inputs + +
+
data : T
+
Original tensor
+
+ +#### Outputs + +
+
expanded : T
+
Reshaped tensor with same data as input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +## Version 12 of the default ONNX operator set +### **ArgMax-12** + + Computes the indices of the max elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equal 0, then the resulting tensor has the reduced dimension pruned. + If select_last_index is True (default False), the index of the last occurrence of the max + is selected if the max appears more than once in the input. Otherwise the index of the + first occurrence is selected. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
select_last_index : int (default is 0)
+
Whether to select the last index or the first index if the {name} appears in multiple indices, default is False (first index).
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **ArgMin-12** + + Computes the indices of the min elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equal 0, then the resulting tensor has the reduced dimension pruned. + If select_last_index is True (default False), the index of the last occurrence of the min + is selected if the min appears more than once in the input. Otherwise the index of the + first occurrence is selected. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
select_last_index : int (default is 0)
+
Whether to select the last index or the first index if the {name} appears in multiple indices, default is False (first index).
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Celu-12** + + Continuously Differentiable Exponential Linear Units: + Perform the linear unit element-wise on the input tensor X + using formula: + + ``` + max(0,x) + min(0,alpha*(exp(x/alpha)-1)) + ``` + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
The Alpha value in Celu formula which control the shape of the unit. The default value is 1.0.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float)
+
Constrain input and output types to float32 tensors.
+
+ +### **Clip-12** + + Clip operator limits the given input within an interval. The interval is + specified by the inputs 'min' and 'max'. They default to + numeric_limits::lowest() and numeric_limits::max(), respectively. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Inputs (1 - 3) + +
+
input : T
+
Input tensor whose elements to be clipped
+
min (optional) : T
+
Minimum value, under which element is replaced by min. It must be a scalar(tensor of empty shape).
+
max (optional) : T
+
Maximum value, above which element is replaced by max. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
output : T
+
Output tensor with clipped input elements
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Constant-12** + + This operator produces a constant tensor. Exactly one of the provided attributes, either value, sparse_value, + or value_* must be specified. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
sparse_value : sparse_tensor
+
The value for the elements of the output tensor in sparse format.
+
value : tensor
+
The value for the elements of the output tensor.
+
value_float : float
+
The value for the sole element for the scalar, float32, output tensor.
+
value_floats : list of floats
+
The values for the elements for the 1D, float32, output tensor.
+
value_int : int
+
The value for the sole element for the scalar, int64, output tensor.
+
value_ints : list of ints
+
The values for the elements for the 1D, int64, output tensor.
+
value_string : string
+
The value for the sole element for the scalar, UTF-8 string, output tensor.
+
value_strings : list of strings
+
The values for the elements for the 1D, UTF-8 string, output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor containing the same value of the provided tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Dropout-12** + + Dropout takes an input floating-point tensor, an optional input ratio (floating-point scalar) and an optional input training_mode (boolean scalar). It produces two tensor outputs, + output (floating-point tensor) and mask (optional `Tensor`). If `training_mode` is true then the output Y will be a random dropout; + Note that this Dropout scales the masked input data by the following equation, so to convert the trained model into inference mode, + the user can simply not pass `training_mode` input or set it to false. + ``` + output = scale * data * mask, + ``` + where + ``` + scale = 1. / (1. - ratio). + ``` + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
seed : int
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs (1 - 3) + +
+
data : T
+
The input data as Tensor.
+
ratio (optional) : T1
+
The ratio of random dropout, with value in [0, 1). If this input was not set, or if it was set to 0, the output would be a simple copy of the input. If it's non-zero, output will be a random dropout of the scaled input, which is typically the case during training. It is an optional value, if not specified it will default to 0.5.
+
training_mode (optional) : T2
+
If set to true then it indicates dropout is being used for training. It is an optional value hence unless specified explicitly, it is false. If it is false, ratio is ignored and the operation mimics inference mode where nothing will be dropped from the input data and if mask is requested as output it will contain all ones.
+
+ +#### Outputs (1 - 2) + +
+
output : T
+
The output.
+
mask (optional) : T2
+
The output mask.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input 'ratio' types to float tensors.
+
T2 : tensor(bool)
+
Constrain output 'mask' types to boolean tensors.
+
+ +### **Einsum-12** + + An einsum of the form ```term1, term2 -> output-term``` produces an output tensor using the following equation + + ```output[output-term] = reduce-sum( input1[term1] * input2[term] )``` + + where the reduce-sum performs a summation over all the indices occurring in the input terms (term1, term2) + that do not occur in the output-term. + + The Einsum operator evaluates algebraic tensor operations on a sequence of tensors, using the Einstein summation + convention. The equation string contains a comma-separated sequence of lower case letters. Each term corresponds to + an operand tensor, and the characters within the terms correspond to operands dimensions. + + This sequence may be followed by "->" to separate the left and right hand side of the equation. + If the equation contains "->" followed by the right-hand side, the explicit (not classical) form of the Einstein + summation is performed, and the right-hand side indices indicate output tensor dimensions. In other cases, + output indices are (implicitly) set to the alphabetically sorted sequence of indices appearing exactly once in the + equation. + + When a dimension character is repeated in the left-hand side, it represents summation along the dimension. + + The equation may contain ellipsis ("...") to enable broadcasting. Ellipsis must indicate a fixed number of dimensions. + Specifically, every occurrence of ellipsis in the equation must represent the same number of dimensions. + The right-hand side may contain exactly one ellipsis. In implicit mode, the ellipsis dimensions are set to the + beginning of the output. The equation string may contain space (U+0020) character. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
equation : string (required)
+
Einsum expression string.
+
+ +#### Inputs (1 - ∞) + +
+
Inputs (variadic, differentiable) : T
+
Operands
+
+ +#### Outputs + +
+
Output (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numerical tensor types.
+
+ +### **GatherND-12** + + Given `data` tensor of rank `r` >= 1, `indices` tensor of rank `q` >= 1, and `batch_dims` integer `b`, this operator gathers + slices of `data` into an output tensor of rank `q + r - indices_shape[-1] - 1 - b`. + + `indices` is an q-dimensional integer tensor, best thought of as a `(q-1)`-dimensional tensor of index-tuples into `data`, + where each element defines a slice of `data` + + `batch_dims` (denoted as `b`) is an integer indicating the number of batch dimensions, i.e the leading `b` number of dimensions of + `data` tensor and `indices` are representing the batches, and the gather starts from the `b+1` dimension. + + Some salient points about the inputs' rank and shape: + + 1) r >= 1 and q >= 1 are to be honored. There is no dependency condition to be met between ranks `r` and `q` + + 2) The first `b` dimensions of the shape of `indices` tensor and `data` tensor must be equal. + + 3) b < min(q, r) is to be honored. + + 4) The `indices_shape[-1]` should have a value between 1 (inclusive) and rank `r-b` (inclusive) + + 5) All values in `indices` are expected to be within bounds [-s, s-1] along axis of size `s` (i.e.) `-data_shape[i] <= indices[...,i] <= data_shape[i] - 1`. + It is an error if any of the index values are out of bounds. + + The output is computed as follows: + + The output tensor is obtained by mapping each index-tuple in the `indices` tensor to the corresponding slice of the input `data`. + + 1) If `indices_shape[-1] > r-b` => error condition + + 2) If `indices_shape[-1] == r-b`, since the rank of `indices` is `q`, `indices` can be thought of as `N` `(q-b-1)`-dimensional tensors + containing 1-D tensors of dimension `r-b`, where `N` is an integer equals to the product of 1 and all the elements in the batch dimensions + of the indices_shape. Let us think of each such `r-b` ranked tensor as `indices_slice`. Each *scalar value* corresponding to `data[0:b-1,indices_slice]` + is filled into the corresponding location of the `(q-b-1)`-dimensional tensor to form the `output` tensor (Example 1 below) + + 3) If `indices_shape[-1] < r-b`, since the rank of `indices` is `q`, `indices` can be thought of as `N` `(q-b-1)`-dimensional tensor + containing 1-D tensors of dimension `< r-b`. Let us think of each such tensors as `indices_slice`. Each *tensor slice* corresponding + to `data[0:b-1, indices_slice , :]` is filled into the corresponding location of the `(q-b-1)`-dimensional tensor + to form the `output` tensor (Examples 2, 3, 4 and 5 below) + + This operator is the inverse of `ScatterND`. + + `Example 1` + + batch_dims = 0 + + data = [[0,1],[2,3]] # data_shape = [2, 2] + + indices = [[0,0],[1,1]] # indices_shape = [2, 2] + + output = [0,3] # output_shape = [2] + + `Example 2` + + batch_dims = 0 + + data = [[0,1],[2,3]] # data_shape = [2, 2] + + indices = [[1],[0]] # indices_shape = [2, 1] + + output = [[2,3],[0,1]] # output_shape = [2, 2] + + `Example 3` + + batch_dims = 0 + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[0,1],[1,0]] # indices_shape = [2, 2] + + output = [[2,3],[4,5]] # output_shape = [2, 2] + + `Example 4` + + batch_dims = 0 + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[[0,1]],[[1,0]]] # indices_shape = [2, 1, 2] + + output = [[[2,3]],[[4,5]]] # output_shape = [2, 1, 2] + + `Example 5` + + batch_dims = 1 + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[1],[0]] # indices_shape = [2, 1] + + output = [[2,3],[4,5]] # output_shape = [2, 2] + + + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
batch_dims : int (default is 0)
+
The number of batch dimensions. The gather of indexing starts from dimension of data[batch_dims:]
+
+ +#### Inputs + +
+
data : T
+
Tensor of rank r >= 1.
+
indices : tensor(int64)
+
Tensor of rank q >= 1. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output : T
+
Tensor of rank q + r - indices_shape[-1] - 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
+ +### **GreaterOrEqual-12** + + Returns the tensor resulted from performing the `greater_equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **LessOrEqual-12** + + Returns the tensor resulted from performing the `less_equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Max-12** + + Element-wise max of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for max.
+
+ +#### Outputs + +
+
max : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to numeric tensors.
+
+ +### **MaxPool-12** + + MaxPool consumes an input tensor X and applies max pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + max pooling consisting of computing the max on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1) + ``` + or + ``` + output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1) + ``` + if ceil_mode is enabled + + ``` + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i] + ``` + The output of each pooling window is maximum number of elements exclude pad. + + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
ceil_mode : int (default is 0)
+
Whether to use ceil or floor (default) to compute the output shape.
+
dilations : list of ints
+
Dilation value along each spatial axis of filter. If not present, the dilation defaults to 1 along each spatial axis.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
storage_order : int (default is 0)
+
The storage order of the tensor. 0 is row major, and 1 is column major.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs (1 - 2) + +
+
Y (differentiable) : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
Indices (optional, non-differentiable) : I
+
Indices tensor from max pooling across the input tensor. The dimensions of indices are the same as output tensor. The values in indices of are the indices of the selected values during pooling. The indices are computed as flatten 1-D tensor, and the indices do not consider padding. So the values in indices are in [0, N x C x D1 x ... x Dn).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(uint8)
+
Constrain input and output types to float and 8 bit tensors.
+
I : tensor(int64)
+
Constrain index tensor to int64
+
+ +### **Min-12** + + Element-wise min of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic) : T
+
List of tensors for min.
+
+ +#### Outputs + +
+
min : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to numeric tensors.
+
+ +### **NegativeLogLikelihoodLoss-12** + + A NegativeLogLikelihoodLoss operator computes (weighted) negative log likelihood loss. + Its "input" tensor has the shape of (N, C, d1, d2, ..., dk) where k >= 0. + The "input" tensor contains log-probabilities for input[n, :, d_1, d_2,..., d_k] being in a class of [0, C). + The operator's "target" input tensor has the shape of (N, d1, d2, ..., dk). It encodes class labels (one of C classes) + or it may contain a special value (indicated by an attribute ignore_index) for N x d1 x d2 x ... x dk samples. + The loss value for input[n, :, d_1, d_2,...d_k] being classified as class c = target[n][d_1][d_2]...[d_k] is computed as: + loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k]. + When an optional "weight" is provided, the sample loss is calculated as: + loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k] * weight[c]. + loss is zero for the case when target-value equals ignore_index. + + loss[n][d_1][d_2]...[d_k] = 0, when target[n][d_1][d_2]...[d_k] = ignore_index + If "reduction" attribute is set to "none", the operator's output will be the above loss with shape (N, d1, d2, ..., dk). + If "reduction" attribute is set to "mean" (the default attribute value), the output loss is (weight) averaged: + mean(loss), if "weight" is not provided, + or if weight is provided, + sum(loss) / sum(weight[target[n][d_1][d_2]...[d_k]]]), for all samples. + If "reduction" attribute is set to "sum", the output is a scalar: + sum(loss). + See also https://pytorch.org/docs/stable/nn.html#torch.nn.NLLLoss. + Example 1: + // negative log likelihood loss, "none" reduction + N, C, d1 = 2, 3, 2 + input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]], + [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]] + target = [[2, 1], [0, 2]] + loss = np.zeros((N, d1)) + for n in range(N): + for d_1 in range(d1): + c = target[n][d_1] + loss[n][d_1] = -input[n][c][d_1] + // print(loss) + // [[-3. -2.] + // [-0. -2.]] + Example 2: + // weighted negative log likelihood loss, sum reduction + N, C, d1 = 2, 3, 2 + input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]], + [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]] + target = [[2, 1], [0, 2]] + weight = [0.2, 0.3, 0.1] + loss = np.zeros((N, d1)) + for n in range(N): + for d_1 in range(d1): + c = target[n][d_1] + loss[n][d_1] = -input[n][c][d_1] * weight[c] + loss = np.sum(loss) + // print(loss) + // -1.1 + Example 3: + // weighted negative log likelihood loss, mean reduction + N, C, d1 = 2, 3, 2 + input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]], + [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]] + target = [[2, 1], [0, 2]] + weight = [0.2, 0.3, 0.1] + loss = np.zeros((N, d1)) + weight_total = 0 + for n in range(N): + for d_1 in range(d1): + c = target[n][d_1] + loss[n][d_1] = -input[n][c][d_1] * weight[c] + weight_total = weight_total + weight[c] + loss = np.sum(loss) / weight_total + // print(loss) + // -1.57 + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
ignore_index : int
+
Specifies a target value that is ignored and does not contribute to the input gradient. It's an optional value.
+
reduction : string (default is mean)
+
Type of reduction to apply to loss: none, sum, mean (default). 'none': the output is the loss for each sample. 'sum': the output will be summed. 'mean': the sum of the output will be divided by the sum of applied weights.
+
+ +#### Inputs (2 - 3) + +
+
input : T
+
Input tensor of shape (N, C) or (N, C, d1, d2, ..., dk).
+
target : Tind
+
Target tensor of shape (N) or (N, d1, d2, ..., dk). Target element value shall be in range of [0, C). If ignore_index is specified, it may have a value outside [0, C) and the target values should either be in the range [0, C) or have the value ignore_index.
+
weight (optional) : T
+
Optional rescaling weight tensor. If given, it has to be a tensor of size C. Otherwise, it is treated as if having all ones.
+
+ +#### Outputs + +
+
loss : T
+
The negative log likelihood loss
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input, weight, and output types to floating-point tensors.
+
Tind : tensor(int32), tensor(int64)
+
Constrain target to integer types
+
+ +### **Pow-12** + + Pow takes input data (Tensor) and exponent Tensor, and + produces one output data (Tensor) where the function `f(x) = x^exponent`, + is applied to the data tensor elementwise. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Inputs + +
+
X : T
+
First operand, base of the exponent.
+
Y : T1
+
Second operand, power of the exponent.
+
+ +#### Outputs + +
+
Z : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input X and output types to float/int tensors.
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input Y types to float/int tensors.
+
+ +### **ReduceMax-12** + + Computes the max of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(uint8), tensor(int8)
+
Constrain input and output types to high-precision and 8 bit numeric tensors.
+
+ +### **ReduceMin-12** + + Computes the min of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equal 0, then + the resulted tensor have the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(uint8), tensor(int8)
+
Constrain input and output types to high-precision and 8 bit numeric tensors.
+
+ +### **SoftmaxCrossEntropyLoss-12** + + Loss function that measures the softmax cross entropy + between 'scores' and 'labels'. + This operator first computes a loss tensor whose shape is identical to the labels input. + If the input is 2-D with shape (N, C), the loss tensor may be a N-element vector L = (l_1, l_2, ..., l_N). + If the input is N-D tensor with shape (N, C, D1, D2, ..., Dk), + the loss tensor L may have (N, D1, D2, ..., Dk) as its shape and L[i,][j_1][j_2]...[j_k] denotes a scalar element in L. + After L is available, this operator can optionally do a reduction operator. + + shape(scores): (N, C) where C is the number of classes, or (N, C, D1, D2,..., Dk), + with K >= 1 in case of K-dimensional loss. + shape(labels): (N) where each value is 0 <= labels[i] <= C-1, or (N, D1, D2,..., Dk), + with K >= 1 in case of K-dimensional loss. + + The loss for one sample, l_i, can caculated as follows: + l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk], where i is the index of classes. + or + l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk] * weights[c], if 'weights' is provided. + + loss is zero for the case when label-value equals ignore_index. + l[i][d1][d2]...[dk] = 0, when labels[n][d1][d2]...[dk] = ignore_index + + where: + p = Softmax(scores) + y = Log(p) + c = labels[i][d1][d2]...[dk] + + Finally, L is optionally reduced: + If reduction = 'none', the output is L with shape (N, D1, D2, ..., Dk). + If reduction = 'sum', the output is scalar: Sum(L). + If reduction = 'mean', the output is scalar: ReduceMean(L), or if weight is provided: ReduceSum(L) / ReduceSum(W), + where tensor W is of shape (N, D1, D2, ..., Dk) and W[n][d1][d2]...[dk] = weights[labels[i][d1][d2]...[dk]]. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
ignore_index : int
+
Specifies a target value that is ignored and does not contribute to the input gradient. It's an optional value.
+
reduction : string (default is mean)
+
Type of reduction to apply to loss: none, sum, mean(default). 'none': no reduction will be applied, 'sum': the output will be summed. 'mean': the sum of the output will be divided by the number of elements in the output.
+
+ +#### Inputs (2 - 3) + +
+
scores : T
+
The predicted outputs with shape [batch_size, class_size], or [batch_size, class_size, D1, D2 , ..., Dk], where K is the number of dimensions.
+
labels : Tind
+
The ground truth output tensor, with shape [batch_size], or [batch_size, D1, D2, ..., Dk], where K is the number of dimensions. Labels element value shall be in range of [0, C). If ignore_index is specified, it may have a value outside [0, C) and the label values should either be in the range [0, C) or have the value ignore_index.
+
weights (optional) : T
+
A manual rescaling weight given to each class. If given, it has to be a 1D Tensor assigning weight to each of the classes. Otherwise, it is treated as if having all ones.
+
+ +#### Outputs (1 - 2) + +
+
output : T
+
Weighted loss float Tensor. If reduction is 'none', this has the shape of [batch_size], or [batch_size, D1, D2, ..., Dk] in case of K-dimensional loss. Otherwise, it is a scalar.
+
log_prob (optional) : T
+
Log probability tensor. If the output of softmax is prob, its value is log(prob).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
Tind : tensor(int32), tensor(int64)
+
Constrain target to integer types
+
+ +## Version 13 of the default ONNX operator set +### **Abs-13** + + Absolute takes one input data (Tensor) and produces one output data + (Tensor) where the absolute is, y = abs(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Add-13** + + Performs element-wise binary addition (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ArgMax-13** + + Computes the indices of the max elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equals 0, then the resulting tensor has the reduced dimension pruned. + If select_last_index is True (default False), the index of the last occurrence of the max + is selected if the max appears more than once in the input. Otherwise the index of the + first occurrence is selected. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
select_last_index : int (default is 0)
+
Whether to select the last index or the first index if the {name} appears in multiple indices, default is False (first index).
+
+ +#### Inputs + +
+
data (non-differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (non-differentiable) : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **ArgMin-13** + + Computes the indices of the min elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equals 0, then the resulting tensor has the reduced dimension pruned. + If select_last_index is True (default False), the index of the last occurrence of the min + is selected if the min appears more than once in the input. Otherwise the index of the + first occurrence is selected. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
select_last_index : int (default is 0)
+
Whether to select the last index or the first index if the {name} appears in multiple indices, default is False (first index).
+
+ +#### Inputs + +
+
data (non-differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (non-differentiable) : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Cast-13** + + The operator casts the elements of a given input tensor to a data type + specified by the 'to' argument and returns an output tensor of the same size in + the converted type. The 'to' argument must be one of the data types specified + in the 'DataType' enum field in the TensorProto message. + + Casting from string tensor in plain (e.g., "3.14" and "1000") and scientific numeric representations + (e.g., "1e-5" and "1E8") to float types is supported. For example, converting string "100.5" to an integer may + result 100. There are some string literals reserved for special floating-point values; + "+INF" (and "INF"), "-INF", and "NaN" are positive infinity, negative infinity, and not-a-number, respectively. + Any string which can exactly match "+INF" in a case-insensitive way would be mapped to positive infinite. Similarly, + this case-insensitive rule is applied to "INF" and "NaN". When casting from numeric tensors + to string tensors, plain floating-point representation (such as "314.15926") would be used. + Converting non-numerical-literal string such as "Hello World!" is an undefined behavior. Cases + of converting string representing floating-point arithmetic value, such as "2.718", to INT is an undefined behavior. + + Conversion from a numerical type to any numerical type is always allowed. + User must be aware of precision loss and value change caused by range difference between two types. + For example, a 64-bit float 3.1415926459 may be round to a 32-bit float 3.141592. Similarly, converting + an integer 36 to Boolean may produce 1 because we truncate bits which can't be stored in the targeted type. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
to : int (required)
+
The data type to which the elements of the input tensor are cast. Strictly must be one of the types from DataType enum in TensorProto
+
+ +#### Inputs + +
+
input (differentiable) : T1
+
Input tensor to be cast.
+
+ +#### Outputs + +
+
output (differentiable) : T2
+
Output tensor with the same shape as input with type specified by the 'to' argument
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string), tensor(bfloat16)
+
Constrain input types. Casting from complex is not supported.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string), tensor(bfloat16)
+
Constrain output types. Casting to complex is not supported.
+
+ +### **Ceil-13** + + Ceil takes one input data (Tensor) and produces one output data + (Tensor) where the ceil is, y = ceil(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Clip-13** + + Clip operator limits the given input within an interval. The interval is + specified by the inputs 'min' and 'max'. They default to + numeric_limits::lowest() and numeric_limits::max(), respectively. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs (1 - 3) + +
+
input (differentiable) : T
+
Input tensor whose elements to be clipped
+
min (optional, non-differentiable) : T
+
Minimum value, under which element is replaced by min. It must be a scalar(tensor of empty shape).
+
max (optional, non-differentiable) : T
+
Maximum value, above which element is replaced by max. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor with clipped input elements
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Concat-13** + + Concatenate a list of tensors into a single tensor. All input tensors must have the same shape, except for the dimension size of the axis to concatenate on. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (required)
+
Which axis to concat on. A negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(inputs)..
+
+ +#### Inputs (1 - ∞) + +
+
inputs (variadic, differentiable) : T
+
List of tensors for concatenation
+
+ +#### Outputs + +
+
concat_result (differentiable) : T
+
Concatenated tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain output types to any tensor type.
+
+ +### **Constant-13** + + This operator produces a constant tensor. Exactly one of the provided attributes, either value, sparse_value, + or value_* must be specified. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
sparse_value : sparse_tensor
+
The value for the elements of the output tensor in sparse format.
+
value : tensor
+
The value for the elements of the output tensor.
+
value_float : float
+
The value for the sole element for the scalar, float32, output tensor.
+
value_floats : list of floats
+
The values for the elements for the 1D, float32, output tensor.
+
value_int : int
+
The value for the sole element for the scalar, int64, output tensor.
+
value_ints : list of ints
+
The values for the elements for the 1D, int64, output tensor.
+
value_string : string
+
The value for the sole element for the scalar, UTF-8 string, output tensor.
+
value_strings : list of strings
+
The values for the elements for the 1D, UTF-8 string, output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor containing the same value of the provided tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **DepthToSpace-13** + + DepthToSpace rearranges (permutes) data from depth into blocks of spatial data. + This is the reverse transformation of SpaceToDepth. More specifically, this op outputs a copy of + the input tensor where values from the depth dimension are moved in spatial blocks to the height + and width dimensions. By default, `mode` = `DCR`. + In the DCR mode, elements along the depth dimension from the input tensor are rearranged in the + following order: depth, column, and then row. The output y is computed from the input x as below: + + b, c, h, w = x.shape + + tmp = np.reshape(x, [b, blocksize, blocksize, c // (blocksize**2), h, w]) + + tmp = np.transpose(tmp, [0, 3, 4, 1, 5, 2]) + + y = np.reshape(tmp, [b, c // (blocksize**2), h * blocksize, w * blocksize]) + + + In the CRD mode, elements along the depth dimension from the input tensor are rearranged in the + following order: column, row, and the depth. The output y is computed from the input x as below: + + b, c, h, w = x.shape + + tmp = np.reshape(x, [b, c // (blocksize ** 2), blocksize, blocksize, h, w]) + + tmp = np.transpose(tmp, [0, 1, 4, 2, 5, 3]) + + y = np.reshape(tmp, [b, c // (blocksize ** 2), h * blocksize, w * blocksize]) + + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
blocksize : int (required)
+
Blocks of [blocksize, blocksize] are moved.
+
mode : string (default is DCR)
+
DCR (default) for depth-column-row order re-arrangement. Use CRD for column-row-depth order.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Input tensor of [N,C,H,W], where N is the batch axis, C is the channel or depth, H is the height and W is the width.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor of [N, C/(blocksize * blocksize), H * blocksize, W * blocksize].
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **DequantizeLinear-13** + + The linear dequantization operator. It consumes a quantized tensor, a scale, and a zero point to compute the full precision tensor. + The dequantization formula is y = (x - x_zero_point) * x_scale. 'x_scale' and 'x_zero_point' must have same shape, and can be either a scalar + for per-tensor / per layer quantization, or a 1-D tensor for per-axis quantization. + 'x_zero_point' and 'x' must have same type. 'x' and 'y' must have same shape. In the case of dequantizing int32, + there's no zero point (zero point is supposed to be 0). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
(Optional) The axis of the dequantizing dimension of the input tensor. Ignored for per-tensor quantization. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
+ +#### Inputs (2 - 3) + +
+
x : T
+
N-D quantized input tensor to be de-quantized.
+
x_scale : tensor(float)
+
Scale for input 'x'. It can be a scalar, which means a per-tensor/layer dequantization, or a 1-D tensor for per-axis dequantization.
+
x_zero_point (optional) : T
+
Zero point for input 'x'. Shape must match x_scale. It's optional. Zero point is 0 when it's not specified.
+
+ +#### Outputs + +
+
y : tensor(float)
+
N-D full precision output tensor. It has same shape as input 'x'.
+
+ +#### Type Constraints + +
+
T : tensor(int8), tensor(uint8), tensor(int32)
+
Constrain 'x_zero_point' and 'x' to 8-bit/32-bit integer tensor.
+
+ +### **Div-13** + + Performs element-wise binary division (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Dropout-13** + + Dropout takes an input floating-point tensor, an optional input ratio (floating-point scalar) and an optional input training_mode (boolean scalar). It produces two tensor outputs, + output (floating-point tensor) and mask (optional `Tensor`). If `training_mode` is true then the output Y will be a random dropout; + Note that this Dropout scales the masked input data by the following equation, so to convert the trained model into inference mode, + the user can simply not pass `training_mode` input or set it to false. + ``` + output = scale * data * mask, + ``` + where + ``` + scale = 1. / (1. - ratio). + ``` + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
seed : int
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs (1 - 3) + +
+
data (differentiable) : T
+
The input data as Tensor.
+
ratio (optional, non-differentiable) : T1
+
The ratio of random dropout, with value in [0, 1). If this input was not set, or if it was set to 0, the output would be a simple copy of the input. If it's non-zero, output will be a random dropout of the scaled input, which is typically the case during training. It is an optional value, if not specified it will default to 0.5.
+
training_mode (optional, non-differentiable) : T2
+
If set to true then it indicates dropout is being used for training. It is an optional value hence unless specified explicitly, it is false. If it is false, ratio is ignored and the operation mimics inference mode where nothing will be dropped from the input data and if mask is requested as output it will contain all ones.
+
+ +#### Outputs (1 - 2) + +
+
output (differentiable) : T
+
The output.
+
mask (optional, non-differentiable) : T2
+
The output mask.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input 'ratio' types to float tensors.
+
T2 : tensor(bool)
+
Constrain output 'mask' types to boolean tensors.
+
+ +### **Equal-13** + + Returns the tensor resulted from performing the `equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Erf-13** + + Computes the error function of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The error function of the input tensor computed element-wise. It has the same shape and type of the input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Exp-13** + + Calculates the exponential of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The exponential of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Expand-13** + + Broadcast the input tensor following the given shape and the broadcast rule. + The broadcast rule is similar to numpy.array(input) * numpy.ones(shape): + Dimensions are right alignment; + Two corresponding dimensions must have the same value, or one of them is equal to 1. + Also, this operator is similar to numpy.broadcast_to(input, shape), + but the major difference is numpy.broadcast_to() does not allow shape to be smaller than input.size(). + It is possible that the output.shape is not equal to shape, when some dimensions in shape is equal to 1, + or the shape.ndim < input.shape.ndim. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
shape (non-differentiable) : tensor(int64)
+
A 1-D tensor indicates the shape you want to expand to, following the broadcast rule
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensors.
+
+ +### **Flatten-13** + + Flattens the input tensor into a 2D matrix. If input tensor has shape + (d_0, d_1, ... d_n) then the output will have shape + (d_0 X d_1 ... d_(axis-1), d_axis X d_(axis+1) ... X dn). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
Indicate up to which input dimensions (exclusive) should be flattened to the outer dimension of the output. The value for axis must be in the range [-r, r], where r is the rank of the input tensor. Negative value means counting dimensions from the back. When axis = 0, the shape of the output tensor is (1, (d_0 X d_1 ... d_n), where the shape of the input tensor is (d_0, d_1, ... d_n).
+
+ +#### Inputs + +
+
input (differentiable) : T
+
A tensor of rank >= axis.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
A 2D tensor with the contents of the input tensor, with input dimensions up to axis flattened to the outer dimension of the output and remaining input dimensions flattened into the inner dimension of the output.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output to all tensor types.
+
+ +### **Floor-13** + + Floor takes one input data (Tensor) and produces one output data + (Tensor) where the floor is, y = floor(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Gather-13** + + Given `data` tensor of rank r >= 1, and `indices` tensor of rank q, gather + entries of the axis dimension of `data` (by default outer-most one as axis=0) indexed by `indices`, and concatenates + them in an output tensor of rank q + (r - 1). + + axis = 0 : + + Let + k = indices[i_{0}, ..., i_{q-1}] + Then + output[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}] = input[k , j_{0}, ..., j_{r-2}] + + ``` + data = [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + indices = [ + [0, 1], + [1, 2], + ] + output = [ + [ + [1.0, 1.2], + [2.3, 3.4], + ], + [ + [2.3, 3.4], + [4.5, 5.7], + ], + ] + ``` + axis = 1 : + + Let + k = indices[i_{0}, ..., i_{q-1}] + Then + output[j_{0}, i_{0}, ..., i_{q-1}, j_{1}, ..., j_{r-2}] = input[j_{0}, k, j_{1}, ..., j_{r-2}] + + ``` + data = [ + [1.0, 1.2, 1.9], + [2.3, 3.4, 3.9], + [4.5, 5.7, 5.9], + ] + indices = [ + [0, 2], + ] + axis = 1, + output = [ + [[1.0, 1.9]], + [[2.3, 3.9]], + [[4.5, 5.9]], + ] + ``` + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to gather on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : Tind
+
Tensor of int32/int64 indices, of any rank q. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank q + (r - 1).
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **GatherElements-13** + + GatherElements takes two inputs `data` and `indices` of the same rank r >= 1 + and an optional attribute `axis` that identifies an axis of `data` + (by default, the outer-most axis, that is axis 0). It is an indexing operation + that produces its output by indexing into the input data tensor at index + positions determined by elements of the `indices` tensor. + Its output shape is the same as the shape of `indices` and consists of one value + (gathered from the `data`) for each element in `indices`. + + For instance, in the 3-D case (r = 3), the output produced is determined + by the following equations: + ``` + out[i][j][k] = input[index[i][j][k]][j][k] if axis = 0, + out[i][j][k] = input[i][index[i][j][k]][k] if axis = 1, + out[i][j][k] = input[i][j][index[i][j][k]] if axis = 2, + ``` + + This operator is also the inverse of ScatterElements. It is similar to Torch's gather operation. + + Example 1: + ``` + data = [ + [1, 2], + [3, 4], + ] + indices = [ + [0, 0], + [1, 0], + ] + axis = 1 + output = [ + [1, 1], + [4, 3], + ] + ``` + Example 2: + ``` + data = [ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], + ] + indices = [ + [1, 2, 0], + [2, 0, 0], + ] + axis = 0 + output = [ + [4, 8, 3], + [7, 2, 3], + ] + ``` + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to gather on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : Tind
+
Tensor of int32/int64 indices, with the same rank r as the input. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of the same shape as indices.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **GatherND-13** + + Given `data` tensor of rank `r` >= 1, `indices` tensor of rank `q` >= 1, and `batch_dims` integer `b`, this operator gathers + slices of `data` into an output tensor of rank `q + r - indices_shape[-1] - 1 - b`. + + `indices` is an q-dimensional integer tensor, best thought of as a `(q-1)`-dimensional tensor of index-tuples into `data`, + where each element defines a slice of `data` + + `batch_dims` (denoted as `b`) is an integer indicating the number of batch dimensions, i.e the leading `b` number of dimensions of + `data` tensor and `indices` are representing the batches, and the gather starts from the `b+1` dimension. + + Some salient points about the inputs' rank and shape: + + 1) r >= 1 and q >= 1 are to be honored. There is no dependency condition to be met between ranks `r` and `q` + + 2) The first `b` dimensions of the shape of `indices` tensor and `data` tensor must be equal. + + 3) b < min(q, r) is to be honored. + + 4) The `indices_shape[-1]` should have a value between 1 (inclusive) and rank `r-b` (inclusive) + + 5) All values in `indices` are expected to be within bounds [-s, s-1] along axis of size `s` (i.e.) `-data_shape[i] <= indices[...,i] <= data_shape[i] - 1`. + It is an error if any of the index values are out of bounds. + + The output is computed as follows: + + The output tensor is obtained by mapping each index-tuple in the `indices` tensor to the corresponding slice of the input `data`. + + 1) If `indices_shape[-1] > r-b` => error condition + + 2) If `indices_shape[-1] == r-b`, since the rank of `indices` is `q`, `indices` can be thought of as `N` `(q-b-1)`-dimensional tensors + containing 1-D tensors of dimension `r-b`, where `N` is an integer equals to the product of 1 and all the elements in the batch dimensions + of the indices_shape. Let us think of each such `r-b` ranked tensor as `indices_slice`. Each *scalar value* corresponding to `data[0:b-1,indices_slice]` + is filled into the corresponding location of the `(q-b-1)`-dimensional tensor to form the `output` tensor (Example 1 below) + + 3) If `indices_shape[-1] < r-b`, since the rank of `indices` is `q`, `indices` can be thought of as `N` `(q-b-1)`-dimensional tensor + containing 1-D tensors of dimension `< r-b`. Let us think of each such tensors as `indices_slice`. Each *tensor slice* corresponding + to `data[0:b-1, indices_slice , :]` is filled into the corresponding location of the `(q-b-1)`-dimensional tensor + to form the `output` tensor (Examples 2, 3, 4 and 5 below) + + This operator is the inverse of `ScatterND`. + + `Example 1` + + batch_dims = 0 + + data = [[0,1],[2,3]] # data_shape = [2, 2] + + indices = [[0,0],[1,1]] # indices_shape = [2, 2] + + output = [0,3] # output_shape = [2] + + `Example 2` + + batch_dims = 0 + + data = [[0,1],[2,3]] # data_shape = [2, 2] + + indices = [[1],[0]] # indices_shape = [2, 1] + + output = [[2,3],[0,1]] # output_shape = [2, 2] + + `Example 3` + + batch_dims = 0 + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[0,1],[1,0]] # indices_shape = [2, 2] + + output = [[2,3],[4,5]] # output_shape = [2, 2] + + `Example 4` + + batch_dims = 0 + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[[0,1]],[[1,0]]] # indices_shape = [2, 1, 2] + + output = [[[2,3]],[[4,5]]] # output_shape = [2, 1, 2] + + `Example 5` + + batch_dims = 1 + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[1],[0]] # indices_shape = [2, 1] + + output = [[2,3],[4,5]] # output_shape = [2, 2] + + + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
batch_dims : int (default is 0)
+
The number of batch dimensions. The gather of indexing starts from dimension of data[batch_dims:]
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : tensor(int64)
+
Tensor of rank q >= 1. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank q + r - indices_shape[-1] - 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
+ +### **Gemm-13** + + General Matrix multiplication: + https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 + + A' = transpose(A) if transA else A + + B' = transpose(B) if transB else B + + Compute Y = alpha * A' * B' + beta * C, where input tensor A has shape (M, K) or (K, M), + input tensor B has shape (K, N) or (N, K), input tensor C is broadcastable to shape (M, N), + and output tensor Y has shape (M, N). A will be transposed before doing the + computation if attribute transA is non-zero, same for B and transB. + This operator supports **unidirectional broadcasting** (tensor C should be unidirectional broadcastable to tensor A * B); for more details please check [the doc](Broadcasting.md). + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Scalar multiplier for the product of input tensors A * B.
+
beta : float (default is 1.0)
+
Scalar multiplier for input tensor C.
+
transA : int (default is 0)
+
Whether A should be transposed
+
transB : int (default is 0)
+
Whether B should be transposed
+
+ +#### Inputs (2 - 3) + +
+
A (differentiable) : T
+
Input tensor A. The shape of A should be (M, K) if transA is 0, or (K, M) if transA is non-zero.
+
B (differentiable) : T
+
Input tensor B. The shape of B should be (K, N) if transB is 0, or (N, K) if transB is non-zero.
+
C (optional, differentiable) : T
+
Optional input tensor C. If not specified, the computation is done as if C is a scalar 0. The shape of C should be unidirectional broadcastable to (M, N).
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor of shape (M, N).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(bfloat16)
+
Constrain input and output types to float/int tensors.
+
+ +### **Greater-13** + + Returns the tensor resulted from performing the `greater` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Hardmax-13** + + The operator computes the hardmax values for the given input: + + Hardmax(element in input, axis) = 1 if the element is the first maximum value along the specified axis, 0 otherwise + + The "axis" attribute indicates the dimension along which Hardmax + will be performed. The output tensor has the same shape + and contains the Hardmax values of the corresponding input. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
+Describes the dimension Hardmax will be performed on. +Negative value means counting dimensions +from the back. Accepted range is [-r, r-1] where r = rank(input). +
+
+ +#### Inputs + +
+
input (differentiable) : T
+
The input tensor of rank >= axis.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output values with the same shape as the input tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Identity-13** + + Identity operator + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor to copy input into.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **If-13** + + If conditional + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
else_branch : graph (required)
+
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
+
then_branch : graph (required)
+
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
+
+ +#### Inputs + +
+
cond : B
+
Condition for the if
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : V
+
Values that are live-out to the enclosing scope. The return values in the `then_branch` and `else_branch` must be of the same data type. The `then_branch` and `else_branch` may produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the the first output of `then_branch` is typed float tensor with shape [2] and the first output of `else_branch` is another float tensor with shape [3], If's first output should have (a) no shape set, or (b) a shape of rank 1 with neither `dim_value` nor `dim_param` set, or (c) a shape of rank 1 with a unique `dim_param`. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
All Tensor and Sequence types
+
B : tensor(bool)
+
Only bool
+
+ +### **IsNaN-13** + + Returns which elements of the input are NaN. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (non-differentiable) : T1
+
input
+
+ +#### Outputs + +
+
Y (non-differentiable) : T2
+
output
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to float tensors.
+
T2 : tensor(bool)
+
Constrain output types to boolean tensors.
+
+ +### **LRN-13** + + Local Response Normalization proposed in the [AlexNet paper](https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf). + It normalizes over local input regions. + The local region is defined across the channels. For an element X[n, c, d1, ..., dk] in a tensor + of shape (N x C x D1 x D2, ..., Dk), its region is + {X[n, i, d1, ..., dk] | max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2))}. + + square_sum[n, c, d1, ..., dk] = sum(X[n, i, d1, ..., dk] ^ 2), + where max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2)). + + Y[n, c, d1, ..., dk] = X[n, c, d1, ..., dk] / (bias + alpha / size * square_sum[n, c, d1, ..., dk] ) ^ beta + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 0.0001)
+
Scaling parameter.
+
beta : float (default is 0.75)
+
The exponent.
+
bias : float (default is 1.0)
+
+
size : int (required)
+
The number of channels to sum over
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor, which has the shape and type as input tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Less-13** + + Returns the tensor resulted from performing the `less` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Log-13** + + Calculates the natural log of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The natural log of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **LogSoftmax-13** + + The operator computes the log of softmax values for the given input: + + LogSoftmax(input, axis) = Log(Softmax(input, axis=axis)) + + The "axis" attribute indicates the dimension along which LogSoftmax + will be performed. The output tensor has the same shape + and contains the LogSoftmax values of the corresponding input. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
+Describes the dimension LogSoftmax will be performed on. +Negative value means counting dimensions +from the back. Accepted range is [-r, r-1] where r = rank(input). +
+
+ +#### Inputs + +
+
input (differentiable) : T
+
The input tensor of rank >= axis.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output values with the same shape as the input tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Loop-13** + + Generic Looping construct. This loop has multiple termination conditions: + + 1) Trip count. Iteration count specified at runtime. Set by + specifying the input M. Optional. Set to empty string to omit. + Note that a static trip count (specified at graph construction time) can be + specified by passing in a constant node for input M. + 2) Loop termination condition. This is an input to the op that determines + whether to run the first iteration and also a loop-carried dependency for + the body graph. The body graph must yield a value for the condition variable, + whether this input is provided or not. + + This table summarizes the operating modes of this operator with equivalent + C-style code: + + Operator inputs defined as (max_trip_count, condition_var). + + input ("", ""): + for (int i=0; ; ++i) { + cond = ... // Note this value is ignored, but is required in the body + } + + input ("", cond) // Note this is analogous to a while loop + bool cond = ...; + for (int i=0; cond; ++i) { + cond = ...; + } + + input ("", 1) // Note this is analogous to a do-while loop + bool cond = true + for (int i=0; cond; ++i) { + cond = ...; + } + + input (trip_count, "") // Note this is analogous to a for loop + int trip_count = ... + for (int i=0; i < trip_count; ++i) { + cond = ...; // ignored + } + + input (trip_count, cond) + int trip_count = ...; + bool cond = ...; + for (int i=0; i < trip_count && cond; ++i) { + cond = ...; + } + + + *Sample usage - cond as well as trip count* + + graph predict-net { + %a = Constant[value = ]() + %b = Constant[value = ]() + %keepgoing = Constant[value = ]() + %max_trip_count = Constant[value = ]() + %keepgoing_out, %b_out, %user_defined_vals = Loop[body = ](%max_trip_count, %keepgoing, %b) + return + } + + graph body-net ( + %i[INT32, scalar] // iteration number + %keepgoing_in[BOOL, scalar] // incoming loop-termination-condition; not used + %b_in[INT32, scalar] // incoming value of loop-carried-dependency b + ) { + %my_local = Add(%a, %b_in) + %b_out = Sub(%a, %b_in) // outgoing value of loop-carried-dependency b + %keepgoing_out = Greater(%my_local, %b_out) // outgoing loop-termination-condition + %user_defined_val = Add(%b_in, %b_in) // scan-output value to be accumulated + return %keepgoing_out, %b_out, %user_defined_val + } + + *Sample equivalent C code* + + { + /* User-defined code (enclosing scope) */ + int a = 3, b = 6; + bool keepgoing = true; // Analogous to input cond + /* End user-defined code */ + + /* Implicitly-defined code */ + const int max_trip_count = 10; // Analogous to input M + int user_defined_vals[]; // Imagine this is resizable + /* End implicitly-defined code */ + /* initialize loop-carried variables and scan-output variables */ + bool keepgoing_out = keepgoing + int b_out = b + + for (int i=0; i < max_trip_count && keepgoing_out; ++i) { + /* Implicitly-defined code: bind actual parameter values + to formal parameter variables of loop-body */ + bool keepgoing_in = keepgoing_out; + bool b_in = b_out; + + /* User-defined code (loop body) */ + int my_local = a + b_in; // Reading value "a" from the enclosing scope is fine + b_out = a - b_in; + keepgoing_out = my_local > b_out; + user_defined_val = b_in + b_in; // b_in and b_out are different variables + /* End user-defined code */ + + /* Implicitly defined-code */ + user_defined_vals[i] = user_defined_val // accumulate scan-output values + } + // int t = my_local; // Can't do this. my_local is not accessible here. + + // The values below are bound to the output variables of the loop and therefore accessible + // b_out; user_defined_vals; keepgoing_out; + } + + There are several things of note in this code snippet: + + 1) Values from the enclosing scope (i.e. variable "a" here) are in scope and can + be referenced in the inputs of the loop. + 2) Any values computed in the loop body that needs to be used in a subsequent + iteration or after the loop are modelled using a pair of variables in the loop-body, + consisting of an input variable (eg., b_in) and an output variable (eg., b_out). + These are referred to as loop-carried dependences. The loop operation node + supplies the input value of the input variable for the first iteration, and + returns the output value of the output variable produced by the final + iteration. + 3) Scan_output variables are used to implicitly concatenate values computed across + all the iterations. In the above example, the value of user_defined_val computed + over all iterations are concatenated and returned as the value of user_defined_vals + after the loop. + 4) Values created in the body cannot be accessed in the enclosing scope, + except using the mechanism described above. + + Note that the semantics of this op support "diagonal" or "wavefront" execution. + (See Step 3 here for an example: + https://devblogs.nvidia.com/optimizing-recurrent-neural-networks-cudnn-5/). + Frontends should emit multi-layer RNNs as a series of While operators (with + time being the inner looping dimension), with each successive layer consuming + the scan_outputs from the previous layer, possibly going through several + point-wise operators (e.g. dropout, residual connections, linear layer). + + The input/output of subgraph (produced by loop node) matching is based on order instead of name. The implementation will figure out the names based on this order. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has 2+N inputs: (iteration_num, condition, loop carried dependencies...). It has 1+N+K outputs: (condition, loop carried dependencies..., scan_outputs...). Each scan_output is created by concatenating the value of the specified output value at the end of each iteration of the loop. It is an error if the dimensions or data type of these scan_outputs change across loop iterations.
+
+ +#### Inputs (2 - ∞) + +
+
M (optional) : I
+
A maximum trip-count for the loop specified at runtime. Optional. Pass empty string to skip.
+
cond (optional) : B
+
A boolean termination condition. Optional. Pass empty string to skip.
+
v_initial (variadic, heterogeneous) : V
+
The initial values of any loop-carried dependencies (values that change across loop iterations)
+
+ +#### Outputs (1 - ∞) + +
+
v_final_and_scan_outputs (variadic, heterogeneous) : V
+
Final N loop carried dependency values then K scan_outputs. Scan outputs must be Tensors.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
All Tensor and Sequence types
+
I : tensor(int64)
+
tensor of int64, which should be a scalar.
+
B : tensor(bool)
+
tensor of bool, which should be a scalar.
+
+ +### **MatMul-13** + + Matrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
A (differentiable) : T
+
N-dimensional matrix A
+
B (differentiable) : T
+
N-dimensional matrix B
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Matrix multiply results from A * B
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(bfloat16)
+
Constrain input and output types to float/int tensors.
+
+ +### **Max-13** + + Element-wise max of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic, differentiable) : T
+
List of tensors for max.
+
+ +#### Outputs + +
+
max (differentiable) : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to numeric tensors.
+
+ +### **Mean-13** + + Element-wise mean of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic, differentiable) : T
+
List of tensors for mean.
+
+ +#### Outputs + +
+
mean (differentiable) : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **MeanVarianceNormalization-13** + + A MeanVarianceNormalization Function: Perform mean variance normalization + on the input tensor X using formula:
``` (X-EX)/sqrt(E(X-EX)^2) ``` + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints (default is ['0', '2', '3'])
+
A list of integers, along which to reduce. The default is to caculate along axes [0,2,3] for calculating mean and variance along each channel. Two variables with the same C-coordinate are associated with the same mean and variance.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Min-13** + + Element-wise min of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic, differentiable) : T
+
List of tensors for min.
+
+ +#### Outputs + +
+
min (differentiable) : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to numeric tensors.
+
+ +### **Mod-13** + + Performs element-wise binary modulus (with Numpy-style broadcasting support). + The sign of the remainder is the same as that of the Divisor. + + Mod operator can also behave like C fmod() or numpy.fmod. In this case, the sign of the remainder however, will be the same as the Dividend + (in contrast to integer mod). To force a behavior like numpy.fmod() an 'fmod' Attribute is provided. + This attribute is set to 0 by default causing the behavior to be like integer mod. + Setting this attribute to 1 causes the remainder to be calculated similar to that of numpy.fmod(). + + If the input type is floating point, then `fmod` attribute must be set to 1. + + In case of dividend being zero, the results will be platform dependent. + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
fmod : int (default is 0)
+
Whether the operator should behave like fmod (default=0 meaning it will do integer mods); Set this to 1 to force fmod treatment
+
+ +#### Inputs + +
+
A (differentiable) : T
+
Dividend tensor
+
B (non-differentiable) : T
+
Divisor tensor
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Remainder tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Mul-13** + + Performs element-wise binary multiplication (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Neg-13** + + Neg takes one input data (Tensor) and produces one output data + (Tensor) where each element flipped sign, y = -x, is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(int32), tensor(int8), tensor(int16), tensor(int64), tensor(float16), tensor(double), tensor(bfloat16)
+
Constrain input and output types to signed numeric tensors.
+
+ +### **NegativeLogLikelihoodLoss-13** + + A NegativeLogLikelihoodLoss operator computes (weighted) negative log likelihood loss. + Its "input" tensor has the shape of (N, C, d1, d2, ..., dk) where k >= 0. + The "input" tensor contains log-probabilities for input[n, :, d_1, d_2,..., d_k] being in a class of [0, C). + The operator's "target" input tensor has the shape of (N, d1, d2, ..., dk). It encodes class labels (one of C classes) + or it may contain a special value (indicated by an attribute ignore_index) for N x d1 x d2 x ... x dk samples. + The loss value for input[n, :, d_1, d_2,...d_k] being classified as class c = target[n][d_1][d_2]...[d_k] is computed as: + + loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k]. + + When an optional "weight" is provided, the sample loss is calculated as: + + loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k] * weight[c]. + + loss is zero for the case when target-value equals ignore_index. + + loss[n][d_1][d_2]...[d_k] = 0, when target[n][d_1][d_2]...[d_k] = ignore_index + + If "reduction" attribute is set to "none", the operator's output will be the above loss with shape (N, d1, d2, ..., dk). + If "reduction" attribute is set to "mean" (the default attribute value), the output loss is (weight) averaged: + + mean(loss), if "weight" is not provided, + + or if weight is provided, + + sum(loss) / sum(weight[target[n][d_1][d_2]...[d_k]]]), for all samples. + + If "reduction" attribute is set to "sum", the output is a scalar: + sum(loss). + + See also https://pytorch.org/docs/stable/nn.html#torch.nn.NLLLoss. + + Example 1: + + // negative log likelihood loss, "none" reduction + N, C, d1 = 2, 3, 2 + input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]], + [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]] + target = [[2, 1], [0, 2]] + + loss = np.zeros((N, d1)) + for n in range(N): + for d_1 in range(d1): + c = target[n][d_1] + loss[n][d_1] = -input[n][c][d_1] + + // print(loss) + // [[-3. -2.] + // [-0. -2.]] + + Example 2: + + // weighted negative log likelihood loss, sum reduction + N, C, d1 = 2, 3, 2 + input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]], + [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]] + target = [[2, 1], [0, 2]] + weight = [0.2, 0.3, 0.1] + loss = np.zeros((N, d1)) + for n in range(N): + for d_1 in range(d1): + c = target[n][d_1] + loss[n][d_1] = -input[n][c][d_1] * weight[c] + + loss = np.sum(loss) + // print(loss) + // -1.1 + + Example 3: + + // weighted negative log likelihood loss, mean reduction + N, C, d1 = 2, 3, 2 + input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]], + [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]] + target = [[2, 1], [0, 2]] + weight = [0.2, 0.3, 0.1] + loss = np.zeros((N, d1)) + weight_total = 0 + for n in range(N): + for d_1 in range(d1): + c = target[n][d_1] + loss[n][d_1] = -input[n][c][d_1] * weight[c] + weight_total = weight_total + weight[c] + + loss = np.sum(loss) / weight_total + // print(loss) + // -1.57 + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
ignore_index : int
+
Specifies a target value that is ignored and does not contribute to the input gradient. It's an optional value.
+
reduction : string (default is mean)
+
Type of reduction to apply to loss: none, sum, mean (default). 'none': the output is the loss for each sample. 'sum': the output will be summed. 'mean': the sum of the output will be divided by the sum of applied weights.
+
+ +#### Inputs (2 - 3) + +
+
input (differentiable) : T
+
Input tensor of shape (N, C) or (N, C, d1, d2, ..., dk).
+
target (non-differentiable) : Tind
+
Target tensor of shape (N) or (N, d1, d2, ..., dk). Target element value shall be in range of [0, C). If ignore_index is specified, it may have a value outside [0, C) and the target values should either be in the range [0, C) or have the value ignore_index.
+
weight (optional, non-differentiable) : T
+
Optional rescaling weight tensor. If given, it has to be a tensor of size C. Otherwise, it is treated as if having all ones.
+
+ +#### Outputs + +
+
loss (differentiable) : T
+
The negative log likelihood loss
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input, weight, and output types to floating-point tensors.
+
Tind : tensor(int32), tensor(int64)
+
Constrain target to integer types
+
+ +### **NonZero-13** + + Returns the indices of the elements that are non-zero + (in row-major order - by dimension). + NonZero behaves similar to numpy.nonzero: + https://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (non-differentiable) : T
+
input
+
+ +#### Outputs + +
+
Y (non-differentiable) : tensor(int64)
+
output
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to all tensor types.
+
+ +### **Pad-13** + + Given a tensor containing the data to be padded (`data`), a tensor containing the number of start and end pad values for axis (`pads`), (optionally) a `mode`, and (optionally) `constant_value`, + a padded tensor (`output`) is generated. + + The three supported `modes` are (similar to corresponding modes supported by `numpy.pad`): + + 1) `constant`(default) - pads with a given constant value as specified by `constant_value` (which defaults to 0, empty string, or False) + + 2) `reflect` - pads with the reflection of the vector mirrored on the first and last values of the vector along each axis + + 3) `edge` - pads with the edge values of array + + + Example 1 (`constant` mode): + Insert 0 pads to the beginning of the second dimension. + + data = + [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + + pads = [0, 2, 0, 0] + + mode = 'constant' + + constant_value = 0.0 + + output = + [ + [0.0, 0.0, 1.0, 1.2], + [0.0, 0.0, 2.3, 3.4], + [0.0, 0.0, 4.5, 5.7], + ] + + + Example 2 (`reflect` mode): + data = + [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + + pads = [0, 2, 0, 0] + + mode = 'reflect' + + output = + [ + [1.0, 1.2, 1.0, 1.2], + [2.3, 3.4, 2.3, 3.4], + [4.5, 5.7, 4.5, 5.7], + ] + + + Example 3 (`edge` mode): + data = + [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + + pads = [0, 2, 0, 0] + + mode = 'edge' + + output = + [ + [1.0, 1.0, 1.0, 1.2], + [2.3, 2.3, 2.3, 3.4], + [4.5, 4.5, 4.5, 5.7], + ] + + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
mode : string (default is constant)
+
Supported modes: `constant`(default), `reflect`, `edge`
+
+ +#### Inputs (2 - 3) + +
+
data (differentiable) : T
+
Input tensor.
+
pads (non-differentiable) : tensor(int64)
+
Tensor of integers indicating the number of padding elements to add or remove (if negative) at the beginning and end of each axis. For 2D input tensor, it is the number of pixels. `pads` should be a 1D tensor of shape [2 * input_rank]. `pads` format should be: [x1_begin, x2_begin,...,x1_end, x2_end,...], where xi_begin is the number of pad values added at the beginning of axis `i` and xi_end, the number of pad values added at the end of axis `i`.
+
constant_value (optional, non-differentiable) : T
+
(Optional) A scalar value to be used if the mode chosen is `constant` (by default it is 0, empty string or False).
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor after padding.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Pow-13** + + Pow takes input data (Tensor) and exponent Tensor, and + produces one output data (Tensor) where the function `f(x) = x^exponent`, + is applied to the data tensor elementwise. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
First operand, base of the exponent.
+
Y (differentiable) : T1
+
Second operand, power of the exponent.
+
+ +#### Outputs + +
+
Z (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input X and output types to float/int tensors.
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input Y types to float/int tensors.
+
+ +### **QuantizeLinear-13** + + The linear quantization operator. It consumes a high precision tensor, a scale, and a zero point to compute the low precision / quantized tensor. + The scale factor and zero point must have same shape, and can be either a scalar for per-tensor / per layer quantization, or a 1-D tensor for per-axis quantization. + The quantization formula is y = saturate ((x / y_scale) + y_zero_point). + For saturation, it saturates to [0, 255] if it's uint8, or [-128, 127] if it's int8. + For (x / y_scale), it's rounding to nearest ties to even. Refer to https://en.wikipedia.org/wiki/Rounding for details. 'y_zero_point' and 'y' must have same type. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 1)
+
(Optional) The axis of the quantization dimension of the input tensor. Ignored for per-tensor quantization. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
+ +#### Inputs (2 - 3) + +
+
x : T1
+
N-D full precision Input tensor to be quantized.
+
y_scale : tensor(float)
+
Scale for doing quantization to get 'y'. It can be a scalar, which means per-tensor/layer quantization, or a 1-D Tensor for per-axis quantization.
+
y_zero_point (optional) : T2
+
Zero point for doing quantization to get 'y'. Shape must match y_scale. Default is uint8 with zero point of 0 if it's not specified.
+
+ +#### Outputs + +
+
y : T2
+
N-D quantized output tensor. It has same shape as input 'x'.
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(int32)
+
Constrain 'x' to float or int32 tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain 'y_zero_point' and 'y' to 8-bit integer tensor.
+
+ +### **Reciprocal-13** + + Reciprocal takes one input data (Tensor) and produces one output data + (Tensor) where the reciprocal is, y = 1/x, is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **ReduceL1-13** + + Computes the L1 norm of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceL2-13** + + Computes the L2 norm of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceLogSum-13** + + Computes the log sum of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceLogSumExp-13** + + Computes the log sum exponent of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceMax-13** + + Computes the max of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16), tensor(uint8), tensor(int8)
+
Constrain input and output types to high-precision and 8 bit numeric tensors.
+
+ +### **ReduceMean-13** + + Computes the mean of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceMin-13** + + Computes the min of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16), tensor(uint8), tensor(int8)
+
Constrain input and output types to high-precision and 8 bit numeric tensors.
+
+ +### **ReduceProd-13** + + Computes the product of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceSum-13** + + Computes the sum of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
noop_with_empty_axes : int (default is 0)
+
Defines behaviour if 'axes' is empty. Default behaviour with 'false' is to reduce all axes. When axes is empty and this attribute is set to true, input tensor will not be reduced,and the output tensor would be equivalent to input tensor.
+
+ +#### Inputs (1 - 2) + +
+
data (differentiable) : T
+
An input tensor.
+
axes (optional, non-differentiable) : tensor(int64)
+
Optional input list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor if 'noop_with_empty_axes' is false, else act as an Identity op when 'noop_with_empty_axes' is true. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **ReduceSumSquare-13** + + Computes the sum square of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Relu-13** + + Relu takes one input data (Tensor) and produces one output data + (Tensor) where the rectified linear function, y = max(0, x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Reshape-13** + + Reshape the input tensor similar to numpy.reshape. + First input is the data tensor, second input is a shape tensor which specifies the output shape. It outputs the reshaped tensor. + At most one dimension of the new shape can be -1. In this case, the value is + inferred from the size of the tensor and the remaining dimensions. A dimension + could also be 0, in which case the actual dimension value is unchanged (i.e. taken + from the input tensor). Shape (second input) could be an empty shape, which means converting to a scalar. + The input tensor's shape and the output tensor's shape are required to have the same number of elements. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
shape (non-differentiable) : tensor(int64)
+
Specified shape for output.
+
+ +#### Outputs + +
+
reshaped (differentiable) : T
+
Reshaped data.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Resize-13** + + Resize the input tensor. In general, it calculates every value in the output tensor as a weighted average of neighborhood (a.k.a. sampling locations) in the input tensor. + Each dimension value of the output tensor is: + output_dimension = floor(input_dimension * (roi_end - roi_start) * scale) if input \"sizes\" is not specified. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
coordinate_transformation_mode : string (default is half_pixel)
+
+This attribute describes how to transform the coordinate in the resized tensor to the coordinate in the original tensor.
+ +The coordinate of each dimension is transformed individually. Let's describe a case using axis x as an example. +Denote x_resized as the coordinate of axis x in the resized tensor, x_original as the coordinate of axis x in the original tensor, length_original as the length of the original tensor in axis x, length_resized as the length of the resized tensor in axis x, roi_x = (start_x, end_x) of the axis x in input "roi", scale = length_resized / length_original,
+ +if coordinate_transformation_mode is "half_pixel",
+x_original = (x_resized + 0.5) / scale - 0.5,
+ +if coordinate_transformation_mode is "pytorch_half_pixel",
+x_original = length_resized > 1 ? (x_resized + 0.5) / scale - 0.5 : 0,
+ +if coordinate_transformation_mode is "align_corners",
+x_original = x_resized * (length_original - 1) / (length_resized - 1),
+ +if coordinate_transformation_mode is "asymmetric",
+x_original = x_resized / scale,
+ +if coordinate_transformation_mode is "tf_crop_and_resize",
+x_original = length_resized > 1 ? start_x * (length_original - 1) + x_resized * (end_x - start_x) * (length_original - 1) / (length_resized - 1) : 0.5 * (start_x + end_x) * (length_original - 1).
+
cubic_coeff_a : float (default is -0.75)
+
The coefficient 'a' used in cubic interpolation. Two common choice are -0.5 (in some cases of TensorFlow) and -0.75 (in PyTorch). Check out Equation (4) in https://ieeexplore.ieee.org/document/1163711 for the details. This attribute is valid only if "mode" is "cubic".
+
exclude_outside : int (default is 0)
+
If set to 1, the weight of sampling locations outside the tensor will be set to 0 and the weight will be renormalized so that their sum is 1.0. The default value is 0.
+
extrapolation_value : float (default is 0.0)
+
When coordinate_transformation_mode is "tf_crop_and_resize" and x_original is outside the range [0, length_original - 1], this value is used as the corresponding output value. Default is 0.0f.
+
mode : string (default is nearest)
+
Three interpolation modes: nearest (default), linear and cubic. The "linear" mode includes linear interpolation for 1D tensor and N-linear interpolation for N-D tensor (for example, bilinear interpolation for 2D tensor). The "cubic" mode includes cubic interpolation for 1D tensor and N-cubic interpolation for N-D tensor (for example, bicubic interpolation for 2D tensor).
+
nearest_mode : string (default is round_prefer_floor)
+
Four modes: round_prefer_floor (default, as known as round half down), round_prefer_ceil (as known as round half up), floor, ceil. Only used by nearest interpolation. It indicates how to get "nearest" pixel in input tensor from x_original, so this attribute is valid only if "mode" is "nearest".
+
+ +#### Inputs (1 - 4) + +
+
X (differentiable) : T1
+
N-D tensor
+
roi (optional, non-differentiable) : T2
+
1-D tensor given as [start1, ..., startN, end1, ..., endN], where N is the rank of X. The RoIs' coordinates are normalized in the coordinate system of the input image. It only takes effect when coordinate_transformation_mode is "tf_crop_and_resize"
+
scales (optional, non-differentiable) : tensor(float)
+
The scale array along each dimension. It takes value greater than 0. If it's less than 1, it's sampling down, otherwise, it's upsampling. The number of elements of 'scales' should be the same as the rank of input 'X'. One of 'scales' and 'sizes' MUST be specified and it is an error if both are specified. If 'sizes' is needed, the user can use an empty string as the name of 'scales' in this operator's input list.
+
sizes (optional, non-differentiable) : tensor(int64)
+
The size of the output tensor. The number of elements of 'sizes' should be the same as the rank of input 'X'. Only one of 'scales' and 'sizes' can be specified.
+
+ +#### Outputs + +
+
Y (differentiable) : T1
+
N-D tensor after resizing
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input 'X' and output 'Y' to all tensor types.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Constrain roi type to float or double.
+
+ +### **ScatterElements-13** + + ScatterElements takes three inputs `data`, `updates`, and `indices` of the same + rank r >= 1 and an optional attribute axis that identifies an axis of `data` + (by default, the outer-most axis, that is axis 0). The output of the operation + is produced by creating a copy of the input `data`, and then updating its value + to values specified by `updates` at specific index positions specified by + `indices`. Its output shape is the same as the shape of `data`. + + For each entry in `updates`, the target index in `data` is obtained by combining + the corresponding entry in `indices` with the index of the entry itself: the + index-value for dimension = axis is obtained from the value of the corresponding + entry in `indices` and the index-value for dimension != axis is obtained from the + index of the entry itself. + + For instance, in a 2-D tensor case, the update corresponding to the [i][j] entry + is performed as below: + ``` + output[indices[i][j]][j] = updates[i][j] if axis = 0, + output[i][indices[i][j]] = updates[i][j] if axis = 1, + ``` + + This operator is the inverse of GatherElements. It is similar to Torch's Scatter operation. + + Example 1: + ``` + data = [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + ] + indices = [ + [1, 0, 2], + [0, 2, 1], + ] + updates = [ + [1.0, 1.1, 1.2], + [2.0, 2.1, 2.2], + ] + output = [ + [2.0, 1.1, 0.0] + [1.0, 0.0, 2.2] + [0.0, 2.1, 1.2] + ] + ``` + Example 2: + ``` + data = [[1.0, 2.0, 3.0, 4.0, 5.0]] + indices = [[1, 3]] + updates = [[1.1, 2.1]] + axis = 1 + output = [[1.0, 1.1, 3.0, 2.1, 5.0]] + ``` + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to scatter on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : Tind
+
Tensor of int32/int64 indices, of r >= 1 (same rank as input). All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
updates (differentiable) : T
+
Tensor of rank r >=1 (same rank and shape as indices)
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank r >= 1 (same rank as input).
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input and output types can be of any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **ScatterND-13** + + ScatterND takes three inputs `data` tensor of rank r >= 1, `indices` tensor of rank q >= 1, + and `updates` tensor of rank q + r - indices.shape[-1] - 1. The output of the operation + is produced by creating a copy of the input `data`, and then updating its value to values + specified by `updates` at specific index positions specified by `indices`. Its output shape + is the same as the shape of `data`. Note that `indices` should not have duplicate entries. + That is, two or more `updates` for the same index-location is not supported. + + `indices` is an integer tensor. Let k denote indices.shape[-1], the last dimension in the shape of `indices`. + `indices` is treated as a (q-1)-dimensional tensor of k-tuples, where each k-tuple is a partial-index into `data`. + Hence, k can be a value at most the rank of `data`. When k equals rank(data), each update entry specifies an + update to a single element of the tensor. When k is less than rank(data) each update entry specifies an + update to a slice of the tensor. + + `updates` is treated as a (q-1)-dimensional tensor of replacement-slice-values. Thus, the + first (q-1) dimensions of updates.shape must match the first (q-1) dimensions of indices.shape. + The remaining dimensions of `updates` correspond to the dimensions of the + replacement-slice-values. Each replacement-slice-value is a (r-k) dimensional tensor, + corresponding to the trailing (r-k) dimensions of `data`. Thus, the shape of `updates` + must equal indices.shape[0:q-1] ++ data.shape[k:r-1], where ++ denotes the concatenation + of shapes. + + The `output` is calculated via the following equation: + + output = np.copy(data) + update_indices = indices.shape[:-1] + for idx in np.ndindex(update_indices): + output[indices[idx]] = updates[idx] + + The order of iteration in the above loop is not specified. + In particular, indices should not have duplicate entries: that is, if idx1 != idx2, then indices[idx1] != indices[idx2]. + This ensures that the output value does not depend on the iteration order. + + This operator is the inverse of GatherND. + + Example 1: + ``` + data = [1, 2, 3, 4, 5, 6, 7, 8] + indices = [[4], [3], [1], [7]] + updates = [9, 10, 11, 12] + output = [1, 11, 3, 10, 9, 6, 7, 12] + ``` + + Example 2: + ``` + data = [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]] + indices = [[0], [2]] + updates = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]] + output = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]] + ``` + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : tensor(int64)
+
Tensor of rank q >= 1.
+
updates (differentiable) : T
+
Tensor of rank q + r - indices_shape[-1] - 1.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank r >= 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
+ +### **Shape-13** + + Takes a tensor as input and outputs an 1D int64 tensor containing the shape of the input tensor. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
data (non-differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
shape (non-differentiable) : T1
+
Shape of the input tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input tensor can be of arbitrary type.
+
T1 : tensor(int64)
+
Constrain output to int64 tensor.
+
+ +### **Sigmoid-13** + + Sigmoid takes one input data (Tensor) and produces one output data + (Tensor) where the sigmoid function, y = 1 / (1 + exp(-x)), is applied to the + tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Sign-13** + + Calculate the sign of the given input tensor element-wise. + If input > 0, output 1. if input < 0, output -1. if input == 0, output 0. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
input (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (non-differentiable) : T
+
The sign of the input tensor computed element-wise. It has the same shape and type of the input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Size-13** + + Takes a tensor as input and outputs a int64 scalar that equals to the total number of elements of the input tensor. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
data (non-differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
size (non-differentiable) : T1
+
Total number of elements of the input tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input tensor can be of arbitrary type.
+
T1 : tensor(int64)
+
Constrain output to int64 tensor, which should be a scalar though.
+
+ +### **Slice-13** + + Produces a slice of the input tensor along multiple axes. Similar to numpy: + https://numpy.org/doc/stable/user/basics.indexing.html?highlight=slice#slicing-and-striding + + Slice uses the `starts`, `ends`, `axes` and `steps` inputs to select a sub-tensor + of its input `data` tensor. + + An effective `start[i]`, `end[i]`, and `step[i]` must be computed for each `i` + in `[0, ... r-1]` where `r = rank(input)` as follows: + + If `axes` are omitted, they are set to `[0, ..., r-1]`. + If `steps` are omitted, they are set to `[1, ..., 1]` of length `len(starts)` + + The effective values are initialized as `start[i] = 0`, `end[i] = dims[i]` where + `dims` are the dimensions of `input` and `step[i] = `1. + + All negative elements of `axes` are made non-negatve by adding `r` to them, where + `r =rank(input)`. + + All negative values in `starts[i]` and `ends[i]` have `dims[axes[i]]` added to them, + where `dims` are the dimensions of `input`. Then `start[axes[i]]` is the adjusted + `starts[i]` is clamped into the range `[0, dims[axes[i]]]` for positive stepping + and `[0, dims[axes[i]]-1]` for negative stepping. + + The clamping for the adjusted `ends[i]` depends on the sign of `steps[i]` and must + accommodate copying 0 through `dims[axes[i]]` elements, so for positive stepping + `end[axes[i]]` is clamped to `[0, dims[axes[i]]]`, while for negative stepping it + is clamped to `[-1, dims[axes[i]]-1]`. + + Finally, `step[axes[i]] = steps[i]`. + + For slicing to the end of a dimension with unknown size, it is recommended to pass + in `INT_MAX` when slicing forward and 'INT_MIN' when slicing backward. + + Example 1: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + axes = [0, 1] + starts = [1, 0] + ends = [2, 3] + steps = [1, 2] + result = [ + [5, 7], + ] + Example 2: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + starts = [0, 1] + ends = [-1, 1000] + result = [ + [2, 3, 4], + ] + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs (3 - 5) + +
+
data (differentiable) : T
+
Tensor of data to extract slices from.
+
starts (non-differentiable) : Tind
+
1-D tensor of starting indices of corresponding axis in `axes`
+
ends (non-differentiable) : Tind
+
1-D tensor of ending indices (exclusive) of corresponding axis in `axes`
+
axes (optional, non-differentiable) : Tind
+
1-D tensor of axes that `starts` and `ends` apply to. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data). Behavior is undefined if an axis is repeated.
+
steps (optional, non-differentiable) : Tind
+
1-D tensor of slice step of corresponding axis in `axes`. Negative value means slicing backward. 'steps' cannot be 0. Defaults to 1s.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Sliced data tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **Softmax-13** + + The operator computes the normalized exponential values for the given input: + + Softmax(input, axis) = Exp(input) / ReduceSum(Exp(input), axis=axis, keepdims=1) + + The "axis" attribute indicates the dimension along which Softmax + will be performed. The output tensor has the same shape + and contains the Softmax values of the corresponding input. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
+Describes the dimension Softmax will be performed on. +Negative value means counting dimensions +from the back. Accepted range is [-r, r-1] where r = rank(input). +
+
+ +#### Inputs + +
+
input (differentiable) : T
+
The input tensor of rank >= axis.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output values with the same shape as the input tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **SoftmaxCrossEntropyLoss-13** + + Loss function that measures the softmax cross entropy + between 'scores' and 'labels'. + This operator first computes a loss tensor whose shape is identical to the labels input. + If the input is 2-D with shape (N, C), the loss tensor may be a N-element vector L = (l_1, l_2, ..., l_N). + If the input is N-D tensor with shape (N, C, D1, D2, ..., Dk), + the loss tensor L may have (N, D1, D2, ..., Dk) as its shape and L[i,][j_1][j_2]...[j_k] denotes a scalar element in L. + After L is available, this operator can optionally do a reduction operator. + + shape(scores): (N, C) where C is the number of classes, or (N, C, D1, D2,..., Dk), + with K >= 1 in case of K-dimensional loss. + shape(labels): (N) where each value is 0 <= labels[i] <= C-1, or (N, D1, D2,..., Dk), + with K >= 1 in case of K-dimensional loss. + + The loss for one sample, l_i, can caculated as follows: + l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk], where i is the index of classes. + or + l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk] * weights[c], if 'weights' is provided. + + loss is zero for the case when label-value equals ignore_index. + l[i][d1][d2]...[dk] = 0, when labels[n][d1][d2]...[dk] = ignore_index + + where: + p = Softmax(scores) + y = Log(p) + c = labels[i][d1][d2]...[dk] + + Finally, L is optionally reduced: + If reduction = 'none', the output is L with shape (N, D1, D2, ..., Dk). + If reduction = 'sum', the output is scalar: Sum(L). + If reduction = 'mean', the output is scalar: ReduceMean(L), or if weight is provided: ReduceSum(L) / ReduceSum(W), + where tensor W is of shape (N, D1, D2, ..., Dk) and W[n][d1][d2]...[dk] = weights[labels[i][d1][d2]...[dk]]. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
ignore_index : int
+
Specifies a target value that is ignored and does not contribute to the input gradient. It's an optional value.
+
reduction : string (default is mean)
+
Type of reduction to apply to loss: none, sum, mean(default). 'none': no reduction will be applied, 'sum': the output will be summed. 'mean': the sum of the output will be divided by the number of elements in the output.
+
+ +#### Inputs (2 - 3) + +
+
scores (differentiable) : T
+
The predicted outputs with shape [batch_size, class_size], or [batch_size, class_size, D1, D2 , ..., Dk], where K is the number of dimensions.
+
labels (non-differentiable) : Tind
+
The ground truth output tensor, with shape [batch_size], or [batch_size, D1, D2, ..., Dk], where K is the number of dimensions. Labels element value shall be in range of [0, C). If ignore_index is specified, it may have a value outside [0, C) and the label values should either be in the range [0, C) or have the value ignore_index.
+
weights (optional, non-differentiable) : T
+
A manual rescaling weight given to each class. If given, it has to be a 1D Tensor assigning weight to each of the classes. Otherwise, it is treated as if having all ones.
+
+ +#### Outputs (1 - 2) + +
+
output (differentiable) : T
+
Weighted loss float Tensor. If reduction is 'none', this has the shape of [batch_size], or [batch_size, D1, D2, ..., Dk] in case of K-dimensional loss. Otherwise, it is a scalar.
+
log_prob (optional, differentiable) : T
+
Log probability tensor. If the output of softmax is prob, its value is log(prob).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
Tind : tensor(int32), tensor(int64)
+
Constrain target to integer types
+
+ +### **SpaceToDepth-13** + + SpaceToDepth rearranges blocks of spatial data into depth. More specifically, + this op outputs a copy of the input tensor where values from the height and width dimensions + are moved to the depth dimension. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
blocksize : int (required)
+
Blocks of [blocksize, blocksize] are moved.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Input tensor of [N,C,H,W], where N is the batch axis, C is the channel or depth, H is the height and W is the width.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor of [N, C * blocksize * blocksize, H/blocksize, W/blocksize].
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Split-13** + + Split a tensor into a list of tensors, along the specified + 'axis'. Lengths of the parts can be specified using input 'split'. + Otherwise, the tensor is split to equal sized parts. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to split on. A negative value means counting dimensions from the back. Accepted range is [-rank, rank-1] where r = rank(input).
+
+ +#### Inputs (1 - 2) + +
+
input (differentiable) : T
+
The tensor to split
+
split (optional, non-differentiable) : tensor(int64)
+
Optional length of each output. Values should be >= 0.Sum of the values must be equal to the dim value at 'axis' specified.
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, differentiable) : T
+
One or more outputs forming list of tensors after splitting
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Sqrt-13** + + Square root takes one input data (Tensor) and produces one output data + (Tensor) where the square root is, y = x^0.5, is applied to + the tensor elementwise. If x is negative, then it will return NaN. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Squeeze-13** + + Remove single-dimensional entries from the shape of a tensor. + Takes an input `axes` with a list of axes to squeeze. + If `axes` is not provided, all the single dimensions will be removed from + the shape. If an axis is selected with shape entry not equal to one, an error is raised. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs (1 - 2) + +
+
data (differentiable) : T
+
Tensors with at least max(dims) dimensions.
+
axes (optional, non-differentiable) : tensor(int64)
+
List of integers indicating the dimensions to squeeze. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Outputs + +
+
squeezed (differentiable) : T
+
Reshaped tensor with same data as input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Sub-13** + + Performs element-wise binary subtraction (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ +### **Sum-13** + + Element-wise sum of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
data_0 (variadic, differentiable) : T
+
List of tensors for sum.
+
+ +#### Outputs + +
+
sum (differentiable) : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Tanh-13** + + Calculates the hyperbolic tangent of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic tangent values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ +### **Tile-13** + + Constructs a tensor by tiling a given tensor. + This is the same as function `tile` in Numpy, but no broadcast. + For example A = [[1, 2], [3, 4]], B = [1, 2], tile(A, B) = [[1, 2, 1, 2], [3, 4, 3, 4]] + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor of any shape.
+
repeats (non-differentiable) : T1
+
1D int64 tensor of the same length as input's dimension number, includes numbers of repeated copies along input's dimensions.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor of the same dimensions and type as tensor input. output_dim[i] = input_dim[i] * repeats[i]
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
T1 : tensor(int64)
+
Constrain repeat's type to int64 tensors.
+
+ +### **Transpose-13** + + Transpose the input tensor similar to numpy.transpose. For example, when + perm=(1, 0, 2), given an input tensor of shape (1, 2, 3), the output shape + will be (2, 1, 3). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Attributes + +
+
perm : list of ints
+
A list of integers. By default, reverse the dimensions, otherwise permute the axes according to the values given.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
transposed (differentiable) : T
+
Transposed output.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Unsqueeze-13** + + Insert single-dimensional entries to the shape of an input tensor (`data`). + Takes one required input `axes` - which contains a list of dimension indices and this operator will insert a dimension of value `1` into the corresponding index of the output tensor (`expanded`). + + For example: + Given an input tensor (`data`) of shape [3, 4, 5], then + Unsqueeze(data, axes=[0, 4]) outputs a tensor (`expanded`) containing same data as `data` but with shape [1, 3, 4, 5, 1]. + + The input `axes` should not contain any duplicate entries. It is an error if it contains duplicates. + The rank of the output tensor (`output_rank`) is the rank of the input tensor (`data`) plus the number of values in `axes`. + Each value in `axes` should be within the (inclusive) range [-output_rank , output_rank - 1]. + The order of values in `axes` does not matter and can come in any order. + + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +#### Inputs + +
+
data (differentiable) : T
+
Original tensor
+
axes (non-differentiable) : tensor(int64)
+
List of integers indicating the dimensions to be inserted. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(expanded).
+
+ +#### Outputs + +
+
expanded (differentiable) : T
+
Reshaped tensor with same data as input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +## Version 14 of the default ONNX operator set +### **Add-14** + + Performs element-wise binary addition (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **BatchNormalization-14** + + Carries out batch normalization as described in the paper + https://arxiv.org/abs/1502.03167. Depending on the mode it is being run, + There are five required inputs 'X', 'scale', 'B', 'input_mean' and + 'input_var'. + Note that 'input_mean' and 'input_var' are expected to be the estimated + statistics in inference mode (training_mode=False, default), + and the running statistics in training mode (training_mode=True). + There are multiple cases for the number of outputs, which we list below: + + Output case #1: Y, running_mean, running_var (training_mode=True) + Output case #2: Y (training_mode=False) + + When training_mode=False, extra outputs are invalid. + The outputs are updated as follows when training_mode=True: + ``` + running_mean = input_mean * momentum + current_mean * (1 - momentum) + running_var = input_var * momentum + current_var * (1 - momentum) + + Y = (X - current_mean) / sqrt(current_var + epsilon) * scale + B + + where: + + current_mean = ReduceMean(X, axis=all_except_channel_index) + current_var = ReduceVar(X, axis=all_except_channel_index) + + Notice that ReduceVar refers to the population variance, and it equals to + sum(sqrd(x_i - x_avg)) / N + where N is the population size (this formula does not use sample size N - 1). + + ``` + + When training_mode=False: + ``` + Y = (X - input_mean) / sqrt(input_var + epsilon) * scale + B + ``` + + For previous (depreciated) non-spatial cases, implementors are suggested + to flatten the input shape to (N x C * D1 * D2 * ... * Dn) before a BatchNormalization Op. + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Attributes + +
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero.
+
momentum : float (default is 0.9)
+
Factor used in computing the running mean and variance.e.g., running_mean = running_mean * momentum + mean * (1 - momentum).
+
training_mode : int (default is 0)
+
If set to true, it indicates BatchNormalization is being used for training, and outputs 1, 2, 3, and 4 would be populated.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size, C is the number of channels. Statistics are computed for every channel of C over N and D1 to Dn dimensions. For image data, input dimensions become (N x C x H x W). The op also accepts single dimension input of size N in which case C is assumed to be 1
+
scale (differentiable) : T
+
Scale tensor of shape (C).
+
B (differentiable) : T
+
Bias tensor of shape (C).
+
input_mean (differentiable) : U
+
running (training) or estimated (testing) mean tensor of shape (C).
+
input_var (differentiable) : U
+
running (training) or estimated (testing) variance tensor of shape (C).
+
+ +#### Outputs (1 - 3) + +
+
Y (differentiable) : T
+
The output tensor of the same shape as X
+
running_mean (optional, non-differentiable) : U
+
The running mean after the BatchNormalization operator.
+
running_var (optional, non-differentiable) : U
+
The running variance after the BatchNormalization operator. This op uses the population size (N) for calculating variance, and not the sample size N-1.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
U : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain mean and variance types to float tensors. It allows all float type for U.
+
+ +### **CumSum-14** + + Performs cumulative sum of the input elements along the given axis. + By default, it will do the sum inclusively meaning the first element is copied as is. + Through an `exclusive` attribute, this behavior can change to exclude the first element. + It can also perform summation in the opposite direction of the axis. For that, set `reverse` attribute to 1. + + Example: + ``` + input_x = [1, 2, 3] + axis=0 + output = [1, 3, 6] + exclusive=1 + output = [0, 1, 3] + exclusive=0 + reverse=1 + output = [6, 5, 3] + exclusive=1 + reverse=1 + output = [5, 3, 0] + ``` + + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Attributes + +
+
exclusive : int (default is 0)
+
If set to 1 will return exclusive sum in which the top element is not included. In other terms, if set to 1, the j-th output element would be the sum of the first (j-1) elements. Otherwise, it would be the sum of the first j elements.
+
reverse : int (default is 0)
+
If set to 1 will perform the sums in reverse direction.
+
+ +#### Inputs + +
+
x (differentiable) : T
+
An input tensor that is to be processed.
+
axis (non-differentiable) : T2
+
A 0-D tensor. Must be in the range [-rank(x), rank(x)-1]. Negative value means counting dimensions from the back.
+
+ +#### Outputs + +
+
y (differentiable) : T
+
Output tensor of the same type as 'x' with cumulative sums of the x's elements
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
T2 : tensor(int32), tensor(int64)
+
axis tensor can be int32 or int64 only
+
+ +### **Div-14** + + Performs element-wise binary division (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **GRU-14** + + Computes an one-layer GRU. This operator is usually supported via some custom + implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `z` - update gate + + `r` - reset gate + + `h` - hidden gate + + `t` - time step (t-1 means previous time step) + + `W[zrh]` - W parameter weight matrix for update, reset, and hidden gates + + `R[zrh]` - R recurrence weight matrix for update, reset, and hidden gates + + `Wb[zrh]` - W bias vectors for update, reset, and hidden gates + + `Rb[zrh]` - R bias vectors for update, reset, and hidden gates + + `WB[zrh]` - W parameter weight matrix for backward update, reset, and hidden gates + + `RB[zrh]` - R recurrence weight matrix for backward update, reset, and hidden gates + + `WBb[zrh]` - W bias vectors for backward update, reset, and hidden gates + + `RBb[zrh]` - R bias vectors for backward update, reset, and hidden gates + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Sigmoid, g=Tanh): + + - zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz) + + - rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr) + + - ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*(Rh^T) + Rbh + Wbh) # default, when linear_before_reset = 0 + + - ht = g(Xt*(Wh^T) + (rt (.) (Ht-1*(Rh^T) + Rbh)) + Wbh) # when linear_before_reset != 0 + + - Ht = (1 - zt) (.) ht + zt (.) Ht-1 + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings
+
A list of 2 (or 4 if bidirectional) activation functions for update, reset, and hidden gates. The activation functions must be one of the activation functions specified above. Optional: See the equations for default if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
layout : int (default is 0)
+
The shape format of inputs X, initial_h and outputs Y, Y_h. If 0, the following shapes are expected: X.shape = [seq_length, batch_size, input_size], Y.shape = [seq_length, num_directions, batch_size, hidden_size], initial_h.shape = Y_h.shape = [num_directions, batch_size, hidden_size]. If 1, the following shapes are expected: X.shape = [batch_size, seq_length, input_size], Y.shape = [batch_size, seq_length, num_directions, hidden_size], initial_h.shape = Y_h.shape = [batch_size, num_directions, hidden_size].
+
linear_before_reset : int (default is 0)
+
When computing the output of the hidden gate, apply the linear transformation before multiplying by the output of the reset gate.
+
+ +#### Inputs (3 - 6) + +
+
X (differentiable) : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W (differentiable) : T
+
The weight tensor for the gates. Concatenation of `W[zrh]` and `WB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, input_size]`.
+
R (differentiable) : T
+
The recurrence weight tensor. Concatenation of `R[zrh]` and `RB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, hidden_size]`.
+
B (optional, differentiable) : T
+
The bias tensor for the gates. Concatenation of `[Wb[zrh], Rb[zrh]]` and `[WBb[zrh], RBb[zrh]]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 6*hidden_size]`. Optional: If not specified - assumed to be 0
+
sequence_lens (optional, non-differentiable) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional, non-differentiable) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Outputs (0 - 2) + +
+
Y (optional, differentiable) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`.
+
Y_h (optional, differentiable) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +### **HardSwish-14** + + HardSwish takes one input data (Tensor) and produces one output data (Tensor) where + the HardSwish function, y = x * max(0, min(1, alpha * x + beta)) = x * HardSigmoid(x), + where alpha = 1/6 and beta = 0.5, is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **Identity-14** + + Identity operator + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : V
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : V
+
Tensor to copy input into.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain input and output types to all tensor and sequence types.
+
+ +### **LSTM-14** + + Computes an one-layer LSTM. This operator is usually supported via some + custom implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `i` - input gate + + `o` - output gate + + `f` - forget gate + + `c` - cell gate + + `t` - time step (t-1 means previous time step) + + `W[iofc]` - W parameter weight matrix for input, output, forget, and cell gates + + `R[iofc]` - R recurrence weight matrix for input, output, forget, and cell gates + + `Wb[iofc]` - W bias vectors for input, output, forget, and cell gates + + `Rb[iofc]` - R bias vectors for input, output, forget, and cell gates + + `P[iof]` - P peephole weight vector for input, output, and forget gates + + `WB[iofc]` - W parameter weight matrix for backward input, output, forget, and cell gates + + `RB[iofc]` - R recurrence weight matrix for backward input, output, forget, and cell gates + + `WBb[iofc]` - W bias vectors for backward input, output, forget, and cell gates + + `RBb[iofc]` - R bias vectors for backward input, output, forget, and cell gates + + `PB[iof]` - P peephole weight vector for backward input, output, and forget gates + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Sigmoid, g=Tanh, h=Tanh): + + - it = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Pi (.) Ct-1 + Wbi + Rbi) + + - ft = f(Xt*(Wf^T) + Ht-1*(Rf^T) + Pf (.) Ct-1 + Wbf + Rbf) + + - ct = g(Xt*(Wc^T) + Ht-1*(Rc^T) + Wbc + Rbc) + + - Ct = ft (.) Ct-1 + it (.) ct + + - ot = f(Xt*(Wo^T) + Ht-1*(Ro^T) + Po (.) Ct + Wbo + Rbo) + + - Ht = ot (.) h(Ct) + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings
+
A list of 3 (or 6 if bidirectional) activation functions for input, output, forget, cell, and hidden. The activation functions must be one of the activation functions specified above. Optional: See the equations for default if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
input_forget : int (default is 0)
+
Couple the input and forget gates if 1.
+
layout : int (default is 0)
+
The shape format of inputs X, initial_h, initial_c and outputs Y, Y_h, Y_c. If 0, the following shapes are expected: X.shape = [seq_length, batch_size, input_size], Y.shape = [seq_length, num_directions, batch_size, hidden_size], initial_h.shape = Y_h.shape = initial_c.shape = Y_c.shape = [num_directions, batch_size, hidden_size]. If 1, the following shapes are expected: X.shape = [batch_size, seq_length, input_size], Y.shape = [batch_size, seq_length, num_directions, hidden_size], initial_h.shape = Y_h.shape = initial_c.shape = Y_c.shape = [batch_size, num_directions, hidden_size].
+
+ +#### Inputs (3 - 8) + +
+
X (differentiable) : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W (differentiable) : T
+
The weight tensor for the gates. Concatenation of `W[iofc]` and `WB[iofc]` (if bidirectional) along dimension 0. The tensor has shape `[num_directions, 4*hidden_size, input_size]`.
+
R (differentiable) : T
+
The recurrence weight tensor. Concatenation of `R[iofc]` and `RB[iofc]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 4*hidden_size, hidden_size]`.
+
B (optional, differentiable) : T
+
The bias tensor for input gate. Concatenation of `[Wb[iofc], Rb[iofc]]`, and `[WBb[iofc], RBb[iofc]]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 8*hidden_size]`. Optional: If not specified - assumed to be 0.
+
sequence_lens (optional, non-differentiable) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional, non-differentiable) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
initial_c (optional, non-differentiable) : T
+
Optional initial value of the cell. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
P (optional, differentiable) : T
+
The weight tensor for peepholes. Concatenation of `P[iof]` and `PB[iof]` (if bidirectional) along dimension 0. It has shape `[num_directions, 3*hidde_size]`. Optional: If not specified - assumed to be 0.
+
+ +#### Outputs (0 - 3) + +
+
Y (optional, differentiable) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`.
+
Y_h (optional, differentiable) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
Y_c (optional, differentiable) : T
+
The last output value of the cell. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +### **Mul-14** + + Performs element-wise binary multiplication (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **RNN-14** + + Computes an one-layer simple RNN. This operator is usually supported + via some custom implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `i` - input gate + + `t` - time step (t-1 means previous time step) + + `Wi` - W parameter weight matrix for input gate + + `Ri` - R recurrence weight matrix for input gate + + `Wbi` - W parameter bias vector for input gate + + `Rbi` - R parameter bias vector for input gate + + `WBi` - W parameter weight matrix for backward input gate + + `RBi` - R recurrence weight matrix for backward input gate + + `WBbi` - WR bias vectors for backward input gate + + `RBbi` - RR bias vectors for backward input gate + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Tanh): + + - Ht = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Wbi + Rbi) + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings (default is ['Tanh', 'Tanh'])
+
One (or two if bidirectional) activation function for input gate. The activation function must be one of the activation functions specified above. Optional: Default `Tanh` if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
layout : int (default is 0)
+
The shape format of inputs X, initial_h and outputs Y, Y_h. If 0, the following shapes are expected: X.shape = [seq_length, batch_size, input_size], Y.shape = [seq_length, num_directions, batch_size, hidden_size], initial_h.shape = Y_h.shape = [num_directions, batch_size, hidden_size]. If 1, the following shapes are expected: X.shape = [batch_size, seq_length, input_size], Y.shape = [batch_size, seq_length, num_directions, hidden_size], initial_h.shape = Y_h.shape = [batch_size, num_directions, hidden_size].
+
+ +#### Inputs (3 - 6) + +
+
X (differentiable) : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W (differentiable) : T
+
The weight tensor for input gate. Concatenation of `Wi` and `WBi` (if bidirectional). The tensor has shape `[num_directions, hidden_size, input_size]`.
+
R (differentiable) : T
+
The recurrence weight tensor. Concatenation of `Ri` and `RBi` (if bidirectional). The tensor has shape `[num_directions, hidden_size, hidden_size]`.
+
B (optional, differentiable) : T
+
The bias tensor for input gate. Concatenation of `[Wbi, Rbi]` and `[WBbi, RBbi]` (if bidirectional). The tensor has shape `[num_directions, 2*hidden_size]`. Optional: If not specified - assumed to be 0.
+
sequence_lens (optional, non-differentiable) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional, non-differentiable) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Outputs (0 - 2) + +
+
Y (optional, differentiable) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`.
+
Y_h (optional, differentiable) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ +### **Relu-14** + + Relu takes one input data (Tensor) and produces one output data + (Tensor) where the rectified linear function, y = max(0, x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(int32), tensor(int8), tensor(int16), tensor(int64), tensor(float16), tensor(double), tensor(bfloat16)
+
Constrain input and output types to signed numeric tensors.
+
+ +### **Reshape-14** + + Reshape the input tensor similar to numpy.reshape. + First input is the data tensor, second input is a shape tensor which specifies the output shape. It outputs the reshaped tensor. + At most one dimension of the new shape can be -1. In this case, the value is + inferred from the size of the tensor and the remaining dimensions. A dimension + could also be 0, in which case the actual dimension value is unchanged (i.e. taken + from the input tensor). If 'allowzero' is set, and the new shape includes 0, the + dimension will be set explicitly to zero (i.e. not taken from input tensor). + Shape (second input) could be an empty shape, which means converting to a scalar. + The input tensor's shape and the output tensor's shape are required to have the same number of elements. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Attributes + +
+
allowzero : int (default is 0)
+
(Optional) By default, when any value in the 'shape' input is equal to zero the corresponding dimension value is copied from the input tensor dynamically. allowzero=1 indicates that if any value in the 'shape' input is set to zero, the zero value is honored, similar to NumPy.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
shape (non-differentiable) : tensor(int64)
+
Specified shape for output.
+
+ +#### Outputs + +
+
reshaped (differentiable) : T
+
Reshaped data.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +### **Sub-14** + + Performs element-wise binary subtraction (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ +### **Trilu-14** + + Given a 2-D matrix or batches of 2-D matrices, returns the upper or lower triangular part of the tensor(s). + The attribute "upper" determines whether the upper or lower part is retained. If set to true, + the upper triangular matrix is retained. Lower triangular matrix is retained otherwise. + Default value for the "upper" attribute is true. + Trilu takes one input tensor of shape [*, N, M], where * is zero or more batch dimensions. The upper triangular part consists + of the elements on and above the given diagonal (k). The lower triangular part consists of elements on and below the diagonal. + All other elements in the matrix are set to zero. + If k = 0, the triangular part on and above/below the main diagonal is retained. + If upper is set to true, a positive k retains the upper triangular matrix excluding the main diagonal and (k-1) diagonals above it. + A negative k value retains the main diagonal and |k| diagonals below it. + If upper is set to false, a positive k retains the lower triangular matrix including the main diagonal and k diagonals above it. + A negative k value excludes the main diagonal and (|k|-1) diagonals below it. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Attributes + +
+
upper : int (default is 1)
+
Boolean. Indicates whether upper or lower part of matrix is retained. Default is true.
+
+ +#### Inputs (1 - 2) + +
+
input (differentiable) : T
+
Input tensor of rank 2 or higher.
+
k (optional, non-differentiable) : tensor(int64)
+
A 0-D tensor containing a single value corresponding to the number diagonals above or below the main diagonal to exclude or include. Default value is 0 if it's not specified.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor of the same type and shape as the input tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ +## Version 15 of the default ONNX operator set +### **BatchNormalization-15** + + Carries out batch normalization as described in the paper + https://arxiv.org/abs/1502.03167. Depending on the mode it is being run, + There are five required inputs 'X', 'scale', 'B', 'input_mean' and + 'input_var'. + Note that 'input_mean' and 'input_var' are expected to be the estimated + statistics in inference mode (training_mode=False, default), + and the running statistics in training mode (training_mode=True). + There are multiple cases for the number of outputs, which we list below: + + Output case #1: Y, running_mean, running_var (training_mode=True) + Output case #2: Y (training_mode=False) + + When training_mode=False, extra outputs are invalid. + The outputs are updated as follows when training_mode=True: + ``` + running_mean = input_mean * momentum + current_mean * (1 - momentum) + running_var = input_var * momentum + current_var * (1 - momentum) + + Y = (X - current_mean) / sqrt(current_var + epsilon) * scale + B + + where: + + current_mean = ReduceMean(X, axis=all_except_channel_index) + current_var = ReduceVar(X, axis=all_except_channel_index) + + Notice that ReduceVar refers to the population variance, and it equals to + sum(sqrd(x_i - x_avg)) / N + where N is the population size (this formula does not use sample size N - 1). + + ``` + + The computation of ReduceMean and ReduceVar uses float to avoid overflow for float16 inputs. + + When training_mode=False: + ``` + Y = (X - input_mean) / sqrt(input_var + epsilon) * scale + B + ``` + + For previous (depreciated) non-spatial cases, implementors are suggested + to flatten the input shape to (N x C * D1 * D2 * ... * Dn) before a BatchNormalization Op. + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Attributes + +
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero.
+
momentum : float (default is 0.9)
+
Factor used in computing the running mean and variance.e.g., running_mean = running_mean * momentum + mean * (1 - momentum).
+
training_mode : int (default is 0)
+
If set to true, it indicates BatchNormalization is being used for training, and outputs 1, 2, 3, and 4 would be populated.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size, C is the number of channels. Statistics are computed for every channel of C over N and D1 to Dn dimensions. For image data, input dimensions become (N x C x H x W). The op also accepts single dimension input of size N in which case C is assumed to be 1
+
scale (differentiable) : T1
+
Scale tensor of shape (C).
+
B (differentiable) : T1
+
Bias tensor of shape (C).
+
input_mean (differentiable) : T2
+
running (training) or estimated (testing) mean tensor of shape (C).
+
input_var (differentiable) : T2
+
running (training) or estimated (testing) variance tensor of shape (C).
+
+ +#### Outputs (1 - 3) + +
+
Y (differentiable) : T
+
The output tensor of the same shape as X
+
running_mean (optional, non-differentiable) : T2
+
The running mean after the BatchNormalization operator.
+
running_var (optional, non-differentiable) : T2
+
The running variance after the BatchNormalization operator. This op uses the population size (N) for calculating variance, and not the sample size N-1.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain scale and bias types to float tensors.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain mean and variance types to float tensors.
+
+ +### **Bernoulli-15** + + Draws binary random numbers (0 or 1) from a Bernoulli distribution. The input tensor should be a tensor + containing probabilities p (a value in the range [0,1]) to be used for drawing the binary random number, + where an output of 1 is produced with probability p and an output of 0 is produced with probability (1-p). + + This operator is non-deterministic and may not produce the same values in different + implementations (even if a seed is specified). + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
The data type for the elements of the output tensor. if not specified, we will use the data type of the input tensor.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs + +
+
input : T1
+
All values in input have to be in the range:[0, 1].
+
+ +#### Outputs + +
+
output : T2
+
The returned output tensor only has values 0 or 1, same shape as input tensor.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(bfloat16), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bool)
+
Constrain output types to all numeric tensors and bool tensors.
+
+ +### **CastLike-15** + + The operator casts the elements of a given input tensor (the first input) to + the same data type as the elements of the second input tensor. + See documentation of the Cast operator for further details. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T1
+
Input tensor to be cast.
+
target_type (non-differentiable) : T2
+
The (first) input tensor will be cast to produce a tensor of the same type as this (second input) tensor.
+
+ +#### Outputs + +
+
output (differentiable) : T2
+
Output tensor produced by casting the first input tensor to have the same type as the second input tensor.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string), tensor(bfloat16)
+
Constrain input types. Casting from complex is not supported.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string), tensor(bfloat16)
+
Constrain output types. Casting to complex is not supported.
+
+ +### **Optional-15** + + Constructs an optional-type value containing either an empty optional of a certain type specified by the attribute, + or a non-empty value containing the input element. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Attributes + +
+
type : type_proto
+
Type of the element in the optional output
+
+ +#### Inputs (0 - 1) + +
+
input (optional) : V
+
The input element.
+
+ +#### Outputs + +
+
output : O
+
The optional output enclosing the input element.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain input type to all tensor and sequence types.
+
O : optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
Constrain output type to all optional tensor or optional sequence types.
+
+ +### **OptionalGetElement-15** + + Outputs the element in the optional-type input. It is an error if the input value does not have an element + and the behavior is undefined in this case. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Inputs + +
+
input : O
+
The optional input.
+
+ +#### Outputs + +
+
output : V
+
Output element in the optional input.
+
+ +#### Type Constraints + +
+
O : optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
Constrain input type to optional tensor and optional sequence types.
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain output type to all tensor or sequence types.
+
+ +### **OptionalHasElement-15** + + Returns true if the optional-type input contains an element. If it is an empty optional-type, this op returns false. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Inputs + +
+
input : O
+
The optional input.
+
+ +#### Outputs + +
+
output : B
+
A scalar boolean tensor. If true, it indicates that optional-type input contains an element. Otherwise, it is empty.
+
+ +#### Type Constraints + +
+
O : optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
Constrain input type to optional tensor and optional sequence types.
+
B : tensor(bool)
+
Constrain output to a boolean tensor.
+
+ +### **Pow-15** + + Pow takes input data (Tensor) and exponent Tensor, and + produces one output data (Tensor) where the function `f(x) = x^exponent`, + is applied to the data tensor elementwise. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
First operand, base of the exponent.
+
Y (differentiable) : T1
+
Second operand, power of the exponent.
+
+ +#### Outputs + +
+
Z (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input X and output types to float/int tensors.
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input Y types to float/int tensors.
+
+ +### **Shape-15** + + Takes a tensor as input and outputs an 1D int64 tensor containing the shape of the input tensor. + Optional attributes start and end can be used to compute a slice of the input tensor's shape. + If start axis is omitted, the slice starts from axis 0. + The end axis, if specified, is exclusive (and the returned value will not include the size of that axis). + If the end axis is omitted, the axes upto the last one will be included. + Negative axes indicate counting back from the last axis. + Note that axes will be clamped to the range [0, r-1], where r is the + rank of the input tensor if they are out-of-range (after adding r in the case of + negative axis). Thus, specifying any end value > r is equivalent to specifying an end + value of r, and specifying any start value < -r is equivalent to specifying a start + value of 0. + + For example: + Input tensor with shape: [2, 3, 4] + No attributes specified. + Output: [2, 3, 4] + + Input tensor with shape: [2, 3, 4] + start: -1 + Output: [4] + + Input tensor with shape: [2, 3, 4] + end: -1 + Output: [2, 3] + + Input tensor with shape: [2, 3, 4] + start: 1 + end: 2 + Output: [3] + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Attributes + +
+
end : int
+
(Optional) Ending axis for slicing the shape. Negative value means counting dimensions from the back. If omitted, sizes of all axes upto (including) the last one will be included.
+
start : int (default is 0)
+
(Optional) Starting axis for slicing the shape. Default value is 0.Negative value means counting dimensions from the back.
+
+ +#### Inputs + +
+
data (non-differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
shape (non-differentiable) : T1
+
Shape of the input tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input tensor can be of arbitrary type.
+
T1 : tensor(int64)
+
Constrain output to int64 tensor.
+
+ +## Version 16 of the default ONNX operator set +### **GreaterOrEqual-16** + + Returns the tensor resulted from performing the `greater_equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **GridSample-16** + + Given an `input` and a flow-field `grid`, computes the `output` using `input` values and pixel locations from `grid`. + Currently, only spatial (4-D) inputs are supported. For `input` with shape (N, C, H, W) and `grid` with shape (N, H_out, W_out, 2), + the `output` will have shape (N, C, H_out, W_out). + For each output location `output[N, C, H_out, W_out]`, the size-2 vector `grid[N, H_out, W_out]` specifies `input` pixel locations `x` and `y`, + which are used to interpolate the output value `output[N, C, H_out, W_out]`. + + The GridSample operator is often used in doing grid generator and sampler in the [Spatial Transformer Networks](https://arxiv.org/abs/1506.02025). + See also in [torch.nn.functional.grid_sample](https://pytorch.org/docs/master/generated/torch.nn.functional.grid_sample.html#torch-nn-functional-grid-sample). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Attributes + +
+
align_corners : int (default is 0)
+
If align_corners=1, the extrema (-1 and 1) are considered as referring to the center points of the input's corner pixels. If align_corners=0, they are instead considered as referring to the corner points of the input's corner pixels, making the sampling more resolution agnostic.
+
mode : string (default is bilinear)
+
Three interpolation modes: bilinear (default), nearest and bicubic.
+
padding_mode : string (default is zeros)
+
Support padding modes for outside grid values: `zeros`(default), `border`, `reflection`. zeros: use 0 for out-of-bound grid locations, border: use border values for out-of-bound grid locations, reflection: use values at locations reflected by the border for out-of-bound grid locations. If index 0 represents the margin pixel, the reflected value at index -1 will be the same as the value at index 1. For location far away from the border, it will keep being reflected until becoming in bound. If pixel location x = -3.5 reflects by border -1 and becomes x' = 1.5, then reflects by border 1 and becomes x'' = 0.5.
+
+ +#### Inputs + +
+
X (differentiable) : T1
+
4-D tensor of shape (N, C, H, W), where N is the batch size, C is the numbers of channels, H and W are the height and width of the input data.
+
grid (non-differentiable) : T1
+
Input offset, 4-D tensor of shape (N, H_out, W_out, 2), where H_out and W_out are the height and width of grid and output, Grid specifies the sampling pixel locations normalized by the input spatial dimensions. Therefore, it should have most values in the range of [-1, 1]. If grid has values outside the range of [-1, 1], the corresponding outputs will be handled as defined by padding_mode.
+
+ +#### Outputs + +
+
Y (differentiable) : T2
+
4-D tensor of shape (N, C, H_out, W_out).
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input types to all tensor types.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ +### **Identity-16** + + Identity operator + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : V
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : V
+
Tensor to copy input into.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128)), optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
Constrain input and output types to all tensor, sequence, and optional types.
+
+ +### **If-16** + + If conditional + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Attributes + +
+
else_branch : graph (required)
+
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
+
then_branch : graph (required)
+
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
+
+ +#### Inputs + +
+
cond : B
+
Condition for the if
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : V
+
Values that are live-out to the enclosing scope. The return values in the `then_branch` and `else_branch` must be of the same data type. The `then_branch` and `else_branch` may produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the the first output of `then_branch` is typed float tensor with shape [2] and the first output of `else_branch` is another float tensor with shape [3], If's first output should have (a) no shape set, or (b) a shape of rank 1 with neither `dim_value` nor `dim_param` set, or (c) a shape of rank 1 with a unique `dim_param`. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(bfloat16)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128)), optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(bfloat16))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(bfloat16)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types
+
B : tensor(bool)
+
Only bool
+
+ +### **LeakyRelu-16** + + LeakyRelu takes input data (Tensor) and an argument alpha, and produces one + output data (Tensor) where the function `f(x) = alpha * x for x < 0`, + `f(x) = x for x >= 0`, is applied to the data tensor elementwise. + + **History** + - Version 16 adds bfloat16 to the types allowed. + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 0.01)
+
Coefficient of leakage.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(bfloat16), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **LessOrEqual-16** + + Returns the tensor resulted from performing the `less_equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ +### **Loop-16** + + Generic Looping construct. This loop has multiple termination conditions: + + 1) Trip count. Iteration count specified at runtime. Set by + specifying the input M. Optional. Set to empty string to omit. + Note that a static trip count (specified at graph construction time) can be + specified by passing in a constant node for input M. + 2) Loop termination condition. This is an input to the op that determines + whether to run the first iteration and also a loop-carried dependency for + the body graph. The body graph must yield a value for the condition variable, + whether this input is provided or not. + + This table summarizes the operating modes of this operator with equivalent + C-style code: + + Operator inputs defined as (max_trip_count, condition_var). + + input ("", ""): + for (int i=0; ; ++i) { + cond = ... // Note this value is ignored, but is required in the body + } + + input ("", cond) // Note this is analogous to a while loop + bool cond = ...; + for (int i=0; cond; ++i) { + cond = ...; + } + + input ("", 1) // Note this is analogous to a do-while loop + bool cond = true + for (int i=0; cond; ++i) { + cond = ...; + } + + input (trip_count, "") // Note this is analogous to a for loop + int trip_count = ... + for (int i=0; i < trip_count; ++i) { + cond = ...; // ignored + } + + input (trip_count, cond) + int trip_count = ...; + bool cond = ...; + for (int i=0; i < trip_count && cond; ++i) { + cond = ...; + } + + + *Sample usage - cond as well as trip count* + + graph predict-net { + %a = Constant[value = ]() + %b = Constant[value = ]() + %keepgoing = Constant[value = ]() + %max_trip_count = Constant[value = ]() + %keepgoing_out, %b_out, %user_defined_vals = Loop[body = ](%max_trip_count, %keepgoing, %b) + return + } + + graph body-net ( + %i[INT32, scalar] // iteration number + %keepgoing_in[BOOL, scalar] // incoming loop-termination-condition; not used + %b_in[INT32, scalar] // incoming value of loop-carried-dependency b + ) { + %my_local = Add(%a, %b_in) + %b_out = Sub(%a, %b_in) // outgoing value of loop-carried-dependency b + %keepgoing_out = Greater(%my_local, %b_out) // outgoing loop-termination-condition + %user_defined_val = Add(%b_in, %b_in) // scan-output value to be accumulated + return %keepgoing_out, %b_out, %user_defined_val + } + + *Sample equivalent C code* + + { + /* User-defined code (enclosing scope) */ + int a = 3, b = 6; + bool keepgoing = true; // Analogous to input cond + /* End user-defined code */ + + /* Implicitly-defined code */ + const int max_trip_count = 10; // Analogous to input M + int user_defined_vals[]; // Imagine this is resizable + /* End implicitly-defined code */ + /* initialize loop-carried variables and scan-output variables */ + bool keepgoing_out = keepgoing + int b_out = b + + for (int i=0; i < max_trip_count && keepgoing_out; ++i) { + /* Implicitly-defined code: bind actual parameter values + to formal parameter variables of loop-body */ + bool keepgoing_in = keepgoing_out; + bool b_in = b_out; + + /* User-defined code (loop body) */ + int my_local = a + b_in; // Reading value "a" from the enclosing scope is fine + b_out = a - b_in; + keepgoing_out = my_local > b_out; + user_defined_val = b_in + b_in; // b_in and b_out are different variables + /* End user-defined code */ + + /* Implicitly defined-code */ + user_defined_vals[i] = user_defined_val // accumulate scan-output values + } + // int t = my_local; // Can't do this. my_local is not accessible here. + + // The values below are bound to the output variables of the loop and therefore accessible + // b_out; user_defined_vals; keepgoing_out; + } + + There are several things of note in this code snippet: + + 1) Values from the enclosing scope (i.e. variable "a" here) are in scope and can + be referenced in the inputs of the loop. + 2) Any values computed in the loop body that needs to be used in a subsequent + iteration or after the loop are modelled using a pair of variables in the loop-body, + consisting of an input variable (eg., b_in) and an output variable (eg., b_out). + These are referred to as loop-carried dependences. The loop operation node + supplies the input value of the input variable for the first iteration, and + returns the output value of the output variable produced by the final + iteration. + 3) Scan_output variables are used to implicitly concatenate values computed across + all the iterations. In the above example, the value of user_defined_val computed + over all iterations are concatenated and returned as the value of user_defined_vals + after the loop. + 4) Values created in the body cannot be accessed in the enclosing scope, + except using the mechanism described above. + + Note that the semantics of this op support "diagonal" or "wavefront" execution. + (See Step 3 here for an example: + https://devblogs.nvidia.com/optimizing-recurrent-neural-networks-cudnn-5/). + Frontends should emit multi-layer RNNs as a series of While operators (with + time being the inner looping dimension), with each successive layer consuming + the scan_outputs from the previous layer, possibly going through several + point-wise operators (e.g. dropout, residual connections, linear layer). + + The input/output of subgraph (produced by loop node) matching is based on order instead of name. The implementation will figure out the names based on this order. + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has 2+N inputs: (iteration_num, condition, loop carried dependencies...). It has 1+N+K outputs: (condition, loop carried dependencies..., scan_outputs...). Each scan_output is created by concatenating the value of the specified output value at the end of each iteration of the loop. It is an error if the dimensions or data type of these scan_outputs change across loop iterations.
+
+ +#### Inputs (2 - ∞) + +
+
M (optional) : I
+
A maximum trip-count for the loop specified at runtime. Optional. Pass empty string to skip.
+
cond (optional) : B
+
A boolean termination condition. Optional. Pass empty string to skip.
+
v_initial (variadic, heterogeneous) : V
+
The initial values of any loop-carried dependencies (values that change across loop iterations)
+
+ +#### Outputs (1 - ∞) + +
+
v_final_and_scan_outputs (variadic, heterogeneous) : V
+
Final N loop carried dependency values then K scan_outputs. Scan outputs must be Tensors.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(bfloat16)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128)), optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(bfloat16))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(bfloat16)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types
+
I : tensor(int64)
+
tensor of int64, which should be a scalar.
+
B : tensor(bool)
+
tensor of bool, which should be a scalar.
+
+ +### **PRelu-16** + + PRelu takes input data (Tensor) and slope tensor as input, and produces one + output data (Tensor) where the function `f(x) = slope * x for x < 0`, + `f(x) = x for x >= 0`., is applied to the data tensor elementwise. + + **History** + - Version 16 adds bfloat16 to the types allowed. + This operator supports **unidirectional broadcasting** (tensor slope should be unidirectional broadcastable to input tensor X); for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
slope (differentiable) : T
+
Slope tensor. The shape of slope can be smaller then first input X; if so, its shape must be unidirectional broadcastable to X
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor (same size as X)
+
+ +#### Type Constraints + +
+
T : tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64)
+
Constrain input and output types to float/int tensors.
+
+ +### **RoiAlign-16** + + Region of Interest (RoI) align operation described in the + [Mask R-CNN paper](https://arxiv.org/abs/1703.06870). + RoiAlign consumes an input tensor X and region of interests (rois) + to apply pooling across each RoI; it produces a 4-D tensor of shape + (num_rois, C, output_height, output_width). + + RoiAlign is proposed to avoid the misalignment by removing + quantizations while converting from original image into feature + map and from feature map into RoI feature; in each ROI bin, + the value of the sampled locations are computed directly + through bilinear interpolation. + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Attributes + +
+
coordinate_transformation_mode : string (default is half_pixel)
+
Allowed values are 'half_pixel' and 'output_half_pixel'. Use the value 'half_pixel' to pixel shift the input coordinates by -0.5 (the recommended behavior). Use the value 'output_half_pixel' to omit the pixel shift for the input (use this for a backward-compatible behavior).
+
mode : string (default is avg)
+
The pooling method. Two modes are supported: 'avg' and 'max'. Default is 'avg'.
+
output_height : int (default is 1)
+
default 1; Pooled output Y's height.
+
output_width : int (default is 1)
+
default 1; Pooled output Y's width.
+
sampling_ratio : int (default is 0)
+
Number of sampling points in the interpolation grid used to compute the output value of each pooled output bin. If > 0, then exactly sampling_ratio x sampling_ratio grid points are used. If == 0, then an adaptive number of grid points are used (computed as ceil(roi_width / output_width), and likewise for height). Default is 0.
+
spatial_scale : float (default is 1.0)
+
Multiplicative spatial scale factor to translate ROI coordinates from their input spatial scale to the scale used when pooling, i.e., spatial scale of the input feature map X relative to the input image. E.g.; default is 1.0f.
+
+ +#### Inputs + +
+
X : T1
+
Input data tensor from the previous operator; 4-D feature map of shape (N, C, H, W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data.
+
rois : T1
+
RoIs (Regions of Interest) to pool over; rois is 2-D input of shape (num_rois, 4) given as [[x1, y1, x2, y2], ...]. The RoIs' coordinates are in the coordinate system of the input image. Each coordinate set has a 1:1 correspondence with the 'batch_indices' input.
+
batch_indices : T2
+
1-D tensor of shape (num_rois,) with each element denoting the index of the corresponding image in the batch.
+
+ +#### Outputs + +
+
Y : T1
+
RoI pooled output, 4-D tensor of shape (num_rois, C, output_height, output_width). The r-th batch element Y[r-1] is a pooled feature map corresponding to the r-th RoI X[r-1].
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain types to float tensors.
+
T2 : tensor(int64)
+
Constrain types to int tensors.
+
+ +### **Scan-16** + + Scan can be used to iterate over one or more scan_input tensors, + constructing zero or more scan_output tensors. It combines ideas from general recurrences, + functional programming constructs such as scan, fold, map, and zip, and is intended to enable + generalizations of RNN-like constructs for sequence-to-sequence processing. + Other tensors (referred to as state_variables here) can be used to carry a state + when iterating from one element to another (similar to hidden-state in RNNs, also referred + to as loop-carried dependences in the context of loops). + Many common usages involve a single scan_input tensor (where functionality + similar to scan, fold and map can be obtained). When more than one scan_input is used, + a behavior similar to zip is obtained. + + The attribute body must be a graph, specifying the computation to be performed in + every iteration. It takes as input the current values of the state_variables and + the current iterated element of the scan_inputs. It must return the (updated) values + of the state_variables and zero or more scan_output_element tensors. The values of the + scan_output_element tensors are concatenated over all the iterations to produce the + scan_output values of the scan construct (similar to the concatenated intermediate + hidden-state values of RNN-like constructs). All the output tensors (state_variables as + well as scan_output_element tensors) are required to have the same shape in each iteration + of the loop (a restriction imposed to enable efficient memory allocation). + + Note that the iterated element passed to the body subgraph does not have a sequence + axis. It will have a rank one less than the rank of the corresponding scan_input. + + The scan operation returns the final values of the state_variables as well as the + scan_outputs. + + The optional attribute scan_input_directions specifies the direction (forward or backward) + for each scan input. If this attribute is omitted, all sequences are scanned in the forward + direction. A bidirectional scan may be performed by specifying the same tensor input twice + in the scan_inputs, once with a forward direction, and once with a backward direction. + + The scan_output of the operation is produced by concatenating the scan_output_element + values produced by the body in each iteration. The optional attribute scan_output_directions + specifies the direction in which scan_output is constructed (by appending or prepending the + scan_output_element to scan_output in each iteration) for each scan_output. If this attribute + is omitted, the scan_output_element is appended to the scan_output in each iteration. + + The optional attribute scan_input_axes specifies the axis to be scanned for each scan_input. + If omitted, every scan_input will be scanned in axis 0. For example, if axis 0 is the + batch axis and axis 1 is the time axis (to be scanned), specify an axis value of 1. + Note that scanning a non-zero axis may be less efficient than scanning axis zero. + + The optional attribute scan_output_axes specifies the axis along which the scan_outputs + are accumulated for each scan_output. For example, if axis 1 is the time axis (to be + scanned) for both inputs and outputs, specify a scan_input axis and scan_output axis + value of 1. + + Note that because of the ONNX restriction that only the last parameter of an operator can + be variadic, the initial-states and scan-inputs are listed together as one input parameter. + Similarly, the final-states and scan-outputs are listed together as one output parameter. + The attribute num_scan_inputs indicates the number M of scan-inputs. + + The behavior of + + Scan < + num_scan_inputs = m, + body = loop-body, + scan_input_axes = [axis_1, ..., axis_m] + > (init_1, ..., init_n, scan_1, ..., scan_m) + + is equivalent to the following pseudo-code: + + // scan_i.shape[axis_i] denotes the (max) sequence-length of scan_i + // scan_i.shape[axis_i] is required to be equal to scan_j.shape[axis_j] for all i,j. + sequence_length = scan_1.shape[axis_1]; + + // initialize state-variables + st_1 = init_1; ... st_n = init_n; + // initialize scan-output variables: [] denotes an empty tensor + scan_out_1 = []; ...; scan_out_k = []; + // identify number of iterations: + + // execute loop + for (int t = 0; t < sequence_length; ++t) { + // generate the scan-input elements: the notation T[t] indicates the sub-tensor + // of rank one less than T obtained by indexing T at position t along axis k. + si_1 = scan_1[t]; + ... ; + si_m = scan_m[t]; + // execute loop-body + st_1, ..., st_n, so_1, ..., so_k = loop-body(st_1, ..., st_n, si_1, ..., si_m) + // accumulate the scan-output elements + scan_out_1 = Concat(scan_out_1, so_1); ... ; scan_out_k = Concat(scan_out_k, so_k); + } + + return st_1, ..., st_n, scan_out_1, ..., scan_out_k; + + *Sample usage: Encoding RNN using a Scan* + + The following example shows how a simple RNN over an input tensor %X, with weight tensor %Wi, + recurrence weight tensor %Ri, bias tensors %Wbi and %Rbi, and initial hidden-state %H_0 can + be encoded as a ScanLoop. Note that the loop-body is a nested graph, and it directly computes + %Wi, %Ri, %Wbi, and %Rbi (typically constants or initializers in the body graph). If these + values are computed in the outer graph, they need to be passed in as extra state_variables. + + graph rnn-encoding { + %H_0 = ... + %X = ... + %Y_h, %Y = Scan[body = , num_scan_inputs=1](%H_0, %X) + return %Y, %Y_h + } + + graph rnn-cell-1 ( + %H_tminus1[FLOAT, tensor] + %X_t[FLOAT, tensor] + ) { + %Wi = ... + %Ri = ... + %Wbi = ... + %Rbi = ... + %t1 = X_t * (Wi^T) + %t2 = H_tminus1*(Ri^T) + %t3 = Add(%t1, %t2) + %t4 = Add(%t3, %Wbi) + %t5 = Add(%t4, %Rbi) + %Ht = Tanh(%t5) + %Accumulate = Identity(%Ht) + return %Ht, %Accumulate + } + + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has N+M inputs: (loop state variables..., scan_input_elts...). It has N+K outputs: (loop state variables..., scan_output_elts...). Each scan_output is created by concatenating the value of the specified scan_output_elt value at the end of each iteration of the loop. It is an error if the dimensions of these values change across loop iterations.
+
num_scan_inputs : int (required)
+
An attribute specifying the number of scan_inputs M.
+
scan_input_axes : list of ints
+
An optional list of M flags. The i-th element of the list specifies the axis to be scanned (the sequence axis) for the i-th scan_input. If omitted, 0 will be used as the scan axis for every scan_input. Negative value for an axis means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
scan_input_directions : list of ints
+
An optional list of M flags. The i-th element of the list specifies the direction to be scanned for the i-th scan_input tensor: 0 indicates forward direction and 1 indicates reverse direction. If omitted, all scan_input tensors will be scanned in the forward direction.
+
scan_output_axes : list of ints
+
An optional list of K flags. The i-th element of the list specifies the axis for the i-th scan_output. The scan outputs are accumulated along the specified axis. If omitted, 0 will be used as the scan axis for every scan_output. Negative value for an axis means counting dimensions from the back. Accepted range is [-r, r-1].
+
scan_output_directions : list of ints
+
An optional list of K flags, one for each scan_output. The i-th element of the list specifies whether the i-th scan_output should be constructed by appending or prepending a new value in each iteration: 0 indicates appending and 1 indicates prepending. If omitted, all scan_output tensors will be produced by appending a value in each iteration.
+
+ +#### Inputs (1 - ∞) + +
+
initial_state_and_scan_inputs (variadic, heterogeneous) : V
+
Initial values of the loop's N state variables followed by M scan_inputs
+
+ +#### Outputs (1 - ∞) + +
+
final_state_and_scan_outputs (variadic, heterogeneous) : V
+
Final values of the loop's N state variables followed by K scan_outputs
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
All Tensor types
+
+ +### **ScatterElements-16** + + ScatterElements takes three inputs `data`, `updates`, and `indices` of the same + rank r >= 1 and an optional attribute axis that identifies an axis of `data` + (by default, the outer-most axis, that is axis 0). The output of the operation + is produced by creating a copy of the input `data`, and then updating its value + to values specified by `updates` at specific index positions specified by + `indices`. Its output shape is the same as the shape of `data`. + + For each entry in `updates`, the target index in `data` is obtained by combining + the corresponding entry in `indices` with the index of the entry itself: the + index-value for dimension = axis is obtained from the value of the corresponding + entry in `indices` and the index-value for dimension != axis is obtained from the + index of the entry itself. + + `reduction` allows specification of an optional reduction operation, which is applied to all values in `updates` + tensor into `output` at the specified `indices`. + In cases where `reduction` is set to "none", indices should not have duplicate entries: that is, if idx1 != idx2, + then indices[idx1] != indices[idx2]. For instance, in a 2-D tensor case, the update + corresponding to the [i][j] entry is performed as below: + ``` + output[indices[i][j]][j] = updates[i][j] if axis = 0, + output[i][indices[i][j]] = updates[i][j] if axis = 1, + ``` + When `reduction` is set to "add", the update corresponding to the [i][j] entry is performed as below: + ``` + output[indices[i][j]][j] += updates[i][j] if axis = 0, + output[i][indices[i][j]] += updates[i][j] if axis = 1, + ``` + When `reduction` is set to "mul", the update corresponding to the [i][j] entry is performed as below: + ``` + output[indices[i][j]][j] *= updates[i][j] if axis = 0, + output[i][indices[i][j]] *= updates[i][j] if axis = 1, + ``` + + This operator is the inverse of GatherElements. It is similar to Torch's Scatter operation. + + Example 1: + ``` + data = [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + ] + indices = [ + [1, 0, 2], + [0, 2, 1], + ] + updates = [ + [1.0, 1.1, 1.2], + [2.0, 2.1, 2.2], + ] + output = [ + [2.0, 1.1, 0.0] + [1.0, 0.0, 2.2] + [0.0, 2.1, 1.2] + ] + ``` + Example 2: + ``` + data = [[1.0, 2.0, 3.0, 4.0, 5.0]] + indices = [[1, 3]] + updates = [[1.1, 2.1]] + axis = 1 + output = [[1.0, 1.1, 3.0, 2.1, 5.0]] + ``` + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to scatter on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
reduction : string (default is none)
+
Type of reduction to apply: none (default), add, mul. 'none': no reduction applied. 'add': reduction using the addition operation. 'mul': reduction using the multiplication operation.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : Tind
+
Tensor of int32/int64 indices, of r >= 1 (same rank as input). All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
updates (differentiable) : T
+
Tensor of rank r >=1 (same rank and shape as indices)
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank r >= 1 (same rank as input).
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input and output types can be of any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ +### **ScatterND-16** + + ScatterND takes three inputs `data` tensor of rank r >= 1, `indices` tensor of rank q >= 1, + and `updates` tensor of rank q + r - indices.shape[-1] - 1. The output of the operation + is produced by creating a copy of the input `data`, and then updating its value to values + specified by `updates` at specific index positions specified by `indices`. Its output shape + is the same as the shape of `data`. Note that `indices` should not have duplicate entries. + That is, two or more `updates` for the same index-location is not supported. + + `indices` is an integer tensor. Let k denote indices.shape[-1], the last dimension in the shape of `indices`. + `indices` is treated as a (q-1)-dimensional tensor of k-tuples, where each k-tuple is a partial-index into `data`. + Hence, k can be a value at most the rank of `data`. When k equals rank(data), each update entry specifies an + update to a single element of the tensor. When k is less than rank(data) each update entry specifies an + update to a slice of the tensor. + + `updates` is treated as a (q-1)-dimensional tensor of replacement-slice-values. Thus, the + first (q-1) dimensions of updates.shape must match the first (q-1) dimensions of indices.shape. + The remaining dimensions of `updates` correspond to the dimensions of the + replacement-slice-values. Each replacement-slice-value is a (r-k) dimensional tensor, + corresponding to the trailing (r-k) dimensions of `data`. Thus, the shape of `updates` + must equal indices.shape[0:q-1] ++ data.shape[k:r-1], where ++ denotes the concatenation + of shapes. + + The `output` is calculated via the following equation: + + output = np.copy(data) + update_indices = indices.shape[:-1] + for idx in np.ndindex(update_indices): + output[indices[idx]] = updates[idx] + + The order of iteration in the above loop is not specified. + In particular, indices should not have duplicate entries: that is, if idx1 != idx2, then indices[idx1] != indices[idx2]. + This ensures that the output value does not depend on the iteration order. + + `reduction` allows specification of an optional reduction operation, which is applied to all values in `updates` + tensor into `output` at the specified `indices`. + In cases where `reduction` is set to "none", indices should not have duplicate entries: that is, if idx1 != idx2, + then indices[idx1] != indices[idx2]. This ensures that the output value does not depend on the iteration order. + When `reduction` is set to "add", `output` is calculated as follows: + + output = np.copy(data) + update_indices = indices.shape[:-1] + for idx in np.ndindex(update_indices): + output[indices[idx]] += updates[idx] + + When `reduction` is set to "mul", `output` is calculated as follows: + + output = np.copy(data) + update_indices = indices.shape[:-1] + for idx in np.ndindex(update_indices): + output[indices[idx]] *= updates[idx] + + This operator is the inverse of GatherND. + + Example 1: + ``` + data = [1, 2, 3, 4, 5, 6, 7, 8] + indices = [[4], [3], [1], [7]] + updates = [9, 10, 11, 12] + output = [1, 11, 3, 10, 9, 6, 7, 12] + ``` + + Example 2: + ``` + data = [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]] + indices = [[0], [2]] + updates = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]] + output = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]] + ``` + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Attributes + +
+
reduction : string (default is none)
+
Type of reduction to apply: none (default), add, mul. 'none': no reduction applied. 'add': reduction using the addition operation. 'mul': reduction using the multiplication operation.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : tensor(int64)
+
Tensor of rank q >= 1.
+
updates (differentiable) : T
+
Tensor of rank q + r - indices_shape[-1] - 1.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank r >= 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
+ +### **Where-16** + + Return elements, either from X or Y, depending on condition. + Where behaves like + [numpy.where](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) + with three parameters. + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + **History** + - Version 16 adds bfloat16 to the types allowed (for the second and third parameter). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Inputs + +
+
condition (non-differentiable) : B
+
When True (nonzero), yield X, otherwise yield Y
+
X (differentiable) : T
+
values selected at indices where condition is True
+
Y (differentiable) : T
+
values selected at indices where condition is False
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of shape equal to the broadcasted shape of condition, X, and Y.
+
+ +#### Type Constraints + +
+
B : tensor(bool)
+
Constrain to boolean tensors.
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types (including bfloat).
+
+ +## Version 17 of the default ONNX operator set +### **LayerNormalization-17** + + This is layer normalization defined in ONNX as function. + The overall computation can be split into two stages. + The first stage is standardization, which makes the + normalized elements have zero mean and unit variances. + The computation required by standardization can be + described by the following equations. + ``` + Mean = ReduceMean(X) + D = Sub(X, Mean) + DD = Mul(Diff, Diff) + Var = ReduceMean(DD) + VarEps = Add(Var, epsilon) + StdDev = Sqrt(VarEps) + InvStdDev = Reciprocal(StdDev) + Normalized = Mul(D, InvStdDev) + ``` + where `normalized_axes` is `[axis, ..., rank of X - 1]`. + The variables `Var` and `StdDev` stand for variance and + standard deviation, respectively. The second output is + `Mean` and the last one is `InvStdDev`. + Depending on `stash_type` attribute, the actual computation + must happen in different floating-point precision. + For example, if `stash_type` is 1, this operator casts + all input variables to 32-bit float, perform the computation, and + finally cast `Normalized` back to the original type of `X`. + The second stage then scales and shifts the outcome of the + first stage using + ``` + NormalizedScaled = Mul(Normalized, Scale) + Y = Add(NormalizedScaled, B) + ``` + The second stage doesn't depends on `stash_type`. + All equations are in [this syntax](https://github.com/onnx/onnx/blob/main/docs/Syntax.md). + The same variable (i.e., input, output, and attribute) uses + the same name in the equations above and this operator's definition. + Let `d[i]` indicate the i-th dimension of `X`. + If `X`'s shape is `[d[0], ..., d[axis-1], d[axis], ..., d[rank-1]]`, + the shape of `Mean` and `InvStdDev` is `[d[0], ..., d[axis-1], 1, ..., 1]`. + `Y` and `X` have the same shape. + +#### Version + +This version of the operator has been available since version 17 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
The first normalization dimension. If rank(X) is r, axis' allowed range is [-r, r]. Negative value means counting dimensions from the back.
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero.
+
stash_type : int (default is 1)
+
Type of Mean and InvStdDev. This also specifies stage one's computation precision.
+
+ +#### Inputs (2 - 3) + +
+
X : T
+
Tensor to be normalized.
+
Scale : T
+
Scale tensor.
+
B (optional) : T
+
Bias tensor.
+
+ +#### Outputs (1 - 3) + +
+
Y : T
+
Normalized tensor.
+
Mean (optional) : U
+
Saved mean used during training to speed up gradient computation
+
InvStdDev (optional) : U
+
Saved inverse standard deviation used during training to speed up gradient computation.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types and output Y type to float tensors.
+
U : tensor(float), tensor(bfloat16)
+
Type of Mean and InvStdDev tensors.
+
+ +### **SequenceMap-17** + + Applies a sub-graph to each sample in the input sequence(s). + + Inputs can be either tensors or sequences, with the exception of the first input which must + be a sequence. The length of the first input sequence will determine the number of samples in the + outputs. Any other sequence inputs should have the same number of samples. The number of inputs + and outputs, should match the one of the subgraph. + + For each i-th element in the output, a sample will be extracted from the input sequence(s) at + the i-th position and the sub-graph will be applied to it. + The outputs will contain the outputs of the sub-graph for each sample, in the same order as in + the input. + + This operator assumes that processing each sample is independent and could executed in parallel + or in any order. Users cannot expect any specific ordering in which each subgraph is computed. + +#### Version + +This version of the operator has been available since version 17 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph to be run for each sample in the sequence(s). It should have as many inputs and outputs as inputs and outputs to the SequenceMap function.
+
+ +#### Inputs (1 - ∞) + +
+
input_sequence : S
+
Input sequence.
+
additional_inputs (variadic, heterogeneous) : V
+
Additional inputs to the graph
+
+ +#### Outputs (1 - ∞) + +
+
out_sequence (variadic, heterogeneous) : S
+
Output sequence(s)
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain input types to any sequence type.
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor or sequence type.
+
+ +# ai.onnx.preview.training +## Version 1 of the 'ai.onnx.preview.training' operator set +### **ai.onnx.preview.training.Adagrad-1** + + Compute one iteration of ADAGRAD, a stochastic gradient based optimization + algorithm. This operator can conduct the optimization of multiple tensor variables. + + Let's define the behavior of this operator. As you can imagine, ADAGRAD requires + some parameters: + + - The initial learning-rate "R". + - The update count "T". That is, the number of training iterations conducted. + - A L2-norm regularization coefficient "norm_coefficient". + - A learning-rate decay factor "decay_factor". + - A small constant "epsilon" to avoid dividing-by-zero. + + At each ADAGRAD iteration, the optimized tensors are moved along a direction + computed based on their estimated gradient and accumulated squared gradient. Assume + that only a single tensor "X" is updated by this operator. We need the value of "X", + its gradient "G", and its accumulated squared gradient "H". Therefore, variables in + this operator's input list are sequentially "R", "T", "X", "G", and "H". Other + parameters are given as attributes because they are usually constants. Also, the + corresponding output tensors are the new value of "X" (called "X_new"), and then + the new accumulated squared gradient (called "H_new"). Those outputs are computed + from the given inputs following the pseudo code below. + + Let "+", "-", "*", and "/" are all element-wise arithmetic operations with + numpy-style broadcasting support. The pseudo code to compute those outputs is: + + // Compute a scalar learning-rate factor. At the first update of X, T is generally + // 0 (0-based update index) or 1 (1-based update index). + r = R / (1 + T * decay_factor); + + // Add gradient of 0.5 * norm_coefficient * ||X||_2^2, where ||X||_2 is the 2-norm. + G_regularized = norm_coefficient * X + G; + + // Compute new accumulated squared gradient. + H_new = H + G_regularized * G_regularized; + + // Compute the adaptive part of per-coordinate learning rate. Note that Sqrt(...) + // computes element-wise square-root. + H_adaptive = Sqrt(H_new) + epsilon + + // Compute the new value of "X". + X_new = X - r * G_regularized / H_adaptive; + + If one assign this operators to optimize multiple inputs, for example, "X_1" and "X_2", the same + pseudo code may be extended to handle all tensors jointly. More specifically, we can view "X" as a + concatenation of "X_1" and "X_2" (of course, their gradient and accumulate gradient should + be concatenated too) and then just reuse the entire pseudo code. + + Note that ADAGRAD was first proposed in http://jmlr.org/papers/volume12/duchi11a/duchi11a.pdf. + In that reference paper, this operator is a special case of the Figure 1's composite mirror + descent update. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.preview.training' operator set. + +#### Attributes + +
+
decay_factor : float (default is 0.0)
+
The decay factor of learning rate after one update.The effective learning rate is computed by r = R / (1 + T * decay_factor). Default to 0 so that increasing update counts doesn't reduce the learning rate.
+
epsilon : float (default is 0.0)
+
Small scalar to avoid dividing by zero.
+
norm_coefficient : float (default is 0.0)
+
Regularization coefficient in 0.5 * norm_coefficient * ||X||_2^2. Default to 0, which means no regularization.
+
+ +#### Inputs (3 - ∞) + +
+
R : T1
+
The initial learning rate.
+
T : T2
+
The update count of "X". It should be a scalar.
+
inputs (variadic, heterogeneous) : T3
+
The current values of optimized tensors, followed by their respective gradients, followed by their respective accumulated squared gradients.For example, if two tensor "X_1" and "X_2" are optimized, The input list would be ["X_1", "X_2", gradient of "X_1", gradient of "X_2", accumulated squared gradient of "X_1", accumulated squared gradient of "X_2"].
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : T3
+
Updated values of optimized tensors, followed by their updated values of accumulated squared gradients. For example, if two tensor "X_1" and "X_2" are optimized, the output list would be [new value of "X_1," new value of "X_2" new accumulated squared gradient of "X_1", new accumulated squared gradient of "X_2"].
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double)
+
Constrain input types to float scalars.
+
T2 : tensor(int64)
+
Constrain input types to 64-bit integer scalars.
+
T3 : tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **ai.onnx.preview.training.Adam-1** + + Compute one iteration of Adam, a stochastic gradient based optimization + algorithm. This operator can conduct the optimization of multiple tensor variables. + + Let's define the behavior of this operator. First of all, Adam requires + some parameters: + + - The learning-rate "R". + - The update count "T". That is, the number of training iterations conducted. + - A L2-norm regularization coefficient "norm_coefficient". + - A small constant "epsilon" to avoid dividing-by-zero. + - Two coefficients, "alpha" and "beta". + + At each Adam iteration, the optimized tensors are moved along a direction + computed based on their exponentially-averaged historical gradient and + exponentially-averaged historical squared gradient. Assume that only a tensor + "X" is being optimized. The rest of required information is + + - the value of "X", + - "X"'s gradient (denoted by "G"), + - "X"'s exponentially-averaged historical gradient (denoted by "V"), and + - "X"'s exponentially-averaged historical squared gradient (denoted by "H"). + + Some of those parameters are passed into this operator as input tensors and others + are stored as this operator's attributes. Specifically, this operator's input tensor + list is ["R", "T", "X", "G", "V", "H"]. That is, "R" is the first input, "T" is + the second input, and so on. Other parameters are given as attributes because they + are constants. Moreover, the corresponding output tensors are + + - the new value of "X" (called "X_new"), + - the new exponentially-averaged historical gradient (denoted by "V_new"), and + - the new exponentially-averaged historical squared gradient (denoted by "H_new"). + + Those outputs are computed following the pseudo code below. + + Let "+", "-", "*", and "/" are all element-wise arithmetic operations with + numpy-style broadcasting support. The pseudo code to compute those outputs is: + + // Add gradient of 0.5 * norm_coefficient * ||X||_2^2, where ||X||_2 is the 2-norm. + G_regularized = norm_coefficient * X + G + + // Update exponentially-averaged historical gradient. + V_new = alpha * V + (1 - alpha) * G_regularized + + // Update exponentially-averaged historical squared gradient. + H_new = beta * H + (1 - beta) * G_regularized * G_regularized + + // Compute the element-wise square-root of H_new. V_new will be element-wisely + // divided by H_sqrt for a better update direction. + H_sqrt = Sqrt(H_new) + epsilon + + // Compute learning-rate. Note that "alpha**T"/"beta**T" is alpha's/beta's T-th power. + R_adjusted = T > 0 ? R * Sqrt(1 - beta**T) / (1 - alpha**T) : R + + // Compute new value of "X". + X_new = X - R_adjusted * V_new / H_sqrt + + // Post-update regularization. + X_final = (1 - norm_coefficient_post) * X_new + + If there are multiple inputs to be optimized, the pseudo code will be applied + independently to each of them. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.preview.training' operator set. + +#### Attributes + +
+
alpha : float (default is 0.9)
+
Coefficient of previously accumulated gradient in running average. Default to 0.9.
+
beta : float (default is 0.999)
+
Coefficient of previously accumulated squared-gradient in running average. Default to 0.999.
+
epsilon : float (default is 0.0)
+
Small scalar to avoid dividing by zero.
+
norm_coefficient : float (default is 0.0)
+
Regularization coefficient of 0.5 * norm_coefficient * ||X||_2^2. Default to 0, which means no regularization.
+
norm_coefficient_post : float (default is 0.0)
+
Regularization coefficient of 0.5 * norm_coefficient * ||X||_2^2. Default to 0, which means no regularization.
+
+ +#### Inputs (3 - ∞) + +
+
R : T1
+
The initial learning rate.
+
T : T2
+
The update count of "X". It should be a scalar.
+
inputs (variadic, heterogeneous) : T3
+
The tensors to be optimized, followed by their respective gradients, followed by their respective accumulated gradients (aka momentum), followed by their respective accumulated squared gradients. For example, to optimize tensors "X_1" and "X_2,", the input list would be ["X_1", "X_2", gradient of "X_1", gradient of "X_2", accumulated gradient of "X_1", accumulated gradient of "X_2", accumulated squared gradient of "X_1", accumulated squared gradient of "X_2"].
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : T3
+
New values of optimized tensors, followed by their respective new accumulated gradients, followed by their respective new accumulated squared gradients. For example, if two tensors "X_1" and "X_2" are optimized, the outputs list would be [new value of "X_1", new value of "X_2", new accumulated gradient of "X_1", new accumulated gradient of "X_2", new accumulated squared gradient of "X_1", new accumulated squared gradient of "X_2"].
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double)
+
Constrain input types to float scalars.
+
T2 : tensor(int64)
+
Constrain input types to 64-bit integer scalars.
+
T3 : tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ +### **ai.onnx.preview.training.Gradient-1** + + Gradient operator computes the partial derivatives of a specific tensor w.r.t. + some other tensors. This operator is widely used in gradient-based training + algorithms. To illustrate its use, let's consider a computation graph, + + ``` + X -----. + | + v + W --> Conv --> H --> Gemm --> Y + ^ + | + Z + ``` + + , where W and Z are trainable tensors. Note that operators' attributes are + omitted for the sake of simplicity. Let dY/dW (dY/dZ) be the gradient of + Y with respect to W (Z). The user can compute gradient by inserting Gradient + operator to form another graph shown below. + + ``` + W --> Conv --> H --> Gemm --> Y + | ^ ^ + | | | + | X Z + | | | + | | .----------' + | | | (W/Z/X is the 1st/2nd/3rd input of Gradient as shown in + | | | "xs" followed by "zs") + | v v + '---> Gradient(xs=["W", "Z"], zs=["X"], y="Y") + | | + | '-----------------------------------> dY/dW (1st output of Gradient) + | + '---------------------------------------> dY/dZ (2nd output of Gradient) + ``` + + By definition, the tensor "y" is a function of independent variables in "xs" + and "zs". Since we only compute the gradient of "y" w.r.t. the differentiable + variables in "xs", this Gradient only outputs dY/dW and dY/dZ. Note that "H" + cannot appear in "xs" and "zs". The reason is that "H" can be determined by + tensors "W" and "X" and therefore "H" is not an independent variable. + + All outputs are optional. If needed, for example, user can assign an empty + string to the 1st output name of that Gradient to skip the generation of dY/dW. + Note that the concept of optional outputs can also be found in ONNX's RNN, GRU, + and LSTM. + + Gradient operator can compute derivative against intermediate tensors. For + example, the gradient of Y with respect to H can be done via + + ``` + W --> Conv --> H --> Gemm --> Y + ^ | ^ + | | | + X | Z + .-------' | + | .----------' + | | (H/Z is the 1st/2nd input of Gradient as shown in "xs") + v v + Gradient(xs=["H", "Z"], y="Y") + | | + | '-----------------------------------> dY/dH (1st output of Gradient) + | + '---------------------------------------> dY/dZ (2nd output of Gradient) + ``` + + It is possible to represent high-order differentiation using Gradient operators. + For example, given the following linear model: + + ``` + W --> Gemm --> Y --> Loss --> O + ^ ^ + | | + X L + ``` + + To compute the 2nd order derivative of O with respect to W (denoted by + d^2O/dW^2), one can do + + ``` + W --> Gemm --> Y --> Loss --> O + | ^ ^ + | | | + | X .------------L + | | | | + | | | v + +------+-+> Gradient(xs=["X", "W"], zs=["L"], y="O") ---> dO/dX (1st output of Gradient) + | | | | + | | | '---> dO/dW (2nd output of Gradient) + | v v + '---> Gradient(xs=["X", "W"], zs=["L"], y="dO/dW") ---> d(dO/dW)dX (1st output of + | Gradient) + | + | + '---> d^2O/dW^2 (2nd output of Gradient) + ``` + + The tensors named in attributes "xs", "zs", and "y" define the differentiated + computation graph, and the inputs to Gradient node define the values at + which the gradient is computed. We can feed different tensors to the identified + graph. For example, one can compute the gradient of Y with respect to H at + a specific value of H, H_1, by providing that value as an input to the Gradient + node. + + ``` + W --> Conv --> H --> Gemm --> Y + ^ ^ + | | + X Z + + Z_1 (2nd input of Gradient) + | + v + H_1 --> Gradient(xs=["H", "Z"], y="Y") ---> dY/dH when H = H_1 and Y = Y_1. + | + '------------------------------> dY/dZ (2nd output of Gradient) + ``` + + When the inputs of Gradient are the tensors named in "xs" and "zs", the + computation can be optimized. More specifically, intermediate variables in + forward pass can be reused if the gradient is computed via reverse-mode + auto-differentiation. + + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.preview.training' operator set. + +#### Attributes + +
+
xs : list of strings (required)
+
Input tensor names of the differentiated sub-graph. It contains only the necessary differentiated inputs of a (sub-)graph. Variables (usually called intermediate variables) that can be generated from inputs cannot be included in this attribute.
+
y : string (required)
+
The targeted tensor. It can be viewed as the output of the differentiated function. The attribute "xs" and attribute "zs" are the minimal independent variable set that determines the value of "y".
+
zs : list of strings
+
Input tensor names of the differentiated sub-graph. It contains only the necessary non-differentiated inputs of a (sub-)graph. Variables (usually called intermediate variables) that can be generated from inputs cannot be included in this attribute.
+
+ +#### Inputs (1 - ∞) + +
+
Inputs (variadic, heterogeneous) : T1
+
The values fed into graph identified by the attributes. The i-th input is the value of the i-th tensor specified in the concatenated list of the attribute "xs" and the attribute "zs". For example, if xs=["A", "B"] and zs=["C"], the first input is used as the value of symbol "A" and the 3rd input is substituted for all the occurrences of "C".
+
+ +#### Outputs (1 - ∞) + +
+
Outputs (variadic, heterogeneous) : T2
+
The gradient of the tensor specified by the attribute "y" with respect to each of tensors specified in the attribute "xs". The i-th output is the gradient of "y" with respect to the i-th tensor specified in the attribute "xs".
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Allow outputs to be any kind of tensor.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Allow inputs to be any kind of floating-point tensor.
+
+ +### **ai.onnx.preview.training.Momentum-1** + + Compute one iteration of stochastic gradient update with momentum. + This operator can conduct the optimization of multiple tensor variables. + + Let's define the behavior of this operator. As you can imagine, SG with momentum requires + several parameters: + + - The learning-rate "R". + - The update count "T". That is, the number of conducted training iterations. It should + be zero in the first training iteration. + - A L2-norm regularization coefficient "norm_coefficient". + - A decay coefficient of previous accumulated gradient (i.e., momentum) "alpha". + - The scaling coefficient of current gradient "beta". + - An attribute to choose either standard momentum or Nesterov's momentum "mode" should + be used. + + For the sake of simplicity, assume that there is only one tensor (called "X") to be optimized. + Other necessary inputs are "X"'s gradient (called "G") and "X"'s momentum (called "V"). This + Momentum operator maps all these inputs to the new value of "X" (called "X_new") and its new + momentum (called "V_new"). + + This operator supports two different momentum algorithms. Set the attribute "mode" to + "nesterov" if Nesterov's momentum is desired. Otherwise, set the attribute "model" to + "standard" to use standard momentum. Computation details are described subsequently. + + Let "+", "-", "*", and "/" are all element-wise operations with numpy-style broadcasting. + + Pseudo code for SG with standard momentum: + + // Add gradient of 0.5 * norm_coefficient * ||X||^2, where ||X|| is the sum of squared + // values of all elements in X. + G_regularized = norm_coefficient * X + G + + // In the first training iteration, beta should always be 1. + beta_adjusted = T > 0 ? beta : 1 + + // Compute the current momentum based on previous momentum and the current gradient. + V_new = alpha * V + beta_adjusted * G_regularized + + // Update X. + X_new = X - R * V_new + + Pseudo code for SG with Nesterov's momentum: + + // Add gradient of 0.5 * norm_coefficient * ||X||^2, where ||X|| is the sum of squared + // values of all elements in X. + G_regularized = norm_coefficient * X + G; + + // In the first training iteration, beta should always be 1. + beta_adjusted = T > 0 ? beta : 1 + + // Compute the current momentum based on previous momentum and the current gradient. + V_new = alpha * V + beta_adjusted * G_regularized; + + // Compute final update direction and then update X. + X_new = X - R * (G_regularized + alpha * V_new) + + If one assign this operators to optimize multiple inputs, for example, "X_1" and "X_2". The same + pseudo code would be extended to handle all tensors jointly. More specifically, we can view "X" as a + concatenation of "X_1" and "X_2" (of course, their gradient and accumulate gradient should + be concatenated too) and then our pseudo code becomes applicable. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.preview.training' operator set. + +#### Attributes + +
+
alpha : float (required)
+
The decay factor of momentum. It should be a scalar.
+
beta : float (required)
+
The coefficient of gradient in computing new momentum. It should be a scalar.
+
mode : string (required)
+
Its value should be either "nesterov" or "standard". The value "nesterov" leads to the use of Nesterov's momentum while "standard" invokes stochastic gradient method using standard momentum
+
norm_coefficient : float (required)
+
Coefficient of 0.5 * norm_coefficient * ||X||^2.
+
+ +#### Inputs (3 - ∞) + +
+
R : T1
+
The learning rate.
+
T : T2
+
Update count of "X". It should be a scalar.
+
inputs (variadic, heterogeneous) : T3
+
It sequentially contains the current values of optimized tensors, then their gradient tensors, and finally their momentum tensors. For example, if two tensors "X_1" and "X_2" are optimized, The expected input list would be ["X_1", "X_2", gradient of "X_1", gradient of "X_2", momentum of "X_1", momentum of "X_2"].
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : T3
+
It sequentially contains the new values of optimized tensors and then the new values of their momentum tensors. For example, if two tensors "X_1" and "X_2" are optimized, the output list would be [new value of "X_1," new value of "X_2" new momentum of "X_1", new momentum of "X_2"].
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double)
+
Constrain input types to float scalars.
+
T2 : tensor(int64)
+
Constrain input types to 64-bit integer scalars.
+
T3 : tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
+ diff --git a/third_party/onnx/docs/DefineDifferentiability.md b/third_party/onnx/docs/DefineDifferentiability.md new file mode 100644 index 000000000..783ebd3b5 --- /dev/null +++ b/third_party/onnx/docs/DefineDifferentiability.md @@ -0,0 +1,108 @@ + + +# A Short Guide on the Differentiability Tag for ONNX Operators + +## Differentiability Tag +The ONNX operator schema for each operator includes a differentiability tag for each input and output. +In this document, we explain the meaning of this tag and how to ensure the correctness of the tags. +Briefly, the tag identifies the set of differentiable inputs and differentiable outputs of an operator. +The meaning of the tag is that the partial derivative of each differentiable output is defined with respect to each differentiable output. + +## Ways to Define Differentiability Tag +The differentiability definition of an operator consists of several aspects. + +- Differentiable inputs, which can be referenced in Gradient's `xs` attribute. +- Differentiable outputs, which can be referenced in Gradient's `y` attribute. +- The math equation to compute the Jacobian matrix (or tensor). If a variable (input or output) is differentiable or not is judged by math. If the Jacobian matrix (or tensor) exists, then the considered operator has some differentiable inputs and outputs. + +There are several strategies to implement auto-differentiation such as forward accumulation, backward accumulation, and dual variable. +Because most deep learning frameworks are backward-based, the reviewers should ensure the PR authors of tags provide enough details on that. +We present a couple of methods below to verify the differentiability for ONNX operator. + +### Method 1: Reuse Existing Deep Learning Frameworks +The first way is to show that the considered operator's backward operation exists in an existing framework such as Pytorch or Tensorflow. In this case, the author should provide a runnable python script which computes the backward pass of the considered operator. The author should also point out how to map the Pytorch or Tensor code to ONNX format (for example, the author can call `torch.onnx.export` to save an ONNX model). The following script shows the differentiability of ONNX Reshape using Pytorch. + +```python +import torch +import torch.nn as nn + +# A single-operator model. It's literally a Pytorch Reshape. +# Note that Pytorch Reshape can be directly mapped to ONNX Reshape. +class MyModel(nn.Module): + def __init__(self): + super(MyModel, self).__init__() + + def forward(self, x): + y = torch.reshape(x, (x.numel(),)) + y.retain_grad() + return y + +model = MyModel() + +x = torch.tensor([[1., -1.], [1., 1.]], requires_grad=True) +y = model(x) +dy = torch.tensor([1., 2., 3., 4.]) + +torch.autograd.backward([y], + grad_tensors=[dy], + retain_graph=True, + create_graph=True, + grad_variables=None) + +# This example shows the input and the output in Pytorch are differentiable. +# From the exported ONNX model below, we also see that "x" is the first input +# of ONNX Reshape and "y" the output of ONNX Reshape. Therefore, we can say +# the first input and the output of ONNX Reshape are differentiable. +print(x.grad) +print(y.grad) + +with open('model.onnx', 'wb') as f: + torch.onnx.export(model, x, f) +``` + +### Method 2: Manually Do the Math +The second way is formally proving the existence of the Jacobian matrix (or tensor) from outputs to inputs with at least two numerical examples. In this case, the reviewer should go through the math and confirm if the numerical result is correct. The author should add enough details so that any STEM graduated student can easily review it. + +For example, to show the differentiability of Add, the author may first write down its equation: +``` +C = A + B +``` +For the sake of simplicity, assume `A` and `B` are same-shape vector. +``` +A = [a1, a2]^T +B = [b1, b2]^T +C = [c1, c2]^T +``` +Here we use the symbol `^T` to denote transpose of the attached matrix or vector. +Let `X = [a1, a2, b1, b2]^T` and `Y = [c1, c2]^T` and consider Add as a function which maps `X` to `Y`. +Then, this function's Jacobian matrix is a 4-by-2 matrix, +``` +J = [[dc1/da1, dc2/da1], + [dc1/da2, dc2/da2], + [dc1/db1, dc2/db1], + [dc1/db2, dc2/db2]] + = [[1, 0], + [0, 1], + [1, 0], + [0, 1]] +``` +If +``` +dL/dC = [dL/dc1, dL/dc2]^T, +``` +then `dL/dA = [dL/da1, dL/da2]^T` and `dL/dB = [dL/db1, dL/db2]^T` can be computed from elements in +``` + [[dL/da1], [dL/da2], [dL/db1], [dL/db2]] += J * dL/dC += [[dL/dc1], [dL/dc2], [dL/dc1], [dL/dc2]] +``` +where `*` is standard matrix multiplication. +If `dL/dC = [0.2, 0.8]^T`, then `dL/dA = [0.2, 0.8]^T` and `dL/dB = [0.2, 0.8]^T`. +Notice that the procedure to compute `dL/dA` and `dL/dB` from `dL/dC` is usually called backward of an operator. +We can see backward operator of Add takes `dL/dC` as an input and produces two outputs `dL/dA` and `dL/dB`. +Consequently, all of `A`, `B`, and `C` are differentiable. +By flattening tensor into 1-D vector, this example can be extended to cover all tensors when shape broadcasting is not needed. +If broadcasting happens, the broadcasted element's gradient is the sum of all associated elements' gradient in its **non-broadcasting** case. +Let's consider the above example again. +If `B = [b]^T` becomes an 1-element vector, `B` may be broadcasted to `[b1, b2]^T` and `dL/dB = [dL/ db]^T = [dL/db1 + dL/db2]^T`. +For high-dimensional tensors, this is in fact a ReduceSum operation along all expanded axes. diff --git a/third_party/onnx/docs/DimensionDenotation.md b/third_party/onnx/docs/DimensionDenotation.md new file mode 100644 index 000000000..2c59b653f --- /dev/null +++ b/third_party/onnx/docs/DimensionDenotation.md @@ -0,0 +1,51 @@ + + +# Dimension Denotation + +Dimension Denotation is an experimental attempt to give tensor axis semantic descriptions and thus types and perform verification steps based on them subsequently. + +## Motivation + +The motivation of such a mechanism can be illustrated via a simple example. In the linear neural network specification below, we assume a NCHW model input: + +``` +input_in_NCHW -> Transpose(input, perm=[0, 2, 1, 3]) -> AveragePool(input, ...) +``` + +In this neural network, a user mistakenly constructed a neural network that transposes an NCHW input to a weird NHCW format and pass through spatial pooling that assumes a NCHW input format. As clearly a mistake as it is, no existing infrastructure will report an error to the user. This is should be deeply unnerving to programmers who rely heavily on type checking as an integral part of program correctness guarantee. This proposal seeks to resolve this vacuum of proper type-checking inherent in the current paradigm of neural network specification. + +This proposal consists of three key components: Denotation Definition, Denotation Propagation and Denotation Verification, each of which will be discussed in detail. + +## Denotation Definition + +To begin with, we define a set of types for tensor types. Such types are defined based on the following principles: +1. Be fine grain enough to eliminate potential pitfalls. For instance, the above example illustrated in the motivation section mandates that we distinguish between a channel dimension and a spatial feature dimension to ensure the correctness of execution of the AveragePool op. +2. Be coarse grain enough to alleviate the mental burden of users. For instance, in the above example, there is significantly less need to distinguish between a width dimension and a height dimension because operations like pooling and convolution often do not draw a distinction between various spatial dimensions. Thus, we summarize all the spatial dimensions as feature dimensions. +3. As an important corollary of 2, be model agnostic. For instance, the semantics of feature dimensions in recurrent neural networks (RNN) and the semantics of spatial dimensions in convolutional neural network (CNN) are almost indistinguishable and therefore we permit users and developers to describe either as a feature dimension. + +Specifically, in our first proposal, we define the following set of standard denotations: + +1. `DATA_BATCH` describes a batch dimension of the training data. This corresponds to the `N` dimension in the more commonly used tensor format notation `NCHW`. +2. `DATA_CHANNEL` describes a channel dimension of the training data. This corresponds to the `C` dimension. +3. `DATA_TIME` describes a time dimension. +4. `DATA_FEATURE` describes a feature dimension. This corresponds to the `H`, `W` dimension or the feature dimension in RNN. +5. `FILTER_IN_CHANNEL` describes a filter in-channel dimension. This is the dimension that is identical (in size) to the channel dimension of the input image feature maps. +6. `FILTER_OUT_CHANNEL` describes a filter out-channel dimension. This is the dimension that is identical (in size) to the channel dimension of the output image feature maps. +7. `FILTER_SPATIAL` describes a filter spatial dimension. + +## Denotation Propagation + +Denotation Propagation happens when an operation permutes, destroys or creates dimensions with respect to its input tensor. In such scenarios, we will implement customized, operation-specific functions to infer the output tensor dimension denotation based on the input tensor dimension denotation. An example operation where denotation propagation happens is Transpose operation where the pseudocode for output dimension denotation inference can be formulated as a function of the input dimension denotation: + +``` +for i, j in enumerate(perm): + out_dim_denotaion[i] = in_dim_denotation[j] +``` + +## Denotation Verification + +Denotation Verification happens when an operation expects its input to arrive in a particular format. An example operation where denotation verification happens is AveragePool operation where the input, if annotated with dimension denotation, in the 2D case should have the denotation [`DATA_BATCH`, `DATA_CHANNEL`, `DATA_FEATURE`, `DATA_FEATURE`]. If there is a mismatch between the expected dimension denotation and the actual dimension denotation, an error should be reported. + +## Type Denotation + +See the [type denotation documentation](TypeDenotation.md) for more details on how to describe images and other types. diff --git a/third_party/onnx/docs/ExternalData.md b/third_party/onnx/docs/ExternalData.md new file mode 100644 index 000000000..c1e53d7be --- /dev/null +++ b/third_party/onnx/docs/ExternalData.md @@ -0,0 +1,89 @@ + + +# External Data + +## Loading an ONNX Model with External Data + +* [Default] If the external data is under the same directory of the model, simply use `onnx.load()` +```python +import onnx + +onnx_model = onnx.load('path/to/the/model.onnx') +``` + +* If the external data is under another directory, use `load_external_data_for_model()` to specify the directory path and load after using `onnx.load()` + +```python +import onnx +from onnx.external_data_helper import load_external_data_for_model + +onnx_model = onnx.load('path/to/the/model.onnx', load_external_data=False) +load_external_data_for_model(onnx_model, 'data/directory/path/') +# Then the onnx_model has loaded the external data from the specific directory +``` + +## Converting an ONNX Model to External Data +```python +import onnx +from onnx.external_data_helper import convert_model_to_external_data + +onnx_model = ... # Your model in memory as ModelProto +convert_model_to_external_data(onnx_model, all_tensors_to_one_file=True, location='filename', size_threshold=1024, convert_attribute=False) +# Must be followed by save_model to save the converted model to a specific path +onnx.save_model(onnx_model, 'path/to/save/the/model.onnx') +# Then the onnx_model has converted raw data as external data and saved to specific directory +``` + +## Converting and Saving an ONNX Model to External Data +```python +import onnx + +onnx_model = ... # Your model in memory as ModelProto +onnx.save_model(onnx_model, 'path/to/save/the/model.onnx', save_as_external_data=True, all_tensors_to_one_file=True, location='filename', size_threshold=1024, convert_attribute=False) +# Then the onnx_model has converted raw data as external data and saved to specific directory +``` + +## onnx.checker for Models with External Data + +### Models with External Data (<2GB) + +Current checker supports checking models with external data. Specify either loaded onnx model or model path to the checker. + +### Large models >2GB +However, for those models larger than 2GB, please use the model path for onnx.checker and the external data needs to be under the same directory. + +```python +import onnx + +onnx.checker.check_model('path/to/the/model.onnx') +# onnx.checker.check_model(loaded_onnx_model) will fail if given >2GB model +``` + +## TensorProto: data_location and external_data fields + +There are two fields related to the external data in TensorProto message type. + +### data_location field +`data_location` field stores the location of data for this tensor. Value MUST be one of: +* `MESSAGE` - data stored in type-specific fields inside the protobuf message. +* `RAW` - data stored in raw_data field. +* `EXTERNAL` - data stored in an external location as described by external_data field. +* `value` not set - legacy value. Assume data is stored in raw_data (if set) otherwise in message. + +### external_data field +`external_data` field stores key-value pairs of strings describing data location + +Recognized keys are: + +* `"location"` (required) - file path relative to the filesystem directory where the ONNX protobuf model was stored. Up-directory path components such as .. are disallowed and should be stripped when parsing. +* `"offset"` (optional) - position of byte at which stored data begins. Integer stored as string. Offset values SHOULD be multiples 4096 (page size) to enable mmap support. +* `"length"` (optional) - number of bytes containing data. Integer stored as string. +* `"checksum"` (optional) - SHA1 digest of file specified in under 'location' key. + +After an ONNX file is loaded, all `external_data` fields may be updated with an additional key `("basepath")`, which stores the path to the directory from which he ONNX model file was loaded. + +### External data files +Data stored in external data files will be in the same binary bytes string format as is used by the `raw_data` field in current ONNX implementations. + +Reference +https://github.com/onnx/onnx/pull/678 diff --git a/third_party/onnx/docs/Hub.md b/third_party/onnx/docs/Hub.md new file mode 100644 index 000000000..9bd9c40e4 --- /dev/null +++ b/third_party/onnx/docs/Hub.md @@ -0,0 +1,235 @@ + + +# ONNX Model Hub + +The ONNX Model Hub is a simple and fast way to get started with state of the art pre-trained +ONNX models from the [ONNX Model Zoo](https://github.com/onnx/models). Furthermore, this allows researchers and model +developers the opportunity to share their pre-trained models with the broader community. + +## Install + The ONNX Model hub will be included in the `onnx` package from version 1.11 onwards. + To use the hub before the 1.11 release please install from the weekly build: + +```shell script +pip install -i https://test.pypi.org/simple/ onnx-weekly +``` + +## Basic usage +The ONNX Model Hub is capable of downloading, listing, and querying trained models from any git repository, + and defaults to the official [ONNX Model Zoo](https://github.com/onnx/models). In this section we demonstrate some of the basic functionality. + +First please import the hub using: +```python +from onnx import hub +``` + +#### Downloading a model by name: + +The `load` function will default to searching the model zoo for the latest model with a matching name, + download this model to a local cache, and load the model into a `ModelProto` + object for use with the ONNX runtime. + +```python +model = hub.load("resnet50") +``` + + +#### Downloading from custom repositories: + +Any repository with the proper structure can be a ONNX model hub. To download from other hubs, + or to specify a particular branch or commit on the main model hub one can provide the `repo` parameter: + +```python +model = hub.load("resnet50", repo='onnx/models:771185265efbdc049fb223bd68ab1aeb1aecde76') +``` + +#### Listing and inspecting Models: + +The model hub provides APIs for querying the model zoo to learn more about available models. + This does not download the models, but rather just returns information about models matching the given arguments + + ```python +# List all models in the onnx/models:master repo +all_models = hub.list_models() + +# List all versions/opsets of a specific model +mnist_models = hub.list_models(model="mnist") + +# List all models matching a given "tag" +vision_models = hub.list_models(tags=["vision"]) +``` + +One can also inspect the metadata of a model prior to download with the `get_model_info` function: + +```python +print(hub.get_model_info(model="mnist", opset=8)) +``` +This will print something like: +``` +ModelInfo( + model=MNIST, + opset=8, + path=vision/classification/mnist/model/mnist-8.onnx, + metadata={ + 'model_sha': '2f06e72de813a8635c9bc0397ac447a601bdbfa7df4bebc278723b958831c9bf', + 'model_bytes': 26454, + 'tags': ['vision', 'classification', 'mnist'], + 'io_ports': { + 'inputs': [{'name': 'Input3', 'shape': [1, 1, 28, 28], 'type': 'tensor(float)'}], + 'outputs': [{'name': 'Plus214_Output_0', 'shape': [1, 10], 'type': 'tensor(float)'}]}, + 'model_with_data_path': 'vision/classification/mnist/model/mnist-8.tar.gz', + 'model_with_data_sha': '1dd098b0fe8bc750585eefc02013c37be1a1cae2bdba0191ccdb8e8518b3a882', + 'model_with_data_bytes': 25962} +) +``` + + +## Local Caching + +The ONNX Model hub locally caches downloaded models in a configurable location +so that subsequent calls to `hub.load` do not require network connection. + +#### Default cache location +The hub client looks for the following default cache locations in this order: + +1) `$ONNX_HOME/hub` if the `ONNX_HOME` environment variable is defined +2) `$XDG_CACHE_HOME/hub` if the `XDG_CACHE_HOME` environment variable is defined +3) `~/.cache/onnx/hub` where `~` is the user home directory + +#### Setting the cache location +To manually set the cache location use: + +```python +hub.set_dir("my/cache/directory") +``` + +Additionally one can inspect the cache location with: + +```python +print(hub.get_dir()) +``` + +#### Additional cache details + +To clear the model cache one can simply delete the cache directory using a python utility like `shutil` or `os`. +Furthermore one can choose to override the cached model using the `force_reload` option: + +```python +model = hub.load("resnet50", force_reload=True) +``` + +We include this flag for completeness but note that models in the cache are disambiguated with sha256 hashes so + the force_reload flag is not necessary for normal use. +Finally we note that the model cache directory structure will mirror the directory structure +specified by the `model_path` field of the manifest, but with file names disambiguated with model SHA256 Hashes. + +This way, the model cache is human readable, can disambiguate between multiple versions of models, + and can re-use cached models across different hubs if they have the same name and hash. + +## Architecture + +![ONNX Hub Architecture](images/onnx_hub_arch.svg) + +The ONNX Hub consists of two main components, the client and the server. + The client code currently is included in the `onnx` package and can be pointed at a + server in the form of a hosted `ONNX_HUB_MANIFEST.json` within a github repository + such as [the one in the ONNX Model Zoo](https://github.com/onnx/models/blob/master/ONNX_HUB_MANIFEST.json). + This manifest file is a JSON document which lists all models and their metadata + and is designed to be programming language agnostic. An example of a well formed model manifest entry is as follows: + + ```json +{ + "model": "BERT-Squad", + "model_path": "text/machine_comprehension/bert-squad/model/bertsquad-8.onnx", + "onnx_version": "1.3", + "opset_version": 8, + "metadata": { + "model_sha": "cad65b9807a5e0393e4f84331f9a0c5c844d9cc736e39781a80f9c48ca39447c", + "model_bytes": 435882893, + "tags": ["text", "machine comprehension", "bert-squad"], + "io_ports": { + "inputs": [ + { + "name": "unique_ids_raw_output___9:0", + "shape": ["unk__475"], + "type": "tensor(int64)" + }, + { + "name": "segment_ids:0", + "shape": ["unk__476", 256], + "type": "tensor(int64)" + }, + { + "name": "input_mask:0", + "shape": ["unk__477", 256], + "type": "tensor(int64)" + }, + { + "name": "input_ids:0", + "shape": ["unk__478", 256], + "type": "tensor(int64)" + } + ], + "outputs": [ + { + "name": "unstack:1", + "shape": ["unk__479", 256], + "type": "tensor(float)" + }, + { + "name": "unstack:0", + "shape": ["unk__480", 256], + "type": "tensor(float)" + }, + { + "name": "unique_ids:0", + "shape": ["unk__481"], + "type": "tensor(int64)" + } + ] + }, + "model_with_data_path": "text/machine_comprehension/bert-squad/model/bertsquad-8.tar.gz", + "model_with_data_sha": "c8c6c7e0ab9e1333b86e8415a9d990b2570f9374f80be1c1cb72f182d266f666", + "model_with_data_bytes": 403400046 + } +} +``` +These important fields are: + +- `model`: The name of the model used for querying +- `model_path`: The relative path of the model stored in Git LFS. +- `onnx_version`: The ONNX version of the model +- `opset_version`: The version of the opset. The client downloads the latest opset if left unspecified. +- `metadata/model_sha`: Optional model sha specification for increased download security +- `metadata/tags`: Optional high level tags to help users find models by a given type + +All other fields in the `metadata` field are optional for the client but provide important details for users. + +## Adding to the ONNX Model Hub + + +#### Contributing an official model + +The simplest way to add a model to the official `onnx/models` version model hub is to follow +[these guidelines](https://github.com/onnx/models/blob/master/contribute.md) to contribute your model. Once contributed, +ensure that your model has a markdown table in its `README.md` +([Example](https://github.com/onnx/models/tree/master/vision/classification/mobilenet)). The model hub + manifest generator will pull information from these markdown tables. To run the generator: + + ```shell script +git clone https://github.com/onnx/models.git +git lfs pull --include="*" --exclude="" +cd models/workflow_scripts +python generate_onnx_hub_manifest.py +``` + +Once a new manifest is generated add, submit it in a pull request to ``onnx/models`` + +#### Hosting your own ONNX Model Hub + +To host your own model hub, add an `ONNX_HUB_MANIFEST.json` to the top level of your github repository + ([Example](https://github.com/onnx/models/blob/master/ONNX_HUB_MANIFEST.json)). At a minimum your + manifest entries should include the fields mentioned in + the [Architecture Section](Hub.md#Architecture) of this document. + Once committed, check that you can download models + using the "Downloading from custom repositories" section of this doc. \ No newline at end of file diff --git a/third_party/onnx/docs/IR.md b/third_party/onnx/docs/IR.md new file mode 100644 index 000000000..3729b3bb8 --- /dev/null +++ b/third_party/onnx/docs/IR.md @@ -0,0 +1,474 @@ + + +Open Neural Network Exchange Intermediate Representation (ONNX IR) Specification +========= + +__Purpose__ + +This document contains the normative specification of the semantics of ONNX. + +The `.proto` and `.proto3` files found under the [onnx folder](/onnx/) form the normative specification of its syntax authored in the [Protocol Buffers](https://developers.google.com/protocol-buffers) definition language. Commentary found in the `.proto` and `.proto3` files are intended to improve readability of those files, but are not normative if they conflict with this document. Such conflicts should be reported as documentation bugs. + +__Notes on model validation__ + +A [tool](../onnx/checker.py) is available to perform general validation of models against this specification. It is implemented in C++ with a Python command-line wrapper. + +__Notes on language in this and all related documents__: + +1. The use of SHOULD, MUST, MAY and so on in this document is consistent with [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt). + +2. The use of 'list' shall denote an ordered collection of items, 'set' shall denote an unordered collection of unique elements, and 'bag' an unordered collection of possibly non-unique elements. + +## Components + +ONNX is an open specification that consists of the following components: + +1) A definition of an extensible computation graph model. + +2) Definitions of standard data types. + +3) Definitions of built-in operators. + +#1 and #2 together make up the ONNX Intermediate Representation, or 'IR', specification which is covered herein; the built-in operators are covered in documents listed at the end. Specifically, built-in operators are divided into a set of primitive operators and functions. A function is an operator whose semantics is formally expressed via expansion into a sub-graph (called the function body) using other operators (and functions). Functionality-wise, an ONNX compatible framework or runtime may inline a function body to execute it if it does not have corresponding implementation of the function. + +There are two official ONNX variants; the main distinction between the two is found in the default operator sets. __ONNX-ML__ extends the __ONNX__ operator set with ML algorithms that are not based on neural networks. + +Up to IR version 6, the ONNX specification and model format addressed only inference (also known as scoring). Starting from IR version 7, the ONNX specification and model format also support training. An ONNX training model is an extension of the inference-model. An inference-only runtime can consume a training model ignoring the training-related extensions. However, an inference-only model may enable a representation that is more optimal for inference purposes than a training model. + +## Runtime Agnostic + +ONNX does not pre-suppose or imply any particular method of runtime implementation. + +For example, an implementation may consist of a rich runtime which interprets the model; it may be a code generator that translates the model in its entirety to executable code for some target programming language; it may be a hardware implementation; it may be a combination of two or three of those. + +Nothing in this specification should be construed as advocating one implementation approach over any other; any comments on the inner workings of concrete implementations are to be interpreted as examples. + +## ONNX Versioning + +The IR specification, individual models, and operator sets are all versioned. Furthermore, each individual operator indicates which version of its containing operator set it was introduced or stabilized in. + +Version numbers can be used as a simple number, or used to encode [semantic versions](https://semver.org/)(AKA SemVer). If using semantic versions, the convention is to use the two most significant bytes for the major number, the next two bytes for the minor number, and the least significant four bytes for the patch/build/bugfix number. When using semantic versioning, at least one of the major/minor numbers MUST be non-zero. + +The IR specification uses simple monotonically increasing numbers for its versions. The valid IR versions are defined by the `onnx.Version` enumeration in [onnx.proto](/onnx/onnx.proto). + +Operator sets use a simple version number. Each operator set version represents a snapshot of the set of operators, and their semantics at a particular point in time. + +This specification does not provide guidance on what versioning scheme model producers should be using. + +More details on conventions and best practices for versioning of IR, operator sets, and models can be found in [Versioning](Versioning.md). + +## Extensible computation graph model + +ONNX specifies the portable, serialized format of a computation graph. It does not have to be the form a framework chooses to use internally. For example, an implementation may represent the model differently in memory if it is more efficient to manipulate during optimization passes. + +An implementation MAY extend ONNX by adding operators expressing semantics beyond the standard set of operators that all implementations MUST support. The mechanism for this is adding operator sets to the `opset_import` property in a model that depends on the extension operators. + +### Models + +The top-level ONNX construct is a ‘Model.’, and is represented in protocol buffers as the type `onnx.ModelProto` + +The main purpose of the model structure is to associate metadata with a graph which contains all the executable elements. The metadata is used when first reading the model file, giving an implementation the information it needs in order to determine whether it will be able to execute the model, generate logging messages, error reports, etc. Further, the metadata is useful to tools, such as IDEs and model galleries, which need it for informing humans about a given model’s purpose and characteristics. + +Each model has the following components: + +|Name|Type|Description| +|---|---|---| +|ir_version|int64|The ONNX version assumed by the model.| +|opset_import|OperatorSetId|A collection of operator set identifiers made available to the model. An implementation must support all operators in the set or reject the model.| +|producer_name|string|The name of the tool used to generate the model.| +|producer_version|string|The version of the generating tool.| +|domain|string|A reverse-DNS name to indicate the model namespace or domain, for example, 'org.onnx'| +|model_version|int64|The version of the model itself, encoded in an integer.| +|doc_string|string|Human-readable documentation for this model. Markdown is allowed.| +|graph|Graph|The parameterized graph that is evaluated to execute the model.| +|metadata_props|map|Named metadata values; keys should be distinct.| +|training_info|TrainingInfoProto[]|An optional extension that contains information for training.| +|functions|FunctionProto[]|An optional list of functions local to the model.| + + Models MUST specify a domain and use reverse domain names based on the responsible organization's identity, the same convention that is used for [naming Java packages](https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html). + +__Note: Exploring an ONNX file__ + +You can use the `protoc` tool that is part of the Protocol Buffers distribution to examine the contents of an ONNX file, you do so like this: + +``` +$ protoc --decode=onnx.ModelProto onnx.proto < yourfile.onnx +``` + +Where [onnx.proto](/onnx/onnx.proto) is the file that is part of this repository. + +Alternatively, you can use a tool like [Netron](https://github.com/lutzroeder/netron) to explore the ONNX file. + +### Model Semantics + +The semantics of an inference-model is a _stateless function_ (except possibly for the state used for random-number generation). Thus, whenever an inference-model (without random-generator operations) is used to perform inference on the same input, it is expected to produce the same output. + +The semantics of a training model is that of a _stateful object_, with the state consisting of the current values of trained-weights (and any other auxiliary state required, such as momentum, for example, used by the learning algorithm). Specifically, its semantics is captured via three methods: an initialization method (which is used to initialize or reset the values of state variables), a training step method (to train using a batch of input-output pairs), and an inference method to perform inference using the current values of the learned weights. The first two methods update the state of the object, while the third method is side-effect-free. + +### Optional Metadata + +The 'metadata_props' field in the model is available for any kind of optional metadata that a tool or model developer chooses to place there. The following are the defined “standard†optional metadata properties of a model. + +Name|Type|Format|Description +|---|---|---|---| +model_author|string|A comma-separated list of names.|The personal name of the author(s) of the model, and/or their organizations. +model_license|string|Name or URL.|The well-known name or URL of the license under which the model is made available. + +### Operator Set Identifiers + +Each operator set is uniquely identified by a (domain, version) pair. + +Name|Type|Description +|---|---|---| +domain|string|The domain of the operator set being identified. +version|int64|The version of the operator set being identified. Same as 'opset_version' in the operator set. + +The operator set version is a simple integer value that is monotonically increased as new versions of the operator set are published. + +Operator sets other than the default operator set MUST specify a domain and SHOULD use reverse domain names based on the responsible organization's identity, the same convention that is used for [naming Java packages](https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html). + +### Operator Sets + +Each model MUST explicitly name the operator sets that it relies on for its functionality. Operator sets define the available operators and their version. Each model defines the imported operator sets by their domains. All models implicitly import the default ONNX operator set. + +Each operator set SHALL be defined in a separate document, also using protobuf as the serialization format. How operator set documents are found at runtime is implementation-dependent. + +__Note: As of the publication of this document, no ONNX implementation is known to process operator set documents.__ + +The properties of an operator set are: + +Name|Type|Description +|---|---|---| +magic|string|The value ‘ONNXOPSET’ +ir_version|int32|The ONNX version corresponding to the operators. +ir_version_prerelease|string|The prerelease component of the SemVer of the IR. +ir_build_metadata|string|The build metadata of this version of the operator set. +domain|string|The domain of the operator set. Must be unique among all sets. +opset_version|int64|The version of the operator set. +doc_string|string|Human-readable documentation for this operator set. Markdown is allowed. +operator|Operator[]|The operators contained in this operator set. + +The operator set version is a simple integer value that is monotonically increased as new versions of the operator set are published. + +Operator sets other than the default operator set MUST specify a domain and SHOULD use reverse domain names based on the responsible organization's identity, the same convention that is used for [naming Java packages](https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html). + +### Operators + +Each operator used within a graph MUST be explicitly declared by one of the operator sets imported by the model. + +The properties of an operator definition are: + +Name|Type|Description +|---|---|---| +op_type|string|The name of the operator (case sensitive), as used in graph nodes. MUST be unique within the operator set’s domain. +since_version|int64|The version of the operator set when this operator was introduced. +status|OperatorStatus|One of ‘EXPERIMENTAL’ or ‘STABLE.’ +doc_string|string|A human-readable documentation string for this operator. Markdown is allowed. + +The version value MUST be the same value as the operator set version when the operator was first published. Subsequent versions of the operator set MUST NOT alter the signature or semantics of the operator once published as STABLE. + +The ‘status’ property indicates whether the syntax, semantics, or presence of the operator is in an experimental or stable stage. Once an operator is published as STABLE, it’s syntax and semantics MUST NOT change in subsequent versions of the operator set. + +There are two distinct ways to pass information to operators – inputs and attributes. Inputs represent graph inputs or values computed elsewhere in the graph, while attributes are used for values that are constants in the graph. This distinction may be highly relevant to achieving good performance for some implementations, while completely irrelevant to others. + +### Graphs + +A graph is used to describe a side-effect-free computation (function). +A serialized graph is comprised of a set of metadata fields, a list of model parameters, and a list of computation nodes. + +Each computation dataflow graph is structured as a topologically sorted list of nodes that form a graph, which MUST be free of cycles. Each node represents a call to an operator or a model local function. Each node has zero or more inputs and one or more outputs. + +Graphs have the following properties: + +|Name|Type|Description| +|---|---|---| +name|string|The name of the model graph. +node|Node[]|A list of nodes, forming a partially ordered computation graph based on input/output data dependencies. It is in topological order. +initializer|Tensor[]|A list of named tensor values. When an initializer has the same name as a graph input, it specifies a default value for that input. When an initializer has a name different from all graph inputs, it specifies a constant value. The order of the list is unspecified. +doc_string|string|Human-readable documentation for this model. Markdown is allowed. +input|ValueInfo[]|The input parameters of the graph, possibly initialized by a default value found in ‘initializer.’ +output|ValueInfo[]|The output parameters of the graph. Once all output parameters have been written to by a graph execution, the execution is complete. +value_info|ValueInfo[]|Used to store the type and shape information of values that are not inputs or outputs. + +ValueInfo has the following properties: + +Name|Type|Description +|---|---|---| +name|string|The name of the value/parameter. +type|Type|The type of the value **including shape information**. +doc_string|string|Human-readable documentation for this value. Markdown is allowed. + +Each main (top-level) graph MUST define the names, types and shapes of its inputs and outputs, which are specified as ‘value info’ structures. The main graph inputs and outputs are required to have a shape, indicating the rank, even though the exact dimensions need not be specified. + +Nested subgraphs (specified as attribute values) MUST define the names of its inputs and outputs +and MAY define the types of its inputs and outputs. + +Each graph MUST specify a name. + +The graph MUST adhere to single static assignment (SSA) for all node outputs; this means that all node output names MUST be unique within a graph. + +Graphs SHOULD be populated with documentation strings, which MAY be interpreted using GitHub-style markdown syntax. HTML and other text-markup languages MAY NOT be used in documentation strings. + +### Names Within a Graph + +All names MUST adhere to [C90 identifier syntax rules](https://en.cppreference.com/w/c/language/identifier). + +Names of nodes, inputs, outputs, initializers, and attributes are organized into several namespaces. Within a namespace, each name MUST be unique for each given graph. Please see below for further clarification in the case where a graph contains nested subgraphs (as attribute values). + +The namespaces are: + +Namespace|Description +|---|---| +Attribute|The names of attributes of an operator. Unique for each operator. +Value|The names of values – node inputs & outputs, tensor values (if named), graph inputs, outputs. +Node|The names of graph nodes. +Graph|The names of graphs within a domain, unique within the model domain. +Operator|The names of operators within a domain. +Shape|The names of tensor shape variables – scoped to the value information records of a graph, which is where shape variables occur. + + +### Nodes + +Computation nodes are comprised of a name, the name of an operator that it invokes, a list of named inputs, a list of named outputs, and a list of attributes. + +Input and outputs are positionally associated with operator inputs and outputs. Attributes are associated with operator attributes by name. + +They have the following properties: + +Name|Type|Description +|---|---|---| +name|string|An optional name of the node, used for diagnostic purposes only. +input|string[]|Names of the values used by the node to propagate input values to the node operator. It must refer to either a graph input, a graph initializer or a node output. +output|string[]|Names of the outputs used by the node to capture data from the operator invoked by the node. It either introduces a value in the graph or refers to a graph output. +op_type|string|The symbolic identifier of the operator to invoke. +domain|string|The domain of the operator set that contains the operator named by the op_type. +attribute|Attribute[]|Named attributes, another form of operator parameterization, used for constant values rather than propagated values. +doc_string|string|Human-readable documentation for this value. Markdown is allowed. + +A name belonging to the Value namespace may appear in multiple places, namely as a graph input, a graph initializer, a graph output, a node input, or a node output. The occurrence of a name as a graph input, a graph initializer, or as a node output is said to be a definition and the occurrence of a name as a node input or as a graph output is said to be a use. + +A value name used in a graph must have a unique definition, with the exception that the same name MAY appear in both the graph input list and graph initializer list. (Further exceptions apply in the presence of nested subgraphs, as described later.) + +When a name appears in both the initializer list and the graph input list, a runtime MAY allow a caller to specify a value for this (input) name overriding the value specified in the initializer and a runtime MAY allow users to omit specifying a value for this (input) name, choosing the value specified in the initializer. Names of constants that are not meant to be overridden by the caller should appear only in the initializer list and not in the graph input list. In models with IR version >= 4, in nested subgraphs used as attribute values, users MUST NOT use the same name as both a subgraph initializer and subgraph input unless the corresponding op's specification explicitly allows it. In models with IR version <= 3, users MAY use the same name as both a subgraph initializer and subgraph input, but this is restricted to support constants via initializers that are not intended to correspond to any actual inputs passed from the node into the subgraph. In particular, the control-flow operator semantics determines the set of inputs supplied to the execution of the subgraph, and these input names MUST NOT appear as subgraph initializers. Subgraph initializer names must appear in the graph input list _after_ the actual inputs. This allows the actual inputs and formal inputs to be matched positionally. + +Edges in the computation graph are established by outputs of one node being referenced by name in the inputs of a subsequent node. + +The outputs of a given node introduce new names into the graph. The values of node outputs are computed by the node's operator. Node inputs MAY refer to node outputs, graph inputs, and graph initializers. When the name of a node output coincides with the name of a graph output, the graph output's value is the corresponding output value computed by that node. A node input in a nested subgraph MAY refer to names introduced in outer graphs (as node outputs, graph inputs, or graph initializers). + +The graph MUST use single static assignment for all node outputs, which means that all node output names MUST be unique within a graph. In the case of a nested subgraph, a node output name MUST be distinct from the names from the outer scopes that are visible in the nested subgraph. + +Node dependencies MUST NOT create cycles in the computation graph. + +The number of inputs and outputs in a node, their types, the set of attributes specified in a node and their types MUST satisfy the constraints imposed by the signature of the node’s operator. + +The list of nodes defining the top-level computation graph MUST be ordered topologically; that is, if node K follows node N in the graph, none of the data inputs of N may refer to outputs of K. + +Node attributes are used to pass literal (static) values to operators. + +#### Input and Output Values + +The representation distinguishes between two kinds of values: attribute values, which are statically known, and input/output values. The types of values permitted in the two cases are different. + +Input and output values are found as graph inputs, outputs, and initializers, and as node inputs and outputs. Their values are determined at runtime, either by the code that initiates model execution, or by operators computing output values. + +#### Attributes + +Attribute values are only found in nodes, passed to operators by name association. Attribute values are runtime constants, in that their values are determined when a model graph is constructed and therefore not computed at runtime. A common use for attributes is to represent coefficients established during model training. + +Attributes have the following properties: + +Name|Type|Description +|---|---|---| +name|string|The name of the attribute. Must be unique among attributes, inputs, and outputs for any given operator and node. +doc_string|string|Human-readable documentation for this value. Markdown is allowed. +type|AttributeType|The type of the attribute, determining which of the remaining fields is used to hold the value of the attribute. +f|float|A 32-bit floating-point value. +i|int64|A 64-bit integer value. +s|byte[]|UTF-8 string. +t|Tensor|A tensor value. +g|Graph|A graph. +floats|float[]|A list of 32-bit floating-point values. +ints|int64[]|A list of 64-bit integer values. +strings|byte[][]|A list of UTF-8 strings. +tensors|Tensor[]|A list of tensor values. +graphs|Graph[]|A list of graphs. + +The properties ‘name’ and ‘type’ are required on all attributes, and ‘doc_string’ SHOULD be used on all attributes. An attribute MUST have only one of the value-carrying properties. + + +#### Variadic Inputs and Outputs + +The last input or output of an operator MAY be marked as variadic. For example, the operator 'Max()' can be used to compute the maximum of a varying number of input values. A variadic operator has a minimum arity, which specifies the minimum number of operands that must be specified. + +For each variadic operator input, N or more node inputs must be specified where N is the minimum arity of the operator. For each variadic operator output, N or more node outputs must be specified where N is the minimum arity of the operator. + +#### Optional Inputs and Outputs + +Some operators have inputs that are marked as optional, which means that a referring node MAY forgo providing values for such inputs. + +Some operators have outputs that are optional. When an actual output parameter of an operator is not specified, the operator implementation MAY forgo computing values for such outputs. + +There are two ways to leave an optional input or output unspecified: the first, available only for trailing inputs and outputs, is to simply not provide that input; the second method is to use an empty string in place of an input or output name. + +Each node referring to an operator with optional outputs MUST provide a name for each output that is computed and MUST NOT provide names for outputs that are not computed. + +#### External Tensor Data + +The raw data for large constant tensors, such as initializers, MAY be serialised in a separate file. In such a case, the tensor MUST provide the filename relative to the model file and MUST NOT use the value fields. It MAY provide a byte offset and length within that file. It MAY also specify a SHA1 digest of the file. One file MAY contain the data for multiple tensors. + +More details can be found in [External Data](ExternalData.md). + +## Standard data types + +There are two official ONNX variants; the main distinction between the two is found in the supported types and the supported operators. + +With respect to supported types, both __ONNX__ and __ONNX-ML__ definition recognize tensors, sparse tensors, sequences, maps, and optionals as input and output types. Sequences and maps were supported from the IR version 6 (ONNX 1.6.0 release). Optional type was supported from IR vesion 8 (ONNX 1.10.0 release). + +The following data types are supported by ONNX for inputs and outputs of graphs and nodes as well as the initializers of a graph. + +Primitive numeric, string, and Boolean types MUST be used as elements of tensors. + +### Tensor Definition + +Tensors are a generalization of vectors and matrices; whereas vectors have one dimension, and matrices two, tensors can have any number of dimensions, including zero. A zero-dimensional tensor is logically equivalent to a scalar value. + +Mathematically, a tensor can be defined as a pair of sequences/lists (V, S) where S is the shape of the tensor (a list of non-negative integers) and V is a list of values with length equal to the product of the dimensions in S. Two tensors (V, S) and (V', S') are equal if and only if V = V' and S = S'. The length of S is referred to as the rank. + + - If S has length 0, V must have length 1, since the empty product is defined to be 1. In this case, the tensor represents a scalar. + - S can contain dimensions of value 0. If any dimensions are 0, V must have length 0. + - If S has length 1, V has length equal to the single dimension in S. In this case, the tensor represents a vector. + - A tensor representing a vector of length 1 has shape [1], while a tensor representing a scalar has shape []. They both have a single element, but scalars are _not_ vectors of length 1. + +A tensor's shape S is a list but can be represented as a tensor with values S and shape [R] where R is the rank of the tensor. + + - For a tensor (V, S), the tensor representing its shape is (S, [R]). + - The shape of a scalar is []. Represented as a tensor, [] has shape [0]. + +#### Representation + +It is common to represent a tensor as a nested list. This generally works fine, but is problematic when zero dimensions are involved. A tensor of shape (5, 0) can be represented as [[], [], [], [], []], but (0, 5) is represented as [] which loses the information that the second dimension is 5. + + - A nested list is not a complete representation of a tensor with dimensions of value zero. + +### Tensor Element Types + +|Group|Types|Description| +|---|---|---| +Floating Point Types|float16, float32, float64|Values adhering to the IEEE 754-2008 standard representation of floating-point data. +Signed Integer Types|int8, int16, int32, int64|Signed integers are supported for 8-64 bit widths. +Unsigned Integer Types|uint8, uint16|Unsigned integers of 8 or 16 bits are supported. +Complex Types|complex64, complex128|A complex number with either 32- or 64-bit real and imaginary parts. +Other|string|Strings represent textual data. All strings are encoded using UTF-8. +Other|bool|Boolean values represent data with only two values, typically true and false. + +### Input / Output Data Types + +The following types are used to define the types of graph and node inputs and outputs. + +|Variant | Type | Description | +|---|---|---| +ONNX|dense tensors|Represents a Tensor. See definition above. +ONNX|sequence|Sequences are dense, ordered, collections of elements that are of homogeneous types. +ONNX|map|Maps are associative tables, defined by a key type and a value type. +ONNX|optional|Optionals are wrappers that may contain an element of tensor, sequence, or map type, or may be empty (containing none). [Details](ONNXTypes.md) + +#### Static tensor shapes + +In addition to element type, tensor types have a **static** shape. The static shape of a tensor variable is related to, but different from, the runtime (dynamic) shape of a tensor value. A static tensor shape is a list of records that indicates whether the tensor is a vector, a matrix, or a higher-dimensional value. For example, a 100x100 matrix has the shape [100,100]. + +The static shape is defined by 'TensorShapeProto': + +``` +message TensorShapeProto { + message Dimension { + oneof value { + int64 dim_value = 1; + string dim_param = 2; + }; + }; + repeated Dimension dim = 1; +} +``` +Which is referenced by the Tensor type message: + +``` + message Tensor { + optional TensorProto.DataType elem_type = 1; + optional TensorShapeProto shape = 2; + } +``` + +The empty list of dimension sizes, [], is a valid tensor shape, denoting a zero-dimension (scalar) value. A zero-dimension tensor is distinct from a tensor of unknown dimensionality, which is indicated by an absent 'shape' property in the Tensor message. When the shape property is absent in the type of a value (including node input), +it indicates that the corresponding runtime value may have any shape. This sub-section describes how to interpret a missing-shape or a shape with missing dimensions etc. However, specific usage contexts may impose further constraints on a type and shape. +For example, the inputs and outputs of a model (top-level graph) are required to *have* a shape, indicating the rank of inputs and outputs, +even though the exact dimensions need not be specified. + +Each size in the list MAY be expressed as an integral value or as a "dimension variable," a string denoting that the actual size of the dimension is not statically constrained to a particular number. This is useful for declaring interfaces that care about the number of dimensions, but not the exact size of each dimension. A dimension MAY have neither dim_value nor dim_param set. Such a dimension represents an unknown dimension unrelated to other unknown dimensions. + +For example, a NxM matrix would have the shape list [N,M]. + +The name of each dimension variable MUST adhere to [C90 identifier syntax rules](https://en.cppreference.com/w/c/language/identifier). + +Currently, dimension variables are not scoped. A dimension variable "N" represents the same value across the entire graph in a model. For example, if the graph has two inputs X and Y each with shape ["N"], then at runtime the values passed in for X and Y MUST be tensors of rank 1 with the same dimension. Nested sub-graphs currently share the same scope for dimension variables as the main-graph. This allows a model to relate the dimensions of tensors inside the subgraph to the dimensions of tensors in the outer graph. + +ONNX supports types such as Sequences of Tensors. The global scoping of dimension variables means that a variable with type "Sequence" represents a sequence of tensors that *all have the same shape*. The dimension variables M or N must be omitted from the above type if that dimension does not have a fixed size across all tensors in the sequence. The entire shape must be omitted from the type if different tensors in the sequence may have different ranks. + +For example, a graph that performs matrix cross-product may be defined as taking two inputs of shape [K,M] and [M,N], and producing an output of shape [K,N]. + +Shapes MAY be defined using a combination of integers and variables. + +_Historical Notes_: The following extensions were considered early on, but were never implemented or supported. +* The use of an empty string (as a dimension variable) to denote an unknown dimension not related to any other dimension. This was discarded in favor of using a Dimension with neither dim_value nor dim_param set. +* The use of the string "\*" (as a dimension variable) to denote a sequence of zero or more dimensions of unknown cardinality. This is not supported. In the current implementation, the number of dimensions in a shape MUST represent the rank of the tensor. A tensor of unknown rank is represented using a TypeProto::Tensor object with no shape, which is legal. +* A scoping mechanism to allow dimension variables that are local to a sub-graph (such as the body of a loop) may be useful, but is not currently supported. +* ONNX supports types such as Sequences of Tensors. A scoping mechanism for the dimension variables local to a type may be useful to distinguish between the following two types: a sequence of square matrices (of differing sizes) vs a sequence of square matrices (all of same size). This is not currently supported. + +### Attribute Types + +The type system used for attributes is related to but slightly different from that used for of inputs and outputs. Attribute values may be a dense tensor, sparse tensor, a scalar numerical value, a string, a graph, or repeated values of one of the above mentioned types. + +## Training Related Information + +Training related information is described by one or more instances of _TrainingInfoProto_ contained in a model. Each TrainingInfoProto contains information describing both an initialization step and a training step. + +The initialization step is described using a Graph (TrainingInfoProto.initialization) and an initialization-binding map (TrainingInfoProto.initialization_binding). The initialization step is performed by evaluating the Graph, and assigning the outputs produced by the Graph to the _state variables_ of the training model as specified in the initialization-binding. The initialization-binding is conceptually a map, specified as a list of key-value pairs, where each key is the name of a state variable, and the value is the name of an output of the (initialization) Graph. Each name specified as a key in the binding MUST be the name of an initializer that appears in the main inference graph (i.e., in ModelProto.graph.initializer) or the name of an initializer that appears in TrainingInfoProto.algorithm.initializer. Each name specified as a value in the binding MUST be the name of an output of the TrainingInfoProto.initialization graph. Key values specified in the repeated initialization_binding field MUST be unique. + +The training step is similarly described using a Graph (TrainingInfoProto.algorithm) and an update-binding map (TrainingInfoProto.update_binding). The training step is performed by evaluating the Graph and assigning the outputs produced by the Graph to the state variables as specified in the update-binding. The constraints and description presented above for the initialization apply to the training step as well. + +Thus, the state variables of the training model consist of a subset of the initializers of the main inference graph (i.e., ModelProto.graph.initializer) and the training-algorithm graph (TrainingInfoProto.algorithm.initializer) as identified by the keys of the bindings (in TrainingInfoProto.initialization_binding and TrainingInfoProto.update_binding). Note that the state variables are not constant values in the context of training. They represent mutable variables shared by multiple graphs (implicitly declared in the top-level training model scope). This implicit declaration of shared mutable variables is used instead of an explicit declaration for purposes of backward compatibility with the inference graph representation. + +All state variables are pre-initialized to the value specified in the corresponding initializer. A subsequent call to perform the initialization step (using the appropriate API exposed by a runtime) updates the values of the state variables as described above. If the training model has more than one instance of TrainingInfoProto, the initialization step corresponding to each is performed in order. A TrainingInfoProto.initialization MAY be omitted (only if there are no initialization_bindings). For the training step, a runtime MAY allow users to invoke any one of the TrainingInfoProto.algorithm, allowing the training process to interleave the different algorithms as desired. The order in which the different TrainingProto.algorithms are called affects the training result, and it is the callers responsibility to call them in the correct order. + +## Other Specification Documents + +The ONNX specification is comprised of this document, which defines the semantics of the IR and the standard data types, and the following documents defining standard operator semantics and the IR syntax. The latter is specified as Protobuf v2 and v3 schema files. + +See the [metadata category documentation](MetadataProps.md) for more details. + +### Operators + +[Neural Network Operators](Operators.md) + +[Classical Machine Learning operators](Operators-ml.md) + +### Syntax + +[ONNX Models and Graphs - protobuf v2](../onnx/onnx.proto) + +[ONNX Models and Graphs - protobuf v3](../onnx/onnx.proto3) + +[ONNX-ML Models and Graphs - protobuf v2](../onnx/onnx-ml.proto) + +[ONNX-ML Models and Graphs - protobuf v3](../onnx/onnx-ml.proto3) + +[ONNX Operator Sets - protobuf v2](../onnx/onnx-operators.proto) + +[ONNX Operator Sets - protobuf v3](../onnx/onnx-operators.proto3) + +[ONNX-ML Operator Sets - protobuf v2](../onnx/onnx-operators-ml.proto) + +[ONNX-ML Operator Sets - protobuf v3](../onnx/onnx-operators-ml.proto3) + +### Versioning Conventions and Best Practices + +[Versioning](Versioning.md) diff --git a/third_party/onnx/docs/ImplementingAnOnnxBackend.md b/third_party/onnx/docs/ImplementingAnOnnxBackend.md new file mode 100644 index 000000000..eb9e4ea6f --- /dev/null +++ b/third_party/onnx/docs/ImplementingAnOnnxBackend.md @@ -0,0 +1,123 @@ + + +### Implementing an ONNX backend + +#### What is an ONNX backend + +An ONNX backend is a library that can run ONNX models. Since many deep learning frameworks already exist, you likely won't need to create everything from scratch. Rather, you'll likely create a converter that converts ONNX models to the corresponding framework specific representation and then delegate the execution to the framework. For example, [onnx-caffe2 (as part of caffe2)](https://github.com/caffe2/caffe2/tree/master/caffe2/python/onnx) , [onnx-coreml](https://github.com/onnx/onnx-coreml), and [onnx-tensorflow](https://github.com/onnx/onnx-tensorflow) are all implemented as converters. + +#### Unified backend interface + +ONNX has defined a unified (Python) backend interface at [onnx/backend/base.py](/onnx/backend/base.py). + +There are three core concepts in this interface: `Device`, `Backend` and `BackendRep`. + +- `Device` is a lightweight abstraction over various hardware, e.g., CPU, GPU, etc. + +- `Backend` is the entity that will take an ONNX model with inputs, perform a computation, and then return the output. + + For one-off execution, users can use `run_node` and `run_model` to obtain results quickly. + + For repeated execution, users should use `prepare`, in which the `Backend` does all of the preparation work for executing the model repeatedly (e.g., loading initializers), and returns a `BackendRep` handle. + +- `BackendRep` is the handle that a `Backend` returns after preparing to execute a model repeatedly. Users will then pass inputs to the `run` function of `BackendRep` to retrieve the corresponding results. + +Note that even though the ONNX unified backend interface is defined in Python, your backend does not need to be implemented in Python. For example, yours can be created in C++, and tools such as [pybind11](https://github.com/pybind/pybind11) or [cython](http://cython.org/) can be used to fulfill the interface. + +#### ONNX backend test + +ONNX provides a standard backend test suite to assist backend implementation verification. It's strongly encouraged that each ONNX backend runs this test. + +Integrating the ONNX Backend Test suite into your CI is simple. The following are some examples demonstrating how a backend performs the integration: + +- [onnx-caffe2 onnx backend test](https://github.com/caffe2/caffe2/blob/master/caffe2/python/onnx/tests/onnx_backend_test.py) + +- [onnx-tensorflow onnx backend test](https://github.com/onnx/onnx-tensorflow/blob/master/test/backend/test_onnx_backend.py) + +- [onnx-coreml onnx backend test](https://github.com/onnx/onnx-coreml/blob/master/tests/onnx_backend_test.py) + +If you have [pytest](https://docs.pytest.org/en/latest/) installed, you can get a coverage report after running the ONNX backend test to see how well your backend is doing: + +``` +---------- onnx coverage: ---------- +Operators (passed/loaded/total): 21/21/70 +------------------------------------ +â•’â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•╤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•• +│ Operator │ Attributes │ +│ │ (name: #values) │ +╞â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•╪â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¡ +│ Slice │ axes: 2 │ +│ │ ends: 3 │ +│ │ starts: 3 │ +├────────────────────┼────────────────────┤ +│ Constant │ value: 1 │ +├────────────────────┼────────────────────┤ +│ Concat │ axis: 0 │ +├────────────────────┼────────────────────┤ +│ Conv │ group: 6 │ +│ │ kernel_shape: 5 │ +│ │ pads: 4 │ +│ │ strides: 3 │ +│ │ auto_pad: 0 │ +│ │ dilations: 0 │ +├────────────────────┼────────────────────┤ +│ Reshape │ shape: 9 │ +├────────────────────┼────────────────────┤ +│ BatchNormalization │ consumed_inputs: 1 │ +│ │ epsilon: 2 │ +│ │ is_test: 1 │ +│ │ momentum: 0 │ +│ │ spatial: 0 │ +├────────────────────┼────────────────────┤ +│ Dropout │ is_test: 1 │ +│ │ ratio: 2 │ +├────────────────────┼────────────────────┤ +│ MaxPool │ kernel_shape: 2 │ +│ │ pads: 3 │ +│ │ strides: 2 │ +│ │ auto_pad: 0 │ +│ │ dilations: 0 │ +├────────────────────┼────────────────────┤ +│ Transpose │ perm: 1 │ +├────────────────────┼────────────────────┤ +│ MatMul │ No attributes │ +├────────────────────┼────────────────────┤ +│ Relu │ No attributes │ +├────────────────────┼────────────────────┤ +│ LRN │ alpha: 2 │ +│ │ beta: 1 │ +│ │ bias: 2 │ +│ │ size: 1 │ +├────────────────────┼────────────────────┤ +│ Add │ axis: 1 │ +│ │ broadcast: 1 │ +├────────────────────┼────────────────────┤ +│ Abs │ No attributes │ +├────────────────────┼────────────────────┤ +│ Pad │ mode: 3 │ +│ │ paddings: 2 │ +│ │ value: 1 │ +├────────────────────┼────────────────────┤ +│ Softmax │ axis: 0 │ +├────────────────────┼────────────────────┤ +│ GlobalAveragePool │ No attributes │ +├────────────────────┼────────────────────┤ +│ Mul │ axis: 1 │ +│ │ broadcast: 1 │ +├────────────────────┼────────────────────┤ +│ Sum │ No attributes │ +├────────────────────┼────────────────────┤ +│ Gemm │ broadcast: 1 │ +│ │ transB: 1 │ +│ │ alpha: 0 │ +│ │ beta: 0 │ +│ │ transA: 0 │ +├────────────────────┼────────────────────┤ +│ AveragePool │ kernel_shape: 3 │ +│ │ pads: 3 │ +│ │ strides: 2 │ +│ │ auto_pad: 0 │ +╘â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•› +``` + +The numbers in the line `Operators (passed/loaded/total): 21/21/70` indicate 21 operators covered in all test cases of your backend have passed, 21 operators were covered in all test cases of the ONNX backend test, and ONNX has a total of 70 operators. diff --git a/third_party/onnx/docs/ManagingExperimentalOps.md b/third_party/onnx/docs/ManagingExperimentalOps.md new file mode 100644 index 000000000..56e522f21 --- /dev/null +++ b/third_party/onnx/docs/ManagingExperimentalOps.md @@ -0,0 +1,34 @@ + + +## Deprecated Experimental Operators + +The following experimental operators were deprecated and removed from ONNX. They should be removed from models, either substituted with newer superseding operators or decomposed into functionally equivalent operators: + +Old operator |New Operator +--------------------|-------------------------- +`ATen` |NA +`Affine` |`Add(Mul(X, alpha), beta)` +`ConstantFill` |`ConstantOfShape` +`Crop` |`Slice-1` +`DynamicSlice` |`Slice-10` +`GRUUnit` |NA +`GivenTensorFill` |`Const` or `ConstantOfShape` +`ImageScaler` |`Add(Mul(X, scale), Unsqueeze(bias, axes=[0, 2, 3]))` +`ParametricSoftplus`|`Mul(alpha, Softplus(Mul(beta, X)))` +`Scale` |`Mul(X, scale)` +`ScaledTanh` |`Mul(Tanh(Mul(X, beta)), alpha)` + +## Adding Experimental Operators [Deprecated - as of v1.5 experimental ops are no longer supported] + +The experimental flag in ONNX operator definitions indicates that a customer of ONNX may not be able to take a long term dependency on that op. Ops in the ONNX namespace (ai.onnx) in the _main_ branch, whether experimental or not, go through the regular review process. + +Experimental ops that are being worked on that do not have consensus yet can be managed in one of 2 ways: +1. Use a fork or branch – what you do in the fork or branch is entirely up to you. When you are ready, you can submit a PR using the normal process. This is the recommended way. +2. If a fork/branch is not workable (for example due to complexity of mapping different branches between multiple repos), put the experimental ops in a custom namespace in the main branch. +The specific process for this is: + * Submit an Issue with a proposal explaining the motivation and plan. It does not need to include detailed technical design. Issues will be tagged as "experimental op". + * Reviewers will generally approve by default unless the proposal directly conflicts with existing ops or somehow goes against general ONNX strategy. Approval is indicated by adding the "experiment approved" tag. + * The approval is good for 3 months, but can be renewed if needed. + * Experimental ops should be submitted in a PR in a custom namespace that is the name of the proposal, i.e. “proposal.controlflowâ€. The name should be descriptive rather than a company or entity name. These PRs will be approved by default as long as the parent proposal is approved and active. + * Once experimentation is done, the ops can be submitted for addition to the ONNX namespace via the regular process. The owner can also choose to end the experiment without promoting the ops. + * Either way, the custom namespace is deleted once experimentation is complete or when the approval expires. diff --git a/third_party/onnx/docs/MetadataProps.md b/third_party/onnx/docs/MetadataProps.md new file mode 100644 index 000000000..21a7c4dfd --- /dev/null +++ b/third_party/onnx/docs/MetadataProps.md @@ -0,0 +1,35 @@ + + +# Metadata +# Metadata + +In addition to the core metadata recommendations listed in the [extensibility documentation](IR.md#optional-metadata) there is additional experimental metadata to help provide information for model inputs and outputs. + +This metadata applies to all input and output tensors of a given category. The first such category we define is: `Image`. + +## Motivation + +The motivation of such a mechanism is to allow model authors to convey to model consumers enough information for them to consume the model. + +In the case of images there are many option for providing valid image data. However a model which consumes images was trained with a particular set of these options which must +be used during inferencing. + +The goal is this proposal is to provide enough metadata that the model consumer can perform their own featurization prior to running the model and provide a compatible input or retrive an output and know what its format is. + +## Image Category Definition + +For every tensor in this model that uses [Type Denotation](TypeDenotation.md) to declare itself an `IMAGE`, you SHOULD provide metadata to assist the model consumer. Note that any metadata provided using this mechanism is global to ALL types +with the accompanying denotation. + +Keys and values are case insenstive. + +Specifically, we define here the following set image metadata: + +|Key|Value|Description| +|-----|----|-----------| +|`Image.BitmapPixelFormat`|__string__|Specifies the format of pixel data. Each enumeration value defines a channel ordering and bit depth. Possible values:
  • `Gray8`: 1 channel image, the pixel data is 8 bpp grayscale.
  • `Rgb8`: 3 channel image, channel order is RGB, pixel data is 8bpp (No alpha)
  • `Bgr8`: 3 channel image, channel order is BGR, pixel data is 8bpp (No alpha)
  • `Rgba8`: 4 channel image, channel order is RGBA, pixel data is 8bpp (Straight alpha)
  • `Bgra8`: 4 channel image, channel order is BGRA, pixel data is 8bpp (Straight alpha)
| +|`Image.ColorSpaceGamma`|__string__|Specifies the gamma color space used. Possible values:
  • `Linear`: Linear color space, gamma == 1.0
  • `SRGB`: sRGB color space, gamma == 2.2
| +|`Image.NominalPixelRange`|__string__|Specifies the range that pixel values are stored. Possible values:
  • `NominalRange_0_255`: [0...255] for 8bpp samples
  • `Normalized_0_1`: [0...1] pixel data is stored normalized
  • `Normalized_1_1`: [-1...1] pixel data is stored normalized
  • `NominalRange_16_235`: [16...235] for 8bpp samples
| + + + diff --git a/third_party/onnx/docs/ONNXIFI.md b/third_party/onnx/docs/ONNXIFI.md new file mode 100644 index 000000000..011ac45ec --- /dev/null +++ b/third_party/onnx/docs/ONNXIFI.md @@ -0,0 +1,66 @@ + + +# ONNX Interface for Framework Integration (ONNXIFI) + +ONNXIFI is a cross-platform API for loading and executing ONNX graphs on optimized backends. High-level frameworks and applications can use this API to execute neural network and machine learning models. Hardware vendors can implement this API to expose specialized hardware accelerators and highly optimized software infrastructure to the users. + +## Core Features + +- Standardized interface for neural network inference on special-purpose accelerators (NPUs), CPUs, GPUs, DSPs, and FPGAs +- Based on widely supported technologies + - C API for function calls + - ONNX format for passing model graphs + - NCHW tensor layout for passing inputs and outputs +- Dynamic discovery of available backends for model execution + - Multiple backends from different vendors can co-exist on the same system +- Dynamic discovery of supported ONNX Operators on each backend + +### Optional Features: + +- Graphs with variable-shape inputs and/or outputs +- Graphs with data-dependendent output shapes + +## How to Use ONNX Interface for Framework Integration + +0. (Optional) Use `onnxifi_load` to dynamically load the ONNX Interface for Framework Integration library. +1. Call `onnxGetBackendIDs` to get stable identifiers of available backends. Note: it is possible there are no backends installed in the system. +2. Call `onnxGetBackendInfo` to check additional information about any available backend. +3. Call `onnxGetBackendCompatibility` to check which operations within your model can run on the backend. +4. Call `onnxInitBackend` to initialize a backend, then call `onnxInitGraph` to offload one or more model graphs to the backend. +5. Call `onnxSetGraphIO` to set locations and shapes for inputs and outputs of a graph. +6. Initialize an `inputFence` structure of type `onnxMemoryFenceV1`: set `tag` to `ONNXIFI_TAG_MEMORY_FENCE_V1`, `type` to `ONNXIFI_SYNCHRONIZATION_EVENT`, and call `onnxInitEvent` to initiaze the `event` member. +7. Initialize an `outputFence` structure of type `onnxMemoryFenceV1`: set `tag` to `ONNXIFI_TAG_MEMORY_FENCE_V1`, `type` to `ONNXIFI_SYNCHRONIZATION_EVENT`, and `event` to null. +8. Call `onnxRunGraph` with the initialized `inputFence` and `outputFence` structures to enable execution of the graph. The call to `onnxRunGraph` will populate `event` member of the `outputFence` with a newly created event object, asynchronously execute the graph once `inputFence`'s `event` is signalled, and then signal the `outputFence`'s `event`. +9. Call `onnxSignalEvent` with `event` member of `inputFence` to signal to the backend that the inputs are ready to be consumed. +10. Call `onnxWaitEvent` (alternatively, repeatedly call `onnxGetEventState` in a loop until the event state is `ONNXIFI_EVENT_STATE_SIGNALLED`) with `event` member of `outputFence` to wait until graph outputs are ready to be consumed. Release events for inputs and outputs using `onnxReleaseEvent`. +11. If your model works with fixed-size inputs and outputs, and shape and location of inputs and outputs does not change, one call to `onnxSetGraphIO` is sufficient for multiple `onnxRunGraph` calls. The previous call to `onnxRunGraph`, however, must have finished before a user calls `onnxRunGraph` again, because concurrent execution with the same input and output locations is not allowed. For models with variable-size inputs or outputs, you'd need to call `onnxSetGraphIO` before each `onnxRunGraph` call. +12. When done using the model, release the model graph(s) with `onnxReleaseGraph`, then release the backend with `onnxReleaseBackend` and backend ID with `onnxReleaseBackendID`. + +## How to Implement ONNX Interface for Framework Integration + +The minimum functionality an ONNXIFI implementation must provide is the following: + +- Support ONNX 1.0 model format. + - There is no minimum list of Operators a backend has to support. +- Support graph inputs / outputs in CPU memory. +- Support graph inputs / outputs with fixed shape, specified in GraphProto message. + +### Discovery + +Vendor-provided libraries should adhere to some rules to ensure discovery by ONNX-supported frameworks and applications: + +1. The libraries must be installed in the following directories: + - GNU/Linux: user-installed system library directory (typically /usr/lib) + - macOS: /opt/onnx/lib + - Windows: system directory (typically C:\Windows\System32) + +2. Filenames of vendor-specific libraries must follow the rule below: + - On Windows, library filename must match wildcard `onnxifi-*.dll` + - On macOS, library filename must match wildcard `libonnxifi-*.dylib` + - On Linux and other OSes, library filename must match wildcard `libonnxifi-*.so` + +### Extensions + +Hardware vendors are welcome to add their own extensions to ONNX backend interface. The backend interface offers several extension mechanisms: +- Experimental, exotic, or vendor-specific operators can be supported in a private domain using NodeProto.domain attribute. +- Vendor-provided ONNXIFI implementation can expose additional functions. diff --git a/third_party/onnx/docs/ONNXTypes.md b/third_party/onnx/docs/ONNXTypes.md new file mode 100644 index 000000000..2edea6e42 --- /dev/null +++ b/third_party/onnx/docs/ONNXTypes.md @@ -0,0 +1,96 @@ +## Optional Type + +An optional type represents a reference to either an element (could be Tensor, Sequence, Map, or Sparse Tensor) or a null value. The optional type appears in model inputs, outputs, as well as intermediate values. + +### Use-cases + +Optional type enables users to represent more dynamic typing senarios in ONNX. Similar to Optional[X] type hint in Python typing which is equivalent to Union[None, X], Optional types in ONNX may reference a single element, or null. + +### Examples in PyTorch +Optional type only appears in TorchScript graphs generated by jit script compiler. Scripting a model captures dynamic types where an optional value can be assigned either None or a value. + +- Example 1 + + class Model(torch.nn.Module): + def forward(self, x, y:Optional[Tensor]=None): + if y is not None: + return x + y + return x + + Corresponding TorchScript graph: + + Graph( + %self : __torch__.Model, + %x.1 : Tensor, + %y.1 : Tensor? + ): + %11 : int = prim::Constant[value=1]() + %4 : None = prim::Constant() + %5 : bool = aten::__isnot__(%y.1, %4) + %6 : Tensor = prim::If(%5) + block0(): + %y.4 : Tensor = prim::unchecked_cast(%y.1) + %12 : Tensor = aten::add(%x.1, %y.4, %11) + -> (%12) + block1(): + -> (%x.1) + return (%6) + + ONNX graph: + + Graph( + %x.1 : Float(2, 3), + %y.1 : Float(2, 3) + ): + %2 : Bool(1) = onnx::OptionalHasElement(%y.1) + %5 : Float(2, 3) = onnx::If(%2) + block0(): + %3 : Float(2, 3) = onnx::OptionalGetElement(%y.1) + %4 : Float(2, 3) = onnx::Add(%x.1, %3) + -> (%4) + block1(): + %x.2 : Float(2, 3) = onnx::Identity(%x.1) + -> (%x.2) + return (%5) + +- Example 2 + + class Model(torch.nn.Module): + def forward( + self, + src_tokens, + return_all_hiddens=torch.tensor([False]), + ): + encoder_states: Optional[Tensor] = None + if return_all_hiddens: + encoder_states = src_tokens + + return src_tokens, encoder_states + + Corresponding TorchScript graph: + + Graph( + %src_tokens.1 : Float(3, 2, 4,), + %return_all_hiddens.1 : Bool(1) + ): + %3 : None = prim::Constant() + %encoder_states : Tensor? = prim::If(%return_all_hiddens.1) + block0(): + -> (%src_tokens.1) + block1(): + -> (%3) + return (%src_tokens.1, %encoder_states) + + ONNX graph: + + Graph( + %src_tokens.1 : Float(3, 2, 4), + %return_all_hiddens.1 : Bool(1) + ): + %2 : Float(3, 2, 4) = onnx::Optional[type=tensor(float)]() + %3 : Float(3, 2, 4) = onnx::If(%return_all_hiddens.1) + block0(): + -> (%src_tokens.1) + block1(): + -> (%2) + return (%3) \ No newline at end of file diff --git a/third_party/onnx/docs/ONNX_logo_main.png b/third_party/onnx/docs/ONNX_logo_main.png new file mode 100644 index 0000000000000000000000000000000000000000..24ed87b3b9897959c58774cc6557680e4794859c GIT binary patch literal 51834 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 Qr;QPLMdxzKrJMKu2dYX%9smFU literal 0 HcmV?d00001 diff --git a/third_party/onnx/docs/OnnxBackendTest.md b/third_party/onnx/docs/OnnxBackendTest.md new file mode 100644 index 000000000..b0787bec4 --- /dev/null +++ b/third_party/onnx/docs/OnnxBackendTest.md @@ -0,0 +1,20 @@ + + +### ONNX Backend Test + +#### What is ONNX Backend Test + +ONNX Backend Test is a test suite that each ONNX backend should run to verify whether it fulfills ONNX's standard. It serves both as a verification tool for backend implementations and one of the two ways to define each operator's expected behavior (the other way is to add it to the documentation). + +There are two types of tests in this suite – Node Tests and Model Tests: + +- **Node Tests** verify whether a backend is performing the correct computation, having the expected behavior of handling various attributes for each individual operator. In each test case, the backend will be given a node with some input, and the returned output will be compared with an expected output. +- **Model Tests** verify the backend at the model level. The test cases are similar to those of Node Tests', but instead of a node, the backend will be given an ONNX model. + +#### Contributing + +As ONNX aims to become the spec of deep learning models format, it's important to ensure that there is no ambiguity in each ONNX operator's definition; adding more test cases is the only way to enforce this. + +Node Tests are created as Python/Numpy code in [onnx/backend/test/case/node](/onnx/backend/test/case/node), and then exported to protobuf files to [onnx/backend/test/data/node](/onnx/backend/test/data/node) as the source of truth by invoking the shell command `backend-test-tools generate-data`. Test cases of each operator lives in one standalone file, e.g. for the operator [Add](/docs/Operators.md#Add), its test cases are in [add.py](/onnx/backend/test/case/node/add.py), and each `expect(...)` statement in the code corresponds to one test case. The source code of all `export.*` functions will be also embedded as example code snippets in the [Operators documentation page](/docs/Operators.md). You are contributing to both the test and the documentation! + +For Model Tests, since each model protobuf file can be large in size, we don't place the file directly in the repo. Rather, we upload them to the cloud, and download them on demand when running the tests. Each test case consists of one model definition protobuf file, and several pairs of input and output files. Adding a new test case involves some manual work from admins (like uploading the files to the cloud), so if you have an ONNX model that you would like to contribute, please contact us. diff --git a/third_party/onnx/docs/OnnxReleases.md b/third_party/onnx/docs/OnnxReleases.md new file mode 100644 index 000000000..828948b3b --- /dev/null +++ b/third_party/onnx/docs/OnnxReleases.md @@ -0,0 +1,123 @@ + + +The ONNX project, going forward, will plan to release roughly on a four month cadence. We follow the [Semver](https://semver.org/) versioning approach and will make decisions as a community on a release by release basis on whether to do a major or minor release. + +## Preparation + +* Install Twine, a utility tool to interact with PyPI. Do - ``pip install twine`` +* Get hold of the username and password for the ‘onnx’ PyPI account. Release manager should get onnx pypi account credentials from steering committee or from previous release manager. +* Pick a release tag (v.1.X.X) for the new release through mutual consent – Slack channel for Releases (https://lfaifoundation.slack.com/archives/C018VGGJUGK) +* Prepare a change log for the release – + * ``git log --pretty=format:"%h - %s" ...`` + * And draft a new release statement - https://github.com/onnx/onnx/releases listing out the new features and bug fixes, and potential changes being introduced in the release. +* Before creating the release branch, increase `VERSION_NUMBER` in the main branch. The following files will be updated: [VERSION_NUMBER file](/VERSION_NUMBER) and +[version.h](/onnx/common/version.h) + +* Please use a VERSION_NUMBER smaller than the target (release VERSION_NUMBER) and larger than the previous one to test TestPyPI before using the target VERSION_NUMBER. + +* Make sure that the IR version number and opset version numbers are up-to-date in +[ONNX proto files](/onnx/onnx.in.proto), +[Versioning.md](Versioning.md), +[schema.h](/onnx/defs/schema.h), +[helper.py](/onnx/helper.py) and [helper_test.py](/onnx/test/helper_test.py). Please note that this also needs to be happened in the main branch before creating the release branch. + +* Create a release branch (please use rel-* as the branch name) from main. Checkout the release tag in a clean branch on your local repo. Make sure all tests pass on that branch. +* Create an issue in onnxruntime repo. See [a sample issue](https://github.com/microsoft/onnxruntime/issues/11108) for details. The issue is to request onnxruntime to update with the onnx release branch and to run all CI and packaging pipelines ([How_To_Update_ONNX_Dev_Notes](https://github.com/microsoft/onnxruntime/blob/master/docs/How_To_Update_ONNX_Dev_Notes.md)). It is possible that onnx bugs are detected with onnxruntime pipeline runs. In such case the bugs shall be fixed in the onnx main branch and cherry-picked into the release branch. Follow up with onnxruntime to ensure the issue is resolved in time before onnx release. + +## Upload to TestPyPI +**Wheels** +* In release branch update the version number in file [VERSION_NUMBER] to something like `1.x.0rc1` as release candidate for verification before finally using the targeted version number for this release. +* Windows + * Use GitHub Action (`.github/workflows/release_win.yml`) under onnx repo to produce wheels for Windows. + +* Linux + * Use GitHub Action (`.github/workflows/release_linux_x86_64.yml`) and (`.github/workflows/release_linux_aarch64.yml`) under onnx repo to produce x64/aarch64 wheels for Linux. + +* Mac + * Use GitHub Action (`.github/workflows/release_mac.yml`) under onnx repo to produce wheels for Mac. + +* After success, upload the produced wheels manually to TestPyPI: `twine upload --verbose *.whl --repository-url https://test.pypi.org/legacy/ -u PYPI_USERNAME -p PYPI_PASSWORD`. + + +**Source Distribution** +* Make sure all the git submodules are updated + * ``git submodule update --init`` +* Make sure the git checkout is clean – + * Do ``git clean -nxd`` and make sure that none of the auto-generated header files *like* the following are not present. + * onnx/onnx-operators.pb.cc + * onnx/onnx-operator.pb.h + * onnx/onnx.pb.cc + * onnx/onnx.pb.h + * If they are present run ``git clean -ixd`` and remove those files from your local branch +* Do ``python setup.py sdist`` to generate the source distribution. +* Do ``twine upload dist/* --repository-url https://test.pypi.org/legacy/ -u PYPI_USERNAME -p PYPI_PASSWORD`` to upload it to the test instance of PyPI. + +## TestPyPI package verification +**Test ONNX itself** +* Test the PyPI package installation with different combinations of various Python versions, Protobuf versions and platforms. + * Python versions : Applicable python versions for the release. + * Protobuf versions : Latest protobuf version at the time of the release + protobuf version used for previous release + * Utilize the following matrix to check: + + |   | 3.7 | 3.8 | 3.9 | 3.10 | + -- | -- | -- | -- | -- | + Linux |   |   |   |   | + Windows |   |   |   |   | + Mac |   |   |   |   | + + +* After installing the PyPI package, run `pytest` in the release branch. + +**Partner Validation** + + * Test with onnxruntime package: To test the interaction with onnxruntime, use ONNX functions like `load`, `checker.check_model`, `shape_inference.infer_shapes`, `save` with onnxruntime functions like `InferenceSession` and `InferenceSession.run` on certain example ONNX model. For example, run the test script from [test_with_ort.py](/onnx/test/test_with_ort.py) with installed onnxruntime package. + + * Test with ONNX converters: Create GitHub issues in converters repos to provide them the package links and have them test the TestPyPI packages. + * https://github.com/pytorch/pytorch + * https://github.com/onnx/onnx-tensorflow + * https://github.com/onnx/tensorflow-onnx + * https://github.com/onnx/sklearn-onnx + * https://github.com/onnx/onnxmltools + * https://github.com/onnx/keras-onnx + * https://github.com/onnx/onnx-tensorrt + * https://github.com/onnx/onnx-coreml + + +**Source distribution verification** +* Test the source distribution by doing ``pip install --index-url https://test.pypi.org/simple --no-binary onnx onnx`` in a new environment. + +## Upload to official PyPI +**NOTE: Once the packages are uploaded to PyPI, you cannot overwrite it on the same PyPI instance. Please make sure everything is good on TestPyPI before uploading to PyPI** + +**Wheels** +* Windows/Linux/Mac + * Same as TestPyPI, use `twine upload --verbose *.whl --repository-url https://upload.pypi.org/legacy/ -u PYPI_USERNAME -p PYPI_PASSWORD` instead. + +**Source Distribution** +* Follow the same process in TestPyPI to produce the source distribution. +* Use ``twine upload --verbose dist/* --repository-url https://upload.pypi.org/legacy/`` instead to upload to the official PyPI. +* Test with ``pip install --no-binary onnx onnx`` + +## After PyPI Release + +**Release summary** +* Upload the source distribution, `.tar.gz` and `.zip`, in the release summary. +* Create release in github with the right tag and upload the release summary along with .tar.gz and .zip + +**Announce** +* Announce in slack, for instance, `onnx-general` channel. +* Notify ONNX partners like converter team and runtime team. +* Create a news by updating `js/news.json` to announce ONNX release under [onnx/onnx.github.io](https://github.com/onnx/onnx.github.io) repo. For instance: https://github.com/onnx/onnx.github.io/pull/83. + +**Update conda-forge package with the new ONNX version** +* Conda builds of ONNX are done via conda-forge, which runs infrastructure for building packages and uploading them to conda-forge. If it does not happen automatically, you need to submit a PR to https://github.com/conda-forge/onnx-feedstock (see https://github.com/conda-forge/onnx-feedstock/pull/1/files or https://github.com/conda-forge/onnx-feedstock/pull/50/files for example PRs) You will need to have uploaded to PyPI already, and update the version number and tarball hash of the PyPI uploaded tarball. + +**Merge into main branch** +* After everything above is done, merge the release branch into the main branch to make it consistent. + +**Remove old onnx-weekly packages on TestPyPI** +* Once ONNX has been released on PyPI, remove all previous versions of [onnx-weekly package](https://test.pypi.org/project/onnx-weekly/#history) on TestPyPI to save space. +* Steps: Login and go [here](https://test.pypi.org/manage/project/onnx-weekly/releases/) -> Choose target package -> Options -> Delete. + +**Bump opset version for ai.onnx** +* Bump opset version for ai.onnx domain in `onnx/defs/operator_sets.h` and `onnx/defs/schema.h` for use by future operator additions and changes. For example, this [demo PR](https://github.com/onnx/onnx/pull/4134/files). \ No newline at end of file diff --git a/third_party/onnx/docs/OpConventions.md b/third_party/onnx/docs/OpConventions.md new file mode 100644 index 000000000..ac4e53161 --- /dev/null +++ b/third_party/onnx/docs/OpConventions.md @@ -0,0 +1,12 @@ + + +# Operator Conventions + +To maintain consistency in operator signatures, we use the following principles: +- All attribute names should be lower case and use underscores when it helps with readability +- Any input/output represented by a single letter is capitalized (i.e. X) +- Any input/output represented by a full word or multiple words is all lower case and uses underscores when it helps with readability +- Any input/output representing a bias tensor will utilize the name "B" +- Any input/output representing a weight tensor will utilize the name “W†+- “axes†is used when an input, output or attribute is representing multiple axes +- “axis†is used when an input, output or attribute is representing a single axis diff --git a/third_party/onnx/docs/Operators-ml.md b/third_party/onnx/docs/Operators-ml.md new file mode 100644 index 000000000..9c3f41396 --- /dev/null +++ b/third_party/onnx/docs/Operators-ml.md @@ -0,0 +1,985 @@ + +## Operator Schemas +*This file is automatically generated from the + [def files](/onnx/defs) via [this script](/onnx/defs/gen_doc.py). + Do not modify directly and instead edit operator definitions.* + +For an operator input/output's differentiability, it can be differentiable, + non-differentiable, or undefined. If a variable's differentiability + is not specified, that variable has undefined differentiability. + +### ai.onnx.ml +|**Operator**|**Since version**| +|-|-| +|ai.onnx.ml.ArrayFeatureExtractor|1| +|ai.onnx.ml.Binarizer|1| +|ai.onnx.ml.CastMap|1| +|ai.onnx.ml.CategoryMapper|1| +|ai.onnx.ml.DictVectorizer|1| +|ai.onnx.ml.FeatureVectorizer|1| +|ai.onnx.ml.Imputer|1| +|ai.onnx.ml.LabelEncoder|2, 1| +|ai.onnx.ml.LinearClassifier|1| +|ai.onnx.ml.LinearRegressor|1| +|ai.onnx.ml.Normalizer|1| +|ai.onnx.ml.OneHotEncoder|1| +|ai.onnx.ml.SVMClassifier|1| +|ai.onnx.ml.SVMRegressor|1| +|ai.onnx.ml.Scaler|1| +|ai.onnx.ml.TreeEnsembleClassifier|3, 1| +|ai.onnx.ml.TreeEnsembleRegressor|3, 1| +|ai.onnx.ml.ZipMap|1| + + +## ai.onnx.ml +### **ai.onnx.ml.ArrayFeatureExtractor** + + Select elements of the input tensor based on the indices passed.
+ The indices are applied to the last axes of the tensor. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Inputs + +
+
X : T
+
Data to be selected
+
Y : tensor(int64)
+
The indices, based on 0 as the first index of any dimension.
+
+ +#### Outputs + +
+
Z : T
+
Selected output data as an array
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32), tensor(string)
+
The input must be a tensor of a numeric type or string. The output will be of the same tensor type.
+
+ + +### **ai.onnx.ml.Binarizer** + + Maps the values of the input tensor to either 0 or 1, element-wise, based on the outcome of a comparison against a threshold value. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
threshold : float (default is 0.0)
+
Values greater than this are mapped to 1, others to 0.
+
+ +#### Inputs + +
+
X : T
+
Data to be binarized
+
+ +#### Outputs + +
+
Y : T
+
Binarized output data
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type. The output will be of the same tensor type.
+
+ + +### **ai.onnx.ml.CastMap** + + Converts a map to a tensor.
The map key must be an int64 and the values will be ordered + in ascending order based on this key.
The operator supports dense packing or sparse packing. + If using sparse packing, the key cannot exceed the max_map-1 value. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
cast_to : string (default is TO_FLOAT)
+
A string indicating the desired element type of the output tensor, one of 'TO_FLOAT', 'TO_STRING', 'TO_INT64'.
+
map_form : string (default is DENSE)
+
Indicates whether to only output as many values as are in the input (dense), or position the input based on using the key of the map as the index of the output (sparse).
One of 'DENSE', 'SPARSE'.
+
max_map : int (default is 1)
+
If the value of map_form is 'SPARSE,' this attribute indicates the total length of the output tensor.
+
+ +#### Inputs + +
+
X : T1
+
The input map that is to be cast to a tensor
+
+ +#### Outputs + +
+
Y : T2
+
A tensor representing the same data as the input map, ordered by their keys
+
+ +#### Type Constraints + +
+
T1 : map(int64, string), map(int64, float)
+
The input must be an integer map to either string or float.
+
T2 : tensor(string), tensor(float), tensor(int64)
+
The output is a 1-D tensor of string, float, or integer.
+
+ + +### **ai.onnx.ml.CategoryMapper** + + Converts strings to integers and vice versa.
+ Two sequences of equal length are used to map between integers and strings, + with strings and integers at the same index detailing the mapping.
+ Each operator converts either integers to strings or strings to integers, depending + on which default value attribute is provided. Only one default value attribute + should be defined.
+ If the string default value is set, it will convert integers to strings. + If the int default value is set, it will convert strings to integers. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
cats_int64s : list of ints
+
The integers of the map. This sequence must be the same length as the 'cats_strings' sequence.
+
cats_strings : list of strings
+
The strings of the map. This sequence must be the same length as the 'cats_int64s' sequence
+
default_int64 : int (default is -1)
+
An integer to use when an input string value is not found in the map.
One and only one of the 'default_*' attributes must be defined.
+
default_string : string (default is _Unused)
+
A string to use when an input integer value is not found in the map.
One and only one of the 'default_*' attributes must be defined.
+
+ +#### Inputs + +
+
X : T1
+
Input data
+
+ +#### Outputs + +
+
Y : T2
+
Output data. If strings are input, the output values are integers, and vice versa.
+
+ +#### Type Constraints + +
+
T1 : tensor(string), tensor(int64)
+
The input must be a tensor of strings or integers, either [N,C] or [C].
+
T2 : tensor(string), tensor(int64)
+
The output is a tensor of strings or integers. Its shape will be the same as the input shape.
+
+ + +### **ai.onnx.ml.DictVectorizer** + + Uses an index mapping to convert a dictionary to an array.
+ Given a dictionary, each key is looked up in the vocabulary attribute corresponding to + the key type. The index into the vocabulary array at which the key is found is then + used to index the output 1-D tensor 'Y' and insert into it the value found in the dictionary 'X'.
+ The key type of the input map must correspond to the element type of the defined vocabulary attribute. + Therefore, the output array will be equal in length to the index mapping vector parameter. + All keys in the input dictionary must be present in the index mapping vector. + For each item in the input dictionary, insert its value in the output array. + Any keys not present in the input dictionary, will be zero in the output array.
+ For example: if the ``string_vocabulary`` parameter is set to ``["a", "c", "b", "z"]``, + then an input of ``{"a": 4, "c": 8}`` will produce an output of ``[4, 8, 0, 0]``. + + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
int64_vocabulary : list of ints
+
An integer vocabulary array.
One and only one of the vocabularies must be defined.
+
string_vocabulary : list of strings
+
A string vocabulary array.
One and only one of the vocabularies must be defined.
+
+ +#### Inputs + +
+
X : T1
+
A dictionary.
+
+ +#### Outputs + +
+
Y : T2
+
A 1-D tensor holding values from the input dictionary.
+
+ +#### Type Constraints + +
+
T1 : map(string, int64), map(int64, string), map(int64, float), map(int64, double), map(string, float), map(string, double)
+
The input must be a map from strings or integers to either strings or a numeric type. The key and value types cannot be the same.
+
T2 : tensor(int64), tensor(float), tensor(double), tensor(string)
+
The output will be a tensor of the value type of the input map. It's shape will be [1,C], where C is the length of the input dictionary.
+
+ + +### **ai.onnx.ml.FeatureVectorizer** + + Concatenates input tensors into one continuous output.
+ All input shapes are 2-D and are concatenated along the second dimention. 1-D tensors are treated as [1,C]. + Inputs are copied to the output maintaining the order of the input arguments.
+ All inputs must be integers or floats, while the output will be all floating point values. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
inputdimensions : list of ints
+
The size of each input in the input list
+
+ +#### Inputs (1 - ∞) + +
+
X (variadic) : T1
+
An ordered collection of tensors, all with the same element type.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
The output array, elements ordered as the inputs.
+
+ +#### Type Constraints + +
+
T1 : tensor(int32), tensor(int64), tensor(float), tensor(double)
+
The input type must be a tensor of a numeric type.
+
+ + +### **ai.onnx.ml.Imputer** + + Replaces inputs that equal one value with another, leaving all other elements alone.
+ This operator is typically used to replace missing values in situations where they have a canonical + representation, such as -1, 0, NaN, or some extreme value.
+ One and only one of imputed_value_floats or imputed_value_int64s should be defined -- floats if the input tensor + holds floats, integers if the input tensor holds integers. The imputed values must all fit within the + width of the tensor element type. One and only one of the replaced_value_float or replaced_value_int64 should be defined, + which one depends on whether floats or integers are being processed.
+ The imputed_value attribute length can be 1 element, or it can have one element per input feature.
In other words, if the input tensor has the shape [*,F], then the length of the attribute array may be 1 or F. If it is 1, then it is broadcast along the last dimension and applied to each feature. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
imputed_value_floats : list of floats
+
Value(s) to change to
+
imputed_value_int64s : list of ints
+
Value(s) to change to.
+
replaced_value_float : float (default is 0.0)
+
A value that needs replacing.
+
replaced_value_int64 : int (default is 0)
+
A value that needs replacing.
+
+ +#### Inputs + +
+
X : T
+
Data to be processed.
+
+ +#### Outputs + +
+
Y : T
+
Imputed output data
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type, either [N,C] or [C]. The output type will be of the same tensor type and shape.
+
+ + +### **ai.onnx.ml.LabelEncoder** + + Maps each element in the input tensor to another value.
+ The mapping is determined by the two parallel attributes, 'keys_*' and + 'values_*' attribute. The i-th value in the specified 'keys_*' attribute + would be mapped to the i-th value in the specified 'values_*' attribute. It + implies that input's element type and the element type of the specified + 'keys_*' should be identical while the output type is identical to the + specified 'values_*' attribute. If an input element can not be found in the + specified 'keys_*' attribute, the 'default_*' that matches the specified + 'values_*' attribute may be used as its output value.
+ Let's consider an example which maps a string tensor to an integer tensor. + Assume and 'keys_strings' is ["Amy", "Sally"], 'values_int64s' is [5, 6], + and 'default_int64' is '-1'. The input ["Dori", "Amy", "Amy", "Sally", + "Sally"] would be mapped to [-1, 5, 5, 6, 6].
+ Since this operator is an one-to-one mapping, its input and output shapes + are the same. Notice that only one of 'keys_*'/'values_*' can be set.
+ For key look-up, bit-wise comparison is used so even a float NaN can be + mapped to a value in 'values_*' attribute.
+ +#### Version + +This version of the operator has been available since version 2 of the 'ai.onnx.ml' operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
default_float : float (default is -0.0)
+
A float.
+
default_int64 : int (default is -1)
+
An integer.
+
default_string : string (default is _Unused)
+
A string.
+
keys_floats : list of floats
+
A list of floats.
+
keys_int64s : list of ints
+
A list of ints.
+
keys_strings : list of strings
+
A list of strings. One and only one of 'keys_*'s should be set.
+
values_floats : list of floats
+
A list of floats.
+
values_int64s : list of ints
+
A list of ints.
+
values_strings : list of strings
+
A list of strings. One and only one of 'value_*'s should be set.
+
+ +#### Inputs + +
+
X : T1
+
Input data. It can be either tensor or scalar.
+
+ +#### Outputs + +
+
Y : T2
+
Output data.
+
+ +#### Type Constraints + +
+
T1 : tensor(string), tensor(int64), tensor(float)
+
The input type is a tensor of any shape.
+
T2 : tensor(string), tensor(int64), tensor(float)
+
Output type is determined by the specified 'values_*' attribute.
+
+ + +### **ai.onnx.ml.LinearClassifier** + + Linear classifier + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
classlabels_ints : list of ints
+
Class labels when using integer labels. One and only one 'classlabels' attribute must be defined.
+
classlabels_strings : list of strings
+
Class labels when using string labels. One and only one 'classlabels' attribute must be defined.
+
coefficients : list of floats (required)
+
A collection of weights of the model(s).
+
intercepts : list of floats
+
A collection of intercepts.
+
multi_class : int (default is 0)
+
Indicates whether to do OvR or multinomial (0=OvR is the default).
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the scores vector.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
+
+ +#### Inputs + +
+
X : T1
+
Data to be classified.
+
+ +#### Outputs + +
+
Y : T2
+
Classification outputs (one class per example).
+
Z : tensor(float)
+
Classification scores ([N,E] - one score for each class and example
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type, and of of shape [N,C] or [C]. In the latter case, it will be treated as [1,C]
+
T2 : tensor(string), tensor(int64)
+
The output will be a tensor of strings or integers.
+
+ + +### **ai.onnx.ml.LinearRegressor** + + Generalized linear regression evaluation.
+ If targets is set to 1 (default) then univariate regression is performed.
+ If targets is set to M then M sets of coefficients must be passed in as a sequence + and M results will be output for each input n in N.
+ The coefficients array is of length n, and the coefficients for each target are contiguous. + Intercepts are optional but if provided must match the number of targets. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
coefficients : list of floats
+
Weights of the model(s).
+
intercepts : list of floats
+
Weights of the intercepts, if used.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the regression output vector.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
+
targets : int (default is 1)
+
The total number of regression targets, 1 if not defined.
+
+ +#### Inputs + +
+
X : T
+
Data to be regressed.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Regression outputs (one per target, per example).
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type.
+
+ + +### **ai.onnx.ml.Normalizer** + + Normalize the input. There are three normalization modes, which have the corresponding formulas, + defined using element-wise infix operators '/' and '^' and tensor-wide functions 'max' and 'sum':
+
+ Max: Y = X / max(X)
+ L1: Y = X / sum(X)
+ L2: Y = sqrt(X^2 / sum(X^2)}
+ In all modes, if the divisor is zero, Y == X. +
+ For batches, that is, [N,C] tensors, normalization is done along the C axis. In other words, each row + of the batch is normalized independently. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
norm : string (default is MAX)
+
One of 'MAX,' 'L1,' 'L2'
+
+ +#### Inputs + +
+
X : T
+
Data to be encoded, a tensor of shape [N,C] or [C]
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Encoded output data
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type.
+
+ + +### **ai.onnx.ml.OneHotEncoder** + + Replace each input element with an array of ones and zeros, where a single + one is placed at the index of the category that was passed in. The total category count + will determine the size of the extra dimension of the output array Y.
+ For example, if we pass a tensor with a single value of 4, and a category count of 8, + the output will be a tensor with ``[0,0,0,0,1,0,0,0]``.
+ This operator assumes every input feature is from the same set of categories.
+ If the input is a tensor of float, int32, or double, the data will be cast + to integers and the cats_int64s category list will be used for the lookups. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
cats_int64s : list of ints
+
List of categories, ints.
One and only one of the 'cats_*' attributes must be defined.
+
cats_strings : list of strings
+
List of categories, strings.
One and only one of the 'cats_*' attributes must be defined.
+
zeros : int (default is 1)
+
If true and category is not present, will return all zeros; if false and a category if not found, the operator will fail.
+
+ +#### Inputs + +
+
X : T
+
Data to be encoded.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Encoded output data, having one more dimension than X.
+
+ +#### Type Constraints + +
+
T : tensor(string), tensor(int64), tensor(int32), tensor(float), tensor(double)
+
The input must be a tensor of a numeric type.
+
+ + +### **ai.onnx.ml.SVMClassifier** + + Support Vector Machine classifier + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
classlabels_ints : list of ints
+
Class labels if using integer labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
classlabels_strings : list of strings
+
Class labels if using string labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
coefficients : list of floats
+
+
kernel_params : list of floats
+
List of 3 elements containing gamma, coef0, and degree, in that order. Zero if unused for the kernel.
+
kernel_type : string (default is LINEAR)
+
The kernel type, one of 'LINEAR,' 'POLY,' 'RBF,' 'SIGMOID'.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
+
prob_a : list of floats
+
First set of probability coefficients.
+
prob_b : list of floats
+
Second set of probability coefficients. This array must be same size as prob_a.
If these are provided then output Z are probability estimates, otherwise they are raw scores.
+
rho : list of floats
+
+
support_vectors : list of floats
+
+
vectors_per_class : list of ints
+
+
+ +#### Inputs + +
+
X : T1
+
Data to be classified.
+
+ +#### Outputs + +
+
Y : T2
+
Classification outputs (one class per example).
+
Z : tensor(float)
+
Class scores (one per class per example), if prob_a and prob_b are provided they are probabilities for each class, otherwise they are raw scores.
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type, either [C] or [N,C].
+
T2 : tensor(string), tensor(int64)
+
The output type will be a tensor of strings or integers, depending on which of the the classlabels_* attributes is used. Its size will match the bactch size of the input.
+
+ + +### **ai.onnx.ml.SVMRegressor** + + Support Vector Machine regression prediction and one-class SVM anomaly detection. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
coefficients : list of floats
+
Support vector coefficients.
+
kernel_params : list of floats
+
List of 3 elements containing gamma, coef0, and degree, in that order. Zero if unused for the kernel.
+
kernel_type : string (default is LINEAR)
+
The kernel type, one of 'LINEAR,' 'POLY,' 'RBF,' 'SIGMOID'.
+
n_supports : int (default is 0)
+
The number of support vectors.
+
one_class : int (default is 0)
+
Flag indicating whether the regression is a one-class SVM or not.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT.'
+
rho : list of floats
+
+
support_vectors : list of floats
+
Chosen support vectors
+
+ +#### Inputs + +
+
X : T
+
Data to be regressed.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Regression outputs (one score per target per example).
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type, either [C] or [N,C].
+
+ + +### **ai.onnx.ml.Scaler** + + Rescale input data, for example to standardize features by removing the mean and scaling to unit variance. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
offset : list of floats
+
First, offset by this.
Can be length of features in an [N,F] tensor or length 1, in which case it applies to all features, regardless of dimension count.
+
scale : list of floats
+
Second, multiply by this.
Can be length of features in an [N,F] tensor or length 1, in which case it applies to all features, regardless of dimension count.
Must be same length as 'offset'
+
+ +#### Inputs + +
+
X : T
+
Data to be scaled.
+
+ +#### Outputs + +
+
Y : tensor(float)
+
Scaled output data.
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input must be a tensor of a numeric type.
+
+ + +### **ai.onnx.ml.TreeEnsembleClassifier** + + Tree Ensemble classifier. Returns the top class for each of N inputs.
+ The attributes named 'nodes_X' form a sequence of tuples, associated by + index into the sequences, which must all be of equal length. These tuples + define the nodes.
+ Similarly, all fields prefixed with 'class_' are tuples of votes at the leaves. + A leaf may have multiple votes, where each vote is weighted by + the associated class_weights index.
+ One and only one of classlabels_strings or classlabels_int64s + will be defined. The class_ids are indices into this list. + All fields ending with _as_tensor can be used instead of the + same parameter without the suffix if the element type is double and not float. + +#### Version + +This version of the operator has been available since version 3 of the 'ai.onnx.ml' operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
base_values : list of floats
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
base_values_as_tensor : tensor
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
class_ids : list of ints
+
The index of the class list that each weight is for.
+
class_nodeids : list of ints
+
node id that this weight is for.
+
class_treeids : list of ints
+
The id of the tree that this node is in.
+
class_weights : list of floats
+
The weight for the class in class_id.
+
class_weights_as_tensor : tensor
+
The weight for the class in class_id.
+
classlabels_int64s : list of ints
+
Class labels if using integer labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
classlabels_strings : list of strings
+
Class labels if using string labels.
One and only one of the 'classlabels_*' attributes must be defined.
+
nodes_falsenodeids : list of ints
+
Child node if expression is false.
+
nodes_featureids : list of ints
+
Feature id for each node.
+
nodes_hitrates : list of floats
+
Popularity of each node, used for performance and may be omitted.
+
nodes_hitrates_as_tensor : tensor
+
Popularity of each node, used for performance and may be omitted.
+
nodes_missing_value_tracks_true : list of ints
+
For each node, define what to do in the presence of a missing value: if a value is missing (NaN), use the 'true' or 'false' branch based on the value in this array.
This attribute may be left undefined, and the defalt value is false (0) for all nodes.
+
nodes_modes : list of strings
+
The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf node.
One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'
+
nodes_nodeids : list of ints
+
Node id for each node. Ids may restart at zero for each tree, but it not required to.
+
nodes_treeids : list of ints
+
Tree id for each node.
+
nodes_truenodeids : list of ints
+
Child node if expression is true.
+
nodes_values : list of floats
+
Thresholds to do the splitting on for each node.
+
nodes_values_as_tensor : tensor
+
Thresholds to do the splitting on for each node.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT.'
+
+ +#### Inputs + +
+
X : T1
+
Input of shape [N,F]
+
+ +#### Outputs + +
+
Y : T2
+
N, Top class for each point
+
Z : tensor(float)
+
The class score for each class, for each point, a tensor of shape [N,E].
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type.
+
T2 : tensor(string), tensor(int64)
+
The output type will be a tensor of strings or integers, depending on which of the the classlabels_* attributes is used.
+
+ + +### **ai.onnx.ml.TreeEnsembleRegressor** + + Tree Ensemble regressor. Returns the regressed values for each input in N.
+ All args with nodes_ are fields of a tuple of tree nodes, and + it is assumed they are the same length, and an index i will decode the + tuple across these inputs. Each node id can appear only once + for each tree id.
+ All fields prefixed with target_ are tuples of votes at the leaves.
+ A leaf may have multiple votes, where each vote is weighted by + the associated target_weights index.
+ All fields ending with _as_tensor can be used instead of the + same parameter without the suffix if the element type is double and not float. + All trees must have their node ids start at 0 and increment by 1.
+ Mode enum is BRANCH_LEQ, BRANCH_LT, BRANCH_GTE, BRANCH_GT, BRANCH_EQ, BRANCH_NEQ, LEAF + +#### Version + +This version of the operator has been available since version 3 of the 'ai.onnx.ml' operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
aggregate_function : string (default is SUM)
+
Defines how to aggregate leaf values within a target.
One of 'AVERAGE,' 'SUM,' 'MIN,' 'MAX.'
+
base_values : list of floats
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
base_values_as_tensor : tensor
+
Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)
+
n_targets : int
+
The total number of targets.
+
nodes_falsenodeids : list of ints
+
Child node if expression is false
+
nodes_featureids : list of ints
+
Feature id for each node.
+
nodes_hitrates : list of floats
+
Popularity of each node, used for performance and may be omitted.
+
nodes_hitrates_as_tensor : tensor
+
Popularity of each node, used for performance and may be omitted.
+
nodes_missing_value_tracks_true : list of ints
+
For each node, define what to do in the presence of a NaN: use the 'true' (if the attribute value is 1) or 'false' (if the attribute value is 0) branch based on the value in this array.
This attribute may be left undefined and the defalt value is false (0) for all nodes.
+
nodes_modes : list of strings
+
The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf node.
One of 'BRANCH_LEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'LEAF'
+
nodes_nodeids : list of ints
+
Node id for each node. Node ids must restart at zero for each tree and increase sequentially.
+
nodes_treeids : list of ints
+
Tree id for each node.
+
nodes_truenodeids : list of ints
+
Child node if expression is true
+
nodes_values : list of floats
+
Thresholds to do the splitting on for each node.
+
nodes_values_as_tensor : tensor
+
Thresholds to do the splitting on for each node.
+
post_transform : string (default is NONE)
+
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
+
target_ids : list of ints
+
The index of the target that each weight is for
+
target_nodeids : list of ints
+
The node id of each weight
+
target_treeids : list of ints
+
The id of the tree that each node is in.
+
target_weights : list of floats
+
The weight for each target
+
target_weights_as_tensor : tensor
+
The weight for each target
+
+ +#### Inputs + +
+
X : T
+
Input of shape [N,F]
+
+ +#### Outputs + +
+
Y : tensor(float)
+
N classes
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int64), tensor(int32)
+
The input type must be a tensor of a numeric type.
+
+ + +### **ai.onnx.ml.ZipMap** + + Creates a map from the input and the attributes.
+ The values are provided by the input tensor, while the keys are specified by the attributes. + Must provide keys in either classlabels_strings or classlabels_int64s (but not both).
+ The columns of the tensor correspond one-by-one to the keys specified by the attributes. There must be as many columns as keys.
+ +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.ml' operator set. + +#### Attributes + +
+
classlabels_int64s : list of ints
+
The keys when using int keys.
One and only one of the 'classlabels_*' attributes must be defined.
+
classlabels_strings : list of strings
+
The keys when using string keys.
One and only one of the 'classlabels_*' attributes must be defined.
+
+ +#### Inputs + +
+
X : tensor(float)
+
The input values
+
+ +#### Outputs + +
+
Z : T
+
The output map
+
+ +#### Type Constraints + +
+
T : seq(map(string, float)), seq(map(int64, float))
+
The output will be a sequence of string or integer maps to float.
+
+ + diff --git a/third_party/onnx/docs/Operators.md b/third_party/onnx/docs/Operators.md new file mode 100644 index 000000000..36590c595 --- /dev/null +++ b/third_party/onnx/docs/Operators.md @@ -0,0 +1,26199 @@ + +## Operator Schemas +*This file is automatically generated from the + [def files](/onnx/defs) via [this script](/onnx/defs/gen_doc.py). + Do not modify directly and instead edit operator definitions.* + +For an operator input/output's differentiability, it can be differentiable, + non-differentiable, or undefined. If a variable's differentiability + is not specified, that variable has undefined differentiability. + +### ai.onnx (default) +|**Operator**|**Since version**| +|-|-| +|Abs|13, 6, 1| +|Acos|7| +|Acosh|9| +|Add|14, 13, 7, 6, 1| +|And|7, 1| +|ArgMax|13, 12, 11, 1| +|ArgMin|13, 12, 11, 1| +|Asin|7| +|Asinh|9| +|Atan|7| +|Atanh|9| +|AveragePool|11, 10, 7, 1| +|BatchNormalization|15, 14, 9, 7, 6, 1| +|BitShift|11| +|Cast|13, 9, 6, 1| +|Ceil|13, 6, 1| +|Clip|13, 12, 11, 6, 1| +|Compress|11, 9| +|Concat|13, 11, 4, 1| +|ConcatFromSequence|11| +|Constant|13, 12, 11, 9, 1| +|ConstantOfShape|9| +|Conv|11, 1| +|ConvInteger|10| +|ConvTranspose|11, 1| +|Cos|7| +|Cosh|9| +|CumSum|14, 11| +|DepthToSpace|13, 11, 1| +|DequantizeLinear|13, 10| +|Det|11| +|Div|14, 13, 7, 6, 1| +|Dropout|13, 12, 10, 7, 6, 1| +|Einsum|12| +|Elu|6, 1| +|Equal|13, 11, 7, 1| +|Erf|13, 9| +|Exp|13, 6, 1| +|Expand|13, 8| +|EyeLike|9| +|Flatten|13, 11, 9, 1| +|Floor|13, 6, 1| +|GRU|14, 7, 3, 1| +|Gather|13, 11, 1| +|GatherElements|13, 11| +|GatherND|13, 12, 11| +|Gemm|13, 11, 9, 7, 6, 1| +|GlobalAveragePool|1| +|GlobalLpPool|2, 1| +|GlobalMaxPool|1| +|Greater|13, 9, 7, 1| +|GridSample|16| +|HardSigmoid|6, 1| +|Hardmax|13, 11, 1| +|Identity|16, 14, 13, 1| +|If|16, 13, 11, 1| +|InstanceNormalization|6, 1| +|IsInf|10| +|IsNaN|13, 9| +|LRN|13, 1| +|LSTM|14, 7, 1| +|LeakyRelu|16, 6, 1| +|Less|13, 9, 7, 1| +|Log|13, 6, 1| +|Loop|16, 13, 11, 1| +|LpNormalization|1| +|LpPool|11, 2, 1| +|MatMul|13, 9, 1| +|MatMulInteger|10| +|Max|13, 12, 8, 6, 1| +|MaxPool|12, 11, 10, 8, 1| +|MaxRoiPool|1| +|MaxUnpool|11, 9| +|Mean|13, 8, 6, 1| +|Min|13, 12, 8, 6, 1| +|Mod|13, 10| +|Mul|14, 13, 7, 6, 1| +|Multinomial|7| +|Neg|13, 6, 1| +|NonMaxSuppression|11, 10| +|NonZero|13, 9| +|Not|1| +|OneHot|11, 9| +|Optional|15| +|OptionalGetElement|15| +|OptionalHasElement|15| +|Or|7, 1| +|PRelu|16, 9, 7, 6, 1| +|Pad|13, 11, 2, 1| +|Pow|15, 13, 12, 7, 1| +|QLinearConv|10| +|QLinearMatMul|10| +|QuantizeLinear|13, 10| +|RNN|14, 7, 1| +|RandomNormal|1| +|RandomNormalLike|1| +|RandomUniform|1| +|RandomUniformLike|1| +|Reciprocal|13, 6, 1| +|ReduceL1|13, 11, 1| +|ReduceL2|13, 11, 1| +|ReduceLogSum|13, 11, 1| +|ReduceLogSumExp|13, 11, 1| +|ReduceMax|13, 12, 11, 1| +|ReduceMean|13, 11, 1| +|ReduceMin|13, 12, 11, 1| +|ReduceProd|13, 11, 1| +|ReduceSum|13, 11, 1| +|ReduceSumSquare|13, 11, 1| +|Relu|14, 13, 6, 1| +|Reshape|14, 13, 5, 1| +|Resize|13, 11, 10| +|ReverseSequence|10| +|RoiAlign|16, 10| +|Round|11| +|Scan|16, 11, 9, 8| +|Scatter (deprecated)|11, 9| +|ScatterElements|16, 13, 11| +|ScatterND|16, 13, 11| +|Selu|6, 1| +|SequenceAt|11| +|SequenceConstruct|11| +|SequenceEmpty|11| +|SequenceErase|11| +|SequenceInsert|11| +|SequenceLength|11| +|Shape|15, 13, 1| +|Shrink|9| +|Sigmoid|13, 6, 1| +|Sign|13, 9| +|Sin|7| +|Sinh|9| +|Size|13, 1| +|Slice|13, 11, 10, 1| +|Softplus|1| +|Softsign|1| +|SpaceToDepth|13, 1| +|Split|13, 11, 2, 1| +|SplitToSequence|11| +|Sqrt|13, 6, 1| +|Squeeze|13, 11, 1| +|StringNormalizer|10| +|Sub|14, 13, 7, 6, 1| +|Sum|13, 8, 6, 1| +|Tan|7| +|Tanh|13, 6, 1| +|TfIdfVectorizer|9| +|ThresholdedRelu|10| +|Tile|13, 6, 1| +|TopK|11, 10, 1| +|Transpose|13, 1| +|Trilu|14| +|Unique|11| +|Unsqueeze|13, 11, 1| +|Upsample (deprecated)|10, 9, 7| +|Where|16, 9| +|Xor|7, 1| +|**Function**|**Since version**| +|Bernoulli|15| +|CastLike|15| +|Celu|12| +|DynamicQuantizeLinear|11| +|GreaterOrEqual|16, 12| +|HardSwish|14| +|LayerNormalization|17| +|LessOrEqual|16, 12| +|LogSoftmax|13, 11, 1| +|MeanVarianceNormalization|13, 9| +|NegativeLogLikelihoodLoss|13, 12| +|Range|11| +|SequenceMap|17| +|Softmax|13, 11, 1| +|SoftmaxCrossEntropyLoss|13, 12| + +### ai.onnx.preview.training +|**Operator**|**Since version**| +|-|-| +|ai.onnx.preview.training.Adagrad|1| +|ai.onnx.preview.training.Adam|1| +|ai.onnx.preview.training.Gradient|1| +|ai.onnx.preview.training.Momentum|1| + + +## ai.onnx (default) +### **Abs** + + Absolute takes one input data (Tensor) and produces one output data + (Tensor) where the absolute is, y = abs(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+abs + +```python +node = onnx.helper.make_node( + 'Abs', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = abs(x) + +expect(node, inputs=[x], outputs=[y], + name='test_abs') +``` + +
+ + +#### Sample Implementation + +
+Abs + +```python +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + + +def abs(input: np.ndarray) -> np.ndarray: + return np.abs(input) + +``` + +
+ + +### **Acos** + + Calculates the arccosine (inverse of cosine) of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The arccosine of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+acos + +```python +node = onnx.helper.make_node( + 'Acos', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-0.5, 0, 0.5]).astype(np.float32) +y = np.arccos(x) +expect(node, inputs=[x], outputs=[y], + name='test_acos_example') + +x = np.random.rand(3, 4, 5).astype(np.float32) +y = np.arccos(x) +expect(node, inputs=[x], outputs=[y], + name='test_acos') +``` + +
+ + +### **Acosh** + + Calculates the hyperbolic arccosine of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic arccosine values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+acosh + +```python +node = onnx.helper.make_node( + 'Acosh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([10, np.e, 1]).astype(np.float32) +y = np.arccosh(x) # expected output [2.99322295, 1.65745449, 0.] +expect(node, inputs=[x], outputs=[y], + name='test_acosh_example') + +x = np.random.uniform(1.0, 10.0, (3, 4, 5)).astype(np.float32) +y = np.arccosh(x) +expect(node, inputs=[x], outputs=[y], + name='test_acosh') +``` + +
+ + +### **Add** + + Performs element-wise binary addition (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 7, 13 + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+add + +```python +node = onnx.helper.make_node( + 'Add', + inputs=['x', 'y'], + outputs=['sum'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +expect(node, inputs=[x, y], outputs=[x + y], + name='test_add') +``` + +
+ + +
+add_broadcast + +```python +node = onnx.helper.make_node( + 'Add', + inputs=['x', 'y'], + outputs=['sum'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +expect(node, inputs=[x, y], outputs=[x + y], + name='test_add_bcast') +``` + +
+ + +
+add_uint8 + +```python +node = onnx.helper.make_node( + 'Add', + inputs=['x', 'y'], + outputs=['sum'], +) + +x = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) +y = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) +expect(node, inputs=[x, y], outputs=[x + y], + name='test_add_uint8') +``` + +
+ + +### **And** + + Returns the tensor resulted from performing the `and` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input to boolean tensor.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ + +#### Examples + +
+and + +```python +node = onnx.helper.make_node( + 'And', + inputs=['x', 'y'], + outputs=['and'], +) + +# 2d +x = (np.random.randn(3, 4) > 0).astype(bool) +y = (np.random.randn(3, 4) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and2d') + +# 3d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(3, 4, 5) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and3d') + +# 4d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and4d') +``` + +
+ + +
+and_broadcast + +```python +node = onnx.helper.make_node( + 'And', + inputs=['x', 'y'], + outputs=['and'], +) + +# 3d vs 1d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(5) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast3v1d') + +# 3d vs 2d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(4, 5) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast3v2d') + +# 4d vs 2d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(5, 6) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast4v2d') + +# 4d vs 3d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(4, 5, 6) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast4v3d') + +# 4d vs 4d +x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool) +y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast4v4d') +``` + +
+ + +### **ArgMax** + + Computes the indices of the max elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equals 0, then the resulting tensor has the reduced dimension pruned. + If select_last_index is True (default False), the index of the last occurrence of the max + is selected if the max appears more than once in the input. Otherwise the index of the + first occurrence is selected. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11, 12 + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
select_last_index : int (default is 0)
+
Whether to select the last index or the first index if the {name} appears in multiple indices, default is False (first index).
+
+ +#### Inputs + +
+
data (non-differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (non-differentiable) : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + keepdims=keepdims) + +# result: [[1, 1]] +result = argmax_use_numpy(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [1, 3, 4] +result = argmax_use_numpy(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_random') +``` + +
+ + +
+default_axes_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + keepdims=keepdims, + select_last_index=True) + +# result: [[1, 1]] +result = argmax_use_numpy_select_last_index(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [1, 3, 4] +result = argmax_use_numpy_select_last_index(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_random_select_last_index') +``` + +
+ + +
+keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# result: [[0], [1]] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 1, 4] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_random') +``` + +
+ + +
+keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1], [1]] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 1, 4] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_random_select_last_index') +``` + +
+ + +
+negative_axis_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = -1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# result: [[0], [1]] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 3, 1] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_random') +``` + +
+ + +
+negative_axis_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = -1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1], [1]] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 3, 1] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_random_select_last_index') +``` + +
+ + +
+no_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 0 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# result: [0, 1] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 4] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_random') +``` + +
+ + +
+no_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 0 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [1, 1] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 4] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_random_select_last_index') +``` + +
+ + +### **ArgMin** + + Computes the indices of the min elements of the input tensor's element along the + provided axis. The resulting tensor has the same rank as the input if keepdims equals 1. + If keepdims equals 0, then the resulting tensor has the reduced dimension pruned. + If select_last_index is True (default False), the index of the last occurrence of the min + is selected if the min appears more than once in the input. Otherwise the index of the + first occurrence is selected. + The type of the output tensor is integer. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11, 12 + +#### Attributes + +
+
axis : int (default is 0)
+
The axis in which to compute the arg indices. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
select_last_index : int (default is 0)
+
Whether to select the last index or the first index if the {name} appears in multiple indices, default is False (first index).
+
+ +#### Inputs + +
+
data (non-differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (non-differentiable) : tensor(int64)
+
Reduced output tensor with integer data type.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + keepdims=keepdims) + +# The content of result is : [[0], [0]] +result = argmin_use_numpy(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [1, 3, 4] +result = argmin_use_numpy(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_random') +``` + +
+ + +
+default_axes_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + keepdims=keepdims, + select_last_index=True) + +# result: [[0, 0]] +result = argmin_use_numpy_select_last_index(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [1, 3, 4] +result = argmin_use_numpy_select_last_index(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_random_select_last_index') +``` + +
+ + +
+keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# The content of result is : [[1], [0]] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 1, 4] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_random') +``` + +
+ + +
+keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1], [0]] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 1, 4] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_random_select_last_index') +``` + +
+ + +
+negative_axis_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = -1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# The content of result is : [[1], [0]] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 3, 1] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_random') +``` + +
+ + +
+negative_axis_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = -1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1], [0]] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 3, 1] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_random_select_last_index') +``` + +
+ + +
+no_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 0 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# The content of result is : [[1, 0]] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 4] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_random') +``` + +
+ + +
+no_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 0 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1, 0]] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 4] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_random_select_last_index') +``` + +
+ + +### **Asin** + + Calculates the arcsine (inverse of sine) of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The arcsine of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+asin + +```python +node = onnx.helper.make_node( + 'Asin', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-0.5, 0, 0.5]).astype(np.float32) +y = np.arcsin(x) +expect(node, inputs=[x], outputs=[y], + name='test_asin_example') + +x = np.random.rand(3, 4, 5).astype(np.float32) +y = np.arcsin(x) +expect(node, inputs=[x], outputs=[y], + name='test_asin') +``` + +
+ + +### **Asinh** + + Calculates the hyperbolic arcsine of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic arcsine values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+asinh + +```python +node = onnx.helper.make_node( + 'Asinh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.arcsinh(x) # expected output [-0.88137358, 0., 0.88137358] +expect(node, inputs=[x], outputs=[y], + name='test_asinh_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.arcsinh(x) +expect(node, inputs=[x], outputs=[y], + name='test_asinh') +``` + +
+ + +### **Atan** + + Calculates the arctangent (inverse of tangent) of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The arctangent of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+atan + +```python +node = onnx.helper.make_node( + 'Atan', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.arctan(x) +expect(node, inputs=[x], outputs=[y], + name='test_atan_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.arctan(x) +expect(node, inputs=[x], outputs=[y], + name='test_atan') +``` + +
+ + +### **Atanh** + + Calculates the hyperbolic arctangent of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic arctangent values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+atanh + +```python +node = onnx.helper.make_node( + 'Atanh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-0.5, 0, 0.5]).astype(np.float32) +y = np.arctanh(x) # expected output [-0.54930615, 0., 0.54930615] +expect(node, inputs=[x], outputs=[y], + name='test_atanh_example') + +x = np.random.uniform(0.0, 1.0, (3, 4, 5)).astype(np.float32) +y = np.arctanh(x) +expect(node, inputs=[x], outputs=[y], + name='test_atanh') +``` + +
+ + +### **AveragePool** + + AveragePool consumes an input tensor X and applies average pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + average pooling consisting of computing the average on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + ``` + or + ``` + output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - kernel_spatial_shape[i]) / strides_spatial_shape[i] + 1) + ``` + if ceil_mode is enabled + + ``` + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - kernel_spatial_shape[i] + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + kernel_spatial_shape[i] - input_spatial_shape[i] + ``` + The output of each pooling window is divided by the number of elements (exclude pad when attribute count_include_pad is zero). + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +Other versions of this operator: 1, 7, 10 + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
ceil_mode : int (default is 0)
+
Whether to use ceil or floor (default) to compute the output shape.
+
count_include_pad : int (default is 0)
+
Whether include pad pixels when calculating values for the edges. Default is 0, doesn't count include pad.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+averagepool_1d_default + +```python +""" +input_shape: [1, 3, 32] +output_shape: [1, 3, 31] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2], +) +x = np.random.randn(1, 3, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = [2] +strides = [1] +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0], 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_1d_default') +``` + +
+ + +
+averagepool_2d_ceil + +```python +""" +input_shape: [1, 1, 4, 4] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + ceil_mode=True +) +x = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]]).astype(np.float32) +y = np.array([[[ + [6, 7.5], + [12, 13.5]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_ceil') +``` + +
+ + +
+averagepool_2d_default + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 31, 31] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_default') +``` + +
+ + +
+averagepool_2d_pads + +```python +""" +input_shape: [1, 3, 28, 28] +output_shape: [1, 3, 30, 30] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[2, 2, 2, 2] +) +x = np.random.randn(1, 3, 28, 28).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (3, 3) +strides = (1, 1) +pad_bottom = 2 +pad_top = 2 +pad_right = 2 +pad_left = 2 +pad_shape = [pad_top + pad_bottom, pad_left + pad_right] +out_shape = get_output_shape('VALID', np.add(x_shape[2:], pad_shape), kernel_shape, strides) +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_pads') +``` + +
+ + +
+averagepool_2d_pads_count_include_pad + +```python +""" +input_shape: [1, 3, 28, 28] +output_shape: [1, 3, 30, 30] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[2, 2, 2, 2], + count_include_pad=1, +) +x = np.random.randn(1, 3, 28, 28).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (3, 3) +strides = (1, 1) +pad_bottom = 2 +pad_top = 2 +pad_right = 2 +pad_left = 2 +pad_shape = [pad_top + pad_bottom, pad_left + pad_right] +out_shape = get_output_shape('VALID', np.add(x_shape[2:], pad_shape), kernel_shape, strides) +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=0) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG', count_include_pad=1) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_pads_count_include_pad') +``` + +
+ + +
+averagepool_2d_precomputed_pads + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] + +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[7, 7.5, 8, 8.5, 9], + [9.5, 10, 10.5, 11, 11.5], + [12, 12.5, 13, 13.5, 14], + [14.5, 15, 15.5, 16, 16.5], + [17, 17.5, 18, 18.5, 19]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_pads') +``` + +
+ + +
+averagepool_2d_precomputed_pads_count_include_pad + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2], + count_include_pad=1 +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[2.5200, 3.6000, 4.8000, 4.0800, 3.2400], + [4.5600, 6.4000, 8.4000, 7.0400, 5.5200], + [7.2000, 10.0000, 13.0000, 10.8000, 8.4000], + [6.9600, 9.6000, 12.4000, 10.2400, 7.9200], + [6.1200, 8.4000, 10.8000, 8.8800, 6.8400]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_pads_count_include_pad') +``` + +
+ + +
+averagepool_2d_precomputed_same_upper + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 3, 3] +pad_shape: [2, 2] -> [1, 1, 1, 1] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + auto_pad='SAME_UPPER' +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[4, 5.5, 7], + [11.5, 13, 14.5], + [19, 20.5, 22]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_same_upper') +``` + +
+ + +
+averagepool_2d_precomputed_strides + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[4, 6], + [14, 16]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_strides') +``` + +
+ + +
+averagepool_2d_same_lower + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 32, 32] +pad_shape: [1, 1] -> [1, 0, 1, 0] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_LOWER' +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides) +pad_shape = get_pad_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides, out_shape) +pad_bottom = pad_shape[0] // 2 +pad_top = pad_shape[0] - pad_bottom +pad_right = pad_shape[1] // 2 +pad_left = pad_shape[1] - pad_right +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_same_lower') +``` + +
+ + +
+averagepool_2d_same_upper + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 32, 32] +pad_shape: [1, 1] -> [0, 1, 0, 1] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_UPPER' +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides) +pad_shape = get_pad_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides, out_shape) +pad_top = pad_shape[0] // 2 +pad_bottom = pad_shape[0] - pad_top +pad_left = pad_shape[1] // 2 +pad_right = pad_shape[1] - pad_left +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_same_upper') +``` + +
+ + +
+averagepool_2d_strides + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 10, 10] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + strides=[3, 3] +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (5, 5) +strides = (3, 3) +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_strides') +``` + +
+ + +
+averagepool_3d_default + +```python +""" +input_shape: [1, 3, 32, 32, 32] +output_shape: [1, 3, 31, 31, 31] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2, 2], +) +x = np.random.randn(1, 3, 32, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = [2, 2, 2] +strides = [1, 1, 1] +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0, 0, 0], 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_3d_default') +``` + +
+ + +### **BatchNormalization** + + Carries out batch normalization as described in the paper + https://arxiv.org/abs/1502.03167. Depending on the mode it is being run, + There are five required inputs 'X', 'scale', 'B', 'input_mean' and + 'input_var'. + Note that 'input_mean' and 'input_var' are expected to be the estimated + statistics in inference mode (training_mode=False, default), + and the running statistics in training mode (training_mode=True). + There are multiple cases for the number of outputs, which we list below: + + Output case #1: Y, running_mean, running_var (training_mode=True) + Output case #2: Y (training_mode=False) + + When training_mode=False, extra outputs are invalid. + The outputs are updated as follows when training_mode=True: + ``` + running_mean = input_mean * momentum + current_mean * (1 - momentum) + running_var = input_var * momentum + current_var * (1 - momentum) + + Y = (X - current_mean) / sqrt(current_var + epsilon) * scale + B + + where: + + current_mean = ReduceMean(X, axis=all_except_channel_index) + current_var = ReduceVar(X, axis=all_except_channel_index) + + Notice that ReduceVar refers to the population variance, and it equals to + sum(sqrd(x_i - x_avg)) / N + where N is the population size (this formula does not use sample size N - 1). + + ``` + + The computation of ReduceMean and ReduceVar uses float to avoid overflow for float16 inputs. + + When training_mode=False: + ``` + Y = (X - input_mean) / sqrt(input_var + epsilon) * scale + B + ``` + + For previous (depreciated) non-spatial cases, implementors are suggested + to flatten the input shape to (N x C * D1 * D2 * ... * Dn) before a BatchNormalization Op. + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 7, 9, 14 + +#### Attributes + +
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero.
+
momentum : float (default is 0.9)
+
Factor used in computing the running mean and variance.e.g., running_mean = running_mean * momentum + mean * (1 - momentum).
+
training_mode : int (default is 0)
+
If set to true, it indicates BatchNormalization is being used for training, and outputs 1, 2, 3, and 4 would be populated.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size, C is the number of channels. Statistics are computed for every channel of C over N and D1 to Dn dimensions. For image data, input dimensions become (N x C x H x W). The op also accepts single dimension input of size N in which case C is assumed to be 1
+
scale (differentiable) : T1
+
Scale tensor of shape (C).
+
B (differentiable) : T1
+
Bias tensor of shape (C).
+
input_mean (differentiable) : T2
+
running (training) or estimated (testing) mean tensor of shape (C).
+
input_var (differentiable) : T2
+
running (training) or estimated (testing) variance tensor of shape (C).
+
+ +#### Outputs (1 - 3) + +
+
Y (differentiable) : T
+
The output tensor of the same shape as X
+
running_mean (optional, non-differentiable) : T2
+
The running mean after the BatchNormalization operator.
+
running_var (optional, non-differentiable) : T2
+
The running variance after the BatchNormalization operator. This op uses the population size (N) for calculating variance, and not the sample size N-1.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain scale and bias types to float tensors.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain mean and variance types to float tensors.
+
+ + +#### Examples + +
+batchnormalization + +```python +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +mean = np.random.randn(3).astype(np.float32) +var = np.random.rand(3).astype(np.float32) +y = _batchnorm_test_mode(x, s, bias, mean, var).astype(np.float32) + +node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y'], +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias, mean, var], outputs=[y], + name='test_batchnorm_example') + +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +mean = np.random.randn(3).astype(np.float32) +var = np.random.rand(3).astype(np.float32) +epsilon = 1e-2 +y = _batchnorm_test_mode(x, s, bias, mean, var, epsilon).astype(np.float32) + +node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y'], + epsilon=epsilon, +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias, mean, var], outputs=[y], + name='test_batchnorm_epsilon') +``` + +
+ + +
+train + +```python +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +mean = np.random.randn(3).astype(np.float32) +var = np.random.rand(3).astype(np.float32) +# using np.bool(1) while generating test data with "'bool' object has no attribute 'dtype'" +# working around by using np.byte(1).astype(bool) +training_mode = 1 +y, output_mean, output_var = _batchnorm_training_mode(x, s, bias, mean, var) + +node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y', 'output_mean', 'output_var'], + training_mode=training_mode +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias, mean, var], + outputs=[y, output_mean, output_var], + name='test_batchnorm_example_training_mode') + +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +mean = np.random.randn(3).astype(np.float32) +var = np.random.rand(3).astype(np.float32) +training_mode = 1 +momentum = 0.9 +epsilon = 1e-2 +y, output_mean, output_var = _batchnorm_training_mode(x, s, bias, mean, var, momentum, + epsilon) + +node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y', 'output_mean', 'output_var'], + epsilon=epsilon, + training_mode=training_mode +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias, mean, var], + outputs=[y, output_mean, output_var], + name='test_batchnorm_epsilon_training_mode') +``` + +
+ + +### **Bernoulli** + + Draws binary random numbers (0 or 1) from a Bernoulli distribution. The input tensor should be a tensor + containing probabilities p (a value in the range [0,1]) to be used for drawing the binary random number, + where an output of 1 is produced with probability p and an output of 0 is produced with probability (1-p). + + This operator is non-deterministic and may not produce the same values in different + implementations (even if a seed is specified). + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
The data type for the elements of the output tensor. if not specified, we will use the data type of the input tensor.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs + +
+
input : T1
+
All values in input have to be in the range:[0, 1].
+
+ +#### Outputs + +
+
output : T2
+
The returned output tensor only has values 0 or 1, same shape as input tensor.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(bfloat16), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bool)
+
Constrain output types to all numeric tensors and bool tensors.
+
+ + +#### Examples + +
+bernoulli_with_dtype + +```python +node = onnx.helper.make_node( + 'Bernoulli', + inputs=['x'], + outputs=['y'], + dtype=onnx.TensorProto.DOUBLE, +) + +x = np.random.uniform(0.0, 1.0, 10).astype(np.float32) +y = bernoulli_reference_implementation(x, np.float64) +expect(node, inputs=[x], outputs=[y], name='test_bernoulli_double') +``` + +
+ + +
+bernoulli_with_seed + +```python +seed = np.float(0) +node = onnx.helper.make_node( + 'Bernoulli', + inputs=['x'], + outputs=['y'], + seed=seed, +) + +x = np.random.uniform(0.0, 1.0, 10).astype(np.float32) +y = bernoulli_reference_implementation(x, np.float32) +expect(node, inputs=[x], outputs=[y], name='test_bernoulli_seed') +``` + +
+ + +
+bernoulli_without_dtype + +```python +node = onnx.helper.make_node( + 'Bernoulli', + inputs=['x'], + outputs=['y'], +) + +x = np.random.uniform(0.0, 1.0, 10).astype(np.float) +y = bernoulli_reference_implementation(x, np.float) +expect(node, inputs=[x], outputs=[y], name='test_bernoulli') +``` + +
+ + +### **BitShift** + + Bitwise shift operator performs element-wise operation. For each input element, if the + attribute "direction" is "RIGHT", this operator moves its binary representation toward + the right side so that the input value is effectively decreased. If the attribute "direction" + is "LEFT", bits of binary representation moves toward the left side, which results the + increase of its actual value. The input X is the tensor to be shifted and another input + Y specifies the amounts of shifting. For example, if "direction" is "Right", X is [1, 4], + and S is [1, 1], the corresponding output Z would be [0, 2]. If "direction" is "LEFT" with + X=[1, 2] and S=[1, 2], the corresponding output Y would be [2, 8]. + + Because this operator supports Numpy-style broadcasting, X's and Y's shapes are + not necessarily identical. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
direction : string (required)
+
Direction of moving bits. It can be either "RIGHT" (for right shift) or "LEFT" (for left shift).
+
+ +#### Inputs + +
+
X (non-differentiable) : T
+
First operand, input to be shifted.
+
Y (non-differentiable) : T
+
Second operand, amounts of shift.
+
+ +#### Outputs + +
+
Z (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64)
+
Constrain input and output types to integer tensors.
+
+ + +#### Examples + +
+left_unit16 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" +) + +x = np.array([16, 4, 1]).astype(np.uint16) +y = np.array([1, 2, 3]).astype(np.uint16) +z = x << y # expected output [32, 16, 8] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint16') +``` + +
+ + +
+left_unit32 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" +) + +x = np.array([16, 4, 1]).astype(np.uint32) +y = np.array([1, 2, 3]).astype(np.uint32) +z = x << y # expected output [32, 16, 8] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint32') +``` + +
+ + +
+left_unit64 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" +) + +x = np.array([16, 4, 1]).astype(np.uint64) +y = np.array([1, 2, 3]).astype(np.uint64) +z = x << y # expected output [32, 16, 8] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint64') +``` + +
+ + +
+left_unit8 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" +) + +x = np.array([16, 4, 1]).astype(np.uint8) +y = np.array([1, 2, 3]).astype(np.uint8) +z = x << y # expected output [32, 16, 8] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint8') +``` + +
+ + +
+right_unit16 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" +) + +x = np.array([16, 4, 1]).astype(np.uint16) +y = np.array([1, 2, 3]).astype(np.uint16) +z = x >> y # expected output [8, 1, 0] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint16') +``` + +
+ + +
+right_unit32 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" +) + +x = np.array([16, 4, 1]).astype(np.uint32) +y = np.array([1, 2, 3]).astype(np.uint32) +z = x >> y # expected output [8, 1, 0] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint32') +``` + +
+ + +
+right_unit64 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" +) + +x = np.array([16, 4, 1]).astype(np.uint64) +y = np.array([1, 2, 3]).astype(np.uint64) +z = x >> y # expected output [8, 1, 0] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint64') +``` + +
+ + +
+right_unit8 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" +) + +x = np.array([16, 4, 1]).astype(np.uint8) +y = np.array([1, 2, 3]).astype(np.uint8) +z = x >> y # expected output [8, 1, 0] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint8') +``` + +
+ + +### **Cast** + + The operator casts the elements of a given input tensor to a data type + specified by the 'to' argument and returns an output tensor of the same size in + the converted type. The 'to' argument must be one of the data types specified + in the 'DataType' enum field in the TensorProto message. + + Casting from string tensor in plain (e.g., "3.14" and "1000") and scientific numeric representations + (e.g., "1e-5" and "1E8") to float types is supported. For example, converting string "100.5" to an integer may + result 100. There are some string literals reserved for special floating-point values; + "+INF" (and "INF"), "-INF", and "NaN" are positive infinity, negative infinity, and not-a-number, respectively. + Any string which can exactly match "+INF" in a case-insensitive way would be mapped to positive infinite. Similarly, + this case-insensitive rule is applied to "INF" and "NaN". When casting from numeric tensors + to string tensors, plain floating-point representation (such as "314.15926") would be used. + Converting non-numerical-literal string such as "Hello World!" is an undefined behavior. Cases + of converting string representing floating-point arithmetic value, such as "2.718", to INT is an undefined behavior. + + Conversion from a numerical type to any numerical type is always allowed. + User must be aware of precision loss and value change caused by range difference between two types. + For example, a 64-bit float 3.1415926459 may be round to a 32-bit float 3.141592. Similarly, converting + an integer 36 to Boolean may produce 1 because we truncate bits which can't be stored in the targeted type. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 9 + +#### Attributes + +
+
to : int (required)
+
The data type to which the elements of the input tensor are cast. Strictly must be one of the types from DataType enum in TensorProto
+
+ +#### Inputs + +
+
input (differentiable) : T1
+
Input tensor to be cast.
+
+ +#### Outputs + +
+
output (differentiable) : T2
+
Output tensor with the same shape as input with type specified by the 'to' argument
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string), tensor(bfloat16)
+
Constrain input types. Casting from complex is not supported.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string), tensor(bfloat16)
+
Constrain output types. Casting to complex is not supported.
+
+ + +#### Examples + +
+cast + +```python +shape = (3, 4) +test_cases = [ + ('FLOAT', 'FLOAT16'), + ('FLOAT', 'DOUBLE'), + ('FLOAT16', 'FLOAT'), + ('FLOAT16', 'DOUBLE'), + ('DOUBLE', 'FLOAT'), + ('DOUBLE', 'FLOAT16'), + ('FLOAT', 'STRING'), + ('STRING', 'FLOAT'), + ('FLOAT', 'BFLOAT16'), + ('BFLOAT16', 'FLOAT'), +] + +for from_type, to_type in test_cases: + input_type_proto = None + output_type_proto = None + if 'BFLOAT16' == from_type or 'BFLOAT16' == to_type: + np_fp32 = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.float32) + little_endisan = sys.byteorder == 'little' + np_uint16_view = np_fp32.view(dtype=np.uint16) + np_bfp16 = np_uint16_view[1::2] if little_endisan else np_uint16_view[0::2] + if 'BFLOAT16' == to_type: + assert from_type == 'FLOAT' + input = np_fp32.reshape([3, 4]) + output = np_bfp16.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), output.shape) + else: + assert to_type == 'FLOAT' + input = np_bfp16.reshape([3, 4]) + #convert bfloat to FLOAT + np_fp32_zeros = np.zeros((len(np_bfp16) * 2,), dtype=np.uint16) + if little_endisan: + np_fp32_zeros[1::2] = np_bfp16 + else: + np_fp32_zeros[0::2] = np_bfp16 + np_fp32_from_bfloat = np_fp32_zeros.view(dtype=np.float32) + output = np_fp32_from_bfloat.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), output.shape) + elif 'STRING' != from_type: + input = np.random.random_sample(shape).astype( + TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, from_type)]) + if ('STRING' == to_type): + # Converting input to str, then give it object dtype for generating script + ss = [] + for i in input.flatten(): + s = str(i).encode('utf-8') + su = s.decode('utf-8') + ss.append(su) + + output = np.array(ss).astype(object).reshape([3, 4]) + else: + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + else: + input = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.dtype(object)).reshape([3, 4]) + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + node = onnx.helper.make_node( + 'Cast', + inputs=['input'], + outputs=['output'], + to=getattr(TensorProto, to_type), + ) + if input_type_proto and output_type_proto: + expect(node, inputs=[input], outputs=[output], + name='test_cast_' + from_type + '_to_' + to_type, + input_type_protos=[input_type_proto], + output_type_protos=[output_type_proto]) + else: + expect(node, inputs=[input], outputs=[output], + name='test_cast_' + from_type + '_to_' + to_type) +``` + +
+ + +### **CastLike** + + The operator casts the elements of a given input tensor (the first input) to + the same data type as the elements of the second input tensor. + See documentation of the Cast operator for further details. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T1
+
Input tensor to be cast.
+
target_type (non-differentiable) : T2
+
The (first) input tensor will be cast to produce a tensor of the same type as this (second input) tensor.
+
+ +#### Outputs + +
+
output (differentiable) : T2
+
Output tensor produced by casting the first input tensor to have the same type as the second input tensor.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string), tensor(bfloat16)
+
Constrain input types. Casting from complex is not supported.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool), tensor(string), tensor(bfloat16)
+
Constrain output types. Casting to complex is not supported.
+
+ + +#### Examples + +
+castlike + +```python +shape = (3, 4) +test_cases = [ + ('FLOAT', 'FLOAT16'), + ('FLOAT', 'DOUBLE'), + ('FLOAT16', 'FLOAT'), + ('FLOAT16', 'DOUBLE'), + ('DOUBLE', 'FLOAT'), + ('DOUBLE', 'FLOAT16'), + ('FLOAT', 'STRING'), + ('STRING', 'FLOAT'), + ('FLOAT', 'BFLOAT16'), + ('BFLOAT16', 'FLOAT'), +] + +for from_type, to_type in test_cases: + input_type_proto = None + output_type_proto = None + if 'BFLOAT16' == from_type or 'BFLOAT16' == to_type: + np_fp32 = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.float32) + little_endisan = sys.byteorder == 'little' + np_uint16_view = np_fp32.view(dtype=np.uint16) + np_bfp16 = np_uint16_view[1::2] if little_endisan else np_uint16_view[0::2] + if 'BFLOAT16' == to_type: + assert from_type == 'FLOAT' + input = np_fp32.reshape([3, 4]) + output = np_bfp16.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), output.shape) + else: + assert to_type == 'FLOAT' + input = np_bfp16.reshape([3, 4]) + #convert bfloat to FLOAT + np_fp32_zeros = np.zeros((len(np_bfp16) * 2,), dtype=np.uint16) + if little_endisan: + np_fp32_zeros[1::2] = np_bfp16 + else: + np_fp32_zeros[0::2] = np_bfp16 + np_fp32_from_bfloat = np_fp32_zeros.view(dtype=np.float32) + output = np_fp32_from_bfloat.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), output.shape) + elif 'STRING' != from_type: + input = np.random.random_sample(shape).astype( + TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, from_type)]) + if ('STRING' == to_type): + # Converting input to str, then give it np.object dtype for generating script + ss = [] + for i in input.flatten(): + s = str(i).encode('utf-8') + su = s.decode('utf-8') + ss.append(su) + + output = np.array(ss).astype(np.object).reshape([3, 4]) + else: + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + else: + input = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.dtype(np.object)).reshape([3, 4]) + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + like = output.flatten()[0:1] + node = onnx.helper.make_node( + 'CastLike', + inputs=['input', 'like'], + outputs=['output'], + ) + if input_type_proto and output_type_proto: + expect(node, inputs=[input, like], outputs=[output], + name='test_castlike_' + from_type + '_to_' + to_type, + input_type_protos=[input_type_proto, output_type_proto], + output_type_protos=[output_type_proto]) + else: + expect(node, inputs=[input, like], outputs=[output], + name='test_castlike_' + from_type + '_to_' + to_type) +``` + +
+ + +### **Ceil** + + Ceil takes one input data (Tensor) and produces one output data + (Tensor) where the ceil is, y = ceil(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
X (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+ceil + +```python +node = onnx.helper.make_node( + 'Ceil', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1.5, 1.2]).astype(np.float32) +y = np.ceil(x) # expected output [-1., 2.] +expect(node, inputs=[x], outputs=[y], + name='test_ceil_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.ceil(x) +expect(node, inputs=[x], outputs=[y], + name='test_ceil') +``` + +
+ + +### **Celu** + + Continuously Differentiable Exponential Linear Units: + Perform the linear unit element-wise on the input tensor X + using formula: + + ``` + max(0,x) + min(0,alpha*(exp(x/alpha)-1)) + ``` + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
The Alpha value in Celu formula which control the shape of the unit. The default value is 1.0.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float)
+
Constrain input and output types to float32 tensors.
+
+ + +#### Examples + +
+celu + +```python +alpha = 2.0 +node = onnx.helper.make_node( + 'Celu', + inputs=['X'], + outputs=['Y'], + alpha=alpha, +) + +input_data = np.array([[[[0.8439683], [0.5665144], [0.05836735]], + [[0.02916367], [0.12964272], [0.5060197]], + [[0.79538304], [0.9411346], [0.9546573]]], + [[[0.17730942], [0.46192095], [0.26480448]], + [[0.6746842], [0.01665257], [0.62473077]], + [[0.9240844], [0.9722341], [0.11965699]]], + [[[0.41356155], [0.9129373], [0.59330076]], + [[0.81929934], [0.7862604], [0.11799799]], + [[0.69248444], [0.54119414], [0.07513223]]]], dtype=np.float32) + +# Calculate expected output data +positive_input = np.maximum(0, input_data) +negative_input = np.minimum(0, alpha * (np.exp(input_data / alpha) - 1)) +expected_output = positive_input + negative_input + +expect(node, inputs=[input_data], outputs=[expected_output], + name='test_celu') +``` + +
+ + +### **Clip** + + Clip operator limits the given input within an interval. The interval is + specified by the inputs 'min' and 'max'. They default to + numeric_limits::lowest() and numeric_limits::max(), respectively. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 11, 12 + +#### Inputs (1 - 3) + +
+
input (differentiable) : T
+
Input tensor whose elements to be clipped
+
min (optional, non-differentiable) : T
+
Minimum value, under which element is replaced by min. It must be a scalar(tensor of empty shape).
+
max (optional, non-differentiable) : T
+
Maximum value, above which element is replaced by max. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor with clipped input elements
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+clip + +```python +node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min', 'max'], + outputs=['y'], +) + +x = np.array([-2, 0, 2]).astype(np.float32) +min_val = np.float32(-1) +max_val = np.float32(1) +y = np.clip(x, min_val, max_val) # expected output [-1., 0., 1.] +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, min_val, max_val) +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip') +node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min', 'max'], + outputs=['y'], +) + +min_val = np.float32(-5) +max_val = np.float32(5) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.array([-1, 0, 1]).astype(np.float32) +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_inbounds') + +x = np.array([-6, 0, 6]).astype(np.float32) +y = np.array([-5, 0, 5]).astype(np.float32) +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_outbounds') + +x = np.array([-1, 0, 6]).astype(np.float32) +y = np.array([-1, 0, 5]).astype(np.float32) +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_splitbounds') +``` + +
+ + +
+clip_default + +```python +node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min'], + outputs=['y'], +) +min_val = np.float32(0) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, min_val, np.inf) +expect(node, inputs=[x, min_val], outputs=[y], + name='test_clip_default_min') + +no_min = "" # optional input, not supplied +node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, 'max'], + outputs=['y'], +) +max_val = np.float32(0) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, -np.inf, max_val) +expect(node, inputs=[x, max_val], outputs=[y], + name='test_clip_default_max') + +no_max = "" # optional input, not supplied +node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, no_max], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.array([-1, 0, 1]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_clip_default_inbounds') +``` + +
+ + +
+clip_default_int8 + +```python +node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min'], + outputs=['y'], +) +min_val = np.int8(0) +x = np.random.randn(3, 4, 5).astype(np.int8) +y = np.clip(x, min_val, np.iinfo(np.int8).max) +expect(node, inputs=[x, min_val], outputs=[y], + name='test_clip_default_int8_min') + +no_min = "" # optional input, not supplied +node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, 'max'], + outputs=['y'], +) +max_val = np.int8(0) +x = np.random.randn(3, 4, 5).astype(np.int8) +y = np.clip(x, np.iinfo(np.int8).min, max_val) +expect(node, inputs=[x, max_val], outputs=[y], + name='test_clip_default_int8_max') + +no_max = "" # optional input, not supplied +node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, no_max], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.int8) +y = np.array([-1, 0, 1]).astype(np.int8) +expect(node, inputs=[x], outputs=[y], + name='test_clip_default_int8_inbounds') +``` + +
+ + +### **Compress** + + Selects slices from an input tensor along a given axis where condition evaluates to True for each axis index. + In case axis is not provided, input is flattened before elements are selected. + Compress behaves like numpy.compress: https://docs.scipy.org/doc/numpy/reference/generated/numpy.compress.html + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +Other versions of this operator: 9 + +#### Attributes + +
+
axis : int
+
(Optional) Axis along which to take slices. If not specified, input is flattened before elements being selected. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Tensor of rank r >= 1.
+
condition (non-differentiable) : T1
+
Rank 1 tensor of booleans to indicate which slices or data elements to be selected. Its length can be less than the input length along the axis or the flattened input size if axis is not specified. In such cases data slices or elements exceeding the condition length are discarded.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank r if axis is specified. Otherwise output is a Tensor of rank 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
T1 : tensor(bool)
+
Constrain to boolean tensors.
+
+ + +#### Examples + +
+compress_0 + +```python +node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + axis=0, +) +input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) +condition = np.array([0, 1, 1]) +output = np.compress(condition, input, axis=0) +#print(output) +#[[ 3. 4.] +# [ 5. 6.]] + +expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_0') +``` + +
+ + +
+compress_1 + +```python +node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + axis=1, +) +input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) +condition = np.array([0, 1]) +output = np.compress(condition, input, axis=1) +#print(output) +#[[ 2.] +# [ 4.] +# [ 6.]] + +expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_1') +``` + +
+ + +
+compress_default_axis + +```python +node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], +) +input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) +condition = np.array([0, 1, 0, 0, 1]) +output = np.compress(condition, input) +#print(output) +#[ 2., 5.] + +expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_default_axis') +``` + +
+ + +
+compress_negative_axis + +```python +node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + axis=-1, +) +input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) +condition = np.array([0, 1]) +output = np.compress(condition, input, axis=-1) +# print(output) +#[[ 2.] +# [ 4.] +# [ 6.]] +expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_negative_axis') +``` + +
+ + +### **Concat** + + Concatenate a list of tensors into a single tensor. All input tensors must have the same shape, except for the dimension size of the axis to concatenate on. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 4, 11 + +#### Attributes + +
+
axis : int (required)
+
Which axis to concat on. A negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(inputs)..
+
+ +#### Inputs (1 - ∞) + +
+
inputs (variadic, differentiable) : T
+
List of tensors for concatenation
+
+ +#### Outputs + +
+
concat_result (differentiable) : T
+
Concatenated tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain output types to any tensor type.
+
+ + +#### Examples + +
+concat + +```python +test_cases: Dict[Text, Sequence[Any]] = { + '1d': ([1, 2], + [3, 4]), + '2d': ([[1, 2], [3, 4]], + [[5, 6], [7, 8]]), + '3d': ([[[1, 2], [3, 4]], [[5, 6], [7, 8]]], + [[[9, 10], [11, 12]], [[13, 14], [15, 16]]]) +} + +for test_case, values_ in test_cases.items(): + values = [np.asarray(v, dtype=np.float32) for v in values_] + for i in range(len(values[0].shape)): + in_args = ['value' + str(k) for k in range(len(values))] + node = onnx.helper.make_node( + 'Concat', + inputs=[s for s in in_args], + outputs=['output'], + axis=i + ) + output = np.concatenate(values, i) + expect(node, inputs=[v for v in values], outputs=[output], + name='test_concat_' + test_case + '_axis_' + str(i)) + + for i in range(-len(values[0].shape), 0): + in_args = ['value' + str(k) for k in range(len(values))] + node = onnx.helper.make_node( + 'Concat', + inputs=[s for s in in_args], + outputs=['output'], + axis=i + ) + output = np.concatenate(values, i) + expect(node, inputs=[v for v in values], outputs=[output], + name='test_concat_' + test_case + '_axis_negative_' + str(abs(i))) +``` + +
+ + +### **ConcatFromSequence** + + Concatenate a sequence of tensors into a single tensor. + All input tensors must have the same shape, except for the dimension size of the axis to concatenate on. + By default 'new_axis' is 0, the behavior is similar to numpy.concatenate. + When 'new_axis' is 1, the behavior is similar to numpy.stack. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (required)
+
Which axis to concat on. Accepted range in `[-r, r - 1]`, where `r` is the rank of input tensors. When `new_axis` is 1, accepted range is `[-r - 1, r]`.
+
new_axis : int (default is 0)
+
Insert and concatenate on a new axis or not, default 0 means do not insert new axis.
+
+ +#### Inputs + +
+
input_sequence : S
+
Sequence of tensors for concatenation
+
+ +#### Outputs + +
+
concat_result : T
+
Concatenated tensor
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain input types to any tensor type.
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain output types to any tensor type.
+
+ + +### **Constant** + + This operator produces a constant tensor. Exactly one of the provided attributes, either value, sparse_value, + or value_* must be specified. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 9, 11, 12 + +#### Attributes + +
+
sparse_value : sparse_tensor
+
The value for the elements of the output tensor in sparse format.
+
value : tensor
+
The value for the elements of the output tensor.
+
value_float : float
+
The value for the sole element for the scalar, float32, output tensor.
+
value_floats : list of floats
+
The values for the elements for the 1D, float32, output tensor.
+
value_int : int
+
The value for the sole element for the scalar, int64, output tensor.
+
value_ints : list of ints
+
The values for the elements for the 1D, int64, output tensor.
+
value_string : string
+
The value for the sole element for the scalar, UTF-8 string, output tensor.
+
value_strings : list of strings
+
The values for the elements for the 1D, UTF-8 string, output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor containing the same value of the provided tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+constant + +```python +values = np.random.randn(5, 5).astype(np.float32) +node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['values'], + value=onnx.helper.make_tensor( + name='const_tensor', + data_type=onnx.TensorProto.FLOAT, + dims=values.shape, + vals=values.flatten().astype(float), + ), +) + +expect(node, inputs=[], outputs=[values], + name='test_constant') +``` + +
+ + +### **ConstantOfShape** + + Generate a tensor with given value and shape. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
value : tensor
+
(Optional) The value of the output elements.Should be a one-element tensor. If not specified, it defaults to a tensor of value 0 and datatype float32
+
+ +#### Inputs + +
+
input : T1
+
1D tensor. The shape of the expected output tensor. If empty tensor is given, the output would be a scalar. All values must be >= 0.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor of shape specified by 'input'.If attribute 'value' is specified, the value and datatype of the output tensor is taken from 'value'.If attribute 'value' is not specified, the value in the output defaults to 0, and the datatype defaults to float32.
+
+ +#### Type Constraints + +
+
T1 : tensor(int64)
+
Constrain input types.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain output types to be numerics.
+
+ + +#### Examples + +
+float_ones + +```python +x = np.array([4, 3, 2]).astype(np.int64) +tensor_value = onnx.helper.make_tensor("value", onnx.TensorProto.FLOAT, + [1], [1]) +node = onnx.helper.make_node( + 'ConstantOfShape', + inputs=['x'], + outputs=['y'], + value=tensor_value, +) + +y = np.ones(x, dtype=np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_constantofshape_float_ones') +``` + +
+ + +
+int32_shape_zero + +```python +x = np.array([0, ]).astype(np.int64) +tensor_value = onnx.helper.make_tensor("value", onnx.TensorProto.INT32, + [1], [0]) +node = onnx.helper.make_node( + 'ConstantOfShape', + inputs=['x'], + outputs=['y'], + value=tensor_value, +) +y = np.zeros(x, dtype=np.int32) +expect(node, inputs=[x], outputs=[y], + name='test_constantofshape_int_shape_zero') +``` + +
+ + +
+int32_zeros + +```python +x = np.array([10, 6]).astype(np.int64) +tensor_value = onnx.helper.make_tensor("value", onnx.TensorProto.INT32, + [1], [0]) +node = onnx.helper.make_node( + 'ConstantOfShape', + inputs=['x'], + outputs=['y'], + value=tensor_value, +) +y = np.zeros(x, dtype=np.int32) +expect(node, inputs=[x], outputs=[y], + name='test_constantofshape_int_zeros') +``` + +
+ + +### **Conv** + + The convolution operator consumes an input tensor and a filter, and + computes the output. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter. If not present, the dilation defaults is 1 along each spatial axis.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input W.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults is 1 along each spatial axis.
+
+ +#### Inputs (2 - 3) + +
+
X (differentiable) : T
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn). Optionally, if dimension denotation is in effect, the operation expects input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
W (differentiable) : T
+
The weight tensor that will be used in the convolutions; has size (M x C/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the kernel shape will be (M x C/group x k1 x k2 x ... x kn), where (k1 x k2 x ... kn) is the dimension of the kernel. Optionally, if dimension denotation is in effect, the operation expects the weight tensor to arrive with the dimension denotation of [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL ...]. Assuming zero based indices for the shape array, X.shape[1] == (W.shape[1] * group) == C and W.shape[0] mod G == 0. Or in other words FILTER_IN_CHANNEL multiplied by the number of groups should be equal to DATA_CHANNEL and the number of feature maps M should be a multiple of the number of groups G.
+
B (optional, differentiable) : T
+
Optional 1D bias to be added to the convolution, has size of M.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, and pad lengths.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+conv + +```python + +x = np.array([[[[0., 1., 2., 3., 4.], # (1, 1, 5, 5) input tensor + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.], + [20., 21., 22., 23., 24.]]]]).astype(np.float32) +W = np.array([[[[1., 1., 1.], # (1, 1, 3, 3) tensor for convolution weights + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +# Convolution with padding +node_with_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + # Default values for other attributes: strides=[1, 1], dilations=[1, 1], groups=1 + pads=[1, 1, 1, 1], +) +y_with_padding = np.array([[[[12., 21., 27., 33., 24.], # (1, 1, 5, 5) output tensor + [33., 54., 63., 72., 51.], + [63., 99., 108., 117., 81.], + [93., 144., 153., 162., 111.], + [72., 111., 117., 123., 84.]]]]).astype(np.float32) +expect(node_with_padding, inputs=[x, W], outputs=[y_with_padding], + name='test_basic_conv_with_padding') + +# Convolution without padding +node_without_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + # Default values for other attributes: strides=[1, 1], dilations=[1, 1], groups=1 + pads=[0, 0, 0, 0], +) +y_without_padding = np.array([[[[54., 63., 72.], # (1, 1, 3, 3) output tensor + [99., 108., 117.], + [144., 153., 162.]]]]).astype(np.float32) +expect(node_without_padding, inputs=[x, W], outputs=[y_without_padding], + name='test_basic_conv_without_padding') +``` + +
+ + +
+conv_with_autopad_same + +```python + +x = np.array([[[[0., 1., 2., 3., 4.], # (1, 1, 5, 5) input tensor + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.], + [20., 21., 22., 23., 24.]]]]).astype(np.float32) +W = np.array([[[[1., 1., 1.], # (1, 1, 3, 3) tensor for convolution weights + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +# Convolution with auto_pad='SAME_LOWER' and strides=2 +node = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + auto_pad='SAME_LOWER', + kernel_shape=[3, 3], + strides=[2, 2], +) +y = np.array([[[[12., 27., 24.], + [63., 108., 81.], + [72., 117., 84.]]]]).astype(np.float32) +expect(node, inputs=[x, W], outputs=[y], + name='test_conv_with_autopad_same') +``` + +
+ + +
+conv_with_strides + +```python + +x = np.array([[[[0., 1., 2., 3., 4.], # (1, 1, 7, 5) input tensor + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.], + [20., 21., 22., 23., 24.], + [25., 26., 27., 28., 29.], + [30., 31., 32., 33., 34.]]]]).astype(np.float32) +W = np.array([[[[1., 1., 1.], # (1, 1, 3, 3) tensor for convolution weights + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +# Convolution with strides=2 and padding +node_with_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[1, 1, 1, 1], + strides=[2, 2], # Default values for other attributes: dilations=[1, 1], groups=1 +) +y_with_padding = np.array([[[[12., 27., 24.], # (1, 1, 4, 3) output tensor + [63., 108., 81.], + [123., 198., 141.], + [112., 177., 124.]]]]).astype(np.float32) +expect(node_with_padding, inputs=[x, W], outputs=[y_with_padding], + name='test_conv_with_strides_padding') + +# Convolution with strides=2 and no padding +node_without_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[0, 0, 0, 0], + strides=[2, 2], # Default values for other attributes: dilations=[1, 1], groups=1 +) +y_without_padding = np.array([[[[54., 72.], # (1, 1, 3, 2) output tensor + [144., 162.], + [234., 252.]]]]).astype(np.float32) +expect(node_without_padding, inputs=[x, W], outputs=[y_without_padding], + name='test_conv_with_strides_no_padding') + +# Convolution with strides=2 and padding only along one dimension (the H dimension in NxCxHxW tensor) +node_with_asymmetric_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[1, 0, 1, 0], + strides=[2, 2], # Default values for other attributes: dilations=[1, 1], groups=1 +) +y_with_asymmetric_padding = np.array([[[[21., 33.], # (1, 1, 4, 2) output tensor + [99., 117.], + [189., 207.], + [171., 183.]]]]).astype(np.float32) +expect(node_with_asymmetric_padding, inputs=[x, W], outputs=[y_with_asymmetric_padding], + name='test_conv_with_strides_and_asymmetric_padding') +``` + +
+ + +### **ConvInteger** + + The integer convolution operator consumes an input tensor, its zero-point, a filter, and its zero-point, + and computes the output. The production MUST never overflow. The accumulation may overflow if and only if in 32 bits. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter. If not present, the dilation defaults to 1 along each axis.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into. default is 1.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input 'w'.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0.The value represent the number of pixels added to the beginning and end part of the corresponding axis.`pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number ofpixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`.This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaultsto 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each axis.
+
+ +#### Inputs (2 - 4) + +
+
x : T1
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn). Optionally, if dimension denotation is in effect, the operation expects input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
w : T2
+
The weight tensor that will be used in the convolutions; has size (M x C/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the kernel shape will be (M x C/group x k1 x k2 x ... x kn), where (k1 x k2 x ... kn) is the dimension of the kernel. Optionally, if dimension denotation is in effect, the operation expects the weight tensor to arrive with the dimension denotation of [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL ...]. X.shape[1] == (W.shape[1] * group) == C (assuming zero based indices for the shape array). Or in other words FILTER_IN_CHANNEL should be equal to DATA_CHANNEL.
+
x_zero_point (optional) : T1
+
Zero point tensor for input 'x'. It's optional and default value is 0. It's a scalar, which means a per-tensor/layer quantization.
+
w_zero_point (optional) : T2
+
Zero point tensor for input 'w'. It's optional and default value is 0. It could be a scalar or a 1-D tensor, which means a per-tensor/layer or per output channel quantization. If it's a 1-D tensor, its number of elements should be equal to the number of output channels (M)
+
+ +#### Outputs + +
+
y : T3
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, and pad lengths.
+
+ +#### Type Constraints + +
+
T1 : tensor(int8), tensor(uint8)
+
Constrain input x and its zero point data type to 8-bit integer tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain input w and its zero point data type to 8-bit integer tensor.
+
T3 : tensor(int32)
+
Constrain output y data type to 32-bit integer tensor.
+
+ + +#### Examples + +
+with_padding + +```python + +x = np.array([2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.uint8).reshape((1, 1, 3, 3)) +x_zero_point = np.uint8(1) +w = np.array([1, 1, 1, 1]).astype(np.uint8).reshape((1, 1, 2, 2)) + +y = np.array([1, 3, 5, 3, 5, 12, 16, 9, 11, 24, 28, 15, 7, 15, 17, 9]).astype(np.int32).reshape((1, 1, 4, 4)) + +# ConvInteger with padding +convinteger_node_with_padding = onnx.helper.make_node('ConvInteger', + inputs=['x', 'w', 'x_zero_point'], + outputs=['y'], + pads=[1, 1, 1, 1],) + +expect(convinteger_node_with_padding, inputs=[x, w, x_zero_point], outputs=[y], + name='test_convinteger_with_padding') +``` + +
+ + +
+without_padding + +```python + +x = np.array([2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.uint8).reshape((1, 1, 3, 3)) +x_zero_point = np.uint8(1) +w = np.array([1, 1, 1, 1]).astype(np.uint8).reshape((1, 1, 2, 2)) + +y = np.array([12, 16, 24, 28]).astype(np.int32).reshape(1, 1, 2, 2) + +# ConvInteger without padding +convinteger_node = onnx.helper.make_node('ConvInteger', + inputs=['x', 'w', 'x_zero_point'], + outputs=['y']) + +expect(convinteger_node, inputs=[x, w, x_zero_point], outputs=[y], + name='test_convinteger_without_padding') +``` + +
+ + +### **ConvTranspose** + + The convolution transpose operator consumes an input tensor and a filter, + and computes the output. + + If the pads parameter is provided the shape of the output is calculated via the following equation: + + output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i] + + output_shape can also be explicitly specified in which case pads values are auto generated using these equations: + + total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] + If (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) + Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2). + + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = input_shape[i] * strides[i]` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter. If not present, the dilation defaults to 1 along each spatial axis.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input W.
+
output_padding : list of ints
+
Additional elements added to the side with higher coordinate indices in the output. Each padding value in "output_padding" must be less than the corresponding stride/dilation dimension. By default, this attribute is a zero vector. Note that this attribute doesn't directly affect the computed output values. It only controls the selection of the computed values, so changing this attribute only adds or removes output elements. If "output_shape" is explicitly provided, "output_padding" does not contribute additional size to "output_shape" but participates in the computation of the needed padding amount. This is also called adjs or adjustment in some frameworks.
+
output_shape : list of ints
+
The shape of the output can be explicitly set which will cause pads values to be auto generated. If output_shape is specified pads values are ignored. See doc for details for equations to generate pads
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs (2 - 3) + +
+
X (differentiable) : T
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn)
+
W (differentiable) : T
+
The weight tensor that will be used in the convolutions; has size (C x M/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the weight shape will be (C x M/group x k1 x k2 x ... x kn), where (k1 x k2 x ... x kn) is the dimension of the kernel. The number of channels in the output should be equal to W.shape[1] * group (assuming zero based indices of the shape array)
+
B (optional, differentiable) : T
+
Optional 1D bias to be added to the convolution, has size of M.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, pad lengths and group count. The number of channels in the output should be equal to W.shape[1] * group (assuming zero based indices of the shape array)
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+convtranspose + +```python +x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + +W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"]) + +y = np.array([[[[0., 1., 3., 3., 2.], # (1, 2, 5, 5) + [3., 8., 15., 12., 7.], + [9., 21., 36., 27., 15.], + [9., 20., 33., 24., 13.], + [6., 13., 21., 15., 8.]], + + [[0., 1., 3., 3., 2.], + [3., 8., 15., 12., 7.], + [9., 21., 36., 27., 15.], + [9., 20., 33., 24., 13.], + [6., 13., 21., 15., 8.]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose') +``` + +
+ + +
+convtranspose_1d + +```python +x = np.array([[[0., 1., 2.]]]).astype(np.float32) # (1, 1, 3) + +W = np.array([[[1., 1., 1.], # (1, 2, 3) + [1., 1., 1.]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"]) + +y = np.array([[[0., 1., 3., 3., 2.], # (1, 2, 5) + [0., 1., 3., 3., 2.]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_1d') +``` + +
+ + +
+convtranspose_3d + +```python +x = np.array([[[[[0., 1., 2., 3., 4.], # (1, 1, 3, 4, 5) + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.]], + [[20., 21., 22., 23., 24.], + [25., 26., 27., 28., 29.], + [30., 31., 32., 33., 34.], + [35., 36., 37., 38., 39.]], + [[40., 41., 42., 43., 44.], + [45., 46., 47., 48., 49.], + [50., 51., 52., 53., 54.], + [55., 56., 57., 58., 59.]]]]]).astype(np.float32) + +W = np.array([[[[[1., 1., 1.], # (1, 2, 3, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]], + [[[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"]) + +y = np.array([[[[[0., 1., 3., 6., 9., 7., 4.], # (1, 2, 5, 6, 7) + [5., 12., 21., 27., 33., 24., 13.], + [15., 33., 54., 63., 72., 51., 27.], + [30., 63., 99., 108., 117., 81., 42.], + [25., 52., 81., 87., 93., 64., 33.], + [15., 31., 48., 51., 54., 37., 19.]], + + [[20., 42., 66., 72., 78., 54., 28.], + [50., 104., 162., 174., 186., 128., 66.], + [90., 186., 288., 306., 324., 222., 114.], + [120., 246., 378., 396., 414., 282., 144.], + [90., 184., 282., 294., 306., 208., 106.], + [50., 102., 156., 162., 168., 114., 58.]], + + [[60., 123., 189., 198., 207., 141., 72.], + [135., 276., 423., 441., 459., 312., 159.], + [225., 459., 702., 729., 756., 513., 261.], + [270., 549., 837., 864., 891., 603., 306.], + [195., 396., 603., 621., 639., 432., 219.], + [105., 213., 324., 333., 342., 231., 117.]], + + [[60., 122., 186., 192., 198., 134., 68.], + [130., 264., 402., 414., 426., 288., 146.], + [210., 426., 648., 666., 684., 462., 234.], + [240., 486., 738., 756., 774., 522., 264.], + [170., 344., 522., 534., 546., 368., 186.], + [90., 182., 276., 282., 288., 194., 98.]], + + [[40., 81., 123., 126., 129., 87., 44.], + [85., 172., 261., 267., 273., 184., 93.], + [135., 273., 414., 423., 432., 291., 147.], + [150., 303., 459., 468., 477., 321., 162.], + [105., 212., 321., 327., 333., 224., 113.], + [55., 111., 168., 171., 174., 117., 59.]]], + + [[[0., 1., 3., 6., 9., 7., 4.], + [5., 12., 21., 27., 33., 24., 13.], + [15., 33., 54., 63., 72., 51., 27.], + [30., 63., 99., 108., 117., 81., 42.], + [25., 52., 81., 87., 93., 64., 33.], + [15., 31., 48., 51., 54., 37., 19.]], + + [[20., 42., 66., 72., 78., 54., 28.], + [50., 104., 162., 174., 186., 128., 66.], + [90., 186., 288., 306., 324., 222., 114.], + [120., 246., 378., 396., 414., 282., 144.], + [90., 184., 282., 294., 306., 208., 106.], + [50., 102., 156., 162., 168., 114., 58.]], + + [[60., 123., 189., 198., 207., 141., 72.], + [135., 276., 423., 441., 459., 312., 159.], + [225., 459., 702., 729., 756., 513., 261.], + [270., 549., 837., 864., 891., 603., 306.], + [195., 396., 603., 621., 639., 432., 219.], + [105., 213., 324., 333., 342., 231., 117.]], + + [[60., 122., 186., 192., 198., 134., 68.], + [130., 264., 402., 414., 426., 288., 146.], + [210., 426., 648., 666., 684., 462., 234.], + [240., 486., 738., 756., 774., 522., 264.], + [170., 344., 522., 534., 546., 368., 186.], + [90., 182., 276., 282., 288., 194., 98.]], + + [[40., 81., 123., 126., 129., 87., 44.], + [85., 172., 261., 267., 273., 184., 93.], + [135., 273., 414., 423., 432., 291., 147.], + [150., 303., 459., 468., 477., 321., 162.], + [105., 212., 321., 327., 333., 224., 113.], + [55., 111., 168., 171., 174., 117., 59.]]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_3d') +``` + +
+ + +
+convtranspose_attributes + +```python +x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + +W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +y = np.array([[[[0., 0., 1., 1., 3., 2., 2., 0.], # (1, 2, 10, 8) + [0., 0., 1., 1., 3., 2., 2., 0.], + [0., 0., 1., 1., 3., 2., 2., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [0., 0., 0., 0., 0., 0., 0., 0.]], + + [[0., 0., 1., 1., 3., 2., 2., 0.], + [0., 0., 1., 1., 3., 2., 2., 0.], + [0., 0., 1., 1., 3., 2., 2., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [0., 0., 0., 0., 0., 0., 0., 0.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], + strides=[3, 2], + output_shape=[10, 8]) +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_output_shape') + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], + strides=[3, 2], + output_padding=[1, 1]) +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_pad') + +node = onnx.helper.make_node( + 'ConvTranspose', ['X', 'W'], ['Y'], + name='test', + strides=[3, 2], + output_shape=[10, 8], + kernel_shape=[3, 3], + output_padding=[1, 1] +) +expect(node, inputs=[x, W], outputs=[y], + name='test_convtranspose_kernel_shape') +``` + +
+ + +
+convtranspose_autopad_same + +```python +x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + +W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], auto_pad="SAME_UPPER", strides=[2, 2]) + +y = np.array([[[[0., 0., 1., 1., 3., 2.], + [0., 0., 1., 1., 3., 2.], + [3., 3., 8., 5., 12., 7.], + [3., 3., 7., 4., 9., 5.], + [9., 9., 20., 11., 24., 13.], + [6., 6., 13., 7., 15., 8.]], + + [[0., 0., 1., 1., 3., 2.], + [0., 0., 1., 1., 3., 2.], + [3., 3., 8., 5., 12., 7.], + [3., 3., 7., 4., 9., 5.], + [9., 9., 20., 11., 24., 13.], + [6., 6., 13., 7., 15., 8.]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_autopad_same') +``` + +
+ + +
+convtranspose_dilations + +```python +x = np.array([[[[3., 8., 1.], # (1, 1, 3, 3) + [9., 5., 7.], + [3., 2., 6.]]]]).astype(np.float32) +W = np.array([[[[7., 2.], # (1, 1, 2, 2) + [1., 9.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], dilations=[2, 2]) + +y = np.array([[[[21., 56., 13., 16., 2.], # [1, 1, 5, 5] + [63., 35., 67., 10., 14.], + [24., 22., 76., 76., 21.], + [9., 5., 88., 45., 63.], + [3., 2., 33., 18., 54.]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_dilations') +``` + +
+ + +
+convtranspose_pads + +```python +x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + +W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], + strides=[3, 2], + pads=[1, 2, 1, 2]) + +y = np.array([[[[1., 1., 3.], # (1, 2, 7, 3) + [1., 1., 3.], + [7., 4., 9.], + [7., 4., 9.], + [7., 4., 9.], + [13., 7., 15.], + [13., 7., 15.]], + + [[1., 1., 3.], + [1., 1., 3.], + [7., 4., 9.], + [7., 4., 9.], + [7., 4., 9.], + [13., 7., 15.], + [13., 7., 15.]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_pads') +``` + +
+ + +### **Cos** + + Calculates the cosine of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The cosine of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+cos + +```python +node = onnx.helper.make_node( + 'Cos', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.cos(x) +expect(node, inputs=[x], outputs=[y], + name='test_cos_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.cos(x) +expect(node, inputs=[x], outputs=[y], + name='test_cos') +``` + +
+ + +### **Cosh** + + Calculates the hyperbolic cosine of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic cosine values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+cosh + +```python +node = onnx.helper.make_node( + 'Cosh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.cosh(x) # expected output [1.54308069, 1., 1.54308069] +expect(node, inputs=[x], outputs=[y], + name='test_cosh_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.cosh(x) +expect(node, inputs=[x], outputs=[y], + name='test_cosh') +``` + +
+ + +### **CumSum** + + Performs cumulative sum of the input elements along the given axis. + By default, it will do the sum inclusively meaning the first element is copied as is. + Through an `exclusive` attribute, this behavior can change to exclude the first element. + It can also perform summation in the opposite direction of the axis. For that, set `reverse` attribute to 1. + + Example: + ``` + input_x = [1, 2, 3] + axis=0 + output = [1, 3, 6] + exclusive=1 + output = [0, 1, 3] + exclusive=0 + reverse=1 + output = [6, 5, 3] + exclusive=1 + reverse=1 + output = [5, 3, 0] + ``` + + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 11 + +#### Attributes + +
+
exclusive : int (default is 0)
+
If set to 1 will return exclusive sum in which the top element is not included. In other terms, if set to 1, the j-th output element would be the sum of the first (j-1) elements. Otherwise, it would be the sum of the first j elements.
+
reverse : int (default is 0)
+
If set to 1 will perform the sums in reverse direction.
+
+ +#### Inputs + +
+
x (differentiable) : T
+
An input tensor that is to be processed.
+
axis (non-differentiable) : T2
+
A 0-D tensor. Must be in the range [-rank(x), rank(x)-1]. Negative value means counting dimensions from the back.
+
+ +#### Outputs + +
+
y (differentiable) : T
+
Output tensor of the same type as 'x' with cumulative sums of the x's elements
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
T2 : tensor(int32), tensor(int64)
+
axis tensor can be int32 or int64 only
+
+ + +#### Examples + +
+cumsum_1d + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'] +) +x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) +axis = np.int32(0) +y = np.array([1., 3., 6., 10., 15.]).astype(np.float64) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d') +``` + +
+ + +
+cumsum_1d_exclusive + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + exclusive=1 +) +x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) +axis = np.int32(0) +y = np.array([0., 1., 3., 6., 10.]).astype(np.float64) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d_exclusive') +``` + +
+ + +
+cumsum_1d_reverse + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + reverse=1 +) +x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) +axis = np.int32(0) +y = np.array([15., 14., 12., 9., 5.]).astype(np.float64) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d_reverse') +``` + +
+ + +
+cumsum_1d_reverse_exclusive + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + reverse=1, + exclusive=1 +) +x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) +axis = np.int32(0) +y = np.array([14., 12., 9., 5., 0.]).astype(np.float64) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d_reverse_exclusive') +``` + +
+ + +
+cumsum_2d_axis_0 + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], +) +x = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float64).reshape((2, 3)) +axis = np.int32(0) +y = np.array([1., 2., 3., 5., 7., 9.]).astype(np.float64).reshape((2, 3)) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_2d_axis_0') +``` + +
+ + +
+cumsum_2d_axis_1 + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], +) +x = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float64).reshape((2, 3)) +axis = np.int32(1) +y = np.array([1., 3., 6., 4., 9., 15.]).astype(np.float64).reshape((2, 3)) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_2d_axis_1') +``` + +
+ + +
+cumsum_2d_negative_axis + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], +) +x = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float64).reshape((2, 3)) +axis = np.int32(-1) +y = np.array([1., 3., 6., 4., 9., 15.]).astype(np.float64).reshape((2, 3)) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_2d_negative_axis') +``` + +
+ + +### **DepthToSpace** + + DepthToSpace rearranges (permutes) data from depth into blocks of spatial data. + This is the reverse transformation of SpaceToDepth. More specifically, this op outputs a copy of + the input tensor where values from the depth dimension are moved in spatial blocks to the height + and width dimensions. By default, `mode` = `DCR`. + In the DCR mode, elements along the depth dimension from the input tensor are rearranged in the + following order: depth, column, and then row. The output y is computed from the input x as below: + + b, c, h, w = x.shape + + tmp = np.reshape(x, [b, blocksize, blocksize, c // (blocksize**2), h, w]) + + tmp = np.transpose(tmp, [0, 3, 4, 1, 5, 2]) + + y = np.reshape(tmp, [b, c // (blocksize**2), h * blocksize, w * blocksize]) + + + In the CRD mode, elements along the depth dimension from the input tensor are rearranged in the + following order: column, row, and the depth. The output y is computed from the input x as below: + + b, c, h, w = x.shape + + tmp = np.reshape(x, [b, c // (blocksize ** 2), blocksize, blocksize, h, w]) + + tmp = np.transpose(tmp, [0, 1, 4, 2, 5, 3]) + + y = np.reshape(tmp, [b, c // (blocksize ** 2), h * blocksize, w * blocksize]) + + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
blocksize : int (required)
+
Blocks of [blocksize, blocksize] are moved.
+
mode : string (default is DCR)
+
DCR (default) for depth-column-row order re-arrangement. Use CRD for column-row-depth order.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Input tensor of [N,C,H,W], where N is the batch axis, C is the channel or depth, H is the height and W is the width.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor of [N, C/(blocksize * blocksize), H * blocksize, W * blocksize].
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+crd_mode_example + +```python +node = onnx.helper.make_node( + 'DepthToSpace', + inputs=['x'], + outputs=['y'], + blocksize=2, + mode='CRD' +) + +# (1, 8, 2, 3) input tensor +x = np.array([[[[0., 1., 2.], + [3., 4., 5.]], + [[9., 10., 11.], + [12., 13., 14.]], + [[18., 19., 20.], + [21., 22., 23.]], + [[27., 28., 29.], + [30., 31., 32.]], + [[36., 37., 38.], + [39., 40., 41.]], + [[45., 46., 47.], + [48., 49., 50.]], + [[54., 55., 56.], + [57., 58., 59.]], + [[63., 64., 65.], + [66., 67., 68.]]]]).astype(np.float32) + +# (1, 2, 4, 6) output tensor +y = np.array([[[[0., 9., 1., 10., 2., 11.], + [18., 27., 19., 28., 20., 29.], + [3., 12., 4., 13., 5., 14.], + [21., 30., 22., 31., 23., 32.]], + [[36., 45., 37., 46., 38., 47.], + [54., 63., 55., 64., 56., 65.], + [39., 48., 40., 49., 41., 50.], + [57., 66., 58., 67., 59., 68.]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_depthtospace_crd_mode_example') +``` + +
+ + +
+default_mode_example + +```python +node = onnx.helper.make_node( + 'DepthToSpace', + inputs=['x'], + outputs=['y'], + blocksize=2, + mode='DCR' +) + +# (1, 8, 2, 3) input tensor +x = np.array([[[[0., 1., 2.], + [3., 4., 5.]], + [[9., 10., 11.], + [12., 13., 14.]], + [[18., 19., 20.], + [21., 22., 23.]], + [[27., 28., 29.], + [30., 31., 32.]], + [[36., 37., 38.], + [39., 40., 41.]], + [[45., 46., 47.], + [48., 49., 50.]], + [[54., 55., 56.], + [57., 58., 59.]], + [[63., 64., 65.], + [66., 67., 68.]]]]).astype(np.float32) + +# (1, 2, 4, 6) output tensor +y = np.array([[[[0., 18., 1., 19., 2., 20.], + [36., 54., 37., 55., 38., 56.], + [3., 21., 4., 22., 5., 23.], + [39., 57., 40., 58., 41., 59.]], + [[9., 27., 10., 28., 11., 29.], + [45., 63., 46., 64., 47., 65.], + [12., 30., 13., 31., 14., 32.], + [48., 66., 49., 67., 50., 68.]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_depthtospace_example') +``` + +
+ + +### **DequantizeLinear** + + The linear dequantization operator. It consumes a quantized tensor, a scale, and a zero point to compute the full precision tensor. + The dequantization formula is y = (x - x_zero_point) * x_scale. 'x_scale' and 'x_zero_point' must have same shape, and can be either a scalar + for per-tensor / per layer quantization, or a 1-D tensor for per-axis quantization. + 'x_zero_point' and 'x' must have same type. 'x' and 'y' must have same shape. In the case of dequantizing int32, + there's no zero point (zero point is supposed to be 0). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 10 + +#### Attributes + +
+
axis : int (default is 1)
+
(Optional) The axis of the dequantizing dimension of the input tensor. Ignored for per-tensor quantization. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
+ +#### Inputs (2 - 3) + +
+
x : T
+
N-D quantized input tensor to be de-quantized.
+
x_scale : tensor(float)
+
Scale for input 'x'. It can be a scalar, which means a per-tensor/layer dequantization, or a 1-D tensor for per-axis dequantization.
+
x_zero_point (optional) : T
+
Zero point for input 'x'. Shape must match x_scale. It's optional. Zero point is 0 when it's not specified.
+
+ +#### Outputs + +
+
y : tensor(float)
+
N-D full precision output tensor. It has same shape as input 'x'.
+
+ +#### Type Constraints + +
+
T : tensor(int8), tensor(uint8), tensor(int32)
+
Constrain 'x_zero_point' and 'x' to 8-bit/32-bit integer tensor.
+
+ + +#### Examples + +
+axis + +```python +node = onnx.helper.make_node('DequantizeLinear', + inputs=['x', 'x_scale', 'x_zero_point'], + outputs=['y'],) + +# 1-D tensor zero point and scale of size equal to axis 1 of the input tensor +x = np.array([[[[3, 89], + [34, 200], + [74, 59]], + + [[5, 24], + [24, 87], + [32, 13]], + + [[245, 99], + [4, 142], + [121, 102]], ], ], dtype=np.uint8) +x_scale = np.array([2, 4, 5], dtype=np.float32) +x_zero_point = np.array([84, 24, 196], dtype=np.uint8) +y = (x.astype(np.float32) - x_zero_point.reshape(1, 3, 1, 1).astype(np.float32)) * x_scale.reshape(1, 3, 1, 1) + +expect(node, inputs=[x, x_scale, x_zero_point], outputs=[y], + name='test_dequantizelinear_axis') +``` + +
+ + +
+dequantizelinear + +```python +node = onnx.helper.make_node('DequantizeLinear', + inputs=['x', 'x_scale', 'x_zero_point'], + outputs=['y'],) + +# scalar zero point and scale +x = np.array([0, 3, 128, 255]).astype(np.uint8) +x_scale = np.float32(2) +x_zero_point = np.uint8(128) +y = np.array([-256, -250, 0, 254], dtype=np.float32) + +expect(node, inputs=[x, x_scale, x_zero_point], outputs=[y], + name='test_dequantizelinear') +``` + +
+ + +### **Det** + + Det calculates determinant of a square matrix or batches of square matrices. + Det takes one input tensor of shape `[*, M, M]`, where `*` is zero or more batch dimensions, + and the inner-most 2 dimensions form square matrices. + The output is a tensor of shape `[*]`, containing the determinants of all input submatrices. + e.g., When the input is 2-D, the output is a scalar(shape is empty: `[]`). + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to floating-point tensors.
+
+ + +#### Examples + +
+2d + +```python +node = onnx.helper.make_node( + 'Det', + inputs=['x'], + outputs=['y'], +) + +x = np.arange(4).reshape(2, 2).astype(np.float32) +y = np.linalg.det(x) # expect -2 +expect(node, inputs=[x], outputs=[y], + name='test_det_2d') +``` + +
+ + +
+nd + +```python +node = onnx.helper.make_node( + 'Det', + inputs=['x'], + outputs=['y'], +) + +x = np.array([[[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]]]).astype(np.float32) +y = np.linalg.det(x) # expect array([-2., -3., -8.]) +expect(node, inputs=[x], outputs=[y], + name='test_det_nd') +``` + +
+ + +### **Div** + + Performs element-wise binary division (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 7, 13 + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+div + +```python +node = onnx.helper.make_node( + 'Div', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([3, 4]).astype(np.float32) +y = np.array([1, 2]).astype(np.float32) +z = x / y # expected output [3., 2.] +expect(node, inputs=[x, y], outputs=[z], + name='test_div_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.rand(3, 4, 5).astype(np.float32) + 1.0 +z = x / y +expect(node, inputs=[x, y], outputs=[z], + name='test_div') + +x = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) +y = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) + 1 +z = x // y +expect(node, inputs=[x, y], outputs=[z], + name='test_div_uint8') +``` + +
+ + +
+div_broadcast + +```python +node = onnx.helper.make_node( + 'Div', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.rand(5).astype(np.float32) + 1.0 +z = x / y +expect(node, inputs=[x, y], outputs=[z], + name='test_div_bcast') +``` + +
+ + +### **Dropout** + + Dropout takes an input floating-point tensor, an optional input ratio (floating-point scalar) and an optional input training_mode (boolean scalar). It produces two tensor outputs, + output (floating-point tensor) and mask (optional `Tensor`). If `training_mode` is true then the output Y will be a random dropout; + Note that this Dropout scales the masked input data by the following equation, so to convert the trained model into inference mode, + the user can simply not pass `training_mode` input or set it to false. + ``` + output = scale * data * mask, + ``` + where + ``` + scale = 1. / (1. - ratio). + ``` + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 7, 10, 12 + +#### Attributes + +
+
seed : int
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs (1 - 3) + +
+
data (differentiable) : T
+
The input data as Tensor.
+
ratio (optional, non-differentiable) : T1
+
The ratio of random dropout, with value in [0, 1). If this input was not set, or if it was set to 0, the output would be a simple copy of the input. If it's non-zero, output will be a random dropout of the scaled input, which is typically the case during training. It is an optional value, if not specified it will default to 0.5.
+
training_mode (optional, non-differentiable) : T2
+
If set to true then it indicates dropout is being used for training. It is an optional value hence unless specified explicitly, it is false. If it is false, ratio is ignored and the operation mimics inference mode where nothing will be dropped from the input data and if mask is requested as output it will contain all ones.
+
+ +#### Outputs (1 - 2) + +
+
output (differentiable) : T
+
The output.
+
mask (optional, non-differentiable) : T2
+
The output mask.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input 'ratio' types to float tensors.
+
T2 : tensor(bool)
+
Constrain output 'mask' types to boolean tensors.
+
+ + +#### Examples + +
+default + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = dropout(x) +expect(node, inputs=[x], outputs=[y], name='test_dropout_default') +``` + +
+ + +
+default_mask + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y', 'z'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y, z = dropout(x, return_mask=True) +expect(node, inputs=[x], outputs=[y, z], name='test_dropout_default_mask') +``` + +
+ + +
+default_mask_ratio + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r'], + outputs=['y', 'z'], + seed=seed +) + +r = np.float32(0.1) +x = np.random.randn(3, 4, 5).astype(np.float32) +y, z = dropout(x, r, return_mask=True) +expect(node, inputs=[x, r], outputs=[y, z], name='test_dropout_default_mask_ratio') +``` + +
+ + +
+default_old + +```python +node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = x +expect(node, inputs=[x], outputs=[y], + name='test_dropout_default_old', opset_imports=[helper.make_opsetid("", 11)]) +``` + +
+ + +
+default_ratio + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r'], + outputs=['y'], + seed=seed +) + +r = np.float32(0.1) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = dropout(x, r) +expect(node, inputs=[x, r], outputs=[y], name='test_dropout_default_ratio') +``` + +
+ + +
+random_old + +```python +node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y'], + ratio=.2, +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = x +expect(node, inputs=[x], outputs=[y], + name='test_dropout_random_old', opset_imports=[helper.make_opsetid("", 11)]) +``` + +
+ + +
+training + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.75) +t = np.bool_(True) +y = dropout(x, r, training_mode=t) +expect(node, inputs=[x, r, t], outputs=[y], name='test_training_dropout') +``` + +
+ + +
+training_default + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.5) +t = np.bool_(True) +y = dropout(x, r, training_mode=t) +expect(node, inputs=[x, r, t], outputs=[y], name='test_training_dropout_default') +``` + +
+ + +
+training_default_ratio_mask + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y', 'z'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.5) +t = np.bool_(True) +y, z = dropout(x, r, training_mode=t, return_mask=True) +expect(node, inputs=[x, r, t], outputs=[y, z], name='test_training_dropout_default_mask') +``` + +
+ + +
+training_default_zero_ratio + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.0) +t = np.bool_(True) +y = dropout(x, r, training_mode=t) +expect(node, inputs=[x, r, t], outputs=[y], name='test_training_dropout_zero_ratio') +``` + +
+ + +
+training_default_zero_ratio_mask + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y', 'z'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.0) +t = np.bool_(True) +y, z = dropout(x, r, training_mode=t, return_mask=True) +expect(node, inputs=[x, r, t], outputs=[y, z], name='test_training_dropout_zero_ratio_mask') +``` + +
+ + +
+training_ratio_mask + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y', 'z'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.75) +t = np.bool_(True) +y, z = dropout(x, r, training_mode=t, return_mask=True) +expect(node, inputs=[x, r, t], outputs=[y, z], name='test_training_dropout_mask') +``` + +
+ + +### **DynamicQuantizeLinear** + + A Function to fuse calculation for Scale, Zero Point and FP32->8Bit convertion of FP32 Input data. + Outputs Scale, ZeroPoint and Quantized Input for a given FP32 Input. + Scale is calculated as: + ``` + y_scale = (max(x) - min(x))/(qmax - qmin) + * where qmax and qmin are max and min values for quantization range .i.e [0, 255] in case of uint8 + * data range is adjusted to include 0. + ``` + Zero point is calculated as: + ``` + intermediate_zero_point = qmin - min(x)/y_scale + y_zero_point = cast(round(saturate(itermediate_zero_point))) + * where qmax and qmin are max and min values for quantization range .i.e [0, 255] in case of uint8 + * for saturation, it saturates to [0, 255] if it's uint8, or [-127, 127] if it's int8. Right now only uint8 is supported. + * rounding to nearest ties to even. + ``` + Data quantization formula is: + ``` + y = saturate (round (x / y_scale) + y_zero_point) + * for saturation, it saturates to [0, 255] if it's uint8, or [-127, 127] if it's int8. Right now only uint8 is supported. + * rounding to nearest ties to even. + ``` + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
x : T1
+
Input tensor
+
+ +#### Outputs + +
+
y : T2
+
Quantized output tensor
+
y_scale : tensor(float)
+
Output scale. It's a scalar, which means a per-tensor/layer quantization.
+
y_zero_point : T2
+
Output zero point. It's a scalar, which means a per-tensor/layer quantization.
+
+ +#### Type Constraints + +
+
T1 : tensor(float)
+
Constrain 'x' to float tensor.
+
T2 : tensor(uint8)
+
Constrain 'y_zero_point' and 'y' to 8-bit unsigned integer tensor.
+
+ + +#### Examples + +
+dynamicquantizelinear + +```python +node = onnx.helper.make_node('DynamicQuantizeLinear', + inputs=['x'], + outputs=['y', 'y_scale', 'y_zero_point'], +) + +# expected scale 0.0196078438 and zero point 153 +X = np.array([0, 2, -3, -2.5, 1.34, 0.5]).astype(np.float32) +x_min = np.minimum(0, np.min(X)) +x_max = np.maximum(0, np.max(X)) +Y_Scale = np.float32((x_max - x_min) / (255 - 0)) # uint8 -> [0, 255] +Y_ZeroPoint = np.clip(round((0 - x_min) / Y_Scale), 0, 255).astype(np.uint8) +Y = np.clip(np.round(X / Y_Scale) + Y_ZeroPoint, 0, 255).astype(np.uint8) + +expect(node, inputs=[X], outputs=[Y, Y_Scale, Y_ZeroPoint], + name='test_dynamicquantizelinear') + +# expected scale 0.0156862754 and zero point 255 +X = np.array([-1.0, -2.1, -1.3, -2.5, -3.34, -4.0]).astype(np.float32) +x_min = np.minimum(0, np.min(X)) +x_max = np.maximum(0, np.max(X)) +Y_Scale = np.float32((x_max - x_min) / (255 - 0)) # uint8 -> [0, 255] +Y_ZeroPoint = np.clip(round((0 - x_min) / Y_Scale), 0, 255).astype(np.uint8) +Y = np.clip(np.round(X / Y_Scale) + Y_ZeroPoint, 0, 255).astype(np.uint8) + +expect(node, inputs=[X], outputs=[Y, Y_Scale, Y_ZeroPoint], + name='test_dynamicquantizelinear_max_adjusted') + +X = np.array([1, 2.1, 1.3, 2.5, + 3.34, 4.0, 1.5, 2.6, + 3.9, 4.0, 3.0, 2.345]).astype(np.float32).reshape((3, 4)) + +# expected scale 0.0156862754 and zero point 0 +x_min = np.minimum(0, np.min(X)) +x_max = np.maximum(0, np.max(X)) +Y_Scale = np.float32((x_max - x_min) / (255 - 0)) # uint8 -> [0, 255] +Y_ZeroPoint = np.clip(round((0 - x_min) / Y_Scale), 0, 255).astype(np.uint8) +Y = np.clip(np.round(X / Y_Scale) + Y_ZeroPoint, 0, 255).astype(np.uint8) + +expect(node, inputs=[X], outputs=[Y, Y_Scale, Y_ZeroPoint], + name='test_dynamicquantizelinear_min_adjusted') +``` + +
+ + +### **Einsum** + + An einsum of the form ```term1, term2 -> output-term``` produces an output tensor using the following equation + + ```output[output-term] = reduce-sum( input1[term1] * input2[term] )``` + + where the reduce-sum performs a summation over all the indices occurring in the input terms (term1, term2) + that do not occur in the output-term. + + The Einsum operator evaluates algebraic tensor operations on a sequence of tensors, using the Einstein summation + convention. The equation string contains a comma-separated sequence of lower case letters. Each term corresponds to + an operand tensor, and the characters within the terms correspond to operands dimensions. + + This sequence may be followed by "->" to separate the left and right hand side of the equation. + If the equation contains "->" followed by the right-hand side, the explicit (not classical) form of the Einstein + summation is performed, and the right-hand side indices indicate output tensor dimensions. In other cases, + output indices are (implicitly) set to the alphabetically sorted sequence of indices appearing exactly once in the + equation. + + When a dimension character is repeated in the left-hand side, it represents summation along the dimension. + + The equation may contain ellipsis ("...") to enable broadcasting. Ellipsis must indicate a fixed number of dimensions. + Specifically, every occurrence of ellipsis in the equation must represent the same number of dimensions. + The right-hand side may contain exactly one ellipsis. In implicit mode, the ellipsis dimensions are set to the + beginning of the output. The equation string may contain space (U+0020) character. + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +#### Attributes + +
+
equation : string (required)
+
Einsum expression string.
+
+ +#### Inputs (1 - ∞) + +
+
Inputs (variadic, differentiable) : T
+
Operands
+
+ +#### Outputs + +
+
Output (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to all numerical tensor types.
+
+ + +#### Examples + +
+einsum_batch_diagonal + +```python +Eqn = '...ii ->...i' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x'], + outputs=['y'], + equation=Eqn +) + +X = np.random.randn(3, 5, 5) +Z = einsum_reference_implementation(Eqn, (X,)) + +expect(node, inputs=[X], outputs=[Z], name='test_einsum_batch_diagonal') +``` + +
+ + +
+einsum_batch_matmul + +```python +Eqn = 'bij, bjk -> bik' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x', 'y'], + outputs=['z'], + equation=Eqn +) + +X = np.random.randn(5, 2, 3) +Y = np.random.randn(5, 3, 4) +Z = einsum_reference_implementation(Eqn, (X, Y)) + +expect(node, inputs=[X, Y], outputs=[Z], name='test_einsum_batch_matmul') +``` + +
+ + +
+einsum_inner_prod + +```python +Eqn = 'i,i' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x', 'y'], + outputs=['z'], + equation=Eqn +) + +X = np.random.randn(5) +Y = np.random.randn(5) +Z = einsum_reference_implementation(Eqn, (X, Y)) + +expect(node, inputs=[X, Y], outputs=[Z], name='test_einsum_inner_prod') +``` + +
+ + +
+einsum_sum + +```python +Eqn = 'ij->i' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x'], + outputs=['y'], + equation=Eqn +) + +X = np.random.randn(3, 4) +Z = einsum_reference_implementation(Eqn, (X,)) + +expect(node, inputs=[X], outputs=[Z], name='test_einsum_sum') +``` + +
+ + +
+einsum_transpose + +```python +Eqn = 'ij->ji' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x'], + outputs=['y'], + equation=Eqn +) + +X = np.random.randn(3, 4) +Y = einsum_reference_implementation(Eqn, (X,)) + +expect(node, inputs=[X], outputs=[Y], name='test_einsum_transpose') +``` + +
+ + +### **Elu** + + Elu takes one input data (Tensor) and produces one output data + (Tensor) where the function `f(x) = alpha * (exp(x) - 1.) for x < + 0`, `f(x) = x for x >= 0`., is applied to the tensor elementwise. + + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Coefficient of ELU.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
1D input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
1D output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+elu + +```python +node = onnx.helper.make_node( + 'Elu', + inputs=['x'], + outputs=['y'], + alpha=2.0 +) + +x = np.array([-1, 0, 1]).astype(np.float32) +# expected output [-1.2642411, 0., 1.] +y = np.clip(x, 0, np.inf) + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 +expect(node, inputs=[x], outputs=[y], + name='test_elu_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 +expect(node, inputs=[x], outputs=[y], + name='test_elu') +``` + +
+ + +
+elu_default + +```python +default_alpha = 1.0 +node = onnx.helper.make_node( + 'Elu', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + (np.exp(np.clip(x, -np.inf, 0)) - 1) * default_alpha +expect(node, inputs=[x], outputs=[y], + name='test_elu_default') +``` + +
+ + +### **Equal** + + Returns the tensor resulted from performing the `equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 7, 11 + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ + +#### Examples + +
+equal + +```python +node = onnx.helper.make_node( + 'Equal', + inputs=['x', 'y'], + outputs=['z'], +) + +x = (np.random.randn(3, 4, 5) * 10).astype(np.int32) +y = (np.random.randn(3, 4, 5) * 10).astype(np.int32) +z = np.equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_equal') +``` + +
+ + +
+equal_broadcast + +```python +node = onnx.helper.make_node( + 'Equal', + inputs=['x', 'y'], + outputs=['z'], +) + +x = (np.random.randn(3, 4, 5) * 10).astype(np.int32) +y = (np.random.randn(5) * 10).astype(np.int32) +z = np.equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_equal_bcast') +``` + +
+ + +### **Erf** + + Computes the error function of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 9 + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The error function of the input tensor computed element-wise. It has the same shape and type of the input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+erf + +```python +node = onnx.helper.make_node( + 'Erf', + inputs=['x'], + outputs=['y'], +) + +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +y = np.vectorize(math.erf)(x).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_erf') +``` + +
+ + +### **Exp** + + Calculates the exponential of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The exponential of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+exp + +```python +node = onnx.helper.make_node( + 'Exp', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.exp(x) # expected output [0.36787945, 1., 2.71828175] +expect(node, inputs=[x], outputs=[y], + name='test_exp_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.exp(x) +expect(node, inputs=[x], outputs=[y], + name='test_exp') +``` + +
+ + +### **Expand** + + Broadcast the input tensor following the given shape and the broadcast rule. + The broadcast rule is similar to numpy.array(input) * numpy.ones(shape): + Dimensions are right alignment; + Two corresponding dimensions must have the same value, or one of them is equal to 1. + Also, this operator is similar to numpy.broadcast_to(input, shape), + but the major difference is numpy.broadcast_to() does not allow shape to be smaller than input.size(). + It is possible that the output.shape is not equal to shape, when some dimensions in shape is equal to 1, + or the shape.ndim < input.shape.ndim. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 8 + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
shape (non-differentiable) : tensor(int64)
+
A 1-D tensor indicates the shape you want to expand to, following the broadcast rule
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensors.
+
+ + +#### Examples + +
+dim_changed + +```python +node = onnx.helper.make_node( + 'Expand', + inputs=['data', 'new_shape'], + outputs=['expanded'], +) +shape = [3, 1] +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[1.], [2.], [3.]] +new_shape = [2, 1, 6] +expanded = data * np.ones(new_shape, dtype=np.float32) +#print(expanded) +#[[[1., 1., 1., 1., 1., 1.], +# [2., 2., 2., 2., 2., 2.], +# [3., 3., 3., 3., 3., 3.]], +# +# [[1., 1., 1., 1., 1., 1.], +# [2., 2., 2., 2., 2., 2.], +# [3., 3., 3., 3., 3., 3.]]] +new_shape = np.array(new_shape, dtype=np.int64) +expect(node, inputs=[data, new_shape], outputs=[expanded], + name='test_expand_dim_changed') +``` + +
+ + +
+dim_unchanged + +```python +node = onnx.helper.make_node( + 'Expand', + inputs=['data', 'new_shape'], + outputs=['expanded'], +) +shape = [3, 1] +new_shape = [3, 4] +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[1.], [2.], [3.]] +expanded = np.tile(data, 4) +#print(expanded) +#[[1., 1., 1., 1.], +# [2., 2., 2., 2.], +# [3., 3., 3., 3.]] +new_shape = np.array(new_shape, dtype=np.int64) +expect(node, inputs=[data, new_shape], outputs=[expanded], + name='test_expand_dim_unchanged') +``` + +
+ + +### **EyeLike** + + Generate a 2D tensor (matrix) with ones on the diagonal and zeros everywhere else. Only 2D + tensors are supported, i.e. input T1 must be of rank 2. The shape of the output tensor is the + same as the input tensor. The data type can be specified by the 'dtype' argument. If + 'dtype' is not specified, then the type of input tensor is used. By default, the main diagonal + is populated with ones, but attribute 'k' can be used to populate upper or lower diagonals. + The 'dtype' argument must be one of the data types specified in the 'DataType' enum field in the + TensorProto message and be valid as an output type. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
(Optional) The data type for the elements of the output tensor. If not specified,the data type of the input tensor T1 is used. If input tensor T1 is also notspecified, then type defaults to 'float'.
+
k : int (default is 0)
+
(Optional) Index of the diagonal to be populated with ones. Default is 0. If T2 is the output, this op sets T2[i, i+k] = 1. k = 0 populates the main diagonal, k > 0 populates an upper diagonal, and k < 0 populates a lower diagonal.
+
+ +#### Inputs + +
+
input : T1
+
2D input tensor to copy shape, and optionally, type information from.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor, same shape as input tensor T1.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain input types. Strings and complex are not supported.
+
T2 : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(bool)
+
Constrain output types. Strings and complex are not supported.
+
+ + +#### Examples + +
+populate_off_main_diagonal + +```python +shape = (4, 5) +off_diagonal_offset = 1 +node = onnx.helper.make_node( + 'EyeLike', + inputs=['x'], + outputs=['y'], + k=off_diagonal_offset, + dtype=onnx.TensorProto.FLOAT, +) + +x = np.random.randint(0, 100, size=shape, dtype=np.int32) +y = np.eye(shape[0], shape[1], k=off_diagonal_offset, dtype=np.float32) +expect(node, inputs=[x], outputs=[y], name='test_eyelike_populate_off_main_diagonal') +``` + +
+ + +
+with_dtype + +```python +shape = (3, 4) +node = onnx.helper.make_node( + 'EyeLike', + inputs=['x'], + outputs=['y'], + dtype=onnx.TensorProto.DOUBLE, +) + +x = np.random.randint(0, 100, size=shape, dtype=np.int32) +y = np.eye(shape[0], shape[1], dtype=np.float64) +expect(node, inputs=[x], outputs=[y], name='test_eyelike_with_dtype') +``` + +
+ + +
+without_dtype + +```python +shape = (4, 4) +node = onnx.helper.make_node( + 'EyeLike', + inputs=['x'], + outputs=['y'], +) + +x = np.random.randint(0, 100, size=shape, dtype=np.int32) +y = np.eye(shape[0], shape[1], dtype=np.int32) +expect(node, inputs=[x], outputs=[y], name='test_eyelike_without_dtype') +``` + +
+ + +### **Flatten** + + Flattens the input tensor into a 2D matrix. If input tensor has shape + (d_0, d_1, ... d_n) then the output will have shape + (d_0 X d_1 ... d_(axis-1), d_axis X d_(axis+1) ... X dn). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 9, 11 + +#### Attributes + +
+
axis : int (default is 1)
+
Indicate up to which input dimensions (exclusive) should be flattened to the outer dimension of the output. The value for axis must be in the range [-r, r], where r is the rank of the input tensor. Negative value means counting dimensions from the back. When axis = 0, the shape of the output tensor is (1, (d_0 X d_1 ... d_n), where the shape of the input tensor is (d_0, d_1, ... d_n).
+
+ +#### Inputs + +
+
input (differentiable) : T
+
A tensor of rank >= axis.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
A 2D tensor with the contents of the input tensor, with input dimensions up to axis flattened to the outer dimension of the output and remaining input dimensions flattened into the inner dimension of the output.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output to all tensor types.
+
+ + +#### Examples + +
+flatten + +```python +shape = (2, 3, 4, 5) +a = np.random.random_sample(shape).astype(np.float32) + +for i in range(len(shape)): + node = onnx.helper.make_node( + 'Flatten', + inputs=['a'], + outputs=['b'], + axis=i, + ) + + new_shape = (1, -1) if i == 0 else (np.prod(shape[0:i]).astype(int), -1) + b = np.reshape(a, new_shape) + expect(node, inputs=[a], outputs=[b], + name='test_flatten_axis' + str(i)) +``` + +
+ + +
+flatten_negative_axis + +```python +shape = (2, 3, 4, 5) +a = np.random.random_sample(shape).astype(np.float32) + +for i in range(-len(shape), 0): + node = onnx.helper.make_node( + 'Flatten', + inputs=['a'], + outputs=['b'], + axis=i, + ) + + new_shape = (np.prod(shape[0:i]).astype(int), -1) + b = np.reshape(a, new_shape) + expect(node, inputs=[a], outputs=[b], + name='test_flatten_negative_axis' + str(abs(i))) +``` + +
+ + +
+flatten_with_default_axis + +```python +node = onnx.helper.make_node( + 'Flatten', + inputs=['a'], + outputs=['b'], # Default value for axis: axis=1 +) + +shape = (5, 4, 3, 2) +a = np.random.random_sample(shape).astype(np.float32) +new_shape = (5, 24) +b = np.reshape(a, new_shape) +expect(node, inputs=[a], outputs=[b], + name='test_flatten_default_axis') +``` + +
+ + +### **Floor** + + Floor takes one input data (Tensor) and produces one output data + (Tensor) where the floor is, y = floor(x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
X (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+floor + +```python +node = onnx.helper.make_node( + 'Floor', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1.5, 1.2, 2]).astype(np.float32) +y = np.floor(x) # expected output [-2., 1., 2.] +expect(node, inputs=[x], outputs=[y], + name='test_floor_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.floor(x) +expect(node, inputs=[x], outputs=[y], + name='test_floor') +``` + +
+ + +### **GRU** + + Computes an one-layer GRU. This operator is usually supported via some custom + implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `z` - update gate + + `r` - reset gate + + `h` - hidden gate + + `t` - time step (t-1 means previous time step) + + `W[zrh]` - W parameter weight matrix for update, reset, and hidden gates + + `R[zrh]` - R recurrence weight matrix for update, reset, and hidden gates + + `Wb[zrh]` - W bias vectors for update, reset, and hidden gates + + `Rb[zrh]` - R bias vectors for update, reset, and hidden gates + + `WB[zrh]` - W parameter weight matrix for backward update, reset, and hidden gates + + `RB[zrh]` - R recurrence weight matrix for backward update, reset, and hidden gates + + `WBb[zrh]` - W bias vectors for backward update, reset, and hidden gates + + `RBb[zrh]` - R bias vectors for backward update, reset, and hidden gates + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Sigmoid, g=Tanh): + + - zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz) + + - rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr) + + - ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*(Rh^T) + Rbh + Wbh) # default, when linear_before_reset = 0 + + - ht = g(Xt*(Wh^T) + (rt (.) (Ht-1*(Rh^T) + Rbh)) + Wbh) # when linear_before_reset != 0 + + - Ht = (1 - zt) (.) ht + zt (.) Ht-1 + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 1, 3, 7 + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings
+
A list of 2 (or 4 if bidirectional) activation functions for update, reset, and hidden gates. The activation functions must be one of the activation functions specified above. Optional: See the equations for default if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
layout : int (default is 0)
+
The shape format of inputs X, initial_h and outputs Y, Y_h. If 0, the following shapes are expected: X.shape = [seq_length, batch_size, input_size], Y.shape = [seq_length, num_directions, batch_size, hidden_size], initial_h.shape = Y_h.shape = [num_directions, batch_size, hidden_size]. If 1, the following shapes are expected: X.shape = [batch_size, seq_length, input_size], Y.shape = [batch_size, seq_length, num_directions, hidden_size], initial_h.shape = Y_h.shape = [batch_size, num_directions, hidden_size].
+
linear_before_reset : int (default is 0)
+
When computing the output of the hidden gate, apply the linear transformation before multiplying by the output of the reset gate.
+
+ +#### Inputs (3 - 6) + +
+
X (differentiable) : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W (differentiable) : T
+
The weight tensor for the gates. Concatenation of `W[zrh]` and `WB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, input_size]`.
+
R (differentiable) : T
+
The recurrence weight tensor. Concatenation of `R[zrh]` and `RB[zrh]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 3*hidden_size, hidden_size]`.
+
B (optional, differentiable) : T
+
The bias tensor for the gates. Concatenation of `[Wb[zrh], Rb[zrh]]` and `[WBb[zrh], RBb[zrh]]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 6*hidden_size]`. Optional: If not specified - assumed to be 0
+
sequence_lens (optional, non-differentiable) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional, non-differentiable) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Outputs (0 - 2) + +
+
Y (optional, differentiable) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`.
+
Y_h (optional, differentiable) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ + +#### Examples + +
+batchwise + +```python +input = np.array([[[1., 2.]], [[3., 4.]], [[5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 6 +number_of_gates = 3 +weight_scale = 0.2 +layout = 1 + +node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R'], + outputs=['Y', 'Y_h'], + hidden_size=hidden_size, + layout=layout +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +gru = GRU_Helper(X=input, W=W, R=R, layout=layout) +Y, Y_h = gru.step() +expect(node, inputs=[input, W, R], outputs=[Y.astype(np.float32), Y_h.astype(np.float32)], name='test_gru_batchwise') +``` + +
+ + +
+defaults + +```python +input = np.array([[[1., 2.], [3., 4.], [5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 5 +weight_scale = 0.1 +number_of_gates = 3 + +node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +gru = GRU_Helper(X=input, W=W, R=R) +_, Y_h = gru.step() +expect(node, inputs=[input, W, R], outputs=[Y_h.astype(np.float32)], name='test_gru_defaults') +``` + +
+ + +
+initial_bias + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 3 +weight_scale = 0.1 +custom_bias = 0.1 +number_of_gates = 3 + +node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +# Adding custom bias +W_B = custom_bias * np.ones((1, number_of_gates * hidden_size)).astype(np.float32) +R_B = np.zeros((1, number_of_gates * hidden_size)).astype(np.float32) +B = np.concatenate((W_B, R_B), axis=1) + +gru = GRU_Helper(X=input, W=W, R=R, B=B) +_, Y_h = gru.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_gru_with_initial_bias') +``` + +
+ + +
+seq_length + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]], + [[10., 11., 12.], [13., 14., 15.], [16., 17., 18.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 5 +number_of_gates = 3 + +node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = np.random.randn(1, number_of_gates * hidden_size, input_size).astype(np.float32) +R = np.random.randn(1, number_of_gates * hidden_size, hidden_size).astype(np.float32) + +# Adding custom bias +W_B = np.random.randn(1, number_of_gates * hidden_size).astype(np.float32) +R_B = np.random.randn(1, number_of_gates * hidden_size).astype(np.float32) +B = np.concatenate((W_B, R_B), axis=1) + +gru = GRU_Helper(X=input, W=W, R=R, B=B) +_, Y_h = gru.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_gru_seq_length') +``` + +
+ + +### **Gather** + + Given `data` tensor of rank r >= 1, and `indices` tensor of rank q, gather + entries of the axis dimension of `data` (by default outer-most one as axis=0) indexed by `indices`, and concatenates + them in an output tensor of rank q + (r - 1). + + axis = 0 : + + Let + k = indices[i_{0}, ..., i_{q-1}] + Then + output[i_{0}, ..., i_{q-1}, j_{0}, ..., j_{r-2}] = input[k , j_{0}, ..., j_{r-2}] + + ``` + data = [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + indices = [ + [0, 1], + [1, 2], + ] + output = [ + [ + [1.0, 1.2], + [2.3, 3.4], + ], + [ + [2.3, 3.4], + [4.5, 5.7], + ], + ] + ``` + axis = 1 : + + Let + k = indices[i_{0}, ..., i_{q-1}] + Then + output[j_{0}, i_{0}, ..., i_{q-1}, j_{1}, ..., j_{r-2}] = input[j_{0}, k, j_{1}, ..., j_{r-2}] + + ``` + data = [ + [1.0, 1.2, 1.9], + [2.3, 3.4, 3.9], + [4.5, 5.7, 5.9], + ] + indices = [ + [0, 2], + ] + axis = 1, + output = [ + [[1.0, 1.9]], + [[2.3, 3.9]], + [[4.5, 5.9]], + ] + ``` + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to gather on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : Tind
+
Tensor of int32/int64 indices, of any rank q. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank q + (r - 1).
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ + +#### Examples + +
+gather_0 + +```python +node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=0, +) +data = np.random.randn(5, 4, 3, 2).astype(np.float32) +indices = np.array([0, 1, 3]) +y = np.take(data, indices, axis=0) + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_0') +``` + +
+ + +
+gather_1 + +```python +node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=1, +) +data = np.random.randn(5, 4, 3, 2).astype(np.float32) +indices = np.array([0, 1, 3]) +y = np.take(data, indices, axis=1) + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_1') +``` + +
+ + +
+gather_2d_indices + +```python +node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=1, +) +data = np.random.randn(3, 3).astype(np.float32) +indices = np.array([[0, 2]]) +y = np.take(data, indices, axis=1) + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_2d_indices') +``` + +
+ + +
+gather_negative_indices + +```python +node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=0, +) +data = np.arange(10).astype(np.float32) +indices = np.array([0, -9, -10]) +y = np.take(data, indices, axis=0) + +# print(y) +# [0. 1. 0.] + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_negative_indices') +``` + +
+ + +### **GatherElements** + + GatherElements takes two inputs `data` and `indices` of the same rank r >= 1 + and an optional attribute `axis` that identifies an axis of `data` + (by default, the outer-most axis, that is axis 0). It is an indexing operation + that produces its output by indexing into the input data tensor at index + positions determined by elements of the `indices` tensor. + Its output shape is the same as the shape of `indices` and consists of one value + (gathered from the `data`) for each element in `indices`. + + For instance, in the 3-D case (r = 3), the output produced is determined + by the following equations: + ``` + out[i][j][k] = input[index[i][j][k]][j][k] if axis = 0, + out[i][j][k] = input[i][index[i][j][k]][k] if axis = 1, + out[i][j][k] = input[i][j][index[i][j][k]] if axis = 2, + ``` + + This operator is also the inverse of ScatterElements. It is similar to Torch's gather operation. + + Example 1: + ``` + data = [ + [1, 2], + [3, 4], + ] + indices = [ + [0, 0], + [1, 0], + ] + axis = 1 + output = [ + [1, 1], + [4, 3], + ] + ``` + Example 2: + ``` + data = [ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], + ] + indices = [ + [1, 2, 0], + [2, 0, 0], + ] + axis = 0 + output = [ + [4, 8, 3], + [7, 2, 3], + ] + ``` + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 11 + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to gather on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : Tind
+
Tensor of int32/int64 indices, with the same rank r as the input. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of the same shape as indices.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ + +#### Examples + +
+gather_elements_0 + +```python +axis = 1 +node = onnx.helper.make_node( + 'GatherElements', + inputs=['data', 'indices'], + outputs=['y'], + axis=axis, +) +data = np.array([[1, 2], + [3, 4]], dtype=np.float32) +indices = np.array([[0, 0], + [1, 0]], dtype=np.int32) + +y = gather_elements(data, indices, axis) +# print(y) produces +# [[1, 1], +# [4, 3]] + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_elements_0') +``` + +
+ + +
+gather_elements_1 + +```python +axis = 0 +node = onnx.helper.make_node( + 'GatherElements', + inputs=['data', 'indices'], + outputs=['y'], + axis=axis, +) +data = np.array([[1, 2, 3], + [4, 5, 6], + [7, 8, 9]], dtype=np.float32) +indices = np.array([[1, 2, 0], + [2, 0, 0]], dtype=np.int32) + +y = gather_elements(data, indices, axis) +# print(y) produces +# [[4, 8, 3], +# [7, 2, 3]] + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_elements_1') +``` + +
+ + +
+gather_elements_negative_indices + +```python +axis = 0 +node = onnx.helper.make_node( + 'GatherElements', + inputs=['data', 'indices'], + outputs=['y'], + axis=axis, +) +data = np.array([[1, 2, 3], + [4, 5, 6], + [7, 8, 9]], dtype=np.float32) +indices = np.array([[-1, -2, 0], + [-2, 0, 0]], dtype=np.int32) + +y = gather_elements(data, indices, axis) +# print(y) produces +# [[7, 5, 3], +# [4, 2, 3]] + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_elements_negative_indices') +``` + +
+ + +### **GatherND** + + Given `data` tensor of rank `r` >= 1, `indices` tensor of rank `q` >= 1, and `batch_dims` integer `b`, this operator gathers + slices of `data` into an output tensor of rank `q + r - indices_shape[-1] - 1 - b`. + + `indices` is an q-dimensional integer tensor, best thought of as a `(q-1)`-dimensional tensor of index-tuples into `data`, + where each element defines a slice of `data` + + `batch_dims` (denoted as `b`) is an integer indicating the number of batch dimensions, i.e the leading `b` number of dimensions of + `data` tensor and `indices` are representing the batches, and the gather starts from the `b+1` dimension. + + Some salient points about the inputs' rank and shape: + + 1) r >= 1 and q >= 1 are to be honored. There is no dependency condition to be met between ranks `r` and `q` + + 2) The first `b` dimensions of the shape of `indices` tensor and `data` tensor must be equal. + + 3) b < min(q, r) is to be honored. + + 4) The `indices_shape[-1]` should have a value between 1 (inclusive) and rank `r-b` (inclusive) + + 5) All values in `indices` are expected to be within bounds [-s, s-1] along axis of size `s` (i.e.) `-data_shape[i] <= indices[...,i] <= data_shape[i] - 1`. + It is an error if any of the index values are out of bounds. + + The output is computed as follows: + + The output tensor is obtained by mapping each index-tuple in the `indices` tensor to the corresponding slice of the input `data`. + + 1) If `indices_shape[-1] > r-b` => error condition + + 2) If `indices_shape[-1] == r-b`, since the rank of `indices` is `q`, `indices` can be thought of as `N` `(q-b-1)`-dimensional tensors + containing 1-D tensors of dimension `r-b`, where `N` is an integer equals to the product of 1 and all the elements in the batch dimensions + of the indices_shape. Let us think of each such `r-b` ranked tensor as `indices_slice`. Each *scalar value* corresponding to `data[0:b-1,indices_slice]` + is filled into the corresponding location of the `(q-b-1)`-dimensional tensor to form the `output` tensor (Example 1 below) + + 3) If `indices_shape[-1] < r-b`, since the rank of `indices` is `q`, `indices` can be thought of as `N` `(q-b-1)`-dimensional tensor + containing 1-D tensors of dimension `< r-b`. Let us think of each such tensors as `indices_slice`. Each *tensor slice* corresponding + to `data[0:b-1, indices_slice , :]` is filled into the corresponding location of the `(q-b-1)`-dimensional tensor + to form the `output` tensor (Examples 2, 3, 4 and 5 below) + + This operator is the inverse of `ScatterND`. + + `Example 1` + + batch_dims = 0 + + data = [[0,1],[2,3]] # data_shape = [2, 2] + + indices = [[0,0],[1,1]] # indices_shape = [2, 2] + + output = [0,3] # output_shape = [2] + + `Example 2` + + batch_dims = 0 + + data = [[0,1],[2,3]] # data_shape = [2, 2] + + indices = [[1],[0]] # indices_shape = [2, 1] + + output = [[2,3],[0,1]] # output_shape = [2, 2] + + `Example 3` + + batch_dims = 0 + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[0,1],[1,0]] # indices_shape = [2, 2] + + output = [[2,3],[4,5]] # output_shape = [2, 2] + + `Example 4` + + batch_dims = 0 + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[[0,1]],[[1,0]]] # indices_shape = [2, 1, 2] + + output = [[[2,3]],[[4,5]]] # output_shape = [2, 1, 2] + + `Example 5` + + batch_dims = 1 + + data = [[[0,1],[2,3]],[[4,5],[6,7]]] # data_shape = [2, 2, 2] + + indices = [[1],[0]] # indices_shape = [2, 1] + + output = [[2,3],[4,5]] # output_shape = [2, 2] + + + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 11, 12 + +#### Attributes + +
+
batch_dims : int (default is 0)
+
The number of batch dimensions. The gather of indexing starts from dimension of data[batch_dims:]
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : tensor(int64)
+
Tensor of rank q >= 1. All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank q + r - indices_shape[-1] - 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
+ + +#### Examples + +
+float32 + +```python +node = onnx.helper.make_node( + 'GatherND', + inputs=['data', 'indices'], + outputs=['output'], +) + +data = np.array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]], dtype=np.float32) +indices = np.array([[[0, 1]], [[1, 0]]], dtype=np.int64) +output = gather_nd_impl(data, indices, 0) +expected_output = np.array([[[2, 3]], [[4, 5]]], dtype=np.float32) +assert (np.array_equal(output, expected_output)) +expect(node, inputs=[data, indices], outputs=[output], + name='test_gathernd_example_float32') +``` + +
+ + +
+int32 + +```python +node = onnx.helper.make_node( + 'GatherND', + inputs=['data', 'indices'], + outputs=['output'], +) + +data = np.array([[0, 1], [2, 3]], dtype=np.int32) +indices = np.array([[0, 0], [1, 1]], dtype=np.int64) +output = gather_nd_impl(data, indices, 0) +expected_output = np.array([0, 3], dtype=np.int32) +assert (np.array_equal(output, expected_output)) +expect(node, inputs=[data, indices], outputs=[output], + name='test_gathernd_example_int32') +``` + +
+ + +
+int32_batchdim_1 + +```python +node = onnx.helper.make_node( + 'GatherND', + inputs=['data', 'indices'], + outputs=['output'], + batch_dims=1, +) + +data = np.array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]], dtype=np.int32) +indices = np.array([[1], [0]], dtype=np.int64) +output = gather_nd_impl(data, indices, 1) +expected_output = np.array([[2, 3], [4, 5]], dtype=np.int32) +assert (np.array_equal(output, expected_output)) +expect(node, inputs=[data, indices], outputs=[output], + name='test_gathernd_example_int32_batch_dim1') +``` + +
+ + +### **Gemm** + + General Matrix multiplication: + https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 + + A' = transpose(A) if transA else A + + B' = transpose(B) if transB else B + + Compute Y = alpha * A' * B' + beta * C, where input tensor A has shape (M, K) or (K, M), + input tensor B has shape (K, N) or (N, K), input tensor C is broadcastable to shape (M, N), + and output tensor Y has shape (M, N). A will be transposed before doing the + computation if attribute transA is non-zero, same for B and transB. + This operator supports **unidirectional broadcasting** (tensor C should be unidirectional broadcastable to tensor A * B); for more details please check [the doc](Broadcasting.md). + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 7, 9, 11 + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Scalar multiplier for the product of input tensors A * B.
+
beta : float (default is 1.0)
+
Scalar multiplier for input tensor C.
+
transA : int (default is 0)
+
Whether A should be transposed
+
transB : int (default is 0)
+
Whether B should be transposed
+
+ +#### Inputs (2 - 3) + +
+
A (differentiable) : T
+
Input tensor A. The shape of A should be (M, K) if transA is 0, or (K, M) if transA is non-zero.
+
B (differentiable) : T
+
Input tensor B. The shape of B should be (K, N) if transB is 0, or (N, K) if transB is non-zero.
+
C (optional, differentiable) : T
+
Optional input tensor C. If not specified, the computation is done as if C is a scalar 0. The shape of C should be unidirectional broadcastable to (M, N).
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor of shape (M, N).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(bfloat16)
+
Constrain input and output types to float/int tensors.
+
+ + +#### Examples + +
+all_attributes + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + alpha=0.25, + beta=0.35, + transA=1, + transB=1 +) +a = np.random.ranf([4, 3]).astype(np.float32) +b = np.random.ranf([5, 4]).astype(np.float32) +c = np.random.ranf([1, 5]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, transA=1, transB=1, alpha=0.25, beta=0.35) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_all_attributes') +``` + +
+ + +
+alpha + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + alpha=0.5 +) +a = np.random.ranf([3, 5]).astype(np.float32) +b = np.random.ranf([5, 4]).astype(np.float32) +c = np.zeros([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, alpha=0.5) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_alpha') +``` + +
+ + +
+beta + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + beta=0.5 +) +a = np.random.ranf([2, 7]).astype(np.float32) +b = np.random.ranf([7, 4]).astype(np.float32) +c = np.random.ranf([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, beta=0.5) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_beta') +``` + +
+ + +
+default_matrix_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([3, 6]).astype(np.float32) +b = np.random.ranf([6, 4]).astype(np.float32) +c = np.random.ranf([3, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_matrix_bias') +``` + +
+ + +
+default_no_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b'], + outputs=['y'] +) +a = np.random.ranf([2, 10]).astype(np.float32) +b = np.random.ranf([10, 3]).astype(np.float32) +y = gemm_reference_implementation(a, b) +expect(node, inputs=[a, b], outputs=[y], + name='test_gemm_default_no_bias') +``` + +
+ + +
+default_scalar_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([2, 3]).astype(np.float32) +b = np.random.ranf([3, 4]).astype(np.float32) +c = np.array(3.14).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_scalar_bias') +``` + +
+ + +
+default_single_elem_vector_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([3, 7]).astype(np.float32) +b = np.random.ranf([7, 3]).astype(np.float32) +c = np.random.ranf([1]).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_single_elem_vector_bias') +``` + +
+ + +
+default_vector_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([2, 7]).astype(np.float32) +b = np.random.ranf([7, 4]).astype(np.float32) +c = np.random.ranf([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_vector_bias') +``` + +
+ + +
+default_zero_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([3, 5]).astype(np.float32) +b = np.random.ranf([5, 4]).astype(np.float32) +c = np.zeros([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_zero_bias') +``` + +
+ + +
+transposeA + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + transA=1 +) +a = np.random.ranf([6, 3]).astype(np.float32) +b = np.random.ranf([6, 4]).astype(np.float32) +c = np.zeros([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, transA=1) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_transposeA') +``` + +
+ + +
+transposeB + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + transB=1 +) +a = np.random.ranf([3, 6]).astype(np.float32) +b = np.random.ranf([4, 6]).astype(np.float32) +c = np.zeros([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, transB=1) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_transposeB') +``` + +
+ + +### **GlobalAveragePool** + + GlobalAveragePool consumes an input tensor X and applies average pooling across + the values in the same channel. This is equivalent to AveragePool with kernel size + equal to the spatial dimension of input tensor. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from pooling across the input tensor. The output tensor has the same rank as the input. The first two dimensions of output shape are the same as the input (N x C), while the other dimensions are all 1.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+globalaveragepool + +```python +node = onnx.helper.make_node( + 'GlobalAveragePool', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(1, 3, 5, 5).astype(np.float32) +y = np.mean(x, axis=tuple(range(2, np.ndim(x))), keepdims=True) +expect(node, inputs=[x], outputs=[y], name='test_globalaveragepool') +``` + +
+ + +
+globalaveragepool_precomputed + +```python + +node = onnx.helper.make_node( + 'GlobalAveragePool', + inputs=['x'], + outputs=['y'], +) +x = np.array([[[ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], +]]]).astype(np.float32) +y = np.array([[[[5]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], name='test_globalaveragepool_precomputed') +``` + +
+ + +### **GlobalLpPool** + + GlobalLpPool consumes an input tensor X and applies lp pool pooling across + the values in the same channel. This is equivalent to LpPool with kernel size + equal to the spatial dimension of input tensor. + +#### Version + +This version of the operator has been available since version 2 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
p : int (default is 2)
+
p value of the Lp norm used to pool over the input data.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from pooling across the input tensor. The output tensor has the same rank as the input. The first two dimensions of output shape are the same as the input (N x C), while the other dimensions are all 1.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +### **GlobalMaxPool** + + GlobalMaxPool consumes an input tensor X and applies max pooling across + the values in the same channel. This is equivalent to MaxPool with kernel size + equal to the spatial dimension of input tensor. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from pooling across the input tensor. The output tensor has the same rank as the input. The first two dimensions of output shape are the same as the input (N x C), while the other dimensions are all 1.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+globalmaxpool + +```python + +node = onnx.helper.make_node( + 'GlobalMaxPool', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(1, 3, 5, 5).astype(np.float32) +y = np.max(x, axis=tuple(range(2, np.ndim(x))), keepdims=True) +expect(node, inputs=[x], outputs=[y], name='test_globalmaxpool') +``` + +
+ + +
+globalmaxpool_precomputed + +```python + +node = onnx.helper.make_node( + 'GlobalMaxPool', + inputs=['x'], + outputs=['y'], +) +x = np.array([[[ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], +]]]).astype(np.float32) +y = np.array([[[[9]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], name='test_globalmaxpool_precomputed') +``` + +
+ + +### **Greater** + + Returns the tensor resulted from performing the `greater` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 7, 9 + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ + +#### Examples + +
+greater + +```python +node = onnx.helper.make_node( + 'Greater', + inputs=['x', 'y'], + outputs=['greater'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = np.greater(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_greater') +``` + +
+ + +
+greater + +```python +node = onnx.helper.make_node( + 'GreaterOrEqual', + inputs=['x', 'y'], + outputs=['greater_equal'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = np.greater_equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_greater_equal') +``` + +
+ + +
+greater_broadcast + +```python +node = onnx.helper.make_node( + 'Greater', + inputs=['x', 'y'], + outputs=['greater'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = np.greater(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_greater_bcast') +``` + +
+ + +
+greater_broadcast + +```python +node = onnx.helper.make_node( + 'GreaterOrEqual', + inputs=['x', 'y'], + outputs=['greater_equal'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = np.greater_equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_greater_equal_bcast') +``` + +
+ + +### **GreaterOrEqual** + + Returns the tensor resulted from performing the `greater_equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 12 + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ + +### **GridSample** + + Given an `input` and a flow-field `grid`, computes the `output` using `input` values and pixel locations from `grid`. + Currently, only spatial (4-D) inputs are supported. For `input` with shape (N, C, H, W) and `grid` with shape (N, H_out, W_out, 2), + the `output` will have shape (N, C, H_out, W_out). + For each output location `output[N, C, H_out, W_out]`, the size-2 vector `grid[N, H_out, W_out]` specifies `input` pixel locations `x` and `y`, + which are used to interpolate the output value `output[N, C, H_out, W_out]`. + + The GridSample operator is often used in doing grid generator and sampler in the [Spatial Transformer Networks](https://arxiv.org/abs/1506.02025). + See also in [torch.nn.functional.grid_sample](https://pytorch.org/docs/master/generated/torch.nn.functional.grid_sample.html#torch-nn-functional-grid-sample). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +#### Attributes + +
+
align_corners : int (default is 0)
+
If align_corners=1, the extrema (-1 and 1) are considered as referring to the center points of the input's corner pixels. If align_corners=0, they are instead considered as referring to the corner points of the input's corner pixels, making the sampling more resolution agnostic.
+
mode : string (default is bilinear)
+
Three interpolation modes: bilinear (default), nearest and bicubic.
+
padding_mode : string (default is zeros)
+
Support padding modes for outside grid values: `zeros`(default), `border`, `reflection`. zeros: use 0 for out-of-bound grid locations, border: use border values for out-of-bound grid locations, reflection: use values at locations reflected by the border for out-of-bound grid locations. If index 0 represents the margin pixel, the reflected value at index -1 will be the same as the value at index 1. For location far away from the border, it will keep being reflected until becoming in bound. If pixel location x = -3.5 reflects by border -1 and becomes x' = 1.5, then reflects by border 1 and becomes x'' = 0.5.
+
+ +#### Inputs + +
+
X (differentiable) : T1
+
4-D tensor of shape (N, C, H, W), where N is the batch size, C is the numbers of channels, H and W are the height and width of the input data.
+
grid (non-differentiable) : T1
+
Input offset, 4-D tensor of shape (N, H_out, W_out, 2), where H_out and W_out are the height and width of grid and output, Grid specifies the sampling pixel locations normalized by the input spatial dimensions. Therefore, it should have most values in the range of [-1, 1]. If grid has values outside the range of [-1, 1], the corresponding outputs will be handled as defined by padding_mode.
+
+ +#### Outputs + +
+
Y (differentiable) : T2
+
4-D tensor of shape (N, C, H_out, W_out).
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input types to all tensor types.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ + +#### Examples + +
+gridsample + +```python +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', + padding_mode='zeros', + align_corners=0, +) +# X shape, [N, C, H, W] - [1, 1, 4, 4] +X = np.array( + [ + [ + [ + [0., 1., 2., 3.], + [4., 5., 6., 7.], + [8., 9., 10., 11.], + [12., 13., 14., 15.] + ] + ] + ], + dtype=np.float32, +) +# Grid shape, [N, H_out, W_out, 2] - [1, 6, 6, 2] +Grid = np.array( + [ + [ + [ + [-1.0000, -1.0000], + [-0.6000, -1.0000], + [-0.2000, -1.0000], + [0.2000, -1.0000], + [0.6000, -1.0000], + [1.0000, -1.0000] + ], + [ + [-1.0000, -0.6000], + [-0.6000, -0.6000], + [-0.2000, -0.6000], + [0.2000, -0.6000], + [0.6000, -0.6000], + [1.0000, -0.6000] + ], + [ + [-1.0000, -0.2000], + [-0.6000, -0.2000], + [-0.2000, -0.2000], + [0.2000, -0.2000], + [0.6000, -0.2000], + [1.0000, -0.2000] + ], + [ + [-1.0000, 0.2000], + [-0.6000, 0.2000], + [-0.2000, 0.2000], + [0.2000, 0.2000], + [0.6000, 0.2000], + [1.0000, 0.2000] + ], + [ + [-1.0000, 0.6000], + [-0.6000, 0.6000], + [-0.2000, 0.6000], + [0.2000, 0.6000], + [0.6000, 0.6000], + [1.0000, 0.6000] + ], + [ + [-1.0000, 1.0000], + [-0.6000, 1.0000], + [-0.2000, 1.0000], + [0.2000, 1.0000], + [0.6000, 1.0000], + [1.0000, 1.0000] + ] + ] + ], + dtype=np.float32, +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 6, 6] +Y = np.array( + [ + [ + [ + [0.0000, 0.1500, 0.5500, 0.9500, 1.3500, 0.7500], + [0.6000, 1.5000, 2.3000, 3.1000, 3.9000, 2.1000], + [2.2000, 4.7000, 5.5000, 6.3000, 7.1000, 3.7000], + [3.8000, 7.9000, 8.7000, 9.5000, 10.3000, 5.3000], + [5.4000, 11.1000, 11.9000, 12.7000, 13.5000, 6.9000], + [3.0000, 6.1500, 6.5500, 6.9500, 7.3500, 3.7500] + ] + ] + ], + dtype=np.float32, +) +expect(node, inputs=[X, Grid], outputs=[Y], + name='test_gridsample') +``` + +
+ + +
+gridsample_mode_aligncorners + +```python +# X shape, [N, C, H, W] - [1, 1, 3, 2] +X = np.array( + [ + [ + [ + [0., 1.], + [2., 3.], + [4., 5.] + ] + ] + ], + dtype=np.float32, +) +# Grid shape, [N, H_out, W_out, 2] - [1, 2, 4, 2] +Grid = np.array( + [ + [ + [ + [-1.0000, -1.0000], + [-0.5000, -0.5000], + [-0.2000, -0.2000], + [0.0000, 0.0000] + ], + + [ + [0.0000, 0.0000], + [-0.2000, -0.2000], + [0.5000, 0.5000], + [1.0000, 1.0000] + ] + ] + ], + dtype=np.float32, +) + +# setting mode = 'bilinear', default align_corners = 0 +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_bilinear = np.array( + [ + [ + [ + [0.0000, 0.5000, 1.7000, 2.5000], + [2.5000, 1.7000, 4.5000, 1.2500] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_bilinear], + name='test_gridsample_bilinear') + +# setting mode = 'bilinear', align_corners = 1 +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', + align_corners=1, +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_align_corners = np.array( + [ + [ + [ + [0.0000, 1.2500, 2.0000, 2.5000], + [2.5000, 2.0000, 3.7500, 5.0000] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_align_corners], + name='test_gridsample_aligncorners_true') + +# setting mode = 'nearest' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='nearest', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_nearest = np.array( + [ + [ + [ + [0., 0., 2., 2.], + [2., 2., 5., 0.] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_nearest], + name='test_gridsample_nearest') + +# setting mode = 'bicubic' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bicubic', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_bicubic = np.array( + [ + [ + [ + [-0.1406, 0.3828, 1.7556, 2.9688], + [2.9688, 1.7556, 5.1445, 1.3906] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_bicubic], + name='test_gridsample_bicubic') +``` + +
+ + +
+gridsample_paddingmode + +```python +# X shape, [N, C, H, W] - [1, 1, 3, 2] +X = np.array( + [ + [ + [ + [0., 1.], + [2., 3.], + [4., 5.] + ] + ] + ], + dtype=np.float32, +) +# Grid shape, [N, H_out, W_out, 2] - [1, 2, 4, 2] +Grid = np.array( + [ + [ + [ + [-10.0000, -10.0000], + [-5.0000, -5.0000], + [-0.2000, -0.2000], + [10.0000, 10.0000] + ], + + [ + [10.0000, 10.0000], + [-0.2000, -0.2000], + [5.0000, 5.0000], + [10.0000, 10.0000] + ] + ] + ], + dtype=np.float32, +) + +# setting padding_mode = 'zeros' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + padding_mode='zeros', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_zeros = np.array( + [ + [ + [ + [0.0000, 0.0000, 1.7000, 0.0000], + [0.0000, 1.7000, 0.0000, 0.0000] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_zeros], + name='test_gridsample_zeros_padding') + +# setting padding_mode = 'border' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + padding_mode='border', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_border = np.array( + [ + [ + [ + [0.0000, 0.0000, 1.7000, 5.0000], + [5.0000, 1.7000, 5.0000, 5.0000] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_border], + name='test_gridsample_border_padding') + +# setting padding_mode = 'reflection' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + padding_mode='reflection', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_reflection = np.array( + [ + [ + [ + [2.5000, 0.0000, 1.7000, 2.5000], + [2.5000, 1.7000, 5.0000, 2.5000] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_reflection], + name='test_gridsample_reflection_padding') +``` + +
+ + +### **HardSigmoid** + + HardSigmoid takes one input data (Tensor) and produces one output data + (Tensor) where the HardSigmoid function, y = max(0, min(1, alpha * x + beta)), + is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
alpha : float (default is 0.2)
+
Value of alpha.
+
beta : float (default is 0.5)
+
Value of beta.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+hardsigmoid + +```python +node = onnx.helper.make_node( + 'HardSigmoid', + inputs=['x'], + outputs=['y'], + alpha=0.5, + beta=0.6 +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.clip(x * 0.5 + 0.6, 0, 1) # expected output [0.1, 0.6, 1.] +expect(node, inputs=[x], outputs=[y], + name='test_hardsigmoid_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x * 0.5 + 0.6, 0, 1) +expect(node, inputs=[x], outputs=[y], + name='test_hardsigmoid') +``` + +
+ + +
+hardsigmoid_default + +```python +default_alpha = 0.2 +default_beta = 0.5 +node = onnx.helper.make_node( + 'HardSigmoid', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x * default_alpha + default_beta, 0, 1) +expect(node, inputs=[x], outputs=[y], + name='test_hardsigmoid_default') +``` + +
+ + +### **HardSwish** + + HardSwish takes one input data (Tensor) and produces one output data (Tensor) where + the HardSwish function, y = x * max(0, min(1, alpha * x + beta)) = x * HardSigmoid(x), + where alpha = 1/6 and beta = 0.5, is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+hardswish + +```python +node = onnx.helper.make_node( + 'HardSwish', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = hardswish(x) + +expect(node, inputs=[x], outputs=[y], + name='test_hardswish') +``` + +
+ + +### **Hardmax** + + The operator computes the hardmax values for the given input: + + Hardmax(element in input, axis) = 1 if the element is the first maximum value along the specified axis, 0 otherwise + + The "axis" attribute indicates the dimension along which Hardmax + will be performed. The output tensor has the same shape + and contains the Hardmax values of the corresponding input. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axis : int (default is -1)
+
+Describes the dimension Hardmax will be performed on. +Negative value means counting dimensions +from the back. Accepted range is [-r, r-1] where r = rank(input). +
+
+ +#### Inputs + +
+
input (differentiable) : T
+
The input tensor of rank >= axis.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output values with the same shape as the input tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+hardmax + +```python +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], +) + +x = np.array([[3, 0, 1, 2], [2, 5, 1, 0], [0, 1, 3, 2], + [0, 1, 2, 3]]).astype(np.float32) +# expect result: +# [[1. 0. 0. 0.] +# [0. 1. 0. 0.] +# [0. 0. 1. 0.] +# [0. 0. 0. 1.]] +y = hardmax(x) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_example') + +# For multiple occurrences of the maximal values, the first occurrence is selected for one-hot output +x = np.array([[3, 3, 3, 1]]).astype(np.float32) +# expect result: +# [[1, 0, 0, 0]] +y = hardmax(x) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_one_hot') +``` + +
+ + +
+hardmax_axis + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=0, +) +y = hardmax(x, axis=0) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_axis_0') + +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=1, +) +y = hardmax(x, axis=1) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_axis_1') + +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=2, +) +y = hardmax(x, axis=2) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_axis_2') + +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=-1, +) +y = hardmax(x, axis=-1) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_negative_axis') + +# default axis is -1 +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_default_axis') +``` + +
+ + +### **Identity** + + Identity operator + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 1, 13, 14 + +#### Inputs + +
+
input (differentiable) : V
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : V
+
Tensor to copy input into.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128)), optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
Constrain input and output types to all tensor, sequence, and optional types.
+
+ + +#### Examples + +
+identity + +```python +node = onnx.helper.make_node( + 'Identity', + inputs=['x'], + outputs=['y'], +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +expect(node, inputs=[data], outputs=[data], + name='test_identity') +``` + +
+ + +
+identity_opt + +```python +ten_in_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) +seq_in_tp = onnx.helper.make_sequence_type_proto(ten_in_tp) +opt_in_tp = onnx.helper.make_optional_type_proto(seq_in_tp) + +identity_node = onnx.helper.make_node( + 'Identity', + inputs=['opt_in'], + outputs=['opt_out'] +) + +x = [np.array([1, 2, 3, 4, 5]).astype(np.float32)] + +expect(identity_node, inputs=[x], outputs=[x], name='test_identity_opt', + opset_imports=[onnx.helper.make_opsetid("", 16)], + input_type_protos=[opt_in_tp], + output_type_protos=[opt_in_tp]) +``` + +
+ + +
+sequence + +```python +node = onnx.helper.make_node( + 'Identity', + inputs=['x'], + outputs=['y'], +) + +data = [ + np.array([[[ + [1, 2], + [3, 4], + ]]], dtype=np.float32), + np.array([[[ + [2, 3], + [1, 5], + ]]], dtype=np.float32)] + +expect(node, inputs=[data], outputs=[data], name='test_identity_sequence') +``` + +
+ + +### **If** + + If conditional + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 1, 11, 13 + +#### Attributes + +
+
else_branch : graph (required)
+
Graph to run if condition is false. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the then_branch.
+
then_branch : graph (required)
+
Graph to run if condition is true. Has N outputs: values you wish to be live-out to the enclosing scope. The number of outputs must match the number of outputs in the else_branch.
+
+ +#### Inputs + +
+
cond : B
+
Condition for the if
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : V
+
Values that are live-out to the enclosing scope. The return values in the `then_branch` and `else_branch` must be of the same data type. The `then_branch` and `else_branch` may produce tensors with the same element type and different shapes. If corresponding outputs from the then-branch and the else-branch have static shapes S1 and S2, then the shape of the corresponding output variable of the if-node (if present) must be compatible with both S1 and S2 as it represents the union of both possible shapes.For example, if in a model file, the the first output of `then_branch` is typed float tensor with shape [2] and the first output of `else_branch` is another float tensor with shape [3], If's first output should have (a) no shape set, or (b) a shape of rank 1 with neither `dim_value` nor `dim_param` set, or (c) a shape of rank 1 with a unique `dim_param`. In contrast, the first output cannot have the shape [2] since [2] and [3] are not compatible.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(bfloat16)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128)), optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(bfloat16))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(bfloat16)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types
+
B : tensor(bool)
+
Only bool
+
+ + +#### Examples + +
+if + +```python +# Given a bool scalar input cond. +# return constant tensor x if cond is True, otherwise return constant tensor y. + +then_out = onnx.helper.make_tensor_value_info('then_out', onnx.TensorProto.FLOAT, [5]) +else_out = onnx.helper.make_tensor_value_info('else_out', onnx.TensorProto.FLOAT, [5]) + +x = np.array([1, 2, 3, 4, 5]).astype(np.float32) +y = np.array([5, 4, 3, 2, 1]).astype(np.float32) + +then_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['then_out'], + value=onnx.numpy_helper.from_array(x) +) + +else_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['else_out'], + value=onnx.numpy_helper.from_array(y) +) + +then_body = onnx.helper.make_graph( + [then_const_node], + 'then_body', + [], + [then_out] +) + +else_body = onnx.helper.make_graph( + [else_const_node], + 'else_body', + [], + [else_out] +) + +if_node = onnx.helper.make_node( + 'If', + inputs=['cond'], + outputs=['res'], + then_branch=then_body, + else_branch=else_body +) + +cond = np.array(1).astype(bool) +res = x if cond else y +expect(if_node, inputs=[cond], outputs=[res], name='test_if', + opset_imports=[onnx.helper.make_opsetid("", 11)]) +``` + +
+ + +
+if_optional + +```python +# Given a bool scalar input cond, return an empty optional sequence of +# tensor if True, return an optional sequence with value x +# (the input optional sequence) otherwise. + +ten_in_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) +seq_in_tp = onnx.helper.make_sequence_type_proto(ten_in_tp) + +then_out_tensor_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) +then_out_seq_tp = onnx.helper.make_sequence_type_proto(then_out_tensor_tp) +then_out_opt_tp = onnx.helper.make_optional_type_proto(then_out_seq_tp) +then_out = onnx.helper.make_value_info('optional_empty', then_out_opt_tp) + +else_out_tensor_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) +else_out_seq_tp = onnx.helper.make_sequence_type_proto(else_out_tensor_tp) +else_out_opt_tp = onnx.helper.make_optional_type_proto(else_out_seq_tp) +else_out = onnx.helper.make_value_info('else_opt', else_out_opt_tp) + +x = [np.array([1, 2, 3, 4, 5]).astype(np.float32)] +cond = np.array(0).astype(bool) +res = compute_if_outputs(x, cond) + +opt_empty_in = onnx.helper.make_node( + 'Optional', + inputs=[], + outputs=['optional_empty'], + type=seq_in_tp +) + +then_body = onnx.helper.make_graph( + [opt_empty_in], + 'then_body', + [], + [then_out] +) + +else_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.numpy_helper.from_array(x[0]) +) + +else_seq_node = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['x'], + outputs=['else_seq'] +) + +else_optional_seq_node = onnx.helper.make_node( + 'Optional', + inputs=['else_seq'], + outputs=['else_opt'] +) + +else_body = onnx.helper.make_graph( + [else_const_node, else_seq_node, else_optional_seq_node], + 'else_body', + [], + [else_out] +) + +if_node = onnx.helper.make_node( + 'If', + inputs=['cond'], + outputs=['sequence'], + then_branch=then_body, + else_branch=else_body +) + +expect(if_node, inputs=[cond], outputs=[res], name='test_if_opt', + output_type_protos=[else_out_opt_tp], + opset_imports=[onnx.helper.make_opsetid("", 16)]) +``` + +
+ + +
+if_seq + +```python +# Given a bool scalar input cond. +# return constant sequence x if cond is True, otherwise return constant sequence y. + +then_out = onnx.helper.make_tensor_sequence_value_info('then_out', onnx.TensorProto.FLOAT, shape=[5]) +else_out = onnx.helper.make_tensor_sequence_value_info('else_out', onnx.TensorProto.FLOAT, shape=[5]) + +x = [np.array([1, 2, 3, 4, 5]).astype(np.float32)] +y = [np.array([5, 4, 3, 2, 1]).astype(np.float32)] + +then_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.numpy_helper.from_array(x[0]) +) + +then_seq_node = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['x'], + outputs=['then_out'] +) + +else_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['y'], + value=onnx.numpy_helper.from_array(y[0]) +) + +else_seq_node = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['y'], + outputs=['else_out'] +) + +then_body = onnx.helper.make_graph( + [then_const_node, then_seq_node], + 'then_body', + [], + [then_out] +) + +else_body = onnx.helper.make_graph( + [else_const_node, else_seq_node], + 'else_body', + [], + [else_out] +) + +if_node = onnx.helper.make_node( + 'If', + inputs=['cond'], + outputs=['res'], + then_branch=then_body, + else_branch=else_body +) + +cond = np.array(1).astype(bool) +res = x if cond else y +expect(if_node, inputs=[cond], outputs=[res], name='test_if_seq', + opset_imports=[onnx.helper.make_opsetid("", 13)]) +``` + +
+ + +### **InstanceNormalization** + + Carries out instance normalization as described in the paper + https://arxiv.org/abs/1607.08022. + + y = scale * (x - mean) / sqrt(variance + epsilon) + B, + where mean and variance are computed per instance per channel. + + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
scale (differentiable) : T
+
The input 1-dimensional scale tensor of size C.
+
B (differentiable) : T
+
The input 1-dimensional bias tensor of size C.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output tensor of the same shape as input.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+instancenormalization + +```python +def _instancenorm_test_mode(x, s, bias, epsilon=1e-5): # type: ignore + dims_x = len(x.shape) + axis = tuple(range(2, dims_x)) + mean = np.mean(x, axis=axis, keepdims=True) + var = np.var(x, axis=axis, keepdims=True) + dim_ones = (1,) * (dims_x - 2) + s = s.reshape(-1, *dim_ones) + bias = bias.reshape(-1, *dim_ones) + return s * (x - mean) / np.sqrt(var + epsilon) + bias + +# input size: (1, 2, 1, 3) +x = np.array([[[[-1, 0, 1]], [[2, 3, 4]]]]).astype(np.float32) +s = np.array([1.0, 1.5]).astype(np.float32) +bias = np.array([0, 1]).astype(np.float32) +y = _instancenorm_test_mode(x, s, bias).astype(np.float32) + +node = onnx.helper.make_node( + 'InstanceNormalization', + inputs=['x', 's', 'bias'], + outputs=['y'], +) + +# output size: (1, 2, 1, 3) +expect(node, inputs=[x, s, bias], outputs=[y], + name='test_instancenorm_example') + +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +epsilon = 1e-2 +y = _instancenorm_test_mode(x, s, bias, epsilon).astype(np.float32) + +node = onnx.helper.make_node( + 'InstanceNormalization', + inputs=['x', 's', 'bias'], + outputs=['y'], + epsilon=epsilon, +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias], outputs=[y], + name='test_instancenorm_epsilon') +``` + +
+ + +### **IsInf** + + Map infinity to true and other values to false. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
detect_negative : int (default is 1)
+
(Optional) Whether map negative infinity to true. Default to 1 so that negative infinity induces true. Set this attribute to 0 if negative infinity should be mapped to false.
+
detect_positive : int (default is 1)
+
(Optional) Whether map positive infinity to true. Default to 1 so that positive infinity induces true. Set this attribute to 0 if positive infinity should be mapped to false.
+
+ +#### Inputs + +
+
X (non-differentiable) : T1
+
input
+
+ +#### Outputs + +
+
Y (non-differentiable) : T2
+
output
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
T2 : tensor(bool)
+
Constrain output types to boolean tensors.
+
+ + +#### Examples + +
+infinity + +```python +node = onnx.helper.make_node('IsInf', + inputs=['x'], + outputs=['y'], + ) + +x = np.array([-1.2, np.nan, np.inf, 2.8, np.NINF, np.inf], + dtype=np.float32) +y = np.isinf(x) +expect(node, inputs=[x], outputs=[y], name='test_isinf') +``` + +
+ + +
+negative_infinity_only + +```python +node = onnx.helper.make_node('IsInf', + inputs=['x'], + outputs=['y'], + detect_positive=0 + ) + +x = np.array([-1.7, np.nan, np.inf, -3.6, np.NINF, np.inf], + dtype=np.float32) +y = np.isneginf(x) +expect(node, inputs=[x], outputs=[y], name='test_isinf_negative') +``` + +
+ + +
+positive_infinity_only + +```python +node = onnx.helper.make_node('IsInf', + inputs=['x'], + outputs=['y'], + detect_negative=0 + ) + +x = np.array([-1.7, np.nan, np.inf, 3.6, np.NINF, np.inf], + dtype=np.float32) +y = np.isposinf(x) +expect(node, inputs=[x], outputs=[y], name='test_isinf_positive') +``` + +
+ + +### **IsNaN** + + Returns which elements of the input are NaN. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 9 + +#### Inputs + +
+
X (non-differentiable) : T1
+
input
+
+ +#### Outputs + +
+
Y (non-differentiable) : T2
+
output
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to float tensors.
+
T2 : tensor(bool)
+
Constrain output types to boolean tensors.
+
+ + +#### Examples + +
+isnan + +```python +node = onnx.helper.make_node( + 'IsNaN', + inputs=['x'], + outputs=['y'], +) + +x = np.array([3.0, np.nan, 4.0, np.nan], dtype=np.float32) +y = np.isnan(x) +expect(node, inputs=[x], outputs=[y], name='test_isnan') +``` + +
+ + +### **LRN** + + Local Response Normalization proposed in the [AlexNet paper](https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf). + It normalizes over local input regions. + The local region is defined across the channels. For an element X[n, c, d1, ..., dk] in a tensor + of shape (N x C x D1 x D2, ..., Dk), its region is + {X[n, i, d1, ..., dk] | max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2))}. + + square_sum[n, c, d1, ..., dk] = sum(X[n, i, d1, ..., dk] ^ 2), + where max(0, c - floor((size - 1) / 2)) <= i <= min(C - 1, c + ceil((size - 1) / 2)). + + Y[n, c, d1, ..., dk] = X[n, c, d1, ..., dk] / (bias + alpha / size * square_sum[n, c, d1, ..., dk] ) ^ beta + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
alpha : float (default is 0.0001)
+
Scaling parameter.
+
beta : float (default is 0.75)
+
The exponent.
+
bias : float (default is 1.0)
+
+
size : int (required)
+
The number of channels to sum over
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor, which has the shape and type as input tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+default + +```python +alpha = 0.0001 +beta = 0.75 +bias = 1.0 +nsize = 3 +node = onnx.helper.make_node( + 'LRN', + inputs=['x'], + outputs=['y'], + size=3 +) +x = np.random.randn(5, 5, 5, 5).astype(np.float32) +square_sum = np.zeros((5, 5, 5, 5)).astype(np.float32) +for n, c, h, w in np.ndindex(x.shape): + square_sum[n, c, h, w] = sum(x[n, + max(0, c - int(math.floor((nsize - 1) / 2))):min(5, c + int(math.ceil((nsize - 1) / 2)) + 1), + h, + w] ** 2) +y = x / ((bias + (alpha / nsize) * square_sum) ** beta) +expect(node, inputs=[x], outputs=[y], + name='test_lrn_default') +``` + +
+ + +
+lrn + +```python +alpha = 0.0002 +beta = 0.5 +bias = 2.0 +nsize = 3 +node = onnx.helper.make_node( + 'LRN', + inputs=['x'], + outputs=['y'], + alpha=alpha, + beta=beta, + bias=bias, + size=nsize +) +x = np.random.randn(5, 5, 5, 5).astype(np.float32) +square_sum = np.zeros((5, 5, 5, 5)).astype(np.float32) +for n, c, h, w in np.ndindex(x.shape): + square_sum[n, c, h, w] = sum(x[n, + max(0, c - int(math.floor((nsize - 1) / 2))):min(5, c + int(math.ceil((nsize - 1) / 2)) + 1), + h, + w] ** 2) +y = x / ((bias + (alpha / nsize) * square_sum) ** beta) +expect(node, inputs=[x], outputs=[y], + name='test_lrn') +``` + +
+ + +### **LSTM** + + Computes an one-layer LSTM. This operator is usually supported via some + custom implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `i` - input gate + + `o` - output gate + + `f` - forget gate + + `c` - cell gate + + `t` - time step (t-1 means previous time step) + + `W[iofc]` - W parameter weight matrix for input, output, forget, and cell gates + + `R[iofc]` - R recurrence weight matrix for input, output, forget, and cell gates + + `Wb[iofc]` - W bias vectors for input, output, forget, and cell gates + + `Rb[iofc]` - R bias vectors for input, output, forget, and cell gates + + `P[iof]` - P peephole weight vector for input, output, and forget gates + + `WB[iofc]` - W parameter weight matrix for backward input, output, forget, and cell gates + + `RB[iofc]` - R recurrence weight matrix for backward input, output, forget, and cell gates + + `WBb[iofc]` - W bias vectors for backward input, output, forget, and cell gates + + `RBb[iofc]` - R bias vectors for backward input, output, forget, and cell gates + + `PB[iof]` - P peephole weight vector for backward input, output, and forget gates + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Sigmoid, g=Tanh, h=Tanh): + + - it = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Pi (.) Ct-1 + Wbi + Rbi) + + - ft = f(Xt*(Wf^T) + Ht-1*(Rf^T) + Pf (.) Ct-1 + Wbf + Rbf) + + - ct = g(Xt*(Wc^T) + Ht-1*(Rc^T) + Wbc + Rbc) + + - Ct = ft (.) Ct-1 + it (.) ct + + - ot = f(Xt*(Wo^T) + Ht-1*(Ro^T) + Po (.) Ct + Wbo + Rbo) + + - Ht = ot (.) h(Ct) + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 1, 7 + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings
+
A list of 3 (or 6 if bidirectional) activation functions for input, output, forget, cell, and hidden. The activation functions must be one of the activation functions specified above. Optional: See the equations for default if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
input_forget : int (default is 0)
+
Couple the input and forget gates if 1.
+
layout : int (default is 0)
+
The shape format of inputs X, initial_h, initial_c and outputs Y, Y_h, Y_c. If 0, the following shapes are expected: X.shape = [seq_length, batch_size, input_size], Y.shape = [seq_length, num_directions, batch_size, hidden_size], initial_h.shape = Y_h.shape = initial_c.shape = Y_c.shape = [num_directions, batch_size, hidden_size]. If 1, the following shapes are expected: X.shape = [batch_size, seq_length, input_size], Y.shape = [batch_size, seq_length, num_directions, hidden_size], initial_h.shape = Y_h.shape = initial_c.shape = Y_c.shape = [batch_size, num_directions, hidden_size].
+
+ +#### Inputs (3 - 8) + +
+
X (differentiable) : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W (differentiable) : T
+
The weight tensor for the gates. Concatenation of `W[iofc]` and `WB[iofc]` (if bidirectional) along dimension 0. The tensor has shape `[num_directions, 4*hidden_size, input_size]`.
+
R (differentiable) : T
+
The recurrence weight tensor. Concatenation of `R[iofc]` and `RB[iofc]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 4*hidden_size, hidden_size]`.
+
B (optional, differentiable) : T
+
The bias tensor for input gate. Concatenation of `[Wb[iofc], Rb[iofc]]`, and `[WBb[iofc], RBb[iofc]]` (if bidirectional) along dimension 0. This tensor has shape `[num_directions, 8*hidden_size]`. Optional: If not specified - assumed to be 0.
+
sequence_lens (optional, non-differentiable) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional, non-differentiable) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
initial_c (optional, non-differentiable) : T
+
Optional initial value of the cell. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
P (optional, differentiable) : T
+
The weight tensor for peepholes. Concatenation of `P[iof]` and `PB[iof]` (if bidirectional) along dimension 0. It has shape `[num_directions, 3*hidde_size]`. Optional: If not specified - assumed to be 0.
+
+ +#### Outputs (0 - 3) + +
+
Y (optional, differentiable) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`.
+
Y_h (optional, differentiable) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
Y_c (optional, differentiable) : T
+
The last output value of the cell. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ + +#### Examples + +
+batchwise + +```python +input = np.array([[[1., 2.]], [[3., 4.]], [[5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 7 +weight_scale = 0.3 +number_of_gates = 4 +layout = 1 + +node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R'], + outputs=['Y', 'Y_h'], + hidden_size=hidden_size, + layout=layout +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +lstm = LSTM_Helper(X=input, W=W, R=R, layout=layout) +Y, Y_h = lstm.step() +expect(node, inputs=[input, W, R], outputs=[Y.astype(np.float32), Y_h.astype(np.float32)], name='test_lstm_batchwise') +``` + +
+ + +
+defaults + +```python +input = np.array([[[1., 2.], [3., 4.], [5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 3 +weight_scale = 0.1 +number_of_gates = 4 + +node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +lstm = LSTM_Helper(X=input, W=W, R=R) +_, Y_h = lstm.step() +expect(node, inputs=[input, W, R], outputs=[Y_h.astype(np.float32)], name='test_lstm_defaults') +``` + +
+ + +
+initial_bias + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 4 +weight_scale = 0.1 +custom_bias = 0.1 +number_of_gates = 4 + +node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +# Adding custom bias +W_B = custom_bias * np.ones((1, number_of_gates * hidden_size)).astype(np.float32) +R_B = np.zeros((1, number_of_gates * hidden_size)).astype(np.float32) +B = np.concatenate((W_B, R_B), 1) + +lstm = LSTM_Helper(X=input, W=W, R=R, B=B) +_, Y_h = lstm.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_lstm_with_initial_bias') +``` + +
+ + +
+peepholes + +```python +input = np.array([[[1., 2., 3., 4.], [5., 6., 7., 8.]]]).astype(np.float32) + +input_size = 4 +hidden_size = 3 +weight_scale = 0.1 +number_of_gates = 4 +number_of_peepholes = 3 + +node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R', 'B', 'sequence_lens', 'initial_h', 'initial_c', 'P'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +# Initializing Inputs +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) +B = np.zeros((1, 2 * number_of_gates * hidden_size)).astype(np.float32) +seq_lens = np.repeat(input.shape[0], input.shape[1]).astype(np.int32) +init_h = np.zeros((1, input.shape[1], hidden_size)).astype(np.float32) +init_c = np.zeros((1, input.shape[1], hidden_size)).astype(np.float32) +P = weight_scale * np.ones((1, number_of_peepholes * hidden_size)).astype(np.float32) + +lstm = LSTM_Helper(X=input, W=W, R=R, B=B, P=P, initial_c=init_c, initial_h=init_h) +_, Y_h = lstm.step() +expect(node, inputs=[input, W, R, B, seq_lens, init_h, init_c, P], outputs=[Y_h.astype(np.float32)], + name='test_lstm_with_peepholes') +``` + +
+ + +### **LayerNormalization** + + This is layer normalization defined in ONNX as function. + The overall computation can be split into two stages. + The first stage is standardization, which makes the + normalized elements have zero mean and unit variances. + The computation required by standardization can be + described by the following equations. + ``` + Mean = ReduceMean(X) + D = Sub(X, Mean) + DD = Mul(Diff, Diff) + Var = ReduceMean(DD) + VarEps = Add(Var, epsilon) + StdDev = Sqrt(VarEps) + InvStdDev = Reciprocal(StdDev) + Normalized = Mul(D, InvStdDev) + ``` + where `normalized_axes` is `[axis, ..., rank of X - 1]`. + The variables `Var` and `StdDev` stand for variance and + standard deviation, respectively. The second output is + `Mean` and the last one is `InvStdDev`. + Depending on `stash_type` attribute, the actual computation + must happen in different floating-point precision. + For example, if `stash_type` is 1, this operator casts + all input variables to 32-bit float, perform the computation, and + finally cast `Normalized` back to the original type of `X`. + The second stage then scales and shifts the outcome of the + first stage using + ``` + NormalizedScaled = Mul(Normalized, Scale) + Y = Add(NormalizedScaled, B) + ``` + The second stage doesn't depends on `stash_type`. + All equations are in [this syntax](https://github.com/onnx/onnx/blob/main/docs/Syntax.md). + The same variable (i.e., input, output, and attribute) uses + the same name in the equations above and this operator's definition. + Let `d[i]` indicate the i-th dimension of `X`. + If `X`'s shape is `[d[0], ..., d[axis-1], d[axis], ..., d[rank-1]]`, + the shape of `Mean` and `InvStdDev` is `[d[0], ..., d[axis-1], 1, ..., 1]`. + `Y` and `X` have the same shape. + +#### Version + +This version of the operator has been available since version 17 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
The first normalization dimension. If rank(X) is r, axis' allowed range is [-r, r]. Negative value means counting dimensions from the back.
+
epsilon : float (default is 1e-05)
+
The epsilon value to use to avoid division by zero.
+
stash_type : int (default is 1)
+
Type of Mean and InvStdDev. This also specifies stage one's computation precision.
+
+ +#### Inputs (2 - 3) + +
+
X : T
+
Tensor to be normalized.
+
Scale : T
+
Scale tensor.
+
B (optional) : T
+
Bias tensor.
+
+ +#### Outputs (1 - 3) + +
+
Y : T
+
Normalized tensor.
+
Mean (optional) : U
+
Saved mean used during training to speed up gradient computation
+
InvStdDev (optional) : U
+
Saved inverse standard deviation used during training to speed up gradient computation.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types and output Y type to float tensors.
+
U : tensor(float), tensor(bfloat16)
+
Type of Mean and InvStdDev tensors.
+
+ + +#### Examples + +
+d + +```python +X = np.random.randn(3, 4).astype(np.float32) + +def case(axis: int) -> None: + normalized_shape = calculate_normalized_shape(X.shape, axis) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + Y, mean, inv_std_dev = _layer_normalization(X, W, B, axis=axis) + + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'], + axis=axis, + ) + + if axis < 0: + name = f'test_layer_normalization_2d_axis_negative_{-axis}' + else: + name = f'test_layer_normalization_2d_axis{axis}' + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name=name) + +for i in range(len(X.shape)): + case(i) + case(i - len(X.shape)) +``` + +
+ + +
+d_epsilon + +```python +X = np.random.randn(2, 3, 5).astype(np.float32) + +def case(axis: int) -> None: + normalized_shape = calculate_normalized_shape(X.shape, axis) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + Y, mean, inv_std_dev = _layer_normalization(X, W, B, axis) + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'], + axis=axis, + epsilon=1e-1 + ) + + if axis < 0: + name = f'test_layer_normalization_3d_axis_negative_{-axis}_epsilon' + else: + name = f'test_layer_normalization_3d_axis{axis}_epsilon' + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name=name) + +for i in range(len(X.shape)): + case(i) + case(i - len(X.shape)) +``` + +
+ + +
+default_axis + +```python +X = np.random.randn(2, 3, 4, 5).astype(np.float32) + +# Default axis in LayerNormalization is -1. +normalized_shape = calculate_normalized_shape(X.shape, -1) +W = np.random.randn(*normalized_shape).astype(np.float32) +B = np.random.randn(*normalized_shape).astype(np.float32) +# Axis is default to -1 in the reference implementation. +Y, mean, inv_std_dev = _layer_normalization(X, W, B) + +# Not specifying axis attribute means -1. +node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'] +) + +expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name='test_layer_normalization_default_axis') +``` + +
+ + +
+layernormalization + +```python +X = np.random.randn(2, 3, 4, 5).astype(np.float32) + +def case(axis: int) -> None: + normalized_shape = calculate_normalized_shape(X.shape, axis) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + Y, mean, inv_std_dev = _layer_normalization(X, W, B, axis) + + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'], + axis=axis, + ) + + if axis < 0: + name = f'test_layer_normalization_4d_axis_negative_{-axis}' + else: + name = f'test_layer_normalization_4d_axis{axis}' + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name=name) + +for i in range(len(X.shape)): + case(i) + case(i - len(X.shape)) +``` + +
+ + +### **LeakyRelu** + + LeakyRelu takes input data (Tensor) and an argument alpha, and produces one + output data (Tensor) where the function `f(x) = alpha * x for x < 0`, + `f(x) = x for x >= 0`, is applied to the data tensor elementwise. + + **History** + - Version 16 adds bfloat16 to the types allowed. + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Attributes + +
+
alpha : float (default is 0.01)
+
Coefficient of leakage.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(bfloat16), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+leakyrelu + +```python +node = onnx.helper.make_node( + 'LeakyRelu', + inputs=['x'], + outputs=['y'], + alpha=0.1 +) + +x = np.array([-1, 0, 1]).astype(np.float32) +# expected output [-0.1, 0., 1.] +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * 0.1 +expect(node, inputs=[x], outputs=[y], + name='test_leakyrelu_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * 0.1 +expect(node, inputs=[x], outputs=[y], + name='test_leakyrelu') +``` + +
+ + +
+leakyrelu_default + +```python +default_alpha = 0.01 +node = onnx.helper.make_node( + 'LeakyRelu', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * default_alpha +expect(node, inputs=[x], outputs=[y], + name='test_leakyrelu_default') +``` + +
+ + +### **Less** + + Returns the tensor resulted from performing the `less` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 7, 9 + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ + +#### Examples + +
+less + +```python +node = onnx.helper.make_node( + 'Less', + inputs=['x', 'y'], + outputs=['less'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = np.less(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_less') +``` + +
+ + +
+less + +```python +node = onnx.helper.make_node( + 'LessOrEqual', + inputs=['x', 'y'], + outputs=['less_equal'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = np.less_equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_less_equal') +``` + +
+ + +
+less_broadcast + +```python +node = onnx.helper.make_node( + 'Less', + inputs=['x', 'y'], + outputs=['less'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = np.less(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_less_bcast') +``` + +
+ + +
+less_broadcast + +```python +node = onnx.helper.make_node( + 'LessOrEqual', + inputs=['x', 'y'], + outputs=['less_equal'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = np.less_equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_less_equal_bcast') +``` + +
+ + +### **LessOrEqual** + + Returns the tensor resulted from performing the `less_equal` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 12 + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input types to all numeric tensors.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ + +### **Log** + + Calculates the natural log of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The natural log of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+log + +```python +node = onnx.helper.make_node( + 'Log', + inputs=['x'], + outputs=['y'], +) + +x = np.array([1, 10]).astype(np.float32) +y = np.log(x) # expected output [0., 2.30258512] +expect(node, inputs=[x], outputs=[y], + name='test_log_example') + +x = np.exp(np.random.randn(3, 4, 5).astype(np.float32)) +y = np.log(x) +expect(node, inputs=[x], outputs=[y], + name='test_log') +``` + +
+ + +### **LogSoftmax** + + The operator computes the log of softmax values for the given input: + + LogSoftmax(input, axis) = Log(Softmax(input, axis=axis)) + + The "axis" attribute indicates the dimension along which LogSoftmax + will be performed. The output tensor has the same shape + and contains the LogSoftmax values of the corresponding input. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axis : int (default is -1)
+
+Describes the dimension LogSoftmax will be performed on. +Negative value means counting dimensions +from the back. Accepted range is [-r, r-1] where r = rank(input). +
+
+ +#### Inputs + +
+
input (differentiable) : T
+
The input tensor of rank >= axis.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output values with the same shape as the input tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+logsoftmax + +```python +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], +) +x = np.array([[-1, 0, 1]]).astype(np.float32) +# expected output +# [[-2.4076061 -1.407606 -0.407606 ]] +y = logsoftmax(x) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_example_1') +``` + +
+ + +
+logsoftmax_axis + +```python +x = np.array([[0, 1, 2, 3], [10000, 10001, 10002, 10003]] + ).astype(np.float32) +# expected output +# [[-3.4401896 -2.4401896 -1.4401896 -0.44018966] +# [-3.4401896 -2.4401896 -1.4401896 -0.44018966]] +y = logsoftmax(x) + +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_large_number') + +x = np.abs(np.random.randn(3, 4, 5).astype(np.float32)) +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=0, +) +y = logsoftmax(x, axis=0) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_axis_0') + +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=1, +) +y = logsoftmax(x, axis=1) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_axis_1') + +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=2, +) +y = logsoftmax(x, axis=2) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_axis_2') + +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=-1, +) +y = logsoftmax(x, axis=-1) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_negative_axis') + +# default axis is -1 +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_default_axis') +``` + +
+ + +### **Loop** + + Generic Looping construct. This loop has multiple termination conditions: + + 1) Trip count. Iteration count specified at runtime. Set by + specifying the input M. Optional. Set to empty string to omit. + Note that a static trip count (specified at graph construction time) can be + specified by passing in a constant node for input M. + 2) Loop termination condition. This is an input to the op that determines + whether to run the first iteration and also a loop-carried dependency for + the body graph. The body graph must yield a value for the condition variable, + whether this input is provided or not. + + This table summarizes the operating modes of this operator with equivalent + C-style code: + + Operator inputs defined as (max_trip_count, condition_var). + + input ("", ""): + for (int i=0; ; ++i) { + cond = ... // Note this value is ignored, but is required in the body + } + + input ("", cond) // Note this is analogous to a while loop + bool cond = ...; + for (int i=0; cond; ++i) { + cond = ...; + } + + input ("", 1) // Note this is analogous to a do-while loop + bool cond = true + for (int i=0; cond; ++i) { + cond = ...; + } + + input (trip_count, "") // Note this is analogous to a for loop + int trip_count = ... + for (int i=0; i < trip_count; ++i) { + cond = ...; // ignored + } + + input (trip_count, cond) + int trip_count = ...; + bool cond = ...; + for (int i=0; i < trip_count && cond; ++i) { + cond = ...; + } + + + *Sample usage - cond as well as trip count* + + graph predict-net { + %a = Constant[value = ]() + %b = Constant[value = ]() + %keepgoing = Constant[value = ]() + %max_trip_count = Constant[value = ]() + %keepgoing_out, %b_out, %user_defined_vals = Loop[body = ](%max_trip_count, %keepgoing, %b) + return + } + + graph body-net ( + %i[INT32, scalar] // iteration number + %keepgoing_in[BOOL, scalar] // incoming loop-termination-condition; not used + %b_in[INT32, scalar] // incoming value of loop-carried-dependency b + ) { + %my_local = Add(%a, %b_in) + %b_out = Sub(%a, %b_in) // outgoing value of loop-carried-dependency b + %keepgoing_out = Greater(%my_local, %b_out) // outgoing loop-termination-condition + %user_defined_val = Add(%b_in, %b_in) // scan-output value to be accumulated + return %keepgoing_out, %b_out, %user_defined_val + } + + *Sample equivalent C code* + + { + /* User-defined code (enclosing scope) */ + int a = 3, b = 6; + bool keepgoing = true; // Analogous to input cond + /* End user-defined code */ + + /* Implicitly-defined code */ + const int max_trip_count = 10; // Analogous to input M + int user_defined_vals[]; // Imagine this is resizable + /* End implicitly-defined code */ + /* initialize loop-carried variables and scan-output variables */ + bool keepgoing_out = keepgoing + int b_out = b + + for (int i=0; i < max_trip_count && keepgoing_out; ++i) { + /* Implicitly-defined code: bind actual parameter values + to formal parameter variables of loop-body */ + bool keepgoing_in = keepgoing_out; + bool b_in = b_out; + + /* User-defined code (loop body) */ + int my_local = a + b_in; // Reading value "a" from the enclosing scope is fine + b_out = a - b_in; + keepgoing_out = my_local > b_out; + user_defined_val = b_in + b_in; // b_in and b_out are different variables + /* End user-defined code */ + + /* Implicitly defined-code */ + user_defined_vals[i] = user_defined_val // accumulate scan-output values + } + // int t = my_local; // Can't do this. my_local is not accessible here. + + // The values below are bound to the output variables of the loop and therefore accessible + // b_out; user_defined_vals; keepgoing_out; + } + + There are several things of note in this code snippet: + + 1) Values from the enclosing scope (i.e. variable "a" here) are in scope and can + be referenced in the inputs of the loop. + 2) Any values computed in the loop body that needs to be used in a subsequent + iteration or after the loop are modelled using a pair of variables in the loop-body, + consisting of an input variable (eg., b_in) and an output variable (eg., b_out). + These are referred to as loop-carried dependences. The loop operation node + supplies the input value of the input variable for the first iteration, and + returns the output value of the output variable produced by the final + iteration. + 3) Scan_output variables are used to implicitly concatenate values computed across + all the iterations. In the above example, the value of user_defined_val computed + over all iterations are concatenated and returned as the value of user_defined_vals + after the loop. + 4) Values created in the body cannot be accessed in the enclosing scope, + except using the mechanism described above. + + Note that the semantics of this op support "diagonal" or "wavefront" execution. + (See Step 3 here for an example: + https://devblogs.nvidia.com/optimizing-recurrent-neural-networks-cudnn-5/). + Frontends should emit multi-layer RNNs as a series of While operators (with + time being the inner looping dimension), with each successive layer consuming + the scan_outputs from the previous layer, possibly going through several + point-wise operators (e.g. dropout, residual connections, linear layer). + + The input/output of subgraph (produced by loop node) matching is based on order instead of name. The implementation will figure out the names based on this order. + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 1, 11, 13 + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has 2+N inputs: (iteration_num, condition, loop carried dependencies...). It has 1+N+K outputs: (condition, loop carried dependencies..., scan_outputs...). Each scan_output is created by concatenating the value of the specified output value at the end of each iteration of the loop. It is an error if the dimensions or data type of these scan_outputs change across loop iterations.
+
+ +#### Inputs (2 - ∞) + +
+
M (optional) : I
+
A maximum trip-count for the loop specified at runtime. Optional. Pass empty string to skip.
+
cond (optional) : B
+
A boolean termination condition. Optional. Pass empty string to skip.
+
v_initial (variadic, heterogeneous) : V
+
The initial values of any loop-carried dependencies (values that change across loop iterations)
+
+ +#### Outputs (1 - ∞) + +
+
v_final_and_scan_outputs (variadic, heterogeneous) : V
+
Final N loop carried dependency values then K scan_outputs. Scan outputs must be Tensors.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(bfloat16)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128)), optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(bfloat16))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(bfloat16)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
All Tensor, Sequence(Tensor), Optional(Tensor), and Optional(Sequence(Tensor)) types
+
I : tensor(int64)
+
tensor of int64, which should be a scalar.
+
B : tensor(bool)
+
tensor of bool, which should be a scalar.
+
+ + +#### Examples + +
+loop_11 + +```python +# Given a tensor x of values [x1, ..., xN], and initial tensor y +# sum up its elements using a scan +# returning the final state (y+x1+x2+...+xN) as well the scan_output +# [y+x1, y+x1+x2, ..., y+x1+x2+...+xN] + +y_in = onnx.helper.make_tensor_value_info('y_in', onnx.TensorProto.FLOAT, [1]) +y_out = onnx.helper.make_tensor_value_info('y_out', onnx.TensorProto.FLOAT, [1]) +scan_out = onnx.helper.make_tensor_value_info('scan_out', onnx.TensorProto.FLOAT, [1]) +cond_in = onnx.helper.make_tensor_value_info('cond_in', onnx.TensorProto.BOOL, []) +cond_out = onnx.helper.make_tensor_value_info('cond_out', onnx.TensorProto.BOOL, []) +iter_count = onnx.helper.make_tensor_value_info('iter_count', onnx.TensorProto.INT64, []) + +x = np.array([1, 2, 3, 4, 5]).astype(np.float32) +y = np.array([-2]).astype(np.float32) + +x_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.helper.make_tensor( + name='const_tensor_x', + data_type=onnx.TensorProto.FLOAT, + dims=x.shape, + vals=x.flatten().astype(float), + ) +) + +one_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['one'], + value=onnx.helper.make_tensor( + name='const_tensor_one', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[1] + ) +) + +i_add_node = onnx.helper.make_node( + 'Add', + inputs=['iter_count', 'one'], + outputs=['end'] +) + +start_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['iter_count'], + outputs=['slice_start'], + axes=[0] +) + +end_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['end'], + outputs=['slice_end'], + axes=[0] +) + +slice_node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'slice_start', 'slice_end'], + outputs=['slice_out'] +) + +y_add_node = onnx.helper.make_node( + 'Add', + inputs=['y_in', 'slice_out'], + outputs=['y_out'] +) + +identity_node = onnx.helper.make_node( + 'Identity', + inputs=['cond_in'], + outputs=['cond_out'] +) + +scan_identity_node = onnx.helper.make_node( + 'Identity', + inputs=['y_out'], + outputs=['scan_out'] +) + +loop_body = onnx.helper.make_graph( + [identity_node, x_const_node, one_const_node, i_add_node, + start_unsqueeze_node, end_unsqueeze_node, slice_node, y_add_node, + scan_identity_node], + 'loop_body', + [iter_count, cond_in, y_in], + [cond_out, y_out, scan_out] +) + +node = onnx.helper.make_node( + 'Loop', + inputs=['trip_count', 'cond', 'y'], + outputs=['res_y', 'res_scan'], + body=loop_body +) + +trip_count = np.array(5).astype(np.int64) +res_y = np.array([13]).astype(np.float32) +cond = np.array(1).astype(bool) +res_scan = np.array([-1, 1, 4, 8, 13]).astype(np.float32).reshape((5, 1)) +expect(node, inputs=[trip_count, cond, y], outputs=[res_y, res_scan], + name='test_loop11', opset_imports=[onnx.helper.make_opsetid("", 11)]) +``` + +
+ + +
+loop_13 + +```python +# Given a tensor x of values [x1, ..., xN], +# Return a sequence of tensors of +# [[x1], [x1, x2], ..., [x1, ..., xN]] + +seq_in = onnx.helper.make_tensor_sequence_value_info('seq_in', onnx.TensorProto.FLOAT, None) +seq_out = onnx.helper.make_tensor_sequence_value_info('seq_out', onnx.TensorProto.FLOAT, None) +cond_in = onnx.helper.make_tensor_value_info('cond_in', onnx.TensorProto.BOOL, []) +cond_out = onnx.helper.make_tensor_value_info('cond_out', onnx.TensorProto.BOOL, []) +iter_count = onnx.helper.make_tensor_value_info('iter_count', onnx.TensorProto.INT64, []) + +x = np.array([1, 2, 3, 4, 5]).astype(np.float32) + +x_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.helper.make_tensor( + name='const_tensor_x', + data_type=onnx.TensorProto.FLOAT, + dims=x.shape, + vals=x.flatten().astype(float), + ) +) + +one_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['one'], + value=onnx.helper.make_tensor( + name='const_tensor_one', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[1] + ) +) + +zero_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['slice_start'], + value=onnx.helper.make_tensor( + name='const_tensor_zero', + data_type=onnx.TensorProto.INT64, + dims=(1,), + vals=[0] + ) +) + +axes_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['axes'], + value=onnx.helper.make_tensor( + name='const_tensor_axes', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[0] + ) +) + +add_node = onnx.helper.make_node( + 'Add', + inputs=['iter_count', 'one'], + outputs=['end'] +) + +end_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['end', 'axes'], + outputs=['slice_end'] +) + +slice_node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'slice_start', 'slice_end'], + outputs=['slice_out'] +) + +insert_node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['seq_in', 'slice_out'], + outputs=['seq_out'] +) + +identity_node = onnx.helper.make_node( + 'Identity', + inputs=['cond_in'], + outputs=['cond_out'] +) + +loop_body = onnx.helper.make_graph( + [identity_node, x_const_node, one_const_node, zero_const_node, add_node, + axes_node, end_unsqueeze_node, slice_node, insert_node], + 'loop_body', + [iter_count, cond_in, seq_in], + [cond_out, seq_out] +) + +node = onnx.helper.make_node( + 'Loop', + inputs=['trip_count', 'cond', 'seq_empty'], + outputs=['seq_res'], + body=loop_body +) + +trip_count = np.array(5).astype(np.int64) +seq_empty: List[Any] = [] +seq_res = [x[:int(i)] for i in x] +cond = np.array(1).astype(bool) +expect(node, inputs=[trip_count, cond, seq_empty], outputs=[seq_res], + name='test_loop13_seq', opset_imports=[onnx.helper.make_opsetid("", 13)], + input_type_protos=[onnx.helper.make_tensor_type_proto(onnx.TensorProto.INT64, trip_count.shape), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.BOOL, cond.shape), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, []))]) +``` + +
+ + +
+loop_16_none + +```python +# Given a tensor sequence of values [x1, ..., xN], and an initial optional sequence of tensors [x0], +# Return a concatenated sequence of tensors of +# [x0, [x1], [x1, x2], ..., [x1, ..., xN]] + +ten_in_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, []) +seq_in_tp = onnx.helper.make_sequence_type_proto(ten_in_tp) +opt_in_tp = onnx.helper.make_optional_type_proto(seq_in_tp) +opt_in = onnx.helper.make_value_info('opt_seq_in', opt_in_tp) +seq_out = onnx.helper.make_tensor_sequence_value_info('seq_out', onnx.TensorProto.FLOAT, []) +cond_in = onnx.helper.make_tensor_value_info('cond_in', onnx.TensorProto.BOOL, []) +cond_out = onnx.helper.make_tensor_value_info('cond_out', onnx.TensorProto.BOOL, []) +iter_count = onnx.helper.make_tensor_value_info('iter_count', onnx.TensorProto.INT64, []) + +x0 = np.array(0).astype(np.float32) +x = np.array([1, 2, 3, 4, 5]).astype(np.float32) + +optional_has_elem_node = onnx.helper.make_node( + 'OptionalHasElement', + inputs=['opt_seq_in'], + outputs=['optional_has_elem'] +) + +optional_is_none = onnx.helper.make_node( + 'Not', + inputs=['optional_has_elem'], + outputs=['optional_is_none'] +) + +optional_get_elem = onnx.helper.make_node( + 'OptionalGetElement', + inputs=['opt_seq_in'], + outputs=['seq_in'] +) + +constant_in = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['constant_in'], + value=onnx.helper.make_tensor( + name='const_tensor', + data_type=onnx.TensorProto.FLOAT, + dims=(), + vals=[0] + ) +) + +seq_const_in = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['constant_in'], + outputs=['init_seq_in'] +) + +then_seq_out = onnx.helper.make_tensor_sequence_value_info('init_seq_in', onnx.TensorProto.FLOAT, []) +then_body = onnx.helper.make_graph( + [constant_in, seq_const_in], + 'then_body', + [], + [then_seq_out] +) + +else_seq_out = onnx.helper.make_tensor_sequence_value_info('seq_in', onnx.TensorProto.FLOAT, []) +else_body = onnx.helper.make_graph( + [optional_get_elem], + 'else_body', + [], + [else_seq_out] +) + +if_node = onnx.helper.make_node( + 'If', + inputs=['optional_is_none'], + outputs=['sequence'], + then_branch=then_body, + else_branch=else_body +) + +x_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.helper.make_tensor( + name='const_tensor_x', + data_type=onnx.TensorProto.FLOAT, + dims=x.shape, + vals=x.flatten().astype(float), + ) +) + +one_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['one'], + value=onnx.helper.make_tensor( + name='const_tensor_one', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[1] + ) +) + +zero_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['slice_start'], + value=onnx.helper.make_tensor( + name='const_tensor_zero', + data_type=onnx.TensorProto.INT64, + dims=(1,), + vals=[0] + ) +) + +axes_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['axes'], + value=onnx.helper.make_tensor( + name='const_tensor_axes', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[0] + ) +) + +add_node = onnx.helper.make_node( + 'Add', + inputs=['iter_count', 'one'], + outputs=['end'] +) + +end_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['end', 'axes'], + outputs=['slice_end'] +) + +slice_node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'slice_start', 'slice_end'], + outputs=['slice_out'] +) + +insert_node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['sequence', 'slice_out'], + outputs=['seq_out'] +) + +identity_node = onnx.helper.make_node( + 'Identity', + inputs=['cond_in'], + outputs=['cond_out'] +) + +loop_body = onnx.helper.make_graph( + [identity_node, optional_has_elem_node, optional_is_none, if_node, x_const_node, one_const_node, + zero_const_node, add_node, axes_node, end_unsqueeze_node, slice_node, insert_node], + 'loop_body', + [iter_count, cond_in, opt_in], + [cond_out, seq_out] +) + +node = onnx.helper.make_node( + 'Loop', + inputs=['trip_count', 'cond', 'opt_seq'], + outputs=['seq_res'], + body=loop_body +) + +trip_count = np.array(5).astype(np.int64) +cond = np.array(1).astype(bool) +seq_res = compute_loop_outputs(x, [x0], trip_count) +opt_seq_in: List[Any] = [x0] +expect(node, inputs=[trip_count, cond, opt_seq_in], outputs=[seq_res], + name='test_loop16_seq_none', opset_imports=[onnx.helper.make_opsetid("", 16)], + input_type_protos=[onnx.helper.make_tensor_type_proto(onnx.TensorProto.INT64, trip_count.shape), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.BOOL, cond.shape), + opt_in_tp]) +``` + +
+ + +### **LpNormalization** + + Given a matrix, apply Lp-normalization along the provided axis. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is -1)
+
The axis on which to apply normalization, -1 mean last axis.
+
p : int (default is 2)
+
The order of the normalization, only 1 or 2 are supported.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Input matrix
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Matrix after normalization
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +### **LpPool** + + LpPool consumes an input tensor X and applies Lp pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + Lp pooling consisting of computing the Lp norm on all values of a subset + of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +Other versions of this operator: 1, 2 + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
p : int (default is 2)
+
p value of the Lp norm used to pool over the input data.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size.
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output data tensor from Lp pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +### **MatMul** + + Matrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 9 + +#### Inputs + +
+
A (differentiable) : T
+
N-dimensional matrix A
+
B (differentiable) : T
+
N-dimensional matrix B
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Matrix multiply results from A * B
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(bfloat16)
+
Constrain input and output types to float/int tensors.
+
+ + +#### Examples + +
+matmul + +```python +node = onnx.helper.make_node( + 'MatMul', + inputs=['a', 'b'], + outputs=['c'], +) + +# 2d +a = np.random.randn(3, 4).astype(np.float32) +b = np.random.randn(4, 3).astype(np.float32) +c = np.matmul(a, b) +expect(node, inputs=[a, b], outputs=[c], + name='test_matmul_2d') + +# 3d +a = np.random.randn(2, 3, 4).astype(np.float32) +b = np.random.randn(2, 4, 3).astype(np.float32) +c = np.matmul(a, b) +expect(node, inputs=[a, b], outputs=[c], + name='test_matmul_3d') + +# 4d +a = np.random.randn(1, 2, 3, 4).astype(np.float32) +b = np.random.randn(1, 2, 4, 3).astype(np.float32) +c = np.matmul(a, b) +expect(node, inputs=[a, b], outputs=[c], + name='test_matmul_4d') +``` + +
+ + +### **MatMulInteger** + + Matrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html. + The production MUST never overflow. The accumulation may overflow if and only if in 32 bits. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Inputs (2 - 4) + +
+
A (non-differentiable) : T1
+
N-dimensional matrix A
+
B (non-differentiable) : T2
+
N-dimensional matrix B
+
a_zero_point (optional, non-differentiable) : T1
+
Zero point tensor for input 'A'. It's optional and default value is 0. It could be a scalar or N-D tensor. Scalar refers to per tensor quantization whereas N-D refers to per row quantization. If the input is 2D of shape [M, K] then zero point tensor may be an M element vector [zp_1, zp_2, ..., zp_M]. If the input is N-D tensor with shape [D1, D2, M, K] then zero point tensor may have shape [D1, D2, M, 1].
+
b_zero_point (optional, non-differentiable) : T2
+
Zero point tensor for input 'B'. It's optional and default value is 0. It could be a scalar or a N-D tensor, Scalar refers to per tensor quantization whereas N-D refers to per col quantization. If the input is 2D of shape [K, N] then zero point tensor may be an N element vector [zp_1, zp_2, ..., zp_N]. If the input is N-D tensor with shape [D1, D2, K, N] then zero point tensor may have shape [D1, D2, 1, N].
+
+ +#### Outputs + +
+
Y (non-differentiable) : T3
+
Matrix multiply results from A * B
+
+ +#### Type Constraints + +
+
T1 : tensor(int8), tensor(uint8)
+
Constrain input A data type to 8-bit integer tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain input B data type to 8-bit integer tensor.
+
T3 : tensor(int32)
+
Constrain output Y data type as 32-bit integer tensor.
+
+ + +#### Examples + +
+matmulinteger + +```python +node = onnx.helper.make_node('MatMulInteger', + inputs=['A', 'B', 'a_zero_point', 'b_zero_point'], + outputs=['Y'],) + +A = np.array([[11, 7, 3], + [10, 6, 2], + [9, 5, 1], + [8, 4, 0], ], dtype=np.uint8) + +a_zero_point = np.array([12], dtype=np.uint8) + +B = np.array([[1, 4], + [2, 5], + [3, 6], ], dtype=np.uint8) + +b_zero_point = np.array([0], dtype=np.uint8) + +output = np.array([[-38, -83], + [-44, -98], + [-50, -113], + [-56, -128], ], dtype=np.int32) + +expect(node, inputs=[A, B, a_zero_point, b_zero_point], outputs=[output], + name='test_matmulinteger') +``` + +
+ + +### **Max** + + Element-wise max of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 8, 12 + +#### Inputs (1 - ∞) + +
+
data_0 (variadic, differentiable) : T
+
List of tensors for max.
+
+ +#### Outputs + +
+
max (differentiable) : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to numeric tensors.
+
+ + +#### Examples + +
+max + +```python +data_0 = np.array([3, 2, 1]).astype(np.float32) +data_1 = np.array([1, 4, 4]).astype(np.float32) +data_2 = np.array([2, 5, 3]).astype(np.float32) +result = np.array([3, 5, 4]).astype(np.float32) +node = onnx.helper.make_node( + 'Max', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_max_example') + +node = onnx.helper.make_node( + 'Max', + inputs=['data_0'], + outputs=['result'], +) +expect(node, inputs=[data_0], outputs=[data_0], + name='test_max_one_input') + +result = np.maximum(data_0, data_1) +node = onnx.helper.make_node( + 'Max', + inputs=['data_0', 'data_1'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_max_two_inputs') +``` + +
+ + +
+max_all_numeric_types + +```python +for op_dtype in all_numeric_dtypes: + data_0 = np.array([3, 2, 1]).astype(op_dtype) + data_1 = np.array([1, 4, 4]).astype(op_dtype) + result = np.array([3, 4, 4]).astype(op_dtype) + node = onnx.helper.make_node( + 'Max', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_max_{0}'.format(np.dtype(op_dtype).name)) +``` + +
+ + +### **MaxPool** + + MaxPool consumes an input tensor X and applies max pooling across + the tensor according to kernel sizes, stride sizes, and pad lengths. + max pooling consisting of computing the max on all values of a + subset of the input tensor according to the kernel size and downsampling the + data into the output tensor Y for further processing. The output spatial shape will be following: + ``` + output_spatial_shape[i] = floor((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1) + ``` + or + ``` + output_spatial_shape[i] = ceil((input_spatial_shape[i] + pad_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1)) / strides_spatial_shape[i] + 1) + ``` + if ceil_mode is enabled + + ``` + * pad_shape[i] is sum of pads along axis i + ``` + + `auto_pad` is a DEPRECATED attribute. If you are using them currently, the output spatial shape will be following: + ``` + VALID: output_spatial_shape[i] = ceil((input_spatial_shape[i] - ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) + 1) / strides_spatial_shape[i]) + SAME_UPPER or SAME_LOWER: output_spatial_shape[i] = ceil(input_spatial_shape[i] / strides_spatial_shape[i]) + ``` + And pad shape will be following if `SAME_UPPER` or `SAME_LOWER`: + ``` + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial_shape[i] + ((kernel_spatial_shape[i] - 1) * dilations[i] + 1) - input_spatial_shape[i] + ``` + The output of each pooling window is maximum number of elements exclude pad. + + +#### Version + +This version of the operator has been available since version 12 of the default ONNX operator set. + +Other versions of this operator: 1, 8, 10, 11 + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
ceil_mode : int (default is 0)
+
Whether to use ceil or floor (default) to compute the output shape.
+
dilations : list of ints
+
Dilation value along each spatial axis of filter. If not present, the dilation defaults to 1 along each spatial axis.
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
storage_order : int (default is 0)
+
The storage order of the tensor. 0 is row major, and 1 is column major.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
+ +#### Outputs (1 - 2) + +
+
Y (differentiable) : T
+
Output data tensor from average or max pooling across the input tensor. Dimensions will vary based on various kernel, stride, and pad sizes. Floor value of the dimension is used
+
Indices (optional, non-differentiable) : I
+
Indices tensor from max pooling across the input tensor. The dimensions of indices are the same as output tensor. The values in indices of are the indices of the selected values during pooling. The indices are computed as flatten 1-D tensor, and the indices do not consider padding. So the values in indices are in [0, N x C x D1 x ... x Dn).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(int8), tensor(uint8)
+
Constrain input and output types to float and 8 bit tensors.
+
I : tensor(int64)
+
Constrain index tensor to int64
+
+ + +#### Examples + +
+maxpool_1d_default + +```python +""" +input_shape: [1, 3, 32] +output_shape: [1, 3, 31] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2], +) +x = np.random.randn(1, 3, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = [2] +strides = [1] +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0], 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_1d_default') +``` + +
+ + +
+maxpool_2d_ceil + +```python +""" +input_shape: [1, 1, 4, 4] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + ceil_mode=True +) +x = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]]).astype(np.float32) +y = np.array([[[ + [11, 12], + [15, 16]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_ceil') +``` + +
+ + +
+maxpool_2d_default + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 31, 31] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_default') +``` + +
+ + +
+maxpool_2d_dilations + +```python +""" +input_shape: [1, 1, 4, 4] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[1, 1], + dilations=[2, 2] +) +x = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]]).astype(np.float32) +y = np.array([[[ + [11, 12], + [15, 16]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_dilations') +``` + +
+ + +
+maxpool_2d_pads + +```python +""" +input_shape: [1, 3, 28, 28] +output_shape: [1, 3, 30, 30] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[2, 2, 2, 2] +) +x = np.random.randn(1, 3, 28, 28).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (3, 3) +strides = (1, 1) +pad_bottom = pad_top = pad_right = pad_left = 2 +pad_shape = [pad_top + pad_bottom, pad_left + pad_right] +out_shape = get_output_shape('VALID', np.add(x_shape[2:], pad_shape), kernel_shape, strides) +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_pads') +``` + +
+ + +
+maxpool_2d_precomputed_pads + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] + +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[ + [13, 14, 15, 15, 15], + [18, 19, 20, 20, 20], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_precomputed_pads') +``` + +
+ + +
+maxpool_2d_precomputed_same_upper + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 3, 3] +pad_shape: [2, 2] -> [1, 1, 1, 1] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + auto_pad='SAME_UPPER' +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[7, 9, 10], + [17, 19, 20], + [22, 24, 25]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_precomputed_same_upper') +``` + +
+ + +
+maxpool_2d_precomputed_strides + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[7, 9], + [17, 19]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_precomputed_strides') +``` + +
+ + +
+maxpool_2d_same_lower + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 32, 32] +pad_shape: [1, 1] -> [1, 0, 1, 0] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_LOWER' +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides) +pad_shape = get_pad_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides, out_shape) +pad_bottom = pad_shape[0] // 2 +pad_top = pad_shape[0] - pad_bottom +pad_right = pad_shape[1] // 2 +pad_left = pad_shape[1] - pad_right +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_same_lower') +``` + +
+ + +
+maxpool_2d_same_upper + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 32, 32] +pad_shape: [1, 1] -> [0, 1, 0, 1] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_UPPER' +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides) +pad_shape = get_pad_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides, out_shape) +pad_top = pad_shape[0] // 2 +pad_bottom = pad_shape[0] - pad_top +pad_left = pad_shape[1] // 2 +pad_right = pad_shape[1] - pad_left +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_same_upper') +``` + +
+ + +
+maxpool_2d_strides + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 10, 10] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + strides=[3, 3] +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (5, 5) +strides = (3, 3) +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_strides') +``` + +
+ + +
+maxpool_2d_uint8 + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.uint8) +y = np.array([[[ + [13, 14, 15, 15, 15], + [18, 19, 20, 20, 20], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25]]]]).astype(np.uint8) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_uint8') +``` + +
+ + +
+maxpool_3d_default + +```python +""" +input_shape: [1, 3, 32, 32, 32] +output_shape: [1, 3, 31, 31, 31] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2, 2], +) +x = np.random.randn(1, 3, 32, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = [2, 2, 2] +strides = [1, 1, 1] +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0, 0, 0], 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_3d_default') +``` + +
+ + +
+maxpool_with_argmax_2d_precomputed_pads + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y', 'z'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[ + [13, 14, 15, 15, 15], + [18, 19, 20, 20, 20], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25]]]]).astype(np.float32) +z = np.array([[[ + [12, 13, 14, 14, 14], + [17, 18, 19, 19, 19], + [22, 23, 24, 24, 24], + [22, 23, 24, 24, 24], + [22, 23, 24, 24, 24]]]]).astype(np.int64) + +expect(node, inputs=[x], outputs=[y, z], name='test_maxpool_with_argmax_2d_precomputed_pads') +``` + +
+ + +
+maxpool_with_argmax_2d_precomputed_strides + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y', 'z'], + kernel_shape=[2, 2], + strides=[2, 2], + storage_order=1 +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[7, 9], + [17, 19]]]]).astype(np.float32) +z = np.array([[[[6, 16], + [8, 18]]]]).astype(np.int64) + +expect(node, inputs=[x], outputs=[y, z], name='test_maxpool_with_argmax_2d_precomputed_strides') +``` + +
+ + +### **MaxRoiPool** + + ROI max pool consumes an input tensor X and region of interests (RoIs) to + apply max pooling across each RoI, to produce output 4-D tensor of shape + (num_rois, channels, pooled_shape[0], pooled_shape[1]). + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
pooled_shape : list of ints (required)
+
ROI pool output shape (height, width).
+
spatial_scale : float (default is 1.0)
+
Multiplicative spatial scale factor to translate ROI coordinates from their input scale to the scale used when pooling.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input data tensor from the previous operator; dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data.
+
rois (non-differentiable) : T
+
RoIs (Regions of Interest) to pool over. Should be a 2-D tensor of shape (num_rois, 5) given as [[batch_id, x1, y1, x2, y2], ...].
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
RoI pooled output 4-D tensor of shape (num_rois, channels, pooled_shape[0], pooled_shape[1]).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +### **MaxUnpool** + + MaxUnpool essentially computes the partial inverse of the MaxPool op. + The input information to this op is typically the the output information from a MaxPool op. The first + input tensor X is the tensor that needs to be unpooled, which is typically the pooled tensor (first output) + from MaxPool. The second input tensor, I, contains the indices to the (locally maximal) elements corrsponding + to the elements in the first input tensor X. Input tensor I is typically the second output of the MaxPool op. + The third (optional) input is a tensor that specifies the output size of the unpooling operation. + + MaxUnpool is intended to do 'partial' inverse of the MaxPool op. 'Partial' because all the non-maximal + values from the original input to MaxPool are set to zero in the output of the MaxUnpool op. Pooling + the result of an unpooling operation should give back the original input to the unpooling op. + + MaxUnpool can produce the same output size for several input sizes, which makes unpooling op ambiguous. + The third input argument, output_size, is meant to disambiguate the op and produce output tensor of + known/predictable size. + + In addition to the inputs, MaxUnpool takes three attributes, namely kernel_shape, strides, and pads, + which define the exact unpooling op. The attributes typically have the same values as the corrsponding + pooling op that the unpooling op is trying to invert. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +Other versions of this operator: 9 + +#### Attributes + +
+
kernel_shape : list of ints (required)
+
The size of the kernel along each axis.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0. The value represent the number of pixels added to the beginning and end part of the corresponding axis. `pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number of pixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`. This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaults to 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs (2 - 3) + +
+
X (differentiable) : T1
+
Input data tensor that has to be unpooled. This tensor is typically the first output of the MaxPool op.Dimensions for image case are (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data. For non-image case, the dimensions are in the form of (N x C x D1 x D2 ... Dn), where N is the batch size. Optionally, if dimension denotation is in effect, the operation expects the input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
I (non-differentiable) : T2
+
Input data tensor containing the indices corresponding to elements in the first input tensor X.This tensor is typically the second output of the MaxPool op.Dimensions must be the same as input tensor X. The indices are linear, i.e. computed considering the tensor as flattened 1-D tensor, assuming row-major storage. Also, the linear indices should not consider padding. So the values in indices are in the range [0, N x C x D1 x ... x Dn).
+
output_shape (optional, non-differentiable) : T2
+
The shape of the output can be explicitly set which will cause pads values to be auto generated. If 'output_shape' is specified, 'pads' values are ignored.
+
+ +#### Outputs + +
+
output (differentiable) : T1
+
Output data tensor that contains the result of the unpooling.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T2 : tensor(int64)
+
Constrain index tensor to int64
+
+ + +#### Examples + +
+with_output_shape + +```python +node = onnx.helper.make_node( + 'MaxUnpool', + inputs=['xT', 'xI', 'output_shape'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] +) +xT = np.array([[[[5, 6], + [7, 8]]]], dtype=np.float32) +xI = np.array([[[[5, 7], + [13, 15]]]], dtype=np.int64) +output_shape = np.array((1, 1, 5, 5), dtype=np.int64) +y = np.array([[[[0, 0, 0, 0, 0], + [0, 5, 0, 6, 0], + [0, 0, 0, 0, 0], + [0, 7, 0, 8, 0], + [0, 0, 0, 0, 0]]]], dtype=np.float32) +expect(node, inputs=[xT, xI, output_shape], outputs=[y], name='test_maxunpool_export_with_output_shape') +``` + +
+ + +
+without_output_shape + +```python +node = onnx.helper.make_node( + 'MaxUnpool', + inputs=['xT', 'xI'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] +) +xT = np.array([[[[1, 2], + [3, 4]]]], dtype=np.float32) +xI = np.array([[[[5, 7], + [13, 15]]]], dtype=np.int64) +y = np.array([[[[0, 0, 0, 0], + [0, 1, 0, 2], + [0, 0, 0, 0], + [0, 3, 0, 4]]]], dtype=np.float32) +expect(node, inputs=[xT, xI], outputs=[y], name='test_maxunpool_export_without_output_shape') +``` + +
+ + +### **Mean** + + Element-wise mean of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 8 + +#### Inputs (1 - ∞) + +
+
data_0 (variadic, differentiable) : T
+
List of tensors for mean.
+
+ +#### Outputs + +
+
mean (differentiable) : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+mean + +```python +data_0 = np.array([3, 0, 2]).astype(np.float32) +data_1 = np.array([1, 3, 4]).astype(np.float32) +data_2 = np.array([2, 6, 6]).astype(np.float32) +result = np.array([2, 3, 4]).astype(np.float32) +node = onnx.helper.make_node( + 'Mean', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_mean_example') + +node = onnx.helper.make_node( + 'Mean', + inputs=['data_0'], + outputs=['result'], +) +expect(node, inputs=[data_0], outputs=[data_0], + name='test_mean_one_input') + +result = np.divide(np.add(data_0, data_1), 2.) +node = onnx.helper.make_node( + 'Mean', + inputs=['data_0', 'data_1'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_mean_two_inputs') +``` + +
+ + +### **MeanVarianceNormalization** + + A MeanVarianceNormalization Function: Perform mean variance normalization + on the input tensor X using formula:
``` (X-EX)/sqrt(E(X-EX)^2) ``` + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 9 + +#### Attributes + +
+
axes : list of ints (default is ['0', '2', '3'])
+
A list of integers, along which to reduce. The default is to caculate along axes [0,2,3] for calculating mean and variance along each channel. Two variables with the same C-coordinate are associated with the same mean and variance.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+meanvariancenormalization + +```python +node = onnx.helper.make_node( + 'MeanVarianceNormalization', + inputs=['X'], + outputs=['Y'] +) + +input_data = np.array([[[[0.8439683], [0.5665144], [0.05836735]], + [[0.02916367], [0.12964272], [0.5060197]], + [[0.79538304], [0.9411346], [0.9546573]]], + [[[0.17730942], [0.46192095], [0.26480448]], + [[0.6746842], [0.01665257], [0.62473077]], + [[0.9240844], [0.9722341], [0.11965699]]], + [[[0.41356155], [0.9129373], [0.59330076]], + [[0.81929934], [0.7862604], [0.11799799]], + [[0.69248444], [0.54119414], [0.07513223]]]], dtype=np.float32) + +# Calculate expected output data +data_mean = np.mean(input_data, axis=(0, 2, 3), keepdims=1) +data_mean_squared = np.power(data_mean, 2) +data_squared = np.power(input_data, 2) +data_squared_mean = np.mean(data_squared, axis=(0, 2, 3), keepdims=1) +std = np.sqrt(data_squared_mean - data_mean_squared) +expected_output = (input_data - data_mean) / (std + 1e-9) + +expect(node, inputs=[input_data], outputs=[expected_output], + name='test_mvn') +``` + +
+ + +### **Min** + + Element-wise min of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 8, 12 + +#### Inputs (1 - ∞) + +
+
data_0 (variadic, differentiable) : T
+
List of tensors for min.
+
+ +#### Outputs + +
+
min (differentiable) : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to numeric tensors.
+
+ + +#### Examples + +
+min + +```python +data_0 = np.array([3, 2, 1]).astype(np.float32) +data_1 = np.array([1, 4, 4]).astype(np.float32) +data_2 = np.array([2, 5, 0]).astype(np.float32) +result = np.array([1, 2, 0]).astype(np.float32) +node = onnx.helper.make_node( + 'Min', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_min_example') + +node = onnx.helper.make_node( + 'Min', + inputs=['data_0'], + outputs=['result'], +) +expect(node, inputs=[data_0], outputs=[data_0], + name='test_min_one_input') + +result = np.minimum(data_0, data_1) +node = onnx.helper.make_node( + 'Min', + inputs=['data_0', 'data_1'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_min_two_inputs') +``` + +
+ + +
+min_all_numeric_types + +```python +for op_dtype in all_numeric_dtypes: + data_0 = np.array([3, 2, 1]).astype(op_dtype) + data_1 = np.array([1, 4, 4]).astype(op_dtype) + result = np.array([1, 2, 1]).astype(op_dtype) + node = onnx.helper.make_node( + 'Min', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_min_{0}'.format(np.dtype(op_dtype).name)) +``` + +
+ + +### **Mod** + + Performs element-wise binary modulus (with Numpy-style broadcasting support). + The sign of the remainder is the same as that of the Divisor. + + Mod operator can also behave like C fmod() or numpy.fmod. In this case, the sign of the remainder however, will be the same as the Dividend + (in contrast to integer mod). To force a behavior like numpy.fmod() an 'fmod' Attribute is provided. + This attribute is set to 0 by default causing the behavior to be like integer mod. + Setting this attribute to 1 causes the remainder to be calculated similar to that of numpy.fmod(). + + If the input type is floating point, then `fmod` attribute must be set to 1. + + In case of dividend being zero, the results will be platform dependent. + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 10 + +#### Attributes + +
+
fmod : int (default is 0)
+
Whether the operator should behave like fmod (default=0 meaning it will do integer mods); Set this to 1 to force fmod treatment
+
+ +#### Inputs + +
+
A (differentiable) : T
+
Dividend tensor
+
B (non-differentiable) : T
+
Divisor tensor
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Remainder tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ + +#### Examples + +
+mod_broadcast + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.arange(0, 30).reshape([3, 2, 5]).astype(np.int32) +y = np.array([7]).astype(np.int32) +z = np.mod(x, y) +# array([[[0, 1, 2, 3, 4], +# [5, 6, 0, 1, 2]], + +# [[3, 4, 5, 6, 0], +# [1, 2, 3, 4, 5]], + +# [[6, 0, 1, 2, 3], +# [4, 5, 6, 0, 1]]], dtype=int32) +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_broadcast') +``` + +
+ + +
+mod_int64_fmod + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int64) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int64) +z = np.fmod(x, y) # expected output [ 0, 1, 5, 0, -1, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_int64_fmod') +``` + +
+ + +
+mod_mixed_sign_float16 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 +) + +x = np.array([-4.3, 7.2, 5.0, 4.3, -7.2, 8.0]).astype(np.float16) +y = np.array([2.1, -3.4, 8.0, -2.1, 3.4, 5.0]).astype(np.float16) +z = np.fmod(x, y) # expected output [-0.10156, 0.3984 , 5. , 0.10156, -0.3984 , 3.] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_float16') +``` + +
+ + +
+mod_mixed_sign_float32 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 +) + +x = np.array([-4.3, 7.2, 5.0, 4.3, -7.2, 8.0]).astype(np.float32) +y = np.array([2.1, -3.4, 8.0, -2.1, 3.4, 5.0]).astype(np.float32) +z = np.fmod(x, y) # expected output [-0.10000038, 0.39999962, 5. , 0.10000038, -0.39999962, 3.] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_float32') +``` + +
+ + +
+mod_mixed_sign_float64 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 +) + +x = np.array([-4.3, 7.2, 5.0, 4.3, -7.2, 8.0]).astype(np.float64) +y = np.array([2.1, -3.4, 8.0, -2.1, 3.4, 5.0]).astype(np.float64) +z = np.fmod(x, y) # expected output [-0.1, 0.4, 5. , 0.1, -0.4, 3.] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_float64') +``` + +
+ + +
+mod_mixed_sign_int16 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int16) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int16) +z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int16') +``` + +
+ + +
+mod_mixed_sign_int32 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int32) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int32) +z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int32') +``` + +
+ + +
+mod_mixed_sign_int64 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int64) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int64) +z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int64') +``` + +
+ + +
+mod_mixed_sign_int8 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int8) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int8) +z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int8') +``` + +
+ + +
+mod_uint16 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([4, 7, 5]).astype(np.uint16) +y = np.array([2, 3, 8]).astype(np.uint16) +z = np.mod(x, y) # expected output [0, 1, 5] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint16') +``` + +
+ + +
+mod_uint32 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([4, 7, 5]).astype(np.uint32) +y = np.array([2, 3, 8]).astype(np.uint32) +z = np.mod(x, y) # expected output [0, 1, 5] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint32') +``` + +
+ + +
+mod_uint64 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([4, 7, 5]).astype(np.uint64) +y = np.array([2, 3, 8]).astype(np.uint64) +z = np.mod(x, y) # expected output [0, 1, 5] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint64') +``` + +
+ + +
+mod_uint8 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([4, 7, 5]).astype(np.uint8) +y = np.array([2, 3, 8]).astype(np.uint8) +z = np.mod(x, y) # expected output [0, 1, 5] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint8') +``` + +
+ + +### **Mul** + + Performs element-wise binary multiplication (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 7, 13 + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+mul + +```python +node = onnx.helper.make_node( + 'Mul', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.float32) +z = x * y # expected output [4., 10., 18.] +expect(node, inputs=[x, y], outputs=[z], + name='test_mul_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = x * y +expect(node, inputs=[x, y], outputs=[z], + name='test_mul') + +x = np.random.randint(4, size=(3, 4, 5), dtype=np.uint8) +y = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) +z = x * y +expect(node, inputs=[x, y], outputs=[z], + name='test_mul_uint8') +``` + +
+ + +
+mul_broadcast + +```python +node = onnx.helper.make_node( + 'Mul', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = x * y +expect(node, inputs=[x, y], outputs=[z], + name='test_mul_bcast') +``` + +
+ + +### **Multinomial** + + Generate a tensor of samples from a multinomial distribution according to the probabilities + of each of the possible outcomes. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int (default is 6)
+
(Optional) The data type for the elements of the output tensor, if not specified, we will use int32.
+
sample_size : int (default is 1)
+
Number of times to sample.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs + +
+
input : T1
+
Input tensor with shape [batch_size, class_size], where class_size is the number of all possible outcomes. Each value along the axis zero represents the unnormalized log-probability of each corresponding outcome in a batch.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor with shape [batch_size, sample_size], where sample_size is the number of times to sample. Each value along the axis zero represents the outcome of the corresponding sample in a batch.
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
T2 : tensor(int32), tensor(int64)
+
Constrain output types to integral tensors.
+
+ + +### **Neg** + + Neg takes one input data (Tensor) and produces one output data + (Tensor) where each element flipped sign, y = -x, is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(int32), tensor(int8), tensor(int16), tensor(int64), tensor(float16), tensor(double), tensor(bfloat16)
+
Constrain input and output types to signed numeric tensors.
+
+ + +#### Examples + +
+neg + +```python +node = onnx.helper.make_node( + 'Neg', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-4, 2]).astype(np.float32) +y = np.negative(x) # expected output [4., -2.], +expect(node, inputs=[x], outputs=[y], + name='test_neg_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.negative(x) +expect(node, inputs=[x], outputs=[y], + name='test_neg') +``` + +
+ + +### **NegativeLogLikelihoodLoss** + + A NegativeLogLikelihoodLoss operator computes (weighted) negative log likelihood loss. + Its "input" tensor has the shape of (N, C, d1, d2, ..., dk) where k >= 0. + The "input" tensor contains log-probabilities for input[n, :, d_1, d_2,..., d_k] being in a class of [0, C). + The operator's "target" input tensor has the shape of (N, d1, d2, ..., dk). It encodes class labels (one of C classes) + or it may contain a special value (indicated by an attribute ignore_index) for N x d1 x d2 x ... x dk samples. + The loss value for input[n, :, d_1, d_2,...d_k] being classified as class c = target[n][d_1][d_2]...[d_k] is computed as: + + loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k]. + + When an optional "weight" is provided, the sample loss is calculated as: + + loss[n][d_1][d_2]...[d_k] = -input[n][c][d_1][d_2]...[d_k] * weight[c]. + + loss is zero for the case when target-value equals ignore_index. + + loss[n][d_1][d_2]...[d_k] = 0, when target[n][d_1][d_2]...[d_k] = ignore_index + + If "reduction" attribute is set to "none", the operator's output will be the above loss with shape (N, d1, d2, ..., dk). + If "reduction" attribute is set to "mean" (the default attribute value), the output loss is (weight) averaged: + + mean(loss), if "weight" is not provided, + + or if weight is provided, + + sum(loss) / sum(weight[target[n][d_1][d_2]...[d_k]]]), for all samples. + + If "reduction" attribute is set to "sum", the output is a scalar: + sum(loss). + + See also https://pytorch.org/docs/stable/nn.html#torch.nn.NLLLoss. + + Example 1: + + // negative log likelihood loss, "none" reduction + N, C, d1 = 2, 3, 2 + input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]], + [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]] + target = [[2, 1], [0, 2]] + + loss = np.zeros((N, d1)) + for n in range(N): + for d_1 in range(d1): + c = target[n][d_1] + loss[n][d_1] = -input[n][c][d_1] + + // print(loss) + // [[-3. -2.] + // [-0. -2.]] + + Example 2: + + // weighted negative log likelihood loss, sum reduction + N, C, d1 = 2, 3, 2 + input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]], + [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]] + target = [[2, 1], [0, 2]] + weight = [0.2, 0.3, 0.1] + loss = np.zeros((N, d1)) + for n in range(N): + for d_1 in range(d1): + c = target[n][d_1] + loss[n][d_1] = -input[n][c][d_1] * weight[c] + + loss = np.sum(loss) + // print(loss) + // -1.1 + + Example 3: + + // weighted negative log likelihood loss, mean reduction + N, C, d1 = 2, 3, 2 + input = [[[1.0, 2.0], [2.0, 2.0], [3.0, 2.0]], + [[0.0, 1.0], [2.0, 2.0], [1.0, 2]]] + target = [[2, 1], [0, 2]] + weight = [0.2, 0.3, 0.1] + loss = np.zeros((N, d1)) + weight_total = 0 + for n in range(N): + for d_1 in range(d1): + c = target[n][d_1] + loss[n][d_1] = -input[n][c][d_1] * weight[c] + weight_total = weight_total + weight[c] + + loss = np.sum(loss) / weight_total + // print(loss) + // -1.57 + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 12 + +#### Attributes + +
+
ignore_index : int
+
Specifies a target value that is ignored and does not contribute to the input gradient. It's an optional value.
+
reduction : string (default is mean)
+
Type of reduction to apply to loss: none, sum, mean (default). 'none': the output is the loss for each sample. 'sum': the output will be summed. 'mean': the sum of the output will be divided by the sum of applied weights.
+
+ +#### Inputs (2 - 3) + +
+
input (differentiable) : T
+
Input tensor of shape (N, C) or (N, C, d1, d2, ..., dk).
+
target (non-differentiable) : Tind
+
Target tensor of shape (N) or (N, d1, d2, ..., dk). Target element value shall be in range of [0, C). If ignore_index is specified, it may have a value outside [0, C) and the target values should either be in the range [0, C) or have the value ignore_index.
+
weight (optional, non-differentiable) : T
+
Optional rescaling weight tensor. If given, it has to be a tensor of size C. Otherwise, it is treated as if having all ones.
+
+ +#### Outputs + +
+
loss (differentiable) : T
+
The negative log likelihood loss
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input, weight, and output types to floating-point tensors.
+
Tind : tensor(int32), tensor(int64)
+
Constrain target to integer types
+
+ + +#### Examples + +
+input_shape_is_NC + +```python +reduction = 'none' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C = 3, 5 +np.random.seed(0) +input = np.random.rand(N, C).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, )).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NC') +``` + +
+ + +
+input_shape_is_NCd1 + +```python +reduction = 'mean' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C, d1 = 3, 5, 2 +np.random.seed(0) +input = np.random.rand(N, C, d1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1') +``` + +
+ + +
+input_shape_is_NCd1_ii + +```python +reduction = 'mean' +ignore_index = np.int64(1) +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index +) + +N, C, d1 = 3, 5, 2 +np.random.seed(0) +input = np.random.rand(N, C, d1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) +target[0][0] = np.int64(1) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction, ignore_index=ignore_index) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_ii') +``` + +
+ + +
+input_shape_is_NCd1_mean_weight_negative_ii + +```python +reduction = 'mean' +ignore_index = np.int64(-1) + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1 = 3, 5, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1)).astype(np.int64) +target[0][0] = -1 +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_mean_weight_negative_ii') +``` + +
+ + +
+input_shape_is_NCd1_weight + +```python +reduction = 'mean' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction +) + +N, C, d1 = 3, 5, 2 +np.random.seed(0) +input = np.random.rand(N, C, d1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_weight') +``` + +
+ + +
+input_shape_is_NCd1_weight_ii + +```python +reduction = 'mean' +ignore_index = np.int64(1) +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index +) + +N, C, d1 = 3, 5, 2 +np.random.seed(0) +input = np.random.rand(N, C, d1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) +target[0][0] = np.int64(1) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction, ignore_index=ignore_index) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_weight_ii') +``` + +
+ + +
+input_shape_is_NCd1d2 + +```python +reduction = 'none' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2') +``` + +
+ + +
+input_shape_is_NCd1d2_no_weight_reduction_mean_ii + +```python +reduction = 'mean' +ignore_index = np.int64(1) +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +target[0][0][0] = np.int64(1) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, reduction=reduction, ignore_index=ignore_index) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_no_weight_reduction_mean_ii') +``` + +
+ + +
+input_shape_is_NCd1d2_reduction_mean + +```python +reduction = 'mean' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_reduction_mean') +``` + +
+ + +
+input_shape_is_NCd1d2_reduction_sum + +```python +reduction = 'sum' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_reduction_sum') +``` + +
+ + +
+input_shape_is_NCd1d2_with_weight + +```python +reduction = 'none' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight') +``` + +
+ + +
+input_shape_is_NCd1d2_with_weight_reduction_mean + +```python +reduction = 'mean' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight_reduction_mean') +``` + +
+ + +
+input_shape_is_NCd1d2_with_weight_reduction_sum + +```python +reduction = 'sum' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight_reduction_sum') +``` + +
+ + +
+input_shape_is_NCd1d2_with_weight_reduction_sum_ii + +```python +reduction = 'sum' +ignore_index = np.int64(0) +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +target[0][0][0] = np.int64(0) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction, ignore_index=ignore_index) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight_reduction_sum_ii') +``` + +
+ + +
+input_shape_is_NCd1d2d3_none_no_weight_negative_ii + +```python +reduction = 'none' +ignore_index = np.int64(-5) + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1, dim2, dim3 = 3, 5, 6, 6, 5 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2, dim3).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3)).astype(np.int64) +target[0][0][0][0] = -5 + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3_none_no_weight_negative_ii') +``` + +
+ + +
+input_shape_is_NCd1d2d3_sum_weight_high_ii + +```python +reduction = 'sum' +ignore_index = np.int64(10) + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index) + +N, C = 3, 5 +np.random.seed(0) +input = np.random.rand(N, C).astype(np.float32) +target = np.random.randint(0, high=C, size=(N)) +target[0] = 10 +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3_sum_weight_high_ii') +``` + +
+ + +
+input_shape_is_NCd1d2d3d4d5_mean_weight + +```python +reduction = 'mean' + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + weight=weight, + reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3d4d5_mean_weight') +``` + +
+ + +
+input_shape_is_NCd1d2d3d4d5_none_no_weight + +```python +reduction = 'none' + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3d4d5_none_no_weight') +``` + +
+ + +### **NonMaxSuppression** + + Filter out boxes that have high intersection-over-union (IOU) overlap with previously selected boxes. + Bounding boxes with score less than score_threshold are removed. Bounding box format is indicated by attribute center_point_box. + Note that this algorithm is agnostic to where the origin is in the coordinate system and more generally is invariant to + orthogonal transformations and translations of the coordinate system; thus translating or reflections of the coordinate system + result in the same boxes being selected by the algorithm. + The selected_indices output is a set of integers indexing into the input collection of bounding boxes representing the selected boxes. + The bounding box coordinates corresponding to the selected indices can then be obtained using the Gather or GatherND operation. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +Other versions of this operator: 10 + +#### Attributes + +
+
center_point_box : int (default is 0)
+
Integer indicate the format of the box data. The default is 0. 0 - the box data is supplied as [y1, x1, y2, x2] where (y1, x1) and (y2, x2) are the coordinates of any diagonal pair of box corners and the coordinates can be provided as normalized (i.e., lying in the interval [0, 1]) or absolute. Mostly used for TF models. 1 - the box data is supplied as [x_center, y_center, width, height]. Mostly used for Pytorch models.
+
+ +#### Inputs (2 - 5) + +
+
boxes : tensor(float)
+
An input tensor with shape [num_batches, spatial_dimension, 4]. The single box data format is indicated by center_point_box.
+
scores : tensor(float)
+
An input tensor with shape [num_batches, num_classes, spatial_dimension]
+
max_output_boxes_per_class (optional) : tensor(int64)
+
Integer representing the maximum number of boxes to be selected per batch per class. It is a scalar. Default to 0, which means no output.
+
iou_threshold (optional) : tensor(float)
+
Float representing the threshold for deciding whether boxes overlap too much with respect to IOU. It is scalar. Value range [0, 1]. Default to 0.
+
score_threshold (optional) : tensor(float)
+
Float representing the threshold for deciding when to remove boxes based on score. It is a scalar.
+
+ +#### Outputs + +
+
selected_indices : tensor(int64)
+
selected indices from the boxes tensor. [num_selected_indices, 3], the selected index format is [batch_index, class_index, box_index].
+
+ +#### Type Constraints + + + +#### Examples + +
+nonmaxsuppression_center_point_box_format + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'], + center_point_box=1 +) +boxes = np.array([[ + [0.5, 0.5, 1.0, 1.0], + [0.5, 0.6, 1.0, 1.0], + [0.5, 0.4, 1.0, 1.0], + [0.5, 10.5, 1.0, 1.0], + [0.5, 10.6, 1.0, 1.0], + [0.5, 100.5, 1.0, 1.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 0, 5]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_center_point_box_format') +``` + +
+ + +
+nonmaxsuppression_flipped_coordinates + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [1.0, 1.0, 0.0, 0.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, 0.9, 1.0, -0.1], + [0.0, 10.0, 1.0, 11.0], + [1.0, 10.1, 0.0, 11.1], + [1.0, 101.0, 0.0, 100.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 0, 5]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_flipped_coordinates') +``` + +
+ + +
+nonmaxsuppression_identical_boxes + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_identical_boxes') +``` + +
+ + +
+nonmaxsuppression_limit_output_size + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([2]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_limit_output_size') +``` + +
+ + +
+nonmaxsuppression_single_box + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0] +]]).astype(np.float32) +scores = np.array([[[0.9]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_single_box') +``` + +
+ + +
+nonmaxsuppression_suppress_by_IOU + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 0, 5]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_suppress_by_IOU') +``` + +
+ + +
+nonmaxsuppression_suppress_by_IOU_and_scores + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.4]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_suppress_by_IOU_and_scores') +``` + +
+ + +
+nonmaxsuppression_two_batches + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[[0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0]], + [[0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0]]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]], + [[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([2]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [1, 0, 3], [1, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_two_batches') +``` + +
+ + +
+nonmaxsuppression_two_classes + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3], + [0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([2]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 1, 3], [0, 1, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_two_classes') +``` + +
+ + +### **NonZero** + + Returns the indices of the elements that are non-zero + (in row-major order - by dimension). + NonZero behaves similar to numpy.nonzero: + https://docs.scipy.org/doc/numpy/reference/generated/numpy.nonzero.html + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 9 + +#### Inputs + +
+
X (non-differentiable) : T
+
input
+
+ +#### Outputs + +
+
Y (non-differentiable) : tensor(int64)
+
output
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to all tensor types.
+
+ + +#### Examples + +
+nonzero + +```python +node = onnx.helper.make_node( + 'NonZero', + inputs=['condition'], + outputs=['result'], +) + +condition = np.array([[1, 0], [1, 1]], dtype=bool) +result = np.array(np.nonzero(condition), dtype=np.int64) # expected output [[0, 1, 1], [0, 0, 1]] +expect(node, inputs=[condition], outputs=[result], + name='test_nonzero_example') +``` + +
+ + +### **Not** + + Returns the negation of the input tensor element-wise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
X (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input/output to boolean tensors.
+
+ + +#### Examples + +
+not + +```python +node = onnx.helper.make_node( + 'Not', + inputs=['x'], + outputs=['not'], +) + +# 2d +x = (np.random.randn(3, 4) > 0).astype(bool) +expect(node, inputs=[x], outputs=[np.logical_not(x)], + name='test_not_2d') + +# 3d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +expect(node, inputs=[x], outputs=[np.logical_not(x)], + name='test_not_3d') + +# 4d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +expect(node, inputs=[x], outputs=[np.logical_not(x)], + name='test_not_4d') +``` + +
+ + +### **OneHot** + + Produces a one-hot tensor based on inputs. + The locations represented by the index values in the 'indices' input tensor will have 'on_value' + and the other locations will have 'off_value' in the output tensor, where 'on_value' and 'off_value' + are specified as part of required input argument 'values', which is a two-element tensor of format + [off_value, on_value]. The rank of the output tensor will be one greater than the rank of the + input tensor. The additional dimension is for one-hot representation. The additional dimension will + be inserted at the position specified by 'axis'. If 'axis' is not specified then then additional + dimension will be inserted as the innermost dimension, i.e. axis=-1. The size of the additional + dimension is specified by required scalar input 'depth'. The type of the output tensor is the same + as the type of the 'values' input. Any entries in the 'indices' input tensor with values outside + the range [-depth, depth-1] will result in one-hot representation with all 'off_value' values in the + output tensor. + + when axis = 0: + output[input[i, j, k], i, j, k] = 1 for all i, j, k and 0 otherwise. + + when axis = -1: + output[i, j, k, input[i, j, k]] = 1 for all i, j, k and 0 otherwise. + + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +Other versions of this operator: 9 + +#### Attributes + +
+
axis : int (default is -1)
+
(Optional) Axis along which one-hot representation in added. Default: axis=-1. axis=-1 means that the additional dimension will be inserted as the innermost/last dimension in the output tensor. Negative value means counting dimensions from the back. Accepted range is [-r-1, r] where r = rank(indices).
+
+ +#### Inputs + +
+
indices (non-differentiable) : T1
+
Input tensor containing indices. Any entries in the 'indices' input tensor with values outside the range [-depth, depth-1] will result in one-hot representation with all 'off_value' values in the output tensor.In case 'indices' is of non-integer type, the values will be casted to int64 before use.
+
depth (non-differentiable) : T2
+
Scalar specifying the number of classes in one-hot tensor. This is also the size of the one-hot dimension (specified by 'axis' attribute) added on in the output tensor. The values in the 'indices' input tensor are expected to be in the range [-depth, depth-1]. In case 'depth' is of non-integer type, it will be casted to int64 before use.
+
values (non-differentiable) : T3
+
Rank 1 tensor containing exactly two elements, in the format [off_value, on_value], where 'on_value' is the value used for filling locations specified in 'indices' input tensor, and 'off_value' is the value used for filling locations other than those specified in 'indices' input tensor.
+
+ +#### Outputs + +
+
output (non-differentiable) : T3
+
Tensor of rank one greater than input tensor 'indices', i.e. rank(output) = rank(indices) + 1. The data type for the elements of the output tensor is the same as the type of input 'values' is used.
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input to only numeric types.
+
T2 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input to only numeric types.
+
T3 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type.
+
+ + +#### Examples + +
+with_axis + +```python +axisValue = 1 +on_value = 3 +off_value = 1 +output_type = np.float32 +node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'], + axis=axisValue +) +indices = np.array([[1, 9], + [2, 4]], dtype=np.float32) +depth = np.float32(10) +values = np.array([off_value, on_value], dtype=output_type) +y = one_hot(indices, depth, axis=axisValue, dtype=output_type) +y = y * (on_value - off_value) + off_value +expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_with_axis') +``` + +
+ + +
+with_negative_axis + +```python +axisValue = -2 +on_value = 3 +off_value = 1 +output_type = np.float32 +node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'], + axis=axisValue +) +indices = np.array([[1, 9], + [2, 4]], dtype=np.float32) +depth = np.float32(10) +values = np.array([off_value, on_value], dtype=output_type) +y = one_hot(indices, depth, axis=axisValue, dtype=output_type) +y = y * (on_value - off_value) + off_value +expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_with_negative_axis') +``` + +
+ + +
+with_negative_indices + +```python +axisValue = 1 +on_value = 3 +off_value = 1 +output_type = np.float32 +node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'], + axis=axisValue +) +indices = np.array([0, -7, -8], dtype=np.int64) + +# print(y) +# [[3. 1. 1. 1. 1. 1. 1. 1. 1. 1.] +# [1. 1. 1. 3. 1. 1. 1. 1. 1. 1.] +# [1. 1. 3. 1. 1. 1. 1. 1. 1. 1.]] + +depth = np.float32(10) +values = np.array([off_value, on_value], dtype=output_type) +y = one_hot(indices, depth, axis=axisValue, dtype=output_type) +y = y * (on_value - off_value) + off_value +expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_negative_indices') +``` + +
+ + +
+without_axis + +```python +on_value = 5 +off_value = 2 +output_type = np.int32 +node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'] +) +indices = np.array([0, 7, 8], dtype=np.int64) +depth = np.float32(12) +values = np.array([off_value, on_value], dtype=output_type) +y = one_hot(indices, depth, dtype=output_type) +y = y * (on_value - off_value) + off_value +expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_without_axis') +``` + +
+ + +### **Optional** + + Constructs an optional-type value containing either an empty optional of a certain type specified by the attribute, + or a non-empty value containing the input element. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Attributes + +
+
type : type_proto
+
Type of the element in the optional output
+
+ +#### Inputs (0 - 1) + +
+
input (optional) : V
+
The input element.
+
+ +#### Outputs + +
+
output : O
+
The optional output enclosing the input element.
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain input type to all tensor and sequence types.
+
O : optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
Constrain output type to all optional tensor or optional sequence types.
+
+ + +### **OptionalGetElement** + + Outputs the element in the optional-type input. It is an error if the input value does not have an element + and the behavior is undefined in this case. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Inputs + +
+
input : O
+
The optional input.
+
+ +#### Outputs + +
+
output : V
+
Output element in the optional input.
+
+ +#### Type Constraints + +
+
O : optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
Constrain input type to optional tensor and optional sequence types.
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain output type to all tensor or sequence types.
+
+ + +### **OptionalHasElement** + + Returns true if the optional-type input contains an element. If it is an empty optional-type, this op returns false. + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +#### Inputs + +
+
input : O
+
The optional input.
+
+ +#### Outputs + +
+
output : B
+
A scalar boolean tensor. If true, it indicates that optional-type input contains an element. Otherwise, it is empty.
+
+ +#### Type Constraints + +
+
O : optional(seq(tensor(uint8))), optional(seq(tensor(uint16))), optional(seq(tensor(uint32))), optional(seq(tensor(uint64))), optional(seq(tensor(int8))), optional(seq(tensor(int16))), optional(seq(tensor(int32))), optional(seq(tensor(int64))), optional(seq(tensor(float16))), optional(seq(tensor(float))), optional(seq(tensor(double))), optional(seq(tensor(string))), optional(seq(tensor(bool))), optional(seq(tensor(complex64))), optional(seq(tensor(complex128))), optional(tensor(uint8)), optional(tensor(uint16)), optional(tensor(uint32)), optional(tensor(uint64)), optional(tensor(int8)), optional(tensor(int16)), optional(tensor(int32)), optional(tensor(int64)), optional(tensor(float16)), optional(tensor(float)), optional(tensor(double)), optional(tensor(string)), optional(tensor(bool)), optional(tensor(complex64)), optional(tensor(complex128))
+
Constrain input type to optional tensor and optional sequence types.
+
B : tensor(bool)
+
Constrain output to a boolean tensor.
+
+ + +#### Examples + +
+empty + +```python +optional = None +tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.INT32, shape=[]) +input_type_proto = onnx.helper.make_optional_type_proto(tensor_type_proto) +node = onnx.helper.make_node( + 'OptionalHasElement', + inputs=['optional_input'], + outputs=['output'] +) +output = optional_has_element_reference_implementation(optional) +expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_has_element_empty') +``` + +
+ + +
+get_element_sequence + +```python +optional = [np.array([1, 2, 3, 4]).astype(np.int32)] +tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.INT32, shape=[4, ]) +seq_type_proto = onnx.helper.make_sequence_type_proto(tensor_type_proto) +input_type_proto = onnx.helper.make_optional_type_proto(seq_type_proto) + +node = onnx.helper.make_node( + 'OptionalGetElement', + inputs=['optional_input'], + outputs=['output'] +) +output = optional_get_element_reference_implementation(optional) +expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_get_element_sequence') +``` + +
+ + +
+get_element_tensor + +```python +optional = np.array([1, 2, 3, 4]).astype(np.float32) +tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.FLOAT, shape=[4, ]) +input_type_proto = onnx.helper.make_optional_type_proto(tensor_type_proto) + +node = onnx.helper.make_node( + 'OptionalGetElement', + inputs=['optional_input'], + outputs=['output'] +) +output = optional_get_element_reference_implementation(optional) +expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_get_element') +``` + +
+ + +
+optionalhaselement + +```python +optional = np.array([1, 2, 3, 4]).astype(np.float32) +tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.FLOAT, shape=[4, ]) +input_type_proto = onnx.helper.make_optional_type_proto(tensor_type_proto) +node = onnx.helper.make_node( + 'OptionalHasElement', + inputs=['optional_input'], + outputs=['output'] +) +output = optional_has_element_reference_implementation(optional) +expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_has_element') +``` + +
+ + +### **Or** + + Returns the tensor resulted from performing the `or` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input to boolean tensor.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ + +#### Examples + +
+or + +```python +node = onnx.helper.make_node( + 'Or', + inputs=['x', 'y'], + outputs=['or'], +) + +# 2d +x = (np.random.randn(3, 4) > 0).astype(bool) +y = (np.random.randn(3, 4) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or2d') + +# 3d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(3, 4, 5) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or3d') + +# 4d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or4d') +``` + +
+ + +
+or_broadcast + +```python +node = onnx.helper.make_node( + 'Or', + inputs=['x', 'y'], + outputs=['or'], +) + +# 3d vs 1d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(5) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast3v1d') + +# 3d vs 2d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(4, 5) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast3v2d') + +# 4d vs 2d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(5, 6) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast4v2d') + +# 4d vs 3d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(4, 5, 6) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast4v3d') + +# 4d vs 4d +x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool) +y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast4v4d') +``` + +
+ + +### **PRelu** + + PRelu takes input data (Tensor) and slope tensor as input, and produces one + output data (Tensor) where the function `f(x) = slope * x for x < 0`, + `f(x) = x for x >= 0`., is applied to the data tensor elementwise. + + **History** + - Version 16 adds bfloat16 to the types allowed. + This operator supports **unidirectional broadcasting** (tensor slope should be unidirectional broadcastable to input tensor X); for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 7, 9 + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
slope (differentiable) : T
+
Slope tensor. The shape of slope can be smaller then first input X; if so, its shape must be unidirectional broadcastable to X
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor (same size as X)
+
+ +#### Type Constraints + +
+
T : tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(uint32), tensor(uint64), tensor(int32), tensor(int64)
+
Constrain input and output types to float/int tensors.
+
+ + +#### Examples + +
+prelu + +```python +node = onnx.helper.make_node( + 'PRelu', + inputs=['x', 'slope'], + outputs=['y'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +slope = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * slope + +expect(node, inputs=[x, slope], outputs=[y], + name='test_prelu_example') +``` + +
+ + +
+prelu_broadcast + +```python +node = onnx.helper.make_node( + 'PRelu', + inputs=['x', 'slope'], + outputs=['y'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +slope = np.random.randn(5).astype(np.float32) +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * slope + +expect(node, inputs=[x, slope], outputs=[y], + name='test_prelu_broadcast') +``` + +
+ + +### **Pad** + + Given a tensor containing the data to be padded (`data`), a tensor containing the number of start and end pad values for axis (`pads`), (optionally) a `mode`, and (optionally) `constant_value`, + a padded tensor (`output`) is generated. + + The three supported `modes` are (similar to corresponding modes supported by `numpy.pad`): + + 1) `constant`(default) - pads with a given constant value as specified by `constant_value` (which defaults to 0, empty string, or False) + + 2) `reflect` - pads with the reflection of the vector mirrored on the first and last values of the vector along each axis + + 3) `edge` - pads with the edge values of array + + + Example 1 (`constant` mode): + Insert 0 pads to the beginning of the second dimension. + + data = + [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + + pads = [0, 2, 0, 0] + + mode = 'constant' + + constant_value = 0.0 + + output = + [ + [0.0, 0.0, 1.0, 1.2], + [0.0, 0.0, 2.3, 3.4], + [0.0, 0.0, 4.5, 5.7], + ] + + + Example 2 (`reflect` mode): + data = + [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + + pads = [0, 2, 0, 0] + + mode = 'reflect' + + output = + [ + [1.0, 1.2, 1.0, 1.2], + [2.3, 3.4, 2.3, 3.4], + [4.5, 5.7, 4.5, 5.7], + ] + + + Example 3 (`edge` mode): + data = + [ + [1.0, 1.2], + [2.3, 3.4], + [4.5, 5.7], + ] + + pads = [0, 2, 0, 0] + + mode = 'edge' + + output = + [ + [1.0, 1.0, 1.0, 1.2], + [2.3, 2.3, 2.3, 3.4], + [4.5, 4.5, 4.5, 5.7], + ] + + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 2, 11 + +#### Attributes + +
+
mode : string (default is constant)
+
Supported modes: `constant`(default), `reflect`, `edge`
+
+ +#### Inputs (2 - 3) + +
+
data (differentiable) : T
+
Input tensor.
+
pads (non-differentiable) : tensor(int64)
+
Tensor of integers indicating the number of padding elements to add or remove (if negative) at the beginning and end of each axis. For 2D input tensor, it is the number of pixels. `pads` should be a 1D tensor of shape [2 * input_rank]. `pads` format should be: [x1_begin, x2_begin,...,x1_end, x2_end,...], where xi_begin is the number of pad values added at the beginning of axis `i` and xi_end, the number of pad values added at the end of axis `i`.
+
constant_value (optional, non-differentiable) : T
+
(Optional) A scalar value to be used if the mode chosen is `constant` (by default it is 0, empty string or False).
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor after padding.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+constant_pad + +```python +node = onnx.helper.make_node( + 'Pad', + inputs=['x', 'pads', 'value'], + outputs=['y'], + mode='constant' +) +x = np.random.randn(1, 3, 4, 5).astype(np.float32) +pads = np.array([0, 0, 1, 3, 0, 0, 2, 4]).astype(np.int64) # pad order [x1_begin, x2_begin, ..., x1_end, x2_end, ...] +value = np.float32(1.2) +y = pad_impl( + x, + pads, + 'constant', + 1.2 +) + +expect(node, inputs=[x, pads, value], outputs=[y], + name='test_constant_pad') +``` + +
+ + +
+reflection_and_edge_pad + +```python +for mode in ['edge', 'reflect']: + node = onnx.helper.make_node( + 'Pad', + inputs=['x', 'pads'], + outputs=['y'], + mode=mode + ) + x = np.random.randn(1, 3, 4, 5).astype(np.int32) + pads = np.array([0, 0, 1, 1, 0, 0, 1, 1]).astype(np.int64) # pad order [x1_begin, x2_begin, ..., x1_end, x2_end, ...] + y = pad_impl( + x, + pads, + mode + ) + + expect(node, inputs=[x, pads], outputs=[y], + name='test_{}_pad'.format(mode)) +``` + +
+ + +### **Pow** + + Pow takes input data (Tensor) and exponent Tensor, and + produces one output data (Tensor) where the function `f(x) = x^exponent`, + is applied to the data tensor elementwise. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +Other versions of this operator: 1, 7, 12, 13 + +#### Inputs + +
+
X (differentiable) : T
+
First operand, base of the exponent.
+
Y (differentiable) : T1
+
Second operand, power of the exponent.
+
+ +#### Outputs + +
+
Z (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input X and output types to float/int tensors.
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input Y types to float/int tensors.
+
+ + +#### Examples + +
+pow + +```python +node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.float32) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_example') + +x = np.arange(60).reshape(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = pow(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_pow') +``` + +
+ + +
+pow_broadcast + +```python +node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array(2).astype(np.float32) +z = pow(x, y) # expected output [1., 4., 9.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_bcast_scalar') + +node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], +) +x = np.array([[1, 2, 3], [4, 5, 6]]).astype(np.float32) +y = np.array([1, 2, 3]).astype(np.float32) +# expected output [[1, 4, 27], [4, 25, 216]] +z = pow(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_bcast_array') +``` + +
+ + +
+types + +```python +node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.int64) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_int64') + +x = np.array([1, 2, 3]).astype(np.int64) +y = np.array([4, 5, 6]).astype(np.float32) +z = pow(x, y) # expected output [1, 32, 729] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int64_float32') + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.int32) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_int32') + +x = np.array([1, 2, 3]).astype(np.int32) +y = np.array([4, 5, 6]).astype(np.float32) +z = pow(x, y) # expected output [1, 32, 729] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int32_float32') + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.uint64) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_uint64') + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.uint32) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_uint32') + +x = np.array([1, 2, 3]).astype(np.int64) +y = np.array([4, 5, 6]).astype(np.int64) +z = pow(x, y) # expected output [1, 32, 729] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int64_int64') + +x = np.array([1, 2, 3]).astype(np.int32) +y = np.array([4, 5, 6]).astype(np.int32) +z = pow(x, y) # expected output [1, 32, 729] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int32_int32') +``` + +
+ + +### **QLinearConv** + + The convolution operator consumes a quantized input tensor, its scale and zero point, + a quantized filter, its scale and zero point, and output's scale and zero point, + and computes the quantized output. Each scale and zero-point pair must have same shape. + It means they must be either scalars (per tensor) or 1-D tensors (per output channel). + Each input or output and its related zero point must have same type. + When bias is present it must be quantized using scale = input scale * weight scale and + zero point as 0. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
auto_pad : string (default is NOTSET)
+
auto_pad must be either NOTSET, SAME_UPPER, SAME_LOWER or VALID. Where default value is NOTSET, which means explicit padding is used. SAME_UPPER or SAME_LOWER mean pad the input so that `output_shape[i] = ceil(input_shape[i] / strides[i])` for each axis `i`. The padding is split between the two sides equally or almost equally (depending on whether it is even or odd). In case the padding is an odd number, the extra padding is added at the end for SAME_UPPER and at the beginning for SAME_LOWER.
+
dilations : list of ints
+
dilation value along each spatial axis of the filter. If not present, the dilation defaults to 1 along each spatial axis.
+
group : int (default is 1)
+
number of groups input channels and output channels are divided into. default is 1.
+
kernel_shape : list of ints
+
The shape of the convolution kernel. If not present, should be inferred from input 'w'.
+
pads : list of ints
+
Padding for the beginning and ending along each spatial axis, it can take any value greater than or equal to 0.The value represent the number of pixels added to the beginning and end part of the corresponding axis.`pads` format should be as follow [x1_begin, x2_begin...x1_end, x2_end,...], where xi_begin the number ofpixels added at the beginning of axis `i` and xi_end, the number of pixels added at the end of axis `i`.This attribute cannot be used simultaneously with auto_pad attribute. If not present, the padding defaultsto 0 along start and end of each spatial axis.
+
strides : list of ints
+
Stride along each spatial axis. If not present, the stride defaults to 1 along each spatial axis.
+
+ +#### Inputs (8 - 9) + +
+
x : T1
+
Input data tensor from previous layer; has size (N x C x H x W), where N is the batch size, C is the number of channels, and H and W are the height and width. Note that this is for the 2D image. Otherwise the size is (N x C x D1 x D2 ... x Dn). Optionally, if dimension denotation is in effect, the operation expects input data tensor to arrive with the dimension denotation of [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE ...].
+
x_scale : tensor(float)
+
Scale tensor for input 'x'. It's a scalar, which means a per-tensor/layer quantization.
+
x_zero_point : T1
+
Zero point tensor for input 'x'. It's a scalar, which means a per-tensor/layer quantization.
+
w : T2
+
The weight tensor that will be used in the convolutions; has size (M x C/group x kH x kW), where C is the number of channels, and kH and kW are the height and width of the kernel, and M is the number of feature maps. For more than 2 dimensions, the kernel shape will be (M x C/group x k1 x k2 x ... x kn), where (k1 x k2 x ... kn) is the dimension of the kernel. Optionally, if dimension denotation is in effect, the operation expects the weight tensor to arrive with the dimension denotation of [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL ...]. X.shape[1] == (W.shape[1] * group) == C (assuming zero based indices for the shape array). Or in other words FILTER_IN_CHANNEL should be equal to DATA_CHANNEL.
+
w_scale : tensor(float)
+
Scale tensor for input 'w'. It could be a scalar or a 1-D tensor, which means a per-tensor/layer or per output channel quantization. If it's a 1-D tensor, its number of elements should be equal to the number of output channels (M).
+
w_zero_point : T2
+
Zero point tensor for input 'w'. It could be a scalar or a 1-D tensor, which means a per-tensor/layer or per output channel quantization. If it's a 1-D tensor, its number of elements should be equal to the number of output channels (M).
+
y_scale : tensor(float)
+
Scale tensor for output 'y'. It's a scalar, which means a per-tensor/layer quantization.
+
y_zero_point : T3
+
Zero point tensor for output 'y'. It's a scalar, which means a per-tensor/layer quantization.
+
B (optional) : T4
+
Optional 1D bias to be added to the convolution, has size of M. Bias must be quantized using scale = x_scale * w_scale and zero_point = 0
+
+ +#### Outputs + +
+
y : T3
+
Output data tensor that contains the result of the convolution. The output dimensions are functions of the kernel size, stride size, and pad lengths.
+
+ +#### Type Constraints + +
+
T1 : tensor(int8), tensor(uint8)
+
Constrain input type to 8-bit integer tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain filter type to 8-bit integer tensor.
+
T3 : tensor(int8), tensor(uint8)
+
Constrain output type to 8-bit integer tensor.
+
T4 : tensor(int32)
+
Constrain bias type to 32-bit integer tensor.
+
+ + +#### Examples + +
+qlinearconv + +```python +node = onnx.helper.make_node('QLinearConv', + inputs=['x', 'x_scale', 'x_zero_point', 'w', 'w_scale', 'w_zero_point', 'y_scale', 'y_zero_point'], + outputs=['y'],) + +x = np.array([[255, 174, 162, 25, 203, 168, 58], + [15, 59, 237, 95, 129, 0, 64], + [56, 242, 153, 221, 168, 12, 166], + [232, 178, 186, 195, 237, 162, 237], + [188, 39, 124, 77, 80, 102, 43], + [127, 230, 21, 83, 41, 40, 134], + [255, 154, 92, 141, 42, 148, 247], ], dtype=np.uint8).reshape((1, 1, 7, 7)) + +x_scale = np.float32(0.00369204697) +x_zero_point = np.uint8(132) + +w = np.array([0], dtype=np.uint8).reshape((1, 1, 1, 1)) + +w_scale = np.array([0.00172794575], dtype=np.float32) +w_zero_point = np.array([255], dtype=np.uint8) + +y_scale = np.float32(0.00162681262) +y_zero_point = np.uint8(123) + +output = np.array([[0, 81, 93, 230, 52, 87, 197], + [240, 196, 18, 160, 126, 255, 191], + [199, 13, 102, 34, 87, 243, 89], + [23, 77, 69, 60, 18, 93, 18], + [67, 216, 131, 178, 175, 153, 212], + [128, 25, 234, 172, 214, 215, 121], + [0, 101, 163, 114, 213, 107, 8], ], dtype=np.uint8).reshape((1, 1, 7, 7)) + +expect(node, inputs=[x, x_scale, x_zero_point, w, w_scale, w_zero_point, y_scale, y_zero_point], outputs=[output], + name='test_qlinearconv') +``` + +
+ + +### **QLinearMatMul** + + Matrix product that behaves like numpy.matmul: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matmul.html. + It consumes two quantized input tensors, their scales and zero points, scale and zero point of output, + and computes the quantized output. The quantization formula is y = saturate((x / y_scale) + y_zero_point). + For (x / y_scale), it is rounding to nearest ties to even. Refer to https://en.wikipedia.org/wiki/Rounding for details. + Scale and zero point must have same shape. They must be either scalar (per tensor) or N-D tensor + (per row for 'a' and per column for 'b'). Scalar refers to per tensor quantization whereas N-D refers to per row + or per column quantization. If the input is 2D of shape [M, K] then zero point and scale tensor may be + an M element vector [v_1, v_2, ..., v_M] for per row quantization and K element vector of shape [v_1, v_2, ..., v_K] + for per column quantization. If the input is N-D tensor with shape [D1, D2, M, K] then zero point and scale tensor may + have shape [D1, D2, M, 1] for per row quantization and shape [D1, D2, 1, K] for per column quantization. + Production must never overflow, and accumulation may overflow if and only if in 32 bits. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Inputs + +
+
a (non-differentiable) : T1
+
N-dimensional quantized matrix a
+
a_scale (non-differentiable) : tensor(float)
+
scale of quantized input a
+
a_zero_point (non-differentiable) : T1
+
zero point of quantized input a
+
b (non-differentiable) : T2
+
N-dimensional quantized matrix b
+
b_scale (non-differentiable) : tensor(float)
+
scale of quantized input b
+
b_zero_point (non-differentiable) : T2
+
zero point of quantized input b
+
y_scale (non-differentiable) : tensor(float)
+
scale of quantized output y
+
y_zero_point (non-differentiable) : T3
+
zero point of quantized output y
+
+ +#### Outputs + +
+
y (non-differentiable) : T3
+
Quantized matrix multiply results from a * b
+
+ +#### Type Constraints + +
+
T1 : tensor(int8), tensor(uint8)
+
Constrain input a and its zero point data type to 8-bit integer tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain input b and its zero point data type to 8-bit integer tensor.
+
T3 : tensor(int8), tensor(uint8)
+
Constrain output y and its zero point data type to 8-bit integer tensor.
+
+ + +#### Examples + +
+qlinearmatmul + +```python +node = onnx.helper.make_node('QLinearMatMul', + inputs=['a', 'a_scale', 'a_zero_point', 'b', 'b_scale', 'b_zero_point', 'y_scale', 'y_zero_point'], + outputs=['y'],) + +#2D +a = np.array([[208, 236, 0, 238], + [3, 214, 255, 29], ], dtype=np.uint8) + +a_scale = np.array([0.0066], dtype=np.float32) +a_zero_point = np.array([113], dtype=np.uint8) + +b = np.array([[152, 51, 244], + [60, 26, 255], + [0, 127, 246], + [127, 254, 247]], dtype=np.uint8) + +b_scale = np.array([0.00705], dtype=np.float32) +b_zero_point = np.array([114], dtype=np.uint8) + +y_scale = np.array([0.0107], dtype=np.float32) +y_zero_point = np.array([118], dtype=np.uint8) + +output = np.array([[168, 115, 255], + [1, 66, 151], ], dtype=np.uint8) + +expect(node, inputs=[a, a_scale, a_zero_point, b, b_scale, b_zero_point, y_scale, y_zero_point], outputs=[output], + name='test_qlinearmatmul_2D') + +#3D +a = np.array([[[208, 236, 0, 238], + [3, 214, 255, 29]], + [[208, 236, 0, 238], + [3, 214, 255, 29]]], dtype=np.uint8) + +a_scale = np.array([0.0066], dtype=np.float32) +a_zero_point = np.array([113], dtype=np.uint8) + +b = np.array([[[152, 51, 244], + [60, 26, 255], + [0, 127, 246], + [127, 254, 247]], + [[152, 51, 244], + [60, 26, 255], + [0, 127, 246], + [127, 254, 247]]], dtype=np.uint8) + +b_scale = np.array([0.00705], dtype=np.float32) +b_zero_point = np.array([114], dtype=np.uint8) + +y_scale = np.array([0.0107], dtype=np.float32) +y_zero_point = np.array([118], dtype=np.uint8) + +output = np.array([[[168, 115, 255], + [1, 66, 151]], + [[168, 115, 255], + [1, 66, 151]]], dtype=np.uint8) + +expect(node, inputs=[a, a_scale, a_zero_point, b, b_scale, b_zero_point, y_scale, y_zero_point], outputs=[output], + name='test_qlinearmatmul_3D') +``` + +
+ + +### **QuantizeLinear** + + The linear quantization operator. It consumes a high precision tensor, a scale, and a zero point to compute the low precision / quantized tensor. + The scale factor and zero point must have same shape, and can be either a scalar for per-tensor / per layer quantization, or a 1-D tensor for per-axis quantization. + The quantization formula is y = saturate ((x / y_scale) + y_zero_point). + For saturation, it saturates to [0, 255] if it's uint8, or [-128, 127] if it's int8. + For (x / y_scale), it's rounding to nearest ties to even. Refer to https://en.wikipedia.org/wiki/Rounding for details. 'y_zero_point' and 'y' must have same type. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 10 + +#### Attributes + +
+
axis : int (default is 1)
+
(Optional) The axis of the quantization dimension of the input tensor. Ignored for per-tensor quantization. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
+ +#### Inputs (2 - 3) + +
+
x : T1
+
N-D full precision Input tensor to be quantized.
+
y_scale : tensor(float)
+
Scale for doing quantization to get 'y'. It can be a scalar, which means per-tensor/layer quantization, or a 1-D Tensor for per-axis quantization.
+
y_zero_point (optional) : T2
+
Zero point for doing quantization to get 'y'. Shape must match y_scale. Default is uint8 with zero point of 0 if it's not specified.
+
+ +#### Outputs + +
+
y : T2
+
N-D quantized output tensor. It has same shape as input 'x'.
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(int32)
+
Constrain 'x' to float or int32 tensor.
+
T2 : tensor(int8), tensor(uint8)
+
Constrain 'y_zero_point' and 'y' to 8-bit integer tensor.
+
+ + +#### Examples + +
+axis + +```python +node = onnx.helper.make_node('QuantizeLinear', + inputs=['x', 'y_scale', 'y_zero_point'], + outputs=['y'],) + +x = np.array([[[[-162, 10], + [-100, 232], + [-20, -50]], + + [[-76, 0], + [0, 252], + [32, -44]], + + [[245, -485], + [-960, -270], + [-375, -470]], ], ], dtype=np.float32) +y_scale = np.array([2, 4, 5], dtype=np.float32) +y_zero_point = np.array([84, 24, 196], dtype=np.uint8) +y = (x / y_scale.reshape(1, 3, 1, 1) + y_zero_point.reshape(1, 3, 1, 1)).astype(np.uint8) + +expect(node, inputs=[x, y_scale, y_zero_point], outputs=[y], + name='test_quantizelinear_axis') +``` + +
+ + +
+quantizelinear + +```python +node = onnx.helper.make_node('QuantizeLinear', + inputs=['x', 'y_scale', 'y_zero_point'], + outputs=['y'],) + +x = np.array([0, 2, 3, 1000, -254, -1000]).astype(np.float32) +y_scale = np.float32(2) +y_zero_point = np.uint8(128) +y = np.array([128, 129, 130, 255, 1, 0]).astype(np.uint8) + +expect(node, inputs=[x, y_scale, y_zero_point], outputs=[y], + name='test_quantizelinear') +``` + +
+ + +### **RNN** + + Computes an one-layer simple RNN. This operator is usually supported + via some custom implementation such as CuDNN. + + Notations: + + `X` - input tensor + + `i` - input gate + + `t` - time step (t-1 means previous time step) + + `Wi` - W parameter weight matrix for input gate + + `Ri` - R recurrence weight matrix for input gate + + `Wbi` - W parameter bias vector for input gate + + `Rbi` - R parameter bias vector for input gate + + `WBi` - W parameter weight matrix for backward input gate + + `RBi` - R recurrence weight matrix for backward input gate + + `WBbi` - WR bias vectors for backward input gate + + `RBbi` - RR bias vectors for backward input gate + + `H` - Hidden state + + `num_directions` - 2 if direction == bidirectional else 1 + + Activation functions: + + Relu(x) - max(0, x) + + Tanh(x) - (1 - e^{-2x})/(1 + e^{-2x}) + + Sigmoid(x) - 1/(1 + e^{-x}) + + (NOTE: Below are optional) + + Affine(x) - alpha*x + beta + + LeakyRelu(x) - x if x >= 0 else alpha * x + + ThresholdedRelu(x) - x if x >= alpha else 0 + + ScaledTanh(x) - alpha*Tanh(beta*x) + + HardSigmoid(x) - min(max(alpha*x + beta, 0), 1) + + Elu(x) - x if x >= 0 else alpha*(e^x - 1) + + Softsign(x) - x/(1 + |x|) + + Softplus(x) - log(1 + e^x) + + Equations (Default: f=Tanh): + + - Ht = f(Xt*(Wi^T) + Ht-1*(Ri^T) + Wbi + Rbi) + This operator has **optional** inputs/outputs. See [the doc](IR.md) for more details about the representation of optional arguments. An empty string may be used in the place of an actual argument's name to indicate a missing argument. Trailing optional arguments (those not followed by an argument that is present) may also be simply omitted. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 1, 7 + +#### Attributes + +
+
activation_alpha : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.For example with LeakyRelu, the default alpha is 0.01.
+
activation_beta : list of floats
+
Optional scaling values used by some activation functions. The values are consumed in the order of activation functions, for example (f, g, h) in LSTM. Default values are the same as of corresponding ONNX operators.
+
activations : list of strings (default is ['Tanh', 'Tanh'])
+
One (or two if bidirectional) activation function for input gate. The activation function must be one of the activation functions specified above. Optional: Default `Tanh` if not specified.
+
clip : float
+
Cell clip threshold. Clipping bounds the elements of a tensor in the range of [-threshold, +threshold] and is applied to the input of activations. No clip if not specified.
+
direction : string (default is forward)
+
Specify if the RNN is forward, reverse, or bidirectional. Must be one of forward (default), reverse, or bidirectional.
+
hidden_size : int
+
Number of neurons in the hidden layer
+
layout : int (default is 0)
+
The shape format of inputs X, initial_h and outputs Y, Y_h. If 0, the following shapes are expected: X.shape = [seq_length, batch_size, input_size], Y.shape = [seq_length, num_directions, batch_size, hidden_size], initial_h.shape = Y_h.shape = [num_directions, batch_size, hidden_size]. If 1, the following shapes are expected: X.shape = [batch_size, seq_length, input_size], Y.shape = [batch_size, seq_length, num_directions, hidden_size], initial_h.shape = Y_h.shape = [batch_size, num_directions, hidden_size].
+
+ +#### Inputs (3 - 6) + +
+
X (differentiable) : T
+
The input sequences packed (and potentially padded) into one 3-D tensor with the shape of `[seq_length, batch_size, input_size]`.
+
W (differentiable) : T
+
The weight tensor for input gate. Concatenation of `Wi` and `WBi` (if bidirectional). The tensor has shape `[num_directions, hidden_size, input_size]`.
+
R (differentiable) : T
+
The recurrence weight tensor. Concatenation of `Ri` and `RBi` (if bidirectional). The tensor has shape `[num_directions, hidden_size, hidden_size]`.
+
B (optional, differentiable) : T
+
The bias tensor for input gate. Concatenation of `[Wbi, Rbi]` and `[WBbi, RBbi]` (if bidirectional). The tensor has shape `[num_directions, 2*hidden_size]`. Optional: If not specified - assumed to be 0.
+
sequence_lens (optional, non-differentiable) : T1
+
Optional tensor specifying lengths of the sequences in a batch. If not specified - assumed all sequences in the batch to have length `seq_length`. It has shape `[batch_size]`.
+
initial_h (optional, non-differentiable) : T
+
Optional initial value of the hidden. If not specified - assumed to be 0. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Outputs (0 - 2) + +
+
Y (optional, differentiable) : T
+
A tensor that concats all the intermediate output values of the hidden. It has shape `[seq_length, num_directions, batch_size, hidden_size]`.
+
Y_h (optional, differentiable) : T
+
The last output value of the hidden. It has shape `[num_directions, batch_size, hidden_size]`.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
T1 : tensor(int32)
+
Constrain seq_lens to integer tensor.
+
+ + +#### Examples + +
+batchwise + +```python +input = np.array([[[1., 2.]], [[3., 4.]], [[5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 4 +weight_scale = 0.5 +layout = 1 + +node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R'], + outputs=['Y', 'Y_h'], + hidden_size=hidden_size, + layout=layout +) + +W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32) + +rnn = RNN_Helper(X=input, W=W, R=R, layout=layout) +Y, Y_h = rnn.step() +expect(node, inputs=[input, W, R], outputs=[Y.astype(np.float32), Y_h.astype(np.float32)], name='test_simple_rnn_batchwise') +``` + +
+ + +
+defaults + +```python +input = np.array([[[1., 2.], [3., 4.], [5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 4 +weight_scale = 0.1 + +node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32) + +rnn = RNN_Helper(X=input, W=W, R=R) +_, Y_h = rnn.step() +expect(node, inputs=[input, W, R], outputs=[Y_h.astype(np.float32)], name='test_simple_rnn_defaults') +``` + +
+ + +
+initial_bias + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 5 +custom_bias = 0.1 +weight_scale = 0.1 + +node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32) + +# Adding custom bias +W_B = custom_bias * np.ones((1, hidden_size)).astype(np.float32) +R_B = np.zeros((1, hidden_size)).astype(np.float32) +B = np.concatenate((W_B, R_B), axis=1) + +rnn = RNN_Helper(X=input, W=W, R=R, B=B) +_, Y_h = rnn.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], + name='test_simple_rnn_with_initial_bias') +``` + +
+ + +
+seq_length + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]], + [[10., 11., 12.], [13., 14., 15.], [16., 17., 18.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 5 + +node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = np.random.randn(1, hidden_size, input_size).astype(np.float32) +R = np.random.randn(1, hidden_size, hidden_size).astype(np.float32) + +# Adding custom bias +W_B = np.random.randn(1, hidden_size).astype(np.float32) +R_B = np.random.randn(1, hidden_size).astype(np.float32) +B = np.concatenate((W_B, R_B), axis=1) + +rnn = RNN_Helper(X=input, W=W, R=R, B=B) +_, Y_h = rnn.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_rnn_seq_length') +``` + +
+ + +### **RandomNormal** + + Generate a tensor with random values drawn from a normal distribution. The shape + of the tensor is specified by the `shape` argument and the parameter of the normal distribution + specified by `mean` and `scale`. + + The data type is specified by the 'dtype' argument. The 'dtype' argument must + be one of the data types specified in the 'DataType' enum field in the + TensorProto message. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int (default is 1)
+
The data type for the elements of the output tensor. Default is TensorProto::FLOAT.
+
mean : float (default is 0.0)
+
The mean of the normal distribution.
+
scale : float (default is 1.0)
+
The standard deviation of the normal distribution.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
shape : list of ints (required)
+
The shape of the output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor of random values drawn from normal distribution
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ + +### **RandomNormalLike** + + Generate a tensor with random values drawn from a normal distribution. + The shape of the output tensor is copied from the shape of the input tensor, + and the parameters of the normal distribution are specified by `mean` and `scale`. + + The data type is specified by the 'dtype' argument, or copied from the input tensor if not provided. + The 'dtype' argument must be one of the data types specified in the 'DataType' enum field in the + TensorProto message, and be valid as an output type. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
(Optional) The data type for the elements of the output tensor, if not specified, we will use the data type of the input tensor.
+
mean : float (default is 0.0)
+
The mean of the normal distribution.
+
scale : float (default is 1.0)
+
The standard deviation of the normal distribution.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs + +
+
input : T1
+
Input tensor to copy shape and optionally type information from.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor of random values drawn from normal distribution
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type. If the dtype attribute is not provided this must be a valid output type.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ + +### **RandomUniform** + + Generate a tensor with random values drawn from a uniform distribution. The shape + of the tensor is specified by the `shape` argument and the range by `low` and `high`. + + The data type is specified by the 'dtype' argument. The 'dtype' argument must + be one of the data types specified in the 'DataType' enum field in the + TensorProto message. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int (default is 1)
+
The data type for the elements of the output tensor. If not specified, default is TensorProto::FLOAT.
+
high : float (default is 1.0)
+
Upper boundary of the output values.
+
low : float (default is 0.0)
+
Lower boundary of the output values.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
shape : list of ints (required)
+
The shape of the output tensor.
+
+ +#### Inputs + + +#### Outputs + +
+
output : T
+
Output tensor of random values drawn from uniform distribution
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ + +### **RandomUniformLike** + + Generate a tensor with random values drawn from a uniform distribution. + The shape of the output tensor is copied from the shape of the input tensor, + and the parameters of the uniform distribution are specified by `low` and `high`. + + The data type is specified by the 'dtype' argument, or copied from the input tensor if not provided. + The 'dtype' argument must be one of the data types specified in the 'DataType' enum field in the + TensorProto message and be valid as an output type. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
(Optional) The data type for the elements of the output tensor, if not specified, we will use the data type of the input tensor.
+
high : float (default is 1.0)
+
Upper boundary of the output values.
+
low : float (default is 0.0)
+
Lower boundary of the output values.
+
seed : float
+
(Optional) Seed to the random generator, if not specified we will auto generate one.
+
+ +#### Inputs + +
+
input : T1
+
Input tensor to copy shape and optionally type information from.
+
+ +#### Outputs + +
+
output : T2
+
Output tensor of random values drawn from uniform distribution
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type. If the dtype attribute is not provided this must be a valid output type.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Constrain output types to float tensors.
+
+ + +### **Range** + + Generate a tensor containing a sequence of numbers that begin at `start` and extends by increments of `delta` + up to `limit` (exclusive). + + The number of elements in the output of range is computed as below- + + `number_of_elements = max( ceil( (limit - start) / delta ) , 0 )` + + The pseudocode determining the contents of the output is shown below- + + `for(int i=0; i +
start : T
+
Scalar. First entry for the range of output values.
+
limit : T
+
Scalar. Exclusive upper limit for the range of output values.
+
delta : T
+
Scalar. Value to step by.
+ + +#### Outputs + +
+
output : T
+
A 1-D tensor with same type as the inputs containing generated range of values.
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(double), tensor(int16), tensor(int32), tensor(int64)
+
Constrain input types to common numeric type tensors.
+
+ + +#### Examples + +
+range_float_type_positive_delta + +```python +node = onnx.helper.make_node( + 'Range', + inputs=['start', 'limit', 'delta'], + outputs=['output'], +) + +start = np.float32(1) +limit = np.float32(5) +delta = np.float32(2) + +output = np.arange(start, limit, delta, dtype=np.float32) # expected output [1.0, 3.0] +expect(node, inputs=[start, limit, delta], outputs=[output], + name='test_range_float_type_positive_delta') +``` + +
+ + +
+range_int32_type_negative_delta + +```python +node = onnx.helper.make_node( + 'Range', + inputs=['start', 'limit', 'delta'], + outputs=['output'], +) + +start = np.int32(10) +limit = np.int32(6) +delta = np.int32(-3) + +output = np.arange(start, limit, delta, dtype=np.int32) # expected output [10, 7] +expect(node, inputs=[start, limit, delta], outputs=[output], + name='test_range_int32_type_negative_delta') +``` + +
+ + +### **Reciprocal** + + Reciprocal takes one input data (Tensor) and produces one output data + (Tensor) where the reciprocal is, y = 1/x, is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+reciprocal + +```python +node = onnx.helper.make_node( + 'Reciprocal', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-4, 2]).astype(np.float32) +y = np.reciprocal(x) # expected output [-0.25, 0.5], +expect(node, inputs=[x], outputs=[y], + name='test_reciprocal_example') + +x = np.random.rand(3, 4, 5).astype(np.float32) + 0.5 +y = np.reciprocal(x) +expect(node, inputs=[x], outputs=[y], + name='test_reciprocal') +``` + +
+ + +### **ReduceL1** + + Computes the L1 norm of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sum(a=np.abs(data), axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[78.]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(a=np.abs(data), axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_default_axes_keepdims_random') +``` + +
+ + +
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [2] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[3., 7.], [11., 15.], [19., 23.]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_do_not_keepdims_random') +``` + +
+ + +
+keepdims + +```python +shape = [3, 2, 2] +axes = [2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[3.], [7.]], [[11.], [15.]], [[19.], [23.]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_keep_dims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_keep_dims_random') +``` + +
+ + +
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +# print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[3.], [7.]], [[11.], [15.]], [[19.], [23.]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_negative_axes_keep_dims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_negative_axes_keep_dims_random') +``` + +
+ + +### **ReduceL2** + + Computes the L2 norm of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sqrt(np.sum( + a=np.square(data), axis=axes, keepdims=keepdims == 1)) +#print(reduced) +#[[[25.49509757]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sqrt(np.sum( + a=np.square(data), axis=axes, keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_default_axes_keepdims_random') +``` + +
+ + +
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [2] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) +#print(reduced) +#[[2.23606798, 5.], +# [7.81024968, 10.63014581], +# [13.45362405, 16.2788206]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_do_not_keepdims_random') +``` + +
+ + +
+keepdims + +```python +shape = [3, 2, 2] +axes = [2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) +#print(reduced) +#[[[2.23606798], [5.]] +# [[7.81024968], [10.63014581]] +# [[13.45362405], [16.2788206 ]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_keep_dims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_l2_keep_dims_random') +``` + +
+ + +
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +# print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) +# print(reduced) +#[[[2.23606798], [5.]] +# [[7.81024968], [10.63014581]] +# [[13.45362405], [16.2788206 ]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_negative_axes_keep_dims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_negative_axes_keep_dims_random') +``` + +
+ + +### **ReduceLogSum** + + Computes the log sum of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ + +#### Examples + +
+keepdims + +```python +node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"] +) +data = np.random.ranf([3, 4, 5]).astype(np.float32) +reduced = np.log(np.sum(data, keepdims=True)) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_default') +``` + +
+ + +
+negative_axes_keepdims + +```python +node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"], + axes=[-2] +) +data = np.random.ranf([3, 4, 5]).astype(np.float32) +reduced = np.log(np.sum(data, axis=(-2), keepdims=True)) +# print(reduced) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_negative_axes') +``` + +
+ + +
+nokeepdims + +```python +node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"], + axes=[2, 1], + keepdims=0 +) +data = np.random.ranf([3, 4, 5]).astype(np.float32) +reduced = np.log(np.sum(data, axis=(2, 1), keepdims=False)) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_desc_axes') + +node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"], + axes=[0, 1], + keepdims=0 +) +data = np.random.ranf([3, 4, 5]).astype(np.float32) +reduced = np.log(np.sum(data, axis=(0, 1), keepdims=False)) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_asc_axes') +``` + +
+ + +### **ReduceLogSumExp** + + Computes the log sum exponent of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims +) + +data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) +reduced = np.log(np.sum(np.exp(data), + axis=axes, + keepdims=keepdims == 1)) +# print(reduced) +# [[[60.00671387]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.double) +reduced = np.log(np.sum(np.exp(data), + axis=axes, + keepdims=keepdims == 1)) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_default_axes_keepdims_random') +``` + +
+ + +
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 +node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) +reduced = np.log(np.sum( + np.exp(data), axis=tuple(axes), keepdims=keepdims == 1)) +# print(reduced) +#[[20., 2.31326175] +# [40.00004578, 2.31326175] +# [60.00671387, 2.31326175]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.double) +reduced = np.log(np.sum( + np.exp(data), axis=tuple(axes), keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_do_not_keepdims_random') +``` + +
+ + +
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 +node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) +reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) +# print(reduced) +# [[[20., 2.31326175]] +# [[40.00004578, 2.31326175]] +# [[60.00671387, 2.31326175]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.double) +reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_keepdims_random') +``` + +
+ + +
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 +node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) +reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) +# print(reduced) +# [[[20., 2.31326175]] +# [[40.00004578, 2.31326175]] +# [[60.00671387, 2.31326175]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.double) +reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_negative_axes_keepdims_random') +``` + +
+ + +### **ReduceMax** + + Computes the max of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11, 12 + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16), tensor(uint8), tensor(int8)
+
Constrain input and output types to high-precision and 8 bit numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 +node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.maximum.reduce(data, axis=axes, keepdims=keepdims == 1) +#print(reduced) +[[[60.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_default_axes_keepdim_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.maximum.reduce(data, axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_default_axes_keepdims_random') +``` + +
+ + +
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[20., 2.] +# [40., 2.] +# [60., 2.]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_do_not_keepdims_random') +``` + +
+ + +
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[20., 2.]] +# [[40., 2.]] +# [[60., 2.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_keepdims_random') +``` + +
+ + +
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[20., 2.]] +# [[40., 2.]] +# [[60., 2.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_negative_axes_keepdims_random') +``` + +
+ + +### **ReduceMean** + + Computes the mean of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.mean(data, axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[18.25]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.mean(data, axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_default_axes_keepdims_random') +``` + +
+ + +
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[12.5, 1.5] +# [35., 1.5] +# [57.5, 1.5]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_do_not_keepdims_random') +``` + +
+ + +
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[12.5, 1.5]] +# [[35., 1.5]] +# [[57.5, 1.5]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_keepdims_random') +``` + +
+ + +
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +# [[[12.5, 1.5]] +# [[35., 1.5]] +# [[57.5, 1.5]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_negative_axes_keepdims_random') +``` + +
+ + +### **ReduceMin** + + Computes the min of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11, 12 + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16), tensor(uint8), tensor(int8)
+
Constrain input and output types to high-precision and 8 bit numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMin', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.minimum.reduce(data, axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[1.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.minimum.reduce(data, axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_default_axes_keepdims_random') +``` + +
+ + +
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceMin', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[5., 1.] +# [30., 1.] +# [55., 1.]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_do_not_keepdims_random') +``` + +
+ + +
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMin', inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[5., 1.]] +# [[30., 1.]] +# [[55., 1.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_keepdims_random') +``` + +
+ + +
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMin', inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[5., 1.]] +# [[30., 1.]] +# [[55., 1.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_negative_axes_keepdims_random') +``` + +
+ + +### **ReduceProd** + + Computes the product of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.prod(data, axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[4.790016e+08]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.prod(data, axis=axes, keepdims=keepdims == 1) +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_default_axes_keepdims_random') +``` + +
+ + +
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[3., 8.] +# [35., 48.] +# [99., 120.]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_do_not_keepdims_random') +``` + +
+ + +
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[3., 8.]] +# [[35., 48.]] +# [[99., 120.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_keepdims_random') +``` + +
+ + +
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[3., 8.]] +# [[35., 48.]] +# [[99., 120.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_negative_axes_keepdims_random') +``` + +
+ + +### **ReduceSum** + + Computes the sum of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
noop_with_empty_axes : int (default is 0)
+
Defines behaviour if 'axes' is empty. Default behaviour with 'false' is to reduce all axes. When axes is empty and this attribute is set to true, input tensor will not be reduced,and the output tensor would be equivalent to input tensor.
+
+ +#### Inputs (1 - 2) + +
+
data (differentiable) : T
+
An input tensor.
+
axes (optional, non-differentiable) : tensor(int64)
+
Optional input list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor if 'noop_with_empty_axes' is false, else act as an Identity op when 'noop_with_empty_axes' is true. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = np.array([], dtype=np.int64) +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(data, axis=None, keepdims=keepdims == 1) +#print(reduced) +#[[[78.]]] + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(data, axis=None, keepdims=keepdims == 1) + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_default_axes_keepdims_random') +``` + +
+ + +
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = np.array([1], dtype=np.int64) +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) +#print(reduced) +#[[4., 6.] +# [12., 14.] +# [20., 22.]] + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_do_not_keepdims_random') +``` + +
+ + +
+empty_axes_input_noop + +```python +shape = [3, 2, 2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims, + noop_with_empty_axes=True) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +axes = np.array([], dtype=np.int64) +reduced = np.array(data) +#print(reduced) +#[[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]] + +expect(node, inputs=[data, axes], outputs=[reduced], + name='test_reduce_sum_empty_axes_input_noop_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.array(data) + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_negative_axes_keepdims_random') +``` + +
+ + +
+keepdims + +```python +shape = [3, 2, 2] +axes = np.array([1], dtype=np.int64) +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) +#print(reduced) +#[[[4., 6.]] +# [[12., 14.]] +# [[20., 22.]]] + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_keepdims_random') +``` + +
+ + +
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = np.array([-2], dtype=np.int64) +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) +# print(reduced) +#[[[4., 6.]] +# [[12., 14.]] +# [[20., 22.]]] + +expect(node, inputs=[data, axes], outputs=[reduced], + name='test_reduce_sum_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(data, axis=tuple( + axes.tolist()), keepdims=keepdims == 1) + +expect(node, inputs=[data, axes], outputs=[reduced], + name='test_reduce_sum_negative_axes_keepdims_random') +``` + +
+ + +### **ReduceSumSquare** + + Computes the sum square of the input tensor's element along the provided axes. The resulting + tensor has the same rank as the input if keepdims equals 1. If keepdims equals 0, then + the resulting tensor has the reduced dimension pruned. + + The above behavior is similar to numpy, with the exception that numpy defaults keepdims to + False instead of True. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axes : list of ints
+
A list of integers, along which to reduce. The default is to reduce over all the dimensions of the input tensor. Accepted range is [-r, r-1] where r = rank(data).
+
keepdims : int (default is 1)
+
Keep the reduced dimension or not, default 1 means keep reduced dimension.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
reduced (differentiable) : T
+
Reduced output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint32), tensor(uint64), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to high-precision numeric tensors.
+
+ + +#### Examples + +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(np.square(data), axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[650.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(np.square(data), axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_default_axes_keepdims_random') +``` + +
+ + +
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[10., 20.] +# [74., 100.] +# [202., 244.]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_do_not_keepdims_random') +``` + +
+ + +
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[10., 20.]] +# [[74., 100.]] +# [[202., 244.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_keepdims_random') +``` + +
+ + +
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[10., 20.s]] +# [[74., 100.]] +# [[202., 244.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_negative_axes_keepdims_random') +``` + +
+ + +### **Relu** + + Relu takes one input data (Tensor) and produces one output data + (Tensor) where the rectified linear function, y = max(0, x), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 13 + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float), tensor(int32), tensor(int8), tensor(int16), tensor(int64), tensor(float16), tensor(double), tensor(bfloat16)
+
Constrain input and output types to signed numeric tensors.
+
+ + +#### Examples + +
+relu + +```python +node = onnx.helper.make_node( + 'Relu', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + +expect(node, inputs=[x], outputs=[y], + name='test_relu') +``` + +
+ + +### **Reshape** + + Reshape the input tensor similar to numpy.reshape. + First input is the data tensor, second input is a shape tensor which specifies the output shape. It outputs the reshaped tensor. + At most one dimension of the new shape can be -1. In this case, the value is + inferred from the size of the tensor and the remaining dimensions. A dimension + could also be 0, in which case the actual dimension value is unchanged (i.e. taken + from the input tensor). If 'allowzero' is set, and the new shape includes 0, the + dimension will be set explicitly to zero (i.e. not taken from input tensor). + Shape (second input) could be an empty shape, which means converting to a scalar. + The input tensor's shape and the output tensor's shape are required to have the same number of elements. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 1, 5, 13 + +#### Attributes + +
+
allowzero : int (default is 0)
+
(Optional) By default, when any value in the 'shape' input is equal to zero the corresponding dimension value is copied from the input tensor dynamically. allowzero=1 indicates that if any value in the 'shape' input is set to zero, the zero value is honored, similar to NumPy.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
shape (non-differentiable) : tensor(int64)
+
Specified shape for output.
+
+ +#### Outputs + +
+
reshaped (differentiable) : T
+
Reshaped data.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+allowzero + +```python +original_shape = [0, 3, 4] +test_cases = { + 'allowzero_reordered': np.array([3, 4, 0], dtype=np.int64), +} +data = np.random.random_sample(original_shape).astype(np.float32) + +for test_name, shape in test_cases.items(): + node = onnx.helper.make_node( + 'Reshape', + inputs=['data', 'shape'], + outputs=['reshaped'], + allowzero=1, # if allowzero=1, final shape = (3, 4, 0) + # if allowzero=0, final shape = (3, 4, 4) + ) + + reshaped = reshape_reference_implementation(data, shape, allowzero=1) + + expect(node, inputs=[data, shape], outputs=[reshaped], + name='test_reshape_' + test_name) +``` + +
+ + +
+reshape + +```python +original_shape = [2, 3, 4] +test_cases = { + 'reordered_all_dims': np.array([4, 2, 3], dtype=np.int64), + 'reordered_last_dims': np.array([2, 4, 3], dtype=np.int64), + 'reduced_dims': np.array([2, 12], dtype=np.int64), + 'extended_dims': np.array([2, 3, 2, 2], dtype=np.int64), + 'one_dim': np.array([24], dtype=np.int64), + 'negative_dim': np.array([2, -1, 2], dtype=np.int64), + 'negative_extended_dims': np.array([-1, 2, 3, 4], dtype=np.int64), + 'zero_dim': np.array([2, 0, 4, 1], dtype=np.int64), + 'zero_and_negative_dim': np.array([2, 0, 1, -1], dtype=np.int64), +} +data = np.random.random_sample(original_shape).astype(np.float32) + +for test_name, shape in test_cases.items(): + node = onnx.helper.make_node( + 'Reshape', + inputs=['data', 'shape'], + outputs=['reshaped'], + ) + + reshaped = reshape_reference_implementation(data, shape) + + expect(node, inputs=[data, shape], outputs=[reshaped], + name='test_reshape_' + test_name) +``` + +
+ + +### **Resize** + + Resize the input tensor. In general, it calculates every value in the output tensor as a weighted average of neighborhood (a.k.a. sampling locations) in the input tensor. + Each dimension value of the output tensor is: + output_dimension = floor(input_dimension * (roi_end - roi_start) * scale) if input \"sizes\" is not specified. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 10, 11 + +#### Attributes + +
+
coordinate_transformation_mode : string (default is half_pixel)
+
+This attribute describes how to transform the coordinate in the resized tensor to the coordinate in the original tensor.
+ +The coordinate of each dimension is transformed individually. Let's describe a case using axis x as an example. +Denote x_resized as the coordinate of axis x in the resized tensor, x_original as the coordinate of axis x in the original tensor, length_original as the length of the original tensor in axis x, length_resized as the length of the resized tensor in axis x, roi_x = (start_x, end_x) of the axis x in input "roi", scale = length_resized / length_original,
+ +if coordinate_transformation_mode is "half_pixel",
+x_original = (x_resized + 0.5) / scale - 0.5,
+ +if coordinate_transformation_mode is "pytorch_half_pixel",
+x_original = length_resized > 1 ? (x_resized + 0.5) / scale - 0.5 : 0,
+ +if coordinate_transformation_mode is "align_corners",
+x_original = x_resized * (length_original - 1) / (length_resized - 1),
+ +if coordinate_transformation_mode is "asymmetric",
+x_original = x_resized / scale,
+ +if coordinate_transformation_mode is "tf_crop_and_resize",
+x_original = length_resized > 1 ? start_x * (length_original - 1) + x_resized * (end_x - start_x) * (length_original - 1) / (length_resized - 1) : 0.5 * (start_x + end_x) * (length_original - 1).
+
cubic_coeff_a : float (default is -0.75)
+
The coefficient 'a' used in cubic interpolation. Two common choice are -0.5 (in some cases of TensorFlow) and -0.75 (in PyTorch). Check out Equation (4) in https://ieeexplore.ieee.org/document/1163711 for the details. This attribute is valid only if "mode" is "cubic".
+
exclude_outside : int (default is 0)
+
If set to 1, the weight of sampling locations outside the tensor will be set to 0 and the weight will be renormalized so that their sum is 1.0. The default value is 0.
+
extrapolation_value : float (default is 0.0)
+
When coordinate_transformation_mode is "tf_crop_and_resize" and x_original is outside the range [0, length_original - 1], this value is used as the corresponding output value. Default is 0.0f.
+
mode : string (default is nearest)
+
Three interpolation modes: nearest (default), linear and cubic. The "linear" mode includes linear interpolation for 1D tensor and N-linear interpolation for N-D tensor (for example, bilinear interpolation for 2D tensor). The "cubic" mode includes cubic interpolation for 1D tensor and N-cubic interpolation for N-D tensor (for example, bicubic interpolation for 2D tensor).
+
nearest_mode : string (default is round_prefer_floor)
+
Four modes: round_prefer_floor (default, as known as round half down), round_prefer_ceil (as known as round half up), floor, ceil. Only used by nearest interpolation. It indicates how to get "nearest" pixel in input tensor from x_original, so this attribute is valid only if "mode" is "nearest".
+
+ +#### Inputs (1 - 4) + +
+
X (differentiable) : T1
+
N-D tensor
+
roi (optional, non-differentiable) : T2
+
1-D tensor given as [start1, ..., startN, end1, ..., endN], where N is the rank of X. The RoIs' coordinates are normalized in the coordinate system of the input image. It only takes effect when coordinate_transformation_mode is "tf_crop_and_resize"
+
scales (optional, non-differentiable) : tensor(float)
+
The scale array along each dimension. It takes value greater than 0. If it's less than 1, it's sampling down, otherwise, it's upsampling. The number of elements of 'scales' should be the same as the rank of input 'X'. One of 'scales' and 'sizes' MUST be specified and it is an error if both are specified. If 'sizes' is needed, the user can use an empty string as the name of 'scales' in this operator's input list.
+
sizes (optional, non-differentiable) : tensor(int64)
+
The size of the output tensor. The number of elements of 'sizes' should be the same as the rank of input 'X'. Only one of 'scales' and 'sizes' can be specified.
+
+ +#### Outputs + +
+
Y (differentiable) : T1
+
N-D tensor after resizing
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input 'X' and output 'Y' to all tensor types.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Constrain roi type to float or double.
+
+ + +#### Examples + +
+resize_downsample_scales_cubic + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.8, 0.8], dtype=np.float32) + +# [[[[ 1.47119141 2.78125 4.08251953] +# [ 6.71142578 8.02148438 9.32275391] +# [11.91650391 13.2265625 14.52783203]]]] +output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_cubic') +``` + +
+ + +
+resize_downsample_scales_cubic_A_n0p5_exclude_outside + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + cubic_coeff_a=-0.5, + exclude_outside=True +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.8, 0.8], dtype=np.float32) + +# [[[[ 1.36812675 2.6695014 4.0133367 ] +# [ 6.57362535 7.875 9.2188353 ] +# [11.94896657 13.25034122 14.59417652]]]] +output = interpolate_nd(data, lambda x: cubic_coeffs(x, A=-0.5), scale_factors=scales, + exclude_outside=True).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_cubic_A_n0p5_exclude_outside') +``` + +
+ + +
+resize_downsample_scales_cubic_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + coordinate_transformation_mode='align_corners' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.8, 0.8], dtype=np.float32) + +# [[[[ 1. 2.39519159 3.79038317] +# [ 6.58076634 7.97595793 9.37114951] +# [12.16153268 13.55672427 14.95191585]]]] +output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_cubic_align_corners') +``` + +
+ + +
+resize_downsample_scales_linear + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) + +# [[[[2.6666665 4.3333331]]]] +output = interpolate_nd( + data, linear_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_linear') +``` + +
+ + +
+resize_downsample_scales_linear_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='align_corners' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) + +# [[[[1. 3.142857]]]] +output = interpolate_nd( + data, linear_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_linear_align_corners') +``` + +
+ + +
+resize_downsample_scales_nearest + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) + +# [[[[1. 3.]]]] +output = interpolate_nd( + data, nearest_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_nearest') +``` + +
+ + +
+resize_downsample_sizes_cubic + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='cubic', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 3, 3], dtype=np.int64) + +# [[[[ 1.63078704 3.00462963 4.37847222] +# [ 7.12615741 8.5 9.87384259] +# [12.62152778 13.99537037 15.36921296]]]] +output = interpolate_nd( + data, cubic_coeffs, output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_downsample_sizes_cubic') +``` + +
+ + +
+resize_downsample_sizes_linear_pytorch_half_pixel + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='pytorch_half_pixel' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 3, 1], dtype=np.int64) + +# [[[[ 1.6666666] +# [ 7. ] +# [12.333333 ]]]] +output = interpolate_nd( + data, linear_coeffs, output_size=sizes, coordinate_transformation_mode='pytorch_half_pixel').astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_downsample_sizes_linear_pytorch_half_pixel') +``` + +
+ + +
+resize_downsample_sizes_nearest + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 1, 3], dtype=np.int64) + +# [[[[1. 3.]]]] +output = interpolate_nd( + data, nearest_coeffs, output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_downsample_sizes_nearest') +``` + +
+ + +
+resize_tf_crop_and_resize + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', 'roi', '', 'sizes'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='tf_crop_and_resize' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +# Note: for some rois, the result may be different with that of TF for inaccurate floating point +roi = np.array([0, 0, 0.4, 0.6, 1, 1, 0.6, 0.8], dtype=np.float32) +sizes = np.array([1, 1, 3, 3], dtype=np.int64) + +# [[[[ 7.6000004 7.9 8.2 ] +# [ 8.8 9.1 9.400001 ] +# [10. 10.3 10.6 ]]]] +output = interpolate_nd(data, linear_coeffs, output_size=sizes, roi=roi, + coordinate_transformation_mode='tf_crop_and_resize').astype(np.float32) + +expect(node, inputs=[data, roi, sizes], outputs=[output], + name='test_resize_tf_crop_and_resize') +``` + +
+ + +
+resize_tf_crop_and_resize_extrapolation_value + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', 'roi', '', 'sizes'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='tf_crop_and_resize', + extrapolation_value=10.0 +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +# Note: for some rois, the result may be different with that of TF for inaccurate floating point +roi = np.array([0, 0, 0.4, 0.6, 1, 1, 1.2, 1.7], dtype=np.float32) +sizes = np.array([1, 1, 3, 3], dtype=np.int64) + +# [[[[ 7.6000004 10. 10. ] +# [12.400001 10. 10. ] +# [10. 10. 10. ]]]] +output = interpolate_nd(data, linear_coeffs, output_size=sizes, roi=roi, + coordinate_transformation_mode='tf_crop_and_resize', extrapolation_value=10.0).astype(np.float32) + +expect(node, inputs=[data, roi, sizes], outputs=[output], + name='test_resize_tf_crop_and_resize') +``` + +
+ + +
+resize_upsample_scales_cubic + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[ 0.47265625 0.76953125 1.24609375 1.875 2.28125 +# 2.91015625 3.38671875 3.68359375] +# [ 1.66015625 1.95703125 2.43359375 3.0625 3.46875 +# 4.09765625 4.57421875 4.87109375] +# [ 3.56640625 3.86328125 4.33984375 4.96875 5.375 +# 6.00390625 6.48046875 6.77734375] +# [ 6.08203125 6.37890625 6.85546875 7.484375 7.890625 +# 8.51953125 8.99609375 9.29296875] +# [ 7.70703125 8.00390625 8.48046875 9.109375 9.515625 +# 10.14453125 10.62109375 10.91796875] +# [10.22265625 10.51953125 10.99609375 11.625 12.03125 +# 12.66015625 13.13671875 13.43359375] +# [12.12890625 12.42578125 12.90234375 13.53125 13.9375 +# 14.56640625 15.04296875 15.33984375] +# [13.31640625 13.61328125 14.08984375 14.71875 15.125 +# 15.75390625 16.23046875 16.52734375]]]] +output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic') +``` + +
+ + +
+resize_upsample_scales_cubic_A_n0p5_exclude_outside + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + cubic_coeff_a=-0.5, + exclude_outside=True +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[ 0.55882353 0.81494204 1.35698249 1.89705882 2.39705882 +# 2.93713516 3.47917561 3.73529412] +# [ 1.58329755 1.83941606 2.38145651 2.92153285 3.42153285 +# 3.96160918 4.50364964 4.75976814] +# [ 3.75145936 4.00757787 4.54961832 5.08969466 5.58969466 +# 6.12977099 6.67181144 6.92792995] +# [ 5.91176471 6.16788321 6.70992366 7.25 7.75 +# 8.29007634 8.83211679 9.08823529] +# [ 7.91176471 8.16788321 8.70992366 9.25 9.75 +# 10.29007634 10.83211679 11.08823529] +# [10.07207005 10.32818856 10.87022901 11.41030534 11.91030534 +# 12.45038168 12.99242213 13.24854064] +# [12.24023186 12.49635036 13.03839082 13.57846715 14.07846715 +# 14.61854349 15.16058394 15.41670245] +# [13.26470588 13.52082439 14.06286484 14.60294118 15.10294118 +# 15.64301751 16.18505796 16.44117647]]]] +output = interpolate_nd(data, lambda x: cubic_coeffs(x, A=-0.5), scale_factors=scales, + exclude_outside=True).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic_A_n0p5_exclude_outside') +``` + +
+ + +
+resize_upsample_scales_cubic_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + coordinate_transformation_mode='align_corners' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[ 1. 1.34110787 1.80029155 2.32944606 2.67055394 +# 3.19970845 3.65889213 4. ] +# [ 2.36443149 2.70553936 3.16472303 3.69387755 4.03498542 +# 4.56413994 5.02332362 5.36443149] +# [ 4.20116618 4.54227405 5.00145773 5.53061224 5.87172012 +# 6.40087464 6.86005831 7.20116618] +# [ 6.31778426 6.65889213 7.1180758 7.64723032 7.98833819 +# 8.51749271 8.97667638 9.31778426] +# [ 7.68221574 8.02332362 8.48250729 9.01166181 9.35276968 +# 9.8819242 10.34110787 10.68221574] +# [ 9.79883382 10.13994169 10.59912536 11.12827988 11.46938776 +# 11.99854227 12.45772595 12.79883382] +# [11.63556851 11.97667638 12.43586006 12.96501458 13.30612245 +# 13.83527697 14.29446064 14.63556851] +# [13. 13.34110787 13.80029155 14.32944606 14.67055394 +# 15.19970845 15.65889213 16. ]]]] +output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic_align_corners') +``` + +
+ + +
+resize_upsample_scales_cubic_asymmetric + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + coordinate_transformation_mode='asymmetric' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[ 1. 1.40625 2. 2.5 3. 3.59375 4. +# 4.09375] +# [ 2.625 3.03125 3.625 4.125 4.625 5.21875 5.625 +# 5.71875] +# [ 5. 5.40625 6. 6.5 7. 7.59375 8. +# 8.09375] +# [ 7. 7.40625 8. 8.5 9. 9.59375 10. +# 10.09375] +# [ 9. 9.40625 10. 10.5 11. 11.59375 12. +# 12.09375] +# [11.375 11.78125 12.375 12.875 13.375 13.96875 14.375 +# 14.46875] +# [13. 13.40625 14. 14.5 15. 15.59375 16. +# 16.09375] +# [13.375 13.78125 14.375 14.875 15.375 15.96875 16.375 +# 16.46875]]]] +output = interpolate_nd(data, lambda x: cubic_coeffs(x, A=-0.75), scale_factors=scales, + coordinate_transformation_mode='asymmetric').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic_asymmetric') +``` + +
+ + +
+resize_upsample_scales_linear + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[1. 1.25 1.75 2. ] +# [1.5 1.75 2.25 2.5 ] +# [2.5 2.75 3.25 3.5 ] +# [3. 3.25 3.75 4. ]]]] +output = interpolate_nd( + data, linear_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_linear') +``` + +
+ + +
+resize_upsample_scales_linear_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='align_corners' +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[1. 1.33333333 1.66666667 2. ] +# [1.66666667 2. 2.33333333 2.66666667] +# [2.33333333 2.66666667 3. 3.33333333] +# [3. 3.33333333 3.66666667 4. ]]]] +output = interpolate_nd( + data, linear_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_linear_align_corners') +``` + +
+ + +
+resize_upsample_scales_nearest + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32) + +# [[[[1. 1. 1. 2. 2. 2.] +# [1. 1. 1. 2. 2. 2.] +# [3. 3. 3. 4. 4. 4.] +# [3. 3. 3. 4. 4. 4.]]]] +output = interpolate_nd( + data, nearest_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_nearest') +``` + +
+ + +
+resize_upsample_sizes_cubic + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='cubic', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 9, 10], dtype=np.int64) + +# [[[[ 0.45507922 0.64057922 0.97157922 1.42257922 1.90732922 +# 2.22332922 2.70807922 3.15907922 3.49007922 3.67557922] +# [ 1.39437963 1.57987963 1.91087963 2.36187963 2.84662963 +# 3.16262963 3.64737963 4.09837963 4.42937963 4.61487963] +# [ 2.95130693 3.13680693 3.46780693 3.91880693 4.40355693 +# 4.71955693 5.20430693 5.65530693 5.98630693 6.17180693] +# [ 5.20525069 5.39075069 5.72175069 6.17275069 6.65750069 +# 6.97350069 7.45825069 7.90925069 8.24025069 8.42575069] +# [ 6.88975 7.07525 7.40625 7.85725 8.342 +# 8.658 9.14275 9.59375 9.92475 10.11025 ] +# [ 8.57424931 8.75974931 9.09074931 9.54174931 10.02649931 +# 10.34249931 10.82724931 11.27824931 11.60924931 11.79474931] +# [10.82819307 11.01369307 11.34469307 11.79569307 12.28044307 +# 12.59644307 13.08119307 13.53219307 13.86319307 14.04869307] +# [12.38512037 12.57062037 12.90162037 13.35262037 13.83737037 +# 14.15337037 14.63812037 15.08912037 15.42012037 15.60562037] +# [13.32442078 13.50992078 13.84092078 14.29192078 14.77667078 +# 15.09267078 15.57742078 16.02842078 16.35942078 16.54492078]]]] +output = interpolate_nd( + data, cubic_coeffs, output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_cubic') +``` + +
+ + +
+resize_upsample_sizes_nearest + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 7, 8], dtype=np.int64) + +# [[[[1. 1. 1. 1. 2. 2. 2. 2.] +# [1. 1. 1. 1. 2. 2. 2. 2.] +# [1. 1. 1. 1. 2. 2. 2. 2.] +# [1. 1. 1. 1. 2. 2. 2. 2.] +# [3. 3. 3. 3. 4. 4. 4. 4.] +# [3. 3. 3. 3. 4. 4. 4. 4.] +# [3. 3. 3. 3. 4. 4. 4. 4.]]]] +output = interpolate_nd( + data, nearest_coeffs, output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest') +``` + +
+ + +
+resize_upsample_sizes_nearest_ceil_half_pixel + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + coordinate_transformation_mode='half_pixel', + nearest_mode='ceil' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 8, 8], dtype=np.int64) + +# [[[[ 1. 2. 2. 3. 3. 4. 4. 4.] +# [ 5. 6. 6. 7. 7. 8. 8. 8.] +# [ 5. 6. 6. 7. 7. 8. 8. 8.] +# [ 9. 10. 10. 11. 11. 12. 12. 12.] +# [ 9. 10. 10. 11. 11. 12. 12. 12.] +# [13. 14. 14. 15. 15. 16. 16. 16.] +# [13. 14. 14. 15. 15. 16. 16. 16.] +# [13. 14. 14. 15. 15. 16. 16. 16.]]]] +output = interpolate_nd( + data, lambda x: nearest_coeffs(x, mode='ceil'), output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest_ceil_half_pixel') +``` + +
+ + +
+resize_upsample_sizes_nearest_floor_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + coordinate_transformation_mode='align_corners', + nearest_mode='floor' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 8, 8], dtype=np.int64) + +# [[[[ 1. 1. 1. 2. 2. 3. 3. 4.] +# [ 1. 1. 1. 2. 2. 3. 3. 4.] +# [ 1. 1. 1. 2. 2. 3. 3. 4.] +# [ 5. 5. 5. 6. 6. 7. 7. 8.] +# [ 5. 5. 5. 6. 6. 7. 7. 8.] +# [ 9. 9. 9. 10. 10. 11. 11. 12.] +# [ 9. 9. 9. 10. 10. 11. 11. 12.] +# [13. 13. 13. 14. 14. 15. 15. 16.]]]] +output = interpolate_nd( + data, lambda x: nearest_coeffs(x, mode='floor'), output_size=sizes, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest_floor_align_corners') +``` + +
+ + +
+resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + coordinate_transformation_mode='asymmetric', + nearest_mode='round_prefer_ceil' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 8, 8], dtype=np.int64) + +# [[[[ 1. 2. 2. 3. 3. 4. 4. 4.] +# [ 5. 6. 6. 7. 7. 8. 8. 8.] +# [ 5. 6. 6. 7. 7. 8. 8. 8.] +# [ 9. 10. 10. 11. 11. 12. 12. 12.] +# [ 9. 10. 10. 11. 11. 12. 12. 12.] +# [13. 14. 14. 15. 15. 16. 16. 16.] +# [13. 14. 14. 15. 15. 16. 16. 16.] +# [13. 14. 14. 15. 15. 16. 16. 16.]]]] +output = interpolate_nd( + data, lambda x: nearest_coeffs(x, mode='round_prefer_ceil'), + output_size=sizes, coordinate_transformation_mode='asymmetric').astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric') +``` + +
+ + +### **ReverseSequence** + + Reverse batch of sequences having different lengths specified by `sequence_lens`. + + For each slice i iterating on batch axis, the operator reverses the first sequence_lens[i] elements on time axis, + and copies elements whose index's beyond sequence_lens[i] to the output. So the output slice i contains reversed + sequences on the first sequence_lens[i] elements, then have original values copied for the other elements. + + Example 1: + input = [[0.0, 4.0, 8.0, 12.0], + [1.0, 5.0, 9.0, 13.0], + [2.0, 6.0, 10.0, 14.0], + [3.0, 7.0, 11.0, 15.0]] + sequence_lens = [4, 3, 2, 1] + time_axis = 0 + batch_axis = 1 + + output = [[3.0, 6.0, 9.0, 12.0], + [2.0, 5.0, 8.0, 13.0], + [1.0, 4.0, 10.0, 14.0], + [0.0, 7.0, 11.0, 15.0]] + + Example 2: + input = [[0.0, 1.0, 2.0, 3.0 ], + [4.0, 5.0, 6.0, 7.0 ], + [8.0, 9.0, 10.0, 11.0], + [12.0, 13.0, 14.0, 15.0]] + sequence_lens = [1, 2, 3, 4] + time_axis = 1 + batch_axis = 0 + + output = [[0.0, 1.0, 2.0, 3.0 ], + [5.0, 4.0, 6.0, 7.0 ], + [10.0, 9.0, 8.0, 11.0], + [15.0, 14.0, 13.0, 12.0]] + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
batch_axis : int (default is 1)
+
(Optional) Specify which axis is batch axis. Must be one of 1 (default), or 0.
+
time_axis : int (default is 0)
+
(Optional) Specify which axis is time axis. Must be one of 0 (default), or 1.
+
+ +#### Inputs + +
+
input : T
+
Tensor of rank r >= 2.
+
sequence_lens : tensor(int64)
+
Tensor specifying lengths of the sequences in a batch. It has shape `[batch_size]`.
+
+ +#### Outputs + +
+
Y : T
+
Tensor with same shape of input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input and output types can be of any tensor type.
+
+ + +#### Examples + +
+reversesequence_batch + +```python +node = onnx.helper.make_node( + 'ReverseSequence', + inputs=['x', 'sequence_lens'], + outputs=['y'], + time_axis=1, + batch_axis=0, +) +x = np.array([[0.0, 1.0, 2.0, 3.0], + [4.0, 5.0, 6.0, 7.0], + [8.0, 9.0, 10.0, 11.0], + [12.0, 13.0, 14.0, 15.0]], dtype=np.float32) +sequence_lens = np.array([1, 2, 3, 4], dtype=np.int64) + +y = np.array([[0.0, 1.0, 2.0, 3.0], + [5.0, 4.0, 6.0, 7.0], + [10.0, 9.0, 8.0, 11.0], + [15.0, 14.0, 13.0, 12.0]], dtype=np.float32) + +expect(node, inputs=[x, sequence_lens], outputs=[y], + name='test_reversesequence_batch') +``` + +
+ + +
+reversesequence_time + +```python +node = onnx.helper.make_node( + 'ReverseSequence', + inputs=['x', 'sequence_lens'], + outputs=['y'], + time_axis=0, + batch_axis=1, +) +x = np.array([[0.0, 4.0, 8.0, 12.0], + [1.0, 5.0, 9.0, 13.0], + [2.0, 6.0, 10.0, 14.0], + [3.0, 7.0, 11.0, 15.0]], dtype=np.float32) +sequence_lens = np.array([4, 3, 2, 1], dtype=np.int64) + +y = np.array([[3.0, 6.0, 9.0, 12.0], + [2.0, 5.0, 8.0, 13.0], + [1.0, 4.0, 10.0, 14.0], + [0.0, 7.0, 11.0, 15.0]], dtype=np.float32) + +expect(node, inputs=[x, sequence_lens], outputs=[y], + name='test_reversesequence_time') +``` + +
+ + +### **RoiAlign** + + Region of Interest (RoI) align operation described in the + [Mask R-CNN paper](https://arxiv.org/abs/1703.06870). + RoiAlign consumes an input tensor X and region of interests (rois) + to apply pooling across each RoI; it produces a 4-D tensor of shape + (num_rois, C, output_height, output_width). + + RoiAlign is proposed to avoid the misalignment by removing + quantizations while converting from original image into feature + map and from feature map into RoI feature; in each ROI bin, + the value of the sampled locations are computed directly + through bilinear interpolation. + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 10 + +#### Attributes + +
+
coordinate_transformation_mode : string (default is half_pixel)
+
Allowed values are 'half_pixel' and 'output_half_pixel'. Use the value 'half_pixel' to pixel shift the input coordinates by -0.5 (the recommended behavior). Use the value 'output_half_pixel' to omit the pixel shift for the input (use this for a backward-compatible behavior).
+
mode : string (default is avg)
+
The pooling method. Two modes are supported: 'avg' and 'max'. Default is 'avg'.
+
output_height : int (default is 1)
+
default 1; Pooled output Y's height.
+
output_width : int (default is 1)
+
default 1; Pooled output Y's width.
+
sampling_ratio : int (default is 0)
+
Number of sampling points in the interpolation grid used to compute the output value of each pooled output bin. If > 0, then exactly sampling_ratio x sampling_ratio grid points are used. If == 0, then an adaptive number of grid points are used (computed as ceil(roi_width / output_width), and likewise for height). Default is 0.
+
spatial_scale : float (default is 1.0)
+
Multiplicative spatial scale factor to translate ROI coordinates from their input spatial scale to the scale used when pooling, i.e., spatial scale of the input feature map X relative to the input image. E.g.; default is 1.0f.
+
+ +#### Inputs + +
+
X : T1
+
Input data tensor from the previous operator; 4-D feature map of shape (N, C, H, W), where N is the batch size, C is the number of channels, and H and W are the height and the width of the data.
+
rois : T1
+
RoIs (Regions of Interest) to pool over; rois is 2-D input of shape (num_rois, 4) given as [[x1, y1, x2, y2], ...]. The RoIs' coordinates are in the coordinate system of the input image. Each coordinate set has a 1:1 correspondence with the 'batch_indices' input.
+
batch_indices : T2
+
1-D tensor of shape (num_rois,) with each element denoting the index of the corresponding image in the batch.
+
+ +#### Outputs + +
+
Y : T1
+
RoI pooled output, 4-D tensor of shape (num_rois, C, output_height, output_width). The r-th batch element Y[r-1] is a pooled feature map corresponding to the r-th RoI X[r-1].
+
+ +#### Type Constraints + +
+
T1 : tensor(float16), tensor(float), tensor(double)
+
Constrain types to float tensors.
+
T2 : tensor(int64)
+
Constrain types to int tensors.
+
+ + +#### Examples + +
+roialign_aligned_false + +```python +node = onnx.helper.make_node( + "RoiAlign", + inputs=["X", "rois", "batch_indices"], + outputs=["Y"], + spatial_scale=1.0, + output_height=5, + output_width=5, + sampling_ratio=2, + coordinate_transformation_mode="output_half_pixel", +) + +X, batch_indices, rois = get_roi_align_input_values() +# (num_rois, C, output_height, output_width) +Y = np.array( + [ + [ + [ + [0.4664, 0.4466, 0.3405, 0.5688, 0.6068], + [0.3714, 0.4296, 0.3835, 0.5562, 0.3510], + [0.2768, 0.4883, 0.5222, 0.5528, 0.4171], + [0.4713, 0.4844, 0.6904, 0.4920, 0.8774], + [0.6239, 0.7125, 0.6289, 0.3355, 0.3495], + ] + ], + [ + [ + [0.3022, 0.4305, 0.4696, 0.3978, 0.5423], + [0.3656, 0.7050, 0.5165, 0.3172, 0.7015], + [0.2912, 0.5059, 0.6476, 0.6235, 0.8299], + [0.5916, 0.7389, 0.7048, 0.8372, 0.8893], + [0.6227, 0.6153, 0.7097, 0.6154, 0.4585], + ] + ], + [ + [ + [0.2384, 0.3379, 0.3717, 0.6100, 0.7601], + [0.3767, 0.3785, 0.7147, 0.9243, 0.9727], + [0.5749, 0.5826, 0.5709, 0.7619, 0.8770], + [0.5355, 0.2566, 0.2141, 0.2796, 0.3600], + [0.4365, 0.3504, 0.2887, 0.3661, 0.2349], + ] + ], + ], + dtype=np.float32, +) + +expect(node, inputs=[X, rois, batch_indices], outputs=[Y], name="test_roialign_aligned_false") +``` + +
+ + +
+roialign_aligned_true + +```python +node = onnx.helper.make_node( + "RoiAlign", + inputs=["X", "rois", "batch_indices"], + outputs=["Y"], + spatial_scale=1.0, + output_height=5, + output_width=5, + sampling_ratio=2, + coordinate_transformation_mode="half_pixel", +) + +X, batch_indices, rois = get_roi_align_input_values() +# (num_rois, C, output_height, output_width) +Y = np.array( + [ + [ + [ + [0.5178, 0.3434, 0.3229, 0.4474, 0.6344], + [0.4031, 0.5366, 0.4428, 0.4861, 0.4023], + [0.2512, 0.4002, 0.5155, 0.6954, 0.3465], + [0.3350, 0.4601, 0.5881, 0.3439, 0.6849], + [0.4932, 0.7141, 0.8217, 0.4719, 0.4039], + ] + ], + [ + [ + [0.3070, 0.2187, 0.3337, 0.4880, 0.4870], + [0.1871, 0.4914, 0.5561, 0.4192, 0.3686], + [0.1433, 0.4608, 0.5971, 0.5310, 0.4982], + [0.2788, 0.4386, 0.6022, 0.7000, 0.7524], + [0.5774, 0.7024, 0.7251, 0.7338, 0.8163], + ] + ], + [ + [ + [0.2393, 0.4075, 0.3379, 0.2525, 0.4743], + [0.3671, 0.2702, 0.4105, 0.6419, 0.8308], + [0.5556, 0.4543, 0.5564, 0.7502, 0.9300], + [0.6626, 0.5617, 0.4813, 0.4954, 0.6663], + [0.6636, 0.3721, 0.2056, 0.1928, 0.2478], + ] + ], + ], + dtype=np.float32, +) + +expect(node, inputs=[X, rois, batch_indices], outputs=[Y], name="test_roialign_aligned_true") +``` + +
+ + +### **Round** + + Round takes one input Tensor and rounds the values, element-wise, meaning + it finds the nearest integer for each value. + In case of halfs, the rule is to round them to the nearest even integer. + The output tensor has the same shape and type as the input. + + Examples: + ``` + round([0.9]) = [1.0] + round([2.5]) = [2.0] + round([2.3]) = [2.0] + round([1.5]) = [2.0] + round([-4.5]) = [-4.0] + ``` + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
X (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (non-differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+round + +```python +node = onnx.helper.make_node( + 'Round', + inputs=['x'], + outputs=['y'], +) + +x = np.array([0.1, 0.5, 0.9, 1.2, 1.5, + 1.8, 2.3, 2.5, 2.7, -1.1, + -1.5, -1.9, -2.2, -2.5, -2.8]).astype(np.float32) +y = np.array([0., 0., 1., 1., 2., + 2., 2., 2., 3., -1., + -2., -2., -2., -2., -3.]).astype(np.float32) # expected output +expect(node, inputs=[x], outputs=[y], + name='test_round') +``` + +
+ + +### **Scan** + + Scan can be used to iterate over one or more scan_input tensors, + constructing zero or more scan_output tensors. It combines ideas from general recurrences, + functional programming constructs such as scan, fold, map, and zip, and is intended to enable + generalizations of RNN-like constructs for sequence-to-sequence processing. + Other tensors (referred to as state_variables here) can be used to carry a state + when iterating from one element to another (similar to hidden-state in RNNs, also referred + to as loop-carried dependences in the context of loops). + Many common usages involve a single scan_input tensor (where functionality + similar to scan, fold and map can be obtained). When more than one scan_input is used, + a behavior similar to zip is obtained. + + The attribute body must be a graph, specifying the computation to be performed in + every iteration. It takes as input the current values of the state_variables and + the current iterated element of the scan_inputs. It must return the (updated) values + of the state_variables and zero or more scan_output_element tensors. The values of the + scan_output_element tensors are concatenated over all the iterations to produce the + scan_output values of the scan construct (similar to the concatenated intermediate + hidden-state values of RNN-like constructs). All the output tensors (state_variables as + well as scan_output_element tensors) are required to have the same shape in each iteration + of the loop (a restriction imposed to enable efficient memory allocation). + + Note that the iterated element passed to the body subgraph does not have a sequence + axis. It will have a rank one less than the rank of the corresponding scan_input. + + The scan operation returns the final values of the state_variables as well as the + scan_outputs. + + The optional attribute scan_input_directions specifies the direction (forward or backward) + for each scan input. If this attribute is omitted, all sequences are scanned in the forward + direction. A bidirectional scan may be performed by specifying the same tensor input twice + in the scan_inputs, once with a forward direction, and once with a backward direction. + + The scan_output of the operation is produced by concatenating the scan_output_element + values produced by the body in each iteration. The optional attribute scan_output_directions + specifies the direction in which scan_output is constructed (by appending or prepending the + scan_output_element to scan_output in each iteration) for each scan_output. If this attribute + is omitted, the scan_output_element is appended to the scan_output in each iteration. + + The optional attribute scan_input_axes specifies the axis to be scanned for each scan_input. + If omitted, every scan_input will be scanned in axis 0. For example, if axis 0 is the + batch axis and axis 1 is the time axis (to be scanned), specify an axis value of 1. + Note that scanning a non-zero axis may be less efficient than scanning axis zero. + + The optional attribute scan_output_axes specifies the axis along which the scan_outputs + are accumulated for each scan_output. For example, if axis 1 is the time axis (to be + scanned) for both inputs and outputs, specify a scan_input axis and scan_output axis + value of 1. + + Note that because of the ONNX restriction that only the last parameter of an operator can + be variadic, the initial-states and scan-inputs are listed together as one input parameter. + Similarly, the final-states and scan-outputs are listed together as one output parameter. + The attribute num_scan_inputs indicates the number M of scan-inputs. + + The behavior of + + Scan < + num_scan_inputs = m, + body = loop-body, + scan_input_axes = [axis_1, ..., axis_m] + > (init_1, ..., init_n, scan_1, ..., scan_m) + + is equivalent to the following pseudo-code: + + // scan_i.shape[axis_i] denotes the (max) sequence-length of scan_i + // scan_i.shape[axis_i] is required to be equal to scan_j.shape[axis_j] for all i,j. + sequence_length = scan_1.shape[axis_1]; + + // initialize state-variables + st_1 = init_1; ... st_n = init_n; + // initialize scan-output variables: [] denotes an empty tensor + scan_out_1 = []; ...; scan_out_k = []; + // identify number of iterations: + + // execute loop + for (int t = 0; t < sequence_length; ++t) { + // generate the scan-input elements: the notation T[t] indicates the sub-tensor + // of rank one less than T obtained by indexing T at position t along axis k. + si_1 = scan_1[t]; + ... ; + si_m = scan_m[t]; + // execute loop-body + st_1, ..., st_n, so_1, ..., so_k = loop-body(st_1, ..., st_n, si_1, ..., si_m) + // accumulate the scan-output elements + scan_out_1 = Concat(scan_out_1, so_1); ... ; scan_out_k = Concat(scan_out_k, so_k); + } + + return st_1, ..., st_n, scan_out_1, ..., scan_out_k; + + *Sample usage: Encoding RNN using a Scan* + + The following example shows how a simple RNN over an input tensor %X, with weight tensor %Wi, + recurrence weight tensor %Ri, bias tensors %Wbi and %Rbi, and initial hidden-state %H_0 can + be encoded as a ScanLoop. Note that the loop-body is a nested graph, and it directly computes + %Wi, %Ri, %Wbi, and %Rbi (typically constants or initializers in the body graph). If these + values are computed in the outer graph, they need to be passed in as extra state_variables. + + graph rnn-encoding { + %H_0 = ... + %X = ... + %Y_h, %Y = Scan[body = , num_scan_inputs=1](%H_0, %X) + return %Y, %Y_h + } + + graph rnn-cell-1 ( + %H_tminus1[FLOAT, tensor] + %X_t[FLOAT, tensor] + ) { + %Wi = ... + %Ri = ... + %Wbi = ... + %Rbi = ... + %t1 = X_t * (Wi^T) + %t2 = H_tminus1*(Ri^T) + %t3 = Add(%t1, %t2) + %t4 = Add(%t3, %Wbi) + %t5 = Add(%t4, %Rbi) + %Ht = Tanh(%t5) + %Accumulate = Identity(%Ht) + return %Ht, %Accumulate + } + + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 8, 9, 11 + +#### Attributes + +
+
body : graph (required)
+
The graph run each iteration. It has N+M inputs: (loop state variables..., scan_input_elts...). It has N+K outputs: (loop state variables..., scan_output_elts...). Each scan_output is created by concatenating the value of the specified scan_output_elt value at the end of each iteration of the loop. It is an error if the dimensions of these values change across loop iterations.
+
num_scan_inputs : int (required)
+
An attribute specifying the number of scan_inputs M.
+
scan_input_axes : list of ints
+
An optional list of M flags. The i-th element of the list specifies the axis to be scanned (the sequence axis) for the i-th scan_input. If omitted, 0 will be used as the scan axis for every scan_input. Negative value for an axis means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
scan_input_directions : list of ints
+
An optional list of M flags. The i-th element of the list specifies the direction to be scanned for the i-th scan_input tensor: 0 indicates forward direction and 1 indicates reverse direction. If omitted, all scan_input tensors will be scanned in the forward direction.
+
scan_output_axes : list of ints
+
An optional list of K flags. The i-th element of the list specifies the axis for the i-th scan_output. The scan outputs are accumulated along the specified axis. If omitted, 0 will be used as the scan axis for every scan_output. Negative value for an axis means counting dimensions from the back. Accepted range is [-r, r-1].
+
scan_output_directions : list of ints
+
An optional list of K flags, one for each scan_output. The i-th element of the list specifies whether the i-th scan_output should be constructed by appending or prepending a new value in each iteration: 0 indicates appending and 1 indicates prepending. If omitted, all scan_output tensors will be produced by appending a value in each iteration.
+
+ +#### Inputs (1 - ∞) + +
+
initial_state_and_scan_inputs (variadic, heterogeneous) : V
+
Initial values of the loop's N state variables followed by M scan_inputs
+
+ +#### Outputs (1 - ∞) + +
+
final_state_and_scan_outputs (variadic, heterogeneous) : V
+
Final values of the loop's N state variables followed by K scan_outputs
+
+ +#### Type Constraints + +
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
All Tensor types
+
+ + +#### Examples + +
+scan_8 + +```python +# Given an input sequence [x1, ..., xN], sum up its elements using a scan +# returning the final state (x1+x2+...+xN) as well the scan_output +# [x1, x1+x2, ..., x1+x2+...+xN] +# +# create graph to represent scan body +sum_in = onnx.helper.make_tensor_value_info('sum_in', onnx.TensorProto.FLOAT, [2]) +next = onnx.helper.make_tensor_value_info('next', onnx.TensorProto.FLOAT, [2]) +sum_out = onnx.helper.make_tensor_value_info('sum_out', onnx.TensorProto.FLOAT, [2]) +scan_out = onnx.helper.make_tensor_value_info('scan_out', onnx.TensorProto.FLOAT, [2]) +add_node = onnx.helper.make_node( + 'Add', + inputs=['sum_in', 'next'], + outputs=['sum_out'] +) +id_node = onnx.helper.make_node( + 'Identity', + inputs=['sum_out'], + outputs=['scan_out'] +) +scan_body = onnx.helper.make_graph( + [add_node, id_node], + 'scan_body', + [sum_in, next], + [sum_out, scan_out] +) +# create scan op node +no_sequence_lens = '' # optional input, not supplied +node = onnx.helper.make_node( + 'Scan', + inputs=[no_sequence_lens, 'initial', 'x'], + outputs=['y', 'z'], + num_scan_inputs=1, + body=scan_body +) +# create inputs for batch-size 1, sequence-length 3, inner dimension 2 +initial = np.array([0, 0]).astype(np.float32).reshape((1, 2)) +x = np.array([1, 2, 3, 4, 5, 6]).astype(np.float32).reshape((1, 3, 2)) +# final state computed = [1 + 3 + 5, 2 + 4 + 6] +y = np.array([9, 12]).astype(np.float32).reshape((1, 2)) +# scan-output computed +z = np.array([1, 2, 4, 6, 9, 12]).astype(np.float32).reshape((1, 3, 2)) + +expect(node, inputs=[initial, x], outputs=[y, z], + name='test_scan_sum', opset_imports=[onnx.helper.make_opsetid("", 8)]) +``` + +
+ + +
+scan_9 + +```python +# Given an input sequence [x1, ..., xN], sum up its elements using a scan +# returning the final state (x1+x2+...+xN) as well the scan_output +# [x1, x1+x2, ..., x1+x2+...+xN] +# +# create graph to represent scan body +sum_in = onnx.helper.make_tensor_value_info('sum_in', onnx.TensorProto.FLOAT, [2]) +next = onnx.helper.make_tensor_value_info('next', onnx.TensorProto.FLOAT, [2]) +sum_out = onnx.helper.make_tensor_value_info('sum_out', onnx.TensorProto.FLOAT, [2]) +scan_out = onnx.helper.make_tensor_value_info('scan_out', onnx.TensorProto.FLOAT, [2]) +add_node = onnx.helper.make_node( + 'Add', + inputs=['sum_in', 'next'], + outputs=['sum_out'] +) +id_node = onnx.helper.make_node( + 'Identity', + inputs=['sum_out'], + outputs=['scan_out'] +) +scan_body = onnx.helper.make_graph( + [add_node, id_node], + 'scan_body', + [sum_in, next], + [sum_out, scan_out] +) +# create scan op node +node = onnx.helper.make_node( + 'Scan', + inputs=['initial', 'x'], + outputs=['y', 'z'], + num_scan_inputs=1, + body=scan_body +) +# create inputs for sequence-length 3, inner dimension 2 +initial = np.array([0, 0]).astype(np.float32).reshape((2,)) +x = np.array([1, 2, 3, 4, 5, 6]).astype(np.float32).reshape((3, 2)) +# final state computed = [1 + 3 + 5, 2 + 4 + 6] +y = np.array([9, 12]).astype(np.float32).reshape((2,)) +# scan-output computed +z = np.array([1, 2, 4, 6, 9, 12]).astype(np.float32).reshape((3, 2)) + +expect(node, inputs=[initial, x], outputs=[y, z], + name='test_scan9_sum', opset_imports=[onnx.helper.make_opsetid("", 9)]) +``` + +
+ + +### **Scatter** (deprecated) + + This operator is deprecated. Please use ScatterElements, which provides the same functionality. + + Scatter takes three inputs `data`, `updates`, and `indices` of the same + rank r >= 1 and an optional attribute axis that identifies an axis of `data` + (by default, the outer-most axis, that is axis 0). The output of the operation + is produced by creating a copy of the input `data`, and then updating its value + to values specified by `updates` at specific index positions specified by + `indices`. Its output shape is the same as the shape of `data`. + + For each entry in `updates`, the target index in `data` is obtained by combining + the corresponding entry in `indices` with the index of the entry itself: the + index-value for dimension = axis is obtained from the value of the corresponding + entry in `indices` and the index-value for dimension != axis is obtained from the + index of the entry itself. + + For instance, in a 2-D tensor case, the update corresponding to the [i][j] entry + is performed as below: + ``` + output[indices[i][j]][j] = updates[i][j] if axis = 0, + output[i][indices[i][j]] = updates[i][j] if axis = 1, + ``` + + This operator is the inverse of GatherElements. It is similar to Torch's Scatter operation. + + Example 1: + ``` + data = [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + ] + indices = [ + [1, 0, 2], + [0, 2, 1], + ] + updates = [ + [1.0, 1.1, 1.2], + [2.0, 2.1, 2.2], + ] + output = [ + [2.0, 1.1, 0.0] + [1.0, 0.0, 2.2] + [0.0, 2.1, 1.2] + ] + ``` + Example 2: + ``` + data = [[1.0, 2.0, 3.0, 4.0, 5.0]] + indices = [[1, 3]] + updates = [[1.1, 2.1]] + axis = 1 + output = [[1.0, 1.1, 3.0, 2.1, 5.0]] + ``` + +#### Version + +This version of the operator has been deprecated since version 11 of the default ONNX operator set. + +Other versions of this operator: 9 + + +#### Examples + +
+scatter_with_axis + +```python +axis = 1 +node = onnx.helper.make_node( + 'Scatter', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, +) +data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) +indices = np.array([[1, 3]], dtype=np.int64) +updates = np.array([[1.1, 2.1]], dtype=np.float32) + +y = scatter(data, indices, updates, axis=axis) +# print(y) produces +# [[1.0, 1.1, 3.0, 2.1, 5.0]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_with_axis', opset_imports=[helper.make_opsetid("", 10)]) +``` + +
+ + +
+scatter_without_axis + +```python +node = onnx.helper.make_node( + 'Scatter', + inputs=['data', 'indices', 'updates'], + outputs=['y'], +) +data = np.zeros((3, 3), dtype=np.float32) +indices = np.array([[1, 0, 2], [0, 2, 1]], dtype=np.int64) +updates = np.array([[1.0, 1.1, 1.2], [2.0, 2.1, 2.2]], dtype=np.float32) + +y = scatter(data, indices, updates) +# print(y) produces +# [[2.0, 1.1, 0.0], +# [1.0, 0.0, 2.2], +# [0.0, 2.1, 1.2]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_without_axis', opset_imports=[helper.make_opsetid("", 10)]) +``` + +
+ + +### **ScatterElements** + + ScatterElements takes three inputs `data`, `updates`, and `indices` of the same + rank r >= 1 and an optional attribute axis that identifies an axis of `data` + (by default, the outer-most axis, that is axis 0). The output of the operation + is produced by creating a copy of the input `data`, and then updating its value + to values specified by `updates` at specific index positions specified by + `indices`. Its output shape is the same as the shape of `data`. + + For each entry in `updates`, the target index in `data` is obtained by combining + the corresponding entry in `indices` with the index of the entry itself: the + index-value for dimension = axis is obtained from the value of the corresponding + entry in `indices` and the index-value for dimension != axis is obtained from the + index of the entry itself. + + `reduction` allows specification of an optional reduction operation, which is applied to all values in `updates` + tensor into `output` at the specified `indices`. + In cases where `reduction` is set to "none", indices should not have duplicate entries: that is, if idx1 != idx2, + then indices[idx1] != indices[idx2]. For instance, in a 2-D tensor case, the update + corresponding to the [i][j] entry is performed as below: + ``` + output[indices[i][j]][j] = updates[i][j] if axis = 0, + output[i][indices[i][j]] = updates[i][j] if axis = 1, + ``` + When `reduction` is set to "add", the update corresponding to the [i][j] entry is performed as below: + ``` + output[indices[i][j]][j] += updates[i][j] if axis = 0, + output[i][indices[i][j]] += updates[i][j] if axis = 1, + ``` + When `reduction` is set to "mul", the update corresponding to the [i][j] entry is performed as below: + ``` + output[indices[i][j]][j] *= updates[i][j] if axis = 0, + output[i][indices[i][j]] *= updates[i][j] if axis = 1, + ``` + + This operator is the inverse of GatherElements. It is similar to Torch's Scatter operation. + + Example 1: + ``` + data = [ + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + [0.0, 0.0, 0.0], + ] + indices = [ + [1, 0, 2], + [0, 2, 1], + ] + updates = [ + [1.0, 1.1, 1.2], + [2.0, 2.1, 2.2], + ] + output = [ + [2.0, 1.1, 0.0] + [1.0, 0.0, 2.2] + [0.0, 2.1, 1.2] + ] + ``` + Example 2: + ``` + data = [[1.0, 2.0, 3.0, 4.0, 5.0]] + indices = [[1, 3]] + updates = [[1.1, 2.1]] + axis = 1 + output = [[1.0, 1.1, 3.0, 2.1, 5.0]] + ``` + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 11, 13 + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to scatter on. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
reduction : string (default is none)
+
Type of reduction to apply: none (default), add, mul. 'none': no reduction applied. 'add': reduction using the addition operation. 'mul': reduction using the multiplication operation.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : Tind
+
Tensor of int32/int64 indices, of r >= 1 (same rank as input). All index values are expected to be within bounds [-s, s-1] along axis of size s. It is an error if any of the index values are out of bounds.
+
updates (differentiable) : T
+
Tensor of rank r >=1 (same rank and shape as indices)
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank r >= 1 (same rank as input).
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input and output types can be of any tensor type.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ + +#### Examples + +
+scatter_elements_with_axis + +```python +axis = 1 +node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, +) +data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) +indices = np.array([[1, 3]], dtype=np.int64) +updates = np.array([[1.1, 2.1]], dtype=np.float32) + +y = scatter_elements(data, indices, updates, axis) +# print(y) produces +# [[1.0, 1.1, 3.0, 2.1, 5.0]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_with_axis') +``` + +
+ + +
+scatter_elements_with_duplicate_indices + +```python +axis = 1 +node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, + reduction='add', +) +data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) +indices = np.array([[1, 1]], dtype=np.int64) +updates = np.array([[1.1, 2.1]], dtype=np.float32) + +y = scatter_elements(data, indices, updates, axis, reduction='add') +# print(y) produces +# [[1.0, 5.2, 3.0, 4.0, 5.0]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_with_duplicate_indices') +``` + +
+ + +
+scatter_elements_with_negative_indices + +```python +axis = 1 +node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, +) +data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) +indices = np.array([[1, -3]], dtype=np.int64) +updates = np.array([[1.1, 2.1]], dtype=np.float32) + +y = scatter_elements(data, indices, updates, axis) +# print(y) produces +# [[1.0, 1.1, 2.1, 4.0, 5.0]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_with_negative_indices') +``` + +
+ + +
+scatter_elements_without_axis + +```python +node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], +) +data = np.zeros((3, 3), dtype=np.float32) +indices = np.array([[1, 0, 2], [0, 2, 1]], dtype=np.int64) +updates = np.array([[1.0, 1.1, 1.2], [2.0, 2.1, 2.2]], dtype=np.float32) + +y = scatter_elements(data, indices, updates) +# print(y) produces +# [[2.0, 1.1, 0.0], +# [1.0, 0.0, 2.2], +# [0.0, 2.1, 1.2]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_without_axis') +``` + +
+ + +### **ScatterND** + + ScatterND takes three inputs `data` tensor of rank r >= 1, `indices` tensor of rank q >= 1, + and `updates` tensor of rank q + r - indices.shape[-1] - 1. The output of the operation + is produced by creating a copy of the input `data`, and then updating its value to values + specified by `updates` at specific index positions specified by `indices`. Its output shape + is the same as the shape of `data`. Note that `indices` should not have duplicate entries. + That is, two or more `updates` for the same index-location is not supported. + + `indices` is an integer tensor. Let k denote indices.shape[-1], the last dimension in the shape of `indices`. + `indices` is treated as a (q-1)-dimensional tensor of k-tuples, where each k-tuple is a partial-index into `data`. + Hence, k can be a value at most the rank of `data`. When k equals rank(data), each update entry specifies an + update to a single element of the tensor. When k is less than rank(data) each update entry specifies an + update to a slice of the tensor. + + `updates` is treated as a (q-1)-dimensional tensor of replacement-slice-values. Thus, the + first (q-1) dimensions of updates.shape must match the first (q-1) dimensions of indices.shape. + The remaining dimensions of `updates` correspond to the dimensions of the + replacement-slice-values. Each replacement-slice-value is a (r-k) dimensional tensor, + corresponding to the trailing (r-k) dimensions of `data`. Thus, the shape of `updates` + must equal indices.shape[0:q-1] ++ data.shape[k:r-1], where ++ denotes the concatenation + of shapes. + + The `output` is calculated via the following equation: + + output = np.copy(data) + update_indices = indices.shape[:-1] + for idx in np.ndindex(update_indices): + output[indices[idx]] = updates[idx] + + The order of iteration in the above loop is not specified. + In particular, indices should not have duplicate entries: that is, if idx1 != idx2, then indices[idx1] != indices[idx2]. + This ensures that the output value does not depend on the iteration order. + + `reduction` allows specification of an optional reduction operation, which is applied to all values in `updates` + tensor into `output` at the specified `indices`. + In cases where `reduction` is set to "none", indices should not have duplicate entries: that is, if idx1 != idx2, + then indices[idx1] != indices[idx2]. This ensures that the output value does not depend on the iteration order. + When `reduction` is set to "add", `output` is calculated as follows: + + output = np.copy(data) + update_indices = indices.shape[:-1] + for idx in np.ndindex(update_indices): + output[indices[idx]] += updates[idx] + + When `reduction` is set to "mul", `output` is calculated as follows: + + output = np.copy(data) + update_indices = indices.shape[:-1] + for idx in np.ndindex(update_indices): + output[indices[idx]] *= updates[idx] + + This operator is the inverse of GatherND. + + Example 1: + ``` + data = [1, 2, 3, 4, 5, 6, 7, 8] + indices = [[4], [3], [1], [7]] + updates = [9, 10, 11, 12] + output = [1, 11, 3, 10, 9, 6, 7, 12] + ``` + + Example 2: + ``` + data = [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]] + indices = [[0], [2]] + updates = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]] + output = [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]] + ``` + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 11, 13 + +#### Attributes + +
+
reduction : string (default is none)
+
Type of reduction to apply: none (default), add, mul. 'none': no reduction applied. 'add': reduction using the addition operation. 'mul': reduction using the multiplication operation.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
Tensor of rank r >= 1.
+
indices (non-differentiable) : tensor(int64)
+
Tensor of rank q >= 1.
+
updates (differentiable) : T
+
Tensor of rank q + r - indices_shape[-1] - 1.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of rank r >= 1.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to any tensor type.
+
+ + +#### Examples + +
+scatternd + +```python +node = onnx.helper.make_node( + 'ScatterND', + inputs=['data', 'indices', 'updates'], + outputs=['y'], +) +data = np.array( + [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +indices = np.array([[0], [2]], dtype=np.int64) +updates = np.array( + [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]], dtype=np.float32) +# Expecting output as np.array( +# [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], +# [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], +# [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], +# [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +output = scatter_nd_impl(data, indices, updates) +expect(node, inputs=[data, indices, updates], outputs=[output], + name='test_scatternd') +``` + +
+ + +
+scatternd_add + +```python +node = onnx.helper.make_node( + 'ScatterND', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + reduction='add', +) +data = np.array( + [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +indices = np.array([[0], [0]], dtype=np.int64) +updates = np.array( + [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]], dtype=np.float32) +# Expecting output as np.array( +# [[[7, 8, 9, 10], [13, 14, 15, 16], [18, 17, 16, 15], [16, 15, 14, 13]], +# [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], +# [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], +# [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +output = scatter_nd_impl(data, indices, updates, reduction='add') +expect(node, inputs=[data, indices, updates], outputs=[output], + name='test_scatternd_add') +``` + +
+ + +
+scatternd_multiply + +```python +node = onnx.helper.make_node( + 'ScatterND', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + reduction='mul', +) +data = np.array( + [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +indices = np.array([[0], [0]], dtype=np.int64) +updates = np.array( + [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]], dtype=np.float32) +# Expecting output as np.array( +# [[[5, 10, 15, 20], [60, 72, 84, 96], [168, 147, 126, 105], [128, 96, 64, 32]], +# [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], +# [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], +# [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +output = scatter_nd_impl(data, indices, updates, reduction='mul') +expect(node, inputs=[data, indices, updates], outputs=[output], + name='test_scatternd_multiply') +``` + +
+ + +### **Selu** + + Selu takes one input data (Tensor) and produces one output data + (Tensor) where the scaled exponential linear unit function, + `y = gamma * (alpha * e^x - alpha) for x <= 0`, `y = gamma * x for x > 0`, + is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 6 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
alpha : float (default is 1.67326)
+
Coefficient of SELU default to 1.67326319217681884765625 (i.e., float32 approximation of 1.6732632423543772848170429916717).
+
gamma : float (default is 1.0507)
+
Coefficient of SELU default to 1.05070102214813232421875 (i.e., float32 approximation of 1.0507009873554804934193349852946).
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+selu + +```python +node = onnx.helper.make_node( + 'Selu', + inputs=['x'], + outputs=['y'], + alpha=2.0, + gamma=3.0 +) + +x = np.array([-1, 0, 1]).astype(np.float32) +# expected output [-3.79272318, 0., 3.] +y = np.clip(x, 0, np.inf) * 3.0 + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 * 3.0 +expect(node, inputs=[x], outputs=[y], + name='test_selu_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) * 3.0 + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 * 3.0 +expect(node, inputs=[x], outputs=[y], + name='test_selu') +``` + +
+ + +
+selu_default + +```python +default_alpha = 1.67326319217681884765625 +default_gamma = 1.05070102214813232421875 +node = onnx.helper.make_node( + 'Selu', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) * default_gamma + \ + (np.exp(np.clip(x, -np.inf, 0)) - 1) * default_alpha * default_gamma +expect(node, inputs=[x], outputs=[y], + name='test_selu_default') +``` + +
+ + +### **SequenceAt** + + Outputs a tensor copy from the tensor at 'position' in 'input_sequence'. + Accepted range for 'position' is in `[-n, n - 1]`, where `n` is the number of tensors in 'input_sequence'. + Negative value means counting positions from the back. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
input_sequence : S
+
Input sequence.
+
position : I
+
Position of the tensor in the sequence. Negative value means counting positions from the back. Accepted range in `[-n, n - 1]`, where `n` is the number of tensors in 'input_sequence'. It is an error if any of the index values are out of bounds. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
tensor : T
+
Output tensor at the specified position in the input sequence.
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor type.
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type.
+
I : tensor(int32), tensor(int64)
+
Constrain position to integral tensor. It must be a scalar(tensor of empty shape).
+
+ + +### **SequenceConstruct** + + Construct a tensor sequence containing 'inputs' tensors. + All tensors in 'inputs' must have the same data type. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs (1 - ∞) + +
+
inputs (variadic) : T
+
Tensors.
+
+ +#### Outputs + +
+
output_sequence : S
+
Sequence enclosing the input tensors.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input types to any tensor type.
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain output types to any tensor type.
+
+ + +### **SequenceEmpty** + + Construct an empty tensor sequence, with given data type. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
dtype : int
+
(Optional) The data type of the tensors in the output sequence. The default type is 'float'.
+
+ +#### Inputs + + +#### Outputs + +
+
output : S
+
Empty sequence.
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain output types to any tensor type.
+
+ + +### **SequenceErase** + + Outputs a tensor sequence that removes the tensor at 'position' from 'input_sequence'. + Accepted range for 'position' is in `[-n, n - 1]`, where `n` is the number of tensors in 'input_sequence'. + Negative value means counting positions from the back. + 'position' is optional, by default it erases the last tensor from 'input_sequence'. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs (1 - 2) + +
+
input_sequence : S
+
Input sequence.
+
position (optional) : I
+
Position of the tensor in the sequence. Negative value means counting positions from the back. Accepted range in `[-n, n - 1]`, where `n` is the number of tensors in 'input_sequence'. It is an error if any of the index values are out of bounds. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
output_sequence : S
+
Output sequence that has the tensor at the specified position removed.
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor type.
+
I : tensor(int32), tensor(int64)
+
Constrain position to integral tensor. It must be a scalar(tensor of empty shape).
+
+ + +### **SequenceInsert** + + Outputs a tensor sequence that inserts 'tensor' into 'input_sequence' at 'position'. + 'tensor' must have the same data type as 'input_sequence'. + Accepted range for 'position' is in `[-n, n]`, where `n` is the number of tensors in 'input_sequence'. + Negative value means counting positions from the back. + 'position' is optional, by default it inserts 'tensor' to the back of 'input_sequence'. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs (2 - 3) + +
+
input_sequence : S
+
Input sequence.
+
tensor : T
+
Input tensor to be inserted into the input sequence.
+
position (optional) : I
+
Position in the sequence where the new tensor is inserted. It is optional and default is to insert to the back of the sequence. Negative value means counting positions from the back. Accepted range in `[-n, n]`, where `n` is the number of tensors in 'input_sequence'. It is an error if any of the index values are out of bounds. It must be a scalar(tensor of empty shape).
+
+ +#### Outputs + +
+
output_sequence : S
+
Output sequence that contains the inserted tensor at given position.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain to any tensor type.
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor type.
+
I : tensor(int32), tensor(int64)
+
Constrain position to integral tensor. It must be a scalar(tensor of empty shape).
+
+ + +#### Examples + +
+sequenceinsert + +```python +test_cases = { + 'at_back': [np.array([10, 11, 12]).astype(np.int64)], + 'at_front': [np.array([-2, -1, 0]), np.array([0]).astype(np.int64)] +} +sequence = [np.array([1, 2, 3, 4]).astype(np.int64), np.array([5, 6, 7]).astype(np.int64), np.array([8, 9]).astype(np.int64)] + +for test_name, test_inputs in test_cases.items(): + tensor = test_inputs[0].astype(np.int64) + + if len(test_inputs) > 1: + node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['sequence', 'tensor', 'position'], + outputs=['output_sequence'] + ) + position = test_inputs[1] + inserted = sequence_insert_reference_implementation(sequence, tensor, position) + expect(node, inputs=[sequence, tensor, position], outputs=[inserted], + name='test_sequence_insert_' + test_name) + else: + node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['sequence', 'tensor'], + outputs=['output_sequence'] + ) + inserted = sequence_insert_reference_implementation(sequence, tensor) + expect(node, inputs=[sequence, tensor], outputs=[inserted], + name='test_sequence_insert_' + test_name) +``` + +
+ + +### **SequenceLength** + + Produces a scalar(tensor of empty shape) containing the number of tensors in 'input_sequence'. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Inputs + +
+
input_sequence : S
+
Input sequence.
+
+ +#### Outputs + +
+
length : I
+
Length of input sequence. It must be a scalar(tensor of empty shape).
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor type.
+
I : tensor(int64)
+
Constrain output to integral tensor. It must be a scalar(tensor of empty shape).
+
+ + +### **SequenceMap** + + Applies a sub-graph to each sample in the input sequence(s). + + Inputs can be either tensors or sequences, with the exception of the first input which must + be a sequence. The length of the first input sequence will determine the number of samples in the + outputs. Any other sequence inputs should have the same number of samples. The number of inputs + and outputs, should match the one of the subgraph. + + For each i-th element in the output, a sample will be extracted from the input sequence(s) at + the i-th position and the sub-graph will be applied to it. + The outputs will contain the outputs of the sub-graph for each sample, in the same order as in + the input. + + This operator assumes that processing each sample is independent and could executed in parallel + or in any order. Users cannot expect any specific ordering in which each subgraph is computed. + +#### Version + +This version of the operator has been available since version 17 of the default ONNX operator set. + +#### Attributes + +
+
body : graph (required)
+
The graph to be run for each sample in the sequence(s). It should have as many inputs and outputs as inputs and outputs to the SequenceMap function.
+
+ +#### Inputs (1 - ∞) + +
+
input_sequence : S
+
Input sequence.
+
additional_inputs (variadic, heterogeneous) : V
+
Additional inputs to the graph
+
+ +#### Outputs (1 - ∞) + +
+
out_sequence (variadic, heterogeneous) : S
+
Output sequence(s)
+
+ +#### Type Constraints + +
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain input types to any sequence type.
+
V : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128), seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain to any tensor or sequence type.
+
+ + +#### Examples + +
+sequence_map_add_1_sequence_1_tensor + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Add', ['in0', 'in1'], ['out0'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['N'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['N'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0'], + body=body +) + +x0 = [np.random.uniform(0.0, 1.0, 10).astype(np.float32) for k in range(3)] +x1 = np.random.uniform(0.0, 1.0, 10).astype(np.float32) +y0 = [x0[i] + x1 for i in range(3)] +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N']), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +expect(node, inputs=[x0, x1], outputs=[y0], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_add_1_sequence_1_tensor') +``` + +
+ + +
+sequence_map_add_2_sequences + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Add', ['in0', 'in1'], ['out0'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['N'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['N'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0'], + body=body +) + +N = [np.random.randint(1, 10) for _ in range(3)] +x0 = [np.random.uniform(0.0, 1.0, N[k]).astype(np.float32) + for k in range(3)] +x1 = [np.random.uniform(0.0, 1.0, N[k]).astype(np.float32) + for k in range(3)] +y0 = [x0[k] + x1[k] for k in range(3)] +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +expect(node, inputs=[x0, x1], outputs=[y0], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_add_2_sequences') +``` + +
+ + +
+sequence_map_extract_shapes + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Shape', ['x'], ['shape'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, ['H', 'W', 'C'])], + [onnx.helper.make_tensor_value_info('shape', onnx.TensorProto.INT64, [3])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['in_seq'], + outputs=['shapes'], + body=body +) + +shapes = [ + np.array([40, 30, 3], dtype=np.int64), + np.array([20, 10, 3], dtype=np.int64), + np.array([10, 5, 3], dtype=np.int64), +] +x0 = [np.zeros(shape, dtype=np.float32) for shape in shapes] +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['H', 'W', 'C'])), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.INT64, [3])), +] +expect(node, inputs=[x0], outputs=[shapes], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_extract_shapes') +``` + +
+ + +
+sequence_map_identity_1_sequence + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Identity', ['in0'], ['out0'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info( + 'in0', onnx.TensorProto.FLOAT, ['N'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['M'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x'], + outputs=['y'], + body=body +) + +x = [np.random.uniform(0.0, 1.0, 10).astype(np.float32) + for _ in range(3)] +y = x +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +expect(node, inputs=[x], outputs=[y], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_identity_1_sequence') +``` + +
+ + +
+sequence_map_identity_1_sequence_1_tensor + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Identity', ['in0'], ['out0']), + onnx.helper.make_node('Identity', ['in1'], ['out1'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['M'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info( + 'out1', onnx.TensorProto.FLOAT, ['M'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0', 'y1'], + body=body +) + +x0 = [np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) for _ in range(3)] +x1 = np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) +y0 = x0 +y1 = [x1 for _ in range(3)] +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M']), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M'])), +] +expect(node, inputs=[x0, x1], outputs=[y0, y1], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_identity_1_sequence_1_tensor') +``` + +
+ + +
+sequence_map_identity_2_sequences + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Identity', ['in0'], ['out0']), + onnx.helper.make_node('Identity', ['in1'], ['out1'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['M'])], + [onnx.helper.make_tensor_value_info('out0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('out1', onnx.TensorProto.FLOAT, ['M'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0', 'y1'], + body=body +) + +x0 = [np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) for _ in range(3)] +x1 = [np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) for _ in range(3)] +y0 = x0 +y1 = x1 +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M'])), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M'])), +] +expect(node, inputs=[x0, x1], outputs=[y0, y1], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_identity_2_sequences') +``` + +
+ + +### **Shape** + + Takes a tensor as input and outputs an 1D int64 tensor containing the shape of the input tensor. + Optional attributes start and end can be used to compute a slice of the input tensor's shape. + If start axis is omitted, the slice starts from axis 0. + The end axis, if specified, is exclusive (and the returned value will not include the size of that axis). + If the end axis is omitted, the axes upto the last one will be included. + Negative axes indicate counting back from the last axis. + Note that axes will be clamped to the range [0, r-1], where r is the + rank of the input tensor if they are out-of-range (after adding r in the case of + negative axis). Thus, specifying any end value > r is equivalent to specifying an end + value of r, and specifying any start value < -r is equivalent to specifying a start + value of 0. + + For example: + Input tensor with shape: [2, 3, 4] + No attributes specified. + Output: [2, 3, 4] + + Input tensor with shape: [2, 3, 4] + start: -1 + Output: [4] + + Input tensor with shape: [2, 3, 4] + end: -1 + Output: [2, 3] + + Input tensor with shape: [2, 3, 4] + start: 1 + end: 2 + Output: [3] + +#### Version + +This version of the operator has been available since version 15 of the default ONNX operator set. + +Other versions of this operator: 1, 13 + +#### Attributes + +
+
end : int
+
(Optional) Ending axis for slicing the shape. Negative value means counting dimensions from the back. If omitted, sizes of all axes upto (including) the last one will be included.
+
start : int (default is 0)
+
(Optional) Starting axis for slicing the shape. Default value is 0.Negative value means counting dimensions from the back.
+
+ +#### Inputs + +
+
data (non-differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
shape (non-differentiable) : T1
+
Shape of the input tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input tensor can be of arbitrary type.
+
T1 : tensor(int64)
+
Constrain output to int64 tensor.
+
+ + +#### Examples + +
+shape + +```python +x = np.array([ + [1, 2, 3], + [4, 5, 6], +]).astype(np.float32) +test_shape('_example', x) # preserve names of original test cases + +x = np.random.randn(3, 4, 5).astype(np.float32) + +test_shape('', x) # preserve names of original test cases + +test_shape('_start_1', x, start=1) + +test_shape('_end_1', x, end=1) + +test_shape('_start_negative_1', x, start=-1) + +test_shape('_end_negative_1', x, end=-1) + +test_shape('_start_1_end_negative_1', x, start=1, end=-1) + +test_shape('_start_1_end_2', x, start=1, end=2) + +test_shape('_clip_start', x, start=-10) + +test_shape('_clip_end', x, end=10) +``` + +
+ + +### **Shrink** + + Shrink takes one input data (Tensor) and produces one Tensor output, + having same datatype and shape with input. It has two attributes, lambd and + bias. The formula of this operator is: If x < -lambd, y = x + bias; + If x > lambd, y = x - bias; Otherwise, y = 0. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
bias : float (default is 0.0)
+
The bias value added to output. Default is 0.
+
lambd : float (default is 0.5)
+
The lambd value for the Shrink formulation. Default is 0.5.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
The input data as Tensor.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input to only numeric types.
+
+ + +#### Examples + +
+hard_shrink + +```python +node = onnx.helper.make_node( + 'Shrink', + inputs=['x'], + outputs=['y'], + lambd=1.5, +) +X = np.arange(-2.0, 2.1, dtype=np.float32) +Y = np.array([-2, 0, 0, 0, 2], dtype=np.float32) +expect(node, inputs=[X], outputs=[Y], + name='test_shrink_hard') +``` + +
+ + +
+soft_shrink + +```python +node = onnx.helper.make_node( + 'Shrink', + inputs=['x'], + outputs=['y'], + lambd=1.5, + bias=1.5, +) +X = np.arange(-2.0, 2.1, dtype=np.float32) +Y = np.array([-0.5, 0, 0, 0, 0.5], dtype=np.float32) +expect(node, inputs=[X], outputs=[Y], + name='test_shrink_soft') +``` + +
+ + +### **Sigmoid** + + Sigmoid takes one input data (Tensor) and produces one output data + (Tensor) where the sigmoid function, y = 1 / (1 + exp(-x)), is applied to the + tensor elementwise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+sigmoid + +```python +node = onnx.helper.make_node( + 'Sigmoid', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = 1.0 / (1.0 + np.exp(np.negative(x))) # expected output [0.26894143, 0.5, 0.7310586] +expect(node, inputs=[x], outputs=[y], + name='test_sigmoid_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = 1.0 / (1.0 + np.exp(np.negative(x))) +expect(node, inputs=[x], outputs=[y], + name='test_sigmoid') +``` + +
+ + +### **Sign** + + Calculate the sign of the given input tensor element-wise. + If input > 0, output 1. if input < 0, output -1. if input == 0, output 0. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 9 + +#### Inputs + +
+
input (non-differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (non-differentiable) : T
+
The sign of the input tensor computed element-wise. It has the same shape and type of the input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+sign + +```python +node = onnx.helper.make_node( + 'Sign', + inputs=['x'], + outputs=['y'], +) + +x = np.array(range(-5, 6)).astype(np.float32) +y = np.sign(x) +expect(node, inputs=[x], outputs=[y], + name='test_sign') +``` + +
+ + +### **Sin** + + Calculates the sine of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The sine of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+sin + +```python +node = onnx.helper.make_node( + 'Sin', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.sin(x) +expect(node, inputs=[x], outputs=[y], + name='test_sin_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.sin(x) +expect(node, inputs=[x], outputs=[y], + name='test_sin') +``` + +
+ + +### **Sinh** + + Calculates the hyperbolic sine of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic sine values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+sinh + +```python +node = onnx.helper.make_node( + 'Sinh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.sinh(x) # expected output [-1.17520118, 0., 1.17520118] +expect(node, inputs=[x], outputs=[y], + name='test_sinh_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.sinh(x) +expect(node, inputs=[x], outputs=[y], + name='test_sinh') +``` + +
+ + +### **Size** + + Takes a tensor as input and outputs a int64 scalar that equals to the total number of elements of the input tensor. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Inputs + +
+
data (non-differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
size (non-differentiable) : T1
+
Total number of elements of the input tensor
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input tensor can be of arbitrary type.
+
T1 : tensor(int64)
+
Constrain output to int64 tensor, which should be a scalar though.
+
+ + +#### Examples + +
+size + +```python +node = onnx.helper.make_node( + 'Size', + inputs=['x'], + outputs=['y'], +) + +x = np.array([ + [1, 2, 3], + [4, 5, 6], +]).astype(np.float32) +y = np.array(6).astype(np.int64) + +expect(node, inputs=[x], outputs=[y], + name='test_size_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.array(x.size).astype(np.int64) + +expect(node, inputs=[x], outputs=[y], + name='test_size') +``` + +
+ + +### **Slice** + + Produces a slice of the input tensor along multiple axes. Similar to numpy: + https://numpy.org/doc/stable/user/basics.indexing.html?highlight=slice#slicing-and-striding + + Slice uses the `starts`, `ends`, `axes` and `steps` inputs to select a sub-tensor + of its input `data` tensor. + + An effective `start[i]`, `end[i]`, and `step[i]` must be computed for each `i` + in `[0, ... r-1]` where `r = rank(input)` as follows: + + If `axes` are omitted, they are set to `[0, ..., r-1]`. + If `steps` are omitted, they are set to `[1, ..., 1]` of length `len(starts)` + + The effective values are initialized as `start[i] = 0`, `end[i] = dims[i]` where + `dims` are the dimensions of `input` and `step[i] = `1. + + All negative elements of `axes` are made non-negatve by adding `r` to them, where + `r =rank(input)`. + + All negative values in `starts[i]` and `ends[i]` have `dims[axes[i]]` added to them, + where `dims` are the dimensions of `input`. Then `start[axes[i]]` is the adjusted + `starts[i]` is clamped into the range `[0, dims[axes[i]]]` for positive stepping + and `[0, dims[axes[i]]-1]` for negative stepping. + + The clamping for the adjusted `ends[i]` depends on the sign of `steps[i]` and must + accommodate copying 0 through `dims[axes[i]]` elements, so for positive stepping + `end[axes[i]]` is clamped to `[0, dims[axes[i]]]`, while for negative stepping it + is clamped to `[-1, dims[axes[i]]-1]`. + + Finally, `step[axes[i]] = steps[i]`. + + For slicing to the end of a dimension with unknown size, it is recommended to pass + in `INT_MAX` when slicing forward and 'INT_MIN' when slicing backward. + + Example 1: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + axes = [0, 1] + starts = [1, 0] + ends = [2, 3] + steps = [1, 2] + result = [ + [5, 7], + ] + Example 2: + data = [ + [1, 2, 3, 4], + [5, 6, 7, 8], + ] + starts = [0, 1] + ends = [-1, 1000] + result = [ + [2, 3, 4], + ] + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 10, 11 + +#### Inputs (3 - 5) + +
+
data (differentiable) : T
+
Tensor of data to extract slices from.
+
starts (non-differentiable) : Tind
+
1-D tensor of starting indices of corresponding axis in `axes`
+
ends (non-differentiable) : Tind
+
1-D tensor of ending indices (exclusive) of corresponding axis in `axes`
+
axes (optional, non-differentiable) : Tind
+
1-D tensor of axes that `starts` and `ends` apply to. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data). Behavior is undefined if an axis is repeated.
+
steps (optional, non-differentiable) : Tind
+
1-D tensor of slice step of corresponding axis in `axes`. Negative value means slicing backward. 'steps' cannot be 0. Defaults to 1s.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Sliced data tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
Tind : tensor(int32), tensor(int64)
+
Constrain indices to integer types
+
+ + +#### Examples + +
+slice + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +y = x[0:3, 0:10] +starts = np.array([0, 0], dtype=np.int64) +ends = np.array([3, 10], dtype=np.int64) +axes = np.array([0, 1], dtype=np.int64) +steps = np.array([1, 1], dtype=np.int64) + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice') +``` + +
+ + +
+slice_default_axes + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([0, 0, 3], dtype=np.int64) +ends = np.array([20, 10, 4], dtype=np.int64) +y = x[:, :, 3:4] + +expect(node, inputs=[x, starts, ends], outputs=[y], + name='test_slice_default_axes') +``` + +
+ + +
+slice_default_steps + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([0, 0, 3], dtype=np.int64) +ends = np.array([20, 10, 4], dtype=np.int64) +axes = np.array([0, 1, 2], dtype=np.int64) +y = x[:, :, 3:4] + +expect(node, inputs=[x, starts, ends, axes], outputs=[y], + name='test_slice_default_steps') +``` + +
+ + +
+slice_end_out_of_bounds + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([1], dtype=np.int64) +ends = np.array([1000], dtype=np.int64) +axes = np.array([1], dtype=np.int64) +steps = np.array([1], dtype=np.int64) +y = x[:, 1:1000] + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_end_out_of_bounds') +``` + +
+ + +
+slice_neg + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([0], dtype=np.int64) +ends = np.array([-1], dtype=np.int64) +axes = np.array([1], dtype=np.int64) +steps = np.array([1], dtype=np.int64) +y = x[:, 0:-1] + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_neg') +``` + +
+ + +
+slice_neg_steps + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([20, 10, 4], dtype=np.int64) +ends = np.array([0, 0, 1], dtype=np.int64) +axes = np.array([0, 1, 2], dtype=np.int64) +steps = np.array([-1, -3, -2]).astype(np.int64) +y = x[20:0:-1, 10:0:-3, 4:1:-2] + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_neg_steps') +``` + +
+ + +
+slice_negative_axes + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([0, 0, 3], dtype=np.int64) +ends = np.array([20, 10, 4], dtype=np.int64) +axes = np.array([0, -2, -1], dtype=np.int64) +y = x[:, :, 3:4] + +expect(node, inputs=[x, starts, ends, axes], outputs=[y], + name='test_slice_negative_axes') +``` + +
+ + +
+slice_start_out_of_bounds + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([1000], dtype=np.int64) +ends = np.array([1000], dtype=np.int64) +axes = np.array([1], dtype=np.int64) +steps = np.array([1], dtype=np.int64) +y = x[:, 1000:1000] + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_start_out_of_bounds') +``` + +
+ + +### **Softmax** + + The operator computes the normalized exponential values for the given input: + + Softmax(input, axis) = Exp(input) / ReduceSum(Exp(input), axis=axis, keepdims=1) + + The "axis" attribute indicates the dimension along which Softmax + will be performed. The output tensor has the same shape + and contains the Softmax values of the corresponding input. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Attributes + +
+
axis : int (default is -1)
+
+Describes the dimension Softmax will be performed on. +Negative value means counting dimensions +from the back. Accepted range is [-r, r-1] where r = rank(input). +
+
+ +#### Inputs + +
+
input (differentiable) : T
+
The input tensor of rank >= axis.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The output values with the same shape as the input tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+softmax + +```python +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], +) +x = np.array([[-1, 0, 1]]).astype(np.float32) +# expected output [[0.09003058, 0.24472848, 0.66524094]] +y = softmax(x, axis=1) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_example') +``` + +
+ + +
+softmax_axis + +```python +x = np.array([[0, 1, 2, 3], [10000, 10001, 10002, 10003]] + ).astype(np.float32) +# expected output +# [[0.032058604 0.08714432 0.23688284 0.6439143 ] +# [0.032058604 0.08714432 0.23688284 0.6439143 ]] +y = softmax(x) + +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_large_number') + +x = np.abs(np.random.randn(3, 4, 5).astype(np.float32)) +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=0, +) +y = softmax(x, axis=0) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_axis_0') + +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=1, +) +y = softmax(x, axis=1) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_axis_1') + +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=2, +) +y = softmax(x, axis=2) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_axis_2') + +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=-1, +) +y = softmax(x, axis=-1) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_negative_axis') + +# default axis is -1 +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_default_axis') +``` + +
+ + +### **SoftmaxCrossEntropyLoss** + + Loss function that measures the softmax cross entropy + between 'scores' and 'labels'. + This operator first computes a loss tensor whose shape is identical to the labels input. + If the input is 2-D with shape (N, C), the loss tensor may be a N-element vector L = (l_1, l_2, ..., l_N). + If the input is N-D tensor with shape (N, C, D1, D2, ..., Dk), + the loss tensor L may have (N, D1, D2, ..., Dk) as its shape and L[i,][j_1][j_2]...[j_k] denotes a scalar element in L. + After L is available, this operator can optionally do a reduction operator. + + shape(scores): (N, C) where C is the number of classes, or (N, C, D1, D2,..., Dk), + with K >= 1 in case of K-dimensional loss. + shape(labels): (N) where each value is 0 <= labels[i] <= C-1, or (N, D1, D2,..., Dk), + with K >= 1 in case of K-dimensional loss. + + The loss for one sample, l_i, can caculated as follows: + l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk], where i is the index of classes. + or + l[i][d1][d2]...[dk] = -y[i][c][d1][d2]..[dk] * weights[c], if 'weights' is provided. + + loss is zero for the case when label-value equals ignore_index. + l[i][d1][d2]...[dk] = 0, when labels[n][d1][d2]...[dk] = ignore_index + + where: + p = Softmax(scores) + y = Log(p) + c = labels[i][d1][d2]...[dk] + + Finally, L is optionally reduced: + If reduction = 'none', the output is L with shape (N, D1, D2, ..., Dk). + If reduction = 'sum', the output is scalar: Sum(L). + If reduction = 'mean', the output is scalar: ReduceMean(L), or if weight is provided: ReduceSum(L) / ReduceSum(W), + where tensor W is of shape (N, D1, D2, ..., Dk) and W[n][d1][d2]...[dk] = weights[labels[i][d1][d2]...[dk]]. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 12 + +#### Attributes + +
+
ignore_index : int
+
Specifies a target value that is ignored and does not contribute to the input gradient. It's an optional value.
+
reduction : string (default is mean)
+
Type of reduction to apply to loss: none, sum, mean(default). 'none': no reduction will be applied, 'sum': the output will be summed. 'mean': the sum of the output will be divided by the number of elements in the output.
+
+ +#### Inputs (2 - 3) + +
+
scores (differentiable) : T
+
The predicted outputs with shape [batch_size, class_size], or [batch_size, class_size, D1, D2 , ..., Dk], where K is the number of dimensions.
+
labels (non-differentiable) : Tind
+
The ground truth output tensor, with shape [batch_size], or [batch_size, D1, D2, ..., Dk], where K is the number of dimensions. Labels element value shall be in range of [0, C). If ignore_index is specified, it may have a value outside [0, C) and the label values should either be in the range [0, C) or have the value ignore_index.
+
weights (optional, non-differentiable) : T
+
A manual rescaling weight given to each class. If given, it has to be a 1D Tensor assigning weight to each of the classes. Otherwise, it is treated as if having all ones.
+
+ +#### Outputs (1 - 2) + +
+
output (differentiable) : T
+
Weighted loss float Tensor. If reduction is 'none', this has the shape of [batch_size], or [batch_size, D1, D2, ..., Dk] in case of K-dimensional loss. Otherwise, it is a scalar.
+
log_prob (optional, differentiable) : T
+
Log probability tensor. If the output of softmax is prob, its value is log(prob).
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
Tind : tensor(int32), tensor(int64)
+
Constrain target to integer types
+
+ + +#### Examples + +
+input_shape_is_NCd1_mean_weight_negative_ii + +```python +reduction = 'mean' +ignore_index = np.int64(-1) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1 = 3, 5, 6 +np.random.seed(0) +x = np.random.rand(N, C, dim1).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1)).astype(np.int64) +labels[0][0] = -1 +weight = np.random.rand(C).astype(np.float32) + +sce = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[x, labels, weight], outputs=[sce], name='test_sce_NCd1_mean_weight_negative_ii') +``` + +
+ + +
+input_shape_is_NCd1_mean_weight_negative_ii_log_prob + +```python +reduction = 'mean' +ignore_index = np.int64(-1) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1 = 3, 5, 6 +np.random.seed(0) +x = np.random.rand(N, C, dim1).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1)).astype(np.int64) +labels[0][0] = -1 +weight = np.random.rand(C).astype(np.float32) + +loss, log_prob = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index, + get_log_prob=True) + +expect(node, inputs=[x, labels, weight], outputs=[loss, log_prob], name='test_sce_NCd1_mean_weight_negative_ii_log_prob') +``` + +
+ + +
+input_shape_is_NCd1d2d3_none_no_weight_negative_ii + +```python +reduction = 'none' +ignore_index = np.int64(-5) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1, dim2, dim3 = 3, 5, 6, 6, 5 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3)).astype(np.int64) +labels[0][0][0][0] = -5 + +sce = softmaxcrossentropy(x, + labels, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_NCd1d2d3_none_no_weight_negative_ii') +``` + +
+ + +
+input_shape_is_NCd1d2d3_none_no_weight_negative_ii_log_prob + +```python +reduction = 'none' +ignore_index = np.int64(-5) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1, dim2, dim3 = 3, 5, 6, 6, 5 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3)).astype(np.int64) +labels[0][0][0][0] = -5 + +loss, log_prob = softmaxcrossentropy(x, + labels, + reduction=reduction, + ignore_index=ignore_index, + get_log_prob=True) + +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob') +``` + +
+ + +
+input_shape_is_NCd1d2d3_sum_weight_high_ii + +```python +reduction = 'sum' +ignore_index = np.int64(10) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +N, C = 3, 5 +np.random.seed(0) +x = np.random.rand(N, C).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N)).astype(np.int64) +labels[0] = 10 +weight = np.random.rand(C).astype(np.float32) + +sce = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[x, labels, weight], outputs=[sce], name='test_sce_NCd1d2d3_sum_weight_high_ii') +``` + +
+ + +
+input_shape_is_NCd1d2d3_sum_weight_high_ii_log_prob + +```python +reduction = 'sum' +ignore_index = np.int64(10) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +N, C = 3, 5 +np.random.seed(0) +x = np.random.rand(N, C).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N)).astype(np.int64) +labels[0] = 10 +weight = np.random.rand(C).astype(np.float32) + +loss, log_prob = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index, + get_log_prob=True) + +expect(node, inputs=[x, labels, weight], outputs=[loss, log_prob], name='test_sce_NCd1d2d3_sum_weight_high_ii_log_prob') +``` + +
+ + +
+input_shape_is_NCd1d2d3d4d5_mean_weight + +```python +reduction = 'mean' + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +sce = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction) + +expect(node, inputs=[x, labels, weight], outputs=[sce], name='test_sce_NCd1d2d3d4d5_mean_weight') +``` + +
+ + +
+input_shape_is_NCd1d2d3d4d5_mean_weight_log_prob + +```python +reduction = 'mean' + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +loss, log_prob = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + get_log_prob=True) + +expect(node, inputs=[x, labels, weight], outputs=[loss, log_prob], name='test_sce_NCd1d2d3d4d5_mean_weight_log_prob') +``` + +
+ + +
+input_shape_is_NCd1d2d3d4d5_none_no_weight + +```python +reduction = 'none' + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + +sce = softmaxcrossentropy(x, + labels, + reduction=reduction) + +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_NCd1d2d3d4d5_none_no_weight') +``` + +
+ + +
+input_shape_is_NCd1d2d3d4d5_none_no_weight_log_prob + +```python +reduction = 'none' + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + +loss, log_prob = softmaxcrossentropy(x, + labels, + reduction=reduction, + get_log_prob=True) + +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_NCd1d2d3d4d5_none_no_weight_log_prob') +``` + +
+ + +
+softmaxcrossentropy_mean + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels) + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean') +``` + +
+ + +
+softmaxcrossentropy_mean_3d + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +y = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, y) + +# Check results +expect(node, inputs=[x, y], outputs=[sce], name='test_sce_mean_3d') +``` + +
+ + +
+softmaxcrossentropy_mean_3d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +y = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, y, get_log_prob=True) + +# Check results +expect(node, inputs=[x, y], outputs=[loss, log_prob], name='test_sce_mean_3d_log_prob') +``` + +
+ + +
+softmaxcrossentropy_mean_log_prob + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_log_prob') +``` + +
+ + +
+softmaxcrossentropy_mean_no_weights_ii + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +labels[0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean_no_weight_ii') +``` + +
+ + +
+softmaxcrossentropy_mean_no_weights_ii_3d + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) +labels[0][0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean_no_weight_ii_3d') +``` + +
+ + +
+softmaxcrossentropy_mean_no_weights_ii_3d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) +labels[0][0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_no_weight_ii_3d_log_prob') +``` + +
+ + +
+softmaxcrossentropy_mean_no_weights_ii_4d + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2, 7).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) +labels[0][0][0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, reduction=reduction, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean_no_weight_ii_4d') +``` + +
+ + +
+softmaxcrossentropy_mean_no_weights_ii_4d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2, 7).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) +labels[0][0][0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, reduction=reduction, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_no_weight_ii_4d_log_prob') +``` + +
+ + +
+softmaxcrossentropy_mean_no_weights_ii_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +labels[0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_no_weight_ii_log_prob') +``` + +
+ + +
+softmaxcrossentropy_mean_weights + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, weight=weights) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight') +``` + +
+ + +
+softmaxcrossentropy_mean_weights_ii + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(0) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +labels[0] = np.int64(0) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight_ii') +``` + +
+ + +
+softmaxcrossentropy_mean_weights_ii_3d + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(1) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) +labels[0][0] = np.int64(1) +weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight_ii_3d') +``` + +
+ + +
+softmaxcrossentropy_mean_weights_ii_3d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(1) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) +labels[0][0] = np.int64(1) +weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_ii_3d_log_prob') +``` + +
+ + +
+softmaxcrossentropy_mean_weights_ii_4d + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2, 7).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) +labels[0][0][0] = np.int64(2) +weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, reduction=reduction, weight=weights, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight_ii_4d') +``` + +
+ + +
+softmaxcrossentropy_mean_weights_ii_4d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2, 7).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) +labels[0][0][0] = np.int64(2) +weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, reduction=reduction, weight=weights, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_ii_4d_log_prob') +``` + +
+ + +
+softmaxcrossentropy_mean_weights_ii_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(0) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +labels[0] = np.int64(0) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_ii_log_prob') +``` + +
+ + +
+softmaxcrossentropy_mean_weights_log_prob + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_log_prob') +``` + +
+ + +
+softmaxcrossentropy_none + +```python +# Define operator attributes. +reduction = 'none' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, reduction='none') + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_none') +``` + +
+ + +
+softmaxcrossentropy_none_log_prob + +```python +# Define operator attributes. +reduction = 'none' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, reduction='none', get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_none_log_prob') +``` + +
+ + +
+softmaxcrossentropy_none_weights + +```python +# Define operator attributes. +reduction = 'none' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, weight=weights, reduction='none') + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_none_weights') +``` + +
+ + +
+softmaxcrossentropy_none_weights_log_prob + +```python +# Define operator attributes. +reduction = 'none' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, reduction='none', get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_none_weights_log_prob') +``` + +
+ + +
+softmaxcrossentropy_sum + +```python +# Define operator attributes. +reduction = 'sum' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, reduction='sum') + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_sum') +``` + +
+ + +
+softmaxcrossentropy_sum_log_prob + +```python +# Define operator attributes. +reduction = 'sum' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, reduction='sum', get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_sum_log_prob') +``` + +
+ + +### **Softplus** + + Softplus takes one input data (Tensor) and produces one output data + (Tensor) where the softplus function, y = ln(exp(x) + 1), is applied to + the tensor elementwise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
X (differentiable) : T
+
1D input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
1D input tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+softplus + +```python +node = onnx.helper.make_node( + 'Softplus', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.log(np.exp(x) + 1) # expected output [0.31326166, 0.69314718, 1.31326163] +expect(node, inputs=[x], outputs=[y], + name='test_softplus_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.log(np.exp(x) + 1) +expect(node, inputs=[x], outputs=[y], + name='test_softplus') +``` + +
+ + +### **Softsign** + + Calculates the softsign (x/(1+|x|)) of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 1 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The softsign (x/(1+|x|)) values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+softsign + +```python +node = onnx.helper.make_node( + 'Softsign', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.array([-0.5, 0, 0.5]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_softsign_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = x / (1 + np.abs(x)) +expect(node, inputs=[x], outputs=[y], + name='test_softsign') +``` + +
+ + +### **SpaceToDepth** + + SpaceToDepth rearranges blocks of spatial data into depth. More specifically, + this op outputs a copy of the input tensor where values from the height and width dimensions + are moved to the depth dimension. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
blocksize : int (required)
+
Blocks of [blocksize, blocksize] are moved.
+
+ +#### Inputs + +
+
input (differentiable) : T
+
Input tensor of [N,C,H,W], where N is the batch axis, C is the channel or depth, H is the height and W is the width.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor of [N, C * blocksize * blocksize, H/blocksize, W/blocksize].
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+example + +```python +node = onnx.helper.make_node( + 'SpaceToDepth', + inputs=['x'], + outputs=['y'], + blocksize=2, +) + +# (1, 1, 4, 6) input tensor +x = np.array([[[[0, 6, 1, 7, 2, 8], + [12, 18, 13, 19, 14, 20], + [3, 9, 4, 10, 5, 11], + [15, 21, 16, 22, 17, 23]]]]).astype(np.float32) + +# (1, 4, 2, 3) output tensor +y = np.array([[[[0, 1, 2], + [3, 4, 5]], + [[6, 7, 8], + [9, 10, 11]], + [[12, 13, 14], + [15, 16, 17]], + [[18, 19, 20], + [21, 22, 23]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_spacetodepth_example') +``` + +
+ + +
+spacetodepth + +```python +b, c, h, w = shape = (2, 2, 6, 6) +blocksize = 2 +node = onnx.helper.make_node( + 'SpaceToDepth', + inputs=['x'], + outputs=['y'], + blocksize=blocksize, +) +x = np.random.random_sample(shape).astype(np.float32) +tmp = np.reshape(x, [b, c, + h // blocksize, blocksize, + w // blocksize, blocksize]) +tmp = np.transpose(tmp, [0, 3, 5, 1, 2, 4]) +y = np.reshape(tmp, [b, c * (blocksize**2), + h // blocksize, + w // blocksize]) +expect(node, inputs=[x], outputs=[y], + name='test_spacetodepth') +``` + +
+ + +### **Split** + + Split a tensor into a list of tensors, along the specified + 'axis'. Lengths of the parts can be specified using input 'split'. + Otherwise, the tensor is split to equal sized parts. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 2, 11 + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to split on. A negative value means counting dimensions from the back. Accepted range is [-rank, rank-1] where r = rank(input).
+
+ +#### Inputs (1 - 2) + +
+
input (differentiable) : T
+
The tensor to split
+
split (optional, non-differentiable) : tensor(int64)
+
Optional length of each output. Values should be >= 0.Sum of the values must be equal to the dim value at 'axis' specified.
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, differentiable) : T
+
One or more outputs forming list of tensors after splitting
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+1d + +```python +input = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float32) + +node = onnx.helper.make_node( + 'Split', + inputs=['input'], + outputs=['output_1', 'output_2', 'output_3'], + axis=0 +) + +expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4.]).astype(np.float32), np.array([5., 6.]).astype(np.float32)] +expect(node, inputs=[input], outputs=[y for y in expected_outputs], name='test_split_equal_parts_1d') + +split = np.array([2, 4]).astype(np.int64) +node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2'], + axis=0, +) + +expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4., 5., 6.]).astype(np.float32)] +expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_variable_parts_1d') +``` + +
+ + +
+2d + +```python +input = np.array([[1., 2., 3., 4., 5., 6.], + [7., 8., 9., 10., 11., 12.]]).astype(np.float32) + +node = onnx.helper.make_node( + 'Split', + inputs=['input'], + outputs=['output_1', 'output_2'], + axis=1 +) + +expected_outputs = [np.array([[1., 2., 3.], [7., 8., 9.]]).astype(np.float32), + np.array([[4., 5., 6.], [10., 11., 12.]]).astype(np.float32)] + +expect(node, inputs=[input], outputs=[y for y in expected_outputs], name='test_split_equal_parts_2d') + +split = np.array([2, 4]).astype(np.int64) +node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2'], + axis=1, +) + +expected_outputs = [np.array([[1., 2.], [7., 8.]]).astype(np.float32), + np.array([[3., 4., 5., 6.], [9., 10., 11., 12.]]).astype(np.float32)] + +expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_variable_parts_2d') +``` + +
+ + +
+default_values + +```python +input = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float32) + +# If axis is not specified, split is applied on default axis 0 +node = onnx.helper.make_node( + 'Split', + inputs=['input'], + outputs=['output_1', 'output_2', 'output_3'] +) + +expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4.]).astype(np.float32), np.array([5., 6.]).astype(np.float32)] +expect(node, inputs=[input], outputs=[y for y in expected_outputs], name='test_split_equal_parts_default_axis') + +split = np.array([2, 4]).astype(np.int64) +node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2'] +) + +expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4., 5., 6.]).astype(np.float32)] +expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_variable_parts_default_axis') +``` + +
+ + +
+zero_size_splits + +```python +input = np.array([]).astype(np.float32) + +# Split emtpy tensor to tensors of size zero +split = np.array([0, 0, 0]).astype(np.int64) +node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2', 'output_3'] +) + +expected_outputs = [np.array([]).astype(np.float32), np.array([]).astype(np.float32), np.array([]).astype(np.float32)] +expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_zero_size_splits') +``` + +
+ + +### **SplitToSequence** + + Split a tensor into a sequence of tensors, along the specified + 'axis'. Lengths of the parts can be specified using argument 'split'. + 'split' must contain only positive numbers. + 'split' is either a scalar (tensor of empty shape), or a 1-D tensor. + If 'split' is a scalar, then 'input' will be split into equally sized chunks(if possible). + Last chunk will be smaller if the 'input' size along the given axis 'axis' is not divisible + by 'split'. + Otherwise, the tensor is split into 'size(split)' chunks, with lengths of the parts on 'axis' + specified in 'split'. In this scenario, the sum of entries in 'split' must be equal to the + dimension size of input tensor on 'axis'. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int (default is 0)
+
Which axis to split on. A negative value means counting dimensions from the back. Accepted range is [-rank, rank-1].
+
keepdims : int (default is 1)
+
Keep the split dimension or not. Default 1, which means we keep split dimension. If input 'split' is specified, this attribute is ignored.
+
+ +#### Inputs (1 - 2) + +
+
input : T
+
The tensor to split
+
split (optional) : I
+
Length of each output. It can be either a scalar(tensor of empty shape), or a 1-D tensor. All values must be >= 0.
+
+ +#### Outputs + +
+
output_sequence : S
+
One or more outputs forming a sequence of tensors after splitting
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input types to all tensor types.
+
I : tensor(int32), tensor(int64)
+
Constrain split size to integral tensor.
+
S : seq(tensor(uint8)), seq(tensor(uint16)), seq(tensor(uint32)), seq(tensor(uint64)), seq(tensor(int8)), seq(tensor(int16)), seq(tensor(int32)), seq(tensor(int64)), seq(tensor(float16)), seq(tensor(float)), seq(tensor(double)), seq(tensor(string)), seq(tensor(bool)), seq(tensor(complex64)), seq(tensor(complex128))
+
Constrain output types to all tensor types.
+
+ + +### **Sqrt** + + Square root takes one input data (Tensor) and produces one output data + (Tensor) where the square root is, y = x^0.5, is applied to + the tensor elementwise. If x is negative, then it will return NaN. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+sqrt + +```python +node = onnx.helper.make_node( + 'Sqrt', + inputs=['x'], + outputs=['y'], +) + +x = np.array([1, 4, 9]).astype(np.float32) +y = np.sqrt(x) # expected output [1., 2., 3.] +expect(node, inputs=[x], outputs=[y], + name='test_sqrt_example') + +x = np.abs(np.random.randn(3, 4, 5).astype(np.float32)) +y = np.sqrt(x) +expect(node, inputs=[x], outputs=[y], + name='test_sqrt') +``` + +
+ + +### **Squeeze** + + Remove single-dimensional entries from the shape of a tensor. + Takes an input `axes` with a list of axes to squeeze. + If `axes` is not provided, all the single dimensions will be removed from + the shape. If an axis is selected with shape entry not equal to one, an error is raised. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Inputs (1 - 2) + +
+
data (differentiable) : T
+
Tensors with at least max(dims) dimensions.
+
axes (optional, non-differentiable) : tensor(int64)
+
List of integers indicating the dimensions to squeeze. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(data).
+
+ +#### Outputs + +
+
squeezed (differentiable) : T
+
Reshaped tensor with same data as input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+squeeze + +```python +node = onnx.helper.make_node( + 'Squeeze', + inputs=['x', 'axes'], + outputs=['y'], +) +x = np.random.randn(1, 3, 4, 5).astype(np.float32) +axes = np.array([0], dtype=np.int64) +y = np.squeeze(x, axis=0) + +expect(node, inputs=[x, axes], outputs=[y], + name='test_squeeze') +``` + +
+ + +
+squeeze_negative_axes + +```python +node = onnx.helper.make_node( + 'Squeeze', + inputs=['x', 'axes'], + outputs=['y'], +) +x = np.random.randn(1, 3, 1, 5).astype(np.float32) +axes = np.array([-2], dtype=np.int64) +y = np.squeeze(x, axis=-2) +expect(node, inputs=[x, axes], outputs=[y], + name='test_squeeze_negative_axes') +``` + +
+ + +### **StringNormalizer** + + StringNormalization performs string operations for basic cleaning. + This operator has only one input (denoted by X) and only one output + (denoted by Y). This operator first examines the elements in the X, + and removes elements specified in "stopwords" attribute. + After removing stop words, the intermediate result can be further lowercased, + uppercased, or just returned depending the "case_change_action" attribute. + This operator only accepts [C]- and [1, C]-tensor. + If all elements in X are dropped, the output will be the empty value of string tensor with shape [1] + if input shape is [C] and shape [1, 1] if input shape is [1, C]. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
case_change_action : string (default is NONE)
+
string enum that cases output to be lowercased/uppercases/unchanged. Valid values are "LOWER", "UPPER", "NONE". Default is "NONE"
+
is_case_sensitive : int (default is 0)
+
Boolean. Whether the identification of stop words in X is case-sensitive. Default is false
+
locale : string
+
Environment dependent string that denotes the locale according to which output strings needs to be upper/lowercased.Default en_US or platform specific equivalent as decided by the implementation.
+
stopwords : list of strings
+
List of stop words. If not set, no word would be removed from X.
+
+ +#### Inputs + +
+
X : tensor(string)
+
UTF-8 strings to normalize
+
+ +#### Outputs + +
+
Y : tensor(string)
+
UTF-8 Normalized strings
+
+ +#### Type Constraints + + + +#### Examples + +
+monday_casesensintive_lower + +```python +input = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) +output = np.array([u'tuesday', u'wednesday', u'thursday']).astype(object) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='LOWER', + is_case_sensitive=1, + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_casesensintive_lower') +``` + +
+ + +
+monday_casesensintive_nochangecase + +```python +input = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) +output = np.array([u'tuesday', u'wednesday', u'thursday']).astype(object) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + is_case_sensitive=1, + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_casesensintive_nochangecase') +``` + +
+ + +
+monday_casesensintive_upper + +```python +input = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) +output = np.array([u'TUESDAY', u'WEDNESDAY', u'THURSDAY']).astype(object) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + is_case_sensitive=1, + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_casesensintive_upper') +``` + +
+ + +
+monday_empty_output + +```python +input = np.array([u'monday', u'monday']).astype(object) +output = np.array([u'']).astype(object) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + is_case_sensitive=1, + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_empty_output') +``` + +
+ + +
+monday_insensintive_upper_twodim + +```python +input = np.array([u'Monday', u'tuesday', u'wednesday', u'Monday', u'tuesday', u'wednesday']).astype(object).reshape([1, 6]) + +# It does upper case cecedille, accented E +# and german umlaut but fails +# with german eszett +output = np.array([u'TUESDAY', u'WEDNESDAY', u'TUESDAY', u'WEDNESDAY']).astype(object).reshape([1, 4]) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_insensintive_upper_twodim') +``` + +
+ + +
+nostopwords_nochangecase + +```python +input = np.array([u'monday', u'tuesday']).astype(object) +output = input + +# No stopwords. This is a NOOP +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + is_case_sensitive=1, +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_nostopwords_nochangecase') +``` + +
+ + +### **Sub** + + Performs element-wise binary subtraction (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + (Opset 14 change): Extend supported types to include uint8, int8, uint16, and int16. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 7, 13 + +#### Inputs + +
+
A (differentiable) : T
+
First operand.
+
B (differentiable) : T
+
Second operand.
+
+ +#### Outputs + +
+
C (differentiable) : T
+
Result, has same element type as two inputs
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to all numeric tensors.
+
+ + +#### Examples + +
+sub + +```python +node = onnx.helper.make_node( + 'Sub', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([3, 2, 1]).astype(np.float32) +z = x - y # expected output [-2., 0., 2.] +expect(node, inputs=[x, y], outputs=[z], + name='test_sub_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = x - y +expect(node, inputs=[x, y], outputs=[z], + name='test_sub') + +x = np.random.randint(12, 24, size=(3, 4, 5), dtype=np.uint8) +y = np.random.randint(12, size=(3, 4, 5), dtype=np.uint8) +z = x - y +expect(node, inputs=[x, y], outputs=[z], + name='test_sub_uint8') +``` + +
+ + +
+sub_broadcast + +```python +node = onnx.helper.make_node( + 'Sub', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = x - y +expect(node, inputs=[x, y], outputs=[z], + name='test_sub_bcast') +``` + +
+ + +### **Sum** + + Element-wise sum of each of the input tensors (with Numpy-style broadcasting support). + All inputs and outputs must have the same data type. + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6, 8 + +#### Inputs (1 - ∞) + +
+
data_0 (variadic, differentiable) : T
+
List of tensors for sum.
+
+ +#### Outputs + +
+
sum (differentiable) : T
+
Output tensor.
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+sum + +```python +data_0 = np.array([3, 0, 2]).astype(np.float32) +data_1 = np.array([1, 3, 4]).astype(np.float32) +data_2 = np.array([2, 6, 6]).astype(np.float32) +result = np.array([6, 9, 12]).astype(np.float32) +node = onnx.helper.make_node( + 'Sum', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_sum_example') + +node = onnx.helper.make_node( + 'Sum', + inputs=['data_0'], + outputs=['result'], +) +expect(node, inputs=[data_0], outputs=[data_0], + name='test_sum_one_input') + +result = np.add(data_0, data_1) +node = onnx.helper.make_node( + 'Sum', + inputs=['data_0', 'data_1'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_sum_two_inputs') +``` + +
+ + +### **Tan** + + Calculates the tangent of the given input tensor, element-wise. + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The tangent of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+tan + +```python +node = onnx.helper.make_node( + 'Tan', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.tan(x) +expect(node, inputs=[x], outputs=[y], + name='test_tan_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.tan(x) +expect(node, inputs=[x], outputs=[y], + name='test_tan') +``` + +
+ + +### **Tanh** + + Calculates the hyperbolic tangent of the given input tensor element-wise. + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
output (differentiable) : T
+
The hyperbolic tangent values of the input tensor computed element-wise
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double), tensor(bfloat16)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+tanh + +```python +node = onnx.helper.make_node( + 'Tanh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.tanh(x) # expected output [-0.76159418, 0., 0.76159418] +expect(node, inputs=[x], outputs=[y], + name='test_tanh_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.tanh(x) +expect(node, inputs=[x], outputs=[y], + name='test_tanh') +``` + +
+ + +### **TfIdfVectorizer** + + This transform extracts n-grams from the input sequence and save them as a vector. Input can + be either a 1-D or 2-D tensor. For 1-D input, output is the n-gram representation of that input. + For 2-D input, the output is also a 2-D tensor whose i-th row is the n-gram representation of the i-th input row. + More specifically, if input shape is [C], the corresponding output shape would be [max(ngram_indexes) + 1]. + If input shape is [N, C], this operator produces a [N, max(ngram_indexes) + 1]-tensor. + + In contrast to standard n-gram extraction, here, the indexes of extracting an n-gram from the original + sequence are not necessarily consecutive numbers. The discontinuity between indexes are controlled by the number of skips. + If the number of skips is 2, we should skip two tokens when scanning through the original sequence. + Let's consider an example. Assume that input sequence is [94, 17, 36, 12, 28] and the number of skips is 2. + The associated 2-grams are [94, 12] and [17, 28] respectively indexed by [0, 3] and [1, 4]. + If the number of skips becomes 0, the 2-grams generated are [94, 17], [17, 36], [36, 12], [12, 28] + indexed by [0, 1], [1, 2], [2, 3], [3, 4], respectively. + + The output vector (denoted by Y) stores the count of each n-gram; + Y[ngram_indexes[i]] indicates the times that the i-th n-gram is found. The attribute ngram_indexes is used to determine the mapping + between index i and the corresponding n-gram's output coordinate. If pool_int64s is [94, 17, 17, 36], ngram_indexes is [1, 0], + ngram_counts=[0, 0], then the Y[0] (first element in Y) and Y[1] (second element in Y) are the counts of [17, 36] and [94, 17], + respectively. An n-gram which cannot be found in pool_strings/pool_int64s should be ignored and has no effect on the output. + Note that we may consider all skips up to S when generating the n-grams. + + The examples used above are true if mode is "TF". If mode is "IDF", all the counts larger than 1 would be truncated to 1 and + the i-th element in weights would be used to scale (by multiplication) the count of the i-th n-gram in pool. If mode is "TFIDF", + this operator first computes the counts of all n-grams and then scale them by the associated values in the weights attribute. + + Only one of pool_strings and pool_int64s can be set. If pool_int64s is set, the input should be an integer tensor. + If pool_strings is set, the input must be a string tensor. + +#### Version + +This version of the operator has been available since version 9 of the default ONNX operator set. + +#### Attributes + +
+
max_gram_length : int (required)
+
Maximum n-gram length. If this value is 3, 3-grams will be used to generate the output.
+
max_skip_count : int (required)
+
Maximum number of items (integers/strings) to be skipped when constructing an n-gram from X. If max_skip_count=1, min_gram_length=2, max_gram_length=3, this operator may generate 2-grams with skip_count=0 and skip_count=1, and 3-grams with skip_count=0 and skip_count=1
+
min_gram_length : int (required)
+
Minimum n-gram length. If this value is 2 and max_gram_length is 3, output may contain counts of 2-grams and 3-grams.
+
mode : string (required)
+
The weighting criteria. It can be one of "TF" (term frequency), "IDF" (inverse document frequency), and "TFIDF" (the combination of TF and IDF)
+
ngram_counts : list of ints (required)
+
The starting indexes of 1-grams, 2-grams, and so on in pool. It is useful when determining the boundary between two consecutive collections of n-grams. For example, if ngram_counts is [0, 17, 36], the first index (zero-based) of 1-gram/2-gram/3-gram in pool are 0/17/36. This format is essentially identical to CSR (or CSC) sparse matrix format, and we choose to use this due to its popularity.
+
ngram_indexes : list of ints (required)
+
list of int64s (type: AttributeProto::INTS). This list is parallel to the specified 'pool_*' attribute. The i-th element in ngram_indexes indicate the coordinate of the i-th n-gram in the output tensor.
+
pool_int64s : list of ints
+
List of int64 n-grams learned from the training set. Either this or pool_strings attributes must be present but not both. It's an 1-D tensor starting with the collections of all 1-grams and ending with the collections of n-grams. The i-th element in pool stores the n-gram that should be mapped to coordinate ngram_indexes[i] in the output vector.
+
pool_strings : list of strings
+
List of strings n-grams learned from the training set. Either this or pool_int64s attributes must be present but not both. It's an 1-D tensor starting with the collections of all 1-grams and ending with the collections of n-grams. The i-th element in pool stores the n-gram that should be mapped to coordinate ngram_indexes[i] in the output vector.
+
weights : list of floats
+
list of floats. This attribute stores the weight of each n-gram in pool. The i-th element in weights is the weight of the i-th n-gram in pool. Its length equals to the size of ngram_indexes. By default, weights is an all-one tensor.This attribute is used when mode is "IDF" or "TFIDF" to scale the associated word counts.
+
+ +#### Inputs + +
+
X (non-differentiable) : T
+
Input for n-gram extraction
+
+ +#### Outputs + +
+
Y (non-differentiable) : T1
+
Ngram results
+
+ +#### Type Constraints + +
+
T : tensor(string), tensor(int32), tensor(int64)
+
Input is ether string UTF-8 or int32/int64
+
T1 : tensor(float)
+
1-D tensor of floats
+
+ + +#### Examples + +
+tf_batch_onlybigrams_skip0 + +```python +input = np.array([[1, 1, 3, 3, 3, 7], [8, 6, 7, 5, 6, 8]]).astype(np.int32) +output = np.array([[0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 1., 0., 1.]]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=0, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_batch_onlybigrams_skip0') +``` + +
+ + +
+tf_batch_onlybigrams_skip5 + +```python +input = np.array([[1, 1, 3, 3, 3, 7], [8, 6, 7, 5, 6, 8]]).astype(np.int32) +output = np.array([[0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 1., 1., 1.]]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_batch_onlybigrams_skip5') +``` + +
+ + +
+tf_batch_uniandbigrams_skip5 + +```python +input = np.array([[1, 1, 3, 3, 3, 7], [8, 6, 7, 5, 6, 8]]).astype(np.int32) +output = np.array([[0., 3., 0., 0., 0., 0., 0.], [0., 0., 1., 0., 1., 1., 1.]]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=1, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_batch_uniandbigrams_skip5') +``` + +
+ + +
+tf_only_bigrams_skip0 + +```python +input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) +output = np.array([0., 0., 0., 0., 1., 1., 1.]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=0, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_only_bigrams_skip0') +``` + +
+ + +
+tf_onlybigrams_levelempty + +```python +input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) +output = np.array([1., 1., 1.]).astype(np.float32) + +ngram_counts = np.array([0, 0]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2]).astype(np.int64) +pool_int64s = np.array([ # unigrams none + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=0, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_onlybigrams_levelempty') +``` + +
+ + +
+tf_onlybigrams_skip5 + +```python +input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) +output = np.array([0., 0., 0., 0., 1., 3., 1.]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_onlybigrams_skip5') +``` + +
+ + +
+tf_uniandbigrams_skip5 + +```python +input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) +output = np.array([0., 3., 1., 0., 1., 3., 1.]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=1, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_uniandbigrams_skip5') +``` + +
+ + +### **ThresholdedRelu** + + ThresholdedRelu takes one input data (Tensor) and produces one output data + (Tensor) where the rectified linear function, y = x for x > alpha, y = 0 otherwise, + is applied to the tensor elementwise. + +#### Version + +This version of the operator has been available since version 10 of the default ONNX operator set. + +#### Attributes + +
+
alpha : float (default is 1.0)
+
Threshold value
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Input tensor
+
+ +#### Outputs + +
+
Y (differentiable) : T
+
Output tensor
+
+ +#### Type Constraints + +
+
T : tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+default + +```python +default_alpha = 1.0 +node = onnx.helper.make_node( + 'ThresholdedRelu', + inputs=['x'], + outputs=['y'] +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, default_alpha, np.inf) +y[y == default_alpha] = 0 + +expect(node, inputs=[x], outputs=[y], + name='test_thresholdedrelu_default') +``` + +
+ + +
+thresholdedrelu + +```python +alpha = 2.0 +node = onnx.helper.make_node( + 'ThresholdedRelu', + inputs=['x'], + outputs=['y'], + alpha=alpha +) + +x = np.array([-1.5, 0., 1.2, 2.0, 2.2]).astype(np.float32) +y = np.clip(x, alpha, np.inf) # expected output [0., 0., 0., 0., 2.2] +y[y == alpha] = 0 + +expect(node, inputs=[x], outputs=[y], + name='test_thresholdedrelu_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, alpha, np.inf) +y[y == alpha] = 0 + +expect(node, inputs=[x], outputs=[y], + name='test_thresholdedrelu') +``` + +
+ + +### **Tile** + + Constructs a tensor by tiling a given tensor. + This is the same as function `tile` in Numpy, but no broadcast. + For example A = [[1, 2], [3, 4]], B = [1, 2], tile(A, B) = [[1, 2, 1, 2], [3, 4, 3, 4]] + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 6 + +#### Inputs + +
+
input (differentiable) : T
+
Input tensor of any shape.
+
repeats (non-differentiable) : T1
+
1D int64 tensor of the same length as input's dimension number, includes numbers of repeated copies along input's dimensions.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor of the same dimensions and type as tensor input. output_dim[i] = input_dim[i] * repeats[i]
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
T1 : tensor(int64)
+
Constrain repeat's type to int64 tensors.
+
+ + +#### Examples + +
+tile + +```python +node = onnx.helper.make_node( + 'Tile', + inputs=['x', 'y'], + outputs=['z'] +) + +x = np.random.rand(2, 3, 4, 5).astype(np.float32) + +repeats = np.random.randint(low=1, high=10, size=(np.ndim(x),)).astype(np.int64) + +z = np.tile(x, repeats) + +expect(node, + inputs=[x, repeats], + outputs=[z], + name='test_tile') +``` + +
+ + +
+tile_precomputed + +```python +node = onnx.helper.make_node( + 'Tile', + inputs=['x', 'y'], + outputs=['z'] +) + +x = np.array([ + [0, 1], + [2, 3] +], dtype=np.float32) + +repeats = np.array([2, 2], dtype=np.int64) + +z = np.array([ + [0, 1, 0, 1], + [2, 3, 2, 3], + [0, 1, 0, 1], + [2, 3, 2, 3] +], dtype=np.float32) + +expect(node, + inputs=[x, repeats], + outputs=[z], + name='test_tile_precomputed') +``` + +
+ + +### **TopK** + + Retrieve the top-K largest or smallest elements along a specified axis. Given an input tensor of + shape [a_1, a_2, ..., a_n, r] and integer argument k, return two outputs: + -Value tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] + which contains the values of the top k elements along the specified axis + -Index tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] which + contains the indices of the top k elements (original indices from the input + tensor). + + If "largest" is 1 (the default value) then the k largest elements are returned. + If "sorted" is 1 (the default value) then the resulting k elements will be sorted. + If "sorted" is 0, order of returned 'Values' and 'Indices' are undefined. + + Given two equivalent values, this operator uses the indices along the axis as + a tiebreaker. That is, the element with the lower index will appear first. + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +Other versions of this operator: 1, 10 + +#### Attributes + +
+
axis : int (default is -1)
+
Dimension on which to do the sort. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
largest : int (default is 1)
+
Whether to return the top-K largest or smallest elements.
+
sorted : int (default is 1)
+
Whether to return the elements in sorted order.
+
+ +#### Inputs + +
+
X (differentiable) : T
+
Tensor of shape [a_1, a_2, ..., a_n, r]
+
K (non-differentiable) : tensor(int64)
+
A 1-D tensor containing a single positive value corresponding to the number of top elements to retrieve
+
+ +#### Outputs + +
+
Values (differentiable) : T
+
Tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] containing top K values from the input tensor
+
Indices (non-differentiable) : I
+
Tensor of shape [a_1, a_2, ..., a_{axis-1}, k, a_{axis+1}, ... a_n] containing the corresponding input tensor indices for the top K values.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double)
+
Constrain input and output types to numeric tensors.
+
I : tensor(int64)
+
Constrain index tensor to int64
+
+ + +#### Examples + +
+top_k + +```python +axis = 1 +largest = 1 + +k = 3 +node = onnx.helper.make_node( + 'TopK', + inputs=['x', 'k'], + outputs=['values', 'indices'], + axis=axis +) +X = np.array([ + [0, 1, 2, 3], + [4, 5, 6, 7], + [8, 9, 10, 11], +], dtype=np.float32) +K = np.array([k], dtype=np.int64) +values_ref, indices_ref = topk_sorted_implementation(X, k, axis, largest) + +#print(values_ref) +#[[ 3. 2. 1.] +# [ 7. 6. 5.] +# [11. 10. 9.]] +#print(indices_ref) +#[[3 2 1] +# [3 2 1] +# [3 2 1]] + +expect(node, inputs=[X, K], outputs=[values_ref, indices_ref], + name='test_top_k') +``` + +
+ + +
+top_k_negative_axis + +```python +axis = -1 +largest = 1 + +k = 3 +node = onnx.helper.make_node( + 'TopK', + inputs=['x', 'k'], + outputs=['values', 'indices'], + axis=axis +) +X = np.array([ + [0, 1, 2, 3], + [4, 5, 6, 7], + [8, 9, 10, 11], +], dtype=np.float32) +K = np.array([k], dtype=np.int64) +values_ref, indices_ref = topk_sorted_implementation(X, k, axis, largest) + +# print(values_ref) +#[[ 3. 2. 1.] +# [ 7. 6. 5.] +# [11. 10. 9.]] +# print(indices_ref) +#[[3 2 1] +# [3 2 1] +# [3 2 1]] + +expect(node, inputs=[X, K], outputs=[values_ref, indices_ref], + name='test_top_k_negative_axis') +``` + +
+ + +
+top_k_smallest + +```python +axis = 1 +largest = 0 +sorted = 1 +k = 3 + +node = onnx.helper.make_node( + 'TopK', + inputs=['x', 'k'], + outputs=['values', 'indices'], + axis=axis, + largest=largest, + sorted=sorted +) + +X = np.array([ + [0, 1, 2, 3], + [4, 5, 6, 7], + [11, 10, 9, 8], +], dtype=np.float32) +K = np.array([k], dtype=np.int64) +values_ref, indices_ref = topk_sorted_implementation(X, k, axis, largest) + +#print(values_ref) +#[[ 0. 1. 2.] +# [ 4. 5. 6.] +# [ 8. 9. 10.]] +#print(indices_ref) +#[[0 1 2] +# [0 1 2] +# [3 2 1]] + +expect(node, inputs=[X, K], outputs=[values_ref, indices_ref], + name='test_top_k_smallest') +``` + +
+ + +### **Transpose** + + Transpose the input tensor similar to numpy.transpose. For example, when + perm=(1, 0, 2), given an input tensor of shape (1, 2, 3), the output shape + will be (2, 1, 3). + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Attributes + +
+
perm : list of ints
+
A list of integers. By default, reverse the dimensions, otherwise permute the axes according to the values given.
+
+ +#### Inputs + +
+
data (differentiable) : T
+
An input tensor.
+
+ +#### Outputs + +
+
transposed (differentiable) : T
+
Transposed output.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+all_permutations + +```python +shape = (2, 3, 4) +data = np.random.random_sample(shape).astype(np.float32) +permutations = list(itertools.permutations(np.arange(len(shape)))) + +for i in range(len(permutations)): + node = onnx.helper.make_node( + 'Transpose', + inputs=['data'], + outputs=['transposed'], + perm=permutations[i] + ) + transposed = np.transpose(data, permutations[i]) + expect(node, inputs=[data], outputs=[transposed], + name='test_transpose_all_permutations_' + str(i)) +``` + +
+ + +
+default + +```python +shape = (2, 3, 4) +data = np.random.random_sample(shape).astype(np.float32) + +node = onnx.helper.make_node( + 'Transpose', + inputs=['data'], + outputs=['transposed'] +) + +transposed = np.transpose(data) +expect(node, inputs=[data], outputs=[transposed], + name='test_transpose_default') +``` + +
+ + +### **Trilu** + + Given a 2-D matrix or batches of 2-D matrices, returns the upper or lower triangular part of the tensor(s). + The attribute "upper" determines whether the upper or lower part is retained. If set to true, + the upper triangular matrix is retained. Lower triangular matrix is retained otherwise. + Default value for the "upper" attribute is true. + Trilu takes one input tensor of shape [*, N, M], where * is zero or more batch dimensions. The upper triangular part consists + of the elements on and above the given diagonal (k). The lower triangular part consists of elements on and below the diagonal. + All other elements in the matrix are set to zero. + If k = 0, the triangular part on and above/below the main diagonal is retained. + If upper is set to true, a positive k retains the upper triangular matrix excluding the main diagonal and (k-1) diagonals above it. + A negative k value retains the main diagonal and |k| diagonals below it. + If upper is set to false, a positive k retains the lower triangular matrix including the main diagonal and k diagonals above it. + A negative k value excludes the main diagonal and (|k|-1) diagonals below it. + +#### Version + +This version of the operator has been available since version 14 of the default ONNX operator set. + +#### Attributes + +
+
upper : int (default is 1)
+
Boolean. Indicates whether upper or lower part of matrix is retained. Default is true.
+
+ +#### Inputs (1 - 2) + +
+
input (differentiable) : T
+
Input tensor of rank 2 or higher.
+
k (optional, non-differentiable) : tensor(int64)
+
A 0-D tensor containing a single value corresponding to the number diagonals above or below the main diagonal to exclude or include. Default value is 0 if it's not specified.
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Output tensor of the same type and shape as the input tensor.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+tril + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 0, 0, 0, 0], +# [1, 2, 0, 0, 0], +# [9, 4, 1, 0, 0], +# [4, 3, 4, 2, 0]] +y = tril_reference_implementation(x) +expect(node, inputs=[x], outputs=[y], name='test_tril') +``` + +
+ + +
+tril_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(-1).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[0, 0, 0, 0, 0], +# [1, 0, 0, 0, 0], +# [9, 4, 0, 0, 0], +# [4, 3, 4, 0, 0]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_neg') +``` + +
+ + +
+tril_one_row + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(3, 1, 5)).astype(np.int64) +# X: +# [[[6, 2, 4, 1, 6]], +# +# [[8, 3, 8, 7, 0]], +# +# [[2, 2, 9, 5, 9]]] +# expect result: +# [[[6, 0, 0, 0, 0]], +# +# [[8, 0, 0, 0, 0]], +# +# [[2, 0, 0, 0, 0]]] +y = tril_reference_implementation(x) +expect(node, inputs=[x], outputs=[y], name='test_tril_one_row_neg') +``` + +
+ + +
+tril_out_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(-7).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_out_neg') +``` + +
+ + +
+tril_out_pos + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(6).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_out_pos') +``` + +
+ + +
+tril_pos + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(2).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 0, 0], +# [1, 2, 8, 6, 0], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_pos') +``` + +
+ + +
+tril_square + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) +# X: +# [[[0, 4, 3], +# [2, 0, 9], +# [8, 2, 5]], +# +# [[2, 7, 2], +# [2, 6, 0], +# [2, 6, 5]]] +# expect result: +# [[[0, 0, 0], +# [2, 0, 0], +# [8, 2, 5]], +# +# [[2, 0, 0], +# [2, 6, 0], +# [2, 6, 5]]] +y = tril_reference_implementation(x) +expect(node, inputs=[x], outputs=[y], name='test_tril_square') +``` + +
+ + +
+tril_square_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) +k = np.array(-1).astype(np.int64) +# X: +# [[[0, 4, 3], +# [2, 0, 9], +# [8, 2, 5]], +# +# [[2, 7, 2], +# [2, 6, 0], +# [2, 6, 5]]] +# expect result: +# [[[0, 0, 0], +# [2, 0, 0], +# [8, 2, 0]], +# +# [[0, 0, 0], +# [2, 0, 0], +# [2, 6, 0]]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_square_neg') +``` + +
+ + +
+tril_zero + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(3, 0, 5)).astype(np.int64) +k = np.array(6).astype(np.int64) +# X: +# [] +# expect result: +# [] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_zero') +``` + +
+ + +
+triu + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 7, 9], +# [0, 2, 8, 6, 9], +# [0, 0, 0, 8, 7], +# [0, 0, 0, 2, 4]] +y = triu_reference_implementation(x) +expect(node, inputs=[x], outputs=[y], name='test_triu') +``` + +
+ + +
+triu_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(-1).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [0, 4, 0, 8, 7], +# [0, 0, 4, 2, 4]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_neg') +``` + +
+ + +
+triu_one_row + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(3, 1, 5)).astype(np.int64) +k = np.array(1).astype(np.int64) +# X: +# [[[1, 4, 9, 7, 1]], +# +# [[9, 2, 8, 8, 4]], +# +# [[3, 9, 7, 4, 2]]] +# expect result: +# [[[0, 4, 9, 7, 1]], +# +# [[0, 2, 8, 8, 4]], +# +# [[0, 9, 7, 4, 2]]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_one_row') +``` + +
+ + +
+triu_out_neg_out + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(-7).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_out_neg_out') +``` + +
+ + +
+triu_out_pos + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(6).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_out_pos') +``` + +
+ + +
+triu_pos + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(2).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[0, 0, 3, 7, 9], +# [0, 0, 0, 6, 9], +# [0, 0, 0, 0, 7], +# [0, 0, 0, 0, 0]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_pos') +``` + +
+ + +
+triu_square + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], +) + +x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) +y = triu_reference_implementation(x) +# X: +# [[[4, 6, 9], +# [7, 5, 4], +# [8, 1, 2]], +# +# [[1, 4, 9], +# [9, 6, 3], +# [8, 9, 8]]] +# expect result: +# [[[4, 6, 9], +# [0, 5, 4], +# [0, 0, 2]], +# +# [[1, 4, 9], +# [0, 6, 3], +# [0, 0, 8]]] +expect(node, inputs=[x], outputs=[y], name='test_triu_square') +``` + +
+ + +
+triu_square_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) +k = np.array(-1).astype(np.int64) +# X: +# [[[4, 6, 9], +# [7, 5, 4], +# [8, 1, 2]], +# +# [[1, 4, 9], +# [9, 6, 3], +# [8, 9, 8]]] +# expect result: +# [[[4, 6, 9], +# [7, 5, 4], +# [0, 1, 2]], +# +# [[1, 4, 9], +# [9, 6, 3], +# [0, 9, 8]]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_square_neg') +``` + +
+ + +
+triu_zero + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(0, 5)).astype(np.int64) +k = np.array(6).astype(np.int64) +# X: +# [] +# expect result: +# [] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_zero') +``` + +
+ + +### **Unique** + + Find the unique elements of a tensor. When an optional attribute 'axis' is provided, unique subtensors sliced along the 'axis' are returned. + Otherwise the input tensor is flattened and unique values of the flattened tensor are returned. + + This operator returns the unique values or sliced unique subtensors of the input tensor and three optional outputs. + The first output tensor 'Y' contains all unique values or subtensors of the input. + The second optional output tensor 'indices' contains indices of 'Y' elements' first occurance in 'X'.. + The third optional output tensor 'inverse_indices' contains, for elements of 'X', its corresponding indices in 'Y'. ". + The fourth optional output tensor 'counts' contains the count of each element of 'Y' in the input. + + Outputs are either sorted in ascending order or optionally in the order of the first occurrence of the values in the input. + + https://docs.scipy.org/doc/numpy/reference/generated/numpy.unique.html + + Example 1: + input_X = [2, 1, 1, 3, 4, 3] + attribute_sorted = 0 + attribute_axis = None + output_Y = [2, 1, 3, 4] + output_indices = [0, 1, 3, 4] + output_inverse_indices = [0, 1, 1, 2, 3, 2] + output_counts = [1, 2, 2, 1] + + Example 2: + input_X = [[1, 3], [2, 3]] + attribute_sorted = 1 + attribute_axis = None + output_Y = [1, 2, 3] + output_indices = [0, 2, 1] + output_inverse_indices = [0, 2, 1, 2] + output_counts = [1, 1, 2] + + Example 3: + input_X = [[1, 0, 0], [1, 0, 0], [2, 3, 4]] + attribute_sorted = 1 + attribute_axis = 0 + output_Y = [[1, 0, 0], [2, 3, 4]] + output_indices = [0, 2] + output_inverse_indices = [0, 0, 1] + output_counts = [2, 1] + + Example 4: + input_x = [[[1., 1.], [0., 1.], [2., 1.], [0., 1.]], + [[1., 1.], [0., 1.], [2., 1.], [0., 1.]]] + attribute_sorted = 1 + attribute_axis = 1 + + intermediate data are presented below for better understanding: + + there are 4 subtensors sliced along axis 1 of input_x (shape = (2, 4, 2)): + A: [[1, 1], [1, 1]], + [[0, 1], [0, 1]], + [[2, 1], [2, 1]], + [[0, 1], [0, 1]]. + + there are 3 unique subtensors: + [[1, 1], [1, 1]], + [[0, 1], [0, 1]], + [[2, 1], [2, 1]]. + + sorted unique subtensors: + B: [[0, 1], [0, 1]], + [[1, 1], [1, 1]], + [[2, 1], [2, 1]]. + + output_Y is constructed from B: + [[[0. 1.], [1. 1.], [2. 1.]], + [[0. 1.], [1. 1.], [2. 1.]]] + + output_indices is to map from B to A: + [1, 0, 2] + + output_inverse_indices is to map from A to B: + [1, 0, 2, 0] + + output_counts = [2 1 1] + +#### Version + +This version of the operator has been available since version 11 of the default ONNX operator set. + +#### Attributes + +
+
axis : int
+
(Optional) The dimension to apply unique. If not specified, the unique elements of the flattened input are returned. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(input).
+
sorted : int (default is 1)
+
(Optional) Whether to sort the unique elements in ascending order before returning as output. Must be one of 0, or 1 (default).
+
+ +#### Inputs + +
+
X (non-differentiable) : T
+
A N-D input tensor that is to be processed.
+
+ +#### Outputs (1 - 4) + +
+
Y (non-differentiable) : T
+
A tensor of the same type as 'X' containing all the unique values or subtensors sliced along a provided 'axis' in 'X', either sorted or maintained in the same order they occur in input 'X'
+
indices (optional, non-differentiable) : tensor(int64)
+
A 1-D INT64 tensor containing indices of 'Y' elements' first occurance in 'X'. When 'axis' is provided, it contains indices to subtensors in input 'X' on the 'axis'. When 'axis' is not provided, it contains indices to values in the flattened input tensor.
+
inverse_indices (optional, non-differentiable) : tensor(int64)
+
A 1-D INT64 tensor containing, for elements of 'X', its corresponding indices in 'Y'. When 'axis' is provided, it contains indices to subtensors in output 'Y' on the 'axis'. When 'axis' is not provided, it contains indices to values in output 'Y'.
+
counts (optional, non-differentiable) : tensor(int64)
+
A 1-D INT64 tensor containing the count of each element of 'Y' in input 'X'
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Input can be of any tensor type.
+
+ + +#### Examples + +
+not_sorted_without_axis + +```python +node_not_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=0 +) +# numpy unique does not retain original order (it sorts the output unique values) +# https://github.com/numpy/numpy/issues/8621 +# we need to recover unsorted output and indices +x = np.array([2.0, 1.0, 1.0, 3.0, 4.0, 3.0], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True) + +# prepare index mapping from sorted to unsorted +argsorted_indices = np.argsort(indices) +inverse_indices_map = {i: si for i, si in zip(argsorted_indices, np.arange(len(argsorted_indices)))} + +indices = indices[argsorted_indices] +y = np.take(x, indices, axis=0) +inverse_indices = np.asarray([inverse_indices_map[i] for i in inverse_indices], dtype=np.int64) +counts = counts[argsorted_indices] +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +# print(y) +# [2.0, 1.0, 3.0, 4.0] +# print(indices) +# [0 1 3 4] +# print(inverse_indices) +# [0, 1, 1, 2, 3, 2] +# print(counts) +# [1, 2, 2, 1] + +expect(node_not_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_not_sorted_without_axis') +``` + +
+ + +
+sorted_with_axis + +```python +node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=1, + axis=0 +) + +x = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True, axis=0) +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +# print(y) +# [[1. 0. 0.] +# [2. 3. 4.]] +# print(indices) +# [0 2] +# print(inverse_indices) +# [0 0 1] +# print(counts) +# [2 1] + +expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_with_axis') +``` + +
+ + +
+sorted_with_axis_3d + +```python +node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=1, + axis=1 +) + +x = np.array([[[1., 1.], [0., 1.], [2., 1.], [0., 1.]], + [[1., 1.], [0., 1.], [2., 1.], [0., 1.]]], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True, axis=1) +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +# print(y) +# [[[0. 1.] +# [1. 1.] +# [2. 1.]] +# [[0. 1.] +# [1. 1.] +# [2. 1.]]] +# print(indices) +# [1 0 2] +# print(inverse_indices) +# [1 0 2 0] +# print(counts) +# [2 1 1] +expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_with_axis_3d') +``` + +
+ + +
+sorted_with_negative_axis + +```python +node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=1, + axis=-1 +) + +x = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 3]], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True, axis=-1) +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +# print(y) +# [[0. 1.] +# [0. 1.] +# [3. 2.]] +# print(indices) +# [1 0] +# print(inverse_indices) +# [1 0 0] +# print(counts) +# [2 1] + +expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_with_negative_axis') +``` + +
+ + +
+sorted_without_axis + +```python +node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'] +) + +x = np.array([2.0, 1.0, 1.0, 3.0, 4.0, 3.0], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True) +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_without_axis') +``` + +
+ + +### **Unsqueeze** + + Insert single-dimensional entries to the shape of an input tensor (`data`). + Takes one required input `axes` - which contains a list of dimension indices and this operator will insert a dimension of value `1` into the corresponding index of the output tensor (`expanded`). + + For example: + Given an input tensor (`data`) of shape [3, 4, 5], then + Unsqueeze(data, axes=[0, 4]) outputs a tensor (`expanded`) containing same data as `data` but with shape [1, 3, 4, 5, 1]. + + The input `axes` should not contain any duplicate entries. It is an error if it contains duplicates. + The rank of the output tensor (`output_rank`) is the rank of the input tensor (`data`) plus the number of values in `axes`. + Each value in `axes` should be within the (inclusive) range [-output_rank , output_rank - 1]. + The order of values in `axes` does not matter and can come in any order. + + +#### Version + +This version of the operator has been available since version 13 of the default ONNX operator set. + +Other versions of this operator: 1, 11 + +#### Inputs + +
+
data (differentiable) : T
+
Original tensor
+
axes (non-differentiable) : tensor(int64)
+
List of integers indicating the dimensions to be inserted. Negative value means counting dimensions from the back. Accepted range is [-r, r-1] where r = rank(expanded).
+
+ +#### Outputs + +
+
expanded (differentiable) : T
+
Reshaped tensor with same data as input.
+
+ +#### Type Constraints + +
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types.
+
+ + +#### Examples + +
+unsqueeze_negative_axes + +```python +node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], +) +x = np.random.randn(1, 3, 1, 5).astype(np.float32) +axes = np.array([-2]).astype(np.int64) +y = np.expand_dims(x, axis=-2) +expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_negative_axes') +``` + +
+ + +
+unsqueeze_one_axis + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) + +for i in range(x.ndim): + axes = np.array([i]).astype(np.int64) + node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], + ) + y = np.expand_dims(x, axis=i) + + expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_axis_' + str(i)) +``` + +
+ + +
+unsqueeze_three_axes + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) +axes = np.array([2, 4, 5]).astype(np.int64) + +node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], +) +y = np.expand_dims(x, axis=2) +y = np.expand_dims(y, axis=4) +y = np.expand_dims(y, axis=5) + +expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_three_axes') +``` + +
+ + +
+unsqueeze_two_axes + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) +axes = np.array([1, 4]).astype(np.int64) + +node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], +) +y = np.expand_dims(x, axis=1) +y = np.expand_dims(y, axis=4) + +expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_two_axes') +``` + +
+ + +
+unsqueeze_unsorted_axes + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) +axes = np.array([5, 4, 2]).astype(np.int64) + +node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], +) +y = np.expand_dims(x, axis=2) +y = np.expand_dims(y, axis=4) +y = np.expand_dims(y, axis=5) + +expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_unsorted_axes') +``` + +
+ + +### **Upsample** (deprecated) + + Upsample the input tensor. + Each dimension value of the output tensor is: + output_dimension = floor(input_dimension * scale). + +#### Version + +This version of the operator has been deprecated since version 10 of the default ONNX operator set. + +Other versions of this operator: 7, 9 + + +#### Examples + +
+nearest + +```python +node = onnx.helper.make_node( + 'Upsample', + inputs=['X', 'scales'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32) + +output = np.array([[[ + [1, 1, 1, 2, 2, 2], + [1, 1, 1, 2, 2, 2], + [3, 3, 3, 4, 4, 4], + [3, 3, 3, 4, 4, 4], +]]], dtype=np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_upsample_nearest', opset_imports=[helper.make_opsetid("", 9)]) +``` + +
+ + +### **Where** + + Return elements, either from X or Y, depending on condition. + Where behaves like + [numpy.where](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) + with three parameters. + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + + **History** + - Version 16 adds bfloat16 to the types allowed (for the second and third parameter). + +#### Version + +This version of the operator has been available since version 16 of the default ONNX operator set. + +Other versions of this operator: 9 + +#### Inputs + +
+
condition (non-differentiable) : B
+
When True (nonzero), yield X, otherwise yield Y
+
X (differentiable) : T
+
values selected at indices where condition is True
+
Y (differentiable) : T
+
values selected at indices where condition is False
+
+ +#### Outputs + +
+
output (differentiable) : T
+
Tensor of shape equal to the broadcasted shape of condition, X, and Y.
+
+ +#### Type Constraints + +
+
B : tensor(bool)
+
Constrain to boolean tensors.
+
T : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(bfloat16), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Constrain input and output types to all tensor types (including bfloat).
+
+ + +#### Examples + +
+long + +```python +node = onnx.helper.make_node( + 'Where', + inputs=['condition', 'x', 'y'], + outputs=['z'], +) + +condition = np.array([[1, 0], [1, 1]], dtype=bool) +x = np.array([[1, 2], [3, 4]], dtype=np.int64) +y = np.array([[9, 8], [7, 6]], dtype=np.int64) +z = np.where(condition, x, y) # expected output [[1, 8], [3, 4]] +expect(node, inputs=[condition, x, y], outputs=[z], + name='test_where_long_example') +``` + +
+ + +
+where + +```python +node = onnx.helper.make_node( + 'Where', + inputs=['condition', 'x', 'y'], + outputs=['z'], +) + +condition = np.array([[1, 0], [1, 1]], dtype=bool) +x = np.array([[1, 2], [3, 4]], dtype=np.float32) +y = np.array([[9, 8], [7, 6]], dtype=np.float32) +z = np.where(condition, x, y) # expected output [[1, 8], [3, 4]] +expect(node, inputs=[condition, x, y], outputs=[z], + name='test_where_example') +``` + +
+ + +### **Xor** + + Returns the tensor resulted from performing the `xor` logical operation + elementwise on the input tensors `A` and `B` (with Numpy-style broadcasting support). + + This operator supports **multidirectional (i.e., Numpy-style) broadcasting**; for more details please check [the doc](Broadcasting.md). + +#### Version + +This version of the operator has been available since version 7 of the default ONNX operator set. + +Other versions of this operator: 1 + +#### Inputs + +
+
A (non-differentiable) : T
+
First input operand for the logical operator.
+
B (non-differentiable) : T
+
Second input operand for the logical operator.
+
+ +#### Outputs + +
+
C (non-differentiable) : T1
+
Result tensor.
+
+ +#### Type Constraints + +
+
T : tensor(bool)
+
Constrain input to boolean tensor.
+
T1 : tensor(bool)
+
Constrain output to boolean tensor.
+
+ + +#### Examples + +
+xor + +```python +node = onnx.helper.make_node( + 'Xor', + inputs=['x', 'y'], + outputs=['xor'], +) + +# 2d +x = (np.random.randn(3, 4) > 0).astype(bool) +y = (np.random.randn(3, 4) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor2d') + +# 3d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(3, 4, 5) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor3d') + +# 4d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor4d') +``` + +
+ + +
+xor_broadcast + +```python +node = onnx.helper.make_node( + 'Xor', + inputs=['x', 'y'], + outputs=['xor'], +) + +# 3d vs 1d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(5) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast3v1d') + +# 3d vs 2d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(4, 5) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast3v2d') + +# 4d vs 2d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(5, 6) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast4v2d') + +# 4d vs 3d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(4, 5, 6) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast4v3d') + +# 4d vs 4d +x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool) +y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast4v4d') +``` + +
+ + +## ai.onnx.preview.training +### **ai.onnx.preview.training.Adagrad** + + Compute one iteration of ADAGRAD, a stochastic gradient based optimization + algorithm. This operator can conduct the optimization of multiple tensor variables. + + Let's define the behavior of this operator. As you can imagine, ADAGRAD requires + some parameters: + + - The initial learning-rate "R". + - The update count "T". That is, the number of training iterations conducted. + - A L2-norm regularization coefficient "norm_coefficient". + - A learning-rate decay factor "decay_factor". + - A small constant "epsilon" to avoid dividing-by-zero. + + At each ADAGRAD iteration, the optimized tensors are moved along a direction + computed based on their estimated gradient and accumulated squared gradient. Assume + that only a single tensor "X" is updated by this operator. We need the value of "X", + its gradient "G", and its accumulated squared gradient "H". Therefore, variables in + this operator's input list are sequentially "R", "T", "X", "G", and "H". Other + parameters are given as attributes because they are usually constants. Also, the + corresponding output tensors are the new value of "X" (called "X_new"), and then + the new accumulated squared gradient (called "H_new"). Those outputs are computed + from the given inputs following the pseudo code below. + + Let "+", "-", "*", and "/" are all element-wise arithmetic operations with + numpy-style broadcasting support. The pseudo code to compute those outputs is: + + // Compute a scalar learning-rate factor. At the first update of X, T is generally + // 0 (0-based update index) or 1 (1-based update index). + r = R / (1 + T * decay_factor); + + // Add gradient of 0.5 * norm_coefficient * ||X||_2^2, where ||X||_2 is the 2-norm. + G_regularized = norm_coefficient * X + G; + + // Compute new accumulated squared gradient. + H_new = H + G_regularized * G_regularized; + + // Compute the adaptive part of per-coordinate learning rate. Note that Sqrt(...) + // computes element-wise square-root. + H_adaptive = Sqrt(H_new) + epsilon + + // Compute the new value of "X". + X_new = X - r * G_regularized / H_adaptive; + + If one assign this operators to optimize multiple inputs, for example, "X_1" and "X_2", the same + pseudo code may be extended to handle all tensors jointly. More specifically, we can view "X" as a + concatenation of "X_1" and "X_2" (of course, their gradient and accumulate gradient should + be concatenated too) and then just reuse the entire pseudo code. + + Note that ADAGRAD was first proposed in http://jmlr.org/papers/volume12/duchi11a/duchi11a.pdf. + In that reference paper, this operator is a special case of the Figure 1's composite mirror + descent update. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.preview.training' operator set. + +#### Attributes + +
+
decay_factor : float (default is 0.0)
+
The decay factor of learning rate after one update.The effective learning rate is computed by r = R / (1 + T * decay_factor). Default to 0 so that increasing update counts doesn't reduce the learning rate.
+
epsilon : float (default is 0.0)
+
Small scalar to avoid dividing by zero.
+
norm_coefficient : float (default is 0.0)
+
Regularization coefficient in 0.5 * norm_coefficient * ||X||_2^2. Default to 0, which means no regularization.
+
+ +#### Inputs (3 - ∞) + +
+
R : T1
+
The initial learning rate.
+
T : T2
+
The update count of "X". It should be a scalar.
+
inputs (variadic, heterogeneous) : T3
+
The current values of optimized tensors, followed by their respective gradients, followed by their respective accumulated squared gradients.For example, if two tensor "X_1" and "X_2" are optimized, The input list would be ["X_1", "X_2", gradient of "X_1", gradient of "X_2", accumulated squared gradient of "X_1", accumulated squared gradient of "X_2"].
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : T3
+
Updated values of optimized tensors, followed by their updated values of accumulated squared gradients. For example, if two tensor "X_1" and "X_2" are optimized, the output list would be [new value of "X_1," new value of "X_2" new accumulated squared gradient of "X_1", new accumulated squared gradient of "X_2"].
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double)
+
Constrain input types to float scalars.
+
T2 : tensor(int64)
+
Constrain input types to 64-bit integer scalars.
+
T3 : tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+adagrad + +```python +# Define operator attributes. +norm_coefficient = 0.001 +epsilon = 1e-5 +decay_factor = 0.1 + +# Create operator. +node = onnx.helper.make_node('Adagrad', + inputs=['R', 'T', 'X', 'G', 'H'], + outputs=['X_new', 'H_new'], + norm_coefficient=norm_coefficient, + epsilon=epsilon, + decay_factor=decay_factor, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar +x = np.array([1.0], dtype=np.float32) +g = np.array([-1.0], dtype=np.float32) +h = np.array([2.0], dtype=np.float32) + +# Compute expected outputs of Adagrad. +x_new, h_new = apply_adagrad(r, t, x, g, h, + norm_coefficient, epsilon, decay_factor) + +# Check results. +expect(node, inputs=[r, t, x, g, h], + outputs=[x_new, h_new], name='test_adagrad', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + +
+adagrad_multiple + +```python +# Define operator attributes. +norm_coefficient = 0.001 +epsilon = 1e-5 +decay_factor = 0.1 + +node = onnx.helper.make_node('Adagrad', + inputs=['R', 'T', 'X1', 'X2', + 'G1', 'G2', 'H1', 'H2'], + outputs=['X1_new', 'X2_new', + 'H1_new', 'H2_new'], + norm_coefficient=norm_coefficient, + epsilon=epsilon, + decay_factor=decay_factor, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar + +x1 = np.array([1.0], dtype=np.float32) +g1 = np.array([-1.0], dtype=np.float32) +h1 = np.array([2.0], dtype=np.float32) + +x2 = np.array([1.0, 2.0], dtype=np.float32) +g2 = np.array([-1.0, -3.0], dtype=np.float32) +h2 = np.array([4.0, 1.0], dtype=np.float32) + +# Compute expected outputs of Adagrad. +x1_new, h1_new = apply_adagrad(r, t, x1, g1, h1, + norm_coefficient, epsilon, decay_factor) +x2_new, h2_new = apply_adagrad(r, t, x2, g2, h2, + norm_coefficient, epsilon, decay_factor) + +# Check results. +expect(node, inputs=[r, t, x1, x2, g1, g2, h1, h2], + outputs=[x1_new, x2_new, h1_new, h2_new], name='test_adagrad_multiple', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + +### **ai.onnx.preview.training.Adam** + + Compute one iteration of Adam, a stochastic gradient based optimization + algorithm. This operator can conduct the optimization of multiple tensor variables. + + Let's define the behavior of this operator. First of all, Adam requires + some parameters: + + - The learning-rate "R". + - The update count "T". That is, the number of training iterations conducted. + - A L2-norm regularization coefficient "norm_coefficient". + - A small constant "epsilon" to avoid dividing-by-zero. + - Two coefficients, "alpha" and "beta". + + At each Adam iteration, the optimized tensors are moved along a direction + computed based on their exponentially-averaged historical gradient and + exponentially-averaged historical squared gradient. Assume that only a tensor + "X" is being optimized. The rest of required information is + + - the value of "X", + - "X"'s gradient (denoted by "G"), + - "X"'s exponentially-averaged historical gradient (denoted by "V"), and + - "X"'s exponentially-averaged historical squared gradient (denoted by "H"). + + Some of those parameters are passed into this operator as input tensors and others + are stored as this operator's attributes. Specifically, this operator's input tensor + list is ["R", "T", "X", "G", "V", "H"]. That is, "R" is the first input, "T" is + the second input, and so on. Other parameters are given as attributes because they + are constants. Moreover, the corresponding output tensors are + + - the new value of "X" (called "X_new"), + - the new exponentially-averaged historical gradient (denoted by "V_new"), and + - the new exponentially-averaged historical squared gradient (denoted by "H_new"). + + Those outputs are computed following the pseudo code below. + + Let "+", "-", "*", and "/" are all element-wise arithmetic operations with + numpy-style broadcasting support. The pseudo code to compute those outputs is: + + // Add gradient of 0.5 * norm_coefficient * ||X||_2^2, where ||X||_2 is the 2-norm. + G_regularized = norm_coefficient * X + G + + // Update exponentially-averaged historical gradient. + V_new = alpha * V + (1 - alpha) * G_regularized + + // Update exponentially-averaged historical squared gradient. + H_new = beta * H + (1 - beta) * G_regularized * G_regularized + + // Compute the element-wise square-root of H_new. V_new will be element-wisely + // divided by H_sqrt for a better update direction. + H_sqrt = Sqrt(H_new) + epsilon + + // Compute learning-rate. Note that "alpha**T"/"beta**T" is alpha's/beta's T-th power. + R_adjusted = T > 0 ? R * Sqrt(1 - beta**T) / (1 - alpha**T) : R + + // Compute new value of "X". + X_new = X - R_adjusted * V_new / H_sqrt + + // Post-update regularization. + X_final = (1 - norm_coefficient_post) * X_new + + If there are multiple inputs to be optimized, the pseudo code will be applied + independently to each of them. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.preview.training' operator set. + +#### Attributes + +
+
alpha : float (default is 0.9)
+
Coefficient of previously accumulated gradient in running average. Default to 0.9.
+
beta : float (default is 0.999)
+
Coefficient of previously accumulated squared-gradient in running average. Default to 0.999.
+
epsilon : float (default is 0.0)
+
Small scalar to avoid dividing by zero.
+
norm_coefficient : float (default is 0.0)
+
Regularization coefficient of 0.5 * norm_coefficient * ||X||_2^2. Default to 0, which means no regularization.
+
norm_coefficient_post : float (default is 0.0)
+
Regularization coefficient of 0.5 * norm_coefficient * ||X||_2^2. Default to 0, which means no regularization.
+
+ +#### Inputs (3 - ∞) + +
+
R : T1
+
The initial learning rate.
+
T : T2
+
The update count of "X". It should be a scalar.
+
inputs (variadic, heterogeneous) : T3
+
The tensors to be optimized, followed by their respective gradients, followed by their respective accumulated gradients (aka momentum), followed by their respective accumulated squared gradients. For example, to optimize tensors "X_1" and "X_2,", the input list would be ["X_1", "X_2", gradient of "X_1", gradient of "X_2", accumulated gradient of "X_1", accumulated gradient of "X_2", accumulated squared gradient of "X_1", accumulated squared gradient of "X_2"].
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : T3
+
New values of optimized tensors, followed by their respective new accumulated gradients, followed by their respective new accumulated squared gradients. For example, if two tensors "X_1" and "X_2" are optimized, the outputs list would be [new value of "X_1", new value of "X_2", new accumulated gradient of "X_1", new accumulated gradient of "X_2", new accumulated squared gradient of "X_1", new accumulated squared gradient of "X_2"].
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double)
+
Constrain input types to float scalars.
+
T2 : tensor(int64)
+
Constrain input types to 64-bit integer scalars.
+
T3 : tensor(float), tensor(double)
+
Constrain input and output types to float tensors.
+
+ + +#### Examples + +
+adam + +```python +# Define operator attributes. +norm_coefficient = 0.001 +alpha = 0.95 +beta = 0.1 +epsilon = 1e-7 + +# Create operator. +node = onnx.helper.make_node('Adam', + inputs=['R', 'T', 'X', 'G', 'V', 'H'], + outputs=['X_new', 'V_new', 'H_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + epsilon=epsilon, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar +x = np.array([1.2, 2.8], dtype=np.float32) +g = np.array([-0.94, -2.5], dtype=np.float32) +v = np.array([1.7, 3.6], dtype=np.float32) +h = np.array([0.1, 0.1], dtype=np.float32) + +# Compute expected outputs of Adam. +x_new, v_new, h_new = apply_adam(r, t, x, g, v, h, + norm_coefficient, 0.0, alpha, beta, + epsilon) + +# Check results. +expect(node, inputs=[r, t, x, g, v, h], + outputs=[x_new, v_new, h_new], name='test_adam', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + +
+adam_multiple + +```python +# Define operator attributes. +norm_coefficient = 0.001 +alpha = 0.95 +beta = 0.85 +epsilon = 1e-2 + +node = onnx.helper.make_node('Adam', + inputs=['R', 'T', 'X1', 'X2', + 'G1', 'G2', 'V1', 'V2', + 'H1', 'H2'], + outputs=['X1_new', 'X2_new', + 'V1_new', 'V2_new', + 'H1_new', 'H2_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar + +x1 = np.array([1.0], dtype=np.float32) +g1 = np.array([-1.0], dtype=np.float32) +v1 = np.array([2.0], dtype=np.float32) +h1 = np.array([0.5], dtype=np.float32) + +x2 = np.array([1.0, 2.0], dtype=np.float32) +g2 = np.array([-1.0, -3.0], dtype=np.float32) +v2 = np.array([4.0, 1.0], dtype=np.float32) +h2 = np.array([1.0, 10.0], dtype=np.float32) + +# Compute expected outputs of Adam. +x1_new, v1_new, h1_new = apply_adam(r, t, x1, g1, v1, h1, + norm_coefficient, 0.0, alpha, beta, + epsilon) +x2_new, v2_new, h2_new = apply_adam(r, t, x2, g2, v2, h2, + norm_coefficient, 0.0, alpha, beta, + epsilon) + +# Check results. +expect(node, inputs=[r, t, x1, x2, g1, g2, v1, v2, h1, h2], + outputs=[x1_new, x2_new, v1_new, v2_new, h1_new, h2_new], + name='test_adam_multiple', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + +### **ai.onnx.preview.training.Gradient** + + Gradient operator computes the partial derivatives of a specific tensor w.r.t. + some other tensors. This operator is widely used in gradient-based training + algorithms. To illustrate its use, let's consider a computation graph, + + ``` + X -----. + | + v + W --> Conv --> H --> Gemm --> Y + ^ + | + Z + ``` + + , where W and Z are trainable tensors. Note that operators' attributes are + omitted for the sake of simplicity. Let dY/dW (dY/dZ) be the gradient of + Y with respect to W (Z). The user can compute gradient by inserting Gradient + operator to form another graph shown below. + + ``` + W --> Conv --> H --> Gemm --> Y + | ^ ^ + | | | + | X Z + | | | + | | .----------' + | | | (W/Z/X is the 1st/2nd/3rd input of Gradient as shown in + | | | "xs" followed by "zs") + | v v + '---> Gradient(xs=["W", "Z"], zs=["X"], y="Y") + | | + | '-----------------------------------> dY/dW (1st output of Gradient) + | + '---------------------------------------> dY/dZ (2nd output of Gradient) + ``` + + By definition, the tensor "y" is a function of independent variables in "xs" + and "zs". Since we only compute the gradient of "y" w.r.t. the differentiable + variables in "xs", this Gradient only outputs dY/dW and dY/dZ. Note that "H" + cannot appear in "xs" and "zs". The reason is that "H" can be determined by + tensors "W" and "X" and therefore "H" is not an independent variable. + + All outputs are optional. If needed, for example, user can assign an empty + string to the 1st output name of that Gradient to skip the generation of dY/dW. + Note that the concept of optional outputs can also be found in ONNX's RNN, GRU, + and LSTM. + + Gradient operator can compute derivative against intermediate tensors. For + example, the gradient of Y with respect to H can be done via + + ``` + W --> Conv --> H --> Gemm --> Y + ^ | ^ + | | | + X | Z + .-------' | + | .----------' + | | (H/Z is the 1st/2nd input of Gradient as shown in "xs") + v v + Gradient(xs=["H", "Z"], y="Y") + | | + | '-----------------------------------> dY/dH (1st output of Gradient) + | + '---------------------------------------> dY/dZ (2nd output of Gradient) + ``` + + It is possible to represent high-order differentiation using Gradient operators. + For example, given the following linear model: + + ``` + W --> Gemm --> Y --> Loss --> O + ^ ^ + | | + X L + ``` + + To compute the 2nd order derivative of O with respect to W (denoted by + d^2O/dW^2), one can do + + ``` + W --> Gemm --> Y --> Loss --> O + | ^ ^ + | | | + | X .------------L + | | | | + | | | v + +------+-+> Gradient(xs=["X", "W"], zs=["L"], y="O") ---> dO/dX (1st output of Gradient) + | | | | + | | | '---> dO/dW (2nd output of Gradient) + | v v + '---> Gradient(xs=["X", "W"], zs=["L"], y="dO/dW") ---> d(dO/dW)dX (1st output of + | Gradient) + | + | + '---> d^2O/dW^2 (2nd output of Gradient) + ``` + + The tensors named in attributes "xs", "zs", and "y" define the differentiated + computation graph, and the inputs to Gradient node define the values at + which the gradient is computed. We can feed different tensors to the identified + graph. For example, one can compute the gradient of Y with respect to H at + a specific value of H, H_1, by providing that value as an input to the Gradient + node. + + ``` + W --> Conv --> H --> Gemm --> Y + ^ ^ + | | + X Z + + Z_1 (2nd input of Gradient) + | + v + H_1 --> Gradient(xs=["H", "Z"], y="Y") ---> dY/dH when H = H_1 and Y = Y_1. + | + '------------------------------> dY/dZ (2nd output of Gradient) + ``` + + When the inputs of Gradient are the tensors named in "xs" and "zs", the + computation can be optimized. More specifically, intermediate variables in + forward pass can be reused if the gradient is computed via reverse-mode + auto-differentiation. + + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.preview.training' operator set. + +#### Attributes + +
+
xs : list of strings (required)
+
Input tensor names of the differentiated sub-graph. It contains only the necessary differentiated inputs of a (sub-)graph. Variables (usually called intermediate variables) that can be generated from inputs cannot be included in this attribute.
+
y : string (required)
+
The targeted tensor. It can be viewed as the output of the differentiated function. The attribute "xs" and attribute "zs" are the minimal independent variable set that determines the value of "y".
+
zs : list of strings
+
Input tensor names of the differentiated sub-graph. It contains only the necessary non-differentiated inputs of a (sub-)graph. Variables (usually called intermediate variables) that can be generated from inputs cannot be included in this attribute.
+
+ +#### Inputs (1 - ∞) + +
+
Inputs (variadic, heterogeneous) : T1
+
The values fed into graph identified by the attributes. The i-th input is the value of the i-th tensor specified in the concatenated list of the attribute "xs" and the attribute "zs". For example, if xs=["A", "B"] and zs=["C"], the first input is used as the value of symbol "A" and the 3rd input is substituted for all the occurrences of "C".
+
+ +#### Outputs (1 - ∞) + +
+
Outputs (variadic, heterogeneous) : T2
+
The gradient of the tensor specified by the attribute "y" with respect to each of tensors specified in the attribute "xs". The i-th output is the gradient of "y" with respect to the i-th tensor specified in the attribute "xs".
+
+ +#### Type Constraints + +
+
T1 : tensor(uint8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(int8), tensor(int16), tensor(int32), tensor(int64), tensor(float16), tensor(float), tensor(double), tensor(string), tensor(bool), tensor(complex64), tensor(complex128)
+
Allow outputs to be any kind of tensor.
+
T2 : tensor(float16), tensor(float), tensor(double)
+
Allow inputs to be any kind of floating-point tensor.
+
+ + +#### Examples + +
+gradient_scalar_add + +```python +add_node = onnx.helper.make_node('Add', + ['a', 'b'], ['c'], name='my_add') +gradient_node = onnx.helper.make_node( + 'Gradient', ['a', 'b'], + ['dc_da', 'dc_db'], name='my_gradient', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN, + xs=['a', 'b'], y='c') + +a = np.array(1.0).astype(np.float32) +b = np.array(2.0).astype(np.float32) +c = a + b +# dc / da = d(a+b) / da = 1 +dc_da = np.array(1).astype(np.float32) +# db / db = d(a+b) / db = 1 +dc_db = np.array(1).astype(np.float32) + +graph = onnx.helper.make_graph( + nodes=[add_node, gradient_node], + name='GradientOfAdd', + inputs=[ + onnx.helper.make_tensor_value_info('a', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('b', onnx.TensorProto.FLOAT, + [])], + outputs=[ + onnx.helper.make_tensor_value_info('c', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('dc_da', + onnx.TensorProto.FLOAT, []), + onnx.helper.make_tensor_value_info('dc_db', + onnx.TensorProto.FLOAT, [])]) +opsets = [ + onnx.helper.make_operatorsetid(ONNX_DOMAIN, 12), + onnx.helper.make_operatorsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)] +model = onnx.helper.make_model( + graph, + producer_name='backend-test', + opset_imports=opsets) +expect(model, inputs=[a, b], outputs=[c, dc_da, dc_db], + name='test_gradient_of_add') +``` + +
+ + +
+gradient_scalar_add_and_mul + +```python +add_node = onnx.helper.make_node('Add', + ['a', 'b'], ['c'], name='my_add') +mul_node = onnx.helper.make_node('Mul', + ['c', 'a'], ['d'], name='my_mul') +gradient_node = onnx.helper.make_node( + 'Gradient', ['a', 'b'], + ['dd_da', 'dd_db'], name='my_gradient', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN, + xs=['a', 'b'], y='d') + +a = np.array(1.0).astype(np.float32) +b = np.array(2.0).astype(np.float32) +c = a + b +# d = a * c = a * (a + b) +d = a * c +# dd / da = d(a*a+a*b) / da = 2 * a + b +dd_da = (2 * a + b).astype(np.float32) +# dd / db = d(a*a+a*b) / db = a +dd_db = a + +graph = onnx.helper.make_graph( + nodes=[add_node, mul_node, gradient_node], + name='GradientOfTwoOperators', + inputs=[ + onnx.helper.make_tensor_value_info('a', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('b', onnx.TensorProto.FLOAT, + [])], + outputs=[ + onnx.helper.make_tensor_value_info('d', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('dd_da', + onnx.TensorProto.FLOAT, []), + onnx.helper.make_tensor_value_info('dd_db', + onnx.TensorProto.FLOAT, [])]) + +opsets = [ + onnx.helper.make_operatorsetid(ONNX_DOMAIN, 12), + onnx.helper.make_operatorsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)] +model = onnx.helper.make_model(graph, + producer_name='backend-test', + opset_imports=opsets) +expect(model, inputs=[a, b], outputs=[d, dd_da, dd_db], + name='test_gradient_of_add_and_mul') +``` + +
+ + +### **ai.onnx.preview.training.Momentum** + + Compute one iteration of stochastic gradient update with momentum. + This operator can conduct the optimization of multiple tensor variables. + + Let's define the behavior of this operator. As you can imagine, SG with momentum requires + several parameters: + + - The learning-rate "R". + - The update count "T". That is, the number of conducted training iterations. It should + be zero in the first training iteration. + - A L2-norm regularization coefficient "norm_coefficient". + - A decay coefficient of previous accumulated gradient (i.e., momentum) "alpha". + - The scaling coefficient of current gradient "beta". + - An attribute to choose either standard momentum or Nesterov's momentum "mode" should + be used. + + For the sake of simplicity, assume that there is only one tensor (called "X") to be optimized. + Other necessary inputs are "X"'s gradient (called "G") and "X"'s momentum (called "V"). This + Momentum operator maps all these inputs to the new value of "X" (called "X_new") and its new + momentum (called "V_new"). + + This operator supports two different momentum algorithms. Set the attribute "mode" to + "nesterov" if Nesterov's momentum is desired. Otherwise, set the attribute "model" to + "standard" to use standard momentum. Computation details are described subsequently. + + Let "+", "-", "*", and "/" are all element-wise operations with numpy-style broadcasting. + + Pseudo code for SG with standard momentum: + + // Add gradient of 0.5 * norm_coefficient * ||X||^2, where ||X|| is the sum of squared + // values of all elements in X. + G_regularized = norm_coefficient * X + G + + // In the first training iteration, beta should always be 1. + beta_adjusted = T > 0 ? beta : 1 + + // Compute the current momentum based on previous momentum and the current gradient. + V_new = alpha * V + beta_adjusted * G_regularized + + // Update X. + X_new = X - R * V_new + + Pseudo code for SG with Nesterov's momentum: + + // Add gradient of 0.5 * norm_coefficient * ||X||^2, where ||X|| is the sum of squared + // values of all elements in X. + G_regularized = norm_coefficient * X + G; + + // In the first training iteration, beta should always be 1. + beta_adjusted = T > 0 ? beta : 1 + + // Compute the current momentum based on previous momentum and the current gradient. + V_new = alpha * V + beta_adjusted * G_regularized; + + // Compute final update direction and then update X. + X_new = X - R * (G_regularized + alpha * V_new) + + If one assign this operators to optimize multiple inputs, for example, "X_1" and "X_2". The same + pseudo code would be extended to handle all tensors jointly. More specifically, we can view "X" as a + concatenation of "X_1" and "X_2" (of course, their gradient and accumulate gradient should + be concatenated too) and then our pseudo code becomes applicable. + +#### Version + +This version of the operator has been available since version 1 of the 'ai.onnx.preview.training' operator set. + +#### Attributes + +
+
alpha : float (required)
+
The decay factor of momentum. It should be a scalar.
+
beta : float (required)
+
The coefficient of gradient in computing new momentum. It should be a scalar.
+
mode : string (required)
+
Its value should be either "nesterov" or "standard". The value "nesterov" leads to the use of Nesterov's momentum while "standard" invokes stochastic gradient method using standard momentum
+
norm_coefficient : float (required)
+
Coefficient of 0.5 * norm_coefficient * ||X||^2.
+
+ +#### Inputs (3 - ∞) + +
+
R : T1
+
The learning rate.
+
T : T2
+
Update count of "X". It should be a scalar.
+
inputs (variadic, heterogeneous) : T3
+
It sequentially contains the current values of optimized tensors, then their gradient tensors, and finally their momentum tensors. For example, if two tensors "X_1" and "X_2" are optimized, The expected input list would be ["X_1", "X_2", gradient of "X_1", gradient of "X_2", momentum of "X_1", momentum of "X_2"].
+
+ +#### Outputs (1 - ∞) + +
+
outputs (variadic, heterogeneous) : T3
+
It sequentially contains the new values of optimized tensors and then the new values of their momentum tensors. For example, if two tensors "X_1" and "X_2" are optimized, the output list would be [new value of "X_1," new value of "X_2" new momentum of "X_1", new momentum of "X_2"].
+
+ +#### Type Constraints + +
+
T1 : tensor(float), tensor(double)
+
Constrain input types to float scalars.
+
T2 : tensor(int64)
+
Constrain input types to 64-bit integer scalars.
+
T3 : tensor(float), tensor(double)
+
Constrain input types to float tensors.
+
+ + +#### Examples + +
+momentum + +```python +# Define operator attributes. +norm_coefficient = 0.001 +alpha = 0.95 +beta = 0.1 + +# Create operator. +node = onnx.helper.make_node('Momentum', + inputs=['R', 'T', 'X', 'G', 'V'], + outputs=['X_new', 'V_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + mode='standard', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar +x = np.array([1.2, 2.8], dtype=np.float32) +g = np.array([-0.94, -2.5], dtype=np.float32) +v = np.array([1.7, 3.6], dtype=np.float32) + +# Compute expected outputs of Momentum. +x_new, v_new = apply_momentum(r, t, x, g, v, + norm_coefficient, alpha, beta) + +# Check results. +expect(node, inputs=[r, t, x, g, v], + outputs=[x_new, v_new], name='test_momentum', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + +
+momentum_multiple + +```python +# Define operator attributes. +norm_coefficient = 0.001 +alpha = 0.95 +beta = 0.85 + +node = onnx.helper.make_node('Momentum', + inputs=['R', 'T', 'X1', 'X2', + 'G1', 'G2', 'H1', 'H2'], + outputs=['X1_new', 'X2_new', + 'V1_new', 'V2_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + mode='standard', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar + +x1 = np.array([1.0], dtype=np.float32) +g1 = np.array([-1.0], dtype=np.float32) +v1 = np.array([2.0], dtype=np.float32) + +x2 = np.array([1.0, 2.0], dtype=np.float32) +g2 = np.array([-1.0, -3.0], dtype=np.float32) +v2 = np.array([4.0, 1.0], dtype=np.float32) + +# Compute expected outputs of Momentum. +x1_new, v1_new = apply_momentum(r, t, x1, g1, v1, + norm_coefficient, alpha, beta) +x2_new, v2_new = apply_momentum(r, t, x2, g2, v2, + norm_coefficient, alpha, beta) + +# Check results. +expect(node, inputs=[r, t, x1, x2, g1, g2, v1, v2], + outputs=[x1_new, x2_new, v1_new, v2_new], name='test_momentum_multiple', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + +
+nesterov_momentum + +```python +# Define operator attributes. +norm_coefficient = 0.01 +alpha = 0.95 +beta = 1.0 + +# Create operator. +node = onnx.helper.make_node('Momentum', + inputs=['R', 'T', 'X', 'G', 'V'], + outputs=['X_new', 'V_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + mode='nesterov', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar +x = np.array([1.2, 2.8], dtype=np.float32) +g = np.array([-0.94, -2.5], dtype=np.float32) +v = np.array([1.7, 3.6], dtype=np.float32) + +# Compute expected outputs of Momentum. +x_new, v_new = apply_nesterov(r, t, x, g, v, + norm_coefficient, alpha, beta) + +# Check results. +expect(node, inputs=[r, t, x, g, v], + outputs=[x_new, v_new], name='test_nesterov_momentum', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + diff --git a/third_party/onnx/docs/Overview.md b/third_party/onnx/docs/Overview.md new file mode 100644 index 000000000..c5062e763 --- /dev/null +++ b/third_party/onnx/docs/Overview.md @@ -0,0 +1,22 @@ + + +Overview +======== + +Deep learning with neural networks is accomplished through computation over dataflow graphs. Some frameworks (such as CNTK, Caffe2, Theano, and TensorFlow) make use of static graphs, while others (such as PyTorch and Chainer) use dynamic graphs. However, they all provide interfaces that make it simple for developers to construct computation graphs and runtimes that process the graphs in an optimized way. The graph serves as an Intermediate Representation (IR) that captures the specific intent of the developer's source code, and is conducive for optimization and translation to run on specific devices (CPU, GPU, FPGA, etc.). + +Why a common IR? +---------------- + +Today, each framework has its own proprietary representation of the graph, though they all provide similar capabilities – meaning each framework is a siloed stack of API, graph, and runtime. Furthermore, frameworks are typically optimized for some characteristic, such as fast training, supporting complicated network architectures, inference on mobile devices, etc. It's up to the developer to select a framework that is optimized for one of these characteristics. Additionally, these optimizations may be better suited for particular stages of development. This leads to significant delays between research and production due to the necessity of conversion. + +With the goal of democratizing AI, we envision empowering developers to select the framework that works best for their project, at any stage of development or deployment. The Open Neural Network Exchange (ONNX) format is a common IR to help establish this powerful ecosystem. + +By providing a common representation of the computation graph, ONNX helps developers choose the right framework for their task, allows authors to focus on innovative enhancements, and enables hardware vendors to streamline optimizations for their platforms. + +ONNX is designed to be an open format. We welcome contributions from the community and encourage everyone to adopt ONNX in their ecosystem. + +Why two variants? +----------------- + +The base definition of ONNX includes the necessary support for machine learning algorithms based on neural network technologies. ONNX-ML includes additional types and standard operators commonly used in classical machine learning algorithms. The two variants were created in order to explicitly recognize the desire for some frameworks to go beyond neural network algorithms in a standardized fashion, while allowing other frameworks to support only neural networks. diff --git a/third_party/onnx/docs/PythonAPIOverview.md b/third_party/onnx/docs/PythonAPIOverview.md new file mode 100644 index 000000000..78ce4d438 --- /dev/null +++ b/third_party/onnx/docs/PythonAPIOverview.md @@ -0,0 +1,412 @@ + + +# Python API Overview + +## Loading an ONNX Model +```python +import onnx + +# onnx_model is an in-memory ModelProto +onnx_model = onnx.load('path/to/the/model.onnx') +``` +Runnable IPython notebooks: +- [load_model.ipynb](/onnx/examples/load_model.ipynb) + +## Loading an ONNX Model with External Data + + +* [Default] If the external data is under the same directory of the model, simply use `onnx.load()` +```python +import onnx + +onnx_model = onnx.load('path/to/the/model.onnx') +``` + +* If the external data is under another directory, use `load_external_data_for_model()` to specify the directory path and load after using `onnx.load()` + +```python +import onnx +from onnx.external_data_helper import load_external_data_for_model + +onnx_model = onnx.load('path/to/the/model.onnx', load_external_data=False) +load_external_data_for_model(onnx_model, 'data/directory/path/') +# Then the onnx_model has loaded the external data from the specific directory +``` + +## Converting an ONNX Model to External Data +```python +from onnx.external_data_helper import convert_model_to_external_data + +# onnx_model is an in-memory ModelProto +onnx_model = ... +convert_model_to_external_data(onnx_model, all_tensors_to_one_file=True, location='filename', size_threshold=1024, convert_attribute=False) +# Then the onnx_model has converted raw data as external data +# Must be followed by save +``` + +## Saving an ONNX Model +```python +import onnx + +# onnx_model is an in-memory ModelProto +onnx_model = ... + +# Save the ONNX model +onnx.save(onnx_model, 'path/to/the/model.onnx') +``` +Runnable IPython notebooks: +- [save_model.ipynb](/onnx/examples/save_model.ipynb) + + +## Converting and Saving an ONNX Model to External Data +```python +import onnx + +# onnx_model is an in-memory ModelProto +onnx_model = ... +onnx.save_model(onnx_model, 'path/to/save/the/model.onnx', save_as_external_data=True, all_tensors_to_one_file=True, location='filename', size_threshold=1024, convert_attribute=False) +# Then the onnx_model has converted raw data as external data and saved to specific directory +``` + + +## Manipulating TensorProto and Numpy Array +```python +import numpy +import onnx +from onnx import numpy_helper + +# Preprocessing: create a Numpy array +numpy_array = numpy.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]], dtype=float) +print('Original Numpy array:\n{}\n'.format(numpy_array)) + +# Convert the Numpy array to a TensorProto +tensor = numpy_helper.from_array(numpy_array) +print('TensorProto:\n{}'.format(tensor)) + +# Convert the TensorProto to a Numpy array +new_array = numpy_helper.to_array(tensor) +print('After round trip, Numpy array:\n{}\n'.format(new_array)) + +# Save the TensorProto +with open('tensor.pb', 'wb') as f: + f.write(tensor.SerializeToString()) + +# Load a TensorProto +new_tensor = onnx.TensorProto() +with open('tensor.pb', 'rb') as f: + new_tensor.ParseFromString(f.read()) +print('After saving and loading, new TensorProto:\n{}'.format(new_tensor)) +``` +Runnable IPython notebooks: +- [np_array_tensorproto.ipynb](/onnx/examples/np_array_tensorproto.ipynb) + +## Creating an ONNX Model Using Helper Functions +```python +import onnx +from onnx import helper +from onnx import AttributeProto, TensorProto, GraphProto + + +# The protobuf definition can be found here: +# https://github.com/onnx/onnx/blob/main/onnx/onnx.proto + + +# Create one input (ValueInfoProto) +X = helper.make_tensor_value_info('X', TensorProto.FLOAT, [3, 2]) +pads = helper.make_tensor_value_info('pads', TensorProto.FLOAT, [1, 4]) + +value = helper.make_tensor_value_info('value', AttributeProto.FLOAT, [1]) + + +# Create one output (ValueInfoProto) +Y = helper.make_tensor_value_info('Y', TensorProto.FLOAT, [3, 4]) + +# Create a node (NodeProto) - This is based on Pad-11 +node_def = helper.make_node( + 'Pad', # name + ['X', 'pads', 'value'], # inputs + ['Y'], # outputs + mode='constant', # attributes +) + +# Create the graph (GraphProto) +graph_def = helper.make_graph( + [node_def], # nodes + 'test-model', # name + [X, pads, value], # inputs + [Y], # outputs +) + +# Create the model (ModelProto) +model_def = helper.make_model(graph_def, producer_name='onnx-example') + +print('The model is:\n{}'.format(model_def)) +onnx.checker.check_model(model_def) +print('The model is checked!') +``` +Runnable IPython notebooks: +- [make_model.ipynb](/onnx/examples/make_model.ipynb) +- [Protobufs.ipynb](/onnx/examples/Protobufs.ipynb) + +## Checking an ONNX Model +```python +import onnx + +# Preprocessing: load the ONNX model +model_path = 'path/to/the/model.onnx' +onnx_model = onnx.load(model_path) + +print('The model is:\n{}'.format(onnx_model)) + +# Check the model +try: + onnx.checker.check_model(onnx_model) +except onnx.checker.ValidationError as e: + print('The model is invalid: %s' % e) +else: + print('The model is valid!') +``` +Runnable IPython notebooks: +- [check_model.ipynb](/onnx/examples/check_model.ipynb) + +### Checking a Large ONNX Model >2GB +Current checker supports checking models with external data, but for those models larger than 2GB, please use the model path for onnx.checker and the external data needs to be under the same directory. + +```python +import onnx + +onnx.checker.check_model('path/to/the/model.onnx') +# onnx.checker.check_model(loaded_onnx_model) will fail if given >2GB model +``` + +## Running Shape Inference on an ONNX Model +```python +import onnx +from onnx import helper, shape_inference +from onnx import TensorProto + + +# Preprocessing: create a model with two nodes, Y's shape is unknown +node1 = helper.make_node('Transpose', ['X'], ['Y'], perm=[1, 0, 2]) +node2 = helper.make_node('Transpose', ['Y'], ['Z'], perm=[1, 0, 2]) + +graph = helper.make_graph( + [node1, node2], + 'two-transposes', + [helper.make_tensor_value_info('X', TensorProto.FLOAT, (2, 3, 4))], + [helper.make_tensor_value_info('Z', TensorProto.FLOAT, (2, 3, 4))], +) + +original_model = helper.make_model(graph, producer_name='onnx-examples') + +# Check the model and print Y's shape information +onnx.checker.check_model(original_model) +print('Before shape inference, the shape info of Y is:\n{}'.format(original_model.graph.value_info)) + +# Apply shape inference on the model +inferred_model = shape_inference.infer_shapes(original_model) + +# Check the model and print Y's shape information +onnx.checker.check_model(inferred_model) +print('After shape inference, the shape info of Y is:\n{}'.format(inferred_model.graph.value_info)) +``` +Runnable IPython notebooks: +- [shape_inference.ipynb](/onnx/examples/shape_inference.ipynb) + +### Shape inference a Large ONNX Model >2GB +Current shape_inference supports models with external data, but for those models larger than 2GB, please use the model path for onnx.shape_inference.infer_shapes_path and the external data needs to be under the same directory. You can specify the output path for saving the inferred model; otherwise, the default output path is same as the original model path. + +```python +import onnx + +# output the inferred model to the original model path +onnx.shape_inference.infer_shapes_path('path/to/the/model.onnx') + +# output the inferred model to the specified model path +onnx.shape_inference.infer_shapes_path('path/to/the/model.onnx', 'output/inferred/model.onnx') + +# inferred_model = onnx.shape_inference.infer_shapes(loaded_onnx_model) will fail if given >2GB model +``` + +## Converting Version of an ONNX Model within Default Domain (""/"ai.onnx") +```python +import onnx +from onnx import version_converter, helper + +# Preprocessing: load the model to be converted. +model_path = 'path/to/the/model.onnx' +original_model = onnx.load(model_path) + +print('The model before conversion:\n{}'.format(original_model)) + +# A full list of supported adapters can be found here: +# https://github.com/onnx/onnx/blob/main/onnx/version_converter.py#L21 +# Apply the version conversion on the original model +converted_model = version_converter.convert_version(original_model, ) + +print('The model after conversion:\n{}'.format(converted_model)) +``` + +## Utility Functions +### Extracting Sub-model with Inputs Outputs Tensor Names + +Function `extract_model()` extracts sub-model from an ONNX model. +The sub-model is defined by the names of the input and output tensors *exactly*. + +```python +import onnx + +input_path = 'path/to/the/original/model.onnx' +output_path = 'path/to/save/the/extracted/model.onnx' +input_names = ['input_0', 'input_1', 'input_2'] +output_names = ['output_0', 'output_1'] + +onnx.utils.extract_model(input_path, output_path, input_names, output_names) +``` + +Note: For control-flow operators, e.g. If and Loop, the _boundary of sub-model_, +which is defined by the input and output tensors, should not _cut through_ the +subgraph that is connected to the _main graph_ as attributes of these operators. + +### ONNX Compose + +`onnx.compose` module provides tools to create combined models. + +`onnx.compose.merge_models` can be used to merge two models, by connecting some of the outputs +from the first model with inputs from the second model. By default, inputs/outputs not present in the +`io_map` argument will remain as inputs/outputs of the combined model. + +In this example we merge two models by connecting each output of the first model to an input in the second. The resulting model will have the same inputs as the first model and the same outputs as the second: +```python +import onnx + +model1 = onnx.load('path/to/model1.onnx') +# agraph (float[N] A, float[N] B) => (float[N] C, float[N] D) +# { +# C = Add(A, B) +# D = Sub(A, B) +# } + +model2 = onnx.load('path/to/model2.onnx') +# agraph (float[N] X, float[N] Y) => (float[N] Z) +# { +# Z = Mul(X, Y) +# } + +combined_model = onnx.compose.merge_models( + model1, model2, + io_map=[('C', 'X'), ('D', 'Y')] +) +``` + +Additionally, a user can specify a list of `inputs`/`outputs` to be included in the combined model, +effectively dropping the part of the graph that doesn't contribute to the combined model outputs. +In the following example, we are connecting only one of the two outputs in the first model +to both inputs in the second. By specifying the outputs of the combined model explicitly, we are dropping the output not consumed from the first model, and the relevant part of the graph: +```python +import onnx + +# Default case. Include all outputs in the combined model +combined_model = onnx.compose.merge_models( + model1, model2, + io_map=[('C', 'X'), ('C', 'Y')], +) # outputs: 'D', 'Z' + +# Explicit outputs. 'Y' output and the Sub node are not present in the combined model +combined_model = onnx.compose.merge_models( + model1, model2, + io_map=[('C', 'X'), ('C', 'Y')], + outputs=['Z'], +) # outputs: 'Z' +``` + +`onnx.compose.add_prefix` allows you to add a prefix to names in the model, to avoid a name collision +when merging them. By default, it renames all names in the graph: inputs, outputs, edges, nodes, +initializers, sparse initializers and value infos. + +```python +import onnx + +model = onnx.load('path/to/the/model.onnx') +# model - outputs: ['out0', 'out1'], inputs: ['in0', 'in1'] + +new_model = onnx.compose.add_prefix(model, prefix='m1/') +# new_model - outputs: ['m1/out0', 'm1/out1'], inputs: ['m1/in0', 'm1/in1'] + +# Can also be run in-place +onnx.compose.add_prefix(model, prefix='m1/', inplace=True) +``` + +`onnx.compose.expand_out_dim` can be used to connect models that expect a different number + of dimensions by inserting dimensions with extent one. This can be useful, when combining a + model producing samples with a model that works with batches of samples. + +```python +import onnx + +# outputs: 'out0', shape=[200, 200, 3] +model1 = onnx.load('path/to/the/model1.onnx') + +# outputs: 'in0', shape=[N, 200, 200, 3] +model2 = onnx.load('path/to/the/model2.onnx') + +# outputs: 'out0', shape=[1, 200, 200, 3] +new_model1 = onnx.compose.expand_out_dims(model1, dim_idx=0) + +# Models can now be merged +combined_model = onnx.compose.merge_models( + new_model1, model2, io_map=[('out0', 'in0')] +) + +# Can also be run in-place +onnx.compose.expand_out_dims(model1, dim_idx=0, inplace=True) +``` + +## Tools +### Updating Model's Inputs Outputs Dimension Sizes with Variable Length +Function `update_inputs_outputs_dims` updates the dimension of the inputs and outputs of the model, +to the provided values in the parameter. You could provide both static and dynamic dimension size, +by using dim_param. For more information on static and dynamic dimension size, checkout [Tensor Shapes](IR.md#tensor-shapes). + +The function runs model checker after the input/output sizes are updated. +```python +import onnx +from onnx.tools import update_model_dims + +model = onnx.load('path/to/the/model.onnx') +# Here both 'seq', 'batch' and -1 are dynamic using dim_param. +variable_length_model = update_model_dims.update_inputs_outputs_dims(model, {'input_name': ['seq', 'batch', 3, -1]}, {'output_name': ['seq', 'batch', 1, -1]}) +``` + +## ONNX Parser + +Functions `onnx.parser.parse_model` and `onnx.parser.parse_graph` can be used to create an ONNX model +or graph from a textual representation as shown below. See [Language Syntax](Syntax.md) for more details +about the language syntax. + +```python +input = ''' + agraph (float[N, 128] X, float[128, 10] W, float[10] B) => (float[N, 10] C) + { + T = MatMul(X, W) + S = Add(T, B) + C = Softmax(S) + } +''' +graph = onnx.parser.parse_graph(input) + +input = ''' + < + ir_version: 7, + opset_import: ["" : 10] + > + agraph (float[N, 128] X, float[128, 10] W, float[10] B) => (float[N, 10] C) + { + T = MatMul(X, W) + S = Add(T, B) + C = Softmax(S) + } +''' +model = onnx.parser.parse_model(input) + +``` diff --git a/third_party/onnx/docs/Relicensing.md b/third_party/onnx/docs/Relicensing.md new file mode 100644 index 000000000..3a65903fb --- /dev/null +++ b/third_party/onnx/docs/Relicensing.md @@ -0,0 +1,11 @@ + + +# Relicensing MIT to Apache-2.0 + +The following copyright holders agree that all of their contributions originally submitted to this project under the MIT license are hereby relicensed to Apache-2.0, and are submitted pursuant to the Developer Certificate of Origin, version 1.1: + +Intel Corporation +Microsoft Corporation +NVIDIA Corporation +IBM Corporation +Facebook Inc. diff --git a/third_party/onnx/docs/ShapeInference.md b/third_party/onnx/docs/ShapeInference.md new file mode 100644 index 000000000..9c51e51e5 --- /dev/null +++ b/third_party/onnx/docs/ShapeInference.md @@ -0,0 +1,137 @@ + + +# ONNX Shape Inference + +ONNX provides an optional implementation of shape inference on ONNX +graphs. This implementation covers each of the core operators, as well +as provides an interface for extensibility. Therefore, you may choose +to invoke the existing shape inference functionality on your graphs, +or to define shape inference implementations to go along with your +custom operators (or both!). Shape inference functions are stored as a +member of the OpSchema objects. + +In ONNX 1.10 release, symbol generation and propagation along with shape +data propagation was added to ONNX graph level shape inference. +Detailed proposal is [here](proposals/SymbolicShapeInfProposal.md) + +## Background + +Please see this [section](IR.md#static-tensor-shapes) of IR.md for a review of static tensor shapes. +In particular, a static tensor shape (represented by a `TensorShapeProto`) is distinct from +a runtime tensor shape. This feature is commonly used when the exact runtime tensor shape is +not known statically (that is, at compile time). + +* A `Tensor` with an undefined `shape` field is used to represent a tensor of unknown rank. +* A `Tensor` with a defined `shape` represents a tensor of known rank. +* Each `Dimension` of a `TensorShapeProto` can have a known integer value +(represented by the `dim_value` field) or it can have an unknown value +represented by a symbolic identified (the `dim_param` field) or it +may have neither field defined (in which case it represents an anonymous +unknown value). + +## Invoking Shape Inference + +Shape inference can be invoked either via C++ or Python. The Python +API is described, with example, +[here](PythonAPIOverview.md#running-shape-inference-on-an-onnx-model). + +The C++ API consists of a single function + +``` +shape_inference::InferShapes( + ModelProto& m, + const ISchemaRegistry* schema_registry); +``` + +The first argument is a `ModelProto` to perform shape inference on, +which is annotated in-place with shape information. The second +argument is optional. + +## Limitations + +Shape inference is not guaranteed to be complete. In particular, some +dynamic behaviors block the flow of shape inference, for example a +Reshape to a dynamically-provide shape. Also, all operators are not +required to have a shape inference implementation. + +Shape inference works only with constants and simple variables. It +does not support arithmetic expressions containing variables. For +example, `Concat` on tensors of shapes `(5, 2)` and `(7, 2)` can be +inferred to produce a result of shape `(12, 2)`, but `Concat` on +tensors of shapes `(5, 2)` and `(N, 2)` will simply produce `(M, 2)`, +rather than containing a representation of `N+5`. Note that differing +unknown symbolic values will be propagated, so the `M` here represents +an unknown quantity that is the same as other occurrences of `M`. + +These limitations are a property of the current implementation, not +fundamental constraints - if you are in need of something more +advanced, do let us know! + +## Implementing Shape Inference For Operators + +You can add a shape inference function to your operator's Schema with + +``` +OpSchema& Opschema::TypeAndShapeInferenceFunction(InferenceFunction inferenceFunction); +``` + +`InferenceFunction` is defined in +[shape_inference.h](/onnx/defs/shape_inference.h), along with the core +interface struct `InferenceContext` and an assortment of helper +methods. `InferenceContext` is the core struct which is provided to +your inference function. It allows accessing information about the +operator's inputs, and also allows writing out inferred information. + +To see numerous examples, search for occurrences of +`TypeAndShapeInferenceFunction` in the codebase. One that is +relatively involved is the implementation for `Concat`, in +onnx/defs/tensor/defs.cc. + +Please note the following points when implementing the shape-inference method for +operators to avoid common errors: + +* Before accessing the `shape` of any input, the code must check that +the shape is available. If unavailable, it should be treated as a dynamic +tensor whose rank is unknown and handled appropriately. Usually, the +shape-inference logic is guarded by a call to `hasInputShape` or +`hasNInputShapes`. + +* Before accessing the `dim_value` or `dim_param` of any dimension, the +code must check if these fields have a value. In particular, the code must +handle the possibility that the dimension may not have a statically +known value. + +There are several utility functions in [shape_inference.h](/onnx/defs/shape_inference.h) +to handle various common situations. + +* Use `checkInputRank` for inputs that must have a fixed rank. (See the +inference for `RoiAlign` as an example.) + +* `unifyInputDim` and `unifyDim` and `updateOutputShape` can be used +when multiple input dims are expected to be the same, and when input +dimensions are propagated to specific output dimensions. (See the inference +for `RoiAlign` for an example.) + +* Overloaded operators `*` and `/` can be used on symbolic dimensions when output +dimensions are computed from input dimensions using arithmetic. (See the inference +for `SpaceToDepth` for an example.) + +These utilities handle missing shapes and dimensions safely. + +_Example_: Consider a simple matrix-multiplication op that expects inputs of shape +`[M,K]` and `[K,N]` and returns an output of shape `[M,N]`. This can be coded +up as below: +```cpp + // Check that input 0 has rank 2 (if its rank is known). + checkInputRank(ctx, 0, 2); + // Check that input 1 has rank 2 (if its rank is known). + checkInputRank(ctx, 1, 2); + Dim M, K, N; + // Check various dimensions, handling missing dimensions/shapes safely. + unifyInputDim(ctx, 0, 0, M); + unifyInputDim(ctx, 0, 1, K); + unifyInputDim(ctx, 1, 0, K); + unifyInputDim(ctx, 1, 1, N); + updateOutputShape(ctx, 0, {M. N}); +``` + diff --git a/third_party/onnx/docs/Syntax.md b/third_party/onnx/docs/Syntax.md new file mode 100644 index 000000000..3c11d1f55 --- /dev/null +++ b/third_party/onnx/docs/Syntax.md @@ -0,0 +1,77 @@ + + +Overview +======== + +This document describes a textual syntax for ONNX models, which is currently an experimental feature. +The syntax enables a compact and readable representation of ONNX models. It is motivated by a couple +of use-cases. One is to enable compact description of test-cases and its use in CI (both in the ONNX +repo as well as in other dependent repos such as ONNX-MLIR). The second is to help simplify the +definition of ONNX functions. Several of the existing function-definitions are verbose, and the +use of this syntax will lead to more compact, readable, and easier-to-maintain function definitions. +Efficient representation and efficient parsing of very large tensor-constants is *not* a goal. +Alternative methods should be used for that. + +The API +------- + +The key parser methods are the ```OnnxParser::Parse``` methods, used as below. + +```cpp + const char* code = R"ONNX( +< + ir_version: 7, + opset_import: [ "" : 10 ] +> +agraph (float[N, 128] X, float[128, 10] W, float[10] B) => (float[N, 10] C) +{ + T = MatMul(X, W) + S = Add(T, B) + C = Softmax(S) +} +)ONNX"; + + ModelProto model; + OnnxParser::Parse(model, code); + + checker::check_model(model); +``` + +See the [test-cases](../onnx/test/cpp/parser_test.cc) for more examples illustrating the API and syntax. + +The Syntax +---------- + +The grammar below describes the syntax: + +``` + id-list ::= id (',' id)* + tensor-dim ::= '?' | id | int-constant + tensor-dims ::= tensor-dim (',' tensor-dim)* + tensor-type ::= prim-type | prim-type '[' ']' | prim-type '[' tensor-dims ']' + type ::= tensor-type | 'seq' '(' type ')' | 'map' '(' prim-type ',' type ')' + | 'optional' '(' type ')' | 'sparse_tensor' '(' tensor-type ')' + value-info ::= type id + value-infos ::= value-info (',' value-info)* + value-info-list ::= '(' value-infos? ')' + prim-constants ::= prim-constant (',' prim-constant)* + tensor-constant ::= tensor-type (id)? ('=')? '{' prim-constants '}' + attr-ref ::= '@' id + single-attr-value ::= tensor-constant | graph | prim-constant | attr-ref + attr-value-list ::= '[' single-attr-value (',' single-attr-value)* ']' + attr-value ::= single-attr-value | attr-value-list + attr-type ::= ':' id + attr ::= id attr-type? '=' attr-value + attr-list ::= '<' attr (',' attr)* '>' + node ::= id-list? '=' qualified-id attr-list? '(' id-list? ')' + | id-list? '=' qualified-id '(' id-list? ')' attr-list + node-list ::= '{' node* '}' + graph ::= id value-info-list '=>' value-info-list node-list + other-data ::= id ':' value + other-data-list ::= '<' other-data (',' other-data)* '>' + fun-attr-list ::= '<' id-list '>' + fun-input-list ::= '(' id-list ')' + fun-output-list ::= '(' id-list ')' + function ::= other-data-list? id fun-attr-list? fun-input-list '=>' fun-output-list node-list + model ::= other-data-list? graph function* +``` diff --git a/third_party/onnx/docs/TestCoverage-ml.md b/third_party/onnx/docs/TestCoverage-ml.md new file mode 100644 index 000000000..1f4e2e004 --- /dev/null +++ b/third_party/onnx/docs/TestCoverage-ml.md @@ -0,0 +1,87 @@ + +# Test Coverage Report (ONNX-ML Operators) +## Outlines +* [Node Test Coverage](#node-test-coverage) +* [Model Test Coverage](#model-test-coverage) +* [Overall Test Coverage](#overall-test-coverage) +# Node Test Coverage +## Summary +Node tests have covered 0/18 (0.00%, 0 generators excluded) common operators. + +Node tests have covered 0/0 (N/A) experimental operators. + +* [Covered Common Operators](#covered-common-operators) +* [No Cover Common Operators](#no-cover-common-operators) +* [Covered Experimental Operators](#covered-experimental-operators) +* [No Cover Experimental Operators](#no-cover-experimental-operators) + +## 💚Covered Common Operators +
+ +## 💔No Cover Common Operators +### ArrayFeatureExtractor (call for test cases) + + +### Binarizer (call for test cases) + + +### CastMap (call for test cases) + + +### CategoryMapper (call for test cases) + + +### DictVectorizer (call for test cases) + + +### FeatureVectorizer (call for test cases) + + +### Imputer (call for test cases) + + +### LabelEncoder (call for test cases) + + +### LinearClassifier (call for test cases) + + +### LinearRegressor (call for test cases) + + +### Normalizer (call for test cases) + + +### OneHotEncoder (call for test cases) + + +### SVMClassifier (call for test cases) + + +### SVMRegressor (call for test cases) + + +### Scaler (call for test cases) + + +### TreeEnsembleClassifier (call for test cases) + + +### TreeEnsembleRegressor (call for test cases) + + +### ZipMap (call for test cases) + + +
+ +## 💚Covered Experimental Operators +
+ +## 💔No Cover Experimental Operators +
+ +# Model Test Coverage +No model tests present for selected domain +# Overall Test Coverage +## To be filled. diff --git a/third_party/onnx/docs/TestCoverage.md b/third_party/onnx/docs/TestCoverage.md new file mode 100644 index 000000000..34f116dad --- /dev/null +++ b/third_party/onnx/docs/TestCoverage.md @@ -0,0 +1,16718 @@ + +# Test Coverage Report (ONNX Core Operators) +## Outlines +* [Node Test Coverage](#node-test-coverage) +* [Model Test Coverage](#model-test-coverage) +* [Overall Test Coverage](#overall-test-coverage) +# Node Test Coverage +## Summary +Node tests have covered 156/171 (91.23%, 5 generators excluded) common operators. + +Node tests have covered 0/0 (N/A) experimental operators. + +* [Covered Common Operators](#covered-common-operators) +* [No Cover Common Operators](#no-cover-common-operators) +* [Covered Experimental Operators](#covered-experimental-operators) +* [No Cover Experimental Operators](#no-cover-experimental-operators) + +## 💚Covered Common Operators +### Abs +There are 1 test cases, listed as following: +
+abs + +```python +node = onnx.helper.make_node( + 'Abs', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = abs(x) + +expect(node, inputs=[x], outputs=[y], + name='test_abs') +``` + +
+ + +### Acos +There are 1 test cases, listed as following: +
+acos + +```python +node = onnx.helper.make_node( + 'Acos', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-0.5, 0, 0.5]).astype(np.float32) +y = np.arccos(x) +expect(node, inputs=[x], outputs=[y], + name='test_acos_example') + +x = np.random.rand(3, 4, 5).astype(np.float32) +y = np.arccos(x) +expect(node, inputs=[x], outputs=[y], + name='test_acos') +``` + +
+ + +### Acosh +There are 1 test cases, listed as following: +
+acosh + +```python +node = onnx.helper.make_node( + 'Acosh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([10, np.e, 1]).astype(np.float32) +y = np.arccosh(x) # expected output [2.99322295, 1.65745449, 0.] +expect(node, inputs=[x], outputs=[y], + name='test_acosh_example') + +x = np.random.uniform(1.0, 10.0, (3, 4, 5)).astype(np.float32) +y = np.arccosh(x) +expect(node, inputs=[x], outputs=[y], + name='test_acosh') +``` + +
+ + +### Adagrad +There are 2 test cases, listed as following: +
+adagrad + +```python +# Define operator attributes. +norm_coefficient = 0.001 +epsilon = 1e-5 +decay_factor = 0.1 + +# Create operator. +node = onnx.helper.make_node('Adagrad', + inputs=['R', 'T', 'X', 'G', 'H'], + outputs=['X_new', 'H_new'], + norm_coefficient=norm_coefficient, + epsilon=epsilon, + decay_factor=decay_factor, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar +x = np.array([1.0], dtype=np.float32) +g = np.array([-1.0], dtype=np.float32) +h = np.array([2.0], dtype=np.float32) + +# Compute expected outputs of Adagrad. +x_new, h_new = apply_adagrad(r, t, x, g, h, + norm_coefficient, epsilon, decay_factor) + +# Check results. +expect(node, inputs=[r, t, x, g, h], + outputs=[x_new, h_new], name='test_adagrad', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+
+adagrad_multiple + +```python +# Define operator attributes. +norm_coefficient = 0.001 +epsilon = 1e-5 +decay_factor = 0.1 + +node = onnx.helper.make_node('Adagrad', + inputs=['R', 'T', 'X1', 'X2', + 'G1', 'G2', 'H1', 'H2'], + outputs=['X1_new', 'X2_new', + 'H1_new', 'H2_new'], + norm_coefficient=norm_coefficient, + epsilon=epsilon, + decay_factor=decay_factor, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar + +x1 = np.array([1.0], dtype=np.float32) +g1 = np.array([-1.0], dtype=np.float32) +h1 = np.array([2.0], dtype=np.float32) + +x2 = np.array([1.0, 2.0], dtype=np.float32) +g2 = np.array([-1.0, -3.0], dtype=np.float32) +h2 = np.array([4.0, 1.0], dtype=np.float32) + +# Compute expected outputs of Adagrad. +x1_new, h1_new = apply_adagrad(r, t, x1, g1, h1, + norm_coefficient, epsilon, decay_factor) +x2_new, h2_new = apply_adagrad(r, t, x2, g2, h2, + norm_coefficient, epsilon, decay_factor) + +# Check results. +expect(node, inputs=[r, t, x1, x2, g1, g2, h1, h2], + outputs=[x1_new, x2_new, h1_new, h2_new], name='test_adagrad_multiple', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + +### Adam +There are 2 test cases, listed as following: +
+adam + +```python +# Define operator attributes. +norm_coefficient = 0.001 +alpha = 0.95 +beta = 0.1 +epsilon = 1e-7 + +# Create operator. +node = onnx.helper.make_node('Adam', + inputs=['R', 'T', 'X', 'G', 'V', 'H'], + outputs=['X_new', 'V_new', 'H_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + epsilon=epsilon, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar +x = np.array([1.2, 2.8], dtype=np.float32) +g = np.array([-0.94, -2.5], dtype=np.float32) +v = np.array([1.7, 3.6], dtype=np.float32) +h = np.array([0.1, 0.1], dtype=np.float32) + +# Compute expected outputs of Adam. +x_new, v_new, h_new = apply_adam(r, t, x, g, v, h, + norm_coefficient, 0.0, alpha, beta, + epsilon) + +# Check results. +expect(node, inputs=[r, t, x, g, v, h], + outputs=[x_new, v_new, h_new], name='test_adam', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+
+adam_multiple + +```python +# Define operator attributes. +norm_coefficient = 0.001 +alpha = 0.95 +beta = 0.85 +epsilon = 1e-2 + +node = onnx.helper.make_node('Adam', + inputs=['R', 'T', 'X1', 'X2', + 'G1', 'G2', 'V1', 'V2', + 'H1', 'H2'], + outputs=['X1_new', 'X2_new', + 'V1_new', 'V2_new', + 'H1_new', 'H2_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar + +x1 = np.array([1.0], dtype=np.float32) +g1 = np.array([-1.0], dtype=np.float32) +v1 = np.array([2.0], dtype=np.float32) +h1 = np.array([0.5], dtype=np.float32) + +x2 = np.array([1.0, 2.0], dtype=np.float32) +g2 = np.array([-1.0, -3.0], dtype=np.float32) +v2 = np.array([4.0, 1.0], dtype=np.float32) +h2 = np.array([1.0, 10.0], dtype=np.float32) + +# Compute expected outputs of Adam. +x1_new, v1_new, h1_new = apply_adam(r, t, x1, g1, v1, h1, + norm_coefficient, 0.0, alpha, beta, + epsilon) +x2_new, v2_new, h2_new = apply_adam(r, t, x2, g2, v2, h2, + norm_coefficient, 0.0, alpha, beta, + epsilon) + +# Check results. +expect(node, inputs=[r, t, x1, x2, g1, g2, v1, v2, h1, h2], + outputs=[x1_new, x2_new, v1_new, v2_new, h1_new, h2_new], + name='test_adam_multiple', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + +### Add +There are 3 test cases, listed as following: +
+add + +```python +node = onnx.helper.make_node( + 'Add', + inputs=['x', 'y'], + outputs=['sum'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +expect(node, inputs=[x, y], outputs=[x + y], + name='test_add') +``` + +
+
+add_broadcast + +```python +node = onnx.helper.make_node( + 'Add', + inputs=['x', 'y'], + outputs=['sum'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +expect(node, inputs=[x, y], outputs=[x + y], + name='test_add_bcast') +``` + +
+
+add_uint8 + +```python +node = onnx.helper.make_node( + 'Add', + inputs=['x', 'y'], + outputs=['sum'], +) + +x = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) +y = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) +expect(node, inputs=[x, y], outputs=[x + y], + name='test_add_uint8') +``` + +
+ + +### And +There are 2 test cases, listed as following: +
+and + +```python +node = onnx.helper.make_node( + 'And', + inputs=['x', 'y'], + outputs=['and'], +) + +# 2d +x = (np.random.randn(3, 4) > 0).astype(bool) +y = (np.random.randn(3, 4) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and2d') + +# 3d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(3, 4, 5) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and3d') + +# 4d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and4d') +``` + +
+
+and_broadcast + +```python +node = onnx.helper.make_node( + 'And', + inputs=['x', 'y'], + outputs=['and'], +) + +# 3d vs 1d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(5) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast3v1d') + +# 3d vs 2d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(4, 5) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast3v2d') + +# 4d vs 2d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(5, 6) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast4v2d') + +# 4d vs 3d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(4, 5, 6) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast4v3d') + +# 4d vs 4d +x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool) +y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool) +z = np.logical_and(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast4v4d') +``` + +
+ + +### ArgMax +There are 8 test cases, listed as following: +
+default_axes_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + keepdims=keepdims) + +# result: [[1, 1]] +result = argmax_use_numpy(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [1, 3, 4] +result = argmax_use_numpy(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_random') +``` + +
+
+default_axes_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + keepdims=keepdims, + select_last_index=True) + +# result: [[1, 1]] +result = argmax_use_numpy_select_last_index(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [1, 3, 4] +result = argmax_use_numpy_select_last_index(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_random_select_last_index') +``` + +
+
+keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# result: [[0], [1]] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 1, 4] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_random') +``` + +
+
+keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1], [1]] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 1, 4] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_random_select_last_index') +``` + +
+
+negative_axis_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = -1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# result: [[0], [1]] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 3, 1] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_random') +``` + +
+
+negative_axis_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = -1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1], [1]] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 3, 1] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_random_select_last_index') +``` + +
+
+no_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 0 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# result: [0, 1] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 4] +result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_random') +``` + +
+
+no_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 0 +node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [1, 1] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 4] +result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_random_select_last_index') +``` + +
+ + +### ArgMin +There are 8 test cases, listed as following: +
+default_axes_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + keepdims=keepdims) + +# The content of result is : [[0], [0]] +result = argmin_use_numpy(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [1, 3, 4] +result = argmin_use_numpy(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_random') +``` + +
+
+default_axes_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + keepdims=keepdims, + select_last_index=True) + +# result: [[0, 0]] +result = argmin_use_numpy_select_last_index(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [1, 3, 4] +result = argmin_use_numpy_select_last_index(data, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_random_select_last_index') +``` + +
+
+keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# The content of result is : [[1], [0]] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 1, 4] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_random') +``` + +
+
+keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1], [0]] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 1, 4] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_random_select_last_index') +``` + +
+
+negative_axis_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = -1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# The content of result is : [[1], [0]] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 3, 1] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_random') +``` + +
+
+negative_axis_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = -1 +keepdims = 1 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1], [0]] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 3, 1] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_random_select_last_index') +``` + +
+
+no_keepdims + +```python +data = np.array([[2, 1], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 0 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) +# The content of result is : [[1, 0]] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_example') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 4] +result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_random') +``` + +
+
+no_keepdims_select_last_index + +```python +data = np.array([[2, 2], [3, 10]], dtype=np.float32) +axis = 1 +keepdims = 0 +node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) +# result: [[1, 0]] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_example_select_last_index') + +data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) +# result's shape: [2, 4] +result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) +expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_random_select_last_index') +``` + +
+ + +### Asin +There are 1 test cases, listed as following: +
+asin + +```python +node = onnx.helper.make_node( + 'Asin', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-0.5, 0, 0.5]).astype(np.float32) +y = np.arcsin(x) +expect(node, inputs=[x], outputs=[y], + name='test_asin_example') + +x = np.random.rand(3, 4, 5).astype(np.float32) +y = np.arcsin(x) +expect(node, inputs=[x], outputs=[y], + name='test_asin') +``` + +
+ + +### Asinh +There are 1 test cases, listed as following: +
+asinh + +```python +node = onnx.helper.make_node( + 'Asinh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.arcsinh(x) # expected output [-0.88137358, 0., 0.88137358] +expect(node, inputs=[x], outputs=[y], + name='test_asinh_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.arcsinh(x) +expect(node, inputs=[x], outputs=[y], + name='test_asinh') +``` + +
+ + +### Atan +There are 1 test cases, listed as following: +
+atan + +```python +node = onnx.helper.make_node( + 'Atan', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.arctan(x) +expect(node, inputs=[x], outputs=[y], + name='test_atan_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.arctan(x) +expect(node, inputs=[x], outputs=[y], + name='test_atan') +``` + +
+ + +### Atanh +There are 1 test cases, listed as following: +
+atanh + +```python +node = onnx.helper.make_node( + 'Atanh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-0.5, 0, 0.5]).astype(np.float32) +y = np.arctanh(x) # expected output [-0.54930615, 0., 0.54930615] +expect(node, inputs=[x], outputs=[y], + name='test_atanh_example') + +x = np.random.uniform(0.0, 1.0, (3, 4, 5)).astype(np.float32) +y = np.arctanh(x) +expect(node, inputs=[x], outputs=[y], + name='test_atanh') +``` + +
+ + +### AveragePool +There are 13 test cases, listed as following: +
+averagepool_1d_default + +```python +""" +input_shape: [1, 3, 32] +output_shape: [1, 3, 31] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2], +) +x = np.random.randn(1, 3, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = [2] +strides = [1] +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0], 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_1d_default') +``` + +
+
+averagepool_2d_ceil + +```python +""" +input_shape: [1, 1, 4, 4] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + ceil_mode=True +) +x = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]]).astype(np.float32) +y = np.array([[[ + [6, 7.5], + [12, 13.5]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_ceil') +``` + +
+
+averagepool_2d_default + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 31, 31] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_default') +``` + +
+
+averagepool_2d_pads + +```python +""" +input_shape: [1, 3, 28, 28] +output_shape: [1, 3, 30, 30] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[2, 2, 2, 2] +) +x = np.random.randn(1, 3, 28, 28).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (3, 3) +strides = (1, 1) +pad_bottom = 2 +pad_top = 2 +pad_right = 2 +pad_left = 2 +pad_shape = [pad_top + pad_bottom, pad_left + pad_right] +out_shape = get_output_shape('VALID', np.add(x_shape[2:], pad_shape), kernel_shape, strides) +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_pads') +``` + +
+
+averagepool_2d_pads_count_include_pad + +```python +""" +input_shape: [1, 3, 28, 28] +output_shape: [1, 3, 30, 30] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[2, 2, 2, 2], + count_include_pad=1, +) +x = np.random.randn(1, 3, 28, 28).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (3, 3) +strides = (1, 1) +pad_bottom = 2 +pad_top = 2 +pad_right = 2 +pad_left = 2 +pad_shape = [pad_top + pad_bottom, pad_left + pad_right] +out_shape = get_output_shape('VALID', np.add(x_shape[2:], pad_shape), kernel_shape, strides) +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=0) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG', count_include_pad=1) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_pads_count_include_pad') +``` + +
+
+averagepool_2d_precomputed_pads + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] + +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[7, 7.5, 8, 8.5, 9], + [9.5, 10, 10.5, 11, 11.5], + [12, 12.5, 13, 13.5, 14], + [14.5, 15, 15.5, 16, 16.5], + [17, 17.5, 18, 18.5, 19]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_pads') +``` + +
+
+averagepool_2d_precomputed_pads_count_include_pad + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2], + count_include_pad=1 +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[2.5200, 3.6000, 4.8000, 4.0800, 3.2400], + [4.5600, 6.4000, 8.4000, 7.0400, 5.5200], + [7.2000, 10.0000, 13.0000, 10.8000, 8.4000], + [6.9600, 9.6000, 12.4000, 10.2400, 7.9200], + [6.1200, 8.4000, 10.8000, 8.8800, 6.8400]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_pads_count_include_pad') +``` + +
+
+averagepool_2d_precomputed_same_upper + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 3, 3] +pad_shape: [2, 2] -> [1, 1, 1, 1] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + auto_pad='SAME_UPPER' +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[4, 5.5, 7], + [11.5, 13, 14.5], + [19, 20.5, 22]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_same_upper') +``` + +
+
+averagepool_2d_precomputed_strides + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[4, 6], + [14, 16]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_strides') +``` + +
+
+averagepool_2d_same_lower + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 32, 32] +pad_shape: [1, 1] -> [1, 0, 1, 0] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_LOWER' +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides) +pad_shape = get_pad_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides, out_shape) +pad_bottom = pad_shape[0] // 2 +pad_top = pad_shape[0] - pad_bottom +pad_right = pad_shape[1] // 2 +pad_left = pad_shape[1] - pad_right +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_same_lower') +``` + +
+
+averagepool_2d_same_upper + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 32, 32] +pad_shape: [1, 1] -> [0, 1, 0, 1] by axis +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_UPPER' +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides) +pad_shape = get_pad_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides, out_shape) +pad_top = pad_shape[0] // 2 +pad_bottom = pad_shape[0] - pad_top +pad_left = pad_shape[1] // 2 +pad_right = pad_shape[1] - pad_left +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_same_upper') +``` + +
+
+averagepool_2d_strides + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 10, 10] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + strides=[3, 3] +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (5, 5) +strides = (3, 3) +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_strides') +``` + +
+
+averagepool_3d_default + +```python +""" +input_shape: [1, 3, 32, 32, 32] +output_shape: [1, 3, 31, 31, 31] +""" +node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2, 2], +) +x = np.random.randn(1, 3, 32, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = [2, 2, 2] +strides = [1, 1, 1] +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0, 0, 0], 'AVG') + +expect(node, inputs=[x], outputs=[y], name='test_averagepool_3d_default') +``` + +
+ + +### BatchNormalization +There are 2 test cases, listed as following: +
+batchnormalization + +```python +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +mean = np.random.randn(3).astype(np.float32) +var = np.random.rand(3).astype(np.float32) +y = _batchnorm_test_mode(x, s, bias, mean, var).astype(np.float32) + +node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y'], +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias, mean, var], outputs=[y], + name='test_batchnorm_example') + +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +mean = np.random.randn(3).astype(np.float32) +var = np.random.rand(3).astype(np.float32) +epsilon = 1e-2 +y = _batchnorm_test_mode(x, s, bias, mean, var, epsilon).astype(np.float32) + +node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y'], + epsilon=epsilon, +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias, mean, var], outputs=[y], + name='test_batchnorm_epsilon') +``` + +
+
+train + +```python +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +mean = np.random.randn(3).astype(np.float32) +var = np.random.rand(3).astype(np.float32) +# using np.bool(1) while generating test data with "'bool' object has no attribute 'dtype'" +# working around by using np.byte(1).astype(bool) +training_mode = 1 +y, output_mean, output_var = _batchnorm_training_mode(x, s, bias, mean, var) + +node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y', 'output_mean', 'output_var'], + training_mode=training_mode +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias, mean, var], + outputs=[y, output_mean, output_var], + name='test_batchnorm_example_training_mode') + +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +mean = np.random.randn(3).astype(np.float32) +var = np.random.rand(3).astype(np.float32) +training_mode = 1 +momentum = 0.9 +epsilon = 1e-2 +y, output_mean, output_var = _batchnorm_training_mode(x, s, bias, mean, var, momentum, + epsilon) + +node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y', 'output_mean', 'output_var'], + epsilon=epsilon, + training_mode=training_mode +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias, mean, var], + outputs=[y, output_mean, output_var], + name='test_batchnorm_epsilon_training_mode') +``` + +
+ + +### Bernoulli +There are 3 test cases, listed as following: +
+bernoulli_with_dtype + +```python +node = onnx.helper.make_node( + 'Bernoulli', + inputs=['x'], + outputs=['y'], + dtype=onnx.TensorProto.DOUBLE, +) + +x = np.random.uniform(0.0, 1.0, 10).astype(np.float32) +y = bernoulli_reference_implementation(x, np.float64) +expect(node, inputs=[x], outputs=[y], name='test_bernoulli_double') +``` + +
+
+bernoulli_with_seed + +```python +seed = np.float(0) +node = onnx.helper.make_node( + 'Bernoulli', + inputs=['x'], + outputs=['y'], + seed=seed, +) + +x = np.random.uniform(0.0, 1.0, 10).astype(np.float32) +y = bernoulli_reference_implementation(x, np.float32) +expect(node, inputs=[x], outputs=[y], name='test_bernoulli_seed') +``` + +
+
+bernoulli_without_dtype + +```python +node = onnx.helper.make_node( + 'Bernoulli', + inputs=['x'], + outputs=['y'], +) + +x = np.random.uniform(0.0, 1.0, 10).astype(np.float) +y = bernoulli_reference_implementation(x, np.float) +expect(node, inputs=[x], outputs=[y], name='test_bernoulli') +``` + +
+ + +### BitShift +There are 8 test cases, listed as following: +
+left_unit16 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" +) + +x = np.array([16, 4, 1]).astype(np.uint16) +y = np.array([1, 2, 3]).astype(np.uint16) +z = x << y # expected output [32, 16, 8] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint16') +``` + +
+
+left_unit32 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" +) + +x = np.array([16, 4, 1]).astype(np.uint32) +y = np.array([1, 2, 3]).astype(np.uint32) +z = x << y # expected output [32, 16, 8] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint32') +``` + +
+
+left_unit64 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" +) + +x = np.array([16, 4, 1]).astype(np.uint64) +y = np.array([1, 2, 3]).astype(np.uint64) +z = x << y # expected output [32, 16, 8] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint64') +``` + +
+
+left_unit8 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" +) + +x = np.array([16, 4, 1]).astype(np.uint8) +y = np.array([1, 2, 3]).astype(np.uint8) +z = x << y # expected output [32, 16, 8] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint8') +``` + +
+
+right_unit16 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" +) + +x = np.array([16, 4, 1]).astype(np.uint16) +y = np.array([1, 2, 3]).astype(np.uint16) +z = x >> y # expected output [8, 1, 0] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint16') +``` + +
+
+right_unit32 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" +) + +x = np.array([16, 4, 1]).astype(np.uint32) +y = np.array([1, 2, 3]).astype(np.uint32) +z = x >> y # expected output [8, 1, 0] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint32') +``` + +
+
+right_unit64 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" +) + +x = np.array([16, 4, 1]).astype(np.uint64) +y = np.array([1, 2, 3]).astype(np.uint64) +z = x >> y # expected output [8, 1, 0] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint64') +``` + +
+
+right_unit8 + +```python +node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" +) + +x = np.array([16, 4, 1]).astype(np.uint8) +y = np.array([1, 2, 3]).astype(np.uint8) +z = x >> y # expected output [8, 1, 0] +expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint8') +``` + +
+ + +### Cast +There are 1 test cases, listed as following: +
+cast + +```python +shape = (3, 4) +test_cases = [ + ('FLOAT', 'FLOAT16'), + ('FLOAT', 'DOUBLE'), + ('FLOAT16', 'FLOAT'), + ('FLOAT16', 'DOUBLE'), + ('DOUBLE', 'FLOAT'), + ('DOUBLE', 'FLOAT16'), + ('FLOAT', 'STRING'), + ('STRING', 'FLOAT'), + ('FLOAT', 'BFLOAT16'), + ('BFLOAT16', 'FLOAT'), +] + +for from_type, to_type in test_cases: + input_type_proto = None + output_type_proto = None + if 'BFLOAT16' == from_type or 'BFLOAT16' == to_type: + np_fp32 = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.float32) + little_endisan = sys.byteorder == 'little' + np_uint16_view = np_fp32.view(dtype=np.uint16) + np_bfp16 = np_uint16_view[1::2] if little_endisan else np_uint16_view[0::2] + if 'BFLOAT16' == to_type: + assert from_type == 'FLOAT' + input = np_fp32.reshape([3, 4]) + output = np_bfp16.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), output.shape) + else: + assert to_type == 'FLOAT' + input = np_bfp16.reshape([3, 4]) + #convert bfloat to FLOAT + np_fp32_zeros = np.zeros((len(np_bfp16) * 2,), dtype=np.uint16) + if little_endisan: + np_fp32_zeros[1::2] = np_bfp16 + else: + np_fp32_zeros[0::2] = np_bfp16 + np_fp32_from_bfloat = np_fp32_zeros.view(dtype=np.float32) + output = np_fp32_from_bfloat.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), output.shape) + elif 'STRING' != from_type: + input = np.random.random_sample(shape).astype( + TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, from_type)]) + if ('STRING' == to_type): + # Converting input to str, then give it object dtype for generating script + ss = [] + for i in input.flatten(): + s = str(i).encode('utf-8') + su = s.decode('utf-8') + ss.append(su) + + output = np.array(ss).astype(object).reshape([3, 4]) + else: + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + else: + input = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.dtype(object)).reshape([3, 4]) + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + node = onnx.helper.make_node( + 'Cast', + inputs=['input'], + outputs=['output'], + to=getattr(TensorProto, to_type), + ) + if input_type_proto and output_type_proto: + expect(node, inputs=[input], outputs=[output], + name='test_cast_' + from_type + '_to_' + to_type, + input_type_protos=[input_type_proto], + output_type_protos=[output_type_proto]) + else: + expect(node, inputs=[input], outputs=[output], + name='test_cast_' + from_type + '_to_' + to_type) +``` + +
+ + +### CastLike +There are 1 test cases, listed as following: +
+castlike + +```python +shape = (3, 4) +test_cases = [ + ('FLOAT', 'FLOAT16'), + ('FLOAT', 'DOUBLE'), + ('FLOAT16', 'FLOAT'), + ('FLOAT16', 'DOUBLE'), + ('DOUBLE', 'FLOAT'), + ('DOUBLE', 'FLOAT16'), + ('FLOAT', 'STRING'), + ('STRING', 'FLOAT'), + ('FLOAT', 'BFLOAT16'), + ('BFLOAT16', 'FLOAT'), +] + +for from_type, to_type in test_cases: + input_type_proto = None + output_type_proto = None + if 'BFLOAT16' == from_type or 'BFLOAT16' == to_type: + np_fp32 = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.float32) + little_endisan = sys.byteorder == 'little' + np_uint16_view = np_fp32.view(dtype=np.uint16) + np_bfp16 = np_uint16_view[1::2] if little_endisan else np_uint16_view[0::2] + if 'BFLOAT16' == to_type: + assert from_type == 'FLOAT' + input = np_fp32.reshape([3, 4]) + output = np_bfp16.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), output.shape) + else: + assert to_type == 'FLOAT' + input = np_bfp16.reshape([3, 4]) + #convert bfloat to FLOAT + np_fp32_zeros = np.zeros((len(np_bfp16) * 2,), dtype=np.uint16) + if little_endisan: + np_fp32_zeros[1::2] = np_bfp16 + else: + np_fp32_zeros[0::2] = np_bfp16 + np_fp32_from_bfloat = np_fp32_zeros.view(dtype=np.float32) + output = np_fp32_from_bfloat.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), output.shape) + elif 'STRING' != from_type: + input = np.random.random_sample(shape).astype( + TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, from_type)]) + if ('STRING' == to_type): + # Converting input to str, then give it np.object dtype for generating script + ss = [] + for i in input.flatten(): + s = str(i).encode('utf-8') + su = s.decode('utf-8') + ss.append(su) + + output = np.array(ss).astype(np.object).reshape([3, 4]) + else: + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + else: + input = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.dtype(np.object)).reshape([3, 4]) + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + like = output.flatten()[0:1] + node = onnx.helper.make_node( + 'CastLike', + inputs=['input', 'like'], + outputs=['output'], + ) + if input_type_proto and output_type_proto: + expect(node, inputs=[input, like], outputs=[output], + name='test_castlike_' + from_type + '_to_' + to_type, + input_type_protos=[input_type_proto, output_type_proto], + output_type_protos=[output_type_proto]) + else: + expect(node, inputs=[input, like], outputs=[output], + name='test_castlike_' + from_type + '_to_' + to_type) +``` + +
+ + +### Ceil +There are 1 test cases, listed as following: +
+ceil + +```python +node = onnx.helper.make_node( + 'Ceil', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1.5, 1.2]).astype(np.float32) +y = np.ceil(x) # expected output [-1., 2.] +expect(node, inputs=[x], outputs=[y], + name='test_ceil_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.ceil(x) +expect(node, inputs=[x], outputs=[y], + name='test_ceil') +``` + +
+ + +### Celu +There are 1 test cases, listed as following: +
+celu + +```python +alpha = 2.0 +node = onnx.helper.make_node( + 'Celu', + inputs=['X'], + outputs=['Y'], + alpha=alpha, +) + +input_data = np.array([[[[0.8439683], [0.5665144], [0.05836735]], + [[0.02916367], [0.12964272], [0.5060197]], + [[0.79538304], [0.9411346], [0.9546573]]], + [[[0.17730942], [0.46192095], [0.26480448]], + [[0.6746842], [0.01665257], [0.62473077]], + [[0.9240844], [0.9722341], [0.11965699]]], + [[[0.41356155], [0.9129373], [0.59330076]], + [[0.81929934], [0.7862604], [0.11799799]], + [[0.69248444], [0.54119414], [0.07513223]]]], dtype=np.float32) + +# Calculate expected output data +positive_input = np.maximum(0, input_data) +negative_input = np.minimum(0, alpha * (np.exp(input_data / alpha) - 1)) +expected_output = positive_input + negative_input + +expect(node, inputs=[input_data], outputs=[expected_output], + name='test_celu') +``` + +
+ + +### Clip +There are 3 test cases, listed as following: +
+clip + +```python +node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min', 'max'], + outputs=['y'], +) + +x = np.array([-2, 0, 2]).astype(np.float32) +min_val = np.float32(-1) +max_val = np.float32(1) +y = np.clip(x, min_val, max_val) # expected output [-1., 0., 1.] +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, min_val, max_val) +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip') +node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min', 'max'], + outputs=['y'], +) + +min_val = np.float32(-5) +max_val = np.float32(5) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.array([-1, 0, 1]).astype(np.float32) +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_inbounds') + +x = np.array([-6, 0, 6]).astype(np.float32) +y = np.array([-5, 0, 5]).astype(np.float32) +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_outbounds') + +x = np.array([-1, 0, 6]).astype(np.float32) +y = np.array([-1, 0, 5]).astype(np.float32) +expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_splitbounds') +``` + +
+
+clip_default + +```python +node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min'], + outputs=['y'], +) +min_val = np.float32(0) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, min_val, np.inf) +expect(node, inputs=[x, min_val], outputs=[y], + name='test_clip_default_min') + +no_min = "" # optional input, not supplied +node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, 'max'], + outputs=['y'], +) +max_val = np.float32(0) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, -np.inf, max_val) +expect(node, inputs=[x, max_val], outputs=[y], + name='test_clip_default_max') + +no_max = "" # optional input, not supplied +node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, no_max], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.array([-1, 0, 1]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_clip_default_inbounds') +``` + +
+
+clip_default_int8 + +```python +node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min'], + outputs=['y'], +) +min_val = np.int8(0) +x = np.random.randn(3, 4, 5).astype(np.int8) +y = np.clip(x, min_val, np.iinfo(np.int8).max) +expect(node, inputs=[x, min_val], outputs=[y], + name='test_clip_default_int8_min') + +no_min = "" # optional input, not supplied +node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, 'max'], + outputs=['y'], +) +max_val = np.int8(0) +x = np.random.randn(3, 4, 5).astype(np.int8) +y = np.clip(x, np.iinfo(np.int8).min, max_val) +expect(node, inputs=[x, max_val], outputs=[y], + name='test_clip_default_int8_max') + +no_max = "" # optional input, not supplied +node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, no_max], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.int8) +y = np.array([-1, 0, 1]).astype(np.int8) +expect(node, inputs=[x], outputs=[y], + name='test_clip_default_int8_inbounds') +``` + +
+ + +### Compress +There are 4 test cases, listed as following: +
+compress_0 + +```python +node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + axis=0, +) +input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) +condition = np.array([0, 1, 1]) +output = np.compress(condition, input, axis=0) +#print(output) +#[[ 3. 4.] +# [ 5. 6.]] + +expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_0') +``` + +
+
+compress_1 + +```python +node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + axis=1, +) +input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) +condition = np.array([0, 1]) +output = np.compress(condition, input, axis=1) +#print(output) +#[[ 2.] +# [ 4.] +# [ 6.]] + +expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_1') +``` + +
+
+compress_default_axis + +```python +node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], +) +input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) +condition = np.array([0, 1, 0, 0, 1]) +output = np.compress(condition, input) +#print(output) +#[ 2., 5.] + +expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_default_axis') +``` + +
+
+compress_negative_axis + +```python +node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + axis=-1, +) +input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) +condition = np.array([0, 1]) +output = np.compress(condition, input, axis=-1) +# print(output) +#[[ 2.] +# [ 4.] +# [ 6.]] +expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_negative_axis') +``` + +
+ + +### Concat +There are 1 test cases, listed as following: +
+concat + +```python +test_cases: Dict[Text, Sequence[Any]] = { + '1d': ([1, 2], + [3, 4]), + '2d': ([[1, 2], [3, 4]], + [[5, 6], [7, 8]]), + '3d': ([[[1, 2], [3, 4]], [[5, 6], [7, 8]]], + [[[9, 10], [11, 12]], [[13, 14], [15, 16]]]) +} + +for test_case, values_ in test_cases.items(): + values = [np.asarray(v, dtype=np.float32) for v in values_] + for i in range(len(values[0].shape)): + in_args = ['value' + str(k) for k in range(len(values))] + node = onnx.helper.make_node( + 'Concat', + inputs=[s for s in in_args], + outputs=['output'], + axis=i + ) + output = np.concatenate(values, i) + expect(node, inputs=[v for v in values], outputs=[output], + name='test_concat_' + test_case + '_axis_' + str(i)) + + for i in range(-len(values[0].shape), 0): + in_args = ['value' + str(k) for k in range(len(values))] + node = onnx.helper.make_node( + 'Concat', + inputs=[s for s in in_args], + outputs=['output'], + axis=i + ) + output = np.concatenate(values, i) + expect(node, inputs=[v for v in values], outputs=[output], + name='test_concat_' + test_case + '_axis_negative_' + str(abs(i))) +``` + +
+ + +### Constant +There are 1 test cases, listed as following: +
+constant + +```python +values = np.random.randn(5, 5).astype(np.float32) +node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['values'], + value=onnx.helper.make_tensor( + name='const_tensor', + data_type=onnx.TensorProto.FLOAT, + dims=values.shape, + vals=values.flatten().astype(float), + ), +) + +expect(node, inputs=[], outputs=[values], + name='test_constant') +``` + +
+ + +### ConstantOfShape +There are 3 test cases, listed as following: +
+float_ones + +```python +x = np.array([4, 3, 2]).astype(np.int64) +tensor_value = onnx.helper.make_tensor("value", onnx.TensorProto.FLOAT, + [1], [1]) +node = onnx.helper.make_node( + 'ConstantOfShape', + inputs=['x'], + outputs=['y'], + value=tensor_value, +) + +y = np.ones(x, dtype=np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_constantofshape_float_ones') +``` + +
+
+int32_shape_zero + +```python +x = np.array([0, ]).astype(np.int64) +tensor_value = onnx.helper.make_tensor("value", onnx.TensorProto.INT32, + [1], [0]) +node = onnx.helper.make_node( + 'ConstantOfShape', + inputs=['x'], + outputs=['y'], + value=tensor_value, +) +y = np.zeros(x, dtype=np.int32) +expect(node, inputs=[x], outputs=[y], + name='test_constantofshape_int_shape_zero') +``` + +
+
+int32_zeros + +```python +x = np.array([10, 6]).astype(np.int64) +tensor_value = onnx.helper.make_tensor("value", onnx.TensorProto.INT32, + [1], [0]) +node = onnx.helper.make_node( + 'ConstantOfShape', + inputs=['x'], + outputs=['y'], + value=tensor_value, +) +y = np.zeros(x, dtype=np.int32) +expect(node, inputs=[x], outputs=[y], + name='test_constantofshape_int_zeros') +``` + +
+ + +### Conv +There are 3 test cases, listed as following: +
+conv + +```python + +x = np.array([[[[0., 1., 2., 3., 4.], # (1, 1, 5, 5) input tensor + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.], + [20., 21., 22., 23., 24.]]]]).astype(np.float32) +W = np.array([[[[1., 1., 1.], # (1, 1, 3, 3) tensor for convolution weights + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +# Convolution with padding +node_with_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + # Default values for other attributes: strides=[1, 1], dilations=[1, 1], groups=1 + pads=[1, 1, 1, 1], +) +y_with_padding = np.array([[[[12., 21., 27., 33., 24.], # (1, 1, 5, 5) output tensor + [33., 54., 63., 72., 51.], + [63., 99., 108., 117., 81.], + [93., 144., 153., 162., 111.], + [72., 111., 117., 123., 84.]]]]).astype(np.float32) +expect(node_with_padding, inputs=[x, W], outputs=[y_with_padding], + name='test_basic_conv_with_padding') + +# Convolution without padding +node_without_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + # Default values for other attributes: strides=[1, 1], dilations=[1, 1], groups=1 + pads=[0, 0, 0, 0], +) +y_without_padding = np.array([[[[54., 63., 72.], # (1, 1, 3, 3) output tensor + [99., 108., 117.], + [144., 153., 162.]]]]).astype(np.float32) +expect(node_without_padding, inputs=[x, W], outputs=[y_without_padding], + name='test_basic_conv_without_padding') +``` + +
+
+conv_with_autopad_same + +```python + +x = np.array([[[[0., 1., 2., 3., 4.], # (1, 1, 5, 5) input tensor + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.], + [20., 21., 22., 23., 24.]]]]).astype(np.float32) +W = np.array([[[[1., 1., 1.], # (1, 1, 3, 3) tensor for convolution weights + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +# Convolution with auto_pad='SAME_LOWER' and strides=2 +node = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + auto_pad='SAME_LOWER', + kernel_shape=[3, 3], + strides=[2, 2], +) +y = np.array([[[[12., 27., 24.], + [63., 108., 81.], + [72., 117., 84.]]]]).astype(np.float32) +expect(node, inputs=[x, W], outputs=[y], + name='test_conv_with_autopad_same') +``` + +
+
+conv_with_strides + +```python + +x = np.array([[[[0., 1., 2., 3., 4.], # (1, 1, 7, 5) input tensor + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.], + [20., 21., 22., 23., 24.], + [25., 26., 27., 28., 29.], + [30., 31., 32., 33., 34.]]]]).astype(np.float32) +W = np.array([[[[1., 1., 1.], # (1, 1, 3, 3) tensor for convolution weights + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +# Convolution with strides=2 and padding +node_with_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[1, 1, 1, 1], + strides=[2, 2], # Default values for other attributes: dilations=[1, 1], groups=1 +) +y_with_padding = np.array([[[[12., 27., 24.], # (1, 1, 4, 3) output tensor + [63., 108., 81.], + [123., 198., 141.], + [112., 177., 124.]]]]).astype(np.float32) +expect(node_with_padding, inputs=[x, W], outputs=[y_with_padding], + name='test_conv_with_strides_padding') + +# Convolution with strides=2 and no padding +node_without_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[0, 0, 0, 0], + strides=[2, 2], # Default values for other attributes: dilations=[1, 1], groups=1 +) +y_without_padding = np.array([[[[54., 72.], # (1, 1, 3, 2) output tensor + [144., 162.], + [234., 252.]]]]).astype(np.float32) +expect(node_without_padding, inputs=[x, W], outputs=[y_without_padding], + name='test_conv_with_strides_no_padding') + +# Convolution with strides=2 and padding only along one dimension (the H dimension in NxCxHxW tensor) +node_with_asymmetric_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[1, 0, 1, 0], + strides=[2, 2], # Default values for other attributes: dilations=[1, 1], groups=1 +) +y_with_asymmetric_padding = np.array([[[[21., 33.], # (1, 1, 4, 2) output tensor + [99., 117.], + [189., 207.], + [171., 183.]]]]).astype(np.float32) +expect(node_with_asymmetric_padding, inputs=[x, W], outputs=[y_with_asymmetric_padding], + name='test_conv_with_strides_and_asymmetric_padding') +``` + +
+ + +### ConvInteger +There are 2 test cases, listed as following: +
+with_padding + +```python + +x = np.array([2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.uint8).reshape((1, 1, 3, 3)) +x_zero_point = np.uint8(1) +w = np.array([1, 1, 1, 1]).astype(np.uint8).reshape((1, 1, 2, 2)) + +y = np.array([1, 3, 5, 3, 5, 12, 16, 9, 11, 24, 28, 15, 7, 15, 17, 9]).astype(np.int32).reshape((1, 1, 4, 4)) + +# ConvInteger with padding +convinteger_node_with_padding = onnx.helper.make_node('ConvInteger', + inputs=['x', 'w', 'x_zero_point'], + outputs=['y'], + pads=[1, 1, 1, 1],) + +expect(convinteger_node_with_padding, inputs=[x, w, x_zero_point], outputs=[y], + name='test_convinteger_with_padding') +``` + +
+
+without_padding + +```python + +x = np.array([2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.uint8).reshape((1, 1, 3, 3)) +x_zero_point = np.uint8(1) +w = np.array([1, 1, 1, 1]).astype(np.uint8).reshape((1, 1, 2, 2)) + +y = np.array([12, 16, 24, 28]).astype(np.int32).reshape(1, 1, 2, 2) + +# ConvInteger without padding +convinteger_node = onnx.helper.make_node('ConvInteger', + inputs=['x', 'w', 'x_zero_point'], + outputs=['y']) + +expect(convinteger_node, inputs=[x, w, x_zero_point], outputs=[y], + name='test_convinteger_without_padding') +``` + +
+ + +### ConvTranspose +There are 7 test cases, listed as following: +
+convtranspose + +```python +x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + +W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"]) + +y = np.array([[[[0., 1., 3., 3., 2.], # (1, 2, 5, 5) + [3., 8., 15., 12., 7.], + [9., 21., 36., 27., 15.], + [9., 20., 33., 24., 13.], + [6., 13., 21., 15., 8.]], + + [[0., 1., 3., 3., 2.], + [3., 8., 15., 12., 7.], + [9., 21., 36., 27., 15.], + [9., 20., 33., 24., 13.], + [6., 13., 21., 15., 8.]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose') +``` + +
+
+convtranspose_1d + +```python +x = np.array([[[0., 1., 2.]]]).astype(np.float32) # (1, 1, 3) + +W = np.array([[[1., 1., 1.], # (1, 2, 3) + [1., 1., 1.]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"]) + +y = np.array([[[0., 1., 3., 3., 2.], # (1, 2, 5) + [0., 1., 3., 3., 2.]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_1d') +``` + +
+
+convtranspose_3d + +```python +x = np.array([[[[[0., 1., 2., 3., 4.], # (1, 1, 3, 4, 5) + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.]], + [[20., 21., 22., 23., 24.], + [25., 26., 27., 28., 29.], + [30., 31., 32., 33., 34.], + [35., 36., 37., 38., 39.]], + [[40., 41., 42., 43., 44.], + [45., 46., 47., 48., 49.], + [50., 51., 52., 53., 54.], + [55., 56., 57., 58., 59.]]]]]).astype(np.float32) + +W = np.array([[[[[1., 1., 1.], # (1, 2, 3, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]], + [[[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"]) + +y = np.array([[[[[0., 1., 3., 6., 9., 7., 4.], # (1, 2, 5, 6, 7) + [5., 12., 21., 27., 33., 24., 13.], + [15., 33., 54., 63., 72., 51., 27.], + [30., 63., 99., 108., 117., 81., 42.], + [25., 52., 81., 87., 93., 64., 33.], + [15., 31., 48., 51., 54., 37., 19.]], + + [[20., 42., 66., 72., 78., 54., 28.], + [50., 104., 162., 174., 186., 128., 66.], + [90., 186., 288., 306., 324., 222., 114.], + [120., 246., 378., 396., 414., 282., 144.], + [90., 184., 282., 294., 306., 208., 106.], + [50., 102., 156., 162., 168., 114., 58.]], + + [[60., 123., 189., 198., 207., 141., 72.], + [135., 276., 423., 441., 459., 312., 159.], + [225., 459., 702., 729., 756., 513., 261.], + [270., 549., 837., 864., 891., 603., 306.], + [195., 396., 603., 621., 639., 432., 219.], + [105., 213., 324., 333., 342., 231., 117.]], + + [[60., 122., 186., 192., 198., 134., 68.], + [130., 264., 402., 414., 426., 288., 146.], + [210., 426., 648., 666., 684., 462., 234.], + [240., 486., 738., 756., 774., 522., 264.], + [170., 344., 522., 534., 546., 368., 186.], + [90., 182., 276., 282., 288., 194., 98.]], + + [[40., 81., 123., 126., 129., 87., 44.], + [85., 172., 261., 267., 273., 184., 93.], + [135., 273., 414., 423., 432., 291., 147.], + [150., 303., 459., 468., 477., 321., 162.], + [105., 212., 321., 327., 333., 224., 113.], + [55., 111., 168., 171., 174., 117., 59.]]], + + [[[0., 1., 3., 6., 9., 7., 4.], + [5., 12., 21., 27., 33., 24., 13.], + [15., 33., 54., 63., 72., 51., 27.], + [30., 63., 99., 108., 117., 81., 42.], + [25., 52., 81., 87., 93., 64., 33.], + [15., 31., 48., 51., 54., 37., 19.]], + + [[20., 42., 66., 72., 78., 54., 28.], + [50., 104., 162., 174., 186., 128., 66.], + [90., 186., 288., 306., 324., 222., 114.], + [120., 246., 378., 396., 414., 282., 144.], + [90., 184., 282., 294., 306., 208., 106.], + [50., 102., 156., 162., 168., 114., 58.]], + + [[60., 123., 189., 198., 207., 141., 72.], + [135., 276., 423., 441., 459., 312., 159.], + [225., 459., 702., 729., 756., 513., 261.], + [270., 549., 837., 864., 891., 603., 306.], + [195., 396., 603., 621., 639., 432., 219.], + [105., 213., 324., 333., 342., 231., 117.]], + + [[60., 122., 186., 192., 198., 134., 68.], + [130., 264., 402., 414., 426., 288., 146.], + [210., 426., 648., 666., 684., 462., 234.], + [240., 486., 738., 756., 774., 522., 264.], + [170., 344., 522., 534., 546., 368., 186.], + [90., 182., 276., 282., 288., 194., 98.]], + + [[40., 81., 123., 126., 129., 87., 44.], + [85., 172., 261., 267., 273., 184., 93.], + [135., 273., 414., 423., 432., 291., 147.], + [150., 303., 459., 468., 477., 321., 162.], + [105., 212., 321., 327., 333., 224., 113.], + [55., 111., 168., 171., 174., 117., 59.]]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_3d') +``` + +
+
+convtranspose_attributes + +```python +x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + +W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +y = np.array([[[[0., 0., 1., 1., 3., 2., 2., 0.], # (1, 2, 10, 8) + [0., 0., 1., 1., 3., 2., 2., 0.], + [0., 0., 1., 1., 3., 2., 2., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [0., 0., 0., 0., 0., 0., 0., 0.]], + + [[0., 0., 1., 1., 3., 2., 2., 0.], + [0., 0., 1., 1., 3., 2., 2., 0.], + [0., 0., 1., 1., 3., 2., 2., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [0., 0., 0., 0., 0., 0., 0., 0.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], + strides=[3, 2], + output_shape=[10, 8]) +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_output_shape') + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], + strides=[3, 2], + output_padding=[1, 1]) +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_pad') + +node = onnx.helper.make_node( + 'ConvTranspose', ['X', 'W'], ['Y'], + name='test', + strides=[3, 2], + output_shape=[10, 8], + kernel_shape=[3, 3], + output_padding=[1, 1] +) +expect(node, inputs=[x, W], outputs=[y], + name='test_convtranspose_kernel_shape') +``` + +
+
+convtranspose_autopad_same + +```python +x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + +W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], auto_pad="SAME_UPPER", strides=[2, 2]) + +y = np.array([[[[0., 0., 1., 1., 3., 2.], + [0., 0., 1., 1., 3., 2.], + [3., 3., 8., 5., 12., 7.], + [3., 3., 7., 4., 9., 5.], + [9., 9., 20., 11., 24., 13.], + [6., 6., 13., 7., 15., 8.]], + + [[0., 0., 1., 1., 3., 2.], + [0., 0., 1., 1., 3., 2.], + [3., 3., 8., 5., 12., 7.], + [3., 3., 7., 4., 9., 5.], + [9., 9., 20., 11., 24., 13.], + [6., 6., 13., 7., 15., 8.]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_autopad_same') +``` + +
+
+convtranspose_dilations + +```python +x = np.array([[[[3., 8., 1.], # (1, 1, 3, 3) + [9., 5., 7.], + [3., 2., 6.]]]]).astype(np.float32) +W = np.array([[[[7., 2.], # (1, 1, 2, 2) + [1., 9.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], dilations=[2, 2]) + +y = np.array([[[[21., 56., 13., 16., 2.], # [1, 1, 5, 5] + [63., 35., 67., 10., 14.], + [24., 22., 76., 76., 21.], + [9., 5., 88., 45., 63.], + [3., 2., 33., 18., 54.]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_dilations') +``` + +
+
+convtranspose_pads + +```python +x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + +W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + +node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], + strides=[3, 2], + pads=[1, 2, 1, 2]) + +y = np.array([[[[1., 1., 3.], # (1, 2, 7, 3) + [1., 1., 3.], + [7., 4., 9.], + [7., 4., 9.], + [7., 4., 9.], + [13., 7., 15.], + [13., 7., 15.]], + + [[1., 1., 3.], + [1., 1., 3.], + [7., 4., 9.], + [7., 4., 9.], + [7., 4., 9.], + [13., 7., 15.], + [13., 7., 15.]]]]).astype(np.float32) + +expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_pads') +``` + +
+ + +### Cos +There are 1 test cases, listed as following: +
+cos + +```python +node = onnx.helper.make_node( + 'Cos', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.cos(x) +expect(node, inputs=[x], outputs=[y], + name='test_cos_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.cos(x) +expect(node, inputs=[x], outputs=[y], + name='test_cos') +``` + +
+ + +### Cosh +There are 1 test cases, listed as following: +
+cosh + +```python +node = onnx.helper.make_node( + 'Cosh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.cosh(x) # expected output [1.54308069, 1., 1.54308069] +expect(node, inputs=[x], outputs=[y], + name='test_cosh_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.cosh(x) +expect(node, inputs=[x], outputs=[y], + name='test_cosh') +``` + +
+ + +### CumSum +There are 7 test cases, listed as following: +
+cumsum_1d + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'] +) +x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) +axis = np.int32(0) +y = np.array([1., 3., 6., 10., 15.]).astype(np.float64) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d') +``` + +
+
+cumsum_1d_exclusive + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + exclusive=1 +) +x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) +axis = np.int32(0) +y = np.array([0., 1., 3., 6., 10.]).astype(np.float64) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d_exclusive') +``` + +
+
+cumsum_1d_reverse + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + reverse=1 +) +x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) +axis = np.int32(0) +y = np.array([15., 14., 12., 9., 5.]).astype(np.float64) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d_reverse') +``` + +
+
+cumsum_1d_reverse_exclusive + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + reverse=1, + exclusive=1 +) +x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) +axis = np.int32(0) +y = np.array([14., 12., 9., 5., 0.]).astype(np.float64) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d_reverse_exclusive') +``` + +
+
+cumsum_2d_axis_0 + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], +) +x = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float64).reshape((2, 3)) +axis = np.int32(0) +y = np.array([1., 2., 3., 5., 7., 9.]).astype(np.float64).reshape((2, 3)) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_2d_axis_0') +``` + +
+
+cumsum_2d_axis_1 + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], +) +x = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float64).reshape((2, 3)) +axis = np.int32(1) +y = np.array([1., 3., 6., 4., 9., 15.]).astype(np.float64).reshape((2, 3)) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_2d_axis_1') +``` + +
+
+cumsum_2d_negative_axis + +```python +node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], +) +x = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float64).reshape((2, 3)) +axis = np.int32(-1) +y = np.array([1., 3., 6., 4., 9., 15.]).astype(np.float64).reshape((2, 3)) +expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_2d_negative_axis') +``` + +
+ + +### DepthToSpace +There are 2 test cases, listed as following: +
+crd_mode_example + +```python +node = onnx.helper.make_node( + 'DepthToSpace', + inputs=['x'], + outputs=['y'], + blocksize=2, + mode='CRD' +) + +# (1, 8, 2, 3) input tensor +x = np.array([[[[0., 1., 2.], + [3., 4., 5.]], + [[9., 10., 11.], + [12., 13., 14.]], + [[18., 19., 20.], + [21., 22., 23.]], + [[27., 28., 29.], + [30., 31., 32.]], + [[36., 37., 38.], + [39., 40., 41.]], + [[45., 46., 47.], + [48., 49., 50.]], + [[54., 55., 56.], + [57., 58., 59.]], + [[63., 64., 65.], + [66., 67., 68.]]]]).astype(np.float32) + +# (1, 2, 4, 6) output tensor +y = np.array([[[[0., 9., 1., 10., 2., 11.], + [18., 27., 19., 28., 20., 29.], + [3., 12., 4., 13., 5., 14.], + [21., 30., 22., 31., 23., 32.]], + [[36., 45., 37., 46., 38., 47.], + [54., 63., 55., 64., 56., 65.], + [39., 48., 40., 49., 41., 50.], + [57., 66., 58., 67., 59., 68.]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_depthtospace_crd_mode_example') +``` + +
+
+default_mode_example + +```python +node = onnx.helper.make_node( + 'DepthToSpace', + inputs=['x'], + outputs=['y'], + blocksize=2, + mode='DCR' +) + +# (1, 8, 2, 3) input tensor +x = np.array([[[[0., 1., 2.], + [3., 4., 5.]], + [[9., 10., 11.], + [12., 13., 14.]], + [[18., 19., 20.], + [21., 22., 23.]], + [[27., 28., 29.], + [30., 31., 32.]], + [[36., 37., 38.], + [39., 40., 41.]], + [[45., 46., 47.], + [48., 49., 50.]], + [[54., 55., 56.], + [57., 58., 59.]], + [[63., 64., 65.], + [66., 67., 68.]]]]).astype(np.float32) + +# (1, 2, 4, 6) output tensor +y = np.array([[[[0., 18., 1., 19., 2., 20.], + [36., 54., 37., 55., 38., 56.], + [3., 21., 4., 22., 5., 23.], + [39., 57., 40., 58., 41., 59.]], + [[9., 27., 10., 28., 11., 29.], + [45., 63., 46., 64., 47., 65.], + [12., 30., 13., 31., 14., 32.], + [48., 66., 49., 67., 50., 68.]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_depthtospace_example') +``` + +
+ + +### DequantizeLinear +There are 2 test cases, listed as following: +
+axis + +```python +node = onnx.helper.make_node('DequantizeLinear', + inputs=['x', 'x_scale', 'x_zero_point'], + outputs=['y'],) + +# 1-D tensor zero point and scale of size equal to axis 1 of the input tensor +x = np.array([[[[3, 89], + [34, 200], + [74, 59]], + + [[5, 24], + [24, 87], + [32, 13]], + + [[245, 99], + [4, 142], + [121, 102]], ], ], dtype=np.uint8) +x_scale = np.array([2, 4, 5], dtype=np.float32) +x_zero_point = np.array([84, 24, 196], dtype=np.uint8) +y = (x.astype(np.float32) - x_zero_point.reshape(1, 3, 1, 1).astype(np.float32)) * x_scale.reshape(1, 3, 1, 1) + +expect(node, inputs=[x, x_scale, x_zero_point], outputs=[y], + name='test_dequantizelinear_axis') +``` + +
+
+dequantizelinear + +```python +node = onnx.helper.make_node('DequantizeLinear', + inputs=['x', 'x_scale', 'x_zero_point'], + outputs=['y'],) + +# scalar zero point and scale +x = np.array([0, 3, 128, 255]).astype(np.uint8) +x_scale = np.float32(2) +x_zero_point = np.uint8(128) +y = np.array([-256, -250, 0, 254], dtype=np.float32) + +expect(node, inputs=[x, x_scale, x_zero_point], outputs=[y], + name='test_dequantizelinear') +``` + +
+ + +### Det +There are 2 test cases, listed as following: +
+2d + +```python +node = onnx.helper.make_node( + 'Det', + inputs=['x'], + outputs=['y'], +) + +x = np.arange(4).reshape(2, 2).astype(np.float32) +y = np.linalg.det(x) # expect -2 +expect(node, inputs=[x], outputs=[y], + name='test_det_2d') +``` + +
+
+nd + +```python +node = onnx.helper.make_node( + 'Det', + inputs=['x'], + outputs=['y'], +) + +x = np.array([[[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]]]).astype(np.float32) +y = np.linalg.det(x) # expect array([-2., -3., -8.]) +expect(node, inputs=[x], outputs=[y], + name='test_det_nd') +``` + +
+ + +### Div +There are 2 test cases, listed as following: +
+div + +```python +node = onnx.helper.make_node( + 'Div', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([3, 4]).astype(np.float32) +y = np.array([1, 2]).astype(np.float32) +z = x / y # expected output [3., 2.] +expect(node, inputs=[x, y], outputs=[z], + name='test_div_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.rand(3, 4, 5).astype(np.float32) + 1.0 +z = x / y +expect(node, inputs=[x, y], outputs=[z], + name='test_div') + +x = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) +y = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) + 1 +z = x // y +expect(node, inputs=[x, y], outputs=[z], + name='test_div_uint8') +``` + +
+
+div_broadcast + +```python +node = onnx.helper.make_node( + 'Div', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.rand(5).astype(np.float32) + 1.0 +z = x / y +expect(node, inputs=[x, y], outputs=[z], + name='test_div_bcast') +``` + +
+ + +### Dropout +There are 12 test cases, listed as following: +
+default + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = dropout(x) +expect(node, inputs=[x], outputs=[y], name='test_dropout_default') +``` + +
+
+default_mask + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y', 'z'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y, z = dropout(x, return_mask=True) +expect(node, inputs=[x], outputs=[y, z], name='test_dropout_default_mask') +``` + +
+
+default_mask_ratio + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r'], + outputs=['y', 'z'], + seed=seed +) + +r = np.float32(0.1) +x = np.random.randn(3, 4, 5).astype(np.float32) +y, z = dropout(x, r, return_mask=True) +expect(node, inputs=[x, r], outputs=[y, z], name='test_dropout_default_mask_ratio') +``` + +
+
+default_old + +```python +node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = x +expect(node, inputs=[x], outputs=[y], + name='test_dropout_default_old', opset_imports=[helper.make_opsetid("", 11)]) +``` + +
+
+default_ratio + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r'], + outputs=['y'], + seed=seed +) + +r = np.float32(0.1) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = dropout(x, r) +expect(node, inputs=[x, r], outputs=[y], name='test_dropout_default_ratio') +``` + +
+
+random_old + +```python +node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y'], + ratio=.2, +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = x +expect(node, inputs=[x], outputs=[y], + name='test_dropout_random_old', opset_imports=[helper.make_opsetid("", 11)]) +``` + +
+
+training + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.75) +t = np.bool_(True) +y = dropout(x, r, training_mode=t) +expect(node, inputs=[x, r, t], outputs=[y], name='test_training_dropout') +``` + +
+
+training_default + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.5) +t = np.bool_(True) +y = dropout(x, r, training_mode=t) +expect(node, inputs=[x, r, t], outputs=[y], name='test_training_dropout_default') +``` + +
+
+training_default_ratio_mask + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y', 'z'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.5) +t = np.bool_(True) +y, z = dropout(x, r, training_mode=t, return_mask=True) +expect(node, inputs=[x, r, t], outputs=[y, z], name='test_training_dropout_default_mask') +``` + +
+
+training_default_zero_ratio + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.0) +t = np.bool_(True) +y = dropout(x, r, training_mode=t) +expect(node, inputs=[x, r, t], outputs=[y], name='test_training_dropout_zero_ratio') +``` + +
+
+training_default_zero_ratio_mask + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y', 'z'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.0) +t = np.bool_(True) +y, z = dropout(x, r, training_mode=t, return_mask=True) +expect(node, inputs=[x, r, t], outputs=[y, z], name='test_training_dropout_zero_ratio_mask') +``` + +
+
+training_ratio_mask + +```python +seed = np.int64(0) +node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y', 'z'], + seed=seed +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +r = np.float32(0.75) +t = np.bool_(True) +y, z = dropout(x, r, training_mode=t, return_mask=True) +expect(node, inputs=[x, r, t], outputs=[y, z], name='test_training_dropout_mask') +``` + +
+ + +### DynamicQuantizeLinear +There are 1 test cases, listed as following: +
+dynamicquantizelinear + +```python +node = onnx.helper.make_node('DynamicQuantizeLinear', + inputs=['x'], + outputs=['y', 'y_scale', 'y_zero_point'], +) + +# expected scale 0.0196078438 and zero point 153 +X = np.array([0, 2, -3, -2.5, 1.34, 0.5]).astype(np.float32) +x_min = np.minimum(0, np.min(X)) +x_max = np.maximum(0, np.max(X)) +Y_Scale = np.float32((x_max - x_min) / (255 - 0)) # uint8 -> [0, 255] +Y_ZeroPoint = np.clip(round((0 - x_min) / Y_Scale), 0, 255).astype(np.uint8) +Y = np.clip(np.round(X / Y_Scale) + Y_ZeroPoint, 0, 255).astype(np.uint8) + +expect(node, inputs=[X], outputs=[Y, Y_Scale, Y_ZeroPoint], + name='test_dynamicquantizelinear') + +# expected scale 0.0156862754 and zero point 255 +X = np.array([-1.0, -2.1, -1.3, -2.5, -3.34, -4.0]).astype(np.float32) +x_min = np.minimum(0, np.min(X)) +x_max = np.maximum(0, np.max(X)) +Y_Scale = np.float32((x_max - x_min) / (255 - 0)) # uint8 -> [0, 255] +Y_ZeroPoint = np.clip(round((0 - x_min) / Y_Scale), 0, 255).astype(np.uint8) +Y = np.clip(np.round(X / Y_Scale) + Y_ZeroPoint, 0, 255).astype(np.uint8) + +expect(node, inputs=[X], outputs=[Y, Y_Scale, Y_ZeroPoint], + name='test_dynamicquantizelinear_max_adjusted') + +X = np.array([1, 2.1, 1.3, 2.5, + 3.34, 4.0, 1.5, 2.6, + 3.9, 4.0, 3.0, 2.345]).astype(np.float32).reshape((3, 4)) + +# expected scale 0.0156862754 and zero point 0 +x_min = np.minimum(0, np.min(X)) +x_max = np.maximum(0, np.max(X)) +Y_Scale = np.float32((x_max - x_min) / (255 - 0)) # uint8 -> [0, 255] +Y_ZeroPoint = np.clip(round((0 - x_min) / Y_Scale), 0, 255).astype(np.uint8) +Y = np.clip(np.round(X / Y_Scale) + Y_ZeroPoint, 0, 255).astype(np.uint8) + +expect(node, inputs=[X], outputs=[Y, Y_Scale, Y_ZeroPoint], + name='test_dynamicquantizelinear_min_adjusted') +``` + +
+ + +### Einsum +There are 5 test cases, listed as following: +
+einsum_batch_diagonal + +```python +Eqn = '...ii ->...i' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x'], + outputs=['y'], + equation=Eqn +) + +X = np.random.randn(3, 5, 5) +Z = einsum_reference_implementation(Eqn, (X,)) + +expect(node, inputs=[X], outputs=[Z], name='test_einsum_batch_diagonal') +``` + +
+
+einsum_batch_matmul + +```python +Eqn = 'bij, bjk -> bik' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x', 'y'], + outputs=['z'], + equation=Eqn +) + +X = np.random.randn(5, 2, 3) +Y = np.random.randn(5, 3, 4) +Z = einsum_reference_implementation(Eqn, (X, Y)) + +expect(node, inputs=[X, Y], outputs=[Z], name='test_einsum_batch_matmul') +``` + +
+
+einsum_inner_prod + +```python +Eqn = 'i,i' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x', 'y'], + outputs=['z'], + equation=Eqn +) + +X = np.random.randn(5) +Y = np.random.randn(5) +Z = einsum_reference_implementation(Eqn, (X, Y)) + +expect(node, inputs=[X, Y], outputs=[Z], name='test_einsum_inner_prod') +``` + +
+
+einsum_sum + +```python +Eqn = 'ij->i' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x'], + outputs=['y'], + equation=Eqn +) + +X = np.random.randn(3, 4) +Z = einsum_reference_implementation(Eqn, (X,)) + +expect(node, inputs=[X], outputs=[Z], name='test_einsum_sum') +``` + +
+
+einsum_transpose + +```python +Eqn = 'ij->ji' +node = onnx.helper.make_node( + 'Einsum', + inputs=['x'], + outputs=['y'], + equation=Eqn +) + +X = np.random.randn(3, 4) +Y = einsum_reference_implementation(Eqn, (X,)) + +expect(node, inputs=[X], outputs=[Y], name='test_einsum_transpose') +``` + +
+ + +### Elu +There are 2 test cases, listed as following: +
+elu + +```python +node = onnx.helper.make_node( + 'Elu', + inputs=['x'], + outputs=['y'], + alpha=2.0 +) + +x = np.array([-1, 0, 1]).astype(np.float32) +# expected output [-1.2642411, 0., 1.] +y = np.clip(x, 0, np.inf) + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 +expect(node, inputs=[x], outputs=[y], + name='test_elu_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 +expect(node, inputs=[x], outputs=[y], + name='test_elu') +``` + +
+
+elu_default + +```python +default_alpha = 1.0 +node = onnx.helper.make_node( + 'Elu', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + (np.exp(np.clip(x, -np.inf, 0)) - 1) * default_alpha +expect(node, inputs=[x], outputs=[y], + name='test_elu_default') +``` + +
+ + +### Equal +There are 2 test cases, listed as following: +
+equal + +```python +node = onnx.helper.make_node( + 'Equal', + inputs=['x', 'y'], + outputs=['z'], +) + +x = (np.random.randn(3, 4, 5) * 10).astype(np.int32) +y = (np.random.randn(3, 4, 5) * 10).astype(np.int32) +z = np.equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_equal') +``` + +
+
+equal_broadcast + +```python +node = onnx.helper.make_node( + 'Equal', + inputs=['x', 'y'], + outputs=['z'], +) + +x = (np.random.randn(3, 4, 5) * 10).astype(np.int32) +y = (np.random.randn(5) * 10).astype(np.int32) +z = np.equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_equal_bcast') +``` + +
+ + +### Erf +There are 1 test cases, listed as following: +
+erf + +```python +node = onnx.helper.make_node( + 'Erf', + inputs=['x'], + outputs=['y'], +) + +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +y = np.vectorize(math.erf)(x).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_erf') +``` + +
+ + +### Exp +There are 1 test cases, listed as following: +
+exp + +```python +node = onnx.helper.make_node( + 'Exp', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.exp(x) # expected output [0.36787945, 1., 2.71828175] +expect(node, inputs=[x], outputs=[y], + name='test_exp_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.exp(x) +expect(node, inputs=[x], outputs=[y], + name='test_exp') +``` + +
+ + +### Expand +There are 2 test cases, listed as following: +
+dim_changed + +```python +node = onnx.helper.make_node( + 'Expand', + inputs=['data', 'new_shape'], + outputs=['expanded'], +) +shape = [3, 1] +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[1.], [2.], [3.]] +new_shape = [2, 1, 6] +expanded = data * np.ones(new_shape, dtype=np.float32) +#print(expanded) +#[[[1., 1., 1., 1., 1., 1.], +# [2., 2., 2., 2., 2., 2.], +# [3., 3., 3., 3., 3., 3.]], +# +# [[1., 1., 1., 1., 1., 1.], +# [2., 2., 2., 2., 2., 2.], +# [3., 3., 3., 3., 3., 3.]]] +new_shape = np.array(new_shape, dtype=np.int64) +expect(node, inputs=[data, new_shape], outputs=[expanded], + name='test_expand_dim_changed') +``` + +
+
+dim_unchanged + +```python +node = onnx.helper.make_node( + 'Expand', + inputs=['data', 'new_shape'], + outputs=['expanded'], +) +shape = [3, 1] +new_shape = [3, 4] +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[1.], [2.], [3.]] +expanded = np.tile(data, 4) +#print(expanded) +#[[1., 1., 1., 1.], +# [2., 2., 2., 2.], +# [3., 3., 3., 3.]] +new_shape = np.array(new_shape, dtype=np.int64) +expect(node, inputs=[data, new_shape], outputs=[expanded], + name='test_expand_dim_unchanged') +``` + +
+ + +### EyeLike +There are 3 test cases, listed as following: +
+populate_off_main_diagonal + +```python +shape = (4, 5) +off_diagonal_offset = 1 +node = onnx.helper.make_node( + 'EyeLike', + inputs=['x'], + outputs=['y'], + k=off_diagonal_offset, + dtype=onnx.TensorProto.FLOAT, +) + +x = np.random.randint(0, 100, size=shape, dtype=np.int32) +y = np.eye(shape[0], shape[1], k=off_diagonal_offset, dtype=np.float32) +expect(node, inputs=[x], outputs=[y], name='test_eyelike_populate_off_main_diagonal') +``` + +
+
+with_dtype + +```python +shape = (3, 4) +node = onnx.helper.make_node( + 'EyeLike', + inputs=['x'], + outputs=['y'], + dtype=onnx.TensorProto.DOUBLE, +) + +x = np.random.randint(0, 100, size=shape, dtype=np.int32) +y = np.eye(shape[0], shape[1], dtype=np.float64) +expect(node, inputs=[x], outputs=[y], name='test_eyelike_with_dtype') +``` + +
+
+without_dtype + +```python +shape = (4, 4) +node = onnx.helper.make_node( + 'EyeLike', + inputs=['x'], + outputs=['y'], +) + +x = np.random.randint(0, 100, size=shape, dtype=np.int32) +y = np.eye(shape[0], shape[1], dtype=np.int32) +expect(node, inputs=[x], outputs=[y], name='test_eyelike_without_dtype') +``` + +
+ + +### Flatten +There are 3 test cases, listed as following: +
+flatten + +```python +shape = (2, 3, 4, 5) +a = np.random.random_sample(shape).astype(np.float32) + +for i in range(len(shape)): + node = onnx.helper.make_node( + 'Flatten', + inputs=['a'], + outputs=['b'], + axis=i, + ) + + new_shape = (1, -1) if i == 0 else (np.prod(shape[0:i]).astype(int), -1) + b = np.reshape(a, new_shape) + expect(node, inputs=[a], outputs=[b], + name='test_flatten_axis' + str(i)) +``` + +
+
+flatten_negative_axis + +```python +shape = (2, 3, 4, 5) +a = np.random.random_sample(shape).astype(np.float32) + +for i in range(-len(shape), 0): + node = onnx.helper.make_node( + 'Flatten', + inputs=['a'], + outputs=['b'], + axis=i, + ) + + new_shape = (np.prod(shape[0:i]).astype(int), -1) + b = np.reshape(a, new_shape) + expect(node, inputs=[a], outputs=[b], + name='test_flatten_negative_axis' + str(abs(i))) +``` + +
+
+flatten_with_default_axis + +```python +node = onnx.helper.make_node( + 'Flatten', + inputs=['a'], + outputs=['b'], # Default value for axis: axis=1 +) + +shape = (5, 4, 3, 2) +a = np.random.random_sample(shape).astype(np.float32) +new_shape = (5, 24) +b = np.reshape(a, new_shape) +expect(node, inputs=[a], outputs=[b], + name='test_flatten_default_axis') +``` + +
+ + +### Floor +There are 1 test cases, listed as following: +
+floor + +```python +node = onnx.helper.make_node( + 'Floor', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1.5, 1.2, 2]).astype(np.float32) +y = np.floor(x) # expected output [-2., 1., 2.] +expect(node, inputs=[x], outputs=[y], + name='test_floor_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.floor(x) +expect(node, inputs=[x], outputs=[y], + name='test_floor') +``` + +
+ + +### GRU +There are 4 test cases, listed as following: +
+batchwise + +```python +input = np.array([[[1., 2.]], [[3., 4.]], [[5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 6 +number_of_gates = 3 +weight_scale = 0.2 +layout = 1 + +node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R'], + outputs=['Y', 'Y_h'], + hidden_size=hidden_size, + layout=layout +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +gru = GRU_Helper(X=input, W=W, R=R, layout=layout) +Y, Y_h = gru.step() +expect(node, inputs=[input, W, R], outputs=[Y.astype(np.float32), Y_h.astype(np.float32)], name='test_gru_batchwise') +``` + +
+
+defaults + +```python +input = np.array([[[1., 2.], [3., 4.], [5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 5 +weight_scale = 0.1 +number_of_gates = 3 + +node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +gru = GRU_Helper(X=input, W=W, R=R) +_, Y_h = gru.step() +expect(node, inputs=[input, W, R], outputs=[Y_h.astype(np.float32)], name='test_gru_defaults') +``` + +
+
+initial_bias + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 3 +weight_scale = 0.1 +custom_bias = 0.1 +number_of_gates = 3 + +node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +# Adding custom bias +W_B = custom_bias * np.ones((1, number_of_gates * hidden_size)).astype(np.float32) +R_B = np.zeros((1, number_of_gates * hidden_size)).astype(np.float32) +B = np.concatenate((W_B, R_B), axis=1) + +gru = GRU_Helper(X=input, W=W, R=R, B=B) +_, Y_h = gru.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_gru_with_initial_bias') +``` + +
+
+seq_length + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]], + [[10., 11., 12.], [13., 14., 15.], [16., 17., 18.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 5 +number_of_gates = 3 + +node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = np.random.randn(1, number_of_gates * hidden_size, input_size).astype(np.float32) +R = np.random.randn(1, number_of_gates * hidden_size, hidden_size).astype(np.float32) + +# Adding custom bias +W_B = np.random.randn(1, number_of_gates * hidden_size).astype(np.float32) +R_B = np.random.randn(1, number_of_gates * hidden_size).astype(np.float32) +B = np.concatenate((W_B, R_B), axis=1) + +gru = GRU_Helper(X=input, W=W, R=R, B=B) +_, Y_h = gru.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_gru_seq_length') +``` + +
+ + +### Gather +There are 4 test cases, listed as following: +
+gather_0 + +```python +node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=0, +) +data = np.random.randn(5, 4, 3, 2).astype(np.float32) +indices = np.array([0, 1, 3]) +y = np.take(data, indices, axis=0) + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_0') +``` + +
+
+gather_1 + +```python +node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=1, +) +data = np.random.randn(5, 4, 3, 2).astype(np.float32) +indices = np.array([0, 1, 3]) +y = np.take(data, indices, axis=1) + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_1') +``` + +
+
+gather_2d_indices + +```python +node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=1, +) +data = np.random.randn(3, 3).astype(np.float32) +indices = np.array([[0, 2]]) +y = np.take(data, indices, axis=1) + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_2d_indices') +``` + +
+
+gather_negative_indices + +```python +node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=0, +) +data = np.arange(10).astype(np.float32) +indices = np.array([0, -9, -10]) +y = np.take(data, indices, axis=0) + +# print(y) +# [0. 1. 0.] + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_negative_indices') +``` + +
+ + +### GatherElements +There are 3 test cases, listed as following: +
+gather_elements_0 + +```python +axis = 1 +node = onnx.helper.make_node( + 'GatherElements', + inputs=['data', 'indices'], + outputs=['y'], + axis=axis, +) +data = np.array([[1, 2], + [3, 4]], dtype=np.float32) +indices = np.array([[0, 0], + [1, 0]], dtype=np.int32) + +y = gather_elements(data, indices, axis) +# print(y) produces +# [[1, 1], +# [4, 3]] + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_elements_0') +``` + +
+
+gather_elements_1 + +```python +axis = 0 +node = onnx.helper.make_node( + 'GatherElements', + inputs=['data', 'indices'], + outputs=['y'], + axis=axis, +) +data = np.array([[1, 2, 3], + [4, 5, 6], + [7, 8, 9]], dtype=np.float32) +indices = np.array([[1, 2, 0], + [2, 0, 0]], dtype=np.int32) + +y = gather_elements(data, indices, axis) +# print(y) produces +# [[4, 8, 3], +# [7, 2, 3]] + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_elements_1') +``` + +
+
+gather_elements_negative_indices + +```python +axis = 0 +node = onnx.helper.make_node( + 'GatherElements', + inputs=['data', 'indices'], + outputs=['y'], + axis=axis, +) +data = np.array([[1, 2, 3], + [4, 5, 6], + [7, 8, 9]], dtype=np.float32) +indices = np.array([[-1, -2, 0], + [-2, 0, 0]], dtype=np.int32) + +y = gather_elements(data, indices, axis) +# print(y) produces +# [[7, 5, 3], +# [4, 2, 3]] + +expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_elements_negative_indices') +``` + +
+ + +### GatherND +There are 3 test cases, listed as following: +
+float32 + +```python +node = onnx.helper.make_node( + 'GatherND', + inputs=['data', 'indices'], + outputs=['output'], +) + +data = np.array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]], dtype=np.float32) +indices = np.array([[[0, 1]], [[1, 0]]], dtype=np.int64) +output = gather_nd_impl(data, indices, 0) +expected_output = np.array([[[2, 3]], [[4, 5]]], dtype=np.float32) +assert (np.array_equal(output, expected_output)) +expect(node, inputs=[data, indices], outputs=[output], + name='test_gathernd_example_float32') +``` + +
+
+int32 + +```python +node = onnx.helper.make_node( + 'GatherND', + inputs=['data', 'indices'], + outputs=['output'], +) + +data = np.array([[0, 1], [2, 3]], dtype=np.int32) +indices = np.array([[0, 0], [1, 1]], dtype=np.int64) +output = gather_nd_impl(data, indices, 0) +expected_output = np.array([0, 3], dtype=np.int32) +assert (np.array_equal(output, expected_output)) +expect(node, inputs=[data, indices], outputs=[output], + name='test_gathernd_example_int32') +``` + +
+
+int32_batchdim_1 + +```python +node = onnx.helper.make_node( + 'GatherND', + inputs=['data', 'indices'], + outputs=['output'], + batch_dims=1, +) + +data = np.array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]], dtype=np.int32) +indices = np.array([[1], [0]], dtype=np.int64) +output = gather_nd_impl(data, indices, 1) +expected_output = np.array([[2, 3], [4, 5]], dtype=np.int32) +assert (np.array_equal(output, expected_output)) +expect(node, inputs=[data, indices], outputs=[output], + name='test_gathernd_example_int32_batch_dim1') +``` + +
+ + +### Gemm +There are 11 test cases, listed as following: +
+all_attributes + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + alpha=0.25, + beta=0.35, + transA=1, + transB=1 +) +a = np.random.ranf([4, 3]).astype(np.float32) +b = np.random.ranf([5, 4]).astype(np.float32) +c = np.random.ranf([1, 5]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, transA=1, transB=1, alpha=0.25, beta=0.35) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_all_attributes') +``` + +
+
+alpha + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + alpha=0.5 +) +a = np.random.ranf([3, 5]).astype(np.float32) +b = np.random.ranf([5, 4]).astype(np.float32) +c = np.zeros([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, alpha=0.5) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_alpha') +``` + +
+
+beta + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + beta=0.5 +) +a = np.random.ranf([2, 7]).astype(np.float32) +b = np.random.ranf([7, 4]).astype(np.float32) +c = np.random.ranf([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, beta=0.5) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_beta') +``` + +
+
+default_matrix_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([3, 6]).astype(np.float32) +b = np.random.ranf([6, 4]).astype(np.float32) +c = np.random.ranf([3, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_matrix_bias') +``` + +
+
+default_no_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b'], + outputs=['y'] +) +a = np.random.ranf([2, 10]).astype(np.float32) +b = np.random.ranf([10, 3]).astype(np.float32) +y = gemm_reference_implementation(a, b) +expect(node, inputs=[a, b], outputs=[y], + name='test_gemm_default_no_bias') +``` + +
+
+default_scalar_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([2, 3]).astype(np.float32) +b = np.random.ranf([3, 4]).astype(np.float32) +c = np.array(3.14).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_scalar_bias') +``` + +
+
+default_single_elem_vector_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([3, 7]).astype(np.float32) +b = np.random.ranf([7, 3]).astype(np.float32) +c = np.random.ranf([1]).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_single_elem_vector_bias') +``` + +
+
+default_vector_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([2, 7]).astype(np.float32) +b = np.random.ranf([7, 4]).astype(np.float32) +c = np.random.ranf([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_vector_bias') +``` + +
+
+default_zero_bias + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] +) +a = np.random.ranf([3, 5]).astype(np.float32) +b = np.random.ranf([5, 4]).astype(np.float32) +c = np.zeros([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_zero_bias') +``` + +
+
+transposeA + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + transA=1 +) +a = np.random.ranf([6, 3]).astype(np.float32) +b = np.random.ranf([6, 4]).astype(np.float32) +c = np.zeros([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, transA=1) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_transposeA') +``` + +
+
+transposeB + +```python +node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + transB=1 +) +a = np.random.ranf([3, 6]).astype(np.float32) +b = np.random.ranf([4, 6]).astype(np.float32) +c = np.zeros([1, 4]).astype(np.float32) +y = gemm_reference_implementation(a, b, c, transB=1) +expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_transposeB') +``` + +
+ + +### GlobalAveragePool +There are 2 test cases, listed as following: +
+globalaveragepool + +```python +node = onnx.helper.make_node( + 'GlobalAveragePool', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(1, 3, 5, 5).astype(np.float32) +y = np.mean(x, axis=tuple(range(2, np.ndim(x))), keepdims=True) +expect(node, inputs=[x], outputs=[y], name='test_globalaveragepool') +``` + +
+
+globalaveragepool_precomputed + +```python + +node = onnx.helper.make_node( + 'GlobalAveragePool', + inputs=['x'], + outputs=['y'], +) +x = np.array([[[ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], +]]]).astype(np.float32) +y = np.array([[[[5]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], name='test_globalaveragepool_precomputed') +``` + +
+ + +### GlobalMaxPool +There are 2 test cases, listed as following: +
+globalmaxpool + +```python + +node = onnx.helper.make_node( + 'GlobalMaxPool', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(1, 3, 5, 5).astype(np.float32) +y = np.max(x, axis=tuple(range(2, np.ndim(x))), keepdims=True) +expect(node, inputs=[x], outputs=[y], name='test_globalmaxpool') +``` + +
+
+globalmaxpool_precomputed + +```python + +node = onnx.helper.make_node( + 'GlobalMaxPool', + inputs=['x'], + outputs=['y'], +) +x = np.array([[[ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], +]]]).astype(np.float32) +y = np.array([[[[9]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], name='test_globalmaxpool_precomputed') +``` + +
+ + +### Gradient +There are 2 test cases, listed as following: +
+gradient_scalar_add + +```python +add_node = onnx.helper.make_node('Add', + ['a', 'b'], ['c'], name='my_add') +gradient_node = onnx.helper.make_node( + 'Gradient', ['a', 'b'], + ['dc_da', 'dc_db'], name='my_gradient', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN, + xs=['a', 'b'], y='c') + +a = np.array(1.0).astype(np.float32) +b = np.array(2.0).astype(np.float32) +c = a + b +# dc / da = d(a+b) / da = 1 +dc_da = np.array(1).astype(np.float32) +# db / db = d(a+b) / db = 1 +dc_db = np.array(1).astype(np.float32) + +graph = onnx.helper.make_graph( + nodes=[add_node, gradient_node], + name='GradientOfAdd', + inputs=[ + onnx.helper.make_tensor_value_info('a', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('b', onnx.TensorProto.FLOAT, + [])], + outputs=[ + onnx.helper.make_tensor_value_info('c', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('dc_da', + onnx.TensorProto.FLOAT, []), + onnx.helper.make_tensor_value_info('dc_db', + onnx.TensorProto.FLOAT, [])]) +opsets = [ + onnx.helper.make_operatorsetid(ONNX_DOMAIN, 12), + onnx.helper.make_operatorsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)] +model = onnx.helper.make_model( + graph, + producer_name='backend-test', + opset_imports=opsets) +expect(model, inputs=[a, b], outputs=[c, dc_da, dc_db], + name='test_gradient_of_add') +``` + +
+
+gradient_scalar_add_and_mul + +```python +add_node = onnx.helper.make_node('Add', + ['a', 'b'], ['c'], name='my_add') +mul_node = onnx.helper.make_node('Mul', + ['c', 'a'], ['d'], name='my_mul') +gradient_node = onnx.helper.make_node( + 'Gradient', ['a', 'b'], + ['dd_da', 'dd_db'], name='my_gradient', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN, + xs=['a', 'b'], y='d') + +a = np.array(1.0).astype(np.float32) +b = np.array(2.0).astype(np.float32) +c = a + b +# d = a * c = a * (a + b) +d = a * c +# dd / da = d(a*a+a*b) / da = 2 * a + b +dd_da = (2 * a + b).astype(np.float32) +# dd / db = d(a*a+a*b) / db = a +dd_db = a + +graph = onnx.helper.make_graph( + nodes=[add_node, mul_node, gradient_node], + name='GradientOfTwoOperators', + inputs=[ + onnx.helper.make_tensor_value_info('a', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('b', onnx.TensorProto.FLOAT, + [])], + outputs=[ + onnx.helper.make_tensor_value_info('d', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('dd_da', + onnx.TensorProto.FLOAT, []), + onnx.helper.make_tensor_value_info('dd_db', + onnx.TensorProto.FLOAT, [])]) + +opsets = [ + onnx.helper.make_operatorsetid(ONNX_DOMAIN, 12), + onnx.helper.make_operatorsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)] +model = onnx.helper.make_model(graph, + producer_name='backend-test', + opset_imports=opsets) +expect(model, inputs=[a, b], outputs=[d, dd_da, dd_db], + name='test_gradient_of_add_and_mul') +``` + +
+ + +### Greater +There are 4 test cases, listed as following: +
+greater + +```python +node = onnx.helper.make_node( + 'Greater', + inputs=['x', 'y'], + outputs=['greater'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = np.greater(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_greater') +``` + +
+
+greater + +```python +node = onnx.helper.make_node( + 'GreaterOrEqual', + inputs=['x', 'y'], + outputs=['greater_equal'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = np.greater_equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_greater_equal') +``` + +
+
+greater_broadcast + +```python +node = onnx.helper.make_node( + 'Greater', + inputs=['x', 'y'], + outputs=['greater'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = np.greater(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_greater_bcast') +``` + +
+
+greater_broadcast + +```python +node = onnx.helper.make_node( + 'GreaterOrEqual', + inputs=['x', 'y'], + outputs=['greater_equal'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = np.greater_equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_greater_equal_bcast') +``` + +
+ + +### GridSample +There are 3 test cases, listed as following: +
+gridsample + +```python +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', + padding_mode='zeros', + align_corners=0, +) +# X shape, [N, C, H, W] - [1, 1, 4, 4] +X = np.array( + [ + [ + [ + [0., 1., 2., 3.], + [4., 5., 6., 7.], + [8., 9., 10., 11.], + [12., 13., 14., 15.] + ] + ] + ], + dtype=np.float32, +) +# Grid shape, [N, H_out, W_out, 2] - [1, 6, 6, 2] +Grid = np.array( + [ + [ + [ + [-1.0000, -1.0000], + [-0.6000, -1.0000], + [-0.2000, -1.0000], + [0.2000, -1.0000], + [0.6000, -1.0000], + [1.0000, -1.0000] + ], + [ + [-1.0000, -0.6000], + [-0.6000, -0.6000], + [-0.2000, -0.6000], + [0.2000, -0.6000], + [0.6000, -0.6000], + [1.0000, -0.6000] + ], + [ + [-1.0000, -0.2000], + [-0.6000, -0.2000], + [-0.2000, -0.2000], + [0.2000, -0.2000], + [0.6000, -0.2000], + [1.0000, -0.2000] + ], + [ + [-1.0000, 0.2000], + [-0.6000, 0.2000], + [-0.2000, 0.2000], + [0.2000, 0.2000], + [0.6000, 0.2000], + [1.0000, 0.2000] + ], + [ + [-1.0000, 0.6000], + [-0.6000, 0.6000], + [-0.2000, 0.6000], + [0.2000, 0.6000], + [0.6000, 0.6000], + [1.0000, 0.6000] + ], + [ + [-1.0000, 1.0000], + [-0.6000, 1.0000], + [-0.2000, 1.0000], + [0.2000, 1.0000], + [0.6000, 1.0000], + [1.0000, 1.0000] + ] + ] + ], + dtype=np.float32, +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 6, 6] +Y = np.array( + [ + [ + [ + [0.0000, 0.1500, 0.5500, 0.9500, 1.3500, 0.7500], + [0.6000, 1.5000, 2.3000, 3.1000, 3.9000, 2.1000], + [2.2000, 4.7000, 5.5000, 6.3000, 7.1000, 3.7000], + [3.8000, 7.9000, 8.7000, 9.5000, 10.3000, 5.3000], + [5.4000, 11.1000, 11.9000, 12.7000, 13.5000, 6.9000], + [3.0000, 6.1500, 6.5500, 6.9500, 7.3500, 3.7500] + ] + ] + ], + dtype=np.float32, +) +expect(node, inputs=[X, Grid], outputs=[Y], + name='test_gridsample') +``` + +
+
+gridsample_mode_aligncorners + +```python +# X shape, [N, C, H, W] - [1, 1, 3, 2] +X = np.array( + [ + [ + [ + [0., 1.], + [2., 3.], + [4., 5.] + ] + ] + ], + dtype=np.float32, +) +# Grid shape, [N, H_out, W_out, 2] - [1, 2, 4, 2] +Grid = np.array( + [ + [ + [ + [-1.0000, -1.0000], + [-0.5000, -0.5000], + [-0.2000, -0.2000], + [0.0000, 0.0000] + ], + + [ + [0.0000, 0.0000], + [-0.2000, -0.2000], + [0.5000, 0.5000], + [1.0000, 1.0000] + ] + ] + ], + dtype=np.float32, +) + +# setting mode = 'bilinear', default align_corners = 0 +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_bilinear = np.array( + [ + [ + [ + [0.0000, 0.5000, 1.7000, 2.5000], + [2.5000, 1.7000, 4.5000, 1.2500] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_bilinear], + name='test_gridsample_bilinear') + +# setting mode = 'bilinear', align_corners = 1 +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', + align_corners=1, +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_align_corners = np.array( + [ + [ + [ + [0.0000, 1.2500, 2.0000, 2.5000], + [2.5000, 2.0000, 3.7500, 5.0000] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_align_corners], + name='test_gridsample_aligncorners_true') + +# setting mode = 'nearest' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='nearest', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_nearest = np.array( + [ + [ + [ + [0., 0., 2., 2.], + [2., 2., 5., 0.] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_nearest], + name='test_gridsample_nearest') + +# setting mode = 'bicubic' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bicubic', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_bicubic = np.array( + [ + [ + [ + [-0.1406, 0.3828, 1.7556, 2.9688], + [2.9688, 1.7556, 5.1445, 1.3906] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_bicubic], + name='test_gridsample_bicubic') +``` + +
+
+gridsample_paddingmode + +```python +# X shape, [N, C, H, W] - [1, 1, 3, 2] +X = np.array( + [ + [ + [ + [0., 1.], + [2., 3.], + [4., 5.] + ] + ] + ], + dtype=np.float32, +) +# Grid shape, [N, H_out, W_out, 2] - [1, 2, 4, 2] +Grid = np.array( + [ + [ + [ + [-10.0000, -10.0000], + [-5.0000, -5.0000], + [-0.2000, -0.2000], + [10.0000, 10.0000] + ], + + [ + [10.0000, 10.0000], + [-0.2000, -0.2000], + [5.0000, 5.0000], + [10.0000, 10.0000] + ] + ] + ], + dtype=np.float32, +) + +# setting padding_mode = 'zeros' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + padding_mode='zeros', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_zeros = np.array( + [ + [ + [ + [0.0000, 0.0000, 1.7000, 0.0000], + [0.0000, 1.7000, 0.0000, 0.0000] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_zeros], + name='test_gridsample_zeros_padding') + +# setting padding_mode = 'border' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + padding_mode='border', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_border = np.array( + [ + [ + [ + [0.0000, 0.0000, 1.7000, 5.0000], + [5.0000, 1.7000, 5.0000, 5.0000] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_border], + name='test_gridsample_border_padding') + +# setting padding_mode = 'reflection' +node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + padding_mode='reflection', +) +# Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] +Y_reflection = np.array( + [ + [ + [ + [2.5000, 0.0000, 1.7000, 2.5000], + [2.5000, 1.7000, 5.0000, 2.5000] + ] + ] + ], + dtype=np.float32, +) + +expect(node, inputs=[X, Grid], outputs=[Y_reflection], + name='test_gridsample_reflection_padding') +``` + +
+ + +### HardSigmoid +There are 2 test cases, listed as following: +
+hardsigmoid + +```python +node = onnx.helper.make_node( + 'HardSigmoid', + inputs=['x'], + outputs=['y'], + alpha=0.5, + beta=0.6 +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.clip(x * 0.5 + 0.6, 0, 1) # expected output [0.1, 0.6, 1.] +expect(node, inputs=[x], outputs=[y], + name='test_hardsigmoid_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x * 0.5 + 0.6, 0, 1) +expect(node, inputs=[x], outputs=[y], + name='test_hardsigmoid') +``` + +
+
+hardsigmoid_default + +```python +default_alpha = 0.2 +default_beta = 0.5 +node = onnx.helper.make_node( + 'HardSigmoid', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x * default_alpha + default_beta, 0, 1) +expect(node, inputs=[x], outputs=[y], + name='test_hardsigmoid_default') +``` + +
+ + +### HardSwish +There are 1 test cases, listed as following: +
+hardswish + +```python +node = onnx.helper.make_node( + 'HardSwish', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = hardswish(x) + +expect(node, inputs=[x], outputs=[y], + name='test_hardswish') +``` + +
+ + +### Hardmax +There are 2 test cases, listed as following: +
+hardmax + +```python +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], +) + +x = np.array([[3, 0, 1, 2], [2, 5, 1, 0], [0, 1, 3, 2], + [0, 1, 2, 3]]).astype(np.float32) +# expect result: +# [[1. 0. 0. 0.] +# [0. 1. 0. 0.] +# [0. 0. 1. 0.] +# [0. 0. 0. 1.]] +y = hardmax(x) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_example') + +# For multiple occurrences of the maximal values, the first occurrence is selected for one-hot output +x = np.array([[3, 3, 3, 1]]).astype(np.float32) +# expect result: +# [[1, 0, 0, 0]] +y = hardmax(x) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_one_hot') +``` + +
+
+hardmax_axis + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=0, +) +y = hardmax(x, axis=0) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_axis_0') + +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=1, +) +y = hardmax(x, axis=1) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_axis_1') + +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=2, +) +y = hardmax(x, axis=2) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_axis_2') + +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=-1, +) +y = hardmax(x, axis=-1) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_negative_axis') + +# default axis is -1 +node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_hardmax_default_axis') +``` + +
+ + +### Identity +There are 3 test cases, listed as following: +
+identity + +```python +node = onnx.helper.make_node( + 'Identity', + inputs=['x'], + outputs=['y'], +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +expect(node, inputs=[data], outputs=[data], + name='test_identity') +``` + +
+
+identity_opt + +```python +ten_in_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) +seq_in_tp = onnx.helper.make_sequence_type_proto(ten_in_tp) +opt_in_tp = onnx.helper.make_optional_type_proto(seq_in_tp) + +identity_node = onnx.helper.make_node( + 'Identity', + inputs=['opt_in'], + outputs=['opt_out'] +) + +x = [np.array([1, 2, 3, 4, 5]).astype(np.float32)] + +expect(identity_node, inputs=[x], outputs=[x], name='test_identity_opt', + opset_imports=[onnx.helper.make_opsetid("", 16)], + input_type_protos=[opt_in_tp], + output_type_protos=[opt_in_tp]) +``` + +
+
+sequence + +```python +node = onnx.helper.make_node( + 'Identity', + inputs=['x'], + outputs=['y'], +) + +data = [ + np.array([[[ + [1, 2], + [3, 4], + ]]], dtype=np.float32), + np.array([[[ + [2, 3], + [1, 5], + ]]], dtype=np.float32)] + +expect(node, inputs=[data], outputs=[data], name='test_identity_sequence') +``` + +
+ + +### If +There are 3 test cases, listed as following: +
+if + +```python +# Given a bool scalar input cond. +# return constant tensor x if cond is True, otherwise return constant tensor y. + +then_out = onnx.helper.make_tensor_value_info('then_out', onnx.TensorProto.FLOAT, [5]) +else_out = onnx.helper.make_tensor_value_info('else_out', onnx.TensorProto.FLOAT, [5]) + +x = np.array([1, 2, 3, 4, 5]).astype(np.float32) +y = np.array([5, 4, 3, 2, 1]).astype(np.float32) + +then_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['then_out'], + value=onnx.numpy_helper.from_array(x) +) + +else_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['else_out'], + value=onnx.numpy_helper.from_array(y) +) + +then_body = onnx.helper.make_graph( + [then_const_node], + 'then_body', + [], + [then_out] +) + +else_body = onnx.helper.make_graph( + [else_const_node], + 'else_body', + [], + [else_out] +) + +if_node = onnx.helper.make_node( + 'If', + inputs=['cond'], + outputs=['res'], + then_branch=then_body, + else_branch=else_body +) + +cond = np.array(1).astype(bool) +res = x if cond else y +expect(if_node, inputs=[cond], outputs=[res], name='test_if', + opset_imports=[onnx.helper.make_opsetid("", 11)]) +``` + +
+
+if_optional + +```python +# Given a bool scalar input cond, return an empty optional sequence of +# tensor if True, return an optional sequence with value x +# (the input optional sequence) otherwise. + +ten_in_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) +seq_in_tp = onnx.helper.make_sequence_type_proto(ten_in_tp) + +then_out_tensor_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) +then_out_seq_tp = onnx.helper.make_sequence_type_proto(then_out_tensor_tp) +then_out_opt_tp = onnx.helper.make_optional_type_proto(then_out_seq_tp) +then_out = onnx.helper.make_value_info('optional_empty', then_out_opt_tp) + +else_out_tensor_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) +else_out_seq_tp = onnx.helper.make_sequence_type_proto(else_out_tensor_tp) +else_out_opt_tp = onnx.helper.make_optional_type_proto(else_out_seq_tp) +else_out = onnx.helper.make_value_info('else_opt', else_out_opt_tp) + +x = [np.array([1, 2, 3, 4, 5]).astype(np.float32)] +cond = np.array(0).astype(bool) +res = compute_if_outputs(x, cond) + +opt_empty_in = onnx.helper.make_node( + 'Optional', + inputs=[], + outputs=['optional_empty'], + type=seq_in_tp +) + +then_body = onnx.helper.make_graph( + [opt_empty_in], + 'then_body', + [], + [then_out] +) + +else_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.numpy_helper.from_array(x[0]) +) + +else_seq_node = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['x'], + outputs=['else_seq'] +) + +else_optional_seq_node = onnx.helper.make_node( + 'Optional', + inputs=['else_seq'], + outputs=['else_opt'] +) + +else_body = onnx.helper.make_graph( + [else_const_node, else_seq_node, else_optional_seq_node], + 'else_body', + [], + [else_out] +) + +if_node = onnx.helper.make_node( + 'If', + inputs=['cond'], + outputs=['sequence'], + then_branch=then_body, + else_branch=else_body +) + +expect(if_node, inputs=[cond], outputs=[res], name='test_if_opt', + output_type_protos=[else_out_opt_tp], + opset_imports=[onnx.helper.make_opsetid("", 16)]) +``` + +
+
+if_seq + +```python +# Given a bool scalar input cond. +# return constant sequence x if cond is True, otherwise return constant sequence y. + +then_out = onnx.helper.make_tensor_sequence_value_info('then_out', onnx.TensorProto.FLOAT, shape=[5]) +else_out = onnx.helper.make_tensor_sequence_value_info('else_out', onnx.TensorProto.FLOAT, shape=[5]) + +x = [np.array([1, 2, 3, 4, 5]).astype(np.float32)] +y = [np.array([5, 4, 3, 2, 1]).astype(np.float32)] + +then_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.numpy_helper.from_array(x[0]) +) + +then_seq_node = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['x'], + outputs=['then_out'] +) + +else_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['y'], + value=onnx.numpy_helper.from_array(y[0]) +) + +else_seq_node = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['y'], + outputs=['else_out'] +) + +then_body = onnx.helper.make_graph( + [then_const_node, then_seq_node], + 'then_body', + [], + [then_out] +) + +else_body = onnx.helper.make_graph( + [else_const_node, else_seq_node], + 'else_body', + [], + [else_out] +) + +if_node = onnx.helper.make_node( + 'If', + inputs=['cond'], + outputs=['res'], + then_branch=then_body, + else_branch=else_body +) + +cond = np.array(1).astype(bool) +res = x if cond else y +expect(if_node, inputs=[cond], outputs=[res], name='test_if_seq', + opset_imports=[onnx.helper.make_opsetid("", 13)]) +``` + +
+ + +### InstanceNormalization +There are 1 test cases, listed as following: +
+instancenormalization + +```python +def _instancenorm_test_mode(x, s, bias, epsilon=1e-5): # type: ignore + dims_x = len(x.shape) + axis = tuple(range(2, dims_x)) + mean = np.mean(x, axis=axis, keepdims=True) + var = np.var(x, axis=axis, keepdims=True) + dim_ones = (1,) * (dims_x - 2) + s = s.reshape(-1, *dim_ones) + bias = bias.reshape(-1, *dim_ones) + return s * (x - mean) / np.sqrt(var + epsilon) + bias + +# input size: (1, 2, 1, 3) +x = np.array([[[[-1, 0, 1]], [[2, 3, 4]]]]).astype(np.float32) +s = np.array([1.0, 1.5]).astype(np.float32) +bias = np.array([0, 1]).astype(np.float32) +y = _instancenorm_test_mode(x, s, bias).astype(np.float32) + +node = onnx.helper.make_node( + 'InstanceNormalization', + inputs=['x', 's', 'bias'], + outputs=['y'], +) + +# output size: (1, 2, 1, 3) +expect(node, inputs=[x, s, bias], outputs=[y], + name='test_instancenorm_example') + +# input size: (2, 3, 4, 5) +x = np.random.randn(2, 3, 4, 5).astype(np.float32) +s = np.random.randn(3).astype(np.float32) +bias = np.random.randn(3).astype(np.float32) +epsilon = 1e-2 +y = _instancenorm_test_mode(x, s, bias, epsilon).astype(np.float32) + +node = onnx.helper.make_node( + 'InstanceNormalization', + inputs=['x', 's', 'bias'], + outputs=['y'], + epsilon=epsilon, +) + +# output size: (2, 3, 4, 5) +expect(node, inputs=[x, s, bias], outputs=[y], + name='test_instancenorm_epsilon') +``` + +
+ + +### IsInf +There are 3 test cases, listed as following: +
+infinity + +```python +node = onnx.helper.make_node('IsInf', + inputs=['x'], + outputs=['y'], + ) + +x = np.array([-1.2, np.nan, np.inf, 2.8, np.NINF, np.inf], + dtype=np.float32) +y = np.isinf(x) +expect(node, inputs=[x], outputs=[y], name='test_isinf') +``` + +
+
+negative_infinity_only + +```python +node = onnx.helper.make_node('IsInf', + inputs=['x'], + outputs=['y'], + detect_positive=0 + ) + +x = np.array([-1.7, np.nan, np.inf, -3.6, np.NINF, np.inf], + dtype=np.float32) +y = np.isneginf(x) +expect(node, inputs=[x], outputs=[y], name='test_isinf_negative') +``` + +
+
+positive_infinity_only + +```python +node = onnx.helper.make_node('IsInf', + inputs=['x'], + outputs=['y'], + detect_negative=0 + ) + +x = np.array([-1.7, np.nan, np.inf, 3.6, np.NINF, np.inf], + dtype=np.float32) +y = np.isposinf(x) +expect(node, inputs=[x], outputs=[y], name='test_isinf_positive') +``` + +
+ + +### IsNaN +There are 1 test cases, listed as following: +
+isnan + +```python +node = onnx.helper.make_node( + 'IsNaN', + inputs=['x'], + outputs=['y'], +) + +x = np.array([3.0, np.nan, 4.0, np.nan], dtype=np.float32) +y = np.isnan(x) +expect(node, inputs=[x], outputs=[y], name='test_isnan') +``` + +
+ + +### LRN +There are 2 test cases, listed as following: +
+default + +```python +alpha = 0.0001 +beta = 0.75 +bias = 1.0 +nsize = 3 +node = onnx.helper.make_node( + 'LRN', + inputs=['x'], + outputs=['y'], + size=3 +) +x = np.random.randn(5, 5, 5, 5).astype(np.float32) +square_sum = np.zeros((5, 5, 5, 5)).astype(np.float32) +for n, c, h, w in np.ndindex(x.shape): + square_sum[n, c, h, w] = sum(x[n, + max(0, c - int(math.floor((nsize - 1) / 2))):min(5, c + int(math.ceil((nsize - 1) / 2)) + 1), + h, + w] ** 2) +y = x / ((bias + (alpha / nsize) * square_sum) ** beta) +expect(node, inputs=[x], outputs=[y], + name='test_lrn_default') +``` + +
+
+lrn + +```python +alpha = 0.0002 +beta = 0.5 +bias = 2.0 +nsize = 3 +node = onnx.helper.make_node( + 'LRN', + inputs=['x'], + outputs=['y'], + alpha=alpha, + beta=beta, + bias=bias, + size=nsize +) +x = np.random.randn(5, 5, 5, 5).astype(np.float32) +square_sum = np.zeros((5, 5, 5, 5)).astype(np.float32) +for n, c, h, w in np.ndindex(x.shape): + square_sum[n, c, h, w] = sum(x[n, + max(0, c - int(math.floor((nsize - 1) / 2))):min(5, c + int(math.ceil((nsize - 1) / 2)) + 1), + h, + w] ** 2) +y = x / ((bias + (alpha / nsize) * square_sum) ** beta) +expect(node, inputs=[x], outputs=[y], + name='test_lrn') +``` + +
+ + +### LSTM +There are 4 test cases, listed as following: +
+batchwise + +```python +input = np.array([[[1., 2.]], [[3., 4.]], [[5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 7 +weight_scale = 0.3 +number_of_gates = 4 +layout = 1 + +node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R'], + outputs=['Y', 'Y_h'], + hidden_size=hidden_size, + layout=layout +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +lstm = LSTM_Helper(X=input, W=W, R=R, layout=layout) +Y, Y_h = lstm.step() +expect(node, inputs=[input, W, R], outputs=[Y.astype(np.float32), Y_h.astype(np.float32)], name='test_lstm_batchwise') +``` + +
+
+defaults + +```python +input = np.array([[[1., 2.], [3., 4.], [5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 3 +weight_scale = 0.1 +number_of_gates = 4 + +node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +lstm = LSTM_Helper(X=input, W=W, R=R) +_, Y_h = lstm.step() +expect(node, inputs=[input, W, R], outputs=[Y_h.astype(np.float32)], name='test_lstm_defaults') +``` + +
+
+initial_bias + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 4 +weight_scale = 0.1 +custom_bias = 0.1 +number_of_gates = 4 + +node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + +# Adding custom bias +W_B = custom_bias * np.ones((1, number_of_gates * hidden_size)).astype(np.float32) +R_B = np.zeros((1, number_of_gates * hidden_size)).astype(np.float32) +B = np.concatenate((W_B, R_B), 1) + +lstm = LSTM_Helper(X=input, W=W, R=R, B=B) +_, Y_h = lstm.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_lstm_with_initial_bias') +``` + +
+
+peepholes + +```python +input = np.array([[[1., 2., 3., 4.], [5., 6., 7., 8.]]]).astype(np.float32) + +input_size = 4 +hidden_size = 3 +weight_scale = 0.1 +number_of_gates = 4 +number_of_peepholes = 3 + +node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R', 'B', 'sequence_lens', 'initial_h', 'initial_c', 'P'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +# Initializing Inputs +W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) +B = np.zeros((1, 2 * number_of_gates * hidden_size)).astype(np.float32) +seq_lens = np.repeat(input.shape[0], input.shape[1]).astype(np.int32) +init_h = np.zeros((1, input.shape[1], hidden_size)).astype(np.float32) +init_c = np.zeros((1, input.shape[1], hidden_size)).astype(np.float32) +P = weight_scale * np.ones((1, number_of_peepholes * hidden_size)).astype(np.float32) + +lstm = LSTM_Helper(X=input, W=W, R=R, B=B, P=P, initial_c=init_c, initial_h=init_h) +_, Y_h = lstm.step() +expect(node, inputs=[input, W, R, B, seq_lens, init_h, init_c, P], outputs=[Y_h.astype(np.float32)], + name='test_lstm_with_peepholes') +``` + +
+ + +### LayerNormalization +There are 4 test cases, listed as following: +
+d + +```python +X = np.random.randn(3, 4).astype(np.float32) + +def case(axis: int) -> None: + normalized_shape = calculate_normalized_shape(X.shape, axis) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + Y, mean, inv_std_dev = _layer_normalization(X, W, B, axis=axis) + + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'], + axis=axis, + ) + + if axis < 0: + name = f'test_layer_normalization_2d_axis_negative_{-axis}' + else: + name = f'test_layer_normalization_2d_axis{axis}' + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name=name) + +for i in range(len(X.shape)): + case(i) + case(i - len(X.shape)) +``` + +
+
+d_epsilon + +```python +X = np.random.randn(2, 3, 5).astype(np.float32) + +def case(axis: int) -> None: + normalized_shape = calculate_normalized_shape(X.shape, axis) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + Y, mean, inv_std_dev = _layer_normalization(X, W, B, axis) + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'], + axis=axis, + epsilon=1e-1 + ) + + if axis < 0: + name = f'test_layer_normalization_3d_axis_negative_{-axis}_epsilon' + else: + name = f'test_layer_normalization_3d_axis{axis}_epsilon' + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name=name) + +for i in range(len(X.shape)): + case(i) + case(i - len(X.shape)) +``` + +
+
+default_axis + +```python +X = np.random.randn(2, 3, 4, 5).astype(np.float32) + +# Default axis in LayerNormalization is -1. +normalized_shape = calculate_normalized_shape(X.shape, -1) +W = np.random.randn(*normalized_shape).astype(np.float32) +B = np.random.randn(*normalized_shape).astype(np.float32) +# Axis is default to -1 in the reference implementation. +Y, mean, inv_std_dev = _layer_normalization(X, W, B) + +# Not specifying axis attribute means -1. +node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'] +) + +expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name='test_layer_normalization_default_axis') +``` + +
+
+layernormalization + +```python +X = np.random.randn(2, 3, 4, 5).astype(np.float32) + +def case(axis: int) -> None: + normalized_shape = calculate_normalized_shape(X.shape, axis) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + Y, mean, inv_std_dev = _layer_normalization(X, W, B, axis) + + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'], + axis=axis, + ) + + if axis < 0: + name = f'test_layer_normalization_4d_axis_negative_{-axis}' + else: + name = f'test_layer_normalization_4d_axis{axis}' + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name=name) + +for i in range(len(X.shape)): + case(i) + case(i - len(X.shape)) +``` + +
+ + +### LeakyRelu +There are 2 test cases, listed as following: +
+leakyrelu + +```python +node = onnx.helper.make_node( + 'LeakyRelu', + inputs=['x'], + outputs=['y'], + alpha=0.1 +) + +x = np.array([-1, 0, 1]).astype(np.float32) +# expected output [-0.1, 0., 1.] +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * 0.1 +expect(node, inputs=[x], outputs=[y], + name='test_leakyrelu_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * 0.1 +expect(node, inputs=[x], outputs=[y], + name='test_leakyrelu') +``` + +
+
+leakyrelu_default + +```python +default_alpha = 0.01 +node = onnx.helper.make_node( + 'LeakyRelu', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * default_alpha +expect(node, inputs=[x], outputs=[y], + name='test_leakyrelu_default') +``` + +
+ + +### Less +There are 4 test cases, listed as following: +
+less + +```python +node = onnx.helper.make_node( + 'Less', + inputs=['x', 'y'], + outputs=['less'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = np.less(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_less') +``` + +
+
+less + +```python +node = onnx.helper.make_node( + 'LessOrEqual', + inputs=['x', 'y'], + outputs=['less_equal'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = np.less_equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_less_equal') +``` + +
+
+less_broadcast + +```python +node = onnx.helper.make_node( + 'Less', + inputs=['x', 'y'], + outputs=['less'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = np.less(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_less_bcast') +``` + +
+
+less_broadcast + +```python +node = onnx.helper.make_node( + 'LessOrEqual', + inputs=['x', 'y'], + outputs=['less_equal'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = np.less_equal(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_less_equal_bcast') +``` + +
+ + +### Log +There are 1 test cases, listed as following: +
+log + +```python +node = onnx.helper.make_node( + 'Log', + inputs=['x'], + outputs=['y'], +) + +x = np.array([1, 10]).astype(np.float32) +y = np.log(x) # expected output [0., 2.30258512] +expect(node, inputs=[x], outputs=[y], + name='test_log_example') + +x = np.exp(np.random.randn(3, 4, 5).astype(np.float32)) +y = np.log(x) +expect(node, inputs=[x], outputs=[y], + name='test_log') +``` + +
+ + +### LogSoftmax +There are 2 test cases, listed as following: +
+logsoftmax + +```python +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], +) +x = np.array([[-1, 0, 1]]).astype(np.float32) +# expected output +# [[-2.4076061 -1.407606 -0.407606 ]] +y = logsoftmax(x) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_example_1') +``` + +
+
+logsoftmax_axis + +```python +x = np.array([[0, 1, 2, 3], [10000, 10001, 10002, 10003]] + ).astype(np.float32) +# expected output +# [[-3.4401896 -2.4401896 -1.4401896 -0.44018966] +# [-3.4401896 -2.4401896 -1.4401896 -0.44018966]] +y = logsoftmax(x) + +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_large_number') + +x = np.abs(np.random.randn(3, 4, 5).astype(np.float32)) +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=0, +) +y = logsoftmax(x, axis=0) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_axis_0') + +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=1, +) +y = logsoftmax(x, axis=1) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_axis_1') + +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=2, +) +y = logsoftmax(x, axis=2) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_axis_2') + +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=-1, +) +y = logsoftmax(x, axis=-1) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_negative_axis') + +# default axis is -1 +node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_default_axis') +``` + +
+ + +### Loop +There are 3 test cases, listed as following: +
+loop_11 + +```python +# Given a tensor x of values [x1, ..., xN], and initial tensor y +# sum up its elements using a scan +# returning the final state (y+x1+x2+...+xN) as well the scan_output +# [y+x1, y+x1+x2, ..., y+x1+x2+...+xN] + +y_in = onnx.helper.make_tensor_value_info('y_in', onnx.TensorProto.FLOAT, [1]) +y_out = onnx.helper.make_tensor_value_info('y_out', onnx.TensorProto.FLOAT, [1]) +scan_out = onnx.helper.make_tensor_value_info('scan_out', onnx.TensorProto.FLOAT, [1]) +cond_in = onnx.helper.make_tensor_value_info('cond_in', onnx.TensorProto.BOOL, []) +cond_out = onnx.helper.make_tensor_value_info('cond_out', onnx.TensorProto.BOOL, []) +iter_count = onnx.helper.make_tensor_value_info('iter_count', onnx.TensorProto.INT64, []) + +x = np.array([1, 2, 3, 4, 5]).astype(np.float32) +y = np.array([-2]).astype(np.float32) + +x_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.helper.make_tensor( + name='const_tensor_x', + data_type=onnx.TensorProto.FLOAT, + dims=x.shape, + vals=x.flatten().astype(float), + ) +) + +one_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['one'], + value=onnx.helper.make_tensor( + name='const_tensor_one', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[1] + ) +) + +i_add_node = onnx.helper.make_node( + 'Add', + inputs=['iter_count', 'one'], + outputs=['end'] +) + +start_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['iter_count'], + outputs=['slice_start'], + axes=[0] +) + +end_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['end'], + outputs=['slice_end'], + axes=[0] +) + +slice_node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'slice_start', 'slice_end'], + outputs=['slice_out'] +) + +y_add_node = onnx.helper.make_node( + 'Add', + inputs=['y_in', 'slice_out'], + outputs=['y_out'] +) + +identity_node = onnx.helper.make_node( + 'Identity', + inputs=['cond_in'], + outputs=['cond_out'] +) + +scan_identity_node = onnx.helper.make_node( + 'Identity', + inputs=['y_out'], + outputs=['scan_out'] +) + +loop_body = onnx.helper.make_graph( + [identity_node, x_const_node, one_const_node, i_add_node, + start_unsqueeze_node, end_unsqueeze_node, slice_node, y_add_node, + scan_identity_node], + 'loop_body', + [iter_count, cond_in, y_in], + [cond_out, y_out, scan_out] +) + +node = onnx.helper.make_node( + 'Loop', + inputs=['trip_count', 'cond', 'y'], + outputs=['res_y', 'res_scan'], + body=loop_body +) + +trip_count = np.array(5).astype(np.int64) +res_y = np.array([13]).astype(np.float32) +cond = np.array(1).astype(bool) +res_scan = np.array([-1, 1, 4, 8, 13]).astype(np.float32).reshape((5, 1)) +expect(node, inputs=[trip_count, cond, y], outputs=[res_y, res_scan], + name='test_loop11', opset_imports=[onnx.helper.make_opsetid("", 11)]) +``` + +
+
+loop_13 + +```python +# Given a tensor x of values [x1, ..., xN], +# Return a sequence of tensors of +# [[x1], [x1, x2], ..., [x1, ..., xN]] + +seq_in = onnx.helper.make_tensor_sequence_value_info('seq_in', onnx.TensorProto.FLOAT, None) +seq_out = onnx.helper.make_tensor_sequence_value_info('seq_out', onnx.TensorProto.FLOAT, None) +cond_in = onnx.helper.make_tensor_value_info('cond_in', onnx.TensorProto.BOOL, []) +cond_out = onnx.helper.make_tensor_value_info('cond_out', onnx.TensorProto.BOOL, []) +iter_count = onnx.helper.make_tensor_value_info('iter_count', onnx.TensorProto.INT64, []) + +x = np.array([1, 2, 3, 4, 5]).astype(np.float32) + +x_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.helper.make_tensor( + name='const_tensor_x', + data_type=onnx.TensorProto.FLOAT, + dims=x.shape, + vals=x.flatten().astype(float), + ) +) + +one_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['one'], + value=onnx.helper.make_tensor( + name='const_tensor_one', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[1] + ) +) + +zero_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['slice_start'], + value=onnx.helper.make_tensor( + name='const_tensor_zero', + data_type=onnx.TensorProto.INT64, + dims=(1,), + vals=[0] + ) +) + +axes_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['axes'], + value=onnx.helper.make_tensor( + name='const_tensor_axes', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[0] + ) +) + +add_node = onnx.helper.make_node( + 'Add', + inputs=['iter_count', 'one'], + outputs=['end'] +) + +end_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['end', 'axes'], + outputs=['slice_end'] +) + +slice_node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'slice_start', 'slice_end'], + outputs=['slice_out'] +) + +insert_node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['seq_in', 'slice_out'], + outputs=['seq_out'] +) + +identity_node = onnx.helper.make_node( + 'Identity', + inputs=['cond_in'], + outputs=['cond_out'] +) + +loop_body = onnx.helper.make_graph( + [identity_node, x_const_node, one_const_node, zero_const_node, add_node, + axes_node, end_unsqueeze_node, slice_node, insert_node], + 'loop_body', + [iter_count, cond_in, seq_in], + [cond_out, seq_out] +) + +node = onnx.helper.make_node( + 'Loop', + inputs=['trip_count', 'cond', 'seq_empty'], + outputs=['seq_res'], + body=loop_body +) + +trip_count = np.array(5).astype(np.int64) +seq_empty: List[Any] = [] +seq_res = [x[:int(i)] for i in x] +cond = np.array(1).astype(bool) +expect(node, inputs=[trip_count, cond, seq_empty], outputs=[seq_res], + name='test_loop13_seq', opset_imports=[onnx.helper.make_opsetid("", 13)], + input_type_protos=[onnx.helper.make_tensor_type_proto(onnx.TensorProto.INT64, trip_count.shape), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.BOOL, cond.shape), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, []))]) +``` + +
+
+loop_16_none + +```python +# Given a tensor sequence of values [x1, ..., xN], and an initial optional sequence of tensors [x0], +# Return a concatenated sequence of tensors of +# [x0, [x1], [x1, x2], ..., [x1, ..., xN]] + +ten_in_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, []) +seq_in_tp = onnx.helper.make_sequence_type_proto(ten_in_tp) +opt_in_tp = onnx.helper.make_optional_type_proto(seq_in_tp) +opt_in = onnx.helper.make_value_info('opt_seq_in', opt_in_tp) +seq_out = onnx.helper.make_tensor_sequence_value_info('seq_out', onnx.TensorProto.FLOAT, []) +cond_in = onnx.helper.make_tensor_value_info('cond_in', onnx.TensorProto.BOOL, []) +cond_out = onnx.helper.make_tensor_value_info('cond_out', onnx.TensorProto.BOOL, []) +iter_count = onnx.helper.make_tensor_value_info('iter_count', onnx.TensorProto.INT64, []) + +x0 = np.array(0).astype(np.float32) +x = np.array([1, 2, 3, 4, 5]).astype(np.float32) + +optional_has_elem_node = onnx.helper.make_node( + 'OptionalHasElement', + inputs=['opt_seq_in'], + outputs=['optional_has_elem'] +) + +optional_is_none = onnx.helper.make_node( + 'Not', + inputs=['optional_has_elem'], + outputs=['optional_is_none'] +) + +optional_get_elem = onnx.helper.make_node( + 'OptionalGetElement', + inputs=['opt_seq_in'], + outputs=['seq_in'] +) + +constant_in = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['constant_in'], + value=onnx.helper.make_tensor( + name='const_tensor', + data_type=onnx.TensorProto.FLOAT, + dims=(), + vals=[0] + ) +) + +seq_const_in = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['constant_in'], + outputs=['init_seq_in'] +) + +then_seq_out = onnx.helper.make_tensor_sequence_value_info('init_seq_in', onnx.TensorProto.FLOAT, []) +then_body = onnx.helper.make_graph( + [constant_in, seq_const_in], + 'then_body', + [], + [then_seq_out] +) + +else_seq_out = onnx.helper.make_tensor_sequence_value_info('seq_in', onnx.TensorProto.FLOAT, []) +else_body = onnx.helper.make_graph( + [optional_get_elem], + 'else_body', + [], + [else_seq_out] +) + +if_node = onnx.helper.make_node( + 'If', + inputs=['optional_is_none'], + outputs=['sequence'], + then_branch=then_body, + else_branch=else_body +) + +x_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.helper.make_tensor( + name='const_tensor_x', + data_type=onnx.TensorProto.FLOAT, + dims=x.shape, + vals=x.flatten().astype(float), + ) +) + +one_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['one'], + value=onnx.helper.make_tensor( + name='const_tensor_one', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[1] + ) +) + +zero_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['slice_start'], + value=onnx.helper.make_tensor( + name='const_tensor_zero', + data_type=onnx.TensorProto.INT64, + dims=(1,), + vals=[0] + ) +) + +axes_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['axes'], + value=onnx.helper.make_tensor( + name='const_tensor_axes', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[0] + ) +) + +add_node = onnx.helper.make_node( + 'Add', + inputs=['iter_count', 'one'], + outputs=['end'] +) + +end_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['end', 'axes'], + outputs=['slice_end'] +) + +slice_node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'slice_start', 'slice_end'], + outputs=['slice_out'] +) + +insert_node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['sequence', 'slice_out'], + outputs=['seq_out'] +) + +identity_node = onnx.helper.make_node( + 'Identity', + inputs=['cond_in'], + outputs=['cond_out'] +) + +loop_body = onnx.helper.make_graph( + [identity_node, optional_has_elem_node, optional_is_none, if_node, x_const_node, one_const_node, + zero_const_node, add_node, axes_node, end_unsqueeze_node, slice_node, insert_node], + 'loop_body', + [iter_count, cond_in, opt_in], + [cond_out, seq_out] +) + +node = onnx.helper.make_node( + 'Loop', + inputs=['trip_count', 'cond', 'opt_seq'], + outputs=['seq_res'], + body=loop_body +) + +trip_count = np.array(5).astype(np.int64) +cond = np.array(1).astype(bool) +seq_res = compute_loop_outputs(x, [x0], trip_count) +opt_seq_in: List[Any] = [x0] +expect(node, inputs=[trip_count, cond, opt_seq_in], outputs=[seq_res], + name='test_loop16_seq_none', opset_imports=[onnx.helper.make_opsetid("", 16)], + input_type_protos=[onnx.helper.make_tensor_type_proto(onnx.TensorProto.INT64, trip_count.shape), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.BOOL, cond.shape), + opt_in_tp]) +``` + +
+ + +### MatMul +There are 1 test cases, listed as following: +
+matmul + +```python +node = onnx.helper.make_node( + 'MatMul', + inputs=['a', 'b'], + outputs=['c'], +) + +# 2d +a = np.random.randn(3, 4).astype(np.float32) +b = np.random.randn(4, 3).astype(np.float32) +c = np.matmul(a, b) +expect(node, inputs=[a, b], outputs=[c], + name='test_matmul_2d') + +# 3d +a = np.random.randn(2, 3, 4).astype(np.float32) +b = np.random.randn(2, 4, 3).astype(np.float32) +c = np.matmul(a, b) +expect(node, inputs=[a, b], outputs=[c], + name='test_matmul_3d') + +# 4d +a = np.random.randn(1, 2, 3, 4).astype(np.float32) +b = np.random.randn(1, 2, 4, 3).astype(np.float32) +c = np.matmul(a, b) +expect(node, inputs=[a, b], outputs=[c], + name='test_matmul_4d') +``` + +
+ + +### MatMulInteger +There are 1 test cases, listed as following: +
+matmulinteger + +```python +node = onnx.helper.make_node('MatMulInteger', + inputs=['A', 'B', 'a_zero_point', 'b_zero_point'], + outputs=['Y'],) + +A = np.array([[11, 7, 3], + [10, 6, 2], + [9, 5, 1], + [8, 4, 0], ], dtype=np.uint8) + +a_zero_point = np.array([12], dtype=np.uint8) + +B = np.array([[1, 4], + [2, 5], + [3, 6], ], dtype=np.uint8) + +b_zero_point = np.array([0], dtype=np.uint8) + +output = np.array([[-38, -83], + [-44, -98], + [-50, -113], + [-56, -128], ], dtype=np.int32) + +expect(node, inputs=[A, B, a_zero_point, b_zero_point], outputs=[output], + name='test_matmulinteger') +``` + +
+ + +### Max +There are 2 test cases, listed as following: +
+max + +```python +data_0 = np.array([3, 2, 1]).astype(np.float32) +data_1 = np.array([1, 4, 4]).astype(np.float32) +data_2 = np.array([2, 5, 3]).astype(np.float32) +result = np.array([3, 5, 4]).astype(np.float32) +node = onnx.helper.make_node( + 'Max', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_max_example') + +node = onnx.helper.make_node( + 'Max', + inputs=['data_0'], + outputs=['result'], +) +expect(node, inputs=[data_0], outputs=[data_0], + name='test_max_one_input') + +result = np.maximum(data_0, data_1) +node = onnx.helper.make_node( + 'Max', + inputs=['data_0', 'data_1'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_max_two_inputs') +``` + +
+
+max_all_numeric_types + +```python +for op_dtype in all_numeric_dtypes: + data_0 = np.array([3, 2, 1]).astype(op_dtype) + data_1 = np.array([1, 4, 4]).astype(op_dtype) + result = np.array([3, 4, 4]).astype(op_dtype) + node = onnx.helper.make_node( + 'Max', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_max_{0}'.format(np.dtype(op_dtype).name)) +``` + +
+ + +### MaxPool +There are 15 test cases, listed as following: +
+maxpool_1d_default + +```python +""" +input_shape: [1, 3, 32] +output_shape: [1, 3, 31] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2], +) +x = np.random.randn(1, 3, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = [2] +strides = [1] +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0], 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_1d_default') +``` + +
+
+maxpool_2d_ceil + +```python +""" +input_shape: [1, 1, 4, 4] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + ceil_mode=True +) +x = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]]).astype(np.float32) +y = np.array([[[ + [11, 12], + [15, 16]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_ceil') +``` + +
+
+maxpool_2d_default + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 31, 31] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_default') +``` + +
+
+maxpool_2d_dilations + +```python +""" +input_shape: [1, 1, 4, 4] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[1, 1], + dilations=[2, 2] +) +x = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]]).astype(np.float32) +y = np.array([[[ + [11, 12], + [15, 16]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_dilations') +``` + +
+
+maxpool_2d_pads + +```python +""" +input_shape: [1, 3, 28, 28] +output_shape: [1, 3, 30, 30] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[2, 2, 2, 2] +) +x = np.random.randn(1, 3, 28, 28).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (3, 3) +strides = (1, 1) +pad_bottom = pad_top = pad_right = pad_left = 2 +pad_shape = [pad_top + pad_bottom, pad_left + pad_right] +out_shape = get_output_shape('VALID', np.add(x_shape[2:], pad_shape), kernel_shape, strides) +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_pads') +``` + +
+
+maxpool_2d_precomputed_pads + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] + +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[ + [13, 14, 15, 15, 15], + [18, 19, 20, 20, 20], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_precomputed_pads') +``` + +
+
+maxpool_2d_precomputed_same_upper + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 3, 3] +pad_shape: [2, 2] -> [1, 1, 1, 1] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + auto_pad='SAME_UPPER' +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[7, 9, 10], + [17, 19, 20], + [22, 24, 25]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_precomputed_same_upper') +``` + +
+
+maxpool_2d_precomputed_strides + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[7, 9], + [17, 19]]]]).astype(np.float32) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_precomputed_strides') +``` + +
+
+maxpool_2d_same_lower + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 32, 32] +pad_shape: [1, 1] -> [1, 0, 1, 0] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_LOWER' +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides) +pad_shape = get_pad_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides, out_shape) +pad_bottom = pad_shape[0] // 2 +pad_top = pad_shape[0] - pad_bottom +pad_right = pad_shape[1] // 2 +pad_left = pad_shape[1] - pad_right +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_same_lower') +``` + +
+
+maxpool_2d_same_upper + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 32, 32] +pad_shape: [1, 1] -> [0, 1, 0, 1] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_UPPER' +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (2, 2) +strides = (1, 1) +out_shape = get_output_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides) +pad_shape = get_pad_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides, out_shape) +pad_top = pad_shape[0] // 2 +pad_bottom = pad_shape[0] - pad_top +pad_left = pad_shape[1] // 2 +pad_right = pad_shape[1] - pad_left +padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) +y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_same_upper') +``` + +
+
+maxpool_2d_strides + +```python +""" +input_shape: [1, 3, 32, 32] +output_shape: [1, 3, 10, 10] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + strides=[3, 3] +) +x = np.random.randn(1, 3, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = (5, 5) +strides = (3, 3) +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_strides') +``` + +
+
+maxpool_2d_uint8 + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.uint8) +y = np.array([[[ + [13, 14, 15, 15, 15], + [18, 19, 20, 20, 20], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25]]]]).astype(np.uint8) + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_uint8') +``` + +
+
+maxpool_3d_default + +```python +""" +input_shape: [1, 3, 32, 32, 32] +output_shape: [1, 3, 31, 31, 31] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2, 2], +) +x = np.random.randn(1, 3, 32, 32, 32).astype(np.float32) +x_shape = np.shape(x) +kernel_shape = [2, 2, 2] +strides = [1, 1, 1] +out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) +padded = x +y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0, 0, 0], 'MAX') + +expect(node, inputs=[x], outputs=[y], name='test_maxpool_3d_default') +``` + +
+
+maxpool_with_argmax_2d_precomputed_pads + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 5, 5] +pad_shape: [4, 4] -> [2, 2, 2, 2] by axis +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y', 'z'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[ + [13, 14, 15, 15, 15], + [18, 19, 20, 20, 20], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25]]]]).astype(np.float32) +z = np.array([[[ + [12, 13, 14, 14, 14], + [17, 18, 19, 19, 19], + [22, 23, 24, 24, 24], + [22, 23, 24, 24, 24], + [22, 23, 24, 24, 24]]]]).astype(np.int64) + +expect(node, inputs=[x], outputs=[y, z], name='test_maxpool_with_argmax_2d_precomputed_pads') +``` + +
+
+maxpool_with_argmax_2d_precomputed_strides + +```python +""" +input_shape: [1, 1, 5, 5] +output_shape: [1, 1, 2, 2] +""" +node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y', 'z'], + kernel_shape=[2, 2], + strides=[2, 2], + storage_order=1 +) +x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], +]]]).astype(np.float32) +y = np.array([[[[7, 9], + [17, 19]]]]).astype(np.float32) +z = np.array([[[[6, 16], + [8, 18]]]]).astype(np.int64) + +expect(node, inputs=[x], outputs=[y, z], name='test_maxpool_with_argmax_2d_precomputed_strides') +``` + +
+ + +### MaxUnpool +There are 2 test cases, listed as following: +
+with_output_shape + +```python +node = onnx.helper.make_node( + 'MaxUnpool', + inputs=['xT', 'xI', 'output_shape'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] +) +xT = np.array([[[[5, 6], + [7, 8]]]], dtype=np.float32) +xI = np.array([[[[5, 7], + [13, 15]]]], dtype=np.int64) +output_shape = np.array((1, 1, 5, 5), dtype=np.int64) +y = np.array([[[[0, 0, 0, 0, 0], + [0, 5, 0, 6, 0], + [0, 0, 0, 0, 0], + [0, 7, 0, 8, 0], + [0, 0, 0, 0, 0]]]], dtype=np.float32) +expect(node, inputs=[xT, xI, output_shape], outputs=[y], name='test_maxunpool_export_with_output_shape') +``` + +
+
+without_output_shape + +```python +node = onnx.helper.make_node( + 'MaxUnpool', + inputs=['xT', 'xI'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] +) +xT = np.array([[[[1, 2], + [3, 4]]]], dtype=np.float32) +xI = np.array([[[[5, 7], + [13, 15]]]], dtype=np.int64) +y = np.array([[[[0, 0, 0, 0], + [0, 1, 0, 2], + [0, 0, 0, 0], + [0, 3, 0, 4]]]], dtype=np.float32) +expect(node, inputs=[xT, xI], outputs=[y], name='test_maxunpool_export_without_output_shape') +``` + +
+ + +### Mean +There are 1 test cases, listed as following: +
+mean + +```python +data_0 = np.array([3, 0, 2]).astype(np.float32) +data_1 = np.array([1, 3, 4]).astype(np.float32) +data_2 = np.array([2, 6, 6]).astype(np.float32) +result = np.array([2, 3, 4]).astype(np.float32) +node = onnx.helper.make_node( + 'Mean', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_mean_example') + +node = onnx.helper.make_node( + 'Mean', + inputs=['data_0'], + outputs=['result'], +) +expect(node, inputs=[data_0], outputs=[data_0], + name='test_mean_one_input') + +result = np.divide(np.add(data_0, data_1), 2.) +node = onnx.helper.make_node( + 'Mean', + inputs=['data_0', 'data_1'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_mean_two_inputs') +``` + +
+ + +### MeanVarianceNormalization +There are 1 test cases, listed as following: +
+meanvariancenormalization + +```python +node = onnx.helper.make_node( + 'MeanVarianceNormalization', + inputs=['X'], + outputs=['Y'] +) + +input_data = np.array([[[[0.8439683], [0.5665144], [0.05836735]], + [[0.02916367], [0.12964272], [0.5060197]], + [[0.79538304], [0.9411346], [0.9546573]]], + [[[0.17730942], [0.46192095], [0.26480448]], + [[0.6746842], [0.01665257], [0.62473077]], + [[0.9240844], [0.9722341], [0.11965699]]], + [[[0.41356155], [0.9129373], [0.59330076]], + [[0.81929934], [0.7862604], [0.11799799]], + [[0.69248444], [0.54119414], [0.07513223]]]], dtype=np.float32) + +# Calculate expected output data +data_mean = np.mean(input_data, axis=(0, 2, 3), keepdims=1) +data_mean_squared = np.power(data_mean, 2) +data_squared = np.power(input_data, 2) +data_squared_mean = np.mean(data_squared, axis=(0, 2, 3), keepdims=1) +std = np.sqrt(data_squared_mean - data_mean_squared) +expected_output = (input_data - data_mean) / (std + 1e-9) + +expect(node, inputs=[input_data], outputs=[expected_output], + name='test_mvn') +``` + +
+ + +### Min +There are 2 test cases, listed as following: +
+min + +```python +data_0 = np.array([3, 2, 1]).astype(np.float32) +data_1 = np.array([1, 4, 4]).astype(np.float32) +data_2 = np.array([2, 5, 0]).astype(np.float32) +result = np.array([1, 2, 0]).astype(np.float32) +node = onnx.helper.make_node( + 'Min', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_min_example') + +node = onnx.helper.make_node( + 'Min', + inputs=['data_0'], + outputs=['result'], +) +expect(node, inputs=[data_0], outputs=[data_0], + name='test_min_one_input') + +result = np.minimum(data_0, data_1) +node = onnx.helper.make_node( + 'Min', + inputs=['data_0', 'data_1'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_min_two_inputs') +``` + +
+
+min_all_numeric_types + +```python +for op_dtype in all_numeric_dtypes: + data_0 = np.array([3, 2, 1]).astype(op_dtype) + data_1 = np.array([1, 4, 4]).astype(op_dtype) + result = np.array([1, 2, 1]).astype(op_dtype) + node = onnx.helper.make_node( + 'Min', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_min_{0}'.format(np.dtype(op_dtype).name)) +``` + +
+ + +### Mod +There are 13 test cases, listed as following: +
+mod_broadcast + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.arange(0, 30).reshape([3, 2, 5]).astype(np.int32) +y = np.array([7]).astype(np.int32) +z = np.mod(x, y) +# array([[[0, 1, 2, 3, 4], +# [5, 6, 0, 1, 2]], + +# [[3, 4, 5, 6, 0], +# [1, 2, 3, 4, 5]], + +# [[6, 0, 1, 2, 3], +# [4, 5, 6, 0, 1]]], dtype=int32) +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_broadcast') +``` + +
+
+mod_int64_fmod + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int64) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int64) +z = np.fmod(x, y) # expected output [ 0, 1, 5, 0, -1, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_int64_fmod') +``` + +
+
+mod_mixed_sign_float16 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 +) + +x = np.array([-4.3, 7.2, 5.0, 4.3, -7.2, 8.0]).astype(np.float16) +y = np.array([2.1, -3.4, 8.0, -2.1, 3.4, 5.0]).astype(np.float16) +z = np.fmod(x, y) # expected output [-0.10156, 0.3984 , 5. , 0.10156, -0.3984 , 3.] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_float16') +``` + +
+
+mod_mixed_sign_float32 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 +) + +x = np.array([-4.3, 7.2, 5.0, 4.3, -7.2, 8.0]).astype(np.float32) +y = np.array([2.1, -3.4, 8.0, -2.1, 3.4, 5.0]).astype(np.float32) +z = np.fmod(x, y) # expected output [-0.10000038, 0.39999962, 5. , 0.10000038, -0.39999962, 3.] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_float32') +``` + +
+
+mod_mixed_sign_float64 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 +) + +x = np.array([-4.3, 7.2, 5.0, 4.3, -7.2, 8.0]).astype(np.float64) +y = np.array([2.1, -3.4, 8.0, -2.1, 3.4, 5.0]).astype(np.float64) +z = np.fmod(x, y) # expected output [-0.1, 0.4, 5. , 0.1, -0.4, 3.] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_float64') +``` + +
+
+mod_mixed_sign_int16 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int16) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int16) +z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int16') +``` + +
+
+mod_mixed_sign_int32 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int32) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int32) +z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int32') +``` + +
+
+mod_mixed_sign_int64 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int64) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int64) +z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int64') +``` + +
+
+mod_mixed_sign_int8 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int8) +y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int8) +z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int8') +``` + +
+
+mod_uint16 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([4, 7, 5]).astype(np.uint16) +y = np.array([2, 3, 8]).astype(np.uint16) +z = np.mod(x, y) # expected output [0, 1, 5] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint16') +``` + +
+
+mod_uint32 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([4, 7, 5]).astype(np.uint32) +y = np.array([2, 3, 8]).astype(np.uint32) +z = np.mod(x, y) # expected output [0, 1, 5] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint32') +``` + +
+
+mod_uint64 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([4, 7, 5]).astype(np.uint64) +y = np.array([2, 3, 8]).astype(np.uint64) +z = np.mod(x, y) # expected output [0, 1, 5] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint64') +``` + +
+
+mod_uint8 + +```python +node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([4, 7, 5]).astype(np.uint8) +y = np.array([2, 3, 8]).astype(np.uint8) +z = np.mod(x, y) # expected output [0, 1, 5] +expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint8') +``` + +
+ + +### Momentum +There are 3 test cases, listed as following: +
+momentum + +```python +# Define operator attributes. +norm_coefficient = 0.001 +alpha = 0.95 +beta = 0.1 + +# Create operator. +node = onnx.helper.make_node('Momentum', + inputs=['R', 'T', 'X', 'G', 'V'], + outputs=['X_new', 'V_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + mode='standard', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar +x = np.array([1.2, 2.8], dtype=np.float32) +g = np.array([-0.94, -2.5], dtype=np.float32) +v = np.array([1.7, 3.6], dtype=np.float32) + +# Compute expected outputs of Momentum. +x_new, v_new = apply_momentum(r, t, x, g, v, + norm_coefficient, alpha, beta) + +# Check results. +expect(node, inputs=[r, t, x, g, v], + outputs=[x_new, v_new], name='test_momentum', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+
+momentum_multiple + +```python +# Define operator attributes. +norm_coefficient = 0.001 +alpha = 0.95 +beta = 0.85 + +node = onnx.helper.make_node('Momentum', + inputs=['R', 'T', 'X1', 'X2', + 'G1', 'G2', 'H1', 'H2'], + outputs=['X1_new', 'X2_new', + 'V1_new', 'V2_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + mode='standard', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar + +x1 = np.array([1.0], dtype=np.float32) +g1 = np.array([-1.0], dtype=np.float32) +v1 = np.array([2.0], dtype=np.float32) + +x2 = np.array([1.0, 2.0], dtype=np.float32) +g2 = np.array([-1.0, -3.0], dtype=np.float32) +v2 = np.array([4.0, 1.0], dtype=np.float32) + +# Compute expected outputs of Momentum. +x1_new, v1_new = apply_momentum(r, t, x1, g1, v1, + norm_coefficient, alpha, beta) +x2_new, v2_new = apply_momentum(r, t, x2, g2, v2, + norm_coefficient, alpha, beta) + +# Check results. +expect(node, inputs=[r, t, x1, x2, g1, g2, v1, v2], + outputs=[x1_new, x2_new, v1_new, v2_new], name='test_momentum_multiple', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+
+nesterov_momentum + +```python +# Define operator attributes. +norm_coefficient = 0.01 +alpha = 0.95 +beta = 1.0 + +# Create operator. +node = onnx.helper.make_node('Momentum', + inputs=['R', 'T', 'X', 'G', 'V'], + outputs=['X_new', 'V_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + mode='nesterov', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + +# Define operator inputs. +r = np.array(0.1, dtype=np.float32) # scalar +t = np.array(0, dtype=np.int64) # scalar +x = np.array([1.2, 2.8], dtype=np.float32) +g = np.array([-0.94, -2.5], dtype=np.float32) +v = np.array([1.7, 3.6], dtype=np.float32) + +# Compute expected outputs of Momentum. +x_new, v_new = apply_nesterov(r, t, x, g, v, + norm_coefficient, alpha, beta) + +# Check results. +expect(node, inputs=[r, t, x, g, v], + outputs=[x_new, v_new], name='test_nesterov_momentum', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) +``` + +
+ + +### Mul +There are 2 test cases, listed as following: +
+mul + +```python +node = onnx.helper.make_node( + 'Mul', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.float32) +z = x * y # expected output [4., 10., 18.] +expect(node, inputs=[x, y], outputs=[z], + name='test_mul_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = x * y +expect(node, inputs=[x, y], outputs=[z], + name='test_mul') + +x = np.random.randint(4, size=(3, 4, 5), dtype=np.uint8) +y = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) +z = x * y +expect(node, inputs=[x, y], outputs=[z], + name='test_mul_uint8') +``` + +
+
+mul_broadcast + +```python +node = onnx.helper.make_node( + 'Mul', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = x * y +expect(node, inputs=[x, y], outputs=[z], + name='test_mul_bcast') +``` + +
+ + +### Neg +There are 1 test cases, listed as following: +
+neg + +```python +node = onnx.helper.make_node( + 'Neg', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-4, 2]).astype(np.float32) +y = np.negative(x) # expected output [4., -2.], +expect(node, inputs=[x], outputs=[y], + name='test_neg_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.negative(x) +expect(node, inputs=[x], outputs=[y], + name='test_neg') +``` + +
+ + +### NegativeLogLikelihoodLoss +There are 18 test cases, listed as following: +
+input_shape_is_NC + +```python +reduction = 'none' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C = 3, 5 +np.random.seed(0) +input = np.random.rand(N, C).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, )).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NC') +``` + +
+
+input_shape_is_NCd1 + +```python +reduction = 'mean' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C, d1 = 3, 5, 2 +np.random.seed(0) +input = np.random.rand(N, C, d1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1') +``` + +
+
+input_shape_is_NCd1_ii + +```python +reduction = 'mean' +ignore_index = np.int64(1) +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index +) + +N, C, d1 = 3, 5, 2 +np.random.seed(0) +input = np.random.rand(N, C, d1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) +target[0][0] = np.int64(1) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction, ignore_index=ignore_index) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_ii') +``` + +
+
+input_shape_is_NCd1_mean_weight_negative_ii + +```python +reduction = 'mean' +ignore_index = np.int64(-1) + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1 = 3, 5, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1)).astype(np.int64) +target[0][0] = -1 +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_mean_weight_negative_ii') +``` + +
+
+input_shape_is_NCd1_weight + +```python +reduction = 'mean' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction +) + +N, C, d1 = 3, 5, 2 +np.random.seed(0) +input = np.random.rand(N, C, d1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_weight') +``` + +
+
+input_shape_is_NCd1_weight_ii + +```python +reduction = 'mean' +ignore_index = np.int64(1) +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index +) + +N, C, d1 = 3, 5, 2 +np.random.seed(0) +input = np.random.rand(N, C, d1).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) +target[0][0] = np.int64(1) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction, ignore_index=ignore_index) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_weight_ii') +``` + +
+
+input_shape_is_NCd1d2 + +```python +reduction = 'none' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2') +``` + +
+
+input_shape_is_NCd1d2_no_weight_reduction_mean_ii + +```python +reduction = 'mean' +ignore_index = np.int64(1) +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +target[0][0][0] = np.int64(1) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, reduction=reduction, ignore_index=ignore_index) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_no_weight_reduction_mean_ii') +``` + +
+
+input_shape_is_NCd1d2_reduction_mean + +```python +reduction = 'mean' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_reduction_mean') +``` + +
+
+input_shape_is_NCd1d2_reduction_sum + +```python +reduction = 'sum' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_reduction_sum') +``` + +
+
+input_shape_is_NCd1d2_with_weight + +```python +reduction = 'none' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight') +``` + +
+
+input_shape_is_NCd1d2_with_weight_reduction_mean + +```python +reduction = 'mean' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight_reduction_mean') +``` + +
+
+input_shape_is_NCd1d2_with_weight_reduction_sum + +```python +reduction = 'sum' +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight_reduction_sum') +``` + +
+
+input_shape_is_NCd1d2_with_weight_reduction_sum_ii + +```python +reduction = 'sum' +ignore_index = np.int64(0) +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index +) + +N, C, dim1, dim2 = 3, 5, 6, 6 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) +target[0][0][0] = np.int64(0) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction, ignore_index=ignore_index) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight_reduction_sum_ii') +``` + +
+
+input_shape_is_NCd1d2d3_none_no_weight_negative_ii + +```python +reduction = 'none' +ignore_index = np.int64(-5) + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1, dim2, dim3 = 3, 5, 6, 6, 5 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2, dim3).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3)).astype(np.int64) +target[0][0][0][0] = -5 + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3_none_no_weight_negative_ii') +``` + +
+
+input_shape_is_NCd1d2d3_sum_weight_high_ii + +```python +reduction = 'sum' +ignore_index = np.int64(10) + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index) + +N, C = 3, 5 +np.random.seed(0) +input = np.random.rand(N, C).astype(np.float32) +target = np.random.randint(0, high=C, size=(N)) +target[0] = 10 +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3_sum_weight_high_ii') +``` + +
+
+input_shape_is_NCd1d2d3d4d5_mean_weight + +```python +reduction = 'mean' + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + weight=weight, + reduction=reduction) + +expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3d4d5_mean_weight') +``` + +
+
+input_shape_is_NCd1d2d3d4d5_none_no_weight + +```python +reduction = 'none' + +node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +input = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +target = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + +negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + reduction=reduction) + +expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3d4d5_none_no_weight') +``` + +
+ + +### NonMaxSuppression +There are 9 test cases, listed as following: +
+nonmaxsuppression_center_point_box_format + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'], + center_point_box=1 +) +boxes = np.array([[ + [0.5, 0.5, 1.0, 1.0], + [0.5, 0.6, 1.0, 1.0], + [0.5, 0.4, 1.0, 1.0], + [0.5, 10.5, 1.0, 1.0], + [0.5, 10.6, 1.0, 1.0], + [0.5, 100.5, 1.0, 1.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 0, 5]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_center_point_box_format') +``` + +
+
+nonmaxsuppression_flipped_coordinates + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [1.0, 1.0, 0.0, 0.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, 0.9, 1.0, -0.1], + [0.0, 10.0, 1.0, 11.0], + [1.0, 10.1, 0.0, 11.1], + [1.0, 101.0, 0.0, 100.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 0, 5]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_flipped_coordinates') +``` + +
+
+nonmaxsuppression_identical_boxes + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_identical_boxes') +``` + +
+
+nonmaxsuppression_limit_output_size + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([2]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_limit_output_size') +``` + +
+
+nonmaxsuppression_single_box + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0] +]]).astype(np.float32) +scores = np.array([[[0.9]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_single_box') +``` + +
+
+nonmaxsuppression_suppress_by_IOU + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 0, 5]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_suppress_by_IOU') +``` + +
+
+nonmaxsuppression_suppress_by_IOU_and_scores + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([3]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.4]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_suppress_by_IOU_and_scores') +``` + +
+
+nonmaxsuppression_two_batches + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[[0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0]], + [[0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0]]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]], + [[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([2]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [1, 0, 3], [1, 0, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_two_batches') +``` + +
+
+nonmaxsuppression_two_classes + +```python +node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] +) +boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] +]]).astype(np.float32) +scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3], + [0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) +max_output_boxes_per_class = np.array([2]).astype(np.int64) +iou_threshold = np.array([0.5]).astype(np.float32) +score_threshold = np.array([0.0]).astype(np.float32) +selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 1, 3], [0, 1, 0]]).astype(np.int64) + +expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_two_classes') +``` + +
+ + +### NonZero +There are 1 test cases, listed as following: +
+nonzero + +```python +node = onnx.helper.make_node( + 'NonZero', + inputs=['condition'], + outputs=['result'], +) + +condition = np.array([[1, 0], [1, 1]], dtype=bool) +result = np.array(np.nonzero(condition), dtype=np.int64) # expected output [[0, 1, 1], [0, 0, 1]] +expect(node, inputs=[condition], outputs=[result], + name='test_nonzero_example') +``` + +
+ + +### Not +There are 1 test cases, listed as following: +
+not + +```python +node = onnx.helper.make_node( + 'Not', + inputs=['x'], + outputs=['not'], +) + +# 2d +x = (np.random.randn(3, 4) > 0).astype(bool) +expect(node, inputs=[x], outputs=[np.logical_not(x)], + name='test_not_2d') + +# 3d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +expect(node, inputs=[x], outputs=[np.logical_not(x)], + name='test_not_3d') + +# 4d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +expect(node, inputs=[x], outputs=[np.logical_not(x)], + name='test_not_4d') +``` + +
+ + +### OneHot +There are 4 test cases, listed as following: +
+with_axis + +```python +axisValue = 1 +on_value = 3 +off_value = 1 +output_type = np.float32 +node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'], + axis=axisValue +) +indices = np.array([[1, 9], + [2, 4]], dtype=np.float32) +depth = np.float32(10) +values = np.array([off_value, on_value], dtype=output_type) +y = one_hot(indices, depth, axis=axisValue, dtype=output_type) +y = y * (on_value - off_value) + off_value +expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_with_axis') +``` + +
+
+with_negative_axis + +```python +axisValue = -2 +on_value = 3 +off_value = 1 +output_type = np.float32 +node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'], + axis=axisValue +) +indices = np.array([[1, 9], + [2, 4]], dtype=np.float32) +depth = np.float32(10) +values = np.array([off_value, on_value], dtype=output_type) +y = one_hot(indices, depth, axis=axisValue, dtype=output_type) +y = y * (on_value - off_value) + off_value +expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_with_negative_axis') +``` + +
+
+with_negative_indices + +```python +axisValue = 1 +on_value = 3 +off_value = 1 +output_type = np.float32 +node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'], + axis=axisValue +) +indices = np.array([0, -7, -8], dtype=np.int64) + +# print(y) +# [[3. 1. 1. 1. 1. 1. 1. 1. 1. 1.] +# [1. 1. 1. 3. 1. 1. 1. 1. 1. 1.] +# [1. 1. 3. 1. 1. 1. 1. 1. 1. 1.]] + +depth = np.float32(10) +values = np.array([off_value, on_value], dtype=output_type) +y = one_hot(indices, depth, axis=axisValue, dtype=output_type) +y = y * (on_value - off_value) + off_value +expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_negative_indices') +``` + +
+
+without_axis + +```python +on_value = 5 +off_value = 2 +output_type = np.int32 +node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'] +) +indices = np.array([0, 7, 8], dtype=np.int64) +depth = np.float32(12) +values = np.array([off_value, on_value], dtype=output_type) +y = one_hot(indices, depth, dtype=output_type) +y = y * (on_value - off_value) + off_value +expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_without_axis') +``` + +
+ + +### OptionalHasElement +There are 4 test cases, listed as following: +
+empty + +```python +optional = None +tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.INT32, shape=[]) +input_type_proto = onnx.helper.make_optional_type_proto(tensor_type_proto) +node = onnx.helper.make_node( + 'OptionalHasElement', + inputs=['optional_input'], + outputs=['output'] +) +output = optional_has_element_reference_implementation(optional) +expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_has_element_empty') +``` + +
+
+get_element_sequence + +```python +optional = [np.array([1, 2, 3, 4]).astype(np.int32)] +tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.INT32, shape=[4, ]) +seq_type_proto = onnx.helper.make_sequence_type_proto(tensor_type_proto) +input_type_proto = onnx.helper.make_optional_type_proto(seq_type_proto) + +node = onnx.helper.make_node( + 'OptionalGetElement', + inputs=['optional_input'], + outputs=['output'] +) +output = optional_get_element_reference_implementation(optional) +expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_get_element_sequence') +``` + +
+
+get_element_tensor + +```python +optional = np.array([1, 2, 3, 4]).astype(np.float32) +tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.FLOAT, shape=[4, ]) +input_type_proto = onnx.helper.make_optional_type_proto(tensor_type_proto) + +node = onnx.helper.make_node( + 'OptionalGetElement', + inputs=['optional_input'], + outputs=['output'] +) +output = optional_get_element_reference_implementation(optional) +expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_get_element') +``` + +
+
+optionalhaselement + +```python +optional = np.array([1, 2, 3, 4]).astype(np.float32) +tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.FLOAT, shape=[4, ]) +input_type_proto = onnx.helper.make_optional_type_proto(tensor_type_proto) +node = onnx.helper.make_node( + 'OptionalHasElement', + inputs=['optional_input'], + outputs=['output'] +) +output = optional_has_element_reference_implementation(optional) +expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_has_element') +``` + +
+ + +### Or +There are 2 test cases, listed as following: +
+or + +```python +node = onnx.helper.make_node( + 'Or', + inputs=['x', 'y'], + outputs=['or'], +) + +# 2d +x = (np.random.randn(3, 4) > 0).astype(bool) +y = (np.random.randn(3, 4) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or2d') + +# 3d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(3, 4, 5) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or3d') + +# 4d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or4d') +``` + +
+
+or_broadcast + +```python +node = onnx.helper.make_node( + 'Or', + inputs=['x', 'y'], + outputs=['or'], +) + +# 3d vs 1d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(5) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast3v1d') + +# 3d vs 2d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(4, 5) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast3v2d') + +# 4d vs 2d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(5, 6) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast4v2d') + +# 4d vs 3d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(4, 5, 6) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast4v3d') + +# 4d vs 4d +x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool) +y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool) +z = np.logical_or(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast4v4d') +``` + +
+ + +### PRelu +There are 2 test cases, listed as following: +
+prelu + +```python +node = onnx.helper.make_node( + 'PRelu', + inputs=['x', 'slope'], + outputs=['y'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +slope = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * slope + +expect(node, inputs=[x, slope], outputs=[y], + name='test_prelu_example') +``` + +
+
+prelu_broadcast + +```python +node = onnx.helper.make_node( + 'PRelu', + inputs=['x', 'slope'], + outputs=['y'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +slope = np.random.randn(5).astype(np.float32) +y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * slope + +expect(node, inputs=[x, slope], outputs=[y], + name='test_prelu_broadcast') +``` + +
+ + +### Pad +There are 2 test cases, listed as following: +
+constant_pad + +```python +node = onnx.helper.make_node( + 'Pad', + inputs=['x', 'pads', 'value'], + outputs=['y'], + mode='constant' +) +x = np.random.randn(1, 3, 4, 5).astype(np.float32) +pads = np.array([0, 0, 1, 3, 0, 0, 2, 4]).astype(np.int64) # pad order [x1_begin, x2_begin, ..., x1_end, x2_end, ...] +value = np.float32(1.2) +y = pad_impl( + x, + pads, + 'constant', + 1.2 +) + +expect(node, inputs=[x, pads, value], outputs=[y], + name='test_constant_pad') +``` + +
+
+reflection_and_edge_pad + +```python +for mode in ['edge', 'reflect']: + node = onnx.helper.make_node( + 'Pad', + inputs=['x', 'pads'], + outputs=['y'], + mode=mode + ) + x = np.random.randn(1, 3, 4, 5).astype(np.int32) + pads = np.array([0, 0, 1, 1, 0, 0, 1, 1]).astype(np.int64) # pad order [x1_begin, x2_begin, ..., x1_end, x2_end, ...] + y = pad_impl( + x, + pads, + mode + ) + + expect(node, inputs=[x, pads], outputs=[y], + name='test_{}_pad'.format(mode)) +``` + +
+ + +### Pow +There are 3 test cases, listed as following: +
+pow + +```python +node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.float32) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_example') + +x = np.arange(60).reshape(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = pow(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_pow') +``` + +
+
+pow_broadcast + +```python +node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array(2).astype(np.float32) +z = pow(x, y) # expected output [1., 4., 9.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_bcast_scalar') + +node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], +) +x = np.array([[1, 2, 3], [4, 5, 6]]).astype(np.float32) +y = np.array([1, 2, 3]).astype(np.float32) +# expected output [[1, 4, 27], [4, 25, 216]] +z = pow(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_bcast_array') +``` + +
+
+types + +```python +node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.int64) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_int64') + +x = np.array([1, 2, 3]).astype(np.int64) +y = np.array([4, 5, 6]).astype(np.float32) +z = pow(x, y) # expected output [1, 32, 729] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int64_float32') + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.int32) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_int32') + +x = np.array([1, 2, 3]).astype(np.int32) +y = np.array([4, 5, 6]).astype(np.float32) +z = pow(x, y) # expected output [1, 32, 729] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int32_float32') + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.uint64) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_uint64') + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([4, 5, 6]).astype(np.uint32) +z = pow(x, y) # expected output [1., 32., 729.] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_uint32') + +x = np.array([1, 2, 3]).astype(np.int64) +y = np.array([4, 5, 6]).astype(np.int64) +z = pow(x, y) # expected output [1, 32, 729] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int64_int64') + +x = np.array([1, 2, 3]).astype(np.int32) +y = np.array([4, 5, 6]).astype(np.int32) +z = pow(x, y) # expected output [1, 32, 729] +expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int32_int32') +``` + +
+ + +### QLinearConv +There are 1 test cases, listed as following: +
+qlinearconv + +```python +node = onnx.helper.make_node('QLinearConv', + inputs=['x', 'x_scale', 'x_zero_point', 'w', 'w_scale', 'w_zero_point', 'y_scale', 'y_zero_point'], + outputs=['y'],) + +x = np.array([[255, 174, 162, 25, 203, 168, 58], + [15, 59, 237, 95, 129, 0, 64], + [56, 242, 153, 221, 168, 12, 166], + [232, 178, 186, 195, 237, 162, 237], + [188, 39, 124, 77, 80, 102, 43], + [127, 230, 21, 83, 41, 40, 134], + [255, 154, 92, 141, 42, 148, 247], ], dtype=np.uint8).reshape((1, 1, 7, 7)) + +x_scale = np.float32(0.00369204697) +x_zero_point = np.uint8(132) + +w = np.array([0], dtype=np.uint8).reshape((1, 1, 1, 1)) + +w_scale = np.array([0.00172794575], dtype=np.float32) +w_zero_point = np.array([255], dtype=np.uint8) + +y_scale = np.float32(0.00162681262) +y_zero_point = np.uint8(123) + +output = np.array([[0, 81, 93, 230, 52, 87, 197], + [240, 196, 18, 160, 126, 255, 191], + [199, 13, 102, 34, 87, 243, 89], + [23, 77, 69, 60, 18, 93, 18], + [67, 216, 131, 178, 175, 153, 212], + [128, 25, 234, 172, 214, 215, 121], + [0, 101, 163, 114, 213, 107, 8], ], dtype=np.uint8).reshape((1, 1, 7, 7)) + +expect(node, inputs=[x, x_scale, x_zero_point, w, w_scale, w_zero_point, y_scale, y_zero_point], outputs=[output], + name='test_qlinearconv') +``` + +
+ + +### QLinearMatMul +There are 1 test cases, listed as following: +
+qlinearmatmul + +```python +node = onnx.helper.make_node('QLinearMatMul', + inputs=['a', 'a_scale', 'a_zero_point', 'b', 'b_scale', 'b_zero_point', 'y_scale', 'y_zero_point'], + outputs=['y'],) + +#2D +a = np.array([[208, 236, 0, 238], + [3, 214, 255, 29], ], dtype=np.uint8) + +a_scale = np.array([0.0066], dtype=np.float32) +a_zero_point = np.array([113], dtype=np.uint8) + +b = np.array([[152, 51, 244], + [60, 26, 255], + [0, 127, 246], + [127, 254, 247]], dtype=np.uint8) + +b_scale = np.array([0.00705], dtype=np.float32) +b_zero_point = np.array([114], dtype=np.uint8) + +y_scale = np.array([0.0107], dtype=np.float32) +y_zero_point = np.array([118], dtype=np.uint8) + +output = np.array([[168, 115, 255], + [1, 66, 151], ], dtype=np.uint8) + +expect(node, inputs=[a, a_scale, a_zero_point, b, b_scale, b_zero_point, y_scale, y_zero_point], outputs=[output], + name='test_qlinearmatmul_2D') + +#3D +a = np.array([[[208, 236, 0, 238], + [3, 214, 255, 29]], + [[208, 236, 0, 238], + [3, 214, 255, 29]]], dtype=np.uint8) + +a_scale = np.array([0.0066], dtype=np.float32) +a_zero_point = np.array([113], dtype=np.uint8) + +b = np.array([[[152, 51, 244], + [60, 26, 255], + [0, 127, 246], + [127, 254, 247]], + [[152, 51, 244], + [60, 26, 255], + [0, 127, 246], + [127, 254, 247]]], dtype=np.uint8) + +b_scale = np.array([0.00705], dtype=np.float32) +b_zero_point = np.array([114], dtype=np.uint8) + +y_scale = np.array([0.0107], dtype=np.float32) +y_zero_point = np.array([118], dtype=np.uint8) + +output = np.array([[[168, 115, 255], + [1, 66, 151]], + [[168, 115, 255], + [1, 66, 151]]], dtype=np.uint8) + +expect(node, inputs=[a, a_scale, a_zero_point, b, b_scale, b_zero_point, y_scale, y_zero_point], outputs=[output], + name='test_qlinearmatmul_3D') +``` + +
+ + +### QuantizeLinear +There are 2 test cases, listed as following: +
+axis + +```python +node = onnx.helper.make_node('QuantizeLinear', + inputs=['x', 'y_scale', 'y_zero_point'], + outputs=['y'],) + +x = np.array([[[[-162, 10], + [-100, 232], + [-20, -50]], + + [[-76, 0], + [0, 252], + [32, -44]], + + [[245, -485], + [-960, -270], + [-375, -470]], ], ], dtype=np.float32) +y_scale = np.array([2, 4, 5], dtype=np.float32) +y_zero_point = np.array([84, 24, 196], dtype=np.uint8) +y = (x / y_scale.reshape(1, 3, 1, 1) + y_zero_point.reshape(1, 3, 1, 1)).astype(np.uint8) + +expect(node, inputs=[x, y_scale, y_zero_point], outputs=[y], + name='test_quantizelinear_axis') +``` + +
+
+quantizelinear + +```python +node = onnx.helper.make_node('QuantizeLinear', + inputs=['x', 'y_scale', 'y_zero_point'], + outputs=['y'],) + +x = np.array([0, 2, 3, 1000, -254, -1000]).astype(np.float32) +y_scale = np.float32(2) +y_zero_point = np.uint8(128) +y = np.array([128, 129, 130, 255, 1, 0]).astype(np.uint8) + +expect(node, inputs=[x, y_scale, y_zero_point], outputs=[y], + name='test_quantizelinear') +``` + +
+ + +### RNN +There are 4 test cases, listed as following: +
+batchwise + +```python +input = np.array([[[1., 2.]], [[3., 4.]], [[5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 4 +weight_scale = 0.5 +layout = 1 + +node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R'], + outputs=['Y', 'Y_h'], + hidden_size=hidden_size, + layout=layout +) + +W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32) + +rnn = RNN_Helper(X=input, W=W, R=R, layout=layout) +Y, Y_h = rnn.step() +expect(node, inputs=[input, W, R], outputs=[Y.astype(np.float32), Y_h.astype(np.float32)], name='test_simple_rnn_batchwise') +``` + +
+
+defaults + +```python +input = np.array([[[1., 2.], [3., 4.], [5., 6.]]]).astype(np.float32) + +input_size = 2 +hidden_size = 4 +weight_scale = 0.1 + +node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32) + +rnn = RNN_Helper(X=input, W=W, R=R) +_, Y_h = rnn.step() +expect(node, inputs=[input, W, R], outputs=[Y_h.astype(np.float32)], name='test_simple_rnn_defaults') +``` + +
+
+initial_bias + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 5 +custom_bias = 0.1 +weight_scale = 0.1 + +node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32) +R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32) + +# Adding custom bias +W_B = custom_bias * np.ones((1, hidden_size)).astype(np.float32) +R_B = np.zeros((1, hidden_size)).astype(np.float32) +B = np.concatenate((W_B, R_B), axis=1) + +rnn = RNN_Helper(X=input, W=W, R=R, B=B) +_, Y_h = rnn.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], + name='test_simple_rnn_with_initial_bias') +``` + +
+
+seq_length + +```python +input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]], + [[10., 11., 12.], [13., 14., 15.], [16., 17., 18.]]]).astype(np.float32) + +input_size = 3 +hidden_size = 5 + +node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size +) + +W = np.random.randn(1, hidden_size, input_size).astype(np.float32) +R = np.random.randn(1, hidden_size, hidden_size).astype(np.float32) + +# Adding custom bias +W_B = np.random.randn(1, hidden_size).astype(np.float32) +R_B = np.random.randn(1, hidden_size).astype(np.float32) +B = np.concatenate((W_B, R_B), axis=1) + +rnn = RNN_Helper(X=input, W=W, R=R, B=B) +_, Y_h = rnn.step() +expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_rnn_seq_length') +``` + +
+ + +### Range +There are 2 test cases, listed as following: +
+range_float_type_positive_delta + +```python +node = onnx.helper.make_node( + 'Range', + inputs=['start', 'limit', 'delta'], + outputs=['output'], +) + +start = np.float32(1) +limit = np.float32(5) +delta = np.float32(2) + +output = np.arange(start, limit, delta, dtype=np.float32) # expected output [1.0, 3.0] +expect(node, inputs=[start, limit, delta], outputs=[output], + name='test_range_float_type_positive_delta') +``` + +
+
+range_int32_type_negative_delta + +```python +node = onnx.helper.make_node( + 'Range', + inputs=['start', 'limit', 'delta'], + outputs=['output'], +) + +start = np.int32(10) +limit = np.int32(6) +delta = np.int32(-3) + +output = np.arange(start, limit, delta, dtype=np.int32) # expected output [10, 7] +expect(node, inputs=[start, limit, delta], outputs=[output], + name='test_range_int32_type_negative_delta') +``` + +
+ + +### Reciprocal +There are 1 test cases, listed as following: +
+reciprocal + +```python +node = onnx.helper.make_node( + 'Reciprocal', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-4, 2]).astype(np.float32) +y = np.reciprocal(x) # expected output [-0.25, 0.5], +expect(node, inputs=[x], outputs=[y], + name='test_reciprocal_example') + +x = np.random.rand(3, 4, 5).astype(np.float32) + 0.5 +y = np.reciprocal(x) +expect(node, inputs=[x], outputs=[y], + name='test_reciprocal') +``` + +
+ + +### ReduceL1 +There are 4 test cases, listed as following: +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sum(a=np.abs(data), axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[78.]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(a=np.abs(data), axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_default_axes_keepdims_random') +``` + +
+
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [2] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[3., 7.], [11., 15.], [19., 23.]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_do_not_keepdims_random') +``` + +
+
+keepdims + +```python +shape = [3, 2, 2] +axes = [2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[3.], [7.]], [[11.], [15.]], [[19.], [23.]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_keep_dims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_keep_dims_random') +``` + +
+
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +# print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[3.], [7.]], [[11.], [15.]], [[19.], [23.]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_negative_axes_keep_dims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_negative_axes_keep_dims_random') +``` + +
+ + +### ReduceL2 +There are 4 test cases, listed as following: +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sqrt(np.sum( + a=np.square(data), axis=axes, keepdims=keepdims == 1)) +#print(reduced) +#[[[25.49509757]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sqrt(np.sum( + a=np.square(data), axis=axes, keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_default_axes_keepdims_random') +``` + +
+
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [2] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) +#print(reduced) +#[[2.23606798, 5.], +# [7.81024968, 10.63014581], +# [13.45362405, 16.2788206]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_do_not_keepdims_random') +``` + +
+
+keepdims + +```python +shape = [3, 2, 2] +axes = [2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +#print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) +#print(reduced) +#[[[2.23606798], [5.]] +# [[7.81024968], [10.63014581]] +# [[13.45362405], [16.2788206 ]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_keep_dims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_l2_keep_dims_random') +``` + +
+
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) +# print(data) +#[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) +# print(reduced) +#[[[2.23606798], [5.]] +# [[7.81024968], [10.63014581]] +# [[13.45362405], [16.2788206 ]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_negative_axes_keep_dims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_negative_axes_keep_dims_random') +``` + +
+ + +### ReduceLogSum +There are 3 test cases, listed as following: +
+keepdims + +```python +node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"] +) +data = np.random.ranf([3, 4, 5]).astype(np.float32) +reduced = np.log(np.sum(data, keepdims=True)) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_default') +``` + +
+
+negative_axes_keepdims + +```python +node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"], + axes=[-2] +) +data = np.random.ranf([3, 4, 5]).astype(np.float32) +reduced = np.log(np.sum(data, axis=(-2), keepdims=True)) +# print(reduced) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_negative_axes') +``` + +
+
+nokeepdims + +```python +node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"], + axes=[2, 1], + keepdims=0 +) +data = np.random.ranf([3, 4, 5]).astype(np.float32) +reduced = np.log(np.sum(data, axis=(2, 1), keepdims=False)) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_desc_axes') + +node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"], + axes=[0, 1], + keepdims=0 +) +data = np.random.ranf([3, 4, 5]).astype(np.float32) +reduced = np.log(np.sum(data, axis=(0, 1), keepdims=False)) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_asc_axes') +``` + +
+ + +### ReduceLogSumExp +There are 4 test cases, listed as following: +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims +) + +data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) +reduced = np.log(np.sum(np.exp(data), + axis=axes, + keepdims=keepdims == 1)) +# print(reduced) +# [[[60.00671387]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.double) +reduced = np.log(np.sum(np.exp(data), + axis=axes, + keepdims=keepdims == 1)) +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_default_axes_keepdims_random') +``` + +
+
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 +node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) +reduced = np.log(np.sum( + np.exp(data), axis=tuple(axes), keepdims=keepdims == 1)) +# print(reduced) +#[[20., 2.31326175] +# [40.00004578, 2.31326175] +# [60.00671387, 2.31326175]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.double) +reduced = np.log(np.sum( + np.exp(data), axis=tuple(axes), keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_do_not_keepdims_random') +``` + +
+
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 +node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) +reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) +# print(reduced) +# [[[20., 2.31326175]] +# [[40.00004578, 2.31326175]] +# [[60.00671387, 2.31326175]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.double) +reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_keepdims_random') +``` + +
+
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 +node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims +) + +data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) +reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) +# print(reduced) +# [[[20., 2.31326175]] +# [[40.00004578, 2.31326175]] +# [[60.00671387, 2.31326175]]] + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.double) +reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) + +expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_negative_axes_keepdims_random') +``` + +
+ + +### ReduceMax +There are 4 test cases, listed as following: +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 +node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.maximum.reduce(data, axis=axes, keepdims=keepdims == 1) +#print(reduced) +[[[60.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_default_axes_keepdim_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.maximum.reduce(data, axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_default_axes_keepdims_random') +``` + +
+
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[20., 2.] +# [40., 2.] +# [60., 2.]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_do_not_keepdims_random') +``` + +
+
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[20., 2.]] +# [[40., 2.]] +# [[60., 2.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_keepdims_random') +``` + +
+
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[20., 2.]] +# [[40., 2.]] +# [[60., 2.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_negative_axes_keepdims_random') +``` + +
+ + +### ReduceMean +There are 4 test cases, listed as following: +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.mean(data, axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[18.25]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.mean(data, axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_default_axes_keepdims_random') +``` + +
+
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[12.5, 1.5] +# [35., 1.5] +# [57.5, 1.5]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_do_not_keepdims_random') +``` + +
+
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[12.5, 1.5]] +# [[35., 1.5]] +# [[57.5, 1.5]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_keepdims_random') +``` + +
+
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +# [[[12.5, 1.5]] +# [[35., 1.5]] +# [[57.5, 1.5]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_negative_axes_keepdims_random') +``` + +
+ + +### ReduceMin +There are 4 test cases, listed as following: +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMin', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.minimum.reduce(data, axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[1.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.minimum.reduce(data, axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_default_axes_keepdims_random') +``` + +
+
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceMin', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[5., 1.] +# [30., 1.] +# [55., 1.]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_do_not_keepdims_random') +``` + +
+
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMin', inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[5., 1.]] +# [[30., 1.]] +# [[55., 1.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_keepdims_random') +``` + +
+
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceMin', inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[5., 1.]] +# [[30., 1.]] +# [[55., 1.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_negative_axes_keepdims_random') +``` + +
+ + +### ReduceProd +There are 4 test cases, listed as following: +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.prod(data, axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[4.790016e+08]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.prod(data, axis=axes, keepdims=keepdims == 1) +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_default_axes_keepdims_random') +``` + +
+
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[3., 8.] +# [35., 48.] +# [99., 120.]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_do_not_keepdims_random') +``` + +
+
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[3., 8.]] +# [[35., 48.]] +# [[99., 120.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_keepdims_random') +``` + +
+
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[3., 8.]] +# [[35., 48.]] +# [[99., 120.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_negative_axes_keepdims_random') +``` + +
+ + +### ReduceSum +There are 5 test cases, listed as following: +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = np.array([], dtype=np.int64) +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(data, axis=None, keepdims=keepdims == 1) +#print(reduced) +#[[[78.]]] + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(data, axis=None, keepdims=keepdims == 1) + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_default_axes_keepdims_random') +``` + +
+
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = np.array([1], dtype=np.int64) +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) +#print(reduced) +#[[4., 6.] +# [12., 14.] +# [20., 22.]] + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_do_not_keepdims_random') +``` + +
+
+empty_axes_input_noop + +```python +shape = [3, 2, 2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims, + noop_with_empty_axes=True) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +axes = np.array([], dtype=np.int64) +reduced = np.array(data) +#print(reduced) +#[[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]] + +expect(node, inputs=[data, axes], outputs=[reduced], + name='test_reduce_sum_empty_axes_input_noop_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.array(data) + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_negative_axes_keepdims_random') +``` + +
+
+keepdims + +```python +shape = [3, 2, 2] +axes = np.array([1], dtype=np.int64) +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) +#print(reduced) +#[[[4., 6.]] +# [[12., 14.]] +# [[20., 22.]]] + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) + +expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_keepdims_random') +``` + +
+
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = np.array([-2], dtype=np.int64) +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) +# print(reduced) +#[[[4., 6.]] +# [[12., 14.]] +# [[20., 22.]]] + +expect(node, inputs=[data, axes], outputs=[reduced], + name='test_reduce_sum_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(data, axis=tuple( + axes.tolist()), keepdims=keepdims == 1) + +expect(node, inputs=[data, axes], outputs=[reduced], + name='test_reduce_sum_negative_axes_keepdims_random') +``` + +
+ + +### ReduceSumSquare +There are 4 test cases, listed as following: +
+default_axes_keepdims + +```python +shape = [3, 2, 2] +axes = None +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(np.square(data), axis=axes, keepdims=keepdims == 1) +#print(reduced) +#[[[650.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_default_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(np.square(data), axis=axes, keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_default_axes_keepdims_random') +``` + +
+
+do_not_keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 0 + +node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[10., 20.] +# [74., 100.] +# [202., 244.]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_do_not_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_do_not_keepdims_random') +``` + +
+
+keepdims + +```python +shape = [3, 2, 2] +axes = [1] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) +#print(reduced) +#[[[10., 20.]] +# [[74., 100.]] +# [[202., 244.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_keepdims_random') +``` + +
+
+negative_axes_keepdims + +```python +shape = [3, 2, 2] +axes = [-2] +keepdims = 1 + +node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + +data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) +# print(reduced) +#[[[10., 20.s]] +# [[74., 100.]] +# [[202., 244.]]] + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_negative_axes_keepdims_example') + +np.random.seed(0) +data = np.random.uniform(-10, 10, shape).astype(np.float32) +reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + +expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_negative_axes_keepdims_random') +``` + +
+ + +### Relu +There are 1 test cases, listed as following: +
+relu + +```python +node = onnx.helper.make_node( + 'Relu', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) + +expect(node, inputs=[x], outputs=[y], + name='test_relu') +``` + +
+ + +### Reshape +There are 2 test cases, listed as following: +
+allowzero + +```python +original_shape = [0, 3, 4] +test_cases = { + 'allowzero_reordered': np.array([3, 4, 0], dtype=np.int64), +} +data = np.random.random_sample(original_shape).astype(np.float32) + +for test_name, shape in test_cases.items(): + node = onnx.helper.make_node( + 'Reshape', + inputs=['data', 'shape'], + outputs=['reshaped'], + allowzero=1, # if allowzero=1, final shape = (3, 4, 0) + # if allowzero=0, final shape = (3, 4, 4) + ) + + reshaped = reshape_reference_implementation(data, shape, allowzero=1) + + expect(node, inputs=[data, shape], outputs=[reshaped], + name='test_reshape_' + test_name) +``` + +
+
+reshape + +```python +original_shape = [2, 3, 4] +test_cases = { + 'reordered_all_dims': np.array([4, 2, 3], dtype=np.int64), + 'reordered_last_dims': np.array([2, 4, 3], dtype=np.int64), + 'reduced_dims': np.array([2, 12], dtype=np.int64), + 'extended_dims': np.array([2, 3, 2, 2], dtype=np.int64), + 'one_dim': np.array([24], dtype=np.int64), + 'negative_dim': np.array([2, -1, 2], dtype=np.int64), + 'negative_extended_dims': np.array([-1, 2, 3, 4], dtype=np.int64), + 'zero_dim': np.array([2, 0, 4, 1], dtype=np.int64), + 'zero_and_negative_dim': np.array([2, 0, 1, -1], dtype=np.int64), +} +data = np.random.random_sample(original_shape).astype(np.float32) + +for test_name, shape in test_cases.items(): + node = onnx.helper.make_node( + 'Reshape', + inputs=['data', 'shape'], + outputs=['reshaped'], + ) + + reshaped = reshape_reference_implementation(data, shape) + + expect(node, inputs=[data, shape], outputs=[reshaped], + name='test_reshape_' + test_name) +``` + +
+ + +### Resize +There are 23 test cases, listed as following: +
+resize_downsample_scales_cubic + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.8, 0.8], dtype=np.float32) + +# [[[[ 1.47119141 2.78125 4.08251953] +# [ 6.71142578 8.02148438 9.32275391] +# [11.91650391 13.2265625 14.52783203]]]] +output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_cubic') +``` + +
+
+resize_downsample_scales_cubic_A_n0p5_exclude_outside + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + cubic_coeff_a=-0.5, + exclude_outside=True +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.8, 0.8], dtype=np.float32) + +# [[[[ 1.36812675 2.6695014 4.0133367 ] +# [ 6.57362535 7.875 9.2188353 ] +# [11.94896657 13.25034122 14.59417652]]]] +output = interpolate_nd(data, lambda x: cubic_coeffs(x, A=-0.5), scale_factors=scales, + exclude_outside=True).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_cubic_A_n0p5_exclude_outside') +``` + +
+
+resize_downsample_scales_cubic_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + coordinate_transformation_mode='align_corners' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.8, 0.8], dtype=np.float32) + +# [[[[ 1. 2.39519159 3.79038317] +# [ 6.58076634 7.97595793 9.37114951] +# [12.16153268 13.55672427 14.95191585]]]] +output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_cubic_align_corners') +``` + +
+
+resize_downsample_scales_linear + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) + +# [[[[2.6666665 4.3333331]]]] +output = interpolate_nd( + data, linear_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_linear') +``` + +
+
+resize_downsample_scales_linear_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='align_corners' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) + +# [[[[1. 3.142857]]]] +output = interpolate_nd( + data, linear_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_linear_align_corners') +``` + +
+
+resize_downsample_scales_nearest + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) + +# [[[[1. 3.]]]] +output = interpolate_nd( + data, nearest_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_nearest') +``` + +
+
+resize_downsample_sizes_cubic + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='cubic', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 3, 3], dtype=np.int64) + +# [[[[ 1.63078704 3.00462963 4.37847222] +# [ 7.12615741 8.5 9.87384259] +# [12.62152778 13.99537037 15.36921296]]]] +output = interpolate_nd( + data, cubic_coeffs, output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_downsample_sizes_cubic') +``` + +
+
+resize_downsample_sizes_linear_pytorch_half_pixel + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='pytorch_half_pixel' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 3, 1], dtype=np.int64) + +# [[[[ 1.6666666] +# [ 7. ] +# [12.333333 ]]]] +output = interpolate_nd( + data, linear_coeffs, output_size=sizes, coordinate_transformation_mode='pytorch_half_pixel').astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_downsample_sizes_linear_pytorch_half_pixel') +``` + +
+
+resize_downsample_sizes_nearest + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 1, 3], dtype=np.int64) + +# [[[[1. 3.]]]] +output = interpolate_nd( + data, nearest_coeffs, output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_downsample_sizes_nearest') +``` + +
+
+resize_tf_crop_and_resize + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', 'roi', '', 'sizes'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='tf_crop_and_resize' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +# Note: for some rois, the result may be different with that of TF for inaccurate floating point +roi = np.array([0, 0, 0.4, 0.6, 1, 1, 0.6, 0.8], dtype=np.float32) +sizes = np.array([1, 1, 3, 3], dtype=np.int64) + +# [[[[ 7.6000004 7.9 8.2 ] +# [ 8.8 9.1 9.400001 ] +# [10. 10.3 10.6 ]]]] +output = interpolate_nd(data, linear_coeffs, output_size=sizes, roi=roi, + coordinate_transformation_mode='tf_crop_and_resize').astype(np.float32) + +expect(node, inputs=[data, roi, sizes], outputs=[output], + name='test_resize_tf_crop_and_resize') +``` + +
+
+resize_tf_crop_and_resize_extrapolation_value + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', 'roi', '', 'sizes'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='tf_crop_and_resize', + extrapolation_value=10.0 +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +# Note: for some rois, the result may be different with that of TF for inaccurate floating point +roi = np.array([0, 0, 0.4, 0.6, 1, 1, 1.2, 1.7], dtype=np.float32) +sizes = np.array([1, 1, 3, 3], dtype=np.int64) + +# [[[[ 7.6000004 10. 10. ] +# [12.400001 10. 10. ] +# [10. 10. 10. ]]]] +output = interpolate_nd(data, linear_coeffs, output_size=sizes, roi=roi, + coordinate_transformation_mode='tf_crop_and_resize', extrapolation_value=10.0).astype(np.float32) + +expect(node, inputs=[data, roi, sizes], outputs=[output], + name='test_resize_tf_crop_and_resize') +``` + +
+
+resize_upsample_scales_cubic + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[ 0.47265625 0.76953125 1.24609375 1.875 2.28125 +# 2.91015625 3.38671875 3.68359375] +# [ 1.66015625 1.95703125 2.43359375 3.0625 3.46875 +# 4.09765625 4.57421875 4.87109375] +# [ 3.56640625 3.86328125 4.33984375 4.96875 5.375 +# 6.00390625 6.48046875 6.77734375] +# [ 6.08203125 6.37890625 6.85546875 7.484375 7.890625 +# 8.51953125 8.99609375 9.29296875] +# [ 7.70703125 8.00390625 8.48046875 9.109375 9.515625 +# 10.14453125 10.62109375 10.91796875] +# [10.22265625 10.51953125 10.99609375 11.625 12.03125 +# 12.66015625 13.13671875 13.43359375] +# [12.12890625 12.42578125 12.90234375 13.53125 13.9375 +# 14.56640625 15.04296875 15.33984375] +# [13.31640625 13.61328125 14.08984375 14.71875 15.125 +# 15.75390625 16.23046875 16.52734375]]]] +output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic') +``` + +
+
+resize_upsample_scales_cubic_A_n0p5_exclude_outside + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + cubic_coeff_a=-0.5, + exclude_outside=True +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[ 0.55882353 0.81494204 1.35698249 1.89705882 2.39705882 +# 2.93713516 3.47917561 3.73529412] +# [ 1.58329755 1.83941606 2.38145651 2.92153285 3.42153285 +# 3.96160918 4.50364964 4.75976814] +# [ 3.75145936 4.00757787 4.54961832 5.08969466 5.58969466 +# 6.12977099 6.67181144 6.92792995] +# [ 5.91176471 6.16788321 6.70992366 7.25 7.75 +# 8.29007634 8.83211679 9.08823529] +# [ 7.91176471 8.16788321 8.70992366 9.25 9.75 +# 10.29007634 10.83211679 11.08823529] +# [10.07207005 10.32818856 10.87022901 11.41030534 11.91030534 +# 12.45038168 12.99242213 13.24854064] +# [12.24023186 12.49635036 13.03839082 13.57846715 14.07846715 +# 14.61854349 15.16058394 15.41670245] +# [13.26470588 13.52082439 14.06286484 14.60294118 15.10294118 +# 15.64301751 16.18505796 16.44117647]]]] +output = interpolate_nd(data, lambda x: cubic_coeffs(x, A=-0.5), scale_factors=scales, + exclude_outside=True).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic_A_n0p5_exclude_outside') +``` + +
+
+resize_upsample_scales_cubic_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + coordinate_transformation_mode='align_corners' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[ 1. 1.34110787 1.80029155 2.32944606 2.67055394 +# 3.19970845 3.65889213 4. ] +# [ 2.36443149 2.70553936 3.16472303 3.69387755 4.03498542 +# 4.56413994 5.02332362 5.36443149] +# [ 4.20116618 4.54227405 5.00145773 5.53061224 5.87172012 +# 6.40087464 6.86005831 7.20116618] +# [ 6.31778426 6.65889213 7.1180758 7.64723032 7.98833819 +# 8.51749271 8.97667638 9.31778426] +# [ 7.68221574 8.02332362 8.48250729 9.01166181 9.35276968 +# 9.8819242 10.34110787 10.68221574] +# [ 9.79883382 10.13994169 10.59912536 11.12827988 11.46938776 +# 11.99854227 12.45772595 12.79883382] +# [11.63556851 11.97667638 12.43586006 12.96501458 13.30612245 +# 13.83527697 14.29446064 14.63556851] +# [13. 13.34110787 13.80029155 14.32944606 14.67055394 +# 15.19970845 15.65889213 16. ]]]] +output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic_align_corners') +``` + +
+
+resize_upsample_scales_cubic_asymmetric + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + coordinate_transformation_mode='asymmetric' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[ 1. 1.40625 2. 2.5 3. 3.59375 4. +# 4.09375] +# [ 2.625 3.03125 3.625 4.125 4.625 5.21875 5.625 +# 5.71875] +# [ 5. 5.40625 6. 6.5 7. 7.59375 8. +# 8.09375] +# [ 7. 7.40625 8. 8.5 9. 9.59375 10. +# 10.09375] +# [ 9. 9.40625 10. 10.5 11. 11.59375 12. +# 12.09375] +# [11.375 11.78125 12.375 12.875 13.375 13.96875 14.375 +# 14.46875] +# [13. 13.40625 14. 14.5 15. 15.59375 16. +# 16.09375] +# [13.375 13.78125 14.375 14.875 15.375 15.96875 16.375 +# 16.46875]]]] +output = interpolate_nd(data, lambda x: cubic_coeffs(x, A=-0.75), scale_factors=scales, + coordinate_transformation_mode='asymmetric').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic_asymmetric') +``` + +
+
+resize_upsample_scales_linear + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[1. 1.25 1.75 2. ] +# [1.5 1.75 2.25 2.5 ] +# [2.5 2.75 3.25 3.5 ] +# [3. 3.25 3.75 4. ]]]] +output = interpolate_nd( + data, linear_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_linear') +``` + +
+
+resize_upsample_scales_linear_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='align_corners' +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + +# [[[[1. 1.33333333 1.66666667 2. ] +# [1.66666667 2. 2.33333333 2.66666667] +# [2.33333333 2.66666667 3. 3.33333333] +# [3. 3.33333333 3.66666667 4. ]]]] +output = interpolate_nd( + data, linear_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_linear_align_corners') +``` + +
+
+resize_upsample_scales_nearest + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32) + +# [[[[1. 1. 1. 2. 2. 2.] +# [1. 1. 1. 2. 2. 2.] +# [3. 3. 3. 4. 4. 4.] +# [3. 3. 3. 4. 4. 4.]]]] +output = interpolate_nd( + data, nearest_coeffs, scale_factors=scales).astype(np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_nearest') +``` + +
+
+resize_upsample_sizes_cubic + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='cubic', +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 9, 10], dtype=np.int64) + +# [[[[ 0.45507922 0.64057922 0.97157922 1.42257922 1.90732922 +# 2.22332922 2.70807922 3.15907922 3.49007922 3.67557922] +# [ 1.39437963 1.57987963 1.91087963 2.36187963 2.84662963 +# 3.16262963 3.64737963 4.09837963 4.42937963 4.61487963] +# [ 2.95130693 3.13680693 3.46780693 3.91880693 4.40355693 +# 4.71955693 5.20430693 5.65530693 5.98630693 6.17180693] +# [ 5.20525069 5.39075069 5.72175069 6.17275069 6.65750069 +# 6.97350069 7.45825069 7.90925069 8.24025069 8.42575069] +# [ 6.88975 7.07525 7.40625 7.85725 8.342 +# 8.658 9.14275 9.59375 9.92475 10.11025 ] +# [ 8.57424931 8.75974931 9.09074931 9.54174931 10.02649931 +# 10.34249931 10.82724931 11.27824931 11.60924931 11.79474931] +# [10.82819307 11.01369307 11.34469307 11.79569307 12.28044307 +# 12.59644307 13.08119307 13.53219307 13.86319307 14.04869307] +# [12.38512037 12.57062037 12.90162037 13.35262037 13.83737037 +# 14.15337037 14.63812037 15.08912037 15.42012037 15.60562037] +# [13.32442078 13.50992078 13.84092078 14.29192078 14.77667078 +# 15.09267078 15.57742078 16.02842078 16.35942078 16.54492078]]]] +output = interpolate_nd( + data, cubic_coeffs, output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_cubic') +``` + +
+
+resize_upsample_sizes_nearest + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 7, 8], dtype=np.int64) + +# [[[[1. 1. 1. 1. 2. 2. 2. 2.] +# [1. 1. 1. 1. 2. 2. 2. 2.] +# [1. 1. 1. 1. 2. 2. 2. 2.] +# [1. 1. 1. 1. 2. 2. 2. 2.] +# [3. 3. 3. 3. 4. 4. 4. 4.] +# [3. 3. 3. 3. 4. 4. 4. 4.] +# [3. 3. 3. 3. 4. 4. 4. 4.]]]] +output = interpolate_nd( + data, nearest_coeffs, output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest') +``` + +
+
+resize_upsample_sizes_nearest_ceil_half_pixel + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + coordinate_transformation_mode='half_pixel', + nearest_mode='ceil' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 8, 8], dtype=np.int64) + +# [[[[ 1. 2. 2. 3. 3. 4. 4. 4.] +# [ 5. 6. 6. 7. 7. 8. 8. 8.] +# [ 5. 6. 6. 7. 7. 8. 8. 8.] +# [ 9. 10. 10. 11. 11. 12. 12. 12.] +# [ 9. 10. 10. 11. 11. 12. 12. 12.] +# [13. 14. 14. 15. 15. 16. 16. 16.] +# [13. 14. 14. 15. 15. 16. 16. 16.] +# [13. 14. 14. 15. 15. 16. 16. 16.]]]] +output = interpolate_nd( + data, lambda x: nearest_coeffs(x, mode='ceil'), output_size=sizes).astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest_ceil_half_pixel') +``` + +
+
+resize_upsample_sizes_nearest_floor_align_corners + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + coordinate_transformation_mode='align_corners', + nearest_mode='floor' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 8, 8], dtype=np.int64) + +# [[[[ 1. 1. 1. 2. 2. 3. 3. 4.] +# [ 1. 1. 1. 2. 2. 3. 3. 4.] +# [ 1. 1. 1. 2. 2. 3. 3. 4.] +# [ 5. 5. 5. 6. 6. 7. 7. 8.] +# [ 5. 5. 5. 6. 6. 7. 7. 8.] +# [ 9. 9. 9. 10. 10. 11. 11. 12.] +# [ 9. 9. 9. 10. 10. 11. 11. 12.] +# [13. 13. 13. 14. 14. 15. 15. 16.]]]] +output = interpolate_nd( + data, lambda x: nearest_coeffs(x, mode='floor'), output_size=sizes, coordinate_transformation_mode='align_corners').astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest_floor_align_corners') +``` + +
+
+resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric + +```python +node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + coordinate_transformation_mode='asymmetric', + nearest_mode='round_prefer_ceil' +) + +data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], +]]], dtype=np.float32) + +sizes = np.array([1, 1, 8, 8], dtype=np.int64) + +# [[[[ 1. 2. 2. 3. 3. 4. 4. 4.] +# [ 5. 6. 6. 7. 7. 8. 8. 8.] +# [ 5. 6. 6. 7. 7. 8. 8. 8.] +# [ 9. 10. 10. 11. 11. 12. 12. 12.] +# [ 9. 10. 10. 11. 11. 12. 12. 12.] +# [13. 14. 14. 15. 15. 16. 16. 16.] +# [13. 14. 14. 15. 15. 16. 16. 16.] +# [13. 14. 14. 15. 15. 16. 16. 16.]]]] +output = interpolate_nd( + data, lambda x: nearest_coeffs(x, mode='round_prefer_ceil'), + output_size=sizes, coordinate_transformation_mode='asymmetric').astype(np.float32) + +expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric') +``` + +
+ + +### ReverseSequence +There are 2 test cases, listed as following: +
+reversesequence_batch + +```python +node = onnx.helper.make_node( + 'ReverseSequence', + inputs=['x', 'sequence_lens'], + outputs=['y'], + time_axis=1, + batch_axis=0, +) +x = np.array([[0.0, 1.0, 2.0, 3.0], + [4.0, 5.0, 6.0, 7.0], + [8.0, 9.0, 10.0, 11.0], + [12.0, 13.0, 14.0, 15.0]], dtype=np.float32) +sequence_lens = np.array([1, 2, 3, 4], dtype=np.int64) + +y = np.array([[0.0, 1.0, 2.0, 3.0], + [5.0, 4.0, 6.0, 7.0], + [10.0, 9.0, 8.0, 11.0], + [15.0, 14.0, 13.0, 12.0]], dtype=np.float32) + +expect(node, inputs=[x, sequence_lens], outputs=[y], + name='test_reversesequence_batch') +``` + +
+
+reversesequence_time + +```python +node = onnx.helper.make_node( + 'ReverseSequence', + inputs=['x', 'sequence_lens'], + outputs=['y'], + time_axis=0, + batch_axis=1, +) +x = np.array([[0.0, 4.0, 8.0, 12.0], + [1.0, 5.0, 9.0, 13.0], + [2.0, 6.0, 10.0, 14.0], + [3.0, 7.0, 11.0, 15.0]], dtype=np.float32) +sequence_lens = np.array([4, 3, 2, 1], dtype=np.int64) + +y = np.array([[3.0, 6.0, 9.0, 12.0], + [2.0, 5.0, 8.0, 13.0], + [1.0, 4.0, 10.0, 14.0], + [0.0, 7.0, 11.0, 15.0]], dtype=np.float32) + +expect(node, inputs=[x, sequence_lens], outputs=[y], + name='test_reversesequence_time') +``` + +
+ + +### RoiAlign +There are 2 test cases, listed as following: +
+roialign_aligned_false + +```python +node = onnx.helper.make_node( + "RoiAlign", + inputs=["X", "rois", "batch_indices"], + outputs=["Y"], + spatial_scale=1.0, + output_height=5, + output_width=5, + sampling_ratio=2, + coordinate_transformation_mode="output_half_pixel", +) + +X, batch_indices, rois = get_roi_align_input_values() +# (num_rois, C, output_height, output_width) +Y = np.array( + [ + [ + [ + [0.4664, 0.4466, 0.3405, 0.5688, 0.6068], + [0.3714, 0.4296, 0.3835, 0.5562, 0.3510], + [0.2768, 0.4883, 0.5222, 0.5528, 0.4171], + [0.4713, 0.4844, 0.6904, 0.4920, 0.8774], + [0.6239, 0.7125, 0.6289, 0.3355, 0.3495], + ] + ], + [ + [ + [0.3022, 0.4305, 0.4696, 0.3978, 0.5423], + [0.3656, 0.7050, 0.5165, 0.3172, 0.7015], + [0.2912, 0.5059, 0.6476, 0.6235, 0.8299], + [0.5916, 0.7389, 0.7048, 0.8372, 0.8893], + [0.6227, 0.6153, 0.7097, 0.6154, 0.4585], + ] + ], + [ + [ + [0.2384, 0.3379, 0.3717, 0.6100, 0.7601], + [0.3767, 0.3785, 0.7147, 0.9243, 0.9727], + [0.5749, 0.5826, 0.5709, 0.7619, 0.8770], + [0.5355, 0.2566, 0.2141, 0.2796, 0.3600], + [0.4365, 0.3504, 0.2887, 0.3661, 0.2349], + ] + ], + ], + dtype=np.float32, +) + +expect(node, inputs=[X, rois, batch_indices], outputs=[Y], name="test_roialign_aligned_false") +``` + +
+
+roialign_aligned_true + +```python +node = onnx.helper.make_node( + "RoiAlign", + inputs=["X", "rois", "batch_indices"], + outputs=["Y"], + spatial_scale=1.0, + output_height=5, + output_width=5, + sampling_ratio=2, + coordinate_transformation_mode="half_pixel", +) + +X, batch_indices, rois = get_roi_align_input_values() +# (num_rois, C, output_height, output_width) +Y = np.array( + [ + [ + [ + [0.5178, 0.3434, 0.3229, 0.4474, 0.6344], + [0.4031, 0.5366, 0.4428, 0.4861, 0.4023], + [0.2512, 0.4002, 0.5155, 0.6954, 0.3465], + [0.3350, 0.4601, 0.5881, 0.3439, 0.6849], + [0.4932, 0.7141, 0.8217, 0.4719, 0.4039], + ] + ], + [ + [ + [0.3070, 0.2187, 0.3337, 0.4880, 0.4870], + [0.1871, 0.4914, 0.5561, 0.4192, 0.3686], + [0.1433, 0.4608, 0.5971, 0.5310, 0.4982], + [0.2788, 0.4386, 0.6022, 0.7000, 0.7524], + [0.5774, 0.7024, 0.7251, 0.7338, 0.8163], + ] + ], + [ + [ + [0.2393, 0.4075, 0.3379, 0.2525, 0.4743], + [0.3671, 0.2702, 0.4105, 0.6419, 0.8308], + [0.5556, 0.4543, 0.5564, 0.7502, 0.9300], + [0.6626, 0.5617, 0.4813, 0.4954, 0.6663], + [0.6636, 0.3721, 0.2056, 0.1928, 0.2478], + ] + ], + ], + dtype=np.float32, +) + +expect(node, inputs=[X, rois, batch_indices], outputs=[Y], name="test_roialign_aligned_true") +``` + +
+ + +### Round +There are 1 test cases, listed as following: +
+round + +```python +node = onnx.helper.make_node( + 'Round', + inputs=['x'], + outputs=['y'], +) + +x = np.array([0.1, 0.5, 0.9, 1.2, 1.5, + 1.8, 2.3, 2.5, 2.7, -1.1, + -1.5, -1.9, -2.2, -2.5, -2.8]).astype(np.float32) +y = np.array([0., 0., 1., 1., 2., + 2., 2., 2., 3., -1., + -2., -2., -2., -2., -3.]).astype(np.float32) # expected output +expect(node, inputs=[x], outputs=[y], + name='test_round') +``` + +
+ + +### Scan +There are 2 test cases, listed as following: +
+scan_8 + +```python +# Given an input sequence [x1, ..., xN], sum up its elements using a scan +# returning the final state (x1+x2+...+xN) as well the scan_output +# [x1, x1+x2, ..., x1+x2+...+xN] +# +# create graph to represent scan body +sum_in = onnx.helper.make_tensor_value_info('sum_in', onnx.TensorProto.FLOAT, [2]) +next = onnx.helper.make_tensor_value_info('next', onnx.TensorProto.FLOAT, [2]) +sum_out = onnx.helper.make_tensor_value_info('sum_out', onnx.TensorProto.FLOAT, [2]) +scan_out = onnx.helper.make_tensor_value_info('scan_out', onnx.TensorProto.FLOAT, [2]) +add_node = onnx.helper.make_node( + 'Add', + inputs=['sum_in', 'next'], + outputs=['sum_out'] +) +id_node = onnx.helper.make_node( + 'Identity', + inputs=['sum_out'], + outputs=['scan_out'] +) +scan_body = onnx.helper.make_graph( + [add_node, id_node], + 'scan_body', + [sum_in, next], + [sum_out, scan_out] +) +# create scan op node +no_sequence_lens = '' # optional input, not supplied +node = onnx.helper.make_node( + 'Scan', + inputs=[no_sequence_lens, 'initial', 'x'], + outputs=['y', 'z'], + num_scan_inputs=1, + body=scan_body +) +# create inputs for batch-size 1, sequence-length 3, inner dimension 2 +initial = np.array([0, 0]).astype(np.float32).reshape((1, 2)) +x = np.array([1, 2, 3, 4, 5, 6]).astype(np.float32).reshape((1, 3, 2)) +# final state computed = [1 + 3 + 5, 2 + 4 + 6] +y = np.array([9, 12]).astype(np.float32).reshape((1, 2)) +# scan-output computed +z = np.array([1, 2, 4, 6, 9, 12]).astype(np.float32).reshape((1, 3, 2)) + +expect(node, inputs=[initial, x], outputs=[y, z], + name='test_scan_sum', opset_imports=[onnx.helper.make_opsetid("", 8)]) +``` + +
+
+scan_9 + +```python +# Given an input sequence [x1, ..., xN], sum up its elements using a scan +# returning the final state (x1+x2+...+xN) as well the scan_output +# [x1, x1+x2, ..., x1+x2+...+xN] +# +# create graph to represent scan body +sum_in = onnx.helper.make_tensor_value_info('sum_in', onnx.TensorProto.FLOAT, [2]) +next = onnx.helper.make_tensor_value_info('next', onnx.TensorProto.FLOAT, [2]) +sum_out = onnx.helper.make_tensor_value_info('sum_out', onnx.TensorProto.FLOAT, [2]) +scan_out = onnx.helper.make_tensor_value_info('scan_out', onnx.TensorProto.FLOAT, [2]) +add_node = onnx.helper.make_node( + 'Add', + inputs=['sum_in', 'next'], + outputs=['sum_out'] +) +id_node = onnx.helper.make_node( + 'Identity', + inputs=['sum_out'], + outputs=['scan_out'] +) +scan_body = onnx.helper.make_graph( + [add_node, id_node], + 'scan_body', + [sum_in, next], + [sum_out, scan_out] +) +# create scan op node +node = onnx.helper.make_node( + 'Scan', + inputs=['initial', 'x'], + outputs=['y', 'z'], + num_scan_inputs=1, + body=scan_body +) +# create inputs for sequence-length 3, inner dimension 2 +initial = np.array([0, 0]).astype(np.float32).reshape((2,)) +x = np.array([1, 2, 3, 4, 5, 6]).astype(np.float32).reshape((3, 2)) +# final state computed = [1 + 3 + 5, 2 + 4 + 6] +y = np.array([9, 12]).astype(np.float32).reshape((2,)) +# scan-output computed +z = np.array([1, 2, 4, 6, 9, 12]).astype(np.float32).reshape((3, 2)) + +expect(node, inputs=[initial, x], outputs=[y, z], + name='test_scan9_sum', opset_imports=[onnx.helper.make_opsetid("", 9)]) +``` + +
+ + +### Scatter +There are 2 test cases, listed as following: +
+scatter_with_axis + +```python +axis = 1 +node = onnx.helper.make_node( + 'Scatter', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, +) +data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) +indices = np.array([[1, 3]], dtype=np.int64) +updates = np.array([[1.1, 2.1]], dtype=np.float32) + +y = scatter(data, indices, updates, axis=axis) +# print(y) produces +# [[1.0, 1.1, 3.0, 2.1, 5.0]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_with_axis', opset_imports=[helper.make_opsetid("", 10)]) +``` + +
+
+scatter_without_axis + +```python +node = onnx.helper.make_node( + 'Scatter', + inputs=['data', 'indices', 'updates'], + outputs=['y'], +) +data = np.zeros((3, 3), dtype=np.float32) +indices = np.array([[1, 0, 2], [0, 2, 1]], dtype=np.int64) +updates = np.array([[1.0, 1.1, 1.2], [2.0, 2.1, 2.2]], dtype=np.float32) + +y = scatter(data, indices, updates) +# print(y) produces +# [[2.0, 1.1, 0.0], +# [1.0, 0.0, 2.2], +# [0.0, 2.1, 1.2]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_without_axis', opset_imports=[helper.make_opsetid("", 10)]) +``` + +
+ + +### ScatterElements +There are 4 test cases, listed as following: +
+scatter_elements_with_axis + +```python +axis = 1 +node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, +) +data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) +indices = np.array([[1, 3]], dtype=np.int64) +updates = np.array([[1.1, 2.1]], dtype=np.float32) + +y = scatter_elements(data, indices, updates, axis) +# print(y) produces +# [[1.0, 1.1, 3.0, 2.1, 5.0]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_with_axis') +``` + +
+
+scatter_elements_with_duplicate_indices + +```python +axis = 1 +node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, + reduction='add', +) +data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) +indices = np.array([[1, 1]], dtype=np.int64) +updates = np.array([[1.1, 2.1]], dtype=np.float32) + +y = scatter_elements(data, indices, updates, axis, reduction='add') +# print(y) produces +# [[1.0, 5.2, 3.0, 4.0, 5.0]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_with_duplicate_indices') +``` + +
+
+scatter_elements_with_negative_indices + +```python +axis = 1 +node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, +) +data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) +indices = np.array([[1, -3]], dtype=np.int64) +updates = np.array([[1.1, 2.1]], dtype=np.float32) + +y = scatter_elements(data, indices, updates, axis) +# print(y) produces +# [[1.0, 1.1, 2.1, 4.0, 5.0]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_with_negative_indices') +``` + +
+
+scatter_elements_without_axis + +```python +node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], +) +data = np.zeros((3, 3), dtype=np.float32) +indices = np.array([[1, 0, 2], [0, 2, 1]], dtype=np.int64) +updates = np.array([[1.0, 1.1, 1.2], [2.0, 2.1, 2.2]], dtype=np.float32) + +y = scatter_elements(data, indices, updates) +# print(y) produces +# [[2.0, 1.1, 0.0], +# [1.0, 0.0, 2.2], +# [0.0, 2.1, 1.2]] + +expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_without_axis') +``` + +
+ + +### ScatterND +There are 3 test cases, listed as following: +
+scatternd + +```python +node = onnx.helper.make_node( + 'ScatterND', + inputs=['data', 'indices', 'updates'], + outputs=['y'], +) +data = np.array( + [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +indices = np.array([[0], [2]], dtype=np.int64) +updates = np.array( + [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]], dtype=np.float32) +# Expecting output as np.array( +# [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], +# [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], +# [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], +# [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +output = scatter_nd_impl(data, indices, updates) +expect(node, inputs=[data, indices, updates], outputs=[output], + name='test_scatternd') +``` + +
+
+scatternd_add + +```python +node = onnx.helper.make_node( + 'ScatterND', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + reduction='add', +) +data = np.array( + [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +indices = np.array([[0], [0]], dtype=np.int64) +updates = np.array( + [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]], dtype=np.float32) +# Expecting output as np.array( +# [[[7, 8, 9, 10], [13, 14, 15, 16], [18, 17, 16, 15], [16, 15, 14, 13]], +# [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], +# [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], +# [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +output = scatter_nd_impl(data, indices, updates, reduction='add') +expect(node, inputs=[data, indices, updates], outputs=[output], + name='test_scatternd_add') +``` + +
+
+scatternd_multiply + +```python +node = onnx.helper.make_node( + 'ScatterND', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + reduction='mul', +) +data = np.array( + [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +indices = np.array([[0], [0]], dtype=np.int64) +updates = np.array( + [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]], dtype=np.float32) +# Expecting output as np.array( +# [[[5, 10, 15, 20], [60, 72, 84, 96], [168, 147, 126, 105], [128, 96, 64, 32]], +# [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], +# [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], +# [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) +output = scatter_nd_impl(data, indices, updates, reduction='mul') +expect(node, inputs=[data, indices, updates], outputs=[output], + name='test_scatternd_multiply') +``` + +
+ + +### Selu +There are 2 test cases, listed as following: +
+selu + +```python +node = onnx.helper.make_node( + 'Selu', + inputs=['x'], + outputs=['y'], + alpha=2.0, + gamma=3.0 +) + +x = np.array([-1, 0, 1]).astype(np.float32) +# expected output [-3.79272318, 0., 3.] +y = np.clip(x, 0, np.inf) * 3.0 + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 * 3.0 +expect(node, inputs=[x], outputs=[y], + name='test_selu_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) * 3.0 + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 * 3.0 +expect(node, inputs=[x], outputs=[y], + name='test_selu') +``` + +
+
+selu_default + +```python +default_alpha = 1.67326319217681884765625 +default_gamma = 1.05070102214813232421875 +node = onnx.helper.make_node( + 'Selu', + inputs=['x'], + outputs=['y'], +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, 0, np.inf) * default_gamma + \ + (np.exp(np.clip(x, -np.inf, 0)) - 1) * default_alpha * default_gamma +expect(node, inputs=[x], outputs=[y], + name='test_selu_default') +``` + +
+ + +### SequenceInsert +There are 1 test cases, listed as following: +
+sequenceinsert + +```python +test_cases = { + 'at_back': [np.array([10, 11, 12]).astype(np.int64)], + 'at_front': [np.array([-2, -1, 0]), np.array([0]).astype(np.int64)] +} +sequence = [np.array([1, 2, 3, 4]).astype(np.int64), np.array([5, 6, 7]).astype(np.int64), np.array([8, 9]).astype(np.int64)] + +for test_name, test_inputs in test_cases.items(): + tensor = test_inputs[0].astype(np.int64) + + if len(test_inputs) > 1: + node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['sequence', 'tensor', 'position'], + outputs=['output_sequence'] + ) + position = test_inputs[1] + inserted = sequence_insert_reference_implementation(sequence, tensor, position) + expect(node, inputs=[sequence, tensor, position], outputs=[inserted], + name='test_sequence_insert_' + test_name) + else: + node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['sequence', 'tensor'], + outputs=['output_sequence'] + ) + inserted = sequence_insert_reference_implementation(sequence, tensor) + expect(node, inputs=[sequence, tensor], outputs=[inserted], + name='test_sequence_insert_' + test_name) +``` + +
+ + +### SequenceMap +There are 6 test cases, listed as following: +
+sequence_map_add_1_sequence_1_tensor + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Add', ['in0', 'in1'], ['out0'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['N'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['N'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0'], + body=body +) + +x0 = [np.random.uniform(0.0, 1.0, 10).astype(np.float32) for k in range(3)] +x1 = np.random.uniform(0.0, 1.0, 10).astype(np.float32) +y0 = [x0[i] + x1 for i in range(3)] +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N']), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +expect(node, inputs=[x0, x1], outputs=[y0], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_add_1_sequence_1_tensor') +``` + +
+
+sequence_map_add_2_sequences + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Add', ['in0', 'in1'], ['out0'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['N'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['N'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0'], + body=body +) + +N = [np.random.randint(1, 10) for _ in range(3)] +x0 = [np.random.uniform(0.0, 1.0, N[k]).astype(np.float32) + for k in range(3)] +x1 = [np.random.uniform(0.0, 1.0, N[k]).astype(np.float32) + for k in range(3)] +y0 = [x0[k] + x1[k] for k in range(3)] +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +expect(node, inputs=[x0, x1], outputs=[y0], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_add_2_sequences') +``` + +
+
+sequence_map_extract_shapes + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Shape', ['x'], ['shape'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, ['H', 'W', 'C'])], + [onnx.helper.make_tensor_value_info('shape', onnx.TensorProto.INT64, [3])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['in_seq'], + outputs=['shapes'], + body=body +) + +shapes = [ + np.array([40, 30, 3], dtype=np.int64), + np.array([20, 10, 3], dtype=np.int64), + np.array([10, 5, 3], dtype=np.int64), +] +x0 = [np.zeros(shape, dtype=np.float32) for shape in shapes] +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['H', 'W', 'C'])), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.INT64, [3])), +] +expect(node, inputs=[x0], outputs=[shapes], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_extract_shapes') +``` + +
+
+sequence_map_identity_1_sequence + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Identity', ['in0'], ['out0'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info( + 'in0', onnx.TensorProto.FLOAT, ['N'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['M'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x'], + outputs=['y'], + body=body +) + +x = [np.random.uniform(0.0, 1.0, 10).astype(np.float32) + for _ in range(3)] +y = x +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), +] +expect(node, inputs=[x], outputs=[y], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_identity_1_sequence') +``` + +
+
+sequence_map_identity_1_sequence_1_tensor + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Identity', ['in0'], ['out0']), + onnx.helper.make_node('Identity', ['in1'], ['out1'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['M'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info( + 'out1', onnx.TensorProto.FLOAT, ['M'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0', 'y1'], + body=body +) + +x0 = [np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) for _ in range(3)] +x1 = np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) +y0 = x0 +y1 = [x1 for _ in range(3)] +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M']), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M'])), +] +expect(node, inputs=[x0, x1], outputs=[y0, y1], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_identity_1_sequence_1_tensor') +``` + +
+
+sequence_map_identity_2_sequences + +```python +body = onnx.helper.make_graph( + [onnx.helper.make_node('Identity', ['in0'], ['out0']), + onnx.helper.make_node('Identity', ['in1'], ['out1'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['M'])], + [onnx.helper.make_tensor_value_info('out0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('out1', onnx.TensorProto.FLOAT, ['M'])] +) + +node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0', 'y1'], + body=body +) + +x0 = [np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) for _ in range(3)] +x1 = [np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) for _ in range(3)] +y0 = x0 +y1 = x1 +input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M'])), +] +output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M'])), +] +expect(node, inputs=[x0, x1], outputs=[y0, y1], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_identity_2_sequences') +``` + +
+ + +### Shape +There are 1 test cases, listed as following: +
+shape + +```python +x = np.array([ + [1, 2, 3], + [4, 5, 6], +]).astype(np.float32) +test_shape('_example', x) # preserve names of original test cases + +x = np.random.randn(3, 4, 5).astype(np.float32) + +test_shape('', x) # preserve names of original test cases + +test_shape('_start_1', x, start=1) + +test_shape('_end_1', x, end=1) + +test_shape('_start_negative_1', x, start=-1) + +test_shape('_end_negative_1', x, end=-1) + +test_shape('_start_1_end_negative_1', x, start=1, end=-1) + +test_shape('_start_1_end_2', x, start=1, end=2) + +test_shape('_clip_start', x, start=-10) + +test_shape('_clip_end', x, end=10) +``` + +
+ + +### Shrink +There are 2 test cases, listed as following: +
+hard_shrink + +```python +node = onnx.helper.make_node( + 'Shrink', + inputs=['x'], + outputs=['y'], + lambd=1.5, +) +X = np.arange(-2.0, 2.1, dtype=np.float32) +Y = np.array([-2, 0, 0, 0, 2], dtype=np.float32) +expect(node, inputs=[X], outputs=[Y], + name='test_shrink_hard') +``` + +
+
+soft_shrink + +```python +node = onnx.helper.make_node( + 'Shrink', + inputs=['x'], + outputs=['y'], + lambd=1.5, + bias=1.5, +) +X = np.arange(-2.0, 2.1, dtype=np.float32) +Y = np.array([-0.5, 0, 0, 0, 0.5], dtype=np.float32) +expect(node, inputs=[X], outputs=[Y], + name='test_shrink_soft') +``` + +
+ + +### Sigmoid +There are 1 test cases, listed as following: +
+sigmoid + +```python +node = onnx.helper.make_node( + 'Sigmoid', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = 1.0 / (1.0 + np.exp(np.negative(x))) # expected output [0.26894143, 0.5, 0.7310586] +expect(node, inputs=[x], outputs=[y], + name='test_sigmoid_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = 1.0 / (1.0 + np.exp(np.negative(x))) +expect(node, inputs=[x], outputs=[y], + name='test_sigmoid') +``` + +
+ + +### Sign +There are 1 test cases, listed as following: +
+sign + +```python +node = onnx.helper.make_node( + 'Sign', + inputs=['x'], + outputs=['y'], +) + +x = np.array(range(-5, 6)).astype(np.float32) +y = np.sign(x) +expect(node, inputs=[x], outputs=[y], + name='test_sign') +``` + +
+ + +### Sin +There are 1 test cases, listed as following: +
+sin + +```python +node = onnx.helper.make_node( + 'Sin', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.sin(x) +expect(node, inputs=[x], outputs=[y], + name='test_sin_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.sin(x) +expect(node, inputs=[x], outputs=[y], + name='test_sin') +``` + +
+ + +### Sinh +There are 1 test cases, listed as following: +
+sinh + +```python +node = onnx.helper.make_node( + 'Sinh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.sinh(x) # expected output [-1.17520118, 0., 1.17520118] +expect(node, inputs=[x], outputs=[y], + name='test_sinh_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.sinh(x) +expect(node, inputs=[x], outputs=[y], + name='test_sinh') +``` + +
+ + +### Size +There are 1 test cases, listed as following: +
+size + +```python +node = onnx.helper.make_node( + 'Size', + inputs=['x'], + outputs=['y'], +) + +x = np.array([ + [1, 2, 3], + [4, 5, 6], +]).astype(np.float32) +y = np.array(6).astype(np.int64) + +expect(node, inputs=[x], outputs=[y], + name='test_size_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.array(x.size).astype(np.int64) + +expect(node, inputs=[x], outputs=[y], + name='test_size') +``` + +
+ + +### Slice +There are 8 test cases, listed as following: +
+slice + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +y = x[0:3, 0:10] +starts = np.array([0, 0], dtype=np.int64) +ends = np.array([3, 10], dtype=np.int64) +axes = np.array([0, 1], dtype=np.int64) +steps = np.array([1, 1], dtype=np.int64) + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice') +``` + +
+
+slice_default_axes + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([0, 0, 3], dtype=np.int64) +ends = np.array([20, 10, 4], dtype=np.int64) +y = x[:, :, 3:4] + +expect(node, inputs=[x, starts, ends], outputs=[y], + name='test_slice_default_axes') +``` + +
+
+slice_default_steps + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([0, 0, 3], dtype=np.int64) +ends = np.array([20, 10, 4], dtype=np.int64) +axes = np.array([0, 1, 2], dtype=np.int64) +y = x[:, :, 3:4] + +expect(node, inputs=[x, starts, ends, axes], outputs=[y], + name='test_slice_default_steps') +``` + +
+
+slice_end_out_of_bounds + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([1], dtype=np.int64) +ends = np.array([1000], dtype=np.int64) +axes = np.array([1], dtype=np.int64) +steps = np.array([1], dtype=np.int64) +y = x[:, 1:1000] + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_end_out_of_bounds') +``` + +
+
+slice_neg + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([0], dtype=np.int64) +ends = np.array([-1], dtype=np.int64) +axes = np.array([1], dtype=np.int64) +steps = np.array([1], dtype=np.int64) +y = x[:, 0:-1] + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_neg') +``` + +
+
+slice_neg_steps + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([20, 10, 4], dtype=np.int64) +ends = np.array([0, 0, 1], dtype=np.int64) +axes = np.array([0, 1, 2], dtype=np.int64) +steps = np.array([-1, -3, -2]).astype(np.int64) +y = x[20:0:-1, 10:0:-3, 4:1:-2] + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_neg_steps') +``` + +
+
+slice_negative_axes + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([0, 0, 3], dtype=np.int64) +ends = np.array([20, 10, 4], dtype=np.int64) +axes = np.array([0, -2, -1], dtype=np.int64) +y = x[:, :, 3:4] + +expect(node, inputs=[x, starts, ends, axes], outputs=[y], + name='test_slice_negative_axes') +``` + +
+
+slice_start_out_of_bounds + +```python +node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], +) + +x = np.random.randn(20, 10, 5).astype(np.float32) +starts = np.array([1000], dtype=np.int64) +ends = np.array([1000], dtype=np.int64) +axes = np.array([1], dtype=np.int64) +steps = np.array([1], dtype=np.int64) +y = x[:, 1000:1000] + +expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_start_out_of_bounds') +``` + +
+ + +### Softmax +There are 2 test cases, listed as following: +
+softmax + +```python +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], +) +x = np.array([[-1, 0, 1]]).astype(np.float32) +# expected output [[0.09003058, 0.24472848, 0.66524094]] +y = softmax(x, axis=1) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_example') +``` + +
+
+softmax_axis + +```python +x = np.array([[0, 1, 2, 3], [10000, 10001, 10002, 10003]] + ).astype(np.float32) +# expected output +# [[0.032058604 0.08714432 0.23688284 0.6439143 ] +# [0.032058604 0.08714432 0.23688284 0.6439143 ]] +y = softmax(x) + +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_large_number') + +x = np.abs(np.random.randn(3, 4, 5).astype(np.float32)) +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=0, +) +y = softmax(x, axis=0) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_axis_0') + +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=1, +) +y = softmax(x, axis=1) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_axis_1') + +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=2, +) +y = softmax(x, axis=2) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_axis_2') + +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=-1, +) +y = softmax(x, axis=-1) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_negative_axis') + +# default axis is -1 +node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], +) +expect(node, inputs=[x], outputs=[y], + name='test_softmax_default_axis') +``` + +
+ + +### SoftmaxCrossEntropyLoss +There are 34 test cases, listed as following: +
+input_shape_is_NCd1_mean_weight_negative_ii + +```python +reduction = 'mean' +ignore_index = np.int64(-1) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1 = 3, 5, 6 +np.random.seed(0) +x = np.random.rand(N, C, dim1).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1)).astype(np.int64) +labels[0][0] = -1 +weight = np.random.rand(C).astype(np.float32) + +sce = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[x, labels, weight], outputs=[sce], name='test_sce_NCd1_mean_weight_negative_ii') +``` + +
+
+input_shape_is_NCd1_mean_weight_negative_ii_log_prob + +```python +reduction = 'mean' +ignore_index = np.int64(-1) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1 = 3, 5, 6 +np.random.seed(0) +x = np.random.rand(N, C, dim1).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1)).astype(np.int64) +labels[0][0] = -1 +weight = np.random.rand(C).astype(np.float32) + +loss, log_prob = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index, + get_log_prob=True) + +expect(node, inputs=[x, labels, weight], outputs=[loss, log_prob], name='test_sce_NCd1_mean_weight_negative_ii_log_prob') +``` + +
+
+input_shape_is_NCd1d2d3_none_no_weight_negative_ii + +```python +reduction = 'none' +ignore_index = np.int64(-5) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1, dim2, dim3 = 3, 5, 6, 6, 5 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3)).astype(np.int64) +labels[0][0][0][0] = -5 + +sce = softmaxcrossentropy(x, + labels, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_NCd1d2d3_none_no_weight_negative_ii') +``` + +
+
+input_shape_is_NCd1d2d3_none_no_weight_negative_ii_log_prob + +```python +reduction = 'none' +ignore_index = np.int64(-5) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +N, C, dim1, dim2, dim3 = 3, 5, 6, 6, 5 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3)).astype(np.int64) +labels[0][0][0][0] = -5 + +loss, log_prob = softmaxcrossentropy(x, + labels, + reduction=reduction, + ignore_index=ignore_index, + get_log_prob=True) + +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob') +``` + +
+
+input_shape_is_NCd1d2d3_sum_weight_high_ii + +```python +reduction = 'sum' +ignore_index = np.int64(10) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +N, C = 3, 5 +np.random.seed(0) +x = np.random.rand(N, C).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N)).astype(np.int64) +labels[0] = 10 +weight = np.random.rand(C).astype(np.float32) + +sce = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + +expect(node, inputs=[x, labels, weight], outputs=[sce], name='test_sce_NCd1d2d3_sum_weight_high_ii') +``` + +
+
+input_shape_is_NCd1d2d3_sum_weight_high_ii_log_prob + +```python +reduction = 'sum' +ignore_index = np.int64(10) + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +N, C = 3, 5 +np.random.seed(0) +x = np.random.rand(N, C).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N)).astype(np.int64) +labels[0] = 10 +weight = np.random.rand(C).astype(np.float32) + +loss, log_prob = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index, + get_log_prob=True) + +expect(node, inputs=[x, labels, weight], outputs=[loss, log_prob], name='test_sce_NCd1d2d3_sum_weight_high_ii_log_prob') +``` + +
+
+input_shape_is_NCd1d2d3d4d5_mean_weight + +```python +reduction = 'mean' + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +sce = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction) + +expect(node, inputs=[x, labels, weight], outputs=[sce], name='test_sce_NCd1d2d3d4d5_mean_weight') +``` + +
+
+input_shape_is_NCd1d2d3d4d5_mean_weight_log_prob + +```python +reduction = 'mean' + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) +weight = np.random.rand(C).astype(np.float32) + +loss, log_prob = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + get_log_prob=True) + +expect(node, inputs=[x, labels, weight], outputs=[loss, log_prob], name='test_sce_NCd1d2d3d4d5_mean_weight_log_prob') +``` + +
+
+input_shape_is_NCd1d2d3d4d5_none_no_weight + +```python +reduction = 'none' + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + +sce = softmaxcrossentropy(x, + labels, + reduction=reduction) + +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_NCd1d2d3d4d5_none_no_weight') +``` + +
+
+input_shape_is_NCd1d2d3d4d5_none_no_weight_log_prob + +```python +reduction = 'none' + +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 +np.random.seed(0) +x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) +labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + +loss, log_prob = softmaxcrossentropy(x, + labels, + reduction=reduction, + get_log_prob=True) + +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_NCd1d2d3d4d5_none_no_weight_log_prob') +``` + +
+
+softmaxcrossentropy_mean + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels) + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean') +``` + +
+
+softmaxcrossentropy_mean_3d + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +y = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, y) + +# Check results +expect(node, inputs=[x, y], outputs=[sce], name='test_sce_mean_3d') +``` + +
+
+softmaxcrossentropy_mean_3d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +y = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, y, get_log_prob=True) + +# Check results +expect(node, inputs=[x, y], outputs=[loss, log_prob], name='test_sce_mean_3d_log_prob') +``` + +
+
+softmaxcrossentropy_mean_log_prob + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_log_prob') +``` + +
+
+softmaxcrossentropy_mean_no_weights_ii + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +labels[0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean_no_weight_ii') +``` + +
+
+softmaxcrossentropy_mean_no_weights_ii_3d + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) +labels[0][0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean_no_weight_ii_3d') +``` + +
+
+softmaxcrossentropy_mean_no_weights_ii_3d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) +labels[0][0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_no_weight_ii_3d_log_prob') +``` + +
+
+softmaxcrossentropy_mean_no_weights_ii_4d + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2, 7).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) +labels[0][0][0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, reduction=reduction, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean_no_weight_ii_4d') +``` + +
+
+softmaxcrossentropy_mean_no_weights_ii_4d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2, 7).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) +labels[0][0][0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, reduction=reduction, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_no_weight_ii_4d_log_prob') +``` + +
+
+softmaxcrossentropy_mean_no_weights_ii_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +labels[0] = np.int64(2) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_no_weight_ii_log_prob') +``` + +
+
+softmaxcrossentropy_mean_weights + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, weight=weights) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight') +``` + +
+
+softmaxcrossentropy_mean_weights_ii + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(0) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +labels[0] = np.int64(0) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight_ii') +``` + +
+
+softmaxcrossentropy_mean_weights_ii_3d + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(1) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) +labels[0][0] = np.int64(1) +weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight_ii_3d') +``` + +
+
+softmaxcrossentropy_mean_weights_ii_3d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(1) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) +labels[0][0] = np.int64(1) +weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_ii_3d_log_prob') +``` + +
+
+softmaxcrossentropy_mean_weights_ii_4d + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2, 7).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) +labels[0][0][0] = np.int64(2) +weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, reduction=reduction, weight=weights, ignore_index=ignore_index) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight_ii_4d') +``` + +
+
+softmaxcrossentropy_mean_weights_ii_4d_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(2) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5, 2, 7).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) +labels[0][0][0] = np.int64(2) +weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, reduction=reduction, weight=weights, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_ii_4d_log_prob') +``` + +
+
+softmaxcrossentropy_mean_weights_ii_log_prob + +```python +# Define operator attributes. +reduction = 'mean' +ignore_index = np.int64(0) + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +labels[0] = np.int64(0) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_ii_log_prob') +``` + +
+
+softmaxcrossentropy_mean_weights_log_prob + +```python +# Define operator attributes. +reduction = 'mean' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_log_prob') +``` + +
+
+softmaxcrossentropy_none + +```python +# Define operator attributes. +reduction = 'none' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, reduction='none') + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_none') +``` + +
+
+softmaxcrossentropy_none_log_prob + +```python +# Define operator attributes. +reduction = 'none' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, reduction='none', get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_none_log_prob') +``` + +
+
+softmaxcrossentropy_none_weights + +```python +# Define operator attributes. +reduction = 'none' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, weight=weights, reduction='none') + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_none_weights') +``` + +
+
+softmaxcrossentropy_none_weights_log_prob + +```python +# Define operator attributes. +reduction = 'none' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) +weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, reduction='none', get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_none_weights_log_prob') +``` + +
+
+softmaxcrossentropy_sum + +```python +# Define operator attributes. +reduction = 'sum' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +sce = softmaxcrossentropy(x, labels, reduction='sum') + +# Check results +expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_sum') +``` + +
+
+softmaxcrossentropy_sum_log_prob + +```python +# Define operator attributes. +reduction = 'sum' + +# Create operator. +node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + +# Define operator inputs. +np.random.seed(0) +x = np.random.rand(3, 5).astype(np.float32) +labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + +# Compute SoftmaxCrossEntropyLoss +loss, log_prob = softmaxcrossentropy(x, labels, reduction='sum', get_log_prob=True) + +# Check results +expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_sum_log_prob') +``` + +
+ + +### Softplus +There are 1 test cases, listed as following: +
+softplus + +```python +node = onnx.helper.make_node( + 'Softplus', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.log(np.exp(x) + 1) # expected output [0.31326166, 0.69314718, 1.31326163] +expect(node, inputs=[x], outputs=[y], + name='test_softplus_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.log(np.exp(x) + 1) +expect(node, inputs=[x], outputs=[y], + name='test_softplus') +``` + +
+ + +### Softsign +There are 1 test cases, listed as following: +
+softsign + +```python +node = onnx.helper.make_node( + 'Softsign', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.array([-0.5, 0, 0.5]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_softsign_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = x / (1 + np.abs(x)) +expect(node, inputs=[x], outputs=[y], + name='test_softsign') +``` + +
+ + +### SpaceToDepth +There are 2 test cases, listed as following: +
+example + +```python +node = onnx.helper.make_node( + 'SpaceToDepth', + inputs=['x'], + outputs=['y'], + blocksize=2, +) + +# (1, 1, 4, 6) input tensor +x = np.array([[[[0, 6, 1, 7, 2, 8], + [12, 18, 13, 19, 14, 20], + [3, 9, 4, 10, 5, 11], + [15, 21, 16, 22, 17, 23]]]]).astype(np.float32) + +# (1, 4, 2, 3) output tensor +y = np.array([[[[0, 1, 2], + [3, 4, 5]], + [[6, 7, 8], + [9, 10, 11]], + [[12, 13, 14], + [15, 16, 17]], + [[18, 19, 20], + [21, 22, 23]]]]).astype(np.float32) +expect(node, inputs=[x], outputs=[y], + name='test_spacetodepth_example') +``` + +
+
+spacetodepth + +```python +b, c, h, w = shape = (2, 2, 6, 6) +blocksize = 2 +node = onnx.helper.make_node( + 'SpaceToDepth', + inputs=['x'], + outputs=['y'], + blocksize=blocksize, +) +x = np.random.random_sample(shape).astype(np.float32) +tmp = np.reshape(x, [b, c, + h // blocksize, blocksize, + w // blocksize, blocksize]) +tmp = np.transpose(tmp, [0, 3, 5, 1, 2, 4]) +y = np.reshape(tmp, [b, c * (blocksize**2), + h // blocksize, + w // blocksize]) +expect(node, inputs=[x], outputs=[y], + name='test_spacetodepth') +``` + +
+ + +### Split +There are 4 test cases, listed as following: +
+1d + +```python +input = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float32) + +node = onnx.helper.make_node( + 'Split', + inputs=['input'], + outputs=['output_1', 'output_2', 'output_3'], + axis=0 +) + +expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4.]).astype(np.float32), np.array([5., 6.]).astype(np.float32)] +expect(node, inputs=[input], outputs=[y for y in expected_outputs], name='test_split_equal_parts_1d') + +split = np.array([2, 4]).astype(np.int64) +node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2'], + axis=0, +) + +expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4., 5., 6.]).astype(np.float32)] +expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_variable_parts_1d') +``` + +
+
+2d + +```python +input = np.array([[1., 2., 3., 4., 5., 6.], + [7., 8., 9., 10., 11., 12.]]).astype(np.float32) + +node = onnx.helper.make_node( + 'Split', + inputs=['input'], + outputs=['output_1', 'output_2'], + axis=1 +) + +expected_outputs = [np.array([[1., 2., 3.], [7., 8., 9.]]).astype(np.float32), + np.array([[4., 5., 6.], [10., 11., 12.]]).astype(np.float32)] + +expect(node, inputs=[input], outputs=[y for y in expected_outputs], name='test_split_equal_parts_2d') + +split = np.array([2, 4]).astype(np.int64) +node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2'], + axis=1, +) + +expected_outputs = [np.array([[1., 2.], [7., 8.]]).astype(np.float32), + np.array([[3., 4., 5., 6.], [9., 10., 11., 12.]]).astype(np.float32)] + +expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_variable_parts_2d') +``` + +
+
+default_values + +```python +input = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float32) + +# If axis is not specified, split is applied on default axis 0 +node = onnx.helper.make_node( + 'Split', + inputs=['input'], + outputs=['output_1', 'output_2', 'output_3'] +) + +expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4.]).astype(np.float32), np.array([5., 6.]).astype(np.float32)] +expect(node, inputs=[input], outputs=[y for y in expected_outputs], name='test_split_equal_parts_default_axis') + +split = np.array([2, 4]).astype(np.int64) +node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2'] +) + +expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4., 5., 6.]).astype(np.float32)] +expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_variable_parts_default_axis') +``` + +
+
+zero_size_splits + +```python +input = np.array([]).astype(np.float32) + +# Split emtpy tensor to tensors of size zero +split = np.array([0, 0, 0]).astype(np.int64) +node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2', 'output_3'] +) + +expected_outputs = [np.array([]).astype(np.float32), np.array([]).astype(np.float32), np.array([]).astype(np.float32)] +expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_zero_size_splits') +``` + +
+ + +### Sqrt +There are 1 test cases, listed as following: +
+sqrt + +```python +node = onnx.helper.make_node( + 'Sqrt', + inputs=['x'], + outputs=['y'], +) + +x = np.array([1, 4, 9]).astype(np.float32) +y = np.sqrt(x) # expected output [1., 2., 3.] +expect(node, inputs=[x], outputs=[y], + name='test_sqrt_example') + +x = np.abs(np.random.randn(3, 4, 5).astype(np.float32)) +y = np.sqrt(x) +expect(node, inputs=[x], outputs=[y], + name='test_sqrt') +``` + +
+ + +### Squeeze +There are 2 test cases, listed as following: +
+squeeze + +```python +node = onnx.helper.make_node( + 'Squeeze', + inputs=['x', 'axes'], + outputs=['y'], +) +x = np.random.randn(1, 3, 4, 5).astype(np.float32) +axes = np.array([0], dtype=np.int64) +y = np.squeeze(x, axis=0) + +expect(node, inputs=[x, axes], outputs=[y], + name='test_squeeze') +``` + +
+
+squeeze_negative_axes + +```python +node = onnx.helper.make_node( + 'Squeeze', + inputs=['x', 'axes'], + outputs=['y'], +) +x = np.random.randn(1, 3, 1, 5).astype(np.float32) +axes = np.array([-2], dtype=np.int64) +y = np.squeeze(x, axis=-2) +expect(node, inputs=[x, axes], outputs=[y], + name='test_squeeze_negative_axes') +``` + +
+ + +### StringNormalizer +There are 6 test cases, listed as following: +
+monday_casesensintive_lower + +```python +input = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) +output = np.array([u'tuesday', u'wednesday', u'thursday']).astype(object) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='LOWER', + is_case_sensitive=1, + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_casesensintive_lower') +``` + +
+
+monday_casesensintive_nochangecase + +```python +input = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) +output = np.array([u'tuesday', u'wednesday', u'thursday']).astype(object) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + is_case_sensitive=1, + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_casesensintive_nochangecase') +``` + +
+
+monday_casesensintive_upper + +```python +input = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) +output = np.array([u'TUESDAY', u'WEDNESDAY', u'THURSDAY']).astype(object) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + is_case_sensitive=1, + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_casesensintive_upper') +``` + +
+
+monday_empty_output + +```python +input = np.array([u'monday', u'monday']).astype(object) +output = np.array([u'']).astype(object) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + is_case_sensitive=1, + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_empty_output') +``` + +
+
+monday_insensintive_upper_twodim + +```python +input = np.array([u'Monday', u'tuesday', u'wednesday', u'Monday', u'tuesday', u'wednesday']).astype(object).reshape([1, 6]) + +# It does upper case cecedille, accented E +# and german umlaut but fails +# with german eszett +output = np.array([u'TUESDAY', u'WEDNESDAY', u'TUESDAY', u'WEDNESDAY']).astype(object).reshape([1, 4]) +stopwords = [u'monday'] + +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + stopwords=stopwords +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_insensintive_upper_twodim') +``` + +
+
+nostopwords_nochangecase + +```python +input = np.array([u'monday', u'tuesday']).astype(object) +output = input + +# No stopwords. This is a NOOP +node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + is_case_sensitive=1, +) +expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_nostopwords_nochangecase') +``` + +
+ + +### Sub +There are 2 test cases, listed as following: +
+sub + +```python +node = onnx.helper.make_node( + 'Sub', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.array([1, 2, 3]).astype(np.float32) +y = np.array([3, 2, 1]).astype(np.float32) +z = x - y # expected output [-2., 0., 2.] +expect(node, inputs=[x, y], outputs=[z], + name='test_sub_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(3, 4, 5).astype(np.float32) +z = x - y +expect(node, inputs=[x, y], outputs=[z], + name='test_sub') + +x = np.random.randint(12, 24, size=(3, 4, 5), dtype=np.uint8) +y = np.random.randint(12, size=(3, 4, 5), dtype=np.uint8) +z = x - y +expect(node, inputs=[x, y], outputs=[z], + name='test_sub_uint8') +``` + +
+
+sub_broadcast + +```python +node = onnx.helper.make_node( + 'Sub', + inputs=['x', 'y'], + outputs=['z'], +) + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.random.randn(5).astype(np.float32) +z = x - y +expect(node, inputs=[x, y], outputs=[z], + name='test_sub_bcast') +``` + +
+ + +### Sum +There are 1 test cases, listed as following: +
+sum + +```python +data_0 = np.array([3, 0, 2]).astype(np.float32) +data_1 = np.array([1, 3, 4]).astype(np.float32) +data_2 = np.array([2, 6, 6]).astype(np.float32) +result = np.array([6, 9, 12]).astype(np.float32) +node = onnx.helper.make_node( + 'Sum', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_sum_example') + +node = onnx.helper.make_node( + 'Sum', + inputs=['data_0'], + outputs=['result'], +) +expect(node, inputs=[data_0], outputs=[data_0], + name='test_sum_one_input') + +result = np.add(data_0, data_1) +node = onnx.helper.make_node( + 'Sum', + inputs=['data_0', 'data_1'], + outputs=['result'], +) +expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_sum_two_inputs') +``` + +
+ + +### Tan +There are 1 test cases, listed as following: +
+tan + +```python +node = onnx.helper.make_node( + 'Tan', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.tan(x) +expect(node, inputs=[x], outputs=[y], + name='test_tan_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.tan(x) +expect(node, inputs=[x], outputs=[y], + name='test_tan') +``` + +
+ + +### Tanh +There are 1 test cases, listed as following: +
+tanh + +```python +node = onnx.helper.make_node( + 'Tanh', + inputs=['x'], + outputs=['y'], +) + +x = np.array([-1, 0, 1]).astype(np.float32) +y = np.tanh(x) # expected output [-0.76159418, 0., 0.76159418] +expect(node, inputs=[x], outputs=[y], + name='test_tanh_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.tanh(x) +expect(node, inputs=[x], outputs=[y], + name='test_tanh') +``` + +
+ + +### TfIdfVectorizer +There are 7 test cases, listed as following: +
+tf_batch_onlybigrams_skip0 + +```python +input = np.array([[1, 1, 3, 3, 3, 7], [8, 6, 7, 5, 6, 8]]).astype(np.int32) +output = np.array([[0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 1., 0., 1.]]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=0, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_batch_onlybigrams_skip0') +``` + +
+
+tf_batch_onlybigrams_skip5 + +```python +input = np.array([[1, 1, 3, 3, 3, 7], [8, 6, 7, 5, 6, 8]]).astype(np.int32) +output = np.array([[0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 1., 1., 1.]]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_batch_onlybigrams_skip5') +``` + +
+
+tf_batch_uniandbigrams_skip5 + +```python +input = np.array([[1, 1, 3, 3, 3, 7], [8, 6, 7, 5, 6, 8]]).astype(np.int32) +output = np.array([[0., 3., 0., 0., 0., 0., 0.], [0., 0., 1., 0., 1., 1., 1.]]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=1, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_batch_uniandbigrams_skip5') +``` + +
+
+tf_only_bigrams_skip0 + +```python +input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) +output = np.array([0., 0., 0., 0., 1., 1., 1.]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=0, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_only_bigrams_skip0') +``` + +
+
+tf_onlybigrams_levelempty + +```python +input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) +output = np.array([1., 1., 1.]).astype(np.float32) + +ngram_counts = np.array([0, 0]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2]).astype(np.int64) +pool_int64s = np.array([ # unigrams none + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=0, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_onlybigrams_levelempty') +``` + +
+
+tf_onlybigrams_skip5 + +```python +input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) +output = np.array([0., 0., 0., 0., 1., 3., 1.]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_onlybigrams_skip5') +``` + +
+
+tf_uniandbigrams_skip5 + +```python +input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) +output = np.array([0., 3., 1., 0., 1., 3., 1.]).astype(np.float32) + +ngram_counts = np.array([0, 4]).astype(np.int64) +ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) +pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + +helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=1, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s +) +node = helper.make_node_noweights() +expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_uniandbigrams_skip5') +``` + +
+ + +### ThresholdedRelu +There are 2 test cases, listed as following: +
+default + +```python +default_alpha = 1.0 +node = onnx.helper.make_node( + 'ThresholdedRelu', + inputs=['x'], + outputs=['y'] +) +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, default_alpha, np.inf) +y[y == default_alpha] = 0 + +expect(node, inputs=[x], outputs=[y], + name='test_thresholdedrelu_default') +``` + +
+
+thresholdedrelu + +```python +alpha = 2.0 +node = onnx.helper.make_node( + 'ThresholdedRelu', + inputs=['x'], + outputs=['y'], + alpha=alpha +) + +x = np.array([-1.5, 0., 1.2, 2.0, 2.2]).astype(np.float32) +y = np.clip(x, alpha, np.inf) # expected output [0., 0., 0., 0., 2.2] +y[y == alpha] = 0 + +expect(node, inputs=[x], outputs=[y], + name='test_thresholdedrelu_example') + +x = np.random.randn(3, 4, 5).astype(np.float32) +y = np.clip(x, alpha, np.inf) +y[y == alpha] = 0 + +expect(node, inputs=[x], outputs=[y], + name='test_thresholdedrelu') +``` + +
+ + +### Tile +There are 2 test cases, listed as following: +
+tile + +```python +node = onnx.helper.make_node( + 'Tile', + inputs=['x', 'y'], + outputs=['z'] +) + +x = np.random.rand(2, 3, 4, 5).astype(np.float32) + +repeats = np.random.randint(low=1, high=10, size=(np.ndim(x),)).astype(np.int64) + +z = np.tile(x, repeats) + +expect(node, + inputs=[x, repeats], + outputs=[z], + name='test_tile') +``` + +
+
+tile_precomputed + +```python +node = onnx.helper.make_node( + 'Tile', + inputs=['x', 'y'], + outputs=['z'] +) + +x = np.array([ + [0, 1], + [2, 3] +], dtype=np.float32) + +repeats = np.array([2, 2], dtype=np.int64) + +z = np.array([ + [0, 1, 0, 1], + [2, 3, 2, 3], + [0, 1, 0, 1], + [2, 3, 2, 3] +], dtype=np.float32) + +expect(node, + inputs=[x, repeats], + outputs=[z], + name='test_tile_precomputed') +``` + +
+ + +### TopK +There are 3 test cases, listed as following: +
+top_k + +```python +axis = 1 +largest = 1 + +k = 3 +node = onnx.helper.make_node( + 'TopK', + inputs=['x', 'k'], + outputs=['values', 'indices'], + axis=axis +) +X = np.array([ + [0, 1, 2, 3], + [4, 5, 6, 7], + [8, 9, 10, 11], +], dtype=np.float32) +K = np.array([k], dtype=np.int64) +values_ref, indices_ref = topk_sorted_implementation(X, k, axis, largest) + +#print(values_ref) +#[[ 3. 2. 1.] +# [ 7. 6. 5.] +# [11. 10. 9.]] +#print(indices_ref) +#[[3 2 1] +# [3 2 1] +# [3 2 1]] + +expect(node, inputs=[X, K], outputs=[values_ref, indices_ref], + name='test_top_k') +``` + +
+
+top_k_negative_axis + +```python +axis = -1 +largest = 1 + +k = 3 +node = onnx.helper.make_node( + 'TopK', + inputs=['x', 'k'], + outputs=['values', 'indices'], + axis=axis +) +X = np.array([ + [0, 1, 2, 3], + [4, 5, 6, 7], + [8, 9, 10, 11], +], dtype=np.float32) +K = np.array([k], dtype=np.int64) +values_ref, indices_ref = topk_sorted_implementation(X, k, axis, largest) + +# print(values_ref) +#[[ 3. 2. 1.] +# [ 7. 6. 5.] +# [11. 10. 9.]] +# print(indices_ref) +#[[3 2 1] +# [3 2 1] +# [3 2 1]] + +expect(node, inputs=[X, K], outputs=[values_ref, indices_ref], + name='test_top_k_negative_axis') +``` + +
+
+top_k_smallest + +```python +axis = 1 +largest = 0 +sorted = 1 +k = 3 + +node = onnx.helper.make_node( + 'TopK', + inputs=['x', 'k'], + outputs=['values', 'indices'], + axis=axis, + largest=largest, + sorted=sorted +) + +X = np.array([ + [0, 1, 2, 3], + [4, 5, 6, 7], + [11, 10, 9, 8], +], dtype=np.float32) +K = np.array([k], dtype=np.int64) +values_ref, indices_ref = topk_sorted_implementation(X, k, axis, largest) + +#print(values_ref) +#[[ 0. 1. 2.] +# [ 4. 5. 6.] +# [ 8. 9. 10.]] +#print(indices_ref) +#[[0 1 2] +# [0 1 2] +# [3 2 1]] + +expect(node, inputs=[X, K], outputs=[values_ref, indices_ref], + name='test_top_k_smallest') +``` + +
+ + +### Transpose +There are 2 test cases, listed as following: +
+all_permutations + +```python +shape = (2, 3, 4) +data = np.random.random_sample(shape).astype(np.float32) +permutations = list(itertools.permutations(np.arange(len(shape)))) + +for i in range(len(permutations)): + node = onnx.helper.make_node( + 'Transpose', + inputs=['data'], + outputs=['transposed'], + perm=permutations[i] + ) + transposed = np.transpose(data, permutations[i]) + expect(node, inputs=[data], outputs=[transposed], + name='test_transpose_all_permutations_' + str(i)) +``` + +
+
+default + +```python +shape = (2, 3, 4) +data = np.random.random_sample(shape).astype(np.float32) + +node = onnx.helper.make_node( + 'Transpose', + inputs=['data'], + outputs=['transposed'] +) + +transposed = np.transpose(data) +expect(node, inputs=[data], outputs=[transposed], + name='test_transpose_default') +``` + +
+ + +### Trilu +There are 18 test cases, listed as following: +
+tril + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 0, 0, 0, 0], +# [1, 2, 0, 0, 0], +# [9, 4, 1, 0, 0], +# [4, 3, 4, 2, 0]] +y = tril_reference_implementation(x) +expect(node, inputs=[x], outputs=[y], name='test_tril') +``` + +
+
+tril_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(-1).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[0, 0, 0, 0, 0], +# [1, 0, 0, 0, 0], +# [9, 4, 0, 0, 0], +# [4, 3, 4, 0, 0]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_neg') +``` + +
+
+tril_one_row + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(3, 1, 5)).astype(np.int64) +# X: +# [[[6, 2, 4, 1, 6]], +# +# [[8, 3, 8, 7, 0]], +# +# [[2, 2, 9, 5, 9]]] +# expect result: +# [[[6, 0, 0, 0, 0]], +# +# [[8, 0, 0, 0, 0]], +# +# [[2, 0, 0, 0, 0]]] +y = tril_reference_implementation(x) +expect(node, inputs=[x], outputs=[y], name='test_tril_one_row_neg') +``` + +
+
+tril_out_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(-7).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_out_neg') +``` + +
+
+tril_out_pos + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(6).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_out_pos') +``` + +
+
+tril_pos + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(2).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 0, 0], +# [1, 2, 8, 6, 0], +# [9, 4, 1, 8, 7], +# [4, 3, 4, 2, 4]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_pos') +``` + +
+
+tril_square + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) +# X: +# [[[0, 4, 3], +# [2, 0, 9], +# [8, 2, 5]], +# +# [[2, 7, 2], +# [2, 6, 0], +# [2, 6, 5]]] +# expect result: +# [[[0, 0, 0], +# [2, 0, 0], +# [8, 2, 5]], +# +# [[2, 0, 0], +# [2, 6, 0], +# [2, 6, 5]]] +y = tril_reference_implementation(x) +expect(node, inputs=[x], outputs=[y], name='test_tril_square') +``` + +
+
+tril_square_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) +k = np.array(-1).astype(np.int64) +# X: +# [[[0, 4, 3], +# [2, 0, 9], +# [8, 2, 5]], +# +# [[2, 7, 2], +# [2, 6, 0], +# [2, 6, 5]]] +# expect result: +# [[[0, 0, 0], +# [2, 0, 0], +# [8, 2, 0]], +# +# [[0, 0, 0], +# [2, 0, 0], +# [2, 6, 0]]] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_square_neg') +``` + +
+
+tril_zero + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, +) + +x = np.random.randint(10, size=(3, 0, 5)).astype(np.int64) +k = np.array(6).astype(np.int64) +# X: +# [] +# expect result: +# [] +y = tril_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_tril_zero') +``` + +
+
+triu + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 7, 9], +# [0, 2, 8, 6, 9], +# [0, 0, 0, 8, 7], +# [0, 0, 0, 2, 4]] +y = triu_reference_implementation(x) +expect(node, inputs=[x], outputs=[y], name='test_triu') +``` + +
+
+triu_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(-1).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [0, 4, 0, 8, 7], +# [0, 0, 4, 2, 4]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_neg') +``` + +
+
+triu_one_row + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(3, 1, 5)).astype(np.int64) +k = np.array(1).astype(np.int64) +# X: +# [[[1, 4, 9, 7, 1]], +# +# [[9, 2, 8, 8, 4]], +# +# [[3, 9, 7, 4, 2]]] +# expect result: +# [[[0, 4, 9, 7, 1]], +# +# [[0, 2, 8, 8, 4]], +# +# [[0, 9, 7, 4, 2]]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_one_row') +``` + +
+
+triu_out_neg_out + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(-7).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_out_neg_out') +``` + +
+
+triu_out_pos + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(6).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0], +# [0, 0, 0, 0, 0]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_out_pos') +``` + +
+
+triu_pos + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(4, 5)).astype(np.int64) +k = np.array(2).astype(np.int64) +# X: +# [[4, 7, 3, 7, 9], +# [1, 2, 8, 6, 9], +# [9, 4, 0, 8, 7], +# [4, 3, 4, 2, 4]] +# expect result: +# [[0, 0, 3, 7, 9], +# [0, 0, 0, 6, 9], +# [0, 0, 0, 0, 7], +# [0, 0, 0, 0, 0]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_pos') +``` + +
+
+triu_square + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], +) + +x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) +y = triu_reference_implementation(x) +# X: +# [[[4, 6, 9], +# [7, 5, 4], +# [8, 1, 2]], +# +# [[1, 4, 9], +# [9, 6, 3], +# [8, 9, 8]]] +# expect result: +# [[[4, 6, 9], +# [0, 5, 4], +# [0, 0, 2]], +# +# [[1, 4, 9], +# [0, 6, 3], +# [0, 0, 8]]] +expect(node, inputs=[x], outputs=[y], name='test_triu_square') +``` + +
+
+triu_square_neg + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) +k = np.array(-1).astype(np.int64) +# X: +# [[[4, 6, 9], +# [7, 5, 4], +# [8, 1, 2]], +# +# [[1, 4, 9], +# [9, 6, 3], +# [8, 9, 8]]] +# expect result: +# [[[4, 6, 9], +# [7, 5, 4], +# [0, 1, 2]], +# +# [[1, 4, 9], +# [9, 6, 3], +# [0, 9, 8]]] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_square_neg') +``` + +
+
+triu_zero + +```python +node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], +) + +x = np.random.randint(10, size=(0, 5)).astype(np.int64) +k = np.array(6).astype(np.int64) +# X: +# [] +# expect result: +# [] +y = triu_reference_implementation(x, int(k)) +expect(node, inputs=[x, k], outputs=[y], name='test_triu_zero') +``` + +
+ + +### Unique +There are 5 test cases, listed as following: +
+not_sorted_without_axis + +```python +node_not_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=0 +) +# numpy unique does not retain original order (it sorts the output unique values) +# https://github.com/numpy/numpy/issues/8621 +# we need to recover unsorted output and indices +x = np.array([2.0, 1.0, 1.0, 3.0, 4.0, 3.0], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True) + +# prepare index mapping from sorted to unsorted +argsorted_indices = np.argsort(indices) +inverse_indices_map = {i: si for i, si in zip(argsorted_indices, np.arange(len(argsorted_indices)))} + +indices = indices[argsorted_indices] +y = np.take(x, indices, axis=0) +inverse_indices = np.asarray([inverse_indices_map[i] for i in inverse_indices], dtype=np.int64) +counts = counts[argsorted_indices] +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +# print(y) +# [2.0, 1.0, 3.0, 4.0] +# print(indices) +# [0 1 3 4] +# print(inverse_indices) +# [0, 1, 1, 2, 3, 2] +# print(counts) +# [1, 2, 2, 1] + +expect(node_not_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_not_sorted_without_axis') +``` + +
+
+sorted_with_axis + +```python +node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=1, + axis=0 +) + +x = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True, axis=0) +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +# print(y) +# [[1. 0. 0.] +# [2. 3. 4.]] +# print(indices) +# [0 2] +# print(inverse_indices) +# [0 0 1] +# print(counts) +# [2 1] + +expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_with_axis') +``` + +
+
+sorted_with_axis_3d + +```python +node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=1, + axis=1 +) + +x = np.array([[[1., 1.], [0., 1.], [2., 1.], [0., 1.]], + [[1., 1.], [0., 1.], [2., 1.], [0., 1.]]], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True, axis=1) +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +# print(y) +# [[[0. 1.] +# [1. 1.] +# [2. 1.]] +# [[0. 1.] +# [1. 1.] +# [2. 1.]]] +# print(indices) +# [1 0 2] +# print(inverse_indices) +# [1 0 2 0] +# print(counts) +# [2 1 1] +expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_with_axis_3d') +``` + +
+
+sorted_with_negative_axis + +```python +node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=1, + axis=-1 +) + +x = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 3]], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True, axis=-1) +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +# print(y) +# [[0. 1.] +# [0. 1.] +# [3. 2.]] +# print(indices) +# [1 0] +# print(inverse_indices) +# [1 0 0] +# print(counts) +# [2 1] + +expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_with_negative_axis') +``` + +
+
+sorted_without_axis + +```python +node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'] +) + +x = np.array([2.0, 1.0, 1.0, 3.0, 4.0, 3.0], dtype=np.float32) +y, indices, inverse_indices, counts = np.unique(x, True, True, True) +indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) +expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_without_axis') +``` + +
+ + +### Unsqueeze +There are 5 test cases, listed as following: +
+unsqueeze_negative_axes + +```python +node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], +) +x = np.random.randn(1, 3, 1, 5).astype(np.float32) +axes = np.array([-2]).astype(np.int64) +y = np.expand_dims(x, axis=-2) +expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_negative_axes') +``` + +
+
+unsqueeze_one_axis + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) + +for i in range(x.ndim): + axes = np.array([i]).astype(np.int64) + node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], + ) + y = np.expand_dims(x, axis=i) + + expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_axis_' + str(i)) +``` + +
+
+unsqueeze_three_axes + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) +axes = np.array([2, 4, 5]).astype(np.int64) + +node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], +) +y = np.expand_dims(x, axis=2) +y = np.expand_dims(y, axis=4) +y = np.expand_dims(y, axis=5) + +expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_three_axes') +``` + +
+
+unsqueeze_two_axes + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) +axes = np.array([1, 4]).astype(np.int64) + +node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], +) +y = np.expand_dims(x, axis=1) +y = np.expand_dims(y, axis=4) + +expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_two_axes') +``` + +
+
+unsqueeze_unsorted_axes + +```python +x = np.random.randn(3, 4, 5).astype(np.float32) +axes = np.array([5, 4, 2]).astype(np.int64) + +node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], +) +y = np.expand_dims(x, axis=2) +y = np.expand_dims(y, axis=4) +y = np.expand_dims(y, axis=5) + +expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_unsorted_axes') +``` + +
+ + +### Upsample +There are 1 test cases, listed as following: +
+nearest + +```python +node = onnx.helper.make_node( + 'Upsample', + inputs=['X', 'scales'], + outputs=['Y'], + mode='nearest', +) + +data = np.array([[[ + [1, 2], + [3, 4], +]]], dtype=np.float32) + +scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32) + +output = np.array([[[ + [1, 1, 1, 2, 2, 2], + [1, 1, 1, 2, 2, 2], + [3, 3, 3, 4, 4, 4], + [3, 3, 3, 4, 4, 4], +]]], dtype=np.float32) + +expect(node, inputs=[data, scales], outputs=[output], + name='test_upsample_nearest', opset_imports=[helper.make_opsetid("", 9)]) +``` + +
+ + +### Where +There are 2 test cases, listed as following: +
+long + +```python +node = onnx.helper.make_node( + 'Where', + inputs=['condition', 'x', 'y'], + outputs=['z'], +) + +condition = np.array([[1, 0], [1, 1]], dtype=bool) +x = np.array([[1, 2], [3, 4]], dtype=np.int64) +y = np.array([[9, 8], [7, 6]], dtype=np.int64) +z = np.where(condition, x, y) # expected output [[1, 8], [3, 4]] +expect(node, inputs=[condition, x, y], outputs=[z], + name='test_where_long_example') +``` + +
+
+where + +```python +node = onnx.helper.make_node( + 'Where', + inputs=['condition', 'x', 'y'], + outputs=['z'], +) + +condition = np.array([[1, 0], [1, 1]], dtype=bool) +x = np.array([[1, 2], [3, 4]], dtype=np.float32) +y = np.array([[9, 8], [7, 6]], dtype=np.float32) +z = np.where(condition, x, y) # expected output [[1, 8], [3, 4]] +expect(node, inputs=[condition, x, y], outputs=[z], + name='test_where_example') +``` + +
+ + +### Xor +There are 2 test cases, listed as following: +
+xor + +```python +node = onnx.helper.make_node( + 'Xor', + inputs=['x', 'y'], + outputs=['xor'], +) + +# 2d +x = (np.random.randn(3, 4) > 0).astype(bool) +y = (np.random.randn(3, 4) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor2d') + +# 3d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(3, 4, 5) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor3d') + +# 4d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor4d') +``` + +
+
+xor_broadcast + +```python +node = onnx.helper.make_node( + 'Xor', + inputs=['x', 'y'], + outputs=['xor'], +) + +# 3d vs 1d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(5) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast3v1d') + +# 3d vs 2d +x = (np.random.randn(3, 4, 5) > 0).astype(bool) +y = (np.random.randn(4, 5) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast3v2d') + +# 4d vs 2d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(5, 6) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast4v2d') + +# 4d vs 3d +x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) +y = (np.random.randn(4, 5, 6) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast4v3d') + +# 4d vs 4d +x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool) +y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool) +z = np.logical_xor(x, y) +expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast4v4d') +``` + +
+ + +
+ +## 💔No Cover Common Operators +### ConcatFromSequence (call for test cases) + + +### GlobalLpPool (call for test cases) + + +### GreaterOrEqual (call for test cases) + + +### LessOrEqual (call for test cases) + + +### LpNormalization (call for test cases) + + +### LpPool (call for test cases) + + +### MaxRoiPool (call for test cases) + + +### Multinomial (random generator operator) + + +### Optional (call for test cases) + + +### OptionalGetElement (call for test cases) + + +### RandomNormal (random generator operator) + + +### RandomNormalLike (random generator operator) + + +### RandomUniform (random generator operator) + + +### RandomUniformLike (random generator operator) + + +### SequenceAt (call for test cases) + + +### SequenceConstruct (call for test cases) + + +### SequenceEmpty (call for test cases) + + +### SequenceErase (call for test cases) + + +### SequenceLength (call for test cases) + + +### SplitToSequence (call for test cases) + + +
+ +## 💚Covered Experimental Operators +
+ +## 💔No Cover Experimental Operators +
+ +# Model Test Coverage +## bvlc_alexnet + +bvlc_alexnet has 24 nodes. Of these, 24 are covered by node tests (100.0%) + + +
+nodes + +
+Conv: 4 out of 6 attributes covered + +auto_pad: 0 +dilations: 0 +group: 1 +kernel_shape: 3 +pads: 3 +strides: 2 +
+
+Dropout: 1 out of 1 attributes covered + +seed: 0 +
+
+Gemm: 1 out of 4 attributes covered + +alpha: 0 +beta: 0 +transA: 0 +transB: 1 +
+
+LRN: 4 out of 4 attributes covered + +alpha: 1 +beta: 1 +bias: 1 +size: 1 +
+
+MaxPool: 3 out of 7 attributes covered + +auto_pad: 0 +ceil_mode: 0 +dilations: 0 +kernel_shape: 1 +pads: 2 +storage_order: 0 +strides: 1 +
+
+ + +## densenet121 + +densenet121 has 910 nodes. Of these, 910 are covered by node tests (100.0%) + + +
+nodes + +
+AveragePool: 3 out of 6 attributes covered + +auto_pad: 0 +ceil_mode: 0 +count_include_pad: 0 +kernel_shape: 1 +pads: 1 +strides: 1 +
+
+BatchNormalization: 1 out of 3 attributes covered + +epsilon: 1 +momentum: 0 +training_mode: 0 +
+
+Concat: 1 out of 1 attributes covered + +axis: 1 +
+
+Conv: 4 out of 6 attributes covered + +auto_pad: 0 +dilations: 0 +group: 1 +kernel_shape: 5 +pads: 4 +strides: 3 +
+
+Dropout: 1 out of 1 attributes covered + +seed: 0 +
+
+Gemm: 1 out of 4 attributes covered + +alpha: 0 +beta: 0 +transA: 0 +transB: 1 +
+
+LRN: 4 out of 4 attributes covered + +alpha: 1 +beta: 1 +bias: 1 +size: 1 +
+
+MaxPool: 3 out of 7 attributes covered + +auto_pad: 0 +ceil_mode: 0 +dilations: 0 +kernel_shape: 1 +pads: 3 +storage_order: 0 +strides: 1 +
+
+Unsqueeze: 1 out of 0 attributes covered + +
+
+ + +## inception_v1 + +inception_v1 has 144 nodes. Of these, 144 are covered by node tests (100.0%) + + +
+nodes + +
+AveragePool: 3 out of 6 attributes covered + +auto_pad: 0 +ceil_mode: 0 +count_include_pad: 0 +kernel_shape: 2 +pads: 2 +strides: 2 +
+
+BatchNormalization: 1 out of 3 attributes covered + +epsilon: 1 +momentum: 0 +training_mode: 0 +
+
+Concat: 1 out of 1 attributes covered + +axis: 1 +
+
+Conv: 4 out of 6 attributes covered + +auto_pad: 0 +dilations: 0 +group: 1 +kernel_shape: 5 +pads: 4 +strides: 3 +
+
+Dropout: 1 out of 1 attributes covered + +seed: 0 +
+
+Gemm: 1 out of 4 attributes covered + +alpha: 0 +beta: 0 +transA: 0 +transB: 1 +
+
+LRN: 4 out of 4 attributes covered + +alpha: 1 +beta: 1 +bias: 1 +size: 1 +
+
+MaxPool: 3 out of 7 attributes covered + +auto_pad: 0 +ceil_mode: 0 +dilations: 0 +kernel_shape: 1 +pads: 3 +storage_order: 0 +strides: 2 +
+
+Unsqueeze: 1 out of 0 attributes covered + +
+
+ + +## inception_v2 + +inception_v2 has 509 nodes. Of these, 509 are covered by node tests (100.0%) + + +
+nodes + +
+AveragePool: 3 out of 6 attributes covered + +auto_pad: 0 +ceil_mode: 0 +count_include_pad: 0 +kernel_shape: 3 +pads: 3 +strides: 2 +
+
+BatchNormalization: 1 out of 3 attributes covered + +epsilon: 1 +momentum: 0 +training_mode: 0 +
+
+Concat: 1 out of 1 attributes covered + +axis: 1 +
+
+Conv: 4 out of 6 attributes covered + +auto_pad: 0 +dilations: 0 +group: 1 +kernel_shape: 5 +pads: 4 +strides: 3 +
+
+Dropout: 1 out of 1 attributes covered + +seed: 0 +
+
+Gemm: 1 out of 4 attributes covered + +alpha: 0 +beta: 0 +transA: 0 +transB: 1 +
+
+LRN: 4 out of 4 attributes covered + +alpha: 1 +beta: 1 +bias: 1 +size: 1 +
+
+MaxPool: 3 out of 7 attributes covered + +auto_pad: 0 +ceil_mode: 0 +dilations: 0 +kernel_shape: 1 +pads: 3 +storage_order: 0 +strides: 2 +
+
+Unsqueeze: 1 out of 0 attributes covered + +
+
+ + +## resnet50 + +resnet50 has 176 nodes. Of these, 176 are covered by node tests (100.0%) + + +
+nodes + +
+AveragePool: 3 out of 6 attributes covered + +auto_pad: 0 +ceil_mode: 0 +count_include_pad: 0 +kernel_shape: 3 +pads: 3 +strides: 2 +
+
+BatchNormalization: 1 out of 3 attributes covered + +epsilon: 2 +momentum: 0 +training_mode: 0 +
+
+Concat: 1 out of 1 attributes covered + +axis: 1 +
+
+Conv: 4 out of 6 attributes covered + +auto_pad: 0 +dilations: 0 +group: 1 +kernel_shape: 5 +pads: 4 +strides: 3 +
+
+Dropout: 1 out of 1 attributes covered + +seed: 0 +
+
+Gemm: 1 out of 4 attributes covered + +alpha: 0 +beta: 0 +transA: 0 +transB: 1 +
+
+LRN: 4 out of 4 attributes covered + +alpha: 1 +beta: 1 +bias: 1 +size: 1 +
+
+MaxPool: 3 out of 7 attributes covered + +auto_pad: 0 +ceil_mode: 0 +dilations: 0 +kernel_shape: 1 +pads: 3 +storage_order: 0 +strides: 2 +
+
+Unsqueeze: 1 out of 0 attributes covered + +
+
+ + +## shufflenet + +shufflenet has 203 nodes. Of these, 203 are covered by node tests (100.0%) + + +
+nodes + +
+AveragePool: 3 out of 6 attributes covered + +auto_pad: 0 +ceil_mode: 0 +count_include_pad: 0 +kernel_shape: 3 +pads: 3 +strides: 2 +
+
+BatchNormalization: 1 out of 3 attributes covered + +epsilon: 2 +momentum: 0 +training_mode: 0 +
+
+Concat: 1 out of 1 attributes covered + +axis: 1 +
+
+Conv: 4 out of 6 attributes covered + +auto_pad: 0 +dilations: 0 +group: 6 +kernel_shape: 5 +pads: 4 +strides: 3 +
+
+Dropout: 1 out of 1 attributes covered + +seed: 0 +
+
+Gemm: 1 out of 4 attributes covered + +alpha: 0 +beta: 0 +transA: 0 +transB: 1 +
+
+LRN: 4 out of 4 attributes covered + +alpha: 1 +beta: 1 +bias: 1 +size: 1 +
+
+MaxPool: 3 out of 7 attributes covered + +auto_pad: 0 +ceil_mode: 0 +dilations: 0 +kernel_shape: 1 +pads: 3 +storage_order: 0 +strides: 2 +
+
+Transpose: 1 out of 1 attributes covered + +perm: 1 +
+
+Unsqueeze: 1 out of 0 attributes covered + +
+
+ + +## squeezenet_old + +squeezenet_old has 66 nodes. Of these, 66 are covered by node tests (100.0%) + + +
+nodes + +
+AveragePool: 3 out of 6 attributes covered + +auto_pad: 0 +ceil_mode: 0 +count_include_pad: 0 +kernel_shape: 3 +pads: 3 +strides: 2 +
+
+BatchNormalization: 1 out of 3 attributes covered + +epsilon: 2 +momentum: 0 +training_mode: 0 +
+
+Concat: 1 out of 1 attributes covered + +axis: 1 +
+
+Conv: 4 out of 6 attributes covered + +auto_pad: 0 +dilations: 0 +group: 6 +kernel_shape: 5 +pads: 4 +strides: 3 +
+
+Dropout: 1 out of 1 attributes covered + +seed: 0 +
+
+Gemm: 1 out of 4 attributes covered + +alpha: 0 +beta: 0 +transA: 0 +transB: 1 +
+
+LRN: 4 out of 4 attributes covered + +alpha: 1 +beta: 1 +bias: 1 +size: 1 +
+
+MaxPool: 3 out of 7 attributes covered + +auto_pad: 0 +ceil_mode: 0 +dilations: 0 +kernel_shape: 1 +pads: 3 +storage_order: 0 +strides: 2 +
+
+Transpose: 1 out of 1 attributes covered + +perm: 1 +
+
+Unsqueeze: 1 out of 0 attributes covered + +
+
+ + +## vgg19 + +vgg19 has 46 nodes. Of these, 46 are covered by node tests (100.0%) + + +
+nodes + +
+AveragePool: 3 out of 6 attributes covered + +auto_pad: 0 +ceil_mode: 0 +count_include_pad: 0 +kernel_shape: 3 +pads: 3 +strides: 2 +
+
+BatchNormalization: 1 out of 3 attributes covered + +epsilon: 2 +momentum: 0 +training_mode: 0 +
+
+Concat: 1 out of 1 attributes covered + +axis: 1 +
+
+Conv: 4 out of 6 attributes covered + +auto_pad: 0 +dilations: 0 +group: 6 +kernel_shape: 5 +pads: 4 +strides: 3 +
+
+Dropout: 1 out of 1 attributes covered + +seed: 0 +
+
+Gemm: 1 out of 4 attributes covered + +alpha: 0 +beta: 0 +transA: 0 +transB: 1 +
+
+LRN: 4 out of 4 attributes covered + +alpha: 1 +beta: 1 +bias: 1 +size: 1 +
+
+MaxPool: 3 out of 7 attributes covered + +auto_pad: 0 +ceil_mode: 0 +dilations: 0 +kernel_shape: 2 +pads: 3 +storage_order: 0 +strides: 2 +
+
+Transpose: 1 out of 1 attributes covered + +perm: 1 +
+
+Unsqueeze: 1 out of 0 attributes covered + +
+
+ + +## zfnet512 + +zfnet512 has 22 nodes. Of these, 22 are covered by node tests (100.0%) + + +
+nodes + +
+AveragePool: 3 out of 6 attributes covered + +auto_pad: 0 +ceil_mode: 0 +count_include_pad: 0 +kernel_shape: 3 +pads: 3 +strides: 2 +
+
+BatchNormalization: 1 out of 3 attributes covered + +epsilon: 2 +momentum: 0 +training_mode: 0 +
+
+Concat: 1 out of 1 attributes covered + +axis: 1 +
+
+Conv: 4 out of 6 attributes covered + +auto_pad: 0 +dilations: 0 +group: 6 +kernel_shape: 5 +pads: 4 +strides: 3 +
+
+Dropout: 1 out of 1 attributes covered + +seed: 0 +
+
+Gemm: 1 out of 4 attributes covered + +alpha: 0 +beta: 0 +transA: 0 +transB: 1 +
+
+LRN: 4 out of 4 attributes covered + +alpha: 2 +beta: 1 +bias: 2 +size: 1 +
+
+MaxPool: 3 out of 7 attributes covered + +auto_pad: 0 +ceil_mode: 0 +dilations: 0 +kernel_shape: 2 +pads: 3 +storage_order: 0 +strides: 2 +
+
+Transpose: 1 out of 1 attributes covered + +perm: 1 +
+
+Unsqueeze: 1 out of 0 attributes covered + +
+
+ + +# Overall Test Coverage +## To be filled. diff --git a/third_party/onnx/docs/TypeAnnotations.md b/third_party/onnx/docs/TypeAnnotations.md new file mode 100644 index 000000000..27102ffc8 --- /dev/null +++ b/third_party/onnx/docs/TypeAnnotations.md @@ -0,0 +1,65 @@ + + +# Type annotations for ONNX + +At Facebook, we work with community best practices to ensure high code quality, readability and reliability. In line with this, we just added type annotations to our python code to help ONNX developers more easily contribute to the project. + +These type annotations are used by [mypy](https://github.com/python/mypy) within the ONNX CI systems to ensure a continuously high code quality standard. +We also have type annotations for our APIs, which means your tools built on top of the ONNX APIs can use static analysis tools like mypy to ensure they are using the APIs correctly. + +We expect this to have a positive impact on the reliability of ONNX and dependent projects like ONNX converters - we've also found and fixed a few bugs thanks to the addition of type annotations. + +## What is mypy? +Mypy is an opt-in type checker. Annotations are optional and, if present, will be used for static type checking. While it is not advisable to rely too much on mypy to find all errors (for programmers used to a static type system like in C++, it's often confusing that mypy doesn't find some very obvious typing errors), it is still very helpful given the errors it does find. + +## Using the type annotations in dependent projects +Say, for example, you're building a converter for ONNX, which converts between ONNX models and the models of some machine learning framework. If you use mypy for your project, it will automatically detect the type hints in the ONNX code and use them to check that you read from and wrote to the ONNX model correctly. Doing this will notify you about identifier typos or wrong data types when accessing attributes of the ONNX protocol buffer or other ONNX features. + +## For ONNX contributors +If you're contributing to the ONNX repository, you need to add type annotations to your project or CI will fail. Here is how to install it: + +#### Python 3 +If you're using Python 3, you can simply install mypy as an extra dependency of onnx. + +Call from the top level directory of your onnx repository: + + ~/onnx $ pip install -e .[lint] + +And then run the type checks: + + ~/onnx $ python setup.py typecheck + +#### Python 2 +The mypy type checker needs python 3 to run (even though it can check python 2 code), so if your onnx development environment is set up with python 2, you need to install mypy into your system python 3 packages (i.e. not into your python 2 virtualenv): + + $ pip3 install mypy + +Running then works as it does above for python 3. + + ~/onnx $ python setup.py typecheck + +Since you've installed mypy manually, you won't get updates for it when we change the version of the mypy dependency in setup.py, so if you're seeing a CI error and can't reproduce it locally, check your mypy version. + +### What should I annotate? + +Type annotations are (usually) only needed for function arguments and return types, mypy will infer local variable types automatically. "Usually" means there are a few exceptions, but mypy will report these if you hit them. + +### What do type annotations look like? +We can't use PEP484 annotations, because we have to support python 2. So we're writing our type annotations in comments. Typed code looks like this: + + def myfunc(arg): # type: (int) -> bool + return arg == 2 + + class MyClass(object): + def __init__(self): # type: () -> None + pass + + def myfunc(self, arg): # type: (int) -> bool + return arg == 2 + + # Alternative notation for many parameters + def myfunc( + arg1, # type: int + arg2, # type: int + ): # type: (...) -> bool + return arg1 == arg2 diff --git a/third_party/onnx/docs/TypeDenotation.md b/third_party/onnx/docs/TypeDenotation.md new file mode 100644 index 000000000..0929b4f54 --- /dev/null +++ b/third_party/onnx/docs/TypeDenotation.md @@ -0,0 +1,56 @@ + + +# Type Denotation + +Type Denotation is used to describe semantic information around what the inputs and outputs are. It is stored on the TypeProto message. + +## Motivation + +The motivation of such a mechanism can be illustrated via a simple example. In the the neural network SqueezeNet, it takes in an NCHW image input float[1,3,244,244] and produces a output float[1,1000,1,1]: + +``` +input_in_NCHW -> data_0 -> SqueezeNet() -> output_softmaxout_1 +``` + +In order to run this model the user needs a lot of information. In this case the user needs to know: +* the input is an image +* the image is in the format of NCHW +* the color channels are in the order of bgr +* the pixel data is 8 bit +* the pixel data is normalized as values 0-255 + +This proposal consists of three key components to provide all of this information: +* Type Denotation, +* [Dimension Denotation](DimensionDenotation.md), +* [Model Metadata](MetadataProps.md). + +## Type Denotation Definition + +To begin with, we define a set of semantic types that define what models generally consume as inputs and produce as outputs. + +Specifically, in our first proposal we define the following set of standard denotations: + +0. `TENSOR` describes that a type holds a generic tensor using the standard TypeProto message. +1. `IMAGE` describes that a type holds an image. You can use dimension denotation to learn more about the layout of the image, and also the optional model metadata_props. +2. `AUDIO` describes that a type holds an audio clip. +3. `TEXT` describes that a type holds a block of text. + +Model authors SHOULD add type denotation to inputs and outputs for the model as appropriate. + +## An Example with input IMAGE + +Let's use the same SqueezeNet example from above and show everything to properly annotate the model: + +* First set the TypeProto.denotation =`IMAGE` for the ValueInfoProto `data_0` +* Because it's an image, the model consumer now knows to go look for image metadata on the model +* Then include 3 metadata strings on ModelProto.metadata_props + * `Image.BitmapPixelFormat` = `Bgr8` + * `Image.ColorSpaceGamma` = `SRGB` + * `Image.NominalPixelRange` = `NominalRange_0_255` +* For that same ValueInfoProto, make sure to also use Dimension Denotations to denote NCHW + * TensorShapeProto.Dimension[0].denotation = `DATA_BATCH` + * TensorShapeProto.Dimension[1].denotation = `DATA_CHANNEL` + * TensorShapeProto.Dimension[2].denotation = `DATA_FEATURE` + * TensorShapeProto.Dimension[3].denotation = `DATA_FEATURE` + +Now there is enough information in the model to know everything about how to pass a correct image into the model. diff --git a/third_party/onnx/docs/VersionConverter.md b/third_party/onnx/docs/VersionConverter.md new file mode 100644 index 000000000..4bb6acd77 --- /dev/null +++ b/third_party/onnx/docs/VersionConverter.md @@ -0,0 +1,51 @@ + + +# ONNX Version Converter + +ONNX provides a library for converting ONNX models between different +opset versions. The primary motivation is to improve backwards compatibility of ONNX +models without having to strengthen the spec for ONNX backends. This +allows backend developers to offer support for a particular opset version +and for users to write or export models to a particular opset version but +run in an environment with a different opset version. Implementation wise, the library leverages the in-memory representation that is much more convenient to manipulate than the raw protobuf structs, and converters to and from the protobuf format which were developed for the ONNX Optimizer. + +You may be interested in invoking the provided op-specific adapters, or in +implementing new ones (or both). Default adapters only work in the default +domain, but can be generalized to work cross-domain or utilizing new +conversion methods, dependent on the nature of relevant breaking changes. + +## Invoking The Version Converter + +The version converter may be invoked either via C++ or Python. + +The Python API +is described, with example, +[here](PythonAPIOverview.md#converting-version-of-an-onnx-model-within-default-domain-aionnx). + +The C++ API consists of a single function + +``` +ModelProto ConvertVersion( + const ModelProto& mp_in, + const OpSetID& initial_version, + const OpSetID& target_version); +``` + +which accepts an input `ModelProto`, the initial opset version of the model, +and the target opset version, and which returns a new `ModelProto` which +is the result of apply all relevant adapters between initial_version and +target_version. For a list of available passes, see +[convert.h](/onnx/version_converter/convert.h). + +## Implementing Adapters + +You can implement a new adapter by subclassing `Adapter`, and registering +your new adapter with `VersionConverter::registerAdapter()`. Adapters operate +on an in-memory graph representation defined in [ir.h](/onnx/common/ir.h). +There are a number of examples in the [adapters](/onnx/version_converter/adapters) +directory. Please ensure that all adapters convert from opset version i to i + 1 +or i - 1, i.e. from Version 6 to Version 5 or vice versa, even if the 2 versions +being converted between are Version 1 and Version 6. + +If your adapter applies in the default domain, please consider adding it +to the core ONNX repository diff --git a/third_party/onnx/docs/Versioning.md b/third_party/onnx/docs/Versioning.md new file mode 100644 index 000000000..4be57480d --- /dev/null +++ b/third_party/onnx/docs/Versioning.md @@ -0,0 +1,185 @@ + + +# ONNX Versioning + +This document describes the rules for versioning ONNX. MUST, SHOULD et al are used consistent with [RFC2119](https://tools.ietf.org/html/rfc2119). + +## Versioning Principles + +ONNX defines the versioning policy and mechanism for three classes of entities: + +* The [intermediate representation (IR) specification](IR.md), which is the abstract model for graphs and operators and the concrete format that represents them. These are always versioned atomically and are referred to as the *IR version*. +* Operator specifications that may be referenced by a given ONNX graph. We refer to this as the *operator version*. +* A defined/trained model that defines a specific graph in terms of specific operators. We refer to this as the *model version*. + +The versioning of all three of these entity types is distinct and largely independent. The IR specification evolves at a different (generally slower) rate than the operator specifications. Model versions are entirely independent of the other two versions. + +Specific policies for version management are mandated only for IR version and operator version. For model versioning, they are merely recommendations. For model versioning, ONNX users and systems MAY follow whichever local customs make sense; however, to facilitate easily managing shared collections of ONNX models, they SHOULD adhere to the policies described under model versioning. + +New IR and operator versions are released as part of ONNX _releases_, which have their own versioning scheme. The release versioning scheme is not described as part of the standard itself. It is discussed in the [ONNX release management document](../RELEASE-MANAGEMENT.md). + +### Semantic Versioning or Simple Numbers? + +The ONNX versioning system allows for simple monotonically increasing numbers or [semantic versioning (SemVer)](https://semver.org/). For IR and operator sets, versioning is based on simple numbers. For models, ONNX does not require any scheme, but recommends a set of shared conventions. + +Which versioning scheme is in use by a model is made clear by inspecting the most significant four bytes, which MUST be non-zero when using semantic versioning and MUST be zero when using simple numbers. In other words, when using SemVer, at least one of the MAJOR or MINOR numbers must be non-zero. + +### SemVer, Files and Consumers + +For model and release versioning, ONNX builds on the principles and syntax defined by [SemVer 2.0.0](http://semver.org/spec/v2.0.0.html). Throughout this document, we use the terms *breaking change*, *non-breaking change*, and *patch* consistent with SemVer 2.0.0. + +Because ONNX models are serialized files (not APIs), it's worth making clear the relationship between a serialized model and a piece of software that consumes that model. As a rough approximation, the serialized model plays the role of an API's *callee*, while the consumer of the serialized model plays the role of the API's *caller*. + +The ONNX versioning principles are based on the [robustness principle](https://en.wikipedia.org/wiki/Robustness_principle): "be conservative in what you do, be liberal in what you accept from others". + +1. A producer of a given ONNX model (and the ONNX specification itself) MUST strictly adhere to the rules for breaking vs. non-breaking changes defined in this specification. +2. A consumer of a given ONNX model SHOULD consume an updated ONNX file, provided there are no breaking changes in the new ONNX file's IR version, referenced operator versions, or model version (meaning the MAJOR version numbers have not changed between the two ONNX files). +3. A consumer of a given ONNX model MAY consume an updated ONNX file, provided there are one or more breaking changes in the new ONNX file's IR version, referenced operator versions, or model version. + +### Serializing SemVer version numbers in protobuf + +For efficiency, ONNX serializes the MAJOR, MINOR, and PATCH values as a bit-packed 64-bit integer; the two most significant bytes are the MAJOR component, the next two most significant bytes are the MINOR component, and the least significant four bytes are the PATCH component. + +For example, *1.2.345* is represented as *0x0001000200000159*. + +Pre-release and build metadata are not stored in the model. + +## IR versioning + +The IR format is versioned using simple numbers, which MUST be monotonically increasing. Breaking changes to the format or semantics of the ONNX specification require an increment of the version. Non-breaking changes to the IR format do not require changing the version number. + +NOTE: breaking changes include those that do not alter the serialized binary format, but still break software using libraries that write or read it. For example, changing the spelling of a message property will cause code accessing the property break. + +The IR format adheres to the versioning guidelines defined in the [Updating a Message Type](https://developers.google.com/protocol-buffers/docs/proto3#updating) section of the proto3 specification. + +As a general principle, implementations SHOULD be robust in the face of missing fields. However, to ensure basic interoperation, a subset of message fields will be marked as required for a given IR version and all producers MUST set these fields correctly. Required fields MUST always be marked with the comment: + + // This field MUST be present for this version of the IR. + +For example, the `ModelProto.ir_version` property MUST be present in every model. The ONNX checker (`onnx/checker.py`) will enforce these rules. + +Because the protocol buffer message definitions (.proto / .proto3 files) are expected to be consumed by multiple independent developers, changes to those definitions SHOULD NOT break code that depends on generated language bindings (e.g., changing the type of an existing field). + +## Operator versioning + +The IR can evolve independently from the set of operators. Operators represent both the signature and semantics of a given operation. Operators are abstract interfaces in that they do not imply a specific implementation; rather, they are simply the contract between a model author and the implementations that model may execute on. + +A given operator is identified by a three-tuple: `(domain, op_type, since_version)`, written as `domain.op_type:since_version` in prose (e.g., `com.acme.FastConv:3`). `since_version` is the version of the operator set that introduced the operator. Breaking operator changes include: + +* Adding/removing/renaming an attribute. This even includes the case of adding a new optional attribute, where omitting the attribute would imply a default value yielding semantics identical to the previous operator version. + +* Adding/removing/reordering inputs or outputs. + +* Adding/removing types supported by inputs and outputs, and changing types used by attributes. + +* Supporting new behavior even when the existing parameter signature is otherwise identical (e.g. implicitly supporting tensor broadcasting in the Mean operator). + +The following are not breaking: + +* Clarifications of specification ambiguities to match prevailing + implementation practice. + +Changes to the semantics of an operator or function MUST be introduced in a new operator, which MUST be introduced in a new [operator set](#operator-sets). + +> In practice, this means that BC-breaking changes in the ONNX +> repository require contributors to follow these steps: +> +> 1. Increment the maximum version in `DomainToVersionRange`. +> 2. Copy the old operator schema to an `old.cc` file. +> 3. Update the `SinceVersion` signifier to the new max version from +> step (1). +> 4. Register the new operator in the corresponding `operator_sets` +> header file. +> 5. Add a version adapter to `convert.h` so that the version +> converter can upgrade the old version of the operator to the new +> one. This can be a `CompatibleAdapter` in case operators following +> the old schema are still valid under the new one (which is usually +> true). +> 6. A version adapter to downgrade the new operator to the older version +> can also be added to `convert.h` but it's not mandatory. + +How nodes bind to operator declarations is strictly defined, and are designed to increase model compatibility across ONNX implementations, in the spirit of the conservative clause of the robustness principle. + +How ONNX implementations bind an operator declaration to a specific implementation is outside the scope of this specification. Implementations of ONNX MAY elect to introduce more sophisticated operator declaration/implementation binding modes, in the spirit of the liberal clause of the robustness principle. + +### Operator sets + +ONNX uses operator sets to group together immutable operator specifications. An operator set represents a specific version of a domain, indicated by a pair (domain, version). This represents the set of all operators belonging to the specified domain with the specified version (referred to as the `opset_version`). When the inventory of a given operator set changes either by addition, removal, or a change in semantics of a contained operator, its version MUST increase. + +Models declare which operator sets they require as a list of `(domain, opset_version)` pairs in `ModelProto.opset_import`. The empty string ("") domain indicates the operators defined as part of the ONNX specification; other domains correspond to operator sets of other vendors (meaning they can be used to provide vendor-specific extensions to ONNX). The union of the operator sets specified by a given model MUST have a compatible operator declaration for each node in the model's graph. + +### Example + +This section is not normative and informational only. + +Given the following operator sets: + +OpSet|Operators|Comments +-|-|- +1|{A} | A introduced +2|{A, B} | B introduced +3|{A', B, C} | A updated (to A'), C introduced +4|{B, C'} | A removed, C updated (to C') + +The operators for a given operator set will have the following `since_version` values: + +Operator|OpSet 1|OpSet 2|OpSet 3|OpSet 4 +-|-|-|-|- +A|**1** |1 |**3** |**-** +B|- |**2** |2 |2 +C|- |- |**3** |**4** + +Notes: +- Values that are new or updated from a previous OpSet version are in **bold**. + +## Model versioning + +This section of the specification is not normative. It simply outlines a set of recommended practices. + +Model authors and applications/systems MAY elect to ignore the model versioning mechanism and policy rules. For models that will be shared across developers, teams, or organizations, model authors and applications/systems SHOULD adhere to the following version policies: + +### Signature Changes + +1. Breaking changes to the ModelProto.graph.GraphProto.input or .output MUST increment the MAJOR version of `ModelProto.model_version`. Breaking changes include: + + * Breaking changes to the semantics of an input or output (e.g., changing the required contents of an input tensor from a color image to a black and white image). + * Changing the declared type of an input or output to an incompatible type (e.g., `tensor(int)->tensor(string)`). + * Adding a new input for which there is no meaningful or specified default value. Recall that default values for inputs are specified in the initializer list. + * Removing an existing output for which there is no meaningful or specified default value. + +2. Non-breaking changes to the ModelProto.graph.GraphProto.input or .output MUST increment the MINOR version of `ModelProto.model_version`. Non-breaking changes include: + + * Changing the declared type of an input or output to a compatible/widening type (e.g., `tensor(int32)->tensor(int64)`, `tensor(float16)->tensor(float32)`). + * Adding a new input for which there is a meaningful or specified default value. + * Adding new behavior that is only triggered in the presence of inputs that were not + possible in prior versions of the graph (typically by the presence of a new input + or allowing a previously invalid input value). + +### Accuracy or performance changes + +Changes that impact accuracy or performance significantly but do not change the model's inputs or outputs SHOULD increment the PATCH version of `ModelProto.model_version`. + +## Released Versions + +ONNX version|IR version|Opset version ai.onnx|Opset version ai.onnx.ml|Opset version ai.onnx.training +------------|-------------------|---------------------|------------------------|------------------------------ +1.0|3|1|1|- +1.1|3|5|1|- +1.1.2|3|6|1|- +1.2|3|7|1|- +1.3|3|8|1|- +1.4.1|4|9|1|- +1.5.0|5|10|1|- +1.6.0|6|11|2|- +1.7.0|7|12|2|1 +1.8.0|7|13|2|1 +1.8.1|7|13|2|1 +1.9.0|7|14|2|1 +1.10.0|8|15|2|1 +1.10.1|8|15|2|1 +1.10.2|8|15|2|1 +1.11.0|8|16|3|1 + +A programmatically accessible version of the above table is available [here](../onnx/helper.py). Limited version number +information is also maintained in [version.h](../onnx/common/version.h) and [schema.h](../onnx/defs/schema.h). +Please update all whenever a new version of ONNX is released. diff --git a/third_party/onnx/docs/images/onnx_hub_arch.svg b/third_party/onnx/docs/images/onnx_hub_arch.svg new file mode 100644 index 000000000..e79453afe --- /dev/null +++ b/third_party/onnx/docs/images/onnx_hub_arch.svg @@ -0,0 +1 @@ +Git LFS StorageONNX Hub ArchitectureM1 v2M2 v3MN v1M1 v1M1 v2M1 v2…onnx/models RepoMANIFEST.jsonM1 v2 PointerM2 v3 PointerMN v1 Pointeronnx/onnxRepoONNX Hub Python ClientLocal MachineLocal Processimport onnxmodel = onnx.hub.load(‘modelN’)Model CacheMN v1 \ No newline at end of file diff --git a/third_party/onnx/docs/proposals/ArchiveFileFormatProposal.md b/third_party/onnx/docs/proposals/ArchiveFileFormatProposal.md new file mode 100644 index 000000000..1a731b85d --- /dev/null +++ b/third_party/onnx/docs/proposals/ArchiveFileFormatProposal.md @@ -0,0 +1,45 @@ + + +# ONNX File Format Proposal + +## Summary + +We propose a new file format for ONNX models that is a specific application of the [zip](https://en.wikipedia.org/wiki/Zip_(file_format)) file format. We would like to address issues with capacity limits as well as (de)serialization inefficiencies[0][1]. We aim to design a file format that is simple, widely applicable, and efficient. By storing Tensor values (i.e. values typically contained in `TensorProto` messages) as files within a zip archive, we avoid these size limitations and—with special constraints—allow for direct memory-mapping of an ONNX file such that weights can be used directly from the memory-mapped region. Using zip as our base file format allows us to create a design that is conceptually simple as well as well-supported on various platforms. + +## Design + +We propose to treat a .zip file as a key-value store, mapping string keys (filenames) to binary data files. For ONNX model serialization, we will have the following entries: + + +* Data files - Files mapping a unique string identifier to a raw binary data file. These files shall be referenced from the appropriate fields within the base `ModelProto` +* `__MODEL_PROTO` - File that contains the `ModelProto` describing the file + + +Note that the order is significant here. We place the model definition file at the end of the archive to allow for the common case of net manipulations while keeping the weights invariant. This way, tools that manipulate the archive do not need to repack or realign all weights when only touching the model file. + +Within the ONNX protobuf definition, we propose the following changes: + + +* Add `optional string external_data` to `TensorProto`. This can be treated as a data field similar to `float_data`, `int_data`, etc in that there must be exactly one of those fields specified. If a `TensorProto` specifies `external_data`, the implementation shall resolve this reference by string key in the containing zip archive. All values of `external_data` must be unique (under down-casing) and conform to the C identifier specification. + + +Raw data files referenced by `TensorProto`s shall conform to the following specification: + + +* The data shall be equivalent to that stored within the `raw_data` field in `TensorProto`. +* Raw data files within the zip archive shall reside on an alignment boundary of 64 bytes. That is, the byte offset within the file of the first byte of a raw data tensor must be divisible by 64. This requirement can be fulfilled by packing bytes into the `extra` field of each local file record in the zip archive. (example: [2]). This constraint facilitates the direct memory-mapping of data files within the archive, and allows for architectures with both strict alignment requirements (e.g. SIMD instructions on aligned data) to operate and give architectures that operate more efficiently on cache line-aligned data to take full advantage. + +## File Extension + +In keeping with other domain-specific zip applications, we propose to use a custom file extension rather than the `.zip` extension. A custom file extension makes it clear to the user that this is not a general zip file, but rather a file that should be emitted by ONNX tools to conform to the spec. + + +## Future-Proofing Considerations + +This file format represents a generic key-value store that is scalable to many entries as well as large values. Further improvements to the format may come in the form of supporting different or multiple model definitions within the same model, or modifying the way in which weight files are stored. Building off of a proven archival format allows us the reliability as well as flexibility of zip. + + + +[0] https://github.com/onnx/onnx/issues/251 +[1] https://stackoverflow.com/questions/34128872/google-protobuf-maximum-size +[2] https://developer.android.com/studio/command-line/zipalign.html implementation https://github.com/aosp-mirror/platform_build/blob/master/tools/zipalign/ZipAlign.cpp diff --git a/third_party/onnx/docs/proposals/FunctionsProposal.md b/third_party/onnx/docs/proposals/FunctionsProposal.md new file mode 100644 index 000000000..055656509 --- /dev/null +++ b/third_party/onnx/docs/proposals/FunctionsProposal.md @@ -0,0 +1,21 @@ + + +## Proposal Adding Function into ONNX + +Motivation: +1. Reduce number of primitive operators in ONNX +To make it easier for hardware vendors to follow ONNX, we want to make it possible to define composite operators in terms of more primitive operators, reducing the number of kernels which must be directly implemented. For example, FC should be declared to be a composition MatMul and Add. + +2. Expose customize function capability for graph optimization. +To provide a mechanism of doing graph optimization, say, kernel fusion (merge a subgraph into one node with generated efficient kernel codes). This will in turn help HW acceleration, since common-patterns of kernel fusion may be pre-defined as common functions in ONNX and no sub-graph (function) finding needed for kernel fusion anymore. For example, subgraph having "Add", "Sigmoid", "Tanh", "Mul" nodes could be merged into one fusion node with generated cuda kernel containing "+", "sigmoidf", "tanhf", "*". + +3. Provide a flexible RNN implementation. +To define a library of RNN cells and allow the user to write a custom one. + +MAJOR CHANGES: +1. FunctionProto added to represent a function. +2. FunctionSetProto added to represent a function set. +3. AttributeProto updated to support function attribute type and allow attribute reference. +4. ModelProto updated to contain customized function set. + +Prototype details can be found [here](https://github.com/linkerzhang/onnx/blob/kezhan/add_function_private/onnx/onnx.in.proto) diff --git a/third_party/onnx/docs/proposals/NLPinONNXproposal.md b/third_party/onnx/docs/proposals/NLPinONNXproposal.md new file mode 100644 index 000000000..663aa5a96 --- /dev/null +++ b/third_party/onnx/docs/proposals/NLPinONNXproposal.md @@ -0,0 +1,69 @@ + + +## Background + +Modern NLP (Natural Language Processing) is an important domain in which deep learning is applied. In addition, modern NLP networks are often non-trivial to implement and even more difficult to transfer between frameworks. These networks are handled fairly non-uniformly across the landscape of frameworks. The ability for ONNX to interchange these networks can be a very compelling feature. + +NLP networks, including recurrent networks, are often built on dynamic control structures. Standardizing the handling of these structures can lead to better collaboration with backends to expose network semantics and achieve better performance. A tradition has developed within the Computer Vision field for optimizing hardware backends for canonical vision models, such as ResNet-50. There is not really such as tradition in the NLP field, however. Through standardizing the representation of NLP networks, we can give vendors a common representation and push forward the performance of NLP models. + +## Ultimate Goal and Challenges + +We should work toward being able to represent major classes of NLP model architectures. One example of such an architecture is the seq2seq with attention model (e.g. https://arxiv.org/abs/1409.0473). This architecture is used for many use cases, including neural machine translation, speech processing, summarization, dialog systems, image captioning, and syntax parsing, among many others. At the same time, seq2seq with attention is sufficiently complex that supporting it will push forward the state of the art in ONNX, but not so complex that we'd need to define a full programming language. + +seq2seq with attention can roughly be broken down into these constituent parts: + +* An Encoder network + * This network takes a sequence of tokens and yields a sequence of embeddings representing the context found at each time-step + * Major classes of encoders: recurrent network (e.g. LSTM[1]), convolutional[2], attention[3]. + * Requirements from an ONNX representation + * Recurrent network - general recurrent network structures preserving outputs at every timestep. Handling of padding and hidden states for batches with different sequence lengths). + * Convolutional - 1d convolution, position embeddings + * Attention - sinusoid position encodings, layer normalization +* A Decoder network + * This network generates a sequence token by token, parameterized by the context provided from the encoder. + * Yields a probability distribution over possible tokens given previous context and encoder context. + * Major classes of decoders: recurrent network (e.g. LSTM), convolutional (causal, temporal for generation), attention. + * Generation requires dynamic control flow. Often, this is done as a beam search, so this is distinct from regular recurrent networks. + * Model-specific requirements + * Recurrent network - Recurrent network cell that can be used within the context of beam search + * Convolutional - 1d causal convolution (only see previous timesteps) + * Attention - sinusoid position encodings, masking along diagonal +* An Attention mechanism + * This network weights the Encoder contexts based on the Decoder's generation state, and provides a focused Encoder context to the decoder. The Decoder “focuses†on a certain part of the input sequence at each timestep via this mechanism. + * Many classes of attention mechanism: some examples are here https://arxiv.org/pdf/1508.04025.pdf + + +Vanilla seq2seq with attention and non-backtracking beam search does NOT include things such as auxiliary data-structures (e.g. stacks), thus it does not require us to implement the full semantics of a programming language. It is an architecture that we can break down into incremental improvements to ONNX without compromising ONNX's fundamental goal. + +[1] https://arxiv.org/abs/1409.0473 +[2] https://arxiv.org/abs/1705.03122 +[3] https://arxiv.org/abs/1706.03762 + +## Standard Recurrent Network Constructs + +Standard recurrent network architectures such as LSTM or GRU are very common, and we can get very far supporting these. We already have the [LSTM](/docs/Operators.md#LSTM) and [GRU](/docs/Operators.md#GRU) operators, which execute the standard LSTM and GRU[4] operations over a sequence of inputs. These high-level operators are great, since they give backends a semantic view of the computation to be performed, and thus backends can make informed decisions about optimization. Many NLP use cases can get away with using just these operators. + +[4] http://colah.github.io/posts/2015-08-Understanding-LSTMs/ + +## Generic Control Flow + +Once we move beyond the domain of standard LSTM and GRU operations, we need a more generic abstraction onto which we can map NLP architectures. A simple example is how one can implement Multiplicative Integration LSTM (https://arxiv.org/pdf/1606.06630.pdf) in ONNX. We can expose a standard LSTMCell via the proposed Function abstraction (https://github.com/onnx/onnx/issues/481). Building on top of this, we can construct a MI-LSTM by applying the required second-order transformations to the inputs to the LSTMCell. Once we have this aggregated implementation, we can use the generic control flow operators (https://github.com/onnx/onnx/pull/436) to apply this “composite†MI-LSTM cell over a sequence. + +Of course, the dynamic control flow constructs can be used for more general use cases. For example, consider the [beam search](https://en.wikipedia.org/wiki/Beam_search) used often in NLP for sequence generation. This algorithm has several tricky aspects: a (potentially) dynamic stopping condition, a desired maximum trip count (so we don't fall into an infinite loop), loop-carried dependencies, and the desire to preserve the outputs at every time-step, not just the final time-step. Inherently, this is an imperative algorithm that operates on mutable state. The proposed control flow operators in ONNX, however, fulfill all of these requirements, and thus we can represent many instances of sequence generation in ONNX graphs. + +Note that there are more general forms of beam search, such as those including backtracking, but we are not considering these forms for this focused proposal. + + +## End-to-end Example : seq2seq with attention + +We should endeavor to have full support for seq2seq with attention models in ONNX. Facebook is currently working on this internally and creating a pytorch→ONNX→caffe2 pathway. An example of such a model we'd like to represent in ONNX is [fairseq-py](https://github.com/facebookresearch/fairseq-py). We would love to engage with the community and collaborate on anything that will help make this a reality. Additionally, if the community has any other suggestions for prominent NLP models we should be able to represent, we would love to hear your ideas. + +## Further Challenges + +Beyond the constructs used in seq2seq with attention, there are NLP models that exist today that contain more non-trivial features, such as mutable data structures that are manipulated at runtime. Examples of this include back-tracking beam search and parser models such as RNNG (https://arxiv.org/abs/1602.07776). These will present further challenges for ONNX, and the representation of these models will likely remain tied to application code for the time being. We may want to revisit this class of models in the future. + +Another thing we should consider is how to handle preprocessing and postprocessing routines for NLP models. For example, do we defer tokenization, normalization, and index lookup to application code? And how do we, for example, distribute dictionaries that map tokens to indices. Initially this will probably remain out of the scope of ONNX unless there is a good story for standardizing text processing. + +## Conclusion + +We have presented a proposal for a strategy for representing NLP models in ONNX, using seq2seq with attention as a canonical example that covers many use cases. We would like to hear your thoughts about this proposal and to explore opportunities for collaboration with the ONNX community for making ONNX a pleasure to use for NLP. Please feel free to voice your opinions! diff --git a/third_party/onnx/docs/proposals/ONNXIFIproposal.md b/third_party/onnx/docs/proposals/ONNXIFIproposal.md new file mode 100644 index 000000000..6980f854e --- /dev/null +++ b/third_party/onnx/docs/proposals/ONNXIFIproposal.md @@ -0,0 +1,116 @@ + + +# ONNX Interface for Framework Integration: API Proposal + +## Background + +Leading hardware and systems vendors offer highly optimized software to run neural network graphs. These software can deliver order-of-magnitude speedups compared to generic implementations, but their integration with deep learning frameworks and applications is complicated by large variety in vendor-specific interfaces, and subtle incompatibilities with the software stack of high-level applications. + +So far, ONNX format targets the problem of offline conversion of neural network models between different high-level frameworks and vendor-specific libraries through offline translation. In this proposal, we suggest that ONNX ecosystem could be enriched to enable runtime discovery and selection of high-performance graph execution backends, and online (in runtime) conversion of ONNX graph to internal representations of these implementations. + +## Ultimate Goal + +We should strive for consensus on a library API to interface with optimized backends and offload parts of ONNX graphs to these high-performance hardware and software implementation. The API should enable wide interoperability between high-level deep learning frameworks, software implementations of optimized graph runtimes, and existing and upcoming neural network acceleration hardware. + +The standardized API should reduce friction in deploying neural network models for all involved parties: +- Applications would be able to ship only one version of a neural network model (either in ONNX format, or in the format of their deep learning framework, and convert it on the fly to ONNX). +- Deep learning frameworks would be able to integrate with many hardware vendors by using only a single interface. +- Hardware vendors would be able to implement only one interface and get integration with many deep learning frameworks. + +## Design Choices + +- Interface must use only highly portable aspects of C ABI. +- Neural network graphs are passed as serialized ONNX ModelProto messages. To avoid serialization overhead, weights can be passed as raw memory blobs. +- Input and output tensors are allocated by the caller and use NCHW layout. +- Intermediate tensors are allocated by the vendor implementation, and can use any layout. +- Backends (software implementations and hardware accelerators) are discovered, selected, and initialized on-demand in run-time. Multiple backends can be used in the same application simultaneously. +- There is no minimal set of ONNX operators to implement. The implementer and the user (a deep learning framework) of the API decide which operators can and will be offloaded in runtime. +- The proposal includes the minimal functionality to let deep learning frameworks and vendor libraries work together. Several extension mechanisms can be used for more efficient vendor- or platform-specific functionality. + +## Proposed Interface + +We propose a small C-based API, which includes the following functionality: + +* Discover (`onnxGetNumBackends`) and query information (`onnxGetBackendInfo`) about high-performance backends +* Initialize (`onnxInitBackend`) and deinitialize (`onnxReleaseBackend`) high-performance backends +* Query if a backend supports an ONNX operator with particular parameters and input shapes (`onnxGetBackendCompatibility`) +* Convert an ONNX graph to opaque vendor-specific representation of a backend (`onnxInitGraph`) +* Specify memory locations and metadata about graph inputs and outputs (`onnxSetGraphIO`) +* Run an ONNX graph, converted to vendor-specific representation (`onnxRunGraph`) +* Release the vendor-specific representation of a graph and associated resources (`onnxReleaseGraph`) + +## General Use Pattern for Deep Learning Frameworks + +1. The user (deep learning framework) iterates operators in a model graph one-by-one, convert them to ONNX, and calls `onnxGetBackendCompatibility` to check which of the operators can be offloaded to the backend. +2. The user constructs connected subgraphs of operators that can be offloaded to the backend. +3. (Optional) For each subgraph, the user estimates if it is beneficial to offload it to the optimized backend: + + a. The user queries the backend about it high-level performance characteristics using `ONNX_BACKEND_MACS_*` and `ONNX_BACKEND_MEMORY_BANDWIDTH` information queries. These data let the user build a simple roofline model of backend performance. + + b. For every subgraph the user estimates time to do inference using the roofline model. + + c. The user additionally estimates time to transfer subgraph inputs to the backend using `ONNX_BACKEND_CPU_MEMORY_READ_BANDWIDTH` information query and to transfer subgraph outputs from the backend using `ONNX_BACKEND_CPU_MEMORY_WRITE_BANDWIDTH`. + + d. If predicted time to transfer inputs to the backend, do inference, and transfer outputs from the backend exceeds predicted time to do the inference on default engine (e.g. CPU), the user falls back to a different ONNX backend, or to the default engine. + + +4. The user initialized the backend, and offloads the subgraph execution to the ONNX backend by calling `onnxInitGraph`, `onnxSetGraphIO` and `onnxRunGraph` + +## Implementation Notes + +### Backend object + +Backend is a combination of software library and hardware device. The same device (e.g. "NVIDIA Tesla P100 on CUDA index #0" accessed though different software libraries would be seen as different backends. A single software library can expose multiple backends, one per device (e.g. each CUDA GPU in a system is exposed as a separate backend, or CPU, GPU, and DSP on a mobile chipset are exposed as three different backends). + +We recommend that vendors make the backend object reference-counted, and use `uint32_t magic` as the first data field of the object: + +```c +struct MyBackend { + uint32_t magic; + uint64_t referenceCount; + ... +}; + +/* This line won't compile, but gives you an idea of relation between MyBackend structure and onnxBackend type. */ +typedef MyBackend* onnxBackend; +``` + +Magic is an arbitrary 32-bit integer unique for a library implementing the API. It should be used to verify that the backend object passed to `onnxInitGraph` was created by `onnxInitBackend` in the same library. + +### Graph object + +Graph object is a vendor-specific representation of ONNX ModelProto message. Graph is logically related to the backend used to create it, and a typical implementation of a graph object would hold a reference to its backend object. + +We recommend that vendors use `uint32_t magic` as the first data field of the graph object: + +```c +struct MyGraph { + uint32_t magic; + struct MyBackend* backend; + ... +}; + +/* This line won't compile, but gives you an idea of relation between MyGraph structure and onnxGraph type. */ +typedef MyGraph* onnxGraph; +``` + +Magic is an arbitrary 32-bit integer unique for a library implementing the API. It should be used to verify that the backend object passed to `onnxInitGraph` was created by `onnxInitBackend` in the same library. Magic for a graph object should be different from magic of a backend object of the same library. + +### Library initialization + +During one-time library initialization, the implementation of the API would detect `n` supported devices and map them to backend indices in `0...(n-1)` range. The implementation of device discovery and checking required device characteristics is highly vendor- and platform-specific, e.g.: +- A CPU implementation may always expose 1 device. +- A CUDA-based implementation may call `cudaGetDeviceCount` to get the number of CUDA-enabled devices, then + call `cudaGetDeviceProperties` for each device, and map CUDA devices which satisfy the minimum required functionality, such as compute capability, to backend indices. +- An OpenCL-based implementation for a mobile GPU would try to load OpenCL library, call `clGetPlatformIDs` and `clGetPlatformInfo` to find a supported platform, then call `clGetDeviceIDs` and `clGetDeviceInfo` to find a supported GPU device, and map it to the only exposed backend if such device exists, or expose 0 devices otherwise. +- An implementation for hardware neural network accelerators would call vendor-specific driver API to discover accelerator devices installed in the system and map them to backend indices. + +We recommend that library initialization is triggered on the first call to `onnxGetNumBackends`, `onnxGetBackendInfo`, or `onnxInitBackend`. Using a global static C++ object for initialization may hurt portability if library initialization involves loading other shared libraries (DLLs): on Windows `LoadLibrary` function can't be used in initializers of global static objects. + +### onnxGetNumBackends + +Implementation would [initialize the library](#library-initialization), if it wasn't initialized already, and return the number `n` of available backends. + +### onnxGetBackendInfo + +Implementation would [initialize the library](#library-initialization), if it wasn't initialized already, and query information about the backend using vendor- or platform-specific API (e.g. `cudaGetDeviceProperties`, `clGetDeviceInfo`, CPUID instruction). Implementation can cache this information when it is first queried or during initialization, and return the cached value. diff --git a/third_party/onnx/docs/proposals/SymbolicShapeInfProposal.md b/third_party/onnx/docs/proposals/SymbolicShapeInfProposal.md new file mode 100644 index 000000000..b669cd6fb --- /dev/null +++ b/third_party/onnx/docs/proposals/SymbolicShapeInfProposal.md @@ -0,0 +1,163 @@ +# Proposal - Symbolic Shape Inference And Partial Data Propagation + +*Note: This proposal was accepted and implemented in ONNX 1.10. Following PRs implemented this proposal: 3518, 3551, 3593, 3580* + +## Introduction +ONNX provides an implementation of shape inference on ONNX graphs. Shape inference is computed using the operator level shape inference functions. The inferred shape of an operator is used to get the shape information without having to launch the model in a session. Such static shape inference can be used to catch obvious errors before runtime, eliminate run-time checks which are otherwise guaranteed to pass, improve static memory planning and improve model visualization experience. For pytorch exporter and compiler-based execution providers like Nuphar, shape inference is required (rank inference is minimum requirement), and they cannot work with unknown shapes. + +This document explains the limitations of shape inference and lays out a proposal for addressing these limitations. + +## Current onnx shape inference limitations (Pre ONNX 1.10) +Today, ONNX shape inference is not guaranteed to be complete. Wherever possible we fall back to rank inference however, there are scenarios when rank inference is not possible either. Here are the various limitations which block the completion of shape inference: + +1. Some dynamic behaviors block the flow of shape inference, and the shape inference stops. For example, reshape to a dynamically computed shape. + +2. Shape inference works only with constants and simple variables. It does not support arithmetic expressions containing variables nor does it support symbol generation. For example, concatenation on tensors of shapes (5, 2) and (7, 2) can be inferred to produce a result of shape (12, 2), but concatenation on tensors of shapes (5, 2) and (N, 2) will simply produce (?, 2), where “?†represents a dimension with neither dim value nor dim param, rather than containing a representation of N+5 or generating a new symbol (M, 2). In such scenarios shape propagation stops. + +3. All operators are not required to have a shape inference implementation. When such an op is encountered the shape inference stops. There are also cases when rank inference is not done as a fallback mechanism. (Note: We are working on an ongoing basis to identify and fix such issues. The current document does not focus on this limitation) + + +## Goals and Non-Goals +Our **goal** is to fix the shape inference gap in scenarios where: + +* Shape computations are done in branches (refer to limitation 1) + +* Symbolic dimensions are present (refer to limitation 2) + +By fixing these gaps we aim to: + +* Unblock pytorch exporter from exporting models when exporting stops because of absence of shape information. + +* Improve static memory planning in the runtimes. + +* Enable pre-allocating output buffers outside of the runtimes so that its lifetime can be managed by the caller itself. + + +### Non-goals +* Add symbolic expressions to ONNX standard: This is not necessary for accomplishing our goals. There are advantages to having this capability, for example this can significantly reduce the number of symbols introduced and it can also provide more deterministic shape calculations in certain special cases. However, the tradeoff is the added complexity. So, at this point we are not considering it. This can be considered in future iterations. + +* Enable data computation and propagation for older operator sets. (details in the proposal section) + +Note: This work will benefit Nuphar as well but right now there is no plan to move Nuphar to use this solution. + + +## Terminology +Shape inference can be broken into 2 parts: + +* Node level shape inference: This refers to operator specific shape inference functions. They are defined with the operator schema itself. + +* Graph-level shape inference: This refers to the higher-level logic which walks through the entire graph, gets the inferred shape from node level shape inference functions and then makes decisions on merging these inferred shapes with existing shapes so that they are available for downstream nodes. + + +## Proposal +Extend current shape inference to allow: +* Symbol generation and propagation + +* Partial data computation and propagation + +* Extend shape op to generate slice of the shape to facilitate simplifying shape computations. + + +## Extend shape inference + +### Symbol generation and propagation +Extend graph level shape inference to maintain a graph level view of symbols and generate new symbols where necessary. This will enable us to continue the shape inference of the downstream nodes. + +Example: + +For an op like “Concat†if its inputs have shapes “[M]†and “[N]†current shape-inference returns “[?]†where “?†is to indicate a dimension with neither dim-value nor dim-param set. Now, suppose the output X of “Concat†is input to a unary-op Op1() whose output Y is then input to another unary-op Op2() whose output is Z, etc. The shape “[?]†is propagated further. We infer that Y and Z have shape “[?]â€. However, we do not infer that X, Y, and Z have the same shape because two “?†cannot be considered equal. + +Per the current proposal, “[?]†in inferred shapes will be replaced by a new unique symbol by the graph level shape inference so the downstream nodes can use the symbolic shapes to carry out shape inference. In the current example, “Concat†will produce “[?]†as the shape which will then be replaced by “[K]â€, then subsequent shape inference will infer that X, Y, and Z all have the same shape “[K]â€. Runtimes can use this information to reuse memory for these tensors. + + +### Partial data computation and propagation +When shape inputs are computed dynamically, shape inference post a reshape node stops. This can be prevented by making this data available to the reshape node during shape inference. We propose computation and propagation of data for operators which are used in shape computation. + +It is called “partial†data computation and propagation because this will only be done for shape computations. It is not meant to be a full-fledged kernel for the operator. For the same reasons data computations will be implemented for a limited set of operators. While we will increase the coverage in the future iterations it is important to note that for some operators like LSTM, convolution ops, pooling ops etc. data propagation function will never be added because such ops are not used in shape computations. + +The following operators will be picked in the first phase. (These operators are generally used for shape computations.) + +| Ops | +| --------| +| Add | +| Sub | +| Mul | +| Cast | +| Concat | +| Gather | +| Reshape | +| Shape | +| Slice | +| Size | +| Squeeze | +| UnSqueeze | + +The OpSchema class will be extended to include an optional “PartialDataPropagationFunction†like the existing TypeAndShapeInferenceFunction. This function will provide data computation for the operators which will then be propagated to the downstream operators by the graph level shape inference. PartialDataPropagationFunction will be called by the graph level shape inference after TypeAndShapeInference runs for the node because the output shape is required for partial data computation. + +A new interface "DataPropagationContext†will be added to allow PartialDataPropagationFunction to access all the information required to propagate shape data for the given node and allow writing of the computed data. + +Example: + +``` +using DataPropagationFunction = std::function + +class OpSchema final { + + public: + . + . + . + + OpSchema& PartialDataPropagationFunction(DataPropagationFunction dataPropagationFunction)  { +   partial_data_propagation_function_ = std::move(dataPropagationFunction); +   return *this; + } + + DataPropagationFunction GetDataPropagationFunction() const { +    return partial_data_propagation_function_ ? partial_data_propagation_function_ : dummyDataPropogator; + } +} + +// Operator schema example +ONNX_OPERATOR_SET_SCHEMA( +    Shape, +    13, +    OpSchema() +        .SetDoc(“â€) +        .Input(0, "data", "An input tensor.", "T", . . .) +        .Output(0, "shape", "Shape of the input tensor", "T1", . . .) +        .TypeConstraint("T", OpSchema::all_tensor_types()) +        .TypeConstraint("T1", {"tensor(int64)"}) +        .TypeAndShapeInferenceFunction([](InferenceContext& ctx) { + . . . +        }) + +        .PartialDataPropagationFunction([](DataPropagationContext& ctx) { + TensorShapeProto tp; + // compute output data for shape operator + // add computed data to DataPropagationContext for propagating it downstream +          ctx.addOutputData(0, std::move(tp)); +        })); +``` + +The symbol generation will happen at the graph level shape inference, therefore all the models (older opsets as well as the latest opset versions) can benefit from this enhancement. However, the data computation and propagation are tied to the OpScehma and will happen at node level. To begin with these functions will only be added to the latest op schemas. Older schemas can be extended to support data computation later, on a case by case basis to support some high priority scenarios. What this means is that older opset models will not benefit from shape inference improvements because of this enhancement. + + +## Special Cases +This section considers some edge cases and proposes a solution to handle them. + + +### Broadcasting with symbolic dims +If we have a broadcast between two unknown dimensions “M†and “N†we cannot infer that both M and N should have the same value. The runtime semantics allows for one of the two symbols to have the value 1 and the other to have a value different from 1. So, merging M and N and treating them as the same value is potentially unsound. In this case, a new symbol will be generated for the output shape and the shape inference will continue. + + +### Inferred shape does not match output shape +Inferred and existing shapes can be mismatched. Although failing shape inference in such cases seems like the correct approach it may not always be practical. By default, shape inference will fail when such a case is encountered however callers will have an option to override existing types with inferred types. When this option is enabled, shape inference will continue with the inferred type. + + +### Handling symbolic dimensions with data propagation +When the shape contains symbolic dimensions, we try and propagate them downstream, however in cases where some arithmetic operations are performed on these symbolic dims we create new symbols and propagate them instead. + + +### Output shape is dependent on input data +There are certain nodes like NonZero where the output shape depends on the input data. In this case it is not possible to infer the shape completely hence a new symbolic shape will be created using the inferred rank and shape inference will continue. diff --git a/third_party/onnx/onnx/__init__.py b/third_party/onnx/onnx/__init__.py new file mode 100644 index 000000000..0dea1afa8 --- /dev/null +++ b/third_party/onnx/onnx/__init__.py @@ -0,0 +1,217 @@ +# SPDX-License-Identifier: Apache-2.0 + +import os + +from .onnx_cpp2py_export import ONNX_ML +from onnx.external_data_helper import load_external_data_for_model, write_external_data_tensors, convert_model_to_external_data +from .onnx_pb import * # noqa +from .onnx_operators_pb import * # noqa +from .onnx_data_pb import * # noqa +from .version import version as __version__ # noqa + +# Import common subpackages so they're available when you 'import onnx' +import onnx.checker # noqa +import onnx.defs # noqa +import onnx.helper # noqa +import onnx.utils # noqa +import onnx.compose # noqa + +import google.protobuf.message + +from typing import Union, Text, IO, Optional, cast, TypeVar, Any + + +# f should be either readable or a file path +def _load_bytes(f: Union[IO[bytes], Text]) -> bytes: + if hasattr(f, 'read') and callable(cast(IO[bytes], f).read): + s = cast(IO[bytes], f).read() + else: + with open(cast(Text, f), 'rb') as readable: + s = readable.read() + return s + + +# str should be bytes, +# f should be either writable or a file path +def _save_bytes(str: bytes, f: Union[IO[bytes], Text]) -> None: + if hasattr(f, 'write') and callable(cast(IO[bytes], f).write): + cast(IO[bytes], f).write(str) + else: + with open(cast(Text, f), 'wb') as writable: + writable.write(str) + + +# f should be either a readable file or a file path +def _get_file_path(f: Union[IO[bytes], Text]) -> Optional[Text]: + if isinstance(f, str): + return os.path.abspath(f) + if hasattr(f, 'name'): + return os.path.abspath(f.name) + return None + + +def _serialize(proto: Union[bytes, google.protobuf.message.Message]) -> bytes: + ''' + Serialize a in-memory proto to bytes + + Arguments: + proto: a in-memory proto, such as a ModelProto, TensorProto, etc + + Returns: + Serialized proto in bytes + ''' + if isinstance(proto, bytes): + return proto + elif hasattr(proto, 'SerializeToString') and callable(proto.SerializeToString): + result = proto.SerializeToString() + return result + else: + raise TypeError('No SerializeToString method is detected. ' + 'neither proto is a str.\ntype is {}'.format(type(proto))) + + +_Proto = TypeVar('_Proto', bound=google.protobuf.message.Message) + + +def _deserialize(s: bytes, proto: _Proto) -> _Proto: + ''' + Parse bytes into a in-memory proto + + Arguments: + s: bytes containing serialized proto + proto: a in-memory proto object + + Returns: + The proto instance filled in by s + ''' + if not isinstance(s, bytes): + raise ValueError('Parameter s must be bytes, but got type: {}'.format(type(s))) + + if not (hasattr(proto, 'ParseFromString') and callable(proto.ParseFromString)): + raise ValueError('No ParseFromString method is detected. ' + '\ntype is {}'.format(type(proto))) + + decoded = cast(Optional[int], proto.ParseFromString(s)) + if decoded is not None and decoded != len(s): + raise google.protobuf.message.DecodeError( + "Protobuf decoding consumed too few bytes: {} out of {}".format( + decoded, len(s))) + return proto + + +def load_model(f: Union[IO[bytes], Text], format: Optional[Any] = None, load_external_data: bool = True) -> ModelProto: + ''' + Loads a serialized ModelProto into memory + load_external_data is true if the external data under the same directory of the model and load the external data + If not, users need to call load_external_data_for_model with directory to load + + Arguments: + f: can be a file-like object (has "read" function) or a string containing a file name + format: for future use + + Returns: + Loaded in-memory ModelProto + ''' + s = _load_bytes(f) + model = load_model_from_string(s, format=format) + + if load_external_data: + model_filepath = _get_file_path(f) + if model_filepath: + base_dir = os.path.dirname(model_filepath) + load_external_data_for_model(model, base_dir) + + return model + + +def load_tensor(f: Union[IO[bytes], Text], format: Optional[Any] = None) -> TensorProto: + ''' + Loads a serialized TensorProto into memory + + Arguments: + f: can be a file-like object (has "read" function) or a string containing a file name + format: for future use + + Returns: + Loaded in-memory TensorProto + ''' + s = _load_bytes(f) + return load_tensor_from_string(s, format=format) + + +def load_model_from_string(s: bytes, format: Optional[Any] = None) -> ModelProto: + ''' + Loads a binary string (bytes) that contains serialized ModelProto + + Arguments: + s: a string, which contains serialized ModelProto + format: for future use + + Returns: + Loaded in-memory ModelProto + ''' + return _deserialize(s, ModelProto()) + + +def load_tensor_from_string(s: bytes, format: Optional[Any] = None) -> TensorProto: + ''' + Loads a binary string (bytes) that contains serialized TensorProto + + Arguments: + s: a string, which contains serialized TensorProto + format: for future use + + Returns: + Loaded in-memory TensorProto + ''' + return _deserialize(s, TensorProto()) + + +def save_model(proto: Union[ModelProto, bytes], f: Union[IO[bytes], Text], format: Optional[Any] = None, save_as_external_data: bool = False, all_tensors_to_one_file: bool = True, location: Optional[Text] = None, size_threshold: int = 1024, convert_attribute: bool = False) -> None: + ''' + Saves the ModelProto to the specified path and optionally, serialize tensors with raw data as external data before saving. + + Arguments: + proto: should be a in-memory ModelProto + f: can be a file-like object (has "write" function) or a string containing a file name format for future use + all_tensors_to_one_file: If true, save all tensors to one external file specified by location. + If false, save each tensor to a file named with the tensor name. + location: specify the external file that all tensors to save to. + If not specified, will use the model name. + size_threshold: Threshold for size of data. Only when tensor's data is >= the size_threshold it will be converted + to external data. To convert every tensor with raw data to external data set size_threshold=0. + convert_attribute: If true, convert all tensors to external data + If false, convert only non-attribute tensors to external data + ''' + if isinstance(proto, bytes): + proto = _deserialize(proto, ModelProto()) + + if save_as_external_data: + convert_model_to_external_data(proto, all_tensors_to_one_file, location, size_threshold, convert_attribute) + + model_filepath = _get_file_path(f) + if model_filepath: + basepath = os.path.dirname(model_filepath) + proto = write_external_data_tensors(proto, basepath) + + s = _serialize(proto) + _save_bytes(s, f) + + +def save_tensor(proto: TensorProto, f: Union[IO[bytes], Text]) -> None: + ''' + Saves the TensorProto to the specified path. + + Arguments: + proto: should be a in-memory TensorProto + f: can be a file-like object (has "write" function) or a string containing a file name + format: for future use + ''' + s = _serialize(proto) + _save_bytes(s, f) + + +# For backward compatibility +load = load_model +load_from_string = load_model_from_string +save = save_model diff --git a/third_party/onnx/onnx/backend/__init__.py b/third_party/onnx/onnx/backend/__init__.py new file mode 100644 index 000000000..988131360 --- /dev/null +++ b/third_party/onnx/onnx/backend/__init__.py @@ -0,0 +1 @@ +# SPDX-License-Identifier: Apache-2.0 diff --git a/third_party/onnx/onnx/backend/base.py b/third_party/onnx/onnx/backend/base.py new file mode 100644 index 000000000..af1fd4147 --- /dev/null +++ b/third_party/onnx/onnx/backend/base.py @@ -0,0 +1,115 @@ +# SPDX-License-Identifier: Apache-2.0 + +from collections import namedtuple +from typing import Text, Sequence, Any, Type, Tuple, NewType, Optional, Dict + +import numpy # type: ignore + +import onnx.checker +import onnx.onnx_cpp2py_export.checker as c_checker +from onnx import ModelProto, NodeProto, IR_VERSION + + +class DeviceType(object): + _Type = NewType('_Type', int) + CPU: _Type = _Type(0) + CUDA: _Type = _Type(1) + + +class Device(object): + ''' + Describes device type and device id + syntax: device_type:device_id(optional) + example: 'CPU', 'CUDA', 'CUDA:1' + ''' + + def __init__(self, device: Text) -> None: + options = device.split(':') + self.type = getattr(DeviceType, options[0]) + self.device_id = 0 + if len(options) > 1: + self.device_id = int(options[1]) + + +def namedtupledict(typename: Text, field_names: Sequence[Text], *args: Any, **kwargs: Any) -> Type[Tuple[Any, ...]]: + field_names_map = {n: i for i, n in enumerate(field_names)} + # Some output names are invalid python identifier, e.g. "0" + kwargs.setdefault(str('rename'), True) + data = namedtuple(typename, field_names, *args, **kwargs) # type: ignore + + def getitem(self: Any, key: Any) -> Any: + if isinstance(key, str): + key = field_names_map[key] + return super(type(self), self).__getitem__(key) # type: ignore + setattr(data, "__getitem__", getitem) + return data + + +class BackendRep(object): + def run(self, inputs: Any, **kwargs: Any) -> Tuple[Any, ...]: + pass + + +class Backend(object): + @classmethod + def is_compatible(cls, + model: ModelProto, + device: Text = 'CPU', + **kwargs: Any + ) -> bool: + # Return whether the model is compatible with the backend. + return True + + @classmethod + def prepare(cls, + model: ModelProto, + device: Text = 'CPU', + **kwargs: Any + ) -> Optional[BackendRep]: + # TODO Remove Optional from return type + onnx.checker.check_model(model) + return None + + @classmethod + def run_model(cls, + model: ModelProto, + inputs: Any, + device: Text = 'CPU', + **kwargs: Any + ) -> Tuple[Any, ...]: + backend = cls.prepare(model, device, **kwargs) + assert backend is not None + return backend.run(inputs) + + @classmethod + def run_node(cls, + node: NodeProto, + inputs: Any, + device: Text = 'CPU', + outputs_info: Optional[Sequence[Tuple[numpy.dtype, Tuple[int, ...]]]] = None, + **kwargs: Dict[Text, Any] + ) -> Optional[Tuple[Any, ...]]: + '''Simple run one operator and return the results. + Args: + outputs_info: a list of tuples, which contains the element type and + shape of each output. First element of the tuple is the dtype, and + the second element is the shape. More use case can be found in + https://github.com/onnx/onnx/blob/main/onnx/backend/test/runner/__init__.py + ''' + # TODO Remove Optional from return type + if 'opset_version' in kwargs: + special_context = c_checker.CheckerContext() + special_context.ir_version = IR_VERSION + special_context.opset_imports = {'': kwargs['opset_version']} # type: ignore + onnx.checker.check_node(node, special_context) + else: + onnx.checker.check_node(node) + return None + + @classmethod + def supports_device(cls, device: Text) -> bool: + """ + Checks whether the backend is compiled with particular device support. + In particular it's used in the testing suite. + """ + return True diff --git a/third_party/onnx/onnx/backend/sample/__init__.py b/third_party/onnx/onnx/backend/sample/__init__.py new file mode 100644 index 000000000..988131360 --- /dev/null +++ b/third_party/onnx/onnx/backend/sample/__init__.py @@ -0,0 +1 @@ +# SPDX-License-Identifier: Apache-2.0 diff --git a/third_party/onnx/onnx/backend/sample/ops/__init__.py b/third_party/onnx/onnx/backend/sample/ops/__init__.py new file mode 100644 index 000000000..55e70e7b7 --- /dev/null +++ b/third_party/onnx/onnx/backend/sample/ops/__init__.py @@ -0,0 +1,25 @@ +# SPDX-License-Identifier: Apache-2.0 + +import importlib +import inspect +import sys +import pkgutil +from typing import Dict, Text +from types import ModuleType + + +def collect_sample_implementations() -> Dict[Text, Text]: + dict: Dict[Text, Text] = {} + _recursive_scan(sys.modules[__name__], dict) + return dict + + +def _recursive_scan(package: ModuleType, dict: Dict[Text, Text]) -> None: + pkg_dir = package.__path__ # type: ignore + module_location = package.__name__ + for _module_loader, name, ispkg in pkgutil.iter_modules(pkg_dir): # type: ignore + module_name = "{}.{}".format(module_location, name) # Module/package + module = importlib.import_module(module_name) + dict[name] = inspect.getsource(module) + if ispkg: + _recursive_scan(module, dict) diff --git a/third_party/onnx/onnx/backend/sample/ops/abs.py b/third_party/onnx/onnx/backend/sample/ops/abs.py new file mode 100644 index 000000000..89fe75b79 --- /dev/null +++ b/third_party/onnx/onnx/backend/sample/ops/abs.py @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + + +def abs(input: np.ndarray) -> np.ndarray: + return np.abs(input) diff --git a/third_party/onnx/onnx/backend/test/__init__.py b/third_party/onnx/onnx/backend/test/__init__.py new file mode 100644 index 000000000..4110663c2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/__init__.py @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: Apache-2.0 + +# for backward compatibility +from .runner import Runner as BackendTest # noqa diff --git a/third_party/onnx/onnx/backend/test/case/__init__.py b/third_party/onnx/onnx/backend/test/case/__init__.py new file mode 100644 index 000000000..028682508 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/__init__.py @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: Apache-2.0 + +import sys + +from .base import Snippets +from .utils import import_recursive +from typing import Dict, Text, List, Tuple + + +def collect_snippets() -> Dict[Text, List[Tuple[Text, Text]]]: + import_recursive(sys.modules[__name__]) + return Snippets diff --git a/third_party/onnx/onnx/backend/test/case/base.py b/third_party/onnx/onnx/backend/test/case/base.py new file mode 100644 index 000000000..79cb18033 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/base.py @@ -0,0 +1,43 @@ +# SPDX-License-Identifier: Apache-2.0 + +from collections import defaultdict +import inspect +from textwrap import dedent +from typing import Dict, Text, List, Tuple, Type, Sequence, Any + +import numpy as np # type: ignore + + +def process_snippet(op_name: Text, name: Text, export: Any) -> Tuple[Text, Text]: + snippet_name = name[len('export_'):] or op_name.lower() + source_code = dedent(inspect.getsource(export)) + # remove the function signature line + lines = source_code.splitlines() + assert lines[0] == '@staticmethod' + assert lines[1].startswith('def export') + return snippet_name, dedent("\n".join(lines[2:])) + + +Snippets: Dict[Text, List[Tuple[Text, Text]]] = defaultdict(list) + + +class _Exporter(type): + exports: Dict[Text, List[Tuple[Text, Text]]] = defaultdict(list) + + def __init__(cls, name: str, bases: Tuple[Type[Any], ...], dct: Dict[str, Any]) -> None: + for k, v in dct.items(): + if k.startswith('export'): + if not isinstance(v, staticmethod): + raise ValueError( + 'Only staticmethods could be named as export.*') + export = getattr(cls, k) + Snippets[name].append(process_snippet(name, k, export)) + # export functions should call expect and so populate + # TestCases + np.random.seed(seed=0) + export() + super(_Exporter, cls).__init__(name, bases, dct) + + +class Base(object, metaclass=_Exporter): + pass diff --git a/third_party/onnx/onnx/backend/test/case/model/__init__.py b/third_party/onnx/onnx/backend/test/case/model/__init__.py new file mode 100644 index 000000000..c5978f804 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/model/__init__.py @@ -0,0 +1,74 @@ +# SPDX-License-Identifier: Apache-2.0 + +import sys + +import onnx.defs +import numpy as np # type: ignore +from onnx import ModelProto +from typing import List, Optional, Text, Sequence +from ..utils import import_recursive +from ..test_case import TestCase + +_SimpleModelTestCases = [] + + +def expect(model: ModelProto, + inputs: Sequence[np.ndarray], + outputs: Sequence[np.ndarray], + name: Optional[Text] = None, + ) -> None: + name = name or model.graph.name + _SimpleModelTestCases.append( + TestCase( + name=name, + model_name=model.graph.name, + url=None, + model_dir=None, + model=model, + data_sets=[(inputs, outputs)], + kind='simple', + rtol=1e-3, + atol=1e-7, + )) + + +base_model_opset_version = 10 +BASE_URL = 'https://s3.amazonaws.com/download.onnx/models/opset_{}'.format( + base_model_opset_version) + + +def collect_testcases() -> List[TestCase]: + '''Collect model test cases defined in python/numpy code and in model zoo. + ''' + + real_model_testcases = [] + + model_tests = [ + ('test_bvlc_alexnet', 'bvlc_alexnet', 1e-3, 1e-7), + ('test_densenet121', 'densenet121', 2e-3, 1e-7), + ('test_inception_v1', 'inception_v1', 1e-3, 1e-7), + ('test_inception_v2', 'inception_v2', 1e-3, 1e-7), + ('test_resnet50', 'resnet50', 1e-3, 1e-7), + ('test_shufflenet', 'shufflenet', 1e-3, 1e-7), + ('test_squeezenet', 'squeezenet', 1e-3, 1e-7), + ('test_vgg19', 'vgg19', 1e-3, 1e-7), + ('test_zfnet512', 'zfnet512', 1e-3, 1e-7), + ] + + for test_name, model_name, rtol, atol in model_tests: + url = '{}/{}.tar.gz'.format(BASE_URL, model_name) + real_model_testcases.append(TestCase( + name=test_name, + model_name=model_name, + url=url, + model_dir=None, + model=None, + data_sets=None, + kind='real', + rtol=rtol, + atol=atol, + )) + + import_recursive(sys.modules[__name__]) + + return real_model_testcases + _SimpleModelTestCases diff --git a/third_party/onnx/onnx/backend/test/case/model/expand.py b/third_party/onnx/onnx/backend/test/case/model/expand.py new file mode 100644 index 000000000..8333ce82b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/model/expand.py @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from typing import Sequence + + +class ExpandDynamicShape(Base): + + @staticmethod + def export() -> None: + + def make_graph(node: onnx.helper.NodeProto, input_shape: Sequence[int], shape_shape: Sequence[int], output_shape: Sequence[int]) -> onnx.helper.GraphProto: + graph = onnx.helper.make_graph( + nodes=[node], + name='Expand', + inputs=[onnx.helper.make_tensor_value_info('X', + onnx.TensorProto.FLOAT, + input_shape), + onnx.helper.make_tensor_value_info('shape', + onnx.TensorProto.INT64, + shape_shape)], + outputs=[onnx.helper.make_tensor_value_info('Y', + onnx.TensorProto.FLOAT, + output_shape)]) + return graph + + node = onnx.helper.make_node( + 'Expand', ['X', 'shape'], ['Y'], name='test') + input_shape = [1, 3, 1] + x = np.ones(input_shape, dtype=np.float32) + + #1st testcase + shape = np.array([3, 1], dtype=np.int64) + y = x * np.ones(shape, dtype=np.float32) + graph = make_graph(node, input_shape, shape.shape, y.shape) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, shape], outputs=[y], name="test_expand_shape_model1") + + #2nd testcase + shape = np.array([1, 3], dtype=np.int64) + y = x * np.ones(shape, dtype=np.float32) + graph = make_graph(node, input_shape, shape.shape, y.shape) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, shape], outputs=[y], name="test_expand_shape_model2") + + #3rd testcase + shape = np.array([3, 1, 3], dtype=np.int64) + y = x * np.ones(shape, dtype=np.float32) + graph = make_graph(node, input_shape, shape.shape, y.shape) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, shape], outputs=[y], name="test_expand_shape_model3") + + #4th testcase + shape = np.array([3, 3, 1, 3], dtype=np.int64) + y = x * np.ones(shape, dtype=np.float32) + graph = make_graph(node, input_shape, shape.shape, y.shape) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, shape], outputs=[y], name="test_expand_shape_model4") diff --git a/third_party/onnx/onnx/backend/test/case/model/gradient.py b/third_party/onnx/onnx/backend/test/case/model/gradient.py new file mode 100644 index 000000000..e083faaec --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/model/gradient.py @@ -0,0 +1,101 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from onnx.defs import ONNX_DOMAIN, AI_ONNX_PREVIEW_TRAINING_DOMAIN +from ..base import Base +from . import expect + + +class Gradient(Base): + + @staticmethod + def export_gradient_scalar_add() -> None: + add_node = onnx.helper.make_node('Add', + ['a', 'b'], ['c'], name='my_add') + gradient_node = onnx.helper.make_node( + 'Gradient', ['a', 'b'], + ['dc_da', 'dc_db'], name='my_gradient', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN, + xs=['a', 'b'], y='c') + + a = np.array(1.0).astype(np.float32) + b = np.array(2.0).astype(np.float32) + c = a + b + # dc / da = d(a+b) / da = 1 + dc_da = np.array(1).astype(np.float32) + # db / db = d(a+b) / db = 1 + dc_db = np.array(1).astype(np.float32) + + graph = onnx.helper.make_graph( + nodes=[add_node, gradient_node], + name='GradientOfAdd', + inputs=[ + onnx.helper.make_tensor_value_info('a', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('b', onnx.TensorProto.FLOAT, + [])], + outputs=[ + onnx.helper.make_tensor_value_info('c', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('dc_da', + onnx.TensorProto.FLOAT, []), + onnx.helper.make_tensor_value_info('dc_db', + onnx.TensorProto.FLOAT, [])]) + opsets = [ + onnx.helper.make_operatorsetid(ONNX_DOMAIN, 12), + onnx.helper.make_operatorsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)] + model = onnx.helper.make_model( + graph, + producer_name='backend-test', + opset_imports=opsets) + expect(model, inputs=[a, b], outputs=[c, dc_da, dc_db], + name='test_gradient_of_add') + + @staticmethod + def export_gradient_scalar_add_and_mul() -> None: + add_node = onnx.helper.make_node('Add', + ['a', 'b'], ['c'], name='my_add') + mul_node = onnx.helper.make_node('Mul', + ['c', 'a'], ['d'], name='my_mul') + gradient_node = onnx.helper.make_node( + 'Gradient', ['a', 'b'], + ['dd_da', 'dd_db'], name='my_gradient', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN, + xs=['a', 'b'], y='d') + + a = np.array(1.0).astype(np.float32) + b = np.array(2.0).astype(np.float32) + c = a + b + # d = a * c = a * (a + b) + d = a * c + # dd / da = d(a*a+a*b) / da = 2 * a + b + dd_da = (2 * a + b).astype(np.float32) + # dd / db = d(a*a+a*b) / db = a + dd_db = a + + graph = onnx.helper.make_graph( + nodes=[add_node, mul_node, gradient_node], + name='GradientOfTwoOperators', + inputs=[ + onnx.helper.make_tensor_value_info('a', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('b', onnx.TensorProto.FLOAT, + [])], + outputs=[ + onnx.helper.make_tensor_value_info('d', onnx.TensorProto.FLOAT, + []), + onnx.helper.make_tensor_value_info('dd_da', + onnx.TensorProto.FLOAT, []), + onnx.helper.make_tensor_value_info('dd_db', + onnx.TensorProto.FLOAT, [])]) + + opsets = [ + onnx.helper.make_operatorsetid(ONNX_DOMAIN, 12), + onnx.helper.make_operatorsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)] + model = onnx.helper.make_model(graph, + producer_name='backend-test', + opset_imports=opsets) + expect(model, inputs=[a, b], outputs=[d, dd_da, dd_db], + name='test_gradient_of_add_and_mul') diff --git a/third_party/onnx/onnx/backend/test/case/model/sequence.py b/third_party/onnx/onnx/backend/test/case/model/sequence.py new file mode 100644 index 000000000..8def139ee --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/model/sequence.py @@ -0,0 +1,355 @@ +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +import numpy as np # type: ignore + +import onnx +import typing +from ..base import Base +from . import expect +from onnx import TensorProto +from typing import List, Optional, Text, Union + + +def SequenceEmptyImpl() -> List[Optional[np.ndarray]]: + return [] + + +def SequenceConstructImpl(*tensors: np.ndarray) -> List[np.ndarray]: + return list(tensors) + + +def SequenceInsertImpl(sequence: List[np.ndarray], tensor: np.ndarray, position: Optional[int] = None) -> List[np.ndarray]: + if position is None: + position = len(sequence) + sequence.insert(position, tensor) + return sequence + + +def SequenceAtImpl(sequence: List[np.ndarray], position: int) -> np.ndarray: + return sequence[position] + + +def SequenceEraseImpl(sequence: List[np.ndarray], position: Optional[int] = None) -> List[Optional[np.ndarray]]: + if position is None: + position = -1 + del sequence[position] + return sequence + + +def SequenceLengthImpl(sequence: List[np.ndarray]) -> np.int64: + return np.int64(len(sequence)) + + +def SplitToSequenceImpl(tensor: np.ndarray, split: Optional[Union[int, List[int]]] = None, axis: int = 0, keepdims: int = 1) -> List[np.ndarray]: + dim_size = tensor.shape[axis] + if split is None: + split = 1 + split_indices = [i * split + 1 for i in range(dim_size) if i * split + 1 < dim_size] + if not keepdims: + results = np.array_split(tensor, split_indices, axis) + return [np.squeeze(res, axis) for res in results] + if np.isscalar(split): + split_indices = [i * split + 1 for i in range(dim_size) if i * split + 1 < dim_size] # type: ignore + else: + split_indices = np.cumsum(split) + 1 + return np.array_split(tensor, split_indices, axis) # type: ignore + + +def ConcatFromSequenceImpl(sequence: List[np.ndarray], axis: int, new_axis: Optional[int] = 0) -> np.ndarray: + if not new_axis: + return np.concatenate(sequence, axis) + else: + return np.stack(sequence, axis) + + +class Sequence(Base): + + @staticmethod + def export() -> None: + + def make_graph( + nodes: List[onnx.helper.NodeProto], + input_shapes: List[Optional[typing.Sequence[Union[Text, int]]]], + output_shapes: List[Optional[typing.Sequence[Union[Text, int]]]], + input_names: List[Text], + output_names: List[Text], + input_types: List[TensorProto.DataType], + output_types: List[TensorProto.DataType], + initializers: Optional[List[TensorProto]] = None + ) -> onnx.helper.GraphProto: + graph = onnx.helper.make_graph( + nodes=nodes, + name='Sequence', + inputs=[ + onnx.helper.make_tensor_value_info( + name, + input_type, + input_shape) + for name, input_type, input_shape in zip(input_names, input_types, input_shapes)], + outputs=[ + onnx.helper.make_tensor_value_info( + name, + output_type, + output_shape) + for name, output_type, output_shape in zip(output_names, output_types, output_shapes)], + initializer=initializers) + return graph + + #1st testcase - insert and at. + # 1. SequenceEmpty: -> [] + # 2. SequenceInsert(x): -> [x] + # 3. SequenceInsert(y): -> [x, y] + # 4. SequenceInsert(z, 1): -> [x, z, y] + # 5. SequenceAt(2): -> y + seq_empty_node = onnx.helper.make_node('SequenceEmpty', [], ['Seq_empty']) + seq_insert_node = onnx.helper.make_node('SequenceInsert', ['Seq_empty', 'X'], ['Seq_1']) + seq_insert_node2 = onnx.helper.make_node('SequenceInsert', ['Seq_1', 'Y'], ['Seq_2']) + seq_insert_node3 = onnx.helper.make_node('SequenceInsert', ['Seq_2', 'Z', 'pos'], ['Seq_3']) + seq_at_node = onnx.helper.make_node('SequenceAt', ['Seq_3', 'pos_at'], ['out']) + + x_shape = [2, 3, 4] + y_shape = [1, 3, 4] + z_shape = [3, 3, 4] + out_shape = [None, 3, 4] + + x = np.ones(x_shape, dtype=np.float32) + y = np.zeros(y_shape, dtype=np.float32) + z = np.ones(z_shape, dtype=np.float32) * 2 + pos_val = 1 + pos_at_val = 2 + + out = SequenceEmptyImpl() + out = SequenceInsertImpl(out, x) + out = SequenceInsertImpl(out, y) + out = SequenceInsertImpl(out, z, pos_val) + out = SequenceAtImpl(out, pos_at_val) + assert np.array_equal(out, y) + + pos = onnx.helper.make_tensor('pos', TensorProto.INT64, (), (pos_val, )) + pos_at = onnx.helper.make_tensor('pos_at', TensorProto.INT64, (), (pos_at_val, )) + + graph = make_graph( + [seq_empty_node, seq_insert_node, seq_insert_node2, seq_insert_node3, seq_at_node], + [x_shape, y_shape, z_shape, [], []], # type: ignore + [out_shape], # type: ignore + ['X', 'Y', 'Z', 'pos', 'pos_at'], + ['out'], + [onnx.TensorProto.FLOAT] * 3 + [onnx.TensorProto.INT64] * 2, # type: ignore + [onnx.TensorProto.FLOAT], + [pos, pos_at]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, y, z], outputs=[out], name="test_sequence_model1") + + #2nd testcase - erase and at. + # 1. SequenceConstruct(x, y, z): -> [x, y, z] + # 2. SequenceErase(1): -> [x, z] + # 3. SequenceAt(1): -> z + seq_construct_node = onnx.helper.make_node('SequenceConstruct', ['X', 'Y', 'Z'], ['seq_1']) + seq_erase_node = onnx.helper.make_node('SequenceErase', ['seq_1', 'pos_erase'], ['seq_2']) + seq_at_node = onnx.helper.make_node('SequenceAt', ['seq_2', 'pos_at'], ['out']) + + tensor_shape = [2, 3, 4] + + x = np.ones(tensor_shape, dtype=np.float32) + y = np.zeros(tensor_shape, dtype=np.float32) + z = np.ones(tensor_shape, dtype=np.float32) * 2 + pos_erase_val = 1 + pos_at_val = 1 + + out = SequenceConstructImpl(x, y, z) + out = SequenceEraseImpl(out, pos_erase_val) + out = SequenceAtImpl(out, pos_at_val) + assert np.array_equal(out, z) + + pos_erase = onnx.helper.make_tensor('pos_erase', TensorProto.INT64, (), (pos_erase_val, )) + pos_at = onnx.helper.make_tensor('pos_at', TensorProto.INT64, (), (pos_at_val, )) + + graph = make_graph( + [seq_construct_node, seq_erase_node, seq_at_node], + [tensor_shape, tensor_shape, tensor_shape, [], []], # type: ignore + [tensor_shape], # type: ignore + ['X', 'Y', 'Z', 'pos_erase', 'pos_at'], + ['out'], + [onnx.TensorProto.FLOAT] * 3 + [onnx.TensorProto.INT64] * 2, # type: ignore + [onnx.TensorProto.FLOAT], + [pos_erase, pos_at]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, y, z], outputs=[out], name="test_sequence_model2") + + #3rd testcase - erase, insert and at, with negative index value. + # 1. SequenceConstruct(x, y, z): -> [x, y, z] + # 2. SequenceErase(-3): -> [y, z] + # 3. SequenceInsert(x, -1): -> [y, x, z] + # 4. SequenceAt(-1): -> z + seq_construct_node = onnx.helper.make_node('SequenceConstruct', ['X', 'Y', 'Z'], ['seq_1']) + seq_erase_node = onnx.helper.make_node('SequenceErase', ['seq_1', 'pos_erase'], ['seq_2']) + seq_insert_node = onnx.helper.make_node('SequenceInsert', ['seq_2', 'X', 'pos_insert'], ['seq_3']) + seq_at_node = onnx.helper.make_node('SequenceAt', ['seq_3', 'pos_at'], ['out']) + + tensor_shape = [2, 3, 4] + + x = np.ones(tensor_shape, dtype=np.float32) + y = np.zeros(tensor_shape, dtype=np.float32) + z = np.ones(tensor_shape, dtype=np.float32) * 2 + pos_erase_val = -3 + pos_insert_val = -1 + pos_at_val = -1 + out = SequenceConstructImpl(x, y, z) + out = SequenceEraseImpl(out, pos_erase_val) + out = SequenceInsertImpl(out, x, pos_insert_val) + out = SequenceAtImpl(out, pos_at_val) + assert np.array_equal(out, z) + + pos_erase = onnx.helper.make_tensor('pos_erase', TensorProto.INT64, (), (pos_erase_val, )) + pos_insert = onnx.helper.make_tensor('pos_insert', TensorProto.INT64, (), (pos_insert_val, )) + pos_at = onnx.helper.make_tensor('pos_at', TensorProto.INT64, (), (pos_at_val, )) + + graph = make_graph( + [seq_construct_node, seq_erase_node, seq_insert_node, seq_at_node], + [tensor_shape, tensor_shape, tensor_shape, [], [], []], # type: ignore + [tensor_shape], # type: ignore + ['X', 'Y', 'Z', 'pos_erase', 'pos_insert', 'pos_at'], + ['out'], + [onnx.TensorProto.FLOAT] * 3 + [onnx.TensorProto.INT64] * 3, # type: ignore + [onnx.TensorProto.FLOAT], + [pos_erase, pos_insert, pos_at]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, y, z], outputs=[out], name="test_sequence_model3") + + #4th testcase - concat + seq_construct_node = onnx.helper.make_node('SequenceConstruct', ['X', 'Y', 'Z'], ['seq_1']) + seq_concat_node = onnx.helper.make_node('ConcatFromSequence', ['seq_1'], ['out'], axis=1) + + tensor_shape = [2, 3, 4] + concat_out_shape = [2, None, 4] + + x = np.ones(tensor_shape, dtype=np.float32) + y = np.zeros(tensor_shape, dtype=np.float32) + z = np.ones(tensor_shape, dtype=np.float32) * 2 + out = SequenceConstructImpl(x, y, z) + concat_out = ConcatFromSequenceImpl(out, 1) + + graph = make_graph( + [seq_construct_node, seq_concat_node], + [tensor_shape] * 3, # type: ignore + [concat_out_shape], # type: ignore + ['X', 'Y', 'Z'], + ['out'], + [onnx.TensorProto.FLOAT] * 3, # type: ignore + [onnx.TensorProto.FLOAT]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, y, z], outputs=[concat_out], name="test_sequence_model4") + + #5th testcase - concat with new_axis = 1 + seq_construct_node = onnx.helper.make_node('SequenceConstruct', ['X', 'Y', 'Z'], ['seq_1']) + seq_concat_node = onnx.helper.make_node('ConcatFromSequence', ['seq_1'], ['out'], axis=-1, new_axis=1) + + tensor_shape = [2, 3, 4] + concat_out_shape = [2, 3, 4, 3] + + x = np.ones(tensor_shape, dtype=np.float32) + y = np.zeros(tensor_shape, dtype=np.float32) + z = np.ones(tensor_shape, dtype=np.float32) * 2 + out = SequenceConstructImpl(x, y, z) + concat_out = ConcatFromSequenceImpl(out, -1, 1) + + graph = make_graph( + [seq_construct_node, seq_concat_node], + [tensor_shape] * 3, # type: ignore + [concat_out_shape], # type: ignore + ['X', 'Y', 'Z'], + ['out'], + [onnx.TensorProto.FLOAT] * 3, # type: ignore + [onnx.TensorProto.FLOAT],) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, y, z], outputs=[concat_out], name="test_sequence_model5") + + #6th testcase - split and len + seq_split_node = onnx.helper.make_node('SplitToSequence', ['X'], ['seq_1'], axis=-1) + seq_len_node = onnx.helper.make_node('SequenceLength', ['seq_1'], ['len']) + + tensor_shape = [2, 3, 4] + len_shape = [] # type: ignore + + x = np.ones(tensor_shape, dtype=np.float32) + out = SplitToSequenceImpl(x, axis=-1) + out = SequenceLengthImpl(out) + assert np.array_equal(out, np.int64(4)) + + graph = onnx.helper.make_graph( + nodes=[seq_split_node, seq_len_node], + name='Sequence', + inputs=[ + onnx.helper.make_tensor_value_info( + 'X', + onnx.TensorProto.FLOAT, + tensor_shape)], + outputs=[ + onnx.helper.make_tensor_value_info( + 'len', + onnx.TensorProto.INT64, + len_shape)]) # type: ignore + + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x], outputs=[out], name="test_sequence_model6") + + #7th testcase - split with keepdims=0, and SequenceAt + seq_split_node = onnx.helper.make_node('SplitToSequence', ['X'], ['seq_1'], axis=0, keepdims=0) + seq_at_node = onnx.helper.make_node('SequenceAt', ['seq_1', 'pos_at'], ['out']) + + tensor_shape = [2, 3, 4] + out_shape = [3, 4] + + x = np.random.rand(*tensor_shape) + pos_at_val = 1 + out = SplitToSequenceImpl(x, axis=0, keepdims=0) + out = SequenceAtImpl(out, pos_at_val) + assert np.array_equal(out, x[pos_at_val]) + + pos_at = onnx.helper.make_tensor('pos_at', TensorProto.INT64, (), (pos_at_val, )) + + graph = make_graph( + [seq_split_node, seq_at_node], + [tensor_shape, []], # type: ignore + [out_shape], # type: ignore + ['X', 'pos_at'], + ['out'], + [onnx.TensorProto.DOUBLE, onnx.TensorProto.INT64], + [onnx.TensorProto.DOUBLE], + [pos_at]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x], outputs=[out], name="test_sequence_model7") + + #8th testcase - split zero length + seq_split_node = onnx.helper.make_node('SplitToSequence', ['X', 'Splits'], ['seq_1']) + seq_len_node = onnx.helper.make_node('SequenceLength', ['seq_1'], ['len']) + + tensor_shape = ['n'] # type: ignore + splits_shape = [3] # type: ignore + + x = np.array([]).astype(np.float32) + splits = np.array([0, 0, 0]).astype(np.int64) + out_len = np.int64(3) + + graph = onnx.helper.make_graph( + nodes=[seq_split_node, seq_len_node], + name='Sequence', + inputs=[ + onnx.helper.make_tensor_value_info( + 'X', + onnx.TensorProto.FLOAT, + tensor_shape), # type: ignore + onnx.helper.make_tensor_value_info( + 'Splits', + onnx.TensorProto.INT64, + splits_shape)], # type: ignore + outputs=[ + onnx.helper.make_tensor_value_info( + 'len', + onnx.TensorProto.INT64, + len_shape)]) # type: ignore + + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x, splits], outputs=[out_len], name="test_sequence_model8") diff --git a/third_party/onnx/onnx/backend/test/case/model/shrink.py b/third_party/onnx/onnx/backend/test/case/model/shrink.py new file mode 100644 index 000000000..0fbd25e17 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/model/shrink.py @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ShrinkTest(Base): + + @staticmethod + def export() -> None: + + node = onnx.helper.make_node( + 'Shrink', ['x'], ['y'], lambd=1.5, bias=1.5,) + graph = onnx.helper.make_graph( + nodes=[node], + name='Shrink', + inputs=[onnx.helper.make_tensor_value_info( + 'x', onnx.TensorProto.FLOAT, [5])], + outputs=[onnx.helper.make_tensor_value_info( + 'y', onnx.TensorProto.FLOAT, [5])]) + model = onnx.helper.make_model(graph, + producer_name='backend-test') + + x = np.array([-2.0, -1.0, 0.0, 1.0, 2.0], dtype=np.float32) + y = np.array([-0.5, 0.0, 0.0, 0.0, 0.5], dtype=np.float32) + + expect(model, inputs=[x], outputs=[y], + name='test_shrink') diff --git a/third_party/onnx/onnx/backend/test/case/model/sign.py b/third_party/onnx/onnx/backend/test/case/model/sign.py new file mode 100644 index 000000000..c3265f304 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/model/sign.py @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from typing import Sequence + + +class SingleSign(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Sign', ['x'], ['y'], name='test') + + x = np.array([-1.0, 4.5, -4.5, 3.1, 0.0, 2.4, -5.5]).astype(np.float32) + y = np.array([-1.0, 1.0, -1.0, 1.0, 0.0, 1.0, -1.0]).astype(np.float32) + + graph = onnx.helper.make_graph( + nodes=[node], + name='SingleSign', + inputs=[onnx.helper.make_tensor_value_info('x', + onnx.TensorProto.FLOAT, + [7])], + outputs=[onnx.helper.make_tensor_value_info('y', + onnx.TensorProto.FLOAT, + [7])]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x], outputs=[y], + name='test_sign_model') diff --git a/third_party/onnx/onnx/backend/test/case/model/single-relu.py b/third_party/onnx/onnx/backend/test/case/model/single-relu.py new file mode 100644 index 000000000..73c981c2e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/model/single-relu.py @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class SingleRelu(Base): + + @staticmethod + def export() -> None: + + node = onnx.helper.make_node( + 'Relu', ['x'], ['y'], name='test') + graph = onnx.helper.make_graph( + nodes=[node], + name='SingleRelu', + inputs=[onnx.helper.make_tensor_value_info( + 'x', onnx.TensorProto.FLOAT, [1, 2])], + outputs=[onnx.helper.make_tensor_value_info( + 'y', onnx.TensorProto.FLOAT, [1, 2])]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + + x = np.random.randn(1, 2).astype(np.float32) + y = np.maximum(x, 0) + + expect(model, inputs=[x], outputs=[y], + name='test_single_relu_model') diff --git a/third_party/onnx/onnx/backend/test/case/model/stringnormalizer.py b/third_party/onnx/onnx/backend/test/case/model/stringnormalizer.py new file mode 100644 index 000000000..27be340a1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/model/stringnormalizer.py @@ -0,0 +1,132 @@ +# SPDX-License-Identifier: Apache-2.0 +# coding: utf-8 + + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from typing import Sequence + + +class NormalizeStrings(Base): + + @staticmethod + def export() -> None: + def make_graph(node: onnx.helper.NodeProto, input_shape: Sequence[int], output_shape: Sequence[int]) -> onnx.helper.GraphProto: + graph = onnx.helper.make_graph( + nodes=[node], + name='StringNormalizer', + inputs=[onnx.helper.make_tensor_value_info('x', + onnx.TensorProto.STRING, + input_shape)], + outputs=[onnx.helper.make_tensor_value_info('y', + onnx.TensorProto.STRING, + output_shape)]) + return graph + + #1st model_monday_casesensintive_nochangecase + stopwords = [u'monday'] + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + is_case_sensitive=1, + stopwords=stopwords + ) + + x = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) + y = np.array([u'tuesday', u'wednesday', u'thursday']).astype(object) + + graph = make_graph(node, [4], [3]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x], outputs=[y], name="test_strnorm_model_monday_casesensintive_nochangecase") + + #2nd model_nostopwords_nochangecase + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + is_case_sensitive=1 + ) + + x = np.array([u'monday', u'tuesday']).astype(object) + y = x + + graph = make_graph(node, [2], [2]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x], outputs=[y], name="test_strnorm_model_nostopwords_nochangecase") + + # 3rd model_monday_casesensintive_lower + stopwords = [u'monday'] + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='LOWER', + is_case_sensitive=1, + stopwords=stopwords + ) + + x = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) + y = np.array([u'tuesday', u'wednesday', u'thursday']).astype(object) + + graph = make_graph(node, [4], [3]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x], outputs=[y], name="test_strnorm_model_monday_casesensintive_lower") + + #4 model_monday_casesensintive_upper + stopwords = [u'monday'] + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + is_case_sensitive=1, + stopwords=stopwords + ) + + x = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) + y = np.array([u'TUESDAY', u'WEDNESDAY', u'THURSDAY']).astype(object) + + graph = make_graph(node, [4], [3]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x], outputs=[y], name="test_strnorm_model_monday_casesensintive_upper") + + #5 monday_insensintive_upper_twodim + stopwords = [u'monday'] + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + stopwords=stopwords + ) + + input_shape = [1, 6] + output_shape = [1, 4] + x = np.array([u'Monday', u'tuesday', u'wednesday', u'Monday', u'tuesday', u'wednesday']).astype(object).reshape(input_shape) + y = np.array([u'TUESDAY', u'WEDNESDAY', u'TUESDAY', u'WEDNESDAY']).astype(object).reshape(output_shape) + + graph = make_graph(node, input_shape, output_shape) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x], outputs=[y], name="test_strnorm_model_monday_insensintive_upper_twodim") + + #6 monday_empty_output + stopwords = [u'monday'] + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + is_case_sensitive=0, + stopwords=stopwords + ) + + x = np.array([u'monday', u'monday']).astype(object) + y = np.array([u'']).astype(object) + + graph = make_graph(node, [2], [1]) + model = onnx.helper.make_model(graph, producer_name='backend-test') + expect(model, inputs=[x], outputs=[y], name="test_strnorm_model_monday_empty_output") diff --git a/third_party/onnx/onnx/backend/test/case/node/__init__.py b/third_party/onnx/onnx/backend/test/case/node/__init__.py new file mode 100644 index 000000000..363dedaee --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/__init__.py @@ -0,0 +1,252 @@ +# SPDX-License-Identifier: Apache-2.0 + +import sys +import re + +from typing import Callable, List, Text, Sequence, Any, Union, Optional, Dict +import numpy as np # type: ignore + +import onnx +import onnx.mapping +import onnx.helper + +from ..utils import import_recursive +from ..test_case import TestCase + + +_NodeTestCases = [] +_TargetOpType = "" + +from onnx.onnx_pb import NodeProto, AttributeProto, TypeProto, FunctionProto, GraphProto + + +def _rename_edges_helper(internal_node: NodeProto, + rename_helper: Callable[[Text], Text], + attribute_map: Dict[Text, AttributeProto], + prefix: Text) -> NodeProto: + new_node = NodeProto() + new_node.CopyFrom(internal_node) + new_node.ClearField("input") + new_node.ClearField("output") + new_node.ClearField("attribute") + for internal_name in internal_node.input: + new_node.input.append(rename_helper(internal_name)) + for internal_name in internal_node.output: + new_node.output.append(rename_helper(internal_name)) + for attr in internal_node.attribute: + if attr.HasField("ref_attr_name"): + if attr.ref_attr_name in attribute_map: + new_attr = AttributeProto() + new_attr.CopyFrom(attribute_map[attr.ref_attr_name]) # type: ignore + new_attr.name = attr.name + new_node.attribute.extend([new_attr]) + else: + new_attr = AttributeProto() + new_attr.CopyFrom(attr) + if attr.type == AttributeProto.GRAPH: + new_graph = new_attr.g + sg_rename = {} + for in_desc in new_graph.input: + sg_rename[in_desc.name] = in_desc.name = prefix + in_desc.name + for out_desc in new_graph.output: + sg_rename[out_desc.name] = out_desc.name = prefix + out_desc.name + for init_desc in new_graph.initializer: + sg_rename[init_desc.name] = init_desc.name = prefix + init_desc.name + for sparse_init_desc in new_graph.sparse_initializer: + sg_rename[sparse_init_desc.values.name] = sparse_init_desc.values.name = prefix + \ + sparse_init_desc.values.name + for sparse_init_desc in new_graph.sparse_initializer: + sg_rename[sparse_init_desc.indices.name] = sparse_init_desc.indices.name = prefix + \ + sparse_init_desc.indices.name + + def subgraph_rename_helper(name: Text) -> Any: + if name in sg_rename: + return sg_rename[name] + else: + return rename_helper(name) + new_nodes = [ + _rename_edges_helper(node_desc, subgraph_rename_helper, attribute_map, prefix) + for node_desc in new_graph.node + ] + new_graph.ClearField("node") + new_graph.node.extend(new_nodes) + new_node.attribute.extend([new_attr]) + return new_node + + +# FIXME(TMVector): Any reason we can't get rid of this and use the C++ helper directly? +def function_expand_helper(node: NodeProto, + function_proto: FunctionProto, + op_prefix: Text + ) -> List[NodeProto]: + io_names_map = dict() + attribute_map = dict((a.name, a) for a in node.attribute) + + for idx in range(len(function_proto.input)): + io_names_map[function_proto.input[idx]] = node.input[idx] \ + if idx in range(len(node.input)) else "" + + for idx in range(len(function_proto.output)): + # Even if the node has been created with optional outputs missing, we + # can't assume that the function body handles this correctly, such as in + # the case that output is also an intermediate value. + # So we only add a name mapping if the output is present. An internal + # name will be generated if the missing output is used, the same as any + # other internal tensor. + if idx in range(len(node.output)) and node.output[idx] != "": + io_names_map[function_proto.output[idx]] = node.output[idx] + + def rename_helper(internal_name: Text) -> Any: + if internal_name in io_names_map: + return io_names_map[internal_name] + elif internal_name == '': + return '' + else: + return op_prefix + internal_name + + new_node_list = [ + _rename_edges_helper(internal_node, rename_helper, attribute_map, op_prefix) + for internal_node in function_proto.node + ] + return new_node_list + + +def function_testcase_helper(node: NodeProto, input_types: List[TypeProto], name: Text) -> List[NodeProto]: + test_op = node.op_type + op_prefix = test_op + "_" + name + "_expanded_function_" + schema = onnx.defs.get_schema(test_op, node.domain) + + if schema.has_function: # type: ignore + function_proto = schema.function_body # type: ignore + elif schema.has_context_dependent_function: # type: ignore + function_proto_str = schema.get_context_dependent_function(node.SerializeToString(), [t.SerializeToString() for t in input_types]) # type: ignore + function_proto = FunctionProto() + function_proto.ParseFromString(function_proto_str) + else: + return [] + + for attr in schema.attributes: + if attr in [a.name for a in node.attribute]: + continue + if schema.attributes[attr].default_value: + node.attribute.extend([schema.attributes[attr].default_value]) + + # function_proto.attributes + node_list = function_expand_helper(node, function_proto, op_prefix) + return node_list + + +def _extract_value_info(input: Union[List[Any], np.ndarray, None], name: Text, type_proto: Optional[TypeProto] = None) -> onnx.ValueInfoProto: + if type_proto is None: + if input is None: + raise NotImplementedError("_extract_value_info: both input and type_proto arguments cannot be None.") + elif isinstance(input, list): + elem_type = onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[input[0].dtype] + shape = None + tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type, shape) + type_proto = onnx.helper.make_sequence_type_proto(tensor_type_proto) + else: + elem_type = onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[input.dtype] + shape = input.shape + type_proto = onnx.helper.make_tensor_type_proto(elem_type, shape) + + return onnx.helper.make_value_info(name, type_proto) + + +# In the case of ops with optional inputs and outputs, node.input and node.output indicate +# which inputs/outputs are present and which are omitted. However, the parameter inputs +# and outputs of this function include values only for inputs/outputs that are present. +# E.g., for an op with 3 inputs, if the second parameter is optional and we wish to omit it, +# node.inputs would look like ["Param1", "", "Param3"], while inputs would look like +# [input-1-value, input-3-value] +def expect(node: onnx.NodeProto, + inputs: Sequence[np.ndarray], + outputs: Sequence[np.ndarray], + name: Text, + **kwargs: Any + ) -> None: + # skip if the node's op_type is not same as the given one + if _TargetOpType and node.op_type != _TargetOpType: + return + present_inputs = [x for x in node.input if (x != '')] + present_outputs = [x for x in node.output if (x != '')] + input_type_protos = [None] * len(inputs) + if 'input_type_protos' in kwargs: + input_type_protos = kwargs[str('input_type_protos')] + del kwargs[str('input_type_protos')] + output_type_protos = [None] * len(outputs) + if 'output_type_protos' in kwargs: + output_type_protos = kwargs[str('output_type_protos')] + del kwargs[str('output_type_protos')] + inputs_vi = [_extract_value_info(arr, arr_name, input_type) + for arr, arr_name, input_type in zip(inputs, present_inputs, input_type_protos)] + outputs_vi = [_extract_value_info(arr, arr_name, output_type) + for arr, arr_name, output_type in zip(outputs, present_outputs, output_type_protos)] + graph = onnx.helper.make_graph( + nodes=[node], + name=name, + inputs=inputs_vi, + outputs=outputs_vi) + kwargs[str('producer_name')] = 'backend-test' + model = onnx.helper.make_model(graph, **kwargs) + + _NodeTestCases.append(TestCase( + name=name, + model_name=name, + url=None, + model_dir=None, + model=model, + data_sets=[(inputs, outputs)], + kind='node', + rtol=1e-3, + atol=1e-7, + )) + + # Create list of types for node.input, filling a default TypeProto for missing inputs: + # E.g. merge(["x", "", "y"], [x-value-info, y-value-info]) will return [x-type, default-type, y-type] + def merge(node_inputs: List[Text], present_value_info: List[onnx.ValueInfoProto]) -> List[TypeProto]: + if (node_inputs): + if (node_inputs[0] != ''): + return [present_value_info[0].type] + merge(node_inputs[1:], present_value_info[1:]) + else: + return [TypeProto()] + merge(node_inputs[1:], present_value_info) + return [] + merged_types = merge(list(node.input), inputs_vi) + expanded_function_nodes = function_testcase_helper(node, merged_types, name) + if expanded_function_nodes: + function_test_name = name + '_expanded' + graph = onnx.helper.make_graph( + nodes=expanded_function_nodes, + name=function_test_name, + inputs=inputs_vi, + outputs=outputs_vi) + kwargs[str('producer_name')] = 'backend-test' + model = onnx.helper.make_model(graph, **kwargs) + _NodeTestCases.append(TestCase( + name=function_test_name, + model_name=function_test_name, + url=None, + model_dir=None, + model=model, + data_sets=[(inputs, outputs)], + kind='node', + rtol=1e-3, + atol=1e-7, + )) + + +def collect_testcases() -> List[TestCase]: + '''Collect node test cases defined in python/numpy code. + ''' + import_recursive(sys.modules[__name__]) + return _NodeTestCases + + +def collect_testcases_by_operator(op_type: Text) -> List[TestCase]: + '''Collect node test cases which include specific operator + ''' + # only keep those tests related to this operator + global _TargetOpType + _TargetOpType = op_type + import_recursive(sys.modules[__name__]) + return _NodeTestCases diff --git a/third_party/onnx/onnx/backend/test/case/node/abs.py b/third_party/onnx/onnx/backend/test/case/node/abs.py new file mode 100644 index 000000000..5f00283a9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/abs.py @@ -0,0 +1,25 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + +from onnx.backend.sample.ops.abs import abs + + +class Abs(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Abs', + inputs=['x'], + outputs=['y'], + ) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = abs(x) + + expect(node, inputs=[x], outputs=[y], + name='test_abs') diff --git a/third_party/onnx/onnx/backend/test/case/node/acos.py b/third_party/onnx/onnx/backend/test/case/node/acos.py new file mode 100644 index 000000000..6dd4af801 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/acos.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Acos(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Acos', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-0.5, 0, 0.5]).astype(np.float32) + y = np.arccos(x) + expect(node, inputs=[x], outputs=[y], + name='test_acos_example') + + x = np.random.rand(3, 4, 5).astype(np.float32) + y = np.arccos(x) + expect(node, inputs=[x], outputs=[y], + name='test_acos') diff --git a/third_party/onnx/onnx/backend/test/case/node/acosh.py b/third_party/onnx/onnx/backend/test/case/node/acosh.py new file mode 100644 index 000000000..820ebd18a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/acosh.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Acosh(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Acosh', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([10, np.e, 1]).astype(np.float32) + y = np.arccosh(x) # expected output [2.99322295, 1.65745449, 0.] + expect(node, inputs=[x], outputs=[y], + name='test_acosh_example') + + x = np.random.uniform(1.0, 10.0, (3, 4, 5)).astype(np.float32) + y = np.arccosh(x) + expect(node, inputs=[x], outputs=[y], + name='test_acosh') diff --git a/third_party/onnx/onnx/backend/test/case/node/adagrad.py b/third_party/onnx/onnx/backend/test/case/node/adagrad.py new file mode 100644 index 000000000..c98eb8579 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/adagrad.py @@ -0,0 +1,99 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from onnx.defs import ONNX_DOMAIN, AI_ONNX_PREVIEW_TRAINING_DOMAIN +from ..base import Base +from . import expect + + +def apply_adagrad(r, t, x, g, h, norm_coefficient, epsilon, decay_factor): # type: ignore + # Compute adjusted learning-rate. + r_ = r / (1 + t * decay_factor) + # Add gradient of regularization term. + g_regularized = norm_coefficient * x + g + # Update squared accumulated gradient. + h_new = h + g_regularized * g_regularized + # Compute ADAGRAD's gradient scaling factors + h_sqrt = np.sqrt(h_new) + epsilon + # Apply ADAGRAD update rule. + x_new = x - r_ * g_regularized / h_sqrt + return (x_new, h_new) + + +class Adagrad(Base): + + @staticmethod + def export_adagrad() -> None: + # Define operator attributes. + norm_coefficient = 0.001 + epsilon = 1e-5 + decay_factor = 0.1 + + # Create operator. + node = onnx.helper.make_node('Adagrad', + inputs=['R', 'T', 'X', 'G', 'H'], + outputs=['X_new', 'H_new'], + norm_coefficient=norm_coefficient, + epsilon=epsilon, + decay_factor=decay_factor, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + + # Define operator inputs. + r = np.array(0.1, dtype=np.float32) # scalar + t = np.array(0, dtype=np.int64) # scalar + x = np.array([1.0], dtype=np.float32) + g = np.array([-1.0], dtype=np.float32) + h = np.array([2.0], dtype=np.float32) + + # Compute expected outputs of Adagrad. + x_new, h_new = apply_adagrad(r, t, x, g, h, + norm_coefficient, epsilon, decay_factor) + + # Check results. + expect(node, inputs=[r, t, x, g, h], + outputs=[x_new, h_new], name='test_adagrad', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) + + @staticmethod + def export_adagrad_multiple() -> None: + # Define operator attributes. + norm_coefficient = 0.001 + epsilon = 1e-5 + decay_factor = 0.1 + + node = onnx.helper.make_node('Adagrad', + inputs=['R', 'T', 'X1', 'X2', + 'G1', 'G2', 'H1', 'H2'], + outputs=['X1_new', 'X2_new', + 'H1_new', 'H2_new'], + norm_coefficient=norm_coefficient, + epsilon=epsilon, + decay_factor=decay_factor, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + + # Define operator inputs. + r = np.array(0.1, dtype=np.float32) # scalar + t = np.array(0, dtype=np.int64) # scalar + + x1 = np.array([1.0], dtype=np.float32) + g1 = np.array([-1.0], dtype=np.float32) + h1 = np.array([2.0], dtype=np.float32) + + x2 = np.array([1.0, 2.0], dtype=np.float32) + g2 = np.array([-1.0, -3.0], dtype=np.float32) + h2 = np.array([4.0, 1.0], dtype=np.float32) + + # Compute expected outputs of Adagrad. + x1_new, h1_new = apply_adagrad(r, t, x1, g1, h1, + norm_coefficient, epsilon, decay_factor) + x2_new, h2_new = apply_adagrad(r, t, x2, g2, h2, + norm_coefficient, epsilon, decay_factor) + + # Check results. + expect(node, inputs=[r, t, x1, x2, g1, g2, h1, h2], + outputs=[x1_new, x2_new, h1_new, h2_new], name='test_adagrad_multiple', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) diff --git a/third_party/onnx/onnx/backend/test/case/node/adam.py b/third_party/onnx/onnx/backend/test/case/node/adam.py new file mode 100644 index 000000000..ed947bf48 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/adam.py @@ -0,0 +1,121 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from onnx.defs import ONNX_DOMAIN, AI_ONNX_PREVIEW_TRAINING_DOMAIN +from ..base import Base +from . import expect + + +def apply_adam(r, t, x, g, v, h, norm_coefficient, norm_coefficient_post, alpha, beta, epsilon): # type: ignore + # Add gradient of regularization term. + g_regularized = norm_coefficient * x + g + # Update momentum. + v_new = alpha * v + (1 - alpha) * g_regularized + # Update second-order momentum. + h_new = beta * h + (1 - beta) * (g_regularized * g_regularized) + # Compute element-wise square root. + h_sqrt = np.sqrt(h_new) + epsilon + # Adjust learning rate. + r_adjusted = None + if t > 0: + # Consider bias correction on momentums. + r_adjusted = r * np.sqrt(1 - beta**t) / (1 - alpha**t) + else: + # No bias correction on momentums. + r_adjusted = r + # Apply Adam update rule. + x_new = x - r_adjusted * (v_new / h_sqrt) + # It's possible to apply regularization in the end. + x_final = (1 - norm_coefficient_post) * x_new + return x_final, v_new, h_new + + +class Adam(Base): + + @staticmethod + def export_adam() -> None: + # Define operator attributes. + norm_coefficient = 0.001 + alpha = 0.95 + beta = 0.1 + epsilon = 1e-7 + + # Create operator. + node = onnx.helper.make_node('Adam', + inputs=['R', 'T', 'X', 'G', 'V', 'H'], + outputs=['X_new', 'V_new', 'H_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + epsilon=epsilon, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + + # Define operator inputs. + r = np.array(0.1, dtype=np.float32) # scalar + t = np.array(0, dtype=np.int64) # scalar + x = np.array([1.2, 2.8], dtype=np.float32) + g = np.array([-0.94, -2.5], dtype=np.float32) + v = np.array([1.7, 3.6], dtype=np.float32) + h = np.array([0.1, 0.1], dtype=np.float32) + + # Compute expected outputs of Adam. + x_new, v_new, h_new = apply_adam(r, t, x, g, v, h, + norm_coefficient, 0.0, alpha, beta, + epsilon) + + # Check results. + expect(node, inputs=[r, t, x, g, v, h], + outputs=[x_new, v_new, h_new], name='test_adam', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) + + @staticmethod + def export_adam_multiple() -> None: + # Define operator attributes. + norm_coefficient = 0.001 + alpha = 0.95 + beta = 0.85 + epsilon = 1e-2 + + node = onnx.helper.make_node('Adam', + inputs=['R', 'T', 'X1', 'X2', + 'G1', 'G2', 'V1', 'V2', + 'H1', 'H2'], + outputs=['X1_new', 'X2_new', + 'V1_new', 'V2_new', + 'H1_new', 'H2_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + + # Define operator inputs. + r = np.array(0.1, dtype=np.float32) # scalar + t = np.array(0, dtype=np.int64) # scalar + + x1 = np.array([1.0], dtype=np.float32) + g1 = np.array([-1.0], dtype=np.float32) + v1 = np.array([2.0], dtype=np.float32) + h1 = np.array([0.5], dtype=np.float32) + + x2 = np.array([1.0, 2.0], dtype=np.float32) + g2 = np.array([-1.0, -3.0], dtype=np.float32) + v2 = np.array([4.0, 1.0], dtype=np.float32) + h2 = np.array([1.0, 10.0], dtype=np.float32) + + # Compute expected outputs of Adam. + x1_new, v1_new, h1_new = apply_adam(r, t, x1, g1, v1, h1, + norm_coefficient, 0.0, alpha, beta, + epsilon) + x2_new, v2_new, h2_new = apply_adam(r, t, x2, g2, v2, h2, + norm_coefficient, 0.0, alpha, beta, + epsilon) + + # Check results. + expect(node, inputs=[r, t, x1, x2, g1, g2, v1, v2, h1, h2], + outputs=[x1_new, x2_new, v1_new, v2_new, h1_new, h2_new], + name='test_adam_multiple', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) diff --git a/third_party/onnx/onnx/backend/test/case/node/add.py b/third_party/onnx/onnx/backend/test/case/node/add.py new file mode 100644 index 000000000..40c072d4d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/add.py @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Add(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Add', + inputs=['x', 'y'], + outputs=['sum'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(3, 4, 5).astype(np.float32) + expect(node, inputs=[x, y], outputs=[x + y], + name='test_add') + + @staticmethod + def export_add_uint8() -> None: + node = onnx.helper.make_node( + 'Add', + inputs=['x', 'y'], + outputs=['sum'], + ) + + x = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) + y = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) + expect(node, inputs=[x, y], outputs=[x + y], + name='test_add_uint8') + + @staticmethod + def export_add_broadcast() -> None: + node = onnx.helper.make_node( + 'Add', + inputs=['x', 'y'], + outputs=['sum'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(5).astype(np.float32) + expect(node, inputs=[x, y], outputs=[x + y], + name='test_add_bcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/and.py b/third_party/onnx/onnx/backend/test/case/node/and.py new file mode 100644 index 000000000..993132b19 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/and.py @@ -0,0 +1,82 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class And(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'And', + inputs=['x', 'y'], + outputs=['and'], + ) + + # 2d + x = (np.random.randn(3, 4) > 0).astype(bool) + y = (np.random.randn(3, 4) > 0).astype(bool) + z = np.logical_and(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_and2d') + + # 3d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + y = (np.random.randn(3, 4, 5) > 0).astype(bool) + z = np.logical_and(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_and3d') + + # 4d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + z = np.logical_and(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_and4d') + + @staticmethod + def export_and_broadcast() -> None: + node = onnx.helper.make_node( + 'And', + inputs=['x', 'y'], + outputs=['and'], + ) + + # 3d vs 1d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + y = (np.random.randn(5) > 0).astype(bool) + z = np.logical_and(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast3v1d') + + # 3d vs 2d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + y = (np.random.randn(4, 5) > 0).astype(bool) + z = np.logical_and(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast3v2d') + + # 4d vs 2d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + y = (np.random.randn(5, 6) > 0).astype(bool) + z = np.logical_and(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast4v2d') + + # 4d vs 3d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + y = (np.random.randn(4, 5, 6) > 0).astype(bool) + z = np.logical_and(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast4v3d') + + # 4d vs 4d + x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool) + y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool) + z = np.logical_and(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_and_bcast4v4d') diff --git a/third_party/onnx/onnx/backend/test/case/node/argmax.py b/third_party/onnx/onnx/backend/test/case/node/argmax.py new file mode 100644 index 000000000..2876636ad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/argmax.py @@ -0,0 +1,188 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def argmax_use_numpy(data: np.ndarray, axis: int = 0, keepdims: int = 1) -> (np.ndarray): + result = np.argmax(data, axis=axis) + if (keepdims == 1): + result = np.expand_dims(result, axis) + return result.astype(np.int64) + + +def argmax_use_numpy_select_last_index(data: np.ndarray, axis: int = 0, keepdims: int = True) -> (np.ndarray): + data = np.flip(data, axis) + result = np.argmax(data, axis=axis) + result = data.shape[axis] - result - 1 + if keepdims: + result = np.expand_dims(result, axis) + return result.astype(np.int64) + + +class ArgMax(Base): + + @staticmethod + def export_no_keepdims() -> None: + data = np.array([[2, 1], [3, 10]], dtype=np.float32) + axis = 1 + keepdims = 0 + node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) + # result: [0, 1] + result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_example') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 4] + result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + data = np.array([[2, 1], [3, 10]], dtype=np.float32) + axis = 1 + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) + # result: [[0], [1]] + result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_example') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 1, 4] + result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + data = np.array([[2, 1], [3, 10]], dtype=np.float32) + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + keepdims=keepdims) + + # result: [[1, 1]] + result = argmax_use_numpy(data, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_example') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [1, 3, 4] + result = argmax_use_numpy(data, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_random') + + @staticmethod + def export_negative_axis_keepdims() -> None: + data = np.array([[2, 1], [3, 10]], dtype=np.float32) + axis = -1 + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) + # result: [[0], [1]] + result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_example') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 3, 1] + result = argmax_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_random') + + @staticmethod + def export_no_keepdims_select_last_index() -> None: + data = np.array([[2, 2], [3, 10]], dtype=np.float32) + axis = 1 + keepdims = 0 + node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) + # result: [1, 1] + result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_example_select_last_index') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 4] + result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_no_keepdims_random_select_last_index') + + @staticmethod + def export_keepdims_select_last_index() -> None: + data = np.array([[2, 2], [3, 10]], dtype=np.float32) + axis = 1 + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) + # result: [[1], [1]] + result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_example_select_last_index') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 1, 4] + result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_keepdims_random_select_last_index') + + @staticmethod + def export_default_axes_keepdims_select_last_index() -> None: + data = np.array([[2, 2], [3, 10]], dtype=np.float32) + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + keepdims=keepdims, + select_last_index=True) + + # result: [[1, 1]] + result = argmax_use_numpy_select_last_index(data, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_example_select_last_index') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [1, 3, 4] + result = argmax_use_numpy_select_last_index(data, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_default_axis_random_select_last_index') + + @staticmethod + def export_negative_axis_keepdims_select_last_index() -> None: + data = np.array([[2, 2], [3, 10]], dtype=np.float32) + axis = -1 + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMax', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) + # result: [[1], [1]] + result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_example_select_last_index') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 3, 1] + result = argmax_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmax_negative_axis_keepdims_random_select_last_index') diff --git a/third_party/onnx/onnx/backend/test/case/node/argmin.py b/third_party/onnx/onnx/backend/test/case/node/argmin.py new file mode 100644 index 000000000..b537a3b30 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/argmin.py @@ -0,0 +1,188 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def argmin_use_numpy(data: np.ndarray, axis: int = 0, keepdims: int = 1) -> (np.ndarray): + result = np.argmin(data, axis=axis) + if (keepdims == 1): + result = np.expand_dims(result, axis) + return result.astype(np.int64) + + +def argmin_use_numpy_select_last_index(data: np.ndarray, axis: int = 0, keepdims: int = True) -> (np.ndarray): + data = np.flip(data, axis) + result = np.argmin(data, axis=axis) + result = data.shape[axis] - result - 1 + if keepdims: + result = np.expand_dims(result, axis) + return result.astype(np.int64) + + +class ArgMin(Base): + + @staticmethod + def export_no_keepdims() -> None: + data = np.array([[2, 1], [3, 10]], dtype=np.float32) + axis = 1 + keepdims = 0 + node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) + # The content of result is : [[1, 0]] + result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_example') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 4] + result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + data = np.array([[2, 1], [3, 10]], dtype=np.float32) + axis = 1 + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) + # The content of result is : [[1], [0]] + result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_example') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 1, 4] + result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + data = np.array([[2, 1], [3, 10]], dtype=np.float32) + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + keepdims=keepdims) + + # The content of result is : [[0], [0]] + result = argmin_use_numpy(data, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_example') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [1, 3, 4] + result = argmin_use_numpy(data, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_random') + + @staticmethod + def export_negative_axis_keepdims() -> None: + data = np.array([[2, 1], [3, 10]], dtype=np.float32) + axis = -1 + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims) + # The content of result is : [[1], [0]] + result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_example') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 3, 1] + result = argmin_use_numpy(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_random') + + @staticmethod + def export_no_keepdims_select_last_index() -> None: + data = np.array([[2, 2], [3, 10]], dtype=np.float32) + axis = 1 + keepdims = 0 + node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) + # result: [[1, 0]] + result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_example_select_last_index') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 4] + result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_no_keepdims_random_select_last_index') + + @staticmethod + def export_keepdims_select_last_index() -> None: + data = np.array([[2, 2], [3, 10]], dtype=np.float32) + axis = 1 + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) + # result: [[1], [0]] + result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_example_select_last_index') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 1, 4] + result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_keepdims_random_select_last_index') + + @staticmethod + def export_default_axes_keepdims_select_last_index() -> None: + data = np.array([[2, 2], [3, 10]], dtype=np.float32) + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + keepdims=keepdims, + select_last_index=True) + + # result: [[0, 0]] + result = argmin_use_numpy_select_last_index(data, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_example_select_last_index') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [1, 3, 4] + result = argmin_use_numpy_select_last_index(data, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_default_axis_random_select_last_index') + + @staticmethod + def export_negative_axis_keepdims_select_last_index() -> None: + data = np.array([[2, 2], [3, 10]], dtype=np.float32) + axis = -1 + keepdims = 1 + node = onnx.helper.make_node( + 'ArgMin', + inputs=['data'], + outputs=['result'], + axis=axis, + keepdims=keepdims, + select_last_index=True) + # result: [[1], [0]] + result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_example_select_last_index') + + data = np.random.uniform(-10, 10, [2, 3, 4]).astype(np.float32) + # result's shape: [2, 3, 1] + result = argmin_use_numpy_select_last_index(data, axis=axis, keepdims=keepdims) + expect(node, inputs=[data], outputs=[result], name='test_argmin_negative_axis_keepdims_random_select_last_index') diff --git a/third_party/onnx/onnx/backend/test/case/node/asin.py b/third_party/onnx/onnx/backend/test/case/node/asin.py new file mode 100644 index 000000000..307952c13 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/asin.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Asin(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Asin', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-0.5, 0, 0.5]).astype(np.float32) + y = np.arcsin(x) + expect(node, inputs=[x], outputs=[y], + name='test_asin_example') + + x = np.random.rand(3, 4, 5).astype(np.float32) + y = np.arcsin(x) + expect(node, inputs=[x], outputs=[y], + name='test_asin') diff --git a/third_party/onnx/onnx/backend/test/case/node/asinh.py b/third_party/onnx/onnx/backend/test/case/node/asinh.py new file mode 100644 index 000000000..27e605686 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/asinh.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Asinh(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Asinh', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.arcsinh(x) # expected output [-0.88137358, 0., 0.88137358] + expect(node, inputs=[x], outputs=[y], + name='test_asinh_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.arcsinh(x) + expect(node, inputs=[x], outputs=[y], + name='test_asinh') diff --git a/third_party/onnx/onnx/backend/test/case/node/atan.py b/third_party/onnx/onnx/backend/test/case/node/atan.py new file mode 100644 index 000000000..f6b6b4b71 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/atan.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Atan(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Atan', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.arctan(x) + expect(node, inputs=[x], outputs=[y], + name='test_atan_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.arctan(x) + expect(node, inputs=[x], outputs=[y], + name='test_atan') diff --git a/third_party/onnx/onnx/backend/test/case/node/atanh.py b/third_party/onnx/onnx/backend/test/case/node/atanh.py new file mode 100644 index 000000000..d9531b278 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/atanh.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Atanh(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Atanh', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-0.5, 0, 0.5]).astype(np.float32) + y = np.arctanh(x) # expected output [-0.54930615, 0., 0.54930615] + expect(node, inputs=[x], outputs=[y], + name='test_atanh_example') + + x = np.random.uniform(0.0, 1.0, (3, 4, 5)).astype(np.float32) + y = np.arctanh(x) + expect(node, inputs=[x], outputs=[y], + name='test_atanh') diff --git a/third_party/onnx/onnx/backend/test/case/node/averagepool.py b/third_party/onnx/onnx/backend/test/case/node/averagepool.py new file mode 100644 index 000000000..1b8066768 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/averagepool.py @@ -0,0 +1,360 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from .pool_op_common import get_pad_shape, get_output_shape, pool + + +class AveragePool(Base): + + @staticmethod + def export_averagepool_2d_precomputed_pads() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 5, 5] + pad_shape: [4, 4] -> [2, 2, 2, 2] by axis + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] + + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.float32) + y = np.array([[[[7, 7.5, 8, 8.5, 9], + [9.5, 10, 10.5, 11, 11.5], + [12, 12.5, 13, 13.5, 14], + [14.5, 15, 15.5, 16, 16.5], + [17, 17.5, 18, 18.5, 19]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_pads') + + @staticmethod + def export_averagepool_2d_precomputed_pads_count_include_pad() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 5, 5] + pad_shape: [4, 4] -> [2, 2, 2, 2] by axis + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2], + count_include_pad=1 + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.float32) + y = np.array([[[[2.5200, 3.6000, 4.8000, 4.0800, 3.2400], + [4.5600, 6.4000, 8.4000, 7.0400, 5.5200], + [7.2000, 10.0000, 13.0000, 10.8000, 8.4000], + [6.9600, 9.6000, 12.4000, 10.2400, 7.9200], + [6.1200, 8.4000, 10.8000, 8.8800, 6.8400]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_pads_count_include_pad') + + @staticmethod + def export_averagepool_2d_precomputed_strides() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 2, 2] + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.float32) + y = np.array([[[[4, 6], + [14, 16]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_strides') + + @staticmethod + def export_averagepool_2d_precomputed_same_upper() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 3, 3] + pad_shape: [2, 2] -> [1, 1, 1, 1] by axis + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + auto_pad='SAME_UPPER' + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.float32) + y = np.array([[[[4, 5.5, 7], + [11.5, 13, 14.5], + [19, 20.5, 22]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_precomputed_same_upper') + + @staticmethod + def export_averagepool_1d_default() -> None: + """ + input_shape: [1, 3, 32] + output_shape: [1, 3, 31] + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2], + ) + x = np.random.randn(1, 3, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = [2] + strides = [1] + out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) + padded = x + y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0], 'AVG') + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_1d_default') + + @staticmethod + def export_averagepool_2d_default() -> None: + """ + input_shape: [1, 3, 32, 32] + output_shape: [1, 3, 31, 31] + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + ) + x = np.random.randn(1, 3, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (2, 2) + strides = (1, 1) + out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) + padded = x + y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'AVG') + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_default') + + @staticmethod + def export_averagepool_3d_default() -> None: + """ + input_shape: [1, 3, 32, 32, 32] + output_shape: [1, 3, 31, 31, 31] + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2, 2], + ) + x = np.random.randn(1, 3, 32, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = [2, 2, 2] + strides = [1, 1, 1] + out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) + padded = x + y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0, 0, 0], 'AVG') + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_3d_default') + + @staticmethod + def export_averagepool_2d_same_upper() -> None: + """ + input_shape: [1, 3, 32, 32] + output_shape: [1, 3, 32, 32] + pad_shape: [1, 1] -> [0, 1, 0, 1] by axis + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_UPPER' + ) + x = np.random.randn(1, 3, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (2, 2) + strides = (1, 1) + out_shape = get_output_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides) + pad_shape = get_pad_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides, out_shape) + pad_top = pad_shape[0] // 2 + pad_bottom = pad_shape[0] - pad_top + pad_left = pad_shape[1] // 2 + pad_right = pad_shape[1] - pad_left + padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) + y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG') + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_same_upper') + + @staticmethod + def export_averagepool_2d_same_lower() -> None: + """ + input_shape: [1, 3, 32, 32] + output_shape: [1, 3, 32, 32] + pad_shape: [1, 1] -> [1, 0, 1, 0] by axis + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_LOWER' + ) + x = np.random.randn(1, 3, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (2, 2) + strides = (1, 1) + out_shape = get_output_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides) + pad_shape = get_pad_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides, out_shape) + pad_bottom = pad_shape[0] // 2 + pad_top = pad_shape[0] - pad_bottom + pad_right = pad_shape[1] // 2 + pad_left = pad_shape[1] - pad_right + padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) + y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG') + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_same_lower') + + @staticmethod + def export_averagepool_2d_pads() -> None: + """ + input_shape: [1, 3, 28, 28] + output_shape: [1, 3, 30, 30] + pad_shape: [4, 4] -> [2, 2, 2, 2] by axis + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[2, 2, 2, 2] + ) + x = np.random.randn(1, 3, 28, 28).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (3, 3) + strides = (1, 1) + pad_bottom = 2 + pad_top = 2 + pad_right = 2 + pad_left = 2 + pad_shape = [pad_top + pad_bottom, pad_left + pad_right] + out_shape = get_output_shape('VALID', np.add(x_shape[2:], pad_shape), kernel_shape, strides) + padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) + y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG') + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_pads') + + @staticmethod + def export_averagepool_2d_pads_count_include_pad() -> None: + """ + input_shape: [1, 3, 28, 28] + output_shape: [1, 3, 30, 30] + pad_shape: [4, 4] -> [2, 2, 2, 2] by axis + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[2, 2, 2, 2], + count_include_pad=1, + ) + x = np.random.randn(1, 3, 28, 28).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (3, 3) + strides = (1, 1) + pad_bottom = 2 + pad_top = 2 + pad_right = 2 + pad_left = 2 + pad_shape = [pad_top + pad_bottom, pad_left + pad_right] + out_shape = get_output_shape('VALID', np.add(x_shape[2:], pad_shape), kernel_shape, strides) + padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=0) + y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'AVG', count_include_pad=1) + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_pads_count_include_pad') + + @staticmethod + def export_averagepool_2d_strides() -> None: + """ + input_shape: [1, 3, 32, 32] + output_shape: [1, 3, 10, 10] + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + strides=[3, 3] + ) + x = np.random.randn(1, 3, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (5, 5) + strides = (3, 3) + out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) + padded = x + y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'AVG') + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_strides') + + @staticmethod + def export_averagepool_2d_ceil() -> None: + """ + input_shape: [1, 1, 4, 4] + output_shape: [1, 1, 2, 2] + """ + node = onnx.helper.make_node( + 'AveragePool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + ceil_mode=True + ) + x = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]]).astype(np.float32) + y = np.array([[[ + [6, 7.5], + [12, 13.5]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_averagepool_2d_ceil') diff --git a/third_party/onnx/onnx/backend/test/case/node/batchnorm.py b/third_party/onnx/onnx/backend/test/case/node/batchnorm.py new file mode 100644 index 000000000..a6831e754 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/batchnorm.py @@ -0,0 +1,119 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def _batchnorm_test_mode(x, s, bias, mean, var, epsilon=1e-5): # type: ignore + dims_x = len(x.shape) + dim_ones = (1,) * (dims_x - 2) + s = s.reshape(-1, *dim_ones) + bias = bias.reshape(-1, *dim_ones) + mean = mean.reshape(-1, *dim_ones) + var = var.reshape(-1, *dim_ones) + return s * (x - mean) / np.sqrt(var + epsilon) + bias + + +def _batchnorm_training_mode(x, s, bias, mean, var, momentum=0.9, epsilon=1e-5): # type: ignore + axis = tuple(np.delete(np.arange(len(x.shape)), 1)) + saved_mean = x.mean(axis=axis) + saved_var = x.var(axis=axis) + output_mean = mean * momentum + saved_mean * (1 - momentum) + output_var = var * momentum + saved_var * (1 - momentum) + y = _batchnorm_test_mode(x, s, bias, saved_mean, saved_var, epsilon=epsilon) + return y.astype(np.float32), output_mean, output_var + + +class BatchNormalization(Base): + @staticmethod + def export() -> None: + # input size: (2, 3, 4, 5) + x = np.random.randn(2, 3, 4, 5).astype(np.float32) + s = np.random.randn(3).astype(np.float32) + bias = np.random.randn(3).astype(np.float32) + mean = np.random.randn(3).astype(np.float32) + var = np.random.rand(3).astype(np.float32) + y = _batchnorm_test_mode(x, s, bias, mean, var).astype(np.float32) + + node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y'], + ) + + # output size: (2, 3, 4, 5) + expect(node, inputs=[x, s, bias, mean, var], outputs=[y], + name='test_batchnorm_example') + + # input size: (2, 3, 4, 5) + x = np.random.randn(2, 3, 4, 5).astype(np.float32) + s = np.random.randn(3).astype(np.float32) + bias = np.random.randn(3).astype(np.float32) + mean = np.random.randn(3).astype(np.float32) + var = np.random.rand(3).astype(np.float32) + epsilon = 1e-2 + y = _batchnorm_test_mode(x, s, bias, mean, var, epsilon).astype(np.float32) + + node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y'], + epsilon=epsilon, + ) + + # output size: (2, 3, 4, 5) + expect(node, inputs=[x, s, bias, mean, var], outputs=[y], + name='test_batchnorm_epsilon') + + @staticmethod + def export_train() -> None: + # input size: (2, 3, 4, 5) + x = np.random.randn(2, 3, 4, 5).astype(np.float32) + s = np.random.randn(3).astype(np.float32) + bias = np.random.randn(3).astype(np.float32) + mean = np.random.randn(3).astype(np.float32) + var = np.random.rand(3).astype(np.float32) + # using np.bool(1) while generating test data with "'bool' object has no attribute 'dtype'" + # working around by using np.byte(1).astype(bool) + training_mode = 1 + y, output_mean, output_var = _batchnorm_training_mode(x, s, bias, mean, var) + + node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y', 'output_mean', 'output_var'], + training_mode=training_mode + ) + + # output size: (2, 3, 4, 5) + expect(node, inputs=[x, s, bias, mean, var], + outputs=[y, output_mean, output_var], + name='test_batchnorm_example_training_mode') + + # input size: (2, 3, 4, 5) + x = np.random.randn(2, 3, 4, 5).astype(np.float32) + s = np.random.randn(3).astype(np.float32) + bias = np.random.randn(3).astype(np.float32) + mean = np.random.randn(3).astype(np.float32) + var = np.random.rand(3).astype(np.float32) + training_mode = 1 + momentum = 0.9 + epsilon = 1e-2 + y, output_mean, output_var = _batchnorm_training_mode(x, s, bias, mean, var, momentum, + epsilon) + + node = onnx.helper.make_node( + 'BatchNormalization', + inputs=['x', 's', 'bias', 'mean', 'var'], + outputs=['y', 'output_mean', 'output_var'], + epsilon=epsilon, + training_mode=training_mode + ) + + # output size: (2, 3, 4, 5) + expect(node, inputs=[x, s, bias, mean, var], + outputs=[y, output_mean, output_var], + name='test_batchnorm_epsilon_training_mode') diff --git a/third_party/onnx/onnx/backend/test/case/node/bernoulli.py b/third_party/onnx/onnx/backend/test/case/node/bernoulli.py new file mode 100755 index 000000000..a61195c70 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/bernoulli.py @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def bernoulli_reference_implementation(x, dtype): # type: ignore + # binomial n = 1 equal bernoulli + # This example and test-case is for informational purpose. The generator operator is + # non-deterministic and may not produce the same values in different implementations + # even if a seed is specified. + return np.random.binomial(1, p=x).astype(dtype) + + +class Bernoulli(Base): + @staticmethod + def export_bernoulli_without_dtype() -> None: + node = onnx.helper.make_node( + 'Bernoulli', + inputs=['x'], + outputs=['y'], + ) + + x = np.random.uniform(0.0, 1.0, 10).astype(np.float) + y = bernoulli_reference_implementation(x, np.float) + expect(node, inputs=[x], outputs=[y], name='test_bernoulli') + + @staticmethod + def export_bernoulli_with_dtype() -> None: + node = onnx.helper.make_node( + 'Bernoulli', + inputs=['x'], + outputs=['y'], + dtype=onnx.TensorProto.DOUBLE, + ) + + x = np.random.uniform(0.0, 1.0, 10).astype(np.float32) + y = bernoulli_reference_implementation(x, np.float64) + expect(node, inputs=[x], outputs=[y], name='test_bernoulli_double') + + @staticmethod + def export_bernoulli_with_seed() -> None: + seed = np.float(0) + node = onnx.helper.make_node( + 'Bernoulli', + inputs=['x'], + outputs=['y'], + seed=seed, + ) + + x = np.random.uniform(0.0, 1.0, 10).astype(np.float32) + y = bernoulli_reference_implementation(x, np.float32) + expect(node, inputs=[x], outputs=[y], name='test_bernoulli_seed') diff --git a/third_party/onnx/onnx/backend/test/case/node/bitshift.py b/third_party/onnx/onnx/backend/test/case/node/bitshift.py new file mode 100644 index 000000000..b8dea55e1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/bitshift.py @@ -0,0 +1,130 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class BitShift(Base): + + @staticmethod + def export_right_unit8() -> None: + node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" + ) + + x = np.array([16, 4, 1]).astype(np.uint8) + y = np.array([1, 2, 3]).astype(np.uint8) + z = x >> y # expected output [8, 1, 0] + expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint8') + + @staticmethod + def export_right_unit16() -> None: + node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" + ) + + x = np.array([16, 4, 1]).astype(np.uint16) + y = np.array([1, 2, 3]).astype(np.uint16) + z = x >> y # expected output [8, 1, 0] + expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint16') + + @staticmethod + def export_right_unit32() -> None: + node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" + ) + + x = np.array([16, 4, 1]).astype(np.uint32) + y = np.array([1, 2, 3]).astype(np.uint32) + z = x >> y # expected output [8, 1, 0] + expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint32') + + @staticmethod + def export_right_unit64() -> None: + node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="RIGHT" + ) + + x = np.array([16, 4, 1]).astype(np.uint64) + y = np.array([1, 2, 3]).astype(np.uint64) + z = x >> y # expected output [8, 1, 0] + expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_right_uint64') + + @staticmethod + def export_left_unit8() -> None: + node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" + ) + + x = np.array([16, 4, 1]).astype(np.uint8) + y = np.array([1, 2, 3]).astype(np.uint8) + z = x << y # expected output [32, 16, 8] + expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint8') + + @staticmethod + def export_left_unit16() -> None: + node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" + ) + + x = np.array([16, 4, 1]).astype(np.uint16) + y = np.array([1, 2, 3]).astype(np.uint16) + z = x << y # expected output [32, 16, 8] + expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint16') + + @staticmethod + def export_left_unit32() -> None: + node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" + ) + + x = np.array([16, 4, 1]).astype(np.uint32) + y = np.array([1, 2, 3]).astype(np.uint32) + z = x << y # expected output [32, 16, 8] + expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint32') + + @staticmethod + def export_left_unit64() -> None: + node = onnx.helper.make_node( + 'BitShift', + inputs=['x', 'y'], + outputs=['z'], + direction="LEFT" + ) + + x = np.array([16, 4, 1]).astype(np.uint64) + y = np.array([1, 2, 3]).astype(np.uint64) + z = x << y # expected output [32, 16, 8] + expect(node, inputs=[x, y], outputs=[z], + name='test_bitshift_left_uint64') diff --git a/third_party/onnx/onnx/backend/test/case/node/cast.py b/third_party/onnx/onnx/backend/test/case/node/cast.py new file mode 100644 index 000000000..d3fb7c5d3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/cast.py @@ -0,0 +1,95 @@ +# SPDX-License-Identifier: Apache-2.0 +# coding: utf-8 + + +import numpy as np # type: ignore + +import onnx +from onnx import TensorProto +from onnx.mapping import TENSOR_TYPE_TO_NP_TYPE + +from ..base import Base +from . import expect +import sys + + +class Cast(Base): + + @staticmethod + def export() -> None: + shape = (3, 4) + test_cases = [ + ('FLOAT', 'FLOAT16'), + ('FLOAT', 'DOUBLE'), + ('FLOAT16', 'FLOAT'), + ('FLOAT16', 'DOUBLE'), + ('DOUBLE', 'FLOAT'), + ('DOUBLE', 'FLOAT16'), + ('FLOAT', 'STRING'), + ('STRING', 'FLOAT'), + ('FLOAT', 'BFLOAT16'), + ('BFLOAT16', 'FLOAT'), + ] + + for from_type, to_type in test_cases: + input_type_proto = None + output_type_proto = None + if 'BFLOAT16' == from_type or 'BFLOAT16' == to_type: + np_fp32 = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.float32) + little_endisan = sys.byteorder == 'little' + np_uint16_view = np_fp32.view(dtype=np.uint16) + np_bfp16 = np_uint16_view[1::2] if little_endisan else np_uint16_view[0::2] + if 'BFLOAT16' == to_type: + assert from_type == 'FLOAT' + input = np_fp32.reshape([3, 4]) + output = np_bfp16.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), output.shape) + else: + assert to_type == 'FLOAT' + input = np_bfp16.reshape([3, 4]) + #convert bfloat to FLOAT + np_fp32_zeros = np.zeros((len(np_bfp16) * 2,), dtype=np.uint16) + if little_endisan: + np_fp32_zeros[1::2] = np_bfp16 + else: + np_fp32_zeros[0::2] = np_bfp16 + np_fp32_from_bfloat = np_fp32_zeros.view(dtype=np.float32) + output = np_fp32_from_bfloat.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), output.shape) + elif 'STRING' != from_type: + input = np.random.random_sample(shape).astype( + TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, from_type)]) + if ('STRING' == to_type): + # Converting input to str, then give it object dtype for generating script + ss = [] + for i in input.flatten(): + s = str(i).encode('utf-8') + su = s.decode('utf-8') + ss.append(su) + + output = np.array(ss).astype(object).reshape([3, 4]) + else: + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + else: + input = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.dtype(object)).reshape([3, 4]) + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + node = onnx.helper.make_node( + 'Cast', + inputs=['input'], + outputs=['output'], + to=getattr(TensorProto, to_type), + ) + if input_type_proto and output_type_proto: + expect(node, inputs=[input], outputs=[output], + name='test_cast_' + from_type + '_to_' + to_type, + input_type_protos=[input_type_proto], + output_type_protos=[output_type_proto]) + else: + expect(node, inputs=[input], outputs=[output], + name='test_cast_' + from_type + '_to_' + to_type) diff --git a/third_party/onnx/onnx/backend/test/case/node/castlike.py b/third_party/onnx/onnx/backend/test/case/node/castlike.py new file mode 100644 index 000000000..ddd058691 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/castlike.py @@ -0,0 +1,95 @@ +# SPDX-License-Identifier: Apache-2.0 +# coding: utf-8 + + +import numpy as np # type: ignore + +import onnx +from onnx import TensorProto +from onnx.mapping import TENSOR_TYPE_TO_NP_TYPE + +from ..base import Base +from . import expect +import sys + + +class CastLike(Base): + + @staticmethod + def export() -> None: + shape = (3, 4) + test_cases = [ + ('FLOAT', 'FLOAT16'), + ('FLOAT', 'DOUBLE'), + ('FLOAT16', 'FLOAT'), + ('FLOAT16', 'DOUBLE'), + ('DOUBLE', 'FLOAT'), + ('DOUBLE', 'FLOAT16'), + ('FLOAT', 'STRING'), + ('STRING', 'FLOAT'), + ('FLOAT', 'BFLOAT16'), + ('BFLOAT16', 'FLOAT'), + ] + + for from_type, to_type in test_cases: + input_type_proto = None + output_type_proto = None + if 'BFLOAT16' == from_type or 'BFLOAT16' == to_type: + np_fp32 = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.float32) + little_endisan = sys.byteorder == 'little' + np_uint16_view = np_fp32.view(dtype=np.uint16) + np_bfp16 = np_uint16_view[1::2] if little_endisan else np_uint16_view[0::2] + if 'BFLOAT16' == to_type: + assert from_type == 'FLOAT' + input = np_fp32.reshape([3, 4]) + output = np_bfp16.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), output.shape) + else: + assert to_type == 'FLOAT' + input = np_bfp16.reshape([3, 4]) + #convert bfloat to FLOAT + np_fp32_zeros = np.zeros((len(np_bfp16) * 2,), dtype=np.uint16) + if little_endisan: + np_fp32_zeros[1::2] = np_bfp16 + else: + np_fp32_zeros[0::2] = np_bfp16 + np_fp32_from_bfloat = np_fp32_zeros.view(dtype=np.float32) + output = np_fp32_from_bfloat.reshape([3, 4]) + input_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.BFLOAT16), input.shape) + output_type_proto = onnx.helper.make_tensor_type_proto(int(TensorProto.FLOAT), output.shape) + elif 'STRING' != from_type: + input = np.random.random_sample(shape).astype( + TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, from_type)]) + if ('STRING' == to_type): + # Converting input to str, then give it np.object dtype for generating script + ss = [] + for i in input.flatten(): + s = str(i).encode('utf-8') + su = s.decode('utf-8') + ss.append(su) + + output = np.array(ss).astype(np.object).reshape([3, 4]) + else: + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + else: + input = np.array([u'0.47892547', u'0.48033667', u'0.49968487', u'0.81910545', + u'0.47031248', u'0.816468', u'0.21087195', u'0.7229038', + u'NaN', u'INF', u'+INF', u'-INF'], dtype=np.dtype(np.object)).reshape([3, 4]) + output = input.astype(TENSOR_TYPE_TO_NP_TYPE[getattr(TensorProto, to_type)]) + like = output.flatten()[0:1] + node = onnx.helper.make_node( + 'CastLike', + inputs=['input', 'like'], + outputs=['output'], + ) + if input_type_proto and output_type_proto: + expect(node, inputs=[input, like], outputs=[output], + name='test_castlike_' + from_type + '_to_' + to_type, + input_type_protos=[input_type_proto, output_type_proto], + output_type_protos=[output_type_proto]) + else: + expect(node, inputs=[input, like], outputs=[output], + name='test_castlike_' + from_type + '_to_' + to_type) diff --git a/third_party/onnx/onnx/backend/test/case/node/ceil.py b/third_party/onnx/onnx/backend/test/case/node/ceil.py new file mode 100644 index 000000000..3e77d83a8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/ceil.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Ceil(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Ceil', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1.5, 1.2]).astype(np.float32) + y = np.ceil(x) # expected output [-1., 2.] + expect(node, inputs=[x], outputs=[y], + name='test_ceil_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.ceil(x) + expect(node, inputs=[x], outputs=[y], + name='test_ceil') diff --git a/third_party/onnx/onnx/backend/test/case/node/celu.py b/third_party/onnx/onnx/backend/test/case/node/celu.py new file mode 100644 index 000000000..c64f15a40 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/celu.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Celu(Base): + + @staticmethod + def export() -> None: + alpha = 2.0 + node = onnx.helper.make_node( + 'Celu', + inputs=['X'], + outputs=['Y'], + alpha=alpha, + ) + + input_data = np.array([[[[0.8439683], [0.5665144], [0.05836735]], + [[0.02916367], [0.12964272], [0.5060197]], + [[0.79538304], [0.9411346], [0.9546573]]], + [[[0.17730942], [0.46192095], [0.26480448]], + [[0.6746842], [0.01665257], [0.62473077]], + [[0.9240844], [0.9722341], [0.11965699]]], + [[[0.41356155], [0.9129373], [0.59330076]], + [[0.81929934], [0.7862604], [0.11799799]], + [[0.69248444], [0.54119414], [0.07513223]]]], dtype=np.float32) + + # Calculate expected output data + positive_input = np.maximum(0, input_data) + negative_input = np.minimum(0, alpha * (np.exp(input_data / alpha) - 1)) + expected_output = positive_input + negative_input + + expect(node, inputs=[input_data], outputs=[expected_output], + name='test_celu') diff --git a/third_party/onnx/onnx/backend/test/case/node/clip.py b/third_party/onnx/onnx/backend/test/case/node/clip.py new file mode 100644 index 000000000..41abc4f9e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/clip.py @@ -0,0 +1,127 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Clip(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min', 'max'], + outputs=['y'], + ) + + x = np.array([-2, 0, 2]).astype(np.float32) + min_val = np.float32(-1) + max_val = np.float32(1) + y = np.clip(x, min_val, max_val) # expected output [-1., 0., 1.] + expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, min_val, max_val) + expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip') + node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min', 'max'], + outputs=['y'], + ) + + min_val = np.float32(-5) + max_val = np.float32(5) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.array([-1, 0, 1]).astype(np.float32) + expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_inbounds') + + x = np.array([-6, 0, 6]).astype(np.float32) + y = np.array([-5, 0, 5]).astype(np.float32) + expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_outbounds') + + x = np.array([-1, 0, 6]).astype(np.float32) + y = np.array([-1, 0, 5]).astype(np.float32) + expect(node, inputs=[x, min_val, max_val], outputs=[y], + name='test_clip_splitbounds') + + @staticmethod + def export_clip_default() -> None: + node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min'], + outputs=['y'], + ) + min_val = np.float32(0) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, min_val, np.inf) + expect(node, inputs=[x, min_val], outputs=[y], + name='test_clip_default_min') + + no_min = "" # optional input, not supplied + node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, 'max'], + outputs=['y'], + ) + max_val = np.float32(0) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, -np.inf, max_val) + expect(node, inputs=[x, max_val], outputs=[y], + name='test_clip_default_max') + + no_max = "" # optional input, not supplied + node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, no_max], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.array([-1, 0, 1]).astype(np.float32) + expect(node, inputs=[x], outputs=[y], + name='test_clip_default_inbounds') + + @staticmethod + def export_clip_default_int8() -> None: + node = onnx.helper.make_node( + 'Clip', + inputs=['x', 'min'], + outputs=['y'], + ) + min_val = np.int8(0) + x = np.random.randn(3, 4, 5).astype(np.int8) + y = np.clip(x, min_val, np.iinfo(np.int8).max) + expect(node, inputs=[x, min_val], outputs=[y], + name='test_clip_default_int8_min') + + no_min = "" # optional input, not supplied + node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, 'max'], + outputs=['y'], + ) + max_val = np.int8(0) + x = np.random.randn(3, 4, 5).astype(np.int8) + y = np.clip(x, np.iinfo(np.int8).min, max_val) + expect(node, inputs=[x, max_val], outputs=[y], + name='test_clip_default_int8_max') + + no_max = "" # optional input, not supplied + node = onnx.helper.make_node( + 'Clip', + inputs=['x', no_min, no_max], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.int8) + y = np.array([-1, 0, 1]).astype(np.int8) + expect(node, inputs=[x], outputs=[y], + name='test_clip_default_int8_inbounds') diff --git a/third_party/onnx/onnx/backend/test/case/node/compress.py b/third_party/onnx/onnx/backend/test/case/node/compress.py new file mode 100644 index 000000000..e951a1347 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/compress.py @@ -0,0 +1,81 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Compress(Base): + + @staticmethod + def export_compress_0() -> None: + node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + axis=0, + ) + input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) + condition = np.array([0, 1, 1]) + output = np.compress(condition, input, axis=0) + #print(output) + #[[ 3. 4.] + # [ 5. 6.]] + + expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_0') + + @staticmethod + def export_compress_1() -> None: + node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + axis=1, + ) + input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) + condition = np.array([0, 1]) + output = np.compress(condition, input, axis=1) + #print(output) + #[[ 2.] + # [ 4.] + # [ 6.]] + + expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_1') + + @staticmethod + def export_compress_default_axis() -> None: + node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + ) + input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) + condition = np.array([0, 1, 0, 0, 1]) + output = np.compress(condition, input) + #print(output) + #[ 2., 5.] + + expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_default_axis') + + @staticmethod + def export_compress_negative_axis() -> None: + node = onnx.helper.make_node( + 'Compress', + inputs=['input', 'condition'], + outputs=['output'], + axis=-1, + ) + input = np.array([[1, 2], [3, 4], [5, 6]]).astype(np.float32) + condition = np.array([0, 1]) + output = np.compress(condition, input, axis=-1) + # print(output) + #[[ 2.] + # [ 4.] + # [ 6.]] + expect(node, inputs=[input, condition.astype(bool)], outputs=[output], + name='test_compress_negative_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/concat.py b/third_party/onnx/onnx/backend/test/case/node/concat.py new file mode 100644 index 000000000..1705cd2f0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/concat.py @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from typing import Dict, Sequence, Text, Any + + +class Concat(Base): + + @staticmethod + def export() -> None: + test_cases: Dict[Text, Sequence[Any]] = { + '1d': ([1, 2], + [3, 4]), + '2d': ([[1, 2], [3, 4]], + [[5, 6], [7, 8]]), + '3d': ([[[1, 2], [3, 4]], [[5, 6], [7, 8]]], + [[[9, 10], [11, 12]], [[13, 14], [15, 16]]]) + } + + for test_case, values_ in test_cases.items(): + values = [np.asarray(v, dtype=np.float32) for v in values_] + for i in range(len(values[0].shape)): + in_args = ['value' + str(k) for k in range(len(values))] + node = onnx.helper.make_node( + 'Concat', + inputs=[s for s in in_args], + outputs=['output'], + axis=i + ) + output = np.concatenate(values, i) + expect(node, inputs=[v for v in values], outputs=[output], + name='test_concat_' + test_case + '_axis_' + str(i)) + + for i in range(-len(values[0].shape), 0): + in_args = ['value' + str(k) for k in range(len(values))] + node = onnx.helper.make_node( + 'Concat', + inputs=[s for s in in_args], + outputs=['output'], + axis=i + ) + output = np.concatenate(values, i) + expect(node, inputs=[v for v in values], outputs=[output], + name='test_concat_' + test_case + '_axis_negative_' + str(abs(i))) diff --git a/third_party/onnx/onnx/backend/test/case/node/constant.py b/third_party/onnx/onnx/backend/test/case/node/constant.py new file mode 100644 index 000000000..f69ac4bc9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/constant.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Constant(Base): + + @staticmethod + def export() -> None: + values = np.random.randn(5, 5).astype(np.float32) + node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['values'], + value=onnx.helper.make_tensor( + name='const_tensor', + data_type=onnx.TensorProto.FLOAT, + dims=values.shape, + vals=values.flatten().astype(float), + ), + ) + + expect(node, inputs=[], outputs=[values], + name='test_constant') diff --git a/third_party/onnx/onnx/backend/test/case/node/constantofshape.py b/third_party/onnx/onnx/backend/test/case/node/constantofshape.py new file mode 100644 index 000000000..ca0d72530 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/constantofshape.py @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ConstantOfShape(Base): + + @staticmethod + def export_float_ones() -> None: + x = np.array([4, 3, 2]).astype(np.int64) + tensor_value = onnx.helper.make_tensor("value", onnx.TensorProto.FLOAT, + [1], [1]) + node = onnx.helper.make_node( + 'ConstantOfShape', + inputs=['x'], + outputs=['y'], + value=tensor_value, + ) + + y = np.ones(x, dtype=np.float32) + expect(node, inputs=[x], outputs=[y], + name='test_constantofshape_float_ones') + + @staticmethod + def export_int32_zeros() -> None: + x = np.array([10, 6]).astype(np.int64) + tensor_value = onnx.helper.make_tensor("value", onnx.TensorProto.INT32, + [1], [0]) + node = onnx.helper.make_node( + 'ConstantOfShape', + inputs=['x'], + outputs=['y'], + value=tensor_value, + ) + y = np.zeros(x, dtype=np.int32) + expect(node, inputs=[x], outputs=[y], + name='test_constantofshape_int_zeros') + + @staticmethod + def export_int32_shape_zero() -> None: + x = np.array([0, ]).astype(np.int64) + tensor_value = onnx.helper.make_tensor("value", onnx.TensorProto.INT32, + [1], [0]) + node = onnx.helper.make_node( + 'ConstantOfShape', + inputs=['x'], + outputs=['y'], + value=tensor_value, + ) + y = np.zeros(x, dtype=np.int32) + expect(node, inputs=[x], outputs=[y], + name='test_constantofshape_int_shape_zero') diff --git a/third_party/onnx/onnx/backend/test/case/node/conv.py b/third_party/onnx/onnx/backend/test/case/node/conv.py new file mode 100644 index 000000000..e406cb9b2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/conv.py @@ -0,0 +1,142 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Conv(Base): + + @staticmethod + def export() -> None: + + x = np.array([[[[0., 1., 2., 3., 4.], # (1, 1, 5, 5) input tensor + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.], + [20., 21., 22., 23., 24.]]]]).astype(np.float32) + W = np.array([[[[1., 1., 1.], # (1, 1, 3, 3) tensor for convolution weights + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + + # Convolution with padding + node_with_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + # Default values for other attributes: strides=[1, 1], dilations=[1, 1], groups=1 + pads=[1, 1, 1, 1], + ) + y_with_padding = np.array([[[[12., 21., 27., 33., 24.], # (1, 1, 5, 5) output tensor + [33., 54., 63., 72., 51.], + [63., 99., 108., 117., 81.], + [93., 144., 153., 162., 111.], + [72., 111., 117., 123., 84.]]]]).astype(np.float32) + expect(node_with_padding, inputs=[x, W], outputs=[y_with_padding], + name='test_basic_conv_with_padding') + + # Convolution without padding + node_without_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + # Default values for other attributes: strides=[1, 1], dilations=[1, 1], groups=1 + pads=[0, 0, 0, 0], + ) + y_without_padding = np.array([[[[54., 63., 72.], # (1, 1, 3, 3) output tensor + [99., 108., 117.], + [144., 153., 162.]]]]).astype(np.float32) + expect(node_without_padding, inputs=[x, W], outputs=[y_without_padding], + name='test_basic_conv_without_padding') + + @staticmethod + def export_conv_with_strides() -> None: + + x = np.array([[[[0., 1., 2., 3., 4.], # (1, 1, 7, 5) input tensor + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.], + [20., 21., 22., 23., 24.], + [25., 26., 27., 28., 29.], + [30., 31., 32., 33., 34.]]]]).astype(np.float32) + W = np.array([[[[1., 1., 1.], # (1, 1, 3, 3) tensor for convolution weights + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + + # Convolution with strides=2 and padding + node_with_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[1, 1, 1, 1], + strides=[2, 2], # Default values for other attributes: dilations=[1, 1], groups=1 + ) + y_with_padding = np.array([[[[12., 27., 24.], # (1, 1, 4, 3) output tensor + [63., 108., 81.], + [123., 198., 141.], + [112., 177., 124.]]]]).astype(np.float32) + expect(node_with_padding, inputs=[x, W], outputs=[y_with_padding], + name='test_conv_with_strides_padding') + + # Convolution with strides=2 and no padding + node_without_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[0, 0, 0, 0], + strides=[2, 2], # Default values for other attributes: dilations=[1, 1], groups=1 + ) + y_without_padding = np.array([[[[54., 72.], # (1, 1, 3, 2) output tensor + [144., 162.], + [234., 252.]]]]).astype(np.float32) + expect(node_without_padding, inputs=[x, W], outputs=[y_without_padding], + name='test_conv_with_strides_no_padding') + + # Convolution with strides=2 and padding only along one dimension (the H dimension in NxCxHxW tensor) + node_with_asymmetric_padding = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[1, 0, 1, 0], + strides=[2, 2], # Default values for other attributes: dilations=[1, 1], groups=1 + ) + y_with_asymmetric_padding = np.array([[[[21., 33.], # (1, 1, 4, 2) output tensor + [99., 117.], + [189., 207.], + [171., 183.]]]]).astype(np.float32) + expect(node_with_asymmetric_padding, inputs=[x, W], outputs=[y_with_asymmetric_padding], + name='test_conv_with_strides_and_asymmetric_padding') + + @staticmethod + def export_conv_with_autopad_same() -> None: + + x = np.array([[[[0., 1., 2., 3., 4.], # (1, 1, 5, 5) input tensor + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.], + [20., 21., 22., 23., 24.]]]]).astype(np.float32) + W = np.array([[[[1., 1., 1.], # (1, 1, 3, 3) tensor for convolution weights + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + + # Convolution with auto_pad='SAME_LOWER' and strides=2 + node = onnx.helper.make_node( + 'Conv', + inputs=['x', 'W'], + outputs=['y'], + auto_pad='SAME_LOWER', + kernel_shape=[3, 3], + strides=[2, 2], + ) + y = np.array([[[[12., 27., 24.], + [63., 108., 81.], + [72., 117., 84.]]]]).astype(np.float32) + expect(node, inputs=[x, W], outputs=[y], + name='test_conv_with_autopad_same') diff --git a/third_party/onnx/onnx/backend/test/case/node/convinteger.py b/third_party/onnx/onnx/backend/test/case/node/convinteger.py new file mode 100644 index 000000000..c8b8a5601 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/convinteger.py @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +import onnx +from ..base import Base +from . import expect + + +class ConvInteger(Base): + + @staticmethod + def export_without_padding() -> None: + + x = np.array([2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.uint8).reshape((1, 1, 3, 3)) + x_zero_point = np.uint8(1) + w = np.array([1, 1, 1, 1]).astype(np.uint8).reshape((1, 1, 2, 2)) + + y = np.array([12, 16, 24, 28]).astype(np.int32).reshape(1, 1, 2, 2) + + # ConvInteger without padding + convinteger_node = onnx.helper.make_node('ConvInteger', + inputs=['x', 'w', 'x_zero_point'], + outputs=['y']) + + expect(convinteger_node, inputs=[x, w, x_zero_point], outputs=[y], + name='test_convinteger_without_padding') + + @staticmethod + def export_with_padding() -> None: + + x = np.array([2, 3, 4, 5, 6, 7, 8, 9, 10]).astype(np.uint8).reshape((1, 1, 3, 3)) + x_zero_point = np.uint8(1) + w = np.array([1, 1, 1, 1]).astype(np.uint8).reshape((1, 1, 2, 2)) + + y = np.array([1, 3, 5, 3, 5, 12, 16, 9, 11, 24, 28, 15, 7, 15, 17, 9]).astype(np.int32).reshape((1, 1, 4, 4)) + + # ConvInteger with padding + convinteger_node_with_padding = onnx.helper.make_node('ConvInteger', + inputs=['x', 'w', 'x_zero_point'], + outputs=['y'], + pads=[1, 1, 1, 1],) + + expect(convinteger_node_with_padding, inputs=[x, w, x_zero_point], outputs=[y], + name='test_convinteger_with_padding') diff --git a/third_party/onnx/onnx/backend/test/case/node/convtranspose.py b/third_party/onnx/onnx/backend/test/case/node/convtranspose.py new file mode 100644 index 000000000..a77ef1d3f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/convtranspose.py @@ -0,0 +1,301 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ConvTranspose(Base): + + @staticmethod + def export() -> None: + x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + + W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + + node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"]) + + y = np.array([[[[0., 1., 3., 3., 2.], # (1, 2, 5, 5) + [3., 8., 15., 12., 7.], + [9., 21., 36., 27., 15.], + [9., 20., 33., 24., 13.], + [6., 13., 21., 15., 8.]], + + [[0., 1., 3., 3., 2.], + [3., 8., 15., 12., 7.], + [9., 21., 36., 27., 15.], + [9., 20., 33., 24., 13.], + [6., 13., 21., 15., 8.]]]]).astype(np.float32) + + expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose') + + @staticmethod + def export_convtranspose_1d() -> None: + x = np.array([[[0., 1., 2.]]]).astype(np.float32) # (1, 1, 3) + + W = np.array([[[1., 1., 1.], # (1, 2, 3) + [1., 1., 1.]]]).astype(np.float32) + + node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"]) + + y = np.array([[[0., 1., 3., 3., 2.], # (1, 2, 5) + [0., 1., 3., 3., 2.]]]).astype(np.float32) + + expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_1d') + + @staticmethod + def export_convtranspose_3d() -> None: + x = np.array([[[[[0., 1., 2., 3., 4.], # (1, 1, 3, 4, 5) + [5., 6., 7., 8., 9.], + [10., 11., 12., 13., 14.], + [15., 16., 17., 18., 19.]], + [[20., 21., 22., 23., 24.], + [25., 26., 27., 28., 29.], + [30., 31., 32., 33., 34.], + [35., 36., 37., 38., 39.]], + [[40., 41., 42., 43., 44.], + [45., 46., 47., 48., 49.], + [50., 51., 52., 53., 54.], + [55., 56., 57., 58., 59.]]]]]).astype(np.float32) + + W = np.array([[[[[1., 1., 1.], # (1, 2, 3, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]], + [[[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]]).astype(np.float32) + + node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"]) + + y = np.array([[[[[0., 1., 3., 6., 9., 7., 4.], # (1, 2, 5, 6, 7) + [5., 12., 21., 27., 33., 24., 13.], + [15., 33., 54., 63., 72., 51., 27.], + [30., 63., 99., 108., 117., 81., 42.], + [25., 52., 81., 87., 93., 64., 33.], + [15., 31., 48., 51., 54., 37., 19.]], + + [[20., 42., 66., 72., 78., 54., 28.], + [50., 104., 162., 174., 186., 128., 66.], + [90., 186., 288., 306., 324., 222., 114.], + [120., 246., 378., 396., 414., 282., 144.], + [90., 184., 282., 294., 306., 208., 106.], + [50., 102., 156., 162., 168., 114., 58.]], + + [[60., 123., 189., 198., 207., 141., 72.], + [135., 276., 423., 441., 459., 312., 159.], + [225., 459., 702., 729., 756., 513., 261.], + [270., 549., 837., 864., 891., 603., 306.], + [195., 396., 603., 621., 639., 432., 219.], + [105., 213., 324., 333., 342., 231., 117.]], + + [[60., 122., 186., 192., 198., 134., 68.], + [130., 264., 402., 414., 426., 288., 146.], + [210., 426., 648., 666., 684., 462., 234.], + [240., 486., 738., 756., 774., 522., 264.], + [170., 344., 522., 534., 546., 368., 186.], + [90., 182., 276., 282., 288., 194., 98.]], + + [[40., 81., 123., 126., 129., 87., 44.], + [85., 172., 261., 267., 273., 184., 93.], + [135., 273., 414., 423., 432., 291., 147.], + [150., 303., 459., 468., 477., 321., 162.], + [105., 212., 321., 327., 333., 224., 113.], + [55., 111., 168., 171., 174., 117., 59.]]], + + [[[0., 1., 3., 6., 9., 7., 4.], + [5., 12., 21., 27., 33., 24., 13.], + [15., 33., 54., 63., 72., 51., 27.], + [30., 63., 99., 108., 117., 81., 42.], + [25., 52., 81., 87., 93., 64., 33.], + [15., 31., 48., 51., 54., 37., 19.]], + + [[20., 42., 66., 72., 78., 54., 28.], + [50., 104., 162., 174., 186., 128., 66.], + [90., 186., 288., 306., 324., 222., 114.], + [120., 246., 378., 396., 414., 282., 144.], + [90., 184., 282., 294., 306., 208., 106.], + [50., 102., 156., 162., 168., 114., 58.]], + + [[60., 123., 189., 198., 207., 141., 72.], + [135., 276., 423., 441., 459., 312., 159.], + [225., 459., 702., 729., 756., 513., 261.], + [270., 549., 837., 864., 891., 603., 306.], + [195., 396., 603., 621., 639., 432., 219.], + [105., 213., 324., 333., 342., 231., 117.]], + + [[60., 122., 186., 192., 198., 134., 68.], + [130., 264., 402., 414., 426., 288., 146.], + [210., 426., 648., 666., 684., 462., 234.], + [240., 486., 738., 756., 774., 522., 264.], + [170., 344., 522., 534., 546., 368., 186.], + [90., 182., 276., 282., 288., 194., 98.]], + + [[40., 81., 123., 126., 129., 87., 44.], + [85., 172., 261., 267., 273., 184., 93.], + [135., 273., 414., 423., 432., 291., 147.], + [150., 303., 459., 468., 477., 321., 162.], + [105., 212., 321., 327., 333., 224., 113.], + [55., 111., 168., 171., 174., 117., 59.]]]]]).astype(np.float32) + + expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_3d') + + @staticmethod + def export_convtranspose_attributes() -> None: + x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + + W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + + y = np.array([[[[0., 0., 1., 1., 3., 2., 2., 0.], # (1, 2, 10, 8) + [0., 0., 1., 1., 3., 2., 2., 0.], + [0., 0., 1., 1., 3., 2., 2., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [0., 0., 0., 0., 0., 0., 0., 0.]], + + [[0., 0., 1., 1., 3., 2., 2., 0.], + [0., 0., 1., 1., 3., 2., 2., 0.], + [0., 0., 1., 1., 3., 2., 2., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [3., 3., 7., 4., 9., 5., 5., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [6., 6., 13., 7., 15., 8., 8., 0.], + [0., 0., 0., 0., 0., 0., 0., 0.]]]]).astype(np.float32) + + node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], + strides=[3, 2], + output_shape=[10, 8]) + expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_output_shape') + + node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], + strides=[3, 2], + output_padding=[1, 1]) + expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_pad') + + node = onnx.helper.make_node( + 'ConvTranspose', ['X', 'W'], ['Y'], + name='test', + strides=[3, 2], + output_shape=[10, 8], + kernel_shape=[3, 3], + output_padding=[1, 1] + ) + expect(node, inputs=[x, W], outputs=[y], + name='test_convtranspose_kernel_shape') + + @staticmethod + def export_convtranspose_pads() -> None: + x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + + W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + + node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], + strides=[3, 2], + pads=[1, 2, 1, 2]) + + y = np.array([[[[1., 1., 3.], # (1, 2, 7, 3) + [1., 1., 3.], + [7., 4., 9.], + [7., 4., 9.], + [7., 4., 9.], + [13., 7., 15.], + [13., 7., 15.]], + + [[1., 1., 3.], + [1., 1., 3.], + [7., 4., 9.], + [7., 4., 9.], + [7., 4., 9.], + [13., 7., 15.], + [13., 7., 15.]]]]).astype(np.float32) + + expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_pads') + + @staticmethod + def export_convtranspose_dilations() -> None: + x = np.array([[[[3., 8., 1.], # (1, 1, 3, 3) + [9., 5., 7.], + [3., 2., 6.]]]]).astype(np.float32) + W = np.array([[[[7., 2.], # (1, 1, 2, 2) + [1., 9.]]]]).astype(np.float32) + + node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], dilations=[2, 2]) + + y = np.array([[[[21., 56., 13., 16., 2.], # [1, 1, 5, 5] + [63., 35., 67., 10., 14.], + [24., 22., 76., 76., 21.], + [9., 5., 88., 45., 63.], + [3., 2., 33., 18., 54.]]]]).astype(np.float32) + + expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_dilations') + + @staticmethod + def export_convtranspose_autopad_same() -> None: + x = np.array([[[[0., 1., 2.], # (1, 1, 3, 3) + [3., 4., 5.], + [6., 7., 8.]]]]).astype(np.float32) + + W = np.array([[[[1., 1., 1.], # (1, 2, 3, 3) + [1., 1., 1.], + [1., 1., 1.]], + [[1., 1., 1.], + [1., 1., 1.], + [1., 1., 1.]]]]).astype(np.float32) + + node = onnx.helper.make_node("ConvTranspose", ["X", "W"], ["Y"], auto_pad="SAME_UPPER", strides=[2, 2]) + + y = np.array([[[[0., 0., 1., 1., 3., 2.], + [0., 0., 1., 1., 3., 2.], + [3., 3., 8., 5., 12., 7.], + [3., 3., 7., 4., 9., 5.], + [9., 9., 20., 11., 24., 13.], + [6., 6., 13., 7., 15., 8.]], + + [[0., 0., 1., 1., 3., 2.], + [0., 0., 1., 1., 3., 2.], + [3., 3., 8., 5., 12., 7.], + [3., 3., 7., 4., 9., 5.], + [9., 9., 20., 11., 24., 13.], + [6., 6., 13., 7., 15., 8.]]]]).astype(np.float32) + + expect(node, inputs=[x, W], outputs=[y], name='test_convtranspose_autopad_same') diff --git a/third_party/onnx/onnx/backend/test/case/node/cos.py b/third_party/onnx/onnx/backend/test/case/node/cos.py new file mode 100644 index 000000000..ca46614fd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/cos.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Cos(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Cos', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.cos(x) + expect(node, inputs=[x], outputs=[y], + name='test_cos_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.cos(x) + expect(node, inputs=[x], outputs=[y], + name='test_cos') diff --git a/third_party/onnx/onnx/backend/test/case/node/cosh.py b/third_party/onnx/onnx/backend/test/case/node/cosh.py new file mode 100644 index 000000000..9a855251f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/cosh.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Cosh(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Cosh', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.cosh(x) # expected output [1.54308069, 1., 1.54308069] + expect(node, inputs=[x], outputs=[y], + name='test_cosh_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.cosh(x) + expect(node, inputs=[x], outputs=[y], + name='test_cosh') diff --git a/third_party/onnx/onnx/backend/test/case/node/cumsum.py b/third_party/onnx/onnx/backend/test/case/node/cumsum.py new file mode 100644 index 000000000..3abad2a6c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/cumsum.py @@ -0,0 +1,105 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class CumSum(Base): + + @staticmethod + def export_cumsum_1d() -> None: + node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'] + ) + x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) + axis = np.int32(0) + y = np.array([1., 3., 6., 10., 15.]).astype(np.float64) + expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d') + + @staticmethod + def export_cumsum_1d_exclusive() -> None: + node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + exclusive=1 + ) + x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) + axis = np.int32(0) + y = np.array([0., 1., 3., 6., 10.]).astype(np.float64) + expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d_exclusive') + + @staticmethod + def export_cumsum_1d_reverse() -> None: + node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + reverse=1 + ) + x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) + axis = np.int32(0) + y = np.array([15., 14., 12., 9., 5.]).astype(np.float64) + expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d_reverse') + + @staticmethod + def export_cumsum_1d_reverse_exclusive() -> None: + node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + reverse=1, + exclusive=1 + ) + x = np.array([1., 2., 3., 4., 5.]).astype(np.float64) + axis = np.int32(0) + y = np.array([14., 12., 9., 5., 0.]).astype(np.float64) + expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_1d_reverse_exclusive') + + @staticmethod + def export_cumsum_2d_axis_0() -> None: + node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + ) + x = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float64).reshape((2, 3)) + axis = np.int32(0) + y = np.array([1., 2., 3., 5., 7., 9.]).astype(np.float64).reshape((2, 3)) + expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_2d_axis_0') + + @staticmethod + def export_cumsum_2d_axis_1() -> None: + node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + ) + x = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float64).reshape((2, 3)) + axis = np.int32(1) + y = np.array([1., 3., 6., 4., 9., 15.]).astype(np.float64).reshape((2, 3)) + expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_2d_axis_1') + + @staticmethod + def export_cumsum_2d_negative_axis() -> None: + node = onnx.helper.make_node( + 'CumSum', + inputs=['x', 'axis'], + outputs=['y'], + ) + x = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float64).reshape((2, 3)) + axis = np.int32(-1) + y = np.array([1., 3., 6., 4., 9., 15.]).astype(np.float64).reshape((2, 3)) + expect(node, inputs=[x, axis], outputs=[y], + name='test_cumsum_2d_negative_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/depthtospace.py b/third_party/onnx/onnx/backend/test/case/node/depthtospace.py new file mode 100755 index 000000000..798f74423 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/depthtospace.py @@ -0,0 +1,90 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class DepthToSpace(Base): + + @staticmethod + def export_default_mode_example() -> None: + node = onnx.helper.make_node( + 'DepthToSpace', + inputs=['x'], + outputs=['y'], + blocksize=2, + mode='DCR' + ) + + # (1, 8, 2, 3) input tensor + x = np.array([[[[0., 1., 2.], + [3., 4., 5.]], + [[9., 10., 11.], + [12., 13., 14.]], + [[18., 19., 20.], + [21., 22., 23.]], + [[27., 28., 29.], + [30., 31., 32.]], + [[36., 37., 38.], + [39., 40., 41.]], + [[45., 46., 47.], + [48., 49., 50.]], + [[54., 55., 56.], + [57., 58., 59.]], + [[63., 64., 65.], + [66., 67., 68.]]]]).astype(np.float32) + + # (1, 2, 4, 6) output tensor + y = np.array([[[[0., 18., 1., 19., 2., 20.], + [36., 54., 37., 55., 38., 56.], + [3., 21., 4., 22., 5., 23.], + [39., 57., 40., 58., 41., 59.]], + [[9., 27., 10., 28., 11., 29.], + [45., 63., 46., 64., 47., 65.], + [12., 30., 13., 31., 14., 32.], + [48., 66., 49., 67., 50., 68.]]]]).astype(np.float32) + expect(node, inputs=[x], outputs=[y], + name='test_depthtospace_example') + + @staticmethod + def export_crd_mode_example() -> None: + node = onnx.helper.make_node( + 'DepthToSpace', + inputs=['x'], + outputs=['y'], + blocksize=2, + mode='CRD' + ) + + # (1, 8, 2, 3) input tensor + x = np.array([[[[0., 1., 2.], + [3., 4., 5.]], + [[9., 10., 11.], + [12., 13., 14.]], + [[18., 19., 20.], + [21., 22., 23.]], + [[27., 28., 29.], + [30., 31., 32.]], + [[36., 37., 38.], + [39., 40., 41.]], + [[45., 46., 47.], + [48., 49., 50.]], + [[54., 55., 56.], + [57., 58., 59.]], + [[63., 64., 65.], + [66., 67., 68.]]]]).astype(np.float32) + + # (1, 2, 4, 6) output tensor + y = np.array([[[[0., 9., 1., 10., 2., 11.], + [18., 27., 19., 28., 20., 29.], + [3., 12., 4., 13., 5., 14.], + [21., 30., 22., 31., 23., 32.]], + [[36., 45., 37., 46., 38., 47.], + [54., 63., 55., 64., 56., 65.], + [39., 48., 40., 49., 41., 50.], + [57., 66., 58., 67., 59., 68.]]]]).astype(np.float32) + expect(node, inputs=[x], outputs=[y], + name='test_depthtospace_crd_mode_example') diff --git a/third_party/onnx/onnx/backend/test/case/node/dequantizelinear.py b/third_party/onnx/onnx/backend/test/case/node/dequantizelinear.py new file mode 100644 index 000000000..3a9cbc79c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/dequantizelinear.py @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +import onnx +from ..base import Base +from . import expect + + +class DequantizeLinear(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node('DequantizeLinear', + inputs=['x', 'x_scale', 'x_zero_point'], + outputs=['y'],) + + # scalar zero point and scale + x = np.array([0, 3, 128, 255]).astype(np.uint8) + x_scale = np.float32(2) + x_zero_point = np.uint8(128) + y = np.array([-256, -250, 0, 254], dtype=np.float32) + + expect(node, inputs=[x, x_scale, x_zero_point], outputs=[y], + name='test_dequantizelinear') + + @staticmethod + def export_axis() -> None: + node = onnx.helper.make_node('DequantizeLinear', + inputs=['x', 'x_scale', 'x_zero_point'], + outputs=['y'],) + + # 1-D tensor zero point and scale of size equal to axis 1 of the input tensor + x = np.array([[[[3, 89], + [34, 200], + [74, 59]], + + [[5, 24], + [24, 87], + [32, 13]], + + [[245, 99], + [4, 142], + [121, 102]], ], ], dtype=np.uint8) + x_scale = np.array([2, 4, 5], dtype=np.float32) + x_zero_point = np.array([84, 24, 196], dtype=np.uint8) + y = (x.astype(np.float32) - x_zero_point.reshape(1, 3, 1, 1).astype(np.float32)) * x_scale.reshape(1, 3, 1, 1) + + expect(node, inputs=[x, x_scale, x_zero_point], outputs=[y], + name='test_dequantizelinear_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/det.py b/third_party/onnx/onnx/backend/test/case/node/det.py new file mode 100644 index 000000000..2f52fe14c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/det.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: Apache-2.0 + +import math + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Det(Base): + + @staticmethod + def export_2d() -> None: + node = onnx.helper.make_node( + 'Det', + inputs=['x'], + outputs=['y'], + ) + + x = np.arange(4).reshape(2, 2).astype(np.float32) + y = np.linalg.det(x) # expect -2 + expect(node, inputs=[x], outputs=[y], + name='test_det_2d') + + @staticmethod + def export_nd() -> None: + node = onnx.helper.make_node( + 'Det', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([[[1, 2], [3, 4]], [[1, 2], [2, 1]], [[1, 3], [3, 1]]]).astype(np.float32) + y = np.linalg.det(x) # expect array([-2., -3., -8.]) + expect(node, inputs=[x], outputs=[y], + name='test_det_nd') diff --git a/third_party/onnx/onnx/backend/test/case/node/div.py b/third_party/onnx/onnx/backend/test/case/node/div.py new file mode 100644 index 000000000..d20734ee2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/div.py @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Div(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Div', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([3, 4]).astype(np.float32) + y = np.array([1, 2]).astype(np.float32) + z = x / y # expected output [3., 2.] + expect(node, inputs=[x, y], outputs=[z], + name='test_div_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.rand(3, 4, 5).astype(np.float32) + 1.0 + z = x / y + expect(node, inputs=[x, y], outputs=[z], + name='test_div') + + x = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) + y = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) + 1 + z = x // y + expect(node, inputs=[x, y], outputs=[z], + name='test_div_uint8') + + @staticmethod + def export_div_broadcast() -> None: + node = onnx.helper.make_node( + 'Div', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.rand(5).astype(np.float32) + 1.0 + z = x / y + expect(node, inputs=[x, y], outputs=[z], + name='test_div_bcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/dropout.py b/third_party/onnx/onnx/backend/test/case/node/dropout.py new file mode 100644 index 000000000..433142376 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/dropout.py @@ -0,0 +1,214 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +import random + +import onnx +from ..base import Base +from . import expect +from onnx import helper + + +def dropout(X, drop_probability=0.5, seed=0, training_mode=False, return_mask=False): # type: ignore + if drop_probability == 0 or training_mode is False: + if return_mask is True: + return X, np.ones(X.shape, dtype=bool) + else: + return X + + np.random.seed(seed) + mask = np.random.uniform(0, 1.0, X.shape) >= drop_probability + scale = (1 / (1 - drop_probability)) + if return_mask is True: + return mask * X * scale, mask.astype(bool) + else: + return mask * X * scale + + +class Dropout(Base): + + # Inferencing tests. + @staticmethod + def export_default() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y'], + seed=seed + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = dropout(x) + expect(node, inputs=[x], outputs=[y], name='test_dropout_default') + + @staticmethod + def export_default_ratio() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r'], + outputs=['y'], + seed=seed + ) + + r = np.float32(0.1) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = dropout(x, r) + expect(node, inputs=[x, r], outputs=[y], name='test_dropout_default_ratio') + + @staticmethod + def export_default_mask() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y', 'z'], + seed=seed + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y, z = dropout(x, return_mask=True) + expect(node, inputs=[x], outputs=[y, z], name='test_dropout_default_mask') + + @staticmethod + def export_default_mask_ratio() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r'], + outputs=['y', 'z'], + seed=seed + ) + + r = np.float32(0.1) + x = np.random.randn(3, 4, 5).astype(np.float32) + y, z = dropout(x, r, return_mask=True) + expect(node, inputs=[x, r], outputs=[y, z], name='test_dropout_default_mask_ratio') + + # Training tests. + + @staticmethod + def export_training_default() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y'], + seed=seed + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + r = np.float32(0.5) + t = np.bool_(True) + y = dropout(x, r, training_mode=t) + expect(node, inputs=[x, r, t], outputs=[y], name='test_training_dropout_default') + + @staticmethod + def export_training_default_ratio_mask() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y', 'z'], + seed=seed + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + r = np.float32(0.5) + t = np.bool_(True) + y, z = dropout(x, r, training_mode=t, return_mask=True) + expect(node, inputs=[x, r, t], outputs=[y, z], name='test_training_dropout_default_mask') + + @staticmethod + def export_training() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y'], + seed=seed + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + r = np.float32(0.75) + t = np.bool_(True) + y = dropout(x, r, training_mode=t) + expect(node, inputs=[x, r, t], outputs=[y], name='test_training_dropout') + + @staticmethod + def export_training_ratio_mask() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y', 'z'], + seed=seed + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + r = np.float32(0.75) + t = np.bool_(True) + y, z = dropout(x, r, training_mode=t, return_mask=True) + expect(node, inputs=[x, r, t], outputs=[y, z], name='test_training_dropout_mask') + + @staticmethod + def export_training_default_zero_ratio() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y'], + seed=seed + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + r = np.float32(0.0) + t = np.bool_(True) + y = dropout(x, r, training_mode=t) + expect(node, inputs=[x, r, t], outputs=[y], name='test_training_dropout_zero_ratio') + + @staticmethod + def export_training_default_zero_ratio_mask() -> None: + seed = np.int64(0) + node = onnx.helper.make_node( + 'Dropout', + inputs=['x', 'r', 't'], + outputs=['y', 'z'], + seed=seed + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + r = np.float32(0.0) + t = np.bool_(True) + y, z = dropout(x, r, training_mode=t, return_mask=True) + expect(node, inputs=[x, r, t], outputs=[y, z], name='test_training_dropout_zero_ratio_mask') + + # Old dropout tests + + @staticmethod + def export_default_old() -> None: + node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = x + expect(node, inputs=[x], outputs=[y], + name='test_dropout_default_old', opset_imports=[helper.make_opsetid("", 11)]) + + @staticmethod + def export_random_old() -> None: + node = onnx.helper.make_node( + 'Dropout', + inputs=['x'], + outputs=['y'], + ratio=.2, + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = x + expect(node, inputs=[x], outputs=[y], + name='test_dropout_random_old', opset_imports=[helper.make_opsetid("", 11)]) diff --git a/third_party/onnx/onnx/backend/test/case/node/dynamicquantizelinear.py b/third_party/onnx/onnx/backend/test/case/node/dynamicquantizelinear.py new file mode 100644 index 000000000..bfa472e07 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/dynamicquantizelinear.py @@ -0,0 +1,54 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from onnx import TensorProto +from ..base import Base +from . import expect + + +class DynamicQuantizeLinear(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node('DynamicQuantizeLinear', + inputs=['x'], + outputs=['y', 'y_scale', 'y_zero_point'], + ) + + # expected scale 0.0196078438 and zero point 153 + X = np.array([0, 2, -3, -2.5, 1.34, 0.5]).astype(np.float32) + x_min = np.minimum(0, np.min(X)) + x_max = np.maximum(0, np.max(X)) + Y_Scale = np.float32((x_max - x_min) / (255 - 0)) # uint8 -> [0, 255] + Y_ZeroPoint = np.clip(round((0 - x_min) / Y_Scale), 0, 255).astype(np.uint8) + Y = np.clip(np.round(X / Y_Scale) + Y_ZeroPoint, 0, 255).astype(np.uint8) + + expect(node, inputs=[X], outputs=[Y, Y_Scale, Y_ZeroPoint], + name='test_dynamicquantizelinear') + + # expected scale 0.0156862754 and zero point 255 + X = np.array([-1.0, -2.1, -1.3, -2.5, -3.34, -4.0]).astype(np.float32) + x_min = np.minimum(0, np.min(X)) + x_max = np.maximum(0, np.max(X)) + Y_Scale = np.float32((x_max - x_min) / (255 - 0)) # uint8 -> [0, 255] + Y_ZeroPoint = np.clip(round((0 - x_min) / Y_Scale), 0, 255).astype(np.uint8) + Y = np.clip(np.round(X / Y_Scale) + Y_ZeroPoint, 0, 255).astype(np.uint8) + + expect(node, inputs=[X], outputs=[Y, Y_Scale, Y_ZeroPoint], + name='test_dynamicquantizelinear_max_adjusted') + + X = np.array([1, 2.1, 1.3, 2.5, + 3.34, 4.0, 1.5, 2.6, + 3.9, 4.0, 3.0, 2.345]).astype(np.float32).reshape((3, 4)) + + # expected scale 0.0156862754 and zero point 0 + x_min = np.minimum(0, np.min(X)) + x_max = np.maximum(0, np.max(X)) + Y_Scale = np.float32((x_max - x_min) / (255 - 0)) # uint8 -> [0, 255] + Y_ZeroPoint = np.clip(round((0 - x_min) / Y_Scale), 0, 255).astype(np.uint8) + Y = np.clip(np.round(X / Y_Scale) + Y_ZeroPoint, 0, 255).astype(np.uint8) + + expect(node, inputs=[X], outputs=[Y, Y_Scale, Y_ZeroPoint], + name='test_dynamicquantizelinear_min_adjusted') diff --git a/third_party/onnx/onnx/backend/test/case/node/einsum.py b/third_party/onnx/onnx/backend/test/case/node/einsum.py new file mode 100644 index 000000000..d5d915c6d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/einsum.py @@ -0,0 +1,94 @@ +# SPDX-License-Identifier: Apache-2.0 + + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from typing import Tuple, Text + + +def einsum_reference_implementation(Eqn: Text, Operands: Tuple[np.ndarray, ...]) -> np.ndarray: + Z = np.einsum(Eqn, *Operands) + return Z + + +class Einsum(Base): + + @staticmethod + def export_einsum_transpose() -> None: + Eqn = 'ij->ji' + node = onnx.helper.make_node( + 'Einsum', + inputs=['x'], + outputs=['y'], + equation=Eqn + ) + + X = np.random.randn(3, 4) + Y = einsum_reference_implementation(Eqn, (X,)) + + expect(node, inputs=[X], outputs=[Y], name='test_einsum_transpose') + + @staticmethod + def export_einsum_sum() -> None: + Eqn = 'ij->i' + node = onnx.helper.make_node( + 'Einsum', + inputs=['x'], + outputs=['y'], + equation=Eqn + ) + + X = np.random.randn(3, 4) + Z = einsum_reference_implementation(Eqn, (X,)) + + expect(node, inputs=[X], outputs=[Z], name='test_einsum_sum') + + @staticmethod + def export_einsum_batch_diagonal() -> None: + Eqn = '...ii ->...i' + node = onnx.helper.make_node( + 'Einsum', + inputs=['x'], + outputs=['y'], + equation=Eqn + ) + + X = np.random.randn(3, 5, 5) + Z = einsum_reference_implementation(Eqn, (X,)) + + expect(node, inputs=[X], outputs=[Z], name='test_einsum_batch_diagonal') + + @staticmethod + def export_einsum_inner_prod() -> None: + Eqn = 'i,i' + node = onnx.helper.make_node( + 'Einsum', + inputs=['x', 'y'], + outputs=['z'], + equation=Eqn + ) + + X = np.random.randn(5) + Y = np.random.randn(5) + Z = einsum_reference_implementation(Eqn, (X, Y)) + + expect(node, inputs=[X, Y], outputs=[Z], name='test_einsum_inner_prod') + + @staticmethod + def export_einsum_batch_matmul() -> None: + Eqn = 'bij, bjk -> bik' + node = onnx.helper.make_node( + 'Einsum', + inputs=['x', 'y'], + outputs=['z'], + equation=Eqn + ) + + X = np.random.randn(5, 2, 3) + Y = np.random.randn(5, 3, 4) + Z = einsum_reference_implementation(Eqn, (X, Y)) + + expect(node, inputs=[X, Y], outputs=[Z], name='test_einsum_batch_matmul') diff --git a/third_party/onnx/onnx/backend/test/case/node/elu.py b/third_party/onnx/onnx/backend/test/case/node/elu.py new file mode 100644 index 000000000..a06871c5c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/elu.py @@ -0,0 +1,43 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Elu(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Elu', + inputs=['x'], + outputs=['y'], + alpha=2.0 + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + # expected output [-1.2642411, 0., 1.] + y = np.clip(x, 0, np.inf) + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 + expect(node, inputs=[x], outputs=[y], + name='test_elu_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, 0, np.inf) + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 + expect(node, inputs=[x], outputs=[y], + name='test_elu') + + @staticmethod + def export_elu_default() -> None: + default_alpha = 1.0 + node = onnx.helper.make_node( + 'Elu', + inputs=['x'], + outputs=['y'], + ) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, 0, np.inf) + (np.exp(np.clip(x, -np.inf, 0)) - 1) * default_alpha + expect(node, inputs=[x], outputs=[y], + name='test_elu_default') diff --git a/third_party/onnx/onnx/backend/test/case/node/equal.py b/third_party/onnx/onnx/backend/test/case/node/equal.py new file mode 100644 index 000000000..37be9de84 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/equal.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Equal(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Equal', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = (np.random.randn(3, 4, 5) * 10).astype(np.int32) + y = (np.random.randn(3, 4, 5) * 10).astype(np.int32) + z = np.equal(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_equal') + + @staticmethod + def export_equal_broadcast() -> None: + node = onnx.helper.make_node( + 'Equal', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = (np.random.randn(3, 4, 5) * 10).astype(np.int32) + y = (np.random.randn(5) * 10).astype(np.int32) + z = np.equal(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_equal_bcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/erf.py b/third_party/onnx/onnx/backend/test/case/node/erf.py new file mode 100644 index 000000000..29432e89e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/erf.py @@ -0,0 +1,25 @@ +# SPDX-License-Identifier: Apache-2.0 + +import math + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Erf(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Erf', + inputs=['x'], + outputs=['y'], + ) + + x = np.random.randn(1, 3, 32, 32).astype(np.float32) + y = np.vectorize(math.erf)(x).astype(np.float32) + expect(node, inputs=[x], outputs=[y], + name='test_erf') diff --git a/third_party/onnx/onnx/backend/test/case/node/exp.py b/third_party/onnx/onnx/backend/test/case/node/exp.py new file mode 100644 index 000000000..0fd3a3205 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/exp.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Exp(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Exp', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.exp(x) # expected output [0.36787945, 1., 2.71828175] + expect(node, inputs=[x], outputs=[y], + name='test_exp_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.exp(x) + expect(node, inputs=[x], outputs=[y], + name='test_exp') diff --git a/third_party/onnx/onnx/backend/test/case/node/expand.py b/third_party/onnx/onnx/backend/test/case/node/expand.py new file mode 100644 index 000000000..341f05937 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/expand.py @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Expand(Base): + + @staticmethod + def export_dim_changed() -> None: + node = onnx.helper.make_node( + 'Expand', + inputs=['data', 'new_shape'], + outputs=['expanded'], + ) + shape = [3, 1] + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + #print(data) + #[[1.], [2.], [3.]] + new_shape = [2, 1, 6] + expanded = data * np.ones(new_shape, dtype=np.float32) + #print(expanded) + #[[[1., 1., 1., 1., 1., 1.], + # [2., 2., 2., 2., 2., 2.], + # [3., 3., 3., 3., 3., 3.]], + # + # [[1., 1., 1., 1., 1., 1.], + # [2., 2., 2., 2., 2., 2.], + # [3., 3., 3., 3., 3., 3.]]] + new_shape = np.array(new_shape, dtype=np.int64) + expect(node, inputs=[data, new_shape], outputs=[expanded], + name='test_expand_dim_changed') + + @staticmethod + def export_dim_unchanged() -> None: + node = onnx.helper.make_node( + 'Expand', + inputs=['data', 'new_shape'], + outputs=['expanded'], + ) + shape = [3, 1] + new_shape = [3, 4] + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + #print(data) + #[[1.], [2.], [3.]] + expanded = np.tile(data, 4) + #print(expanded) + #[[1., 1., 1., 1.], + # [2., 2., 2., 2.], + # [3., 3., 3., 3.]] + new_shape = np.array(new_shape, dtype=np.int64) + expect(node, inputs=[data, new_shape], outputs=[expanded], + name='test_expand_dim_unchanged') diff --git a/third_party/onnx/onnx/backend/test/case/node/eyelike.py b/third_party/onnx/onnx/backend/test/case/node/eyelike.py new file mode 100644 index 000000000..c9ef58c32 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/eyelike.py @@ -0,0 +1,53 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class EyeLike(Base): + + @staticmethod + def export_without_dtype() -> None: + shape = (4, 4) + node = onnx.helper.make_node( + 'EyeLike', + inputs=['x'], + outputs=['y'], + ) + + x = np.random.randint(0, 100, size=shape, dtype=np.int32) + y = np.eye(shape[0], shape[1], dtype=np.int32) + expect(node, inputs=[x], outputs=[y], name='test_eyelike_without_dtype') + + @staticmethod + def export_with_dtype() -> None: + shape = (3, 4) + node = onnx.helper.make_node( + 'EyeLike', + inputs=['x'], + outputs=['y'], + dtype=onnx.TensorProto.DOUBLE, + ) + + x = np.random.randint(0, 100, size=shape, dtype=np.int32) + y = np.eye(shape[0], shape[1], dtype=np.float64) + expect(node, inputs=[x], outputs=[y], name='test_eyelike_with_dtype') + + @staticmethod + def export_populate_off_main_diagonal() -> None: + shape = (4, 5) + off_diagonal_offset = 1 + node = onnx.helper.make_node( + 'EyeLike', + inputs=['x'], + outputs=['y'], + k=off_diagonal_offset, + dtype=onnx.TensorProto.FLOAT, + ) + + x = np.random.randint(0, 100, size=shape, dtype=np.int32) + y = np.eye(shape[0], shape[1], k=off_diagonal_offset, dtype=np.float32) + expect(node, inputs=[x], outputs=[y], name='test_eyelike_populate_off_main_diagonal') diff --git a/third_party/onnx/onnx/backend/test/case/node/flatten.py b/third_party/onnx/onnx/backend/test/case/node/flatten.py new file mode 100644 index 000000000..0da7cc9ea --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/flatten.py @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Flatten(Base): + + @staticmethod + def export() -> None: + shape = (2, 3, 4, 5) + a = np.random.random_sample(shape).astype(np.float32) + + for i in range(len(shape)): + node = onnx.helper.make_node( + 'Flatten', + inputs=['a'], + outputs=['b'], + axis=i, + ) + + new_shape = (1, -1) if i == 0 else (np.prod(shape[0:i]).astype(int), -1) + b = np.reshape(a, new_shape) + expect(node, inputs=[a], outputs=[b], + name='test_flatten_axis' + str(i)) + + @staticmethod + def export_flatten_with_default_axis() -> None: + node = onnx.helper.make_node( + 'Flatten', + inputs=['a'], + outputs=['b'], # Default value for axis: axis=1 + ) + + shape = (5, 4, 3, 2) + a = np.random.random_sample(shape).astype(np.float32) + new_shape = (5, 24) + b = np.reshape(a, new_shape) + expect(node, inputs=[a], outputs=[b], + name='test_flatten_default_axis') + + @staticmethod + def export_flatten_negative_axis() -> None: + shape = (2, 3, 4, 5) + a = np.random.random_sample(shape).astype(np.float32) + + for i in range(-len(shape), 0): + node = onnx.helper.make_node( + 'Flatten', + inputs=['a'], + outputs=['b'], + axis=i, + ) + + new_shape = (np.prod(shape[0:i]).astype(int), -1) + b = np.reshape(a, new_shape) + expect(node, inputs=[a], outputs=[b], + name='test_flatten_negative_axis' + str(abs(i))) diff --git a/third_party/onnx/onnx/backend/test/case/node/floor.py b/third_party/onnx/onnx/backend/test/case/node/floor.py new file mode 100644 index 000000000..2b922c5c6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/floor.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Floor(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Floor', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1.5, 1.2, 2]).astype(np.float32) + y = np.floor(x) # expected output [-2., 1., 2.] + expect(node, inputs=[x], outputs=[y], + name='test_floor_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.floor(x) + expect(node, inputs=[x], outputs=[y], + name='test_floor') diff --git a/third_party/onnx/onnx/backend/test/case/node/gather.py b/third_party/onnx/onnx/backend/test/case/node/gather.py new file mode 100644 index 000000000..a5150ab0d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/gather.py @@ -0,0 +1,73 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Gather(Base): + + @staticmethod + def export_gather_0() -> None: + node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=0, + ) + data = np.random.randn(5, 4, 3, 2).astype(np.float32) + indices = np.array([0, 1, 3]) + y = np.take(data, indices, axis=0) + + expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_0') + + @staticmethod + def export_gather_1() -> None: + node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=1, + ) + data = np.random.randn(5, 4, 3, 2).astype(np.float32) + indices = np.array([0, 1, 3]) + y = np.take(data, indices, axis=1) + + expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_1') + + @staticmethod + def export_gather_2d_indices() -> None: + node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=1, + ) + data = np.random.randn(3, 3).astype(np.float32) + indices = np.array([[0, 2]]) + y = np.take(data, indices, axis=1) + + expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_2d_indices') + + @staticmethod + def export_gather_negative_indices() -> None: + node = onnx.helper.make_node( + 'Gather', + inputs=['data', 'indices'], + outputs=['y'], + axis=0, + ) + data = np.arange(10).astype(np.float32) + indices = np.array([0, -9, -10]) + y = np.take(data, indices, axis=0) + + # print(y) + # [0. 1. 0.] + + expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_negative_indices') diff --git a/third_party/onnx/onnx/backend/test/case/node/gatherelements.py b/third_party/onnx/onnx/backend/test/case/node/gatherelements.py new file mode 100644 index 000000000..ce313fbf1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/gatherelements.py @@ -0,0 +1,87 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +# The below GatherElements' numpy implementation is from https://stackoverflow.com/a/46204790/11767360 +def gather_elements(data, indices, axis=0): # type: ignore + data_swaped = np.swapaxes(data, 0, axis) + index_swaped = np.swapaxes(indices, 0, axis) + gathered = np.choose(index_swaped, data_swaped, mode='wrap') + y = np.swapaxes(gathered, 0, axis) + return y + + +class GatherElements(Base): + + @staticmethod + def export_gather_elements_0() -> None: + axis = 1 + node = onnx.helper.make_node( + 'GatherElements', + inputs=['data', 'indices'], + outputs=['y'], + axis=axis, + ) + data = np.array([[1, 2], + [3, 4]], dtype=np.float32) + indices = np.array([[0, 0], + [1, 0]], dtype=np.int32) + + y = gather_elements(data, indices, axis) + # print(y) produces + # [[1, 1], + # [4, 3]] + + expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_elements_0') + + @staticmethod + def export_gather_elements_1() -> None: + axis = 0 + node = onnx.helper.make_node( + 'GatherElements', + inputs=['data', 'indices'], + outputs=['y'], + axis=axis, + ) + data = np.array([[1, 2, 3], + [4, 5, 6], + [7, 8, 9]], dtype=np.float32) + indices = np.array([[1, 2, 0], + [2, 0, 0]], dtype=np.int32) + + y = gather_elements(data, indices, axis) + # print(y) produces + # [[4, 8, 3], + # [7, 2, 3]] + + expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_elements_1') + + @staticmethod + def export_gather_elements_negative_indices() -> None: + axis = 0 + node = onnx.helper.make_node( + 'GatherElements', + inputs=['data', 'indices'], + outputs=['y'], + axis=axis, + ) + data = np.array([[1, 2, 3], + [4, 5, 6], + [7, 8, 9]], dtype=np.float32) + indices = np.array([[-1, -2, 0], + [-2, 0, 0]], dtype=np.int32) + + y = gather_elements(data, indices, axis) + # print(y) produces + # [[7, 5, 3], + # [4, 2, 3]] + + expect(node, inputs=[data, indices.astype(np.int64)], outputs=[y], + name='test_gather_elements_negative_indices') diff --git a/third_party/onnx/onnx/backend/test/case/node/gathernd.py b/third_party/onnx/onnx/backend/test/case/node/gathernd.py new file mode 100644 index 000000000..e81aeee18 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/gathernd.py @@ -0,0 +1,100 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def gather_nd_impl(data: np.ndarray, indices: np.ndarray, batch_dims: int) -> np.ndarray: + # Note the data rank - will be reused multiple times later + data_rank = len(data.shape) + + # Check input tensors' shape/rank condition + assert indices.shape[-1] <= data_rank + + #The list of data/indice shape of batch_dims + batch_dims_shape = [] + + #The number of elements in the batch_dims for data/indice array + batch_dims_size = 1 + + # Check the shape of indice and data are identicial for batch dims. + for i in range(batch_dims): + batch_dims_shape.append(indices.shape[i]) + batch_dims_size *= indices.shape[i] + + # Compute output of the op as below + + # Compute shape of output array + output_shape = batch_dims_shape + list(indices.shape)[batch_dims:-1] if (indices.shape[-1] == data_rank - batch_dims) \ + else batch_dims_shape + list(indices.shape)[batch_dims:-1] + list(data.shape)[batch_dims + indices.shape[-1]:] + + # Placeholder for output data + output_data_buffer = [] + + # Flatten 'indices' to 2D array + reshaped_indices = indices.reshape(batch_dims_size, -1, indices.shape[-1]) + + # Flatten 'data' to array of shape (batch_dim_size, data.shape[batch_dimes:]) + reshaped_data = data.reshape((batch_dims_size, ) + data.shape[batch_dims:]) + + # gather each scalar value from 'data' + for batch_dim in range(reshaped_indices.shape[0]): + for outer_dim in range(reshaped_indices.shape[1]): + gather_index = tuple(reshaped_indices[batch_dim][outer_dim]) + output_data_buffer.append(reshaped_data[(batch_dim,) + gather_index]) + return np.asarray(output_data_buffer, dtype=data.dtype).reshape(output_shape) + + +class GatherND(Base): + + @staticmethod + def export_int32() -> None: + node = onnx.helper.make_node( + 'GatherND', + inputs=['data', 'indices'], + outputs=['output'], + ) + + data = np.array([[0, 1], [2, 3]], dtype=np.int32) + indices = np.array([[0, 0], [1, 1]], dtype=np.int64) + output = gather_nd_impl(data, indices, 0) + expected_output = np.array([0, 3], dtype=np.int32) + assert (np.array_equal(output, expected_output)) + expect(node, inputs=[data, indices], outputs=[output], + name='test_gathernd_example_int32') + + @staticmethod + def export_float32() -> None: + node = onnx.helper.make_node( + 'GatherND', + inputs=['data', 'indices'], + outputs=['output'], + ) + + data = np.array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]], dtype=np.float32) + indices = np.array([[[0, 1]], [[1, 0]]], dtype=np.int64) + output = gather_nd_impl(data, indices, 0) + expected_output = np.array([[[2, 3]], [[4, 5]]], dtype=np.float32) + assert (np.array_equal(output, expected_output)) + expect(node, inputs=[data, indices], outputs=[output], + name='test_gathernd_example_float32') + + @staticmethod + def export_int32_batchdim_1() -> None: + node = onnx.helper.make_node( + 'GatherND', + inputs=['data', 'indices'], + outputs=['output'], + batch_dims=1, + ) + + data = np.array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]], dtype=np.int32) + indices = np.array([[1], [0]], dtype=np.int64) + output = gather_nd_impl(data, indices, 1) + expected_output = np.array([[2, 3], [4, 5]], dtype=np.int32) + assert (np.array_equal(output, expected_output)) + expect(node, inputs=[data, indices], outputs=[output], + name='test_gathernd_example_int32_batch_dim1') diff --git a/third_party/onnx/onnx/backend/test/case/node/gemm.py b/third_party/onnx/onnx/backend/test/case/node/gemm.py new file mode 100644 index 000000000..2f025fa0b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/gemm.py @@ -0,0 +1,183 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +from typing import Optional + +import onnx +from ..base import Base +from . import expect + + +def gemm_reference_implementation(A: np.ndarray, B: np.ndarray, C: Optional[np.ndarray] = None, alpha: float = 1., beta: float = 1., transA: int = 0, + transB: int = 0) -> np.ndarray: + A = A if transA == 0 else A.T + B = B if transB == 0 else B.T + C = C if C is not None else np.array(0) + + Y = alpha * np.dot(A, B) + beta * C + + return Y + + +class Gemm(Base): + + @staticmethod + def export_default_zero_bias() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] + ) + a = np.random.ranf([3, 5]).astype(np.float32) + b = np.random.ranf([5, 4]).astype(np.float32) + c = np.zeros([1, 4]).astype(np.float32) + y = gemm_reference_implementation(a, b, c) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_zero_bias') + + @staticmethod + def export_default_no_bias() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b'], + outputs=['y'] + ) + a = np.random.ranf([2, 10]).astype(np.float32) + b = np.random.ranf([10, 3]).astype(np.float32) + y = gemm_reference_implementation(a, b) + expect(node, inputs=[a, b], outputs=[y], + name='test_gemm_default_no_bias') + + @staticmethod + def export_default_scalar_bias() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] + ) + a = np.random.ranf([2, 3]).astype(np.float32) + b = np.random.ranf([3, 4]).astype(np.float32) + c = np.array(3.14).astype(np.float32) + y = gemm_reference_implementation(a, b, c) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_scalar_bias') + + @staticmethod + def export_default_single_elem_vector_bias() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] + ) + a = np.random.ranf([3, 7]).astype(np.float32) + b = np.random.ranf([7, 3]).astype(np.float32) + c = np.random.ranf([1]).astype(np.float32) + y = gemm_reference_implementation(a, b, c) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_single_elem_vector_bias') + + @staticmethod + def export_default_vector_bias() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] + ) + a = np.random.ranf([2, 7]).astype(np.float32) + b = np.random.ranf([7, 4]).astype(np.float32) + c = np.random.ranf([1, 4]).astype(np.float32) + y = gemm_reference_implementation(a, b, c) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_vector_bias') + + @staticmethod + def export_default_matrix_bias() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'] + ) + a = np.random.ranf([3, 6]).astype(np.float32) + b = np.random.ranf([6, 4]).astype(np.float32) + c = np.random.ranf([3, 4]).astype(np.float32) + y = gemm_reference_implementation(a, b, c) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_default_matrix_bias') + + @staticmethod + def export_transposeA() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + transA=1 + ) + a = np.random.ranf([6, 3]).astype(np.float32) + b = np.random.ranf([6, 4]).astype(np.float32) + c = np.zeros([1, 4]).astype(np.float32) + y = gemm_reference_implementation(a, b, c, transA=1) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_transposeA') + + @staticmethod + def export_transposeB() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + transB=1 + ) + a = np.random.ranf([3, 6]).astype(np.float32) + b = np.random.ranf([4, 6]).astype(np.float32) + c = np.zeros([1, 4]).astype(np.float32) + y = gemm_reference_implementation(a, b, c, transB=1) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_transposeB') + + @staticmethod + def export_alpha() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + alpha=0.5 + ) + a = np.random.ranf([3, 5]).astype(np.float32) + b = np.random.ranf([5, 4]).astype(np.float32) + c = np.zeros([1, 4]).astype(np.float32) + y = gemm_reference_implementation(a, b, c, alpha=0.5) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_alpha') + + @staticmethod + def export_beta() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + beta=0.5 + ) + a = np.random.ranf([2, 7]).astype(np.float32) + b = np.random.ranf([7, 4]).astype(np.float32) + c = np.random.ranf([1, 4]).astype(np.float32) + y = gemm_reference_implementation(a, b, c, beta=0.5) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_beta') + + @staticmethod + def export_all_attributes() -> None: + node = onnx.helper.make_node( + 'Gemm', + inputs=['a', 'b', 'c'], + outputs=['y'], + alpha=0.25, + beta=0.35, + transA=1, + transB=1 + ) + a = np.random.ranf([4, 3]).astype(np.float32) + b = np.random.ranf([5, 4]).astype(np.float32) + c = np.random.ranf([1, 5]).astype(np.float32) + y = gemm_reference_implementation(a, b, c, transA=1, transB=1, alpha=0.25, beta=0.35) + expect(node, inputs=[a, b, c], outputs=[y], + name='test_gemm_all_attributes') diff --git a/third_party/onnx/onnx/backend/test/case/node/globalaveragepool.py b/third_party/onnx/onnx/backend/test/case/node/globalaveragepool.py new file mode 100644 index 000000000..b15407c2b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/globalaveragepool.py @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class GlobalAveragePool(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'GlobalAveragePool', + inputs=['x'], + outputs=['y'], + ) + x = np.random.randn(1, 3, 5, 5).astype(np.float32) + y = np.mean(x, axis=tuple(range(2, np.ndim(x))), keepdims=True) + expect(node, inputs=[x], outputs=[y], name='test_globalaveragepool') + + @staticmethod + def export_globalaveragepool_precomputed() -> None: + + node = onnx.helper.make_node( + 'GlobalAveragePool', + inputs=['x'], + outputs=['y'], + ) + x = np.array([[[ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], + ]]]).astype(np.float32) + y = np.array([[[[5]]]]).astype(np.float32) + expect(node, inputs=[x], outputs=[y], name='test_globalaveragepool_precomputed') diff --git a/third_party/onnx/onnx/backend/test/case/node/globalmaxpool.py b/third_party/onnx/onnx/backend/test/case/node/globalmaxpool.py new file mode 100644 index 000000000..888fdba96 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/globalmaxpool.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class GlobalMaxPool(Base): + + @staticmethod + def export() -> None: + + node = onnx.helper.make_node( + 'GlobalMaxPool', + inputs=['x'], + outputs=['y'], + ) + x = np.random.randn(1, 3, 5, 5).astype(np.float32) + y = np.max(x, axis=tuple(range(2, np.ndim(x))), keepdims=True) + expect(node, inputs=[x], outputs=[y], name='test_globalmaxpool') + + @staticmethod + def export_globalmaxpool_precomputed() -> None: + + node = onnx.helper.make_node( + 'GlobalMaxPool', + inputs=['x'], + outputs=['y'], + ) + x = np.array([[[ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], + ]]]).astype(np.float32) + y = np.array([[[[9]]]]).astype(np.float32) + expect(node, inputs=[x], outputs=[y], name='test_globalmaxpool_precomputed') diff --git a/third_party/onnx/onnx/backend/test/case/node/greater.py b/third_party/onnx/onnx/backend/test/case/node/greater.py new file mode 100644 index 000000000..2a282efba --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/greater.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Greater(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Greater', + inputs=['x', 'y'], + outputs=['greater'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(3, 4, 5).astype(np.float32) + z = np.greater(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_greater') + + @staticmethod + def export_greater_broadcast() -> None: + node = onnx.helper.make_node( + 'Greater', + inputs=['x', 'y'], + outputs=['greater'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(5).astype(np.float32) + z = np.greater(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_greater_bcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/greater_equal.py b/third_party/onnx/onnx/backend/test/case/node/greater_equal.py new file mode 100644 index 000000000..25133430f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/greater_equal.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Greater(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'GreaterOrEqual', + inputs=['x', 'y'], + outputs=['greater_equal'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(3, 4, 5).astype(np.float32) + z = np.greater_equal(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_greater_equal') + + @staticmethod + def export_greater_broadcast() -> None: + node = onnx.helper.make_node( + 'GreaterOrEqual', + inputs=['x', 'y'], + outputs=['greater_equal'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(5).astype(np.float32) + z = np.greater_equal(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_greater_equal_bcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/gridsample.py b/third_party/onnx/onnx/backend/test/case/node/gridsample.py new file mode 100644 index 000000000..18e878516 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/gridsample.py @@ -0,0 +1,374 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class GridSample(Base): + + @staticmethod + def export_gridsample() -> None: + node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', + padding_mode='zeros', + align_corners=0, + ) + # X shape, [N, C, H, W] - [1, 1, 4, 4] + X = np.array( + [ + [ + [ + [0., 1., 2., 3.], + [4., 5., 6., 7.], + [8., 9., 10., 11.], + [12., 13., 14., 15.] + ] + ] + ], + dtype=np.float32, + ) + # Grid shape, [N, H_out, W_out, 2] - [1, 6, 6, 2] + Grid = np.array( + [ + [ + [ + [-1.0000, -1.0000], + [-0.6000, -1.0000], + [-0.2000, -1.0000], + [0.2000, -1.0000], + [0.6000, -1.0000], + [1.0000, -1.0000] + ], + [ + [-1.0000, -0.6000], + [-0.6000, -0.6000], + [-0.2000, -0.6000], + [0.2000, -0.6000], + [0.6000, -0.6000], + [1.0000, -0.6000] + ], + [ + [-1.0000, -0.2000], + [-0.6000, -0.2000], + [-0.2000, -0.2000], + [0.2000, -0.2000], + [0.6000, -0.2000], + [1.0000, -0.2000] + ], + [ + [-1.0000, 0.2000], + [-0.6000, 0.2000], + [-0.2000, 0.2000], + [0.2000, 0.2000], + [0.6000, 0.2000], + [1.0000, 0.2000] + ], + [ + [-1.0000, 0.6000], + [-0.6000, 0.6000], + [-0.2000, 0.6000], + [0.2000, 0.6000], + [0.6000, 0.6000], + [1.0000, 0.6000] + ], + [ + [-1.0000, 1.0000], + [-0.6000, 1.0000], + [-0.2000, 1.0000], + [0.2000, 1.0000], + [0.6000, 1.0000], + [1.0000, 1.0000] + ] + ] + ], + dtype=np.float32, + ) + # Y shape, [N, C, H_out, W_out] - [1, 1, 6, 6] + Y = np.array( + [ + [ + [ + [0.0000, 0.1500, 0.5500, 0.9500, 1.3500, 0.7500], + [0.6000, 1.5000, 2.3000, 3.1000, 3.9000, 2.1000], + [2.2000, 4.7000, 5.5000, 6.3000, 7.1000, 3.7000], + [3.8000, 7.9000, 8.7000, 9.5000, 10.3000, 5.3000], + [5.4000, 11.1000, 11.9000, 12.7000, 13.5000, 6.9000], + [3.0000, 6.1500, 6.5500, 6.9500, 7.3500, 3.7500] + ] + ] + ], + dtype=np.float32, + ) + expect(node, inputs=[X, Grid], outputs=[Y], + name='test_gridsample') + + @staticmethod + def export_gridsample_paddingmode() -> None: + # X shape, [N, C, H, W] - [1, 1, 3, 2] + X = np.array( + [ + [ + [ + [0., 1.], + [2., 3.], + [4., 5.] + ] + ] + ], + dtype=np.float32, + ) + # Grid shape, [N, H_out, W_out, 2] - [1, 2, 4, 2] + Grid = np.array( + [ + [ + [ + [-10.0000, -10.0000], + [-5.0000, -5.0000], + [-0.2000, -0.2000], + [10.0000, 10.0000] + ], + + [ + [10.0000, 10.0000], + [-0.2000, -0.2000], + [5.0000, 5.0000], + [10.0000, 10.0000] + ] + ] + ], + dtype=np.float32, + ) + + # setting padding_mode = 'zeros' + node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + padding_mode='zeros', + ) + # Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] + Y_zeros = np.array( + [ + [ + [ + [0.0000, 0.0000, 1.7000, 0.0000], + [0.0000, 1.7000, 0.0000, 0.0000] + ] + ] + ], + dtype=np.float32, + ) + + expect(node, inputs=[X, Grid], outputs=[Y_zeros], + name='test_gridsample_zeros_padding') + + # setting padding_mode = 'border' + node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + padding_mode='border', + ) + # Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] + Y_border = np.array( + [ + [ + [ + [0.0000, 0.0000, 1.7000, 5.0000], + [5.0000, 1.7000, 5.0000, 5.0000] + ] + ] + ], + dtype=np.float32, + ) + + expect(node, inputs=[X, Grid], outputs=[Y_border], + name='test_gridsample_border_padding') + + # setting padding_mode = 'reflection' + node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + padding_mode='reflection', + ) + # Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] + Y_reflection = np.array( + [ + [ + [ + [2.5000, 0.0000, 1.7000, 2.5000], + [2.5000, 1.7000, 5.0000, 2.5000] + ] + ] + ], + dtype=np.float32, + ) + + expect(node, inputs=[X, Grid], outputs=[Y_reflection], + name='test_gridsample_reflection_padding') + + @staticmethod + def export_gridsample_mode_aligncorners() -> None: + # X shape, [N, C, H, W] - [1, 1, 3, 2] + X = np.array( + [ + [ + [ + [0., 1.], + [2., 3.], + [4., 5.] + ] + ] + ], + dtype=np.float32, + ) + # Grid shape, [N, H_out, W_out, 2] - [1, 2, 4, 2] + Grid = np.array( + [ + [ + [ + [-1.0000, -1.0000], + [-0.5000, -0.5000], + [-0.2000, -0.2000], + [0.0000, 0.0000] + ], + + [ + [0.0000, 0.0000], + [-0.2000, -0.2000], + [0.5000, 0.5000], + [1.0000, 1.0000] + ] + ] + ], + dtype=np.float32, + ) + + # setting mode = 'bilinear', default align_corners = 0 + node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', + ) + # Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] + Y_bilinear = np.array( + [ + [ + [ + [0.0000, 0.5000, 1.7000, 2.5000], + [2.5000, 1.7000, 4.5000, 1.2500] + ] + ] + ], + dtype=np.float32, + ) + + expect(node, inputs=[X, Grid], outputs=[Y_bilinear], + name='test_gridsample_bilinear') + + # setting mode = 'bilinear', align_corners = 1 + node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', + align_corners=1, + ) + # Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] + Y_align_corners = np.array( + [ + [ + [ + [0.0000, 1.2500, 2.0000, 2.5000], + [2.5000, 2.0000, 3.7500, 5.0000] + ] + ] + ], + dtype=np.float32, + ) + + expect(node, inputs=[X, Grid], outputs=[Y_align_corners], + name='test_gridsample_aligncorners_true') + + # setting mode = 'nearest' + node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='nearest', + ) + # Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] + Y_nearest = np.array( + [ + [ + [ + [0., 0., 2., 2.], + [2., 2., 5., 0.] + ] + ] + ], + dtype=np.float32, + ) + + expect(node, inputs=[X, Grid], outputs=[Y_nearest], + name='test_gridsample_nearest') + + # setting mode = 'bicubic' + node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bicubic', + ) + # Y shape, [N, C, H_out, W_out] - [1, 1, 2, 4] + Y_bicubic = np.array( + [ + [ + [ + [-0.1406, 0.3828, 1.7556, 2.9688], + [2.9688, 1.7556, 5.1445, 1.3906] + ] + ] + ], + dtype=np.float32, + ) + + expect(node, inputs=[X, Grid], outputs=[Y_bicubic], + name='test_gridsample_bicubic') + + ''' + For someone who want to test by script. Comment it cause github ONNX CI + do not have the torch python package. + @staticmethod + def export_gridsample_torch(): # type: () -> None + node = onnx.helper.make_node( + 'GridSample', + inputs=['X', 'Grid'], + outputs=['Y'], + mode='bilinear', + padding_mode='zeros', + align_corners=0, + ) + + # X shape, [N, C, H, W] - [1, 1, 4, 4] + # Grid shape, [N, H_out, W_out, 2] - [1, 6, 6, 2] + # Y shape, [N, C, H_out, W_out] - [1, 1, 6, 6] + import torch + X = torch.arange(3 * 3).view(1, 1, 3, 3).float() + d = torch.linspace(-1, 1, 6) + meshx, meshy = torch.meshgrid((d, d)) + grid = torch.stack((meshy, meshx), 2) + Grid = grid.unsqueeze(0) + Y = torch.nn.functional.grid_sample(X, Grid, mode='bilinear', + padding_mode='zeros', align_corners=False) + expect(node, inputs=[X.numpy(), Grid.numpy()], outputs=[Y.numpy()], + name='test_gridsample_torch') + ''' diff --git a/third_party/onnx/onnx/backend/test/case/node/gru.py b/third_party/onnx/onnx/backend/test/case/node/gru.py new file mode 100644 index 000000000..feafc1cd4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/gru.py @@ -0,0 +1,207 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +from typing import Any, Tuple + +import onnx +from ..base import Base +from . import expect + + +class GRU_Helper(): + def __init__(self, **params: Any) -> None: + # GRU Input Names + X = str('X') + W = str('W') + R = str('R') + B = str('B') + H_0 = str('initial_h') + LBR = str('linear_before_reset') + LAYOUT = str('layout') + number_of_gates = 3 + + required_inputs = [X, W, R] + for i in required_inputs: + assert i in params, "Missing Required Input: {0}".format(i) + + self.num_directions = params[W].shape[0] + + if self.num_directions == 1: + for k in params.keys(): + if k != X: + params[k] = np.squeeze(params[k], axis=0) + + hidden_size = params[R].shape[-1] + batch_size = params[X].shape[1] + + layout = params[LAYOUT] if LAYOUT in params else 0 + x = params[X] + x = x if layout == 0 else np.swapaxes(x, 0, 1) + b = params[B] if B in params else np.zeros(2 * number_of_gates * hidden_size) + h_0 = params[H_0] if H_0 in params else np.zeros((batch_size, hidden_size)) + lbr = params[LBR] if LBR in params else 0 + + self.X = x + self.W = params[W] + self.R = params[R] + self.B = b + self.H_0 = h_0 + self.LBR = lbr + self.LAYOUT = layout + + else: + raise NotImplementedError() + + def f(self, x: np.ndarray) -> np.ndarray: + return 1 / (1 + np.exp(-x)) + + def g(self, x: np.ndarray) -> np.ndarray: + return np.tanh(x) + + def step(self) -> Tuple[np.ndarray, np.ndarray]: + seq_length = self.X.shape[0] + hidden_size = self.H_0.shape[-1] + batch_size = self.X.shape[1] + + Y = np.empty([seq_length, self.num_directions, batch_size, hidden_size]) + h_list = [] + + [w_z, w_r, w_h] = np.split(self.W, 3) + [r_z, r_r, r_h] = np.split(self.R, 3) + [w_bz, w_br, w_bh, r_bz, r_br, r_bh] = np.split(self.B, 6) + gates_w = np.transpose(np.concatenate((w_z, w_r))) + gates_r = np.transpose(np.concatenate((r_z, r_r))) + gates_b = np.add(np.concatenate((w_bz, w_br)), np.concatenate((r_bz, r_br))) + + H_t = self.H_0 + for x in np.split(self.X, self.X.shape[0], axis=0): + gates = np.dot(x, gates_w) + np.dot(H_t, gates_r) + gates_b + z, r = np.split(gates, 2, -1) + z = self.f(z) + r = self.f(r) + h_default = self.g(np.dot(x, np.transpose(w_h)) + np.dot(r * H_t, np.transpose(r_h)) + w_bh + r_bh) + h_linear = self.g(np.dot(x, np.transpose(w_h)) + r * (np.dot(H_t, np.transpose(r_h)) + r_bh) + w_bh) + h = h_linear if self.LBR else h_default + H = (1 - z) * h + z * H_t + h_list.append(H) + H_t = H + + concatenated = np.concatenate(h_list) + if self.num_directions == 1: + Y[:, 0, :, :] = concatenated + + if self.LAYOUT == 0: + Y_h = Y[-1] + else: + Y = np.transpose(Y, [2, 0, 1, 3]) + Y_h = Y[:, :, -1, :] + + return Y, Y_h + + +class GRU(Base): + + @staticmethod + def export_defaults() -> None: + input = np.array([[[1., 2.], [3., 4.], [5., 6.]]]).astype(np.float32) + + input_size = 2 + hidden_size = 5 + weight_scale = 0.1 + number_of_gates = 3 + + node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R'], + outputs=['', 'Y_h'], + hidden_size=hidden_size + ) + + W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + + gru = GRU_Helper(X=input, W=W, R=R) + _, Y_h = gru.step() + expect(node, inputs=[input, W, R], outputs=[Y_h.astype(np.float32)], name='test_gru_defaults') + + @staticmethod + def export_initial_bias() -> None: + input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]]).astype(np.float32) + + input_size = 3 + hidden_size = 3 + weight_scale = 0.1 + custom_bias = 0.1 + number_of_gates = 3 + + node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size + ) + + W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + + # Adding custom bias + W_B = custom_bias * np.ones((1, number_of_gates * hidden_size)).astype(np.float32) + R_B = np.zeros((1, number_of_gates * hidden_size)).astype(np.float32) + B = np.concatenate((W_B, R_B), axis=1) + + gru = GRU_Helper(X=input, W=W, R=R, B=B) + _, Y_h = gru.step() + expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_gru_with_initial_bias') + + @staticmethod + def export_seq_length() -> None: + input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]], + [[10., 11., 12.], [13., 14., 15.], [16., 17., 18.]]]).astype(np.float32) + + input_size = 3 + hidden_size = 5 + number_of_gates = 3 + + node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size + ) + + W = np.random.randn(1, number_of_gates * hidden_size, input_size).astype(np.float32) + R = np.random.randn(1, number_of_gates * hidden_size, hidden_size).astype(np.float32) + + # Adding custom bias + W_B = np.random.randn(1, number_of_gates * hidden_size).astype(np.float32) + R_B = np.random.randn(1, number_of_gates * hidden_size).astype(np.float32) + B = np.concatenate((W_B, R_B), axis=1) + + gru = GRU_Helper(X=input, W=W, R=R, B=B) + _, Y_h = gru.step() + expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_gru_seq_length') + + @staticmethod + def export_batchwise() -> None: + input = np.array([[[1., 2.]], [[3., 4.]], [[5., 6.]]]).astype(np.float32) + + input_size = 2 + hidden_size = 6 + number_of_gates = 3 + weight_scale = 0.2 + layout = 1 + + node = onnx.helper.make_node( + 'GRU', + inputs=['X', 'W', 'R'], + outputs=['Y', 'Y_h'], + hidden_size=hidden_size, + layout=layout + ) + + W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + + gru = GRU_Helper(X=input, W=W, R=R, layout=layout) + Y, Y_h = gru.step() + expect(node, inputs=[input, W, R], outputs=[Y.astype(np.float32), Y_h.astype(np.float32)], name='test_gru_batchwise') diff --git a/third_party/onnx/onnx/backend/test/case/node/hardmax.py b/third_party/onnx/onnx/backend/test/case/node/hardmax.py new file mode 100644 index 000000000..8f60376a1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/hardmax.py @@ -0,0 +1,95 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def hardmax(x: np.ndarray, axis: int = -1) -> np.ndarray: + x_argmax = np.argmax(x, axis=axis) + y = np.zeros_like(x) + np.put_along_axis(y, np.expand_dims(x_argmax, axis=axis), 1, axis=axis) + return y + + +class Hardmax(Base): + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([[3, 0, 1, 2], [2, 5, 1, 0], [0, 1, 3, 2], + [0, 1, 2, 3]]).astype(np.float32) + # expect result: + # [[1. 0. 0. 0.] + # [0. 1. 0. 0.] + # [0. 0. 1. 0.] + # [0. 0. 0. 1.]] + y = hardmax(x) + expect(node, inputs=[x], outputs=[y], + name='test_hardmax_example') + + # For multiple occurrences of the maximal values, the first occurrence is selected for one-hot output + x = np.array([[3, 3, 3, 1]]).astype(np.float32) + # expect result: + # [[1, 0, 0, 0]] + y = hardmax(x) + expect(node, inputs=[x], outputs=[y], + name='test_hardmax_one_hot') + + @staticmethod + def export_hardmax_axis() -> None: + x = np.random.randn(3, 4, 5).astype(np.float32) + node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=0, + ) + y = hardmax(x, axis=0) + expect(node, inputs=[x], outputs=[y], + name='test_hardmax_axis_0') + + node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=1, + ) + y = hardmax(x, axis=1) + expect(node, inputs=[x], outputs=[y], + name='test_hardmax_axis_1') + + node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=2, + ) + y = hardmax(x, axis=2) + expect(node, inputs=[x], outputs=[y], + name='test_hardmax_axis_2') + + node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + axis=-1, + ) + y = hardmax(x, axis=-1) + expect(node, inputs=[x], outputs=[y], + name='test_hardmax_negative_axis') + + # default axis is -1 + node = onnx.helper.make_node( + 'Hardmax', + inputs=['x'], + outputs=['y'], + ) + expect(node, inputs=[x], outputs=[y], + name='test_hardmax_default_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/hardsigmoid.py b/third_party/onnx/onnx/backend/test/case/node/hardsigmoid.py new file mode 100644 index 000000000..13dd637a4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/hardsigmoid.py @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class HardSigmoid(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'HardSigmoid', + inputs=['x'], + outputs=['y'], + alpha=0.5, + beta=0.6 + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.clip(x * 0.5 + 0.6, 0, 1) # expected output [0.1, 0.6, 1.] + expect(node, inputs=[x], outputs=[y], + name='test_hardsigmoid_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x * 0.5 + 0.6, 0, 1) + expect(node, inputs=[x], outputs=[y], + name='test_hardsigmoid') + + @staticmethod + def export_hardsigmoid_default() -> None: + default_alpha = 0.2 + default_beta = 0.5 + node = onnx.helper.make_node( + 'HardSigmoid', + inputs=['x'], + outputs=['y'], + ) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x * default_alpha + default_beta, 0, 1) + expect(node, inputs=[x], outputs=[y], + name='test_hardsigmoid_default') diff --git a/third_party/onnx/onnx/backend/test/case/node/hardswish.py b/third_party/onnx/onnx/backend/test/case/node/hardswish.py new file mode 100644 index 000000000..c13b7e27a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/hardswish.py @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def hardswish(x: np.ndarray) -> np.ndarray: + alfa = float(1 / 6) + beta = 0.5 + return x * np.maximum(0, np.minimum(1, alfa * x + beta)) + + +class HardSwish(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'HardSwish', + inputs=['x'], + outputs=['y'], + ) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = hardswish(x) + + expect(node, inputs=[x], outputs=[y], + name='test_hardswish') diff --git a/third_party/onnx/onnx/backend/test/case/node/identity.py b/third_party/onnx/onnx/backend/test/case/node/identity.py new file mode 100644 index 000000000..81277224c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/identity.py @@ -0,0 +1,65 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Identity(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Identity', + inputs=['x'], + outputs=['y'], + ) + + data = np.array([[[ + [1, 2], + [3, 4], + ]]], dtype=np.float32) + + expect(node, inputs=[data], outputs=[data], + name='test_identity') + + @staticmethod + def export_sequence() -> None: + node = onnx.helper.make_node( + 'Identity', + inputs=['x'], + outputs=['y'], + ) + + data = [ + np.array([[[ + [1, 2], + [3, 4], + ]]], dtype=np.float32), + np.array([[[ + [2, 3], + [1, 5], + ]]], dtype=np.float32)] + + expect(node, inputs=[data], outputs=[data], name='test_identity_sequence') + + @staticmethod + def export_identity_opt() -> None: + ten_in_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) + seq_in_tp = onnx.helper.make_sequence_type_proto(ten_in_tp) + opt_in_tp = onnx.helper.make_optional_type_proto(seq_in_tp) + + identity_node = onnx.helper.make_node( + 'Identity', + inputs=['opt_in'], + outputs=['opt_out'] + ) + + x = [np.array([1, 2, 3, 4, 5]).astype(np.float32)] + + expect(identity_node, inputs=[x], outputs=[x], name='test_identity_opt', + opset_imports=[onnx.helper.make_opsetid("", 16)], + input_type_protos=[opt_in_tp], + output_type_protos=[opt_in_tp]) diff --git a/third_party/onnx/onnx/backend/test/case/node/if.py b/third_party/onnx/onnx/backend/test/case/node/if.py new file mode 100644 index 000000000..61610f070 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/if.py @@ -0,0 +1,207 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def compute_if_outputs(x, cond): # type: ignore + if cond: + return [] + else: + return x + + +class If(Base): + @staticmethod + def export_if() -> None: + # Given a bool scalar input cond. + # return constant tensor x if cond is True, otherwise return constant tensor y. + + then_out = onnx.helper.make_tensor_value_info('then_out', onnx.TensorProto.FLOAT, [5]) + else_out = onnx.helper.make_tensor_value_info('else_out', onnx.TensorProto.FLOAT, [5]) + + x = np.array([1, 2, 3, 4, 5]).astype(np.float32) + y = np.array([5, 4, 3, 2, 1]).astype(np.float32) + + then_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['then_out'], + value=onnx.numpy_helper.from_array(x) + ) + + else_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['else_out'], + value=onnx.numpy_helper.from_array(y) + ) + + then_body = onnx.helper.make_graph( + [then_const_node], + 'then_body', + [], + [then_out] + ) + + else_body = onnx.helper.make_graph( + [else_const_node], + 'else_body', + [], + [else_out] + ) + + if_node = onnx.helper.make_node( + 'If', + inputs=['cond'], + outputs=['res'], + then_branch=then_body, + else_branch=else_body + ) + + cond = np.array(1).astype(bool) + res = x if cond else y + expect(if_node, inputs=[cond], outputs=[res], name='test_if', + opset_imports=[onnx.helper.make_opsetid("", 11)]) + + @staticmethod + def export_if_seq() -> None: + # Given a bool scalar input cond. + # return constant sequence x if cond is True, otherwise return constant sequence y. + + then_out = onnx.helper.make_tensor_sequence_value_info('then_out', onnx.TensorProto.FLOAT, shape=[5]) + else_out = onnx.helper.make_tensor_sequence_value_info('else_out', onnx.TensorProto.FLOAT, shape=[5]) + + x = [np.array([1, 2, 3, 4, 5]).astype(np.float32)] + y = [np.array([5, 4, 3, 2, 1]).astype(np.float32)] + + then_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.numpy_helper.from_array(x[0]) + ) + + then_seq_node = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['x'], + outputs=['then_out'] + ) + + else_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['y'], + value=onnx.numpy_helper.from_array(y[0]) + ) + + else_seq_node = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['y'], + outputs=['else_out'] + ) + + then_body = onnx.helper.make_graph( + [then_const_node, then_seq_node], + 'then_body', + [], + [then_out] + ) + + else_body = onnx.helper.make_graph( + [else_const_node, else_seq_node], + 'else_body', + [], + [else_out] + ) + + if_node = onnx.helper.make_node( + 'If', + inputs=['cond'], + outputs=['res'], + then_branch=then_body, + else_branch=else_body + ) + + cond = np.array(1).astype(bool) + res = x if cond else y + expect(if_node, inputs=[cond], outputs=[res], name='test_if_seq', + opset_imports=[onnx.helper.make_opsetid("", 13)]) + + @staticmethod + def export_if_optional() -> None: + # Given a bool scalar input cond, return an empty optional sequence of + # tensor if True, return an optional sequence with value x + # (the input optional sequence) otherwise. + + ten_in_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) + seq_in_tp = onnx.helper.make_sequence_type_proto(ten_in_tp) + + then_out_tensor_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) + then_out_seq_tp = onnx.helper.make_sequence_type_proto(then_out_tensor_tp) + then_out_opt_tp = onnx.helper.make_optional_type_proto(then_out_seq_tp) + then_out = onnx.helper.make_value_info('optional_empty', then_out_opt_tp) + + else_out_tensor_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, shape=[5]) + else_out_seq_tp = onnx.helper.make_sequence_type_proto(else_out_tensor_tp) + else_out_opt_tp = onnx.helper.make_optional_type_proto(else_out_seq_tp) + else_out = onnx.helper.make_value_info('else_opt', else_out_opt_tp) + + x = [np.array([1, 2, 3, 4, 5]).astype(np.float32)] + cond = np.array(0).astype(bool) + res = compute_if_outputs(x, cond) + + opt_empty_in = onnx.helper.make_node( + 'Optional', + inputs=[], + outputs=['optional_empty'], + type=seq_in_tp + ) + + then_body = onnx.helper.make_graph( + [opt_empty_in], + 'then_body', + [], + [then_out] + ) + + else_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.numpy_helper.from_array(x[0]) + ) + + else_seq_node = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['x'], + outputs=['else_seq'] + ) + + else_optional_seq_node = onnx.helper.make_node( + 'Optional', + inputs=['else_seq'], + outputs=['else_opt'] + ) + + else_body = onnx.helper.make_graph( + [else_const_node, else_seq_node, else_optional_seq_node], + 'else_body', + [], + [else_out] + ) + + if_node = onnx.helper.make_node( + 'If', + inputs=['cond'], + outputs=['sequence'], + then_branch=then_body, + else_branch=else_body + ) + + expect(if_node, inputs=[cond], outputs=[res], name='test_if_opt', + output_type_protos=[else_out_opt_tp], + opset_imports=[onnx.helper.make_opsetid("", 16)]) diff --git a/third_party/onnx/onnx/backend/test/case/node/instancenorm.py b/third_party/onnx/onnx/backend/test/case/node/instancenorm.py new file mode 100644 index 000000000..10689016e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/instancenorm.py @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class InstanceNormalization(Base): + + @staticmethod + def export() -> None: + def _instancenorm_test_mode(x, s, bias, epsilon=1e-5): # type: ignore + dims_x = len(x.shape) + axis = tuple(range(2, dims_x)) + mean = np.mean(x, axis=axis, keepdims=True) + var = np.var(x, axis=axis, keepdims=True) + dim_ones = (1,) * (dims_x - 2) + s = s.reshape(-1, *dim_ones) + bias = bias.reshape(-1, *dim_ones) + return s * (x - mean) / np.sqrt(var + epsilon) + bias + + # input size: (1, 2, 1, 3) + x = np.array([[[[-1, 0, 1]], [[2, 3, 4]]]]).astype(np.float32) + s = np.array([1.0, 1.5]).astype(np.float32) + bias = np.array([0, 1]).astype(np.float32) + y = _instancenorm_test_mode(x, s, bias).astype(np.float32) + + node = onnx.helper.make_node( + 'InstanceNormalization', + inputs=['x', 's', 'bias'], + outputs=['y'], + ) + + # output size: (1, 2, 1, 3) + expect(node, inputs=[x, s, bias], outputs=[y], + name='test_instancenorm_example') + + # input size: (2, 3, 4, 5) + x = np.random.randn(2, 3, 4, 5).astype(np.float32) + s = np.random.randn(3).astype(np.float32) + bias = np.random.randn(3).astype(np.float32) + epsilon = 1e-2 + y = _instancenorm_test_mode(x, s, bias, epsilon).astype(np.float32) + + node = onnx.helper.make_node( + 'InstanceNormalization', + inputs=['x', 's', 'bias'], + outputs=['y'], + epsilon=epsilon, + ) + + # output size: (2, 3, 4, 5) + expect(node, inputs=[x, s, bias], outputs=[y], + name='test_instancenorm_epsilon') diff --git a/third_party/onnx/onnx/backend/test/case/node/isinf.py b/third_party/onnx/onnx/backend/test/case/node/isinf.py new file mode 100644 index 000000000..21680ee41 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/isinf.py @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class IsInf(Base): + + @staticmethod + def export_infinity() -> None: + node = onnx.helper.make_node('IsInf', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1.2, np.nan, np.inf, 2.8, np.NINF, np.inf], + dtype=np.float32) + y = np.isinf(x) + expect(node, inputs=[x], outputs=[y], name='test_isinf') + + @staticmethod + def export_positive_infinity_only() -> None: + node = onnx.helper.make_node('IsInf', + inputs=['x'], + outputs=['y'], + detect_negative=0 + ) + + x = np.array([-1.7, np.nan, np.inf, 3.6, np.NINF, np.inf], + dtype=np.float32) + y = np.isposinf(x) + expect(node, inputs=[x], outputs=[y], name='test_isinf_positive') + + @staticmethod + def export_negative_infinity_only() -> None: + node = onnx.helper.make_node('IsInf', + inputs=['x'], + outputs=['y'], + detect_positive=0 + ) + + x = np.array([-1.7, np.nan, np.inf, -3.6, np.NINF, np.inf], + dtype=np.float32) + y = np.isneginf(x) + expect(node, inputs=[x], outputs=[y], name='test_isinf_negative') diff --git a/third_party/onnx/onnx/backend/test/case/node/isnan.py b/third_party/onnx/onnx/backend/test/case/node/isnan.py new file mode 100644 index 000000000..0c7104f61 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/isnan.py @@ -0,0 +1,22 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class IsNaN(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'IsNaN', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([3.0, np.nan, 4.0, np.nan], dtype=np.float32) + y = np.isnan(x) + expect(node, inputs=[x], outputs=[y], name='test_isnan') diff --git a/third_party/onnx/onnx/backend/test/case/node/layernormalization.py b/third_party/onnx/onnx/backend/test/case/node/layernormalization.py new file mode 100644 index 000000000..0bafa7a10 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/layernormalization.py @@ -0,0 +1,173 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +# Layer normalization's reference implementation +def _layer_normalization(X, W, B, axis=-1, epsilon=1e-5): # type: ignore + X_shape = X.shape + X_rank = len(X_shape) + if axis < 0: + # If axis = -1 and rank of X is 4, + # the axis is changed to -1 + 4 = 3, + # which means the last axis. + axis = axis + X_rank + unsqueezed_rank = X_rank - axis + reduction_shape = X_shape[0:axis] + (1,) * unsqueezed_rank + + # Parameter used to convert N-D tensor layer + # normalization to equivalent 2-D matirx operations. + row_number = 1 + col_number = 1 + for i in range(X_rank): + if i < axis: + row_number *= X_shape[i] + else: + col_number *= X_shape[i] + + # After reshaping input tensor X into a matrix, + # layer normalization is equivalent to conducting + # standardization on each column vector (s.t. each + # column has zero mean and unit variance). + x_mat = np.reshape(X, (row_number, col_number)) + # This computes mean for every x_mat's column. + x_mean = np.sum(x_mat, axis=1, keepdims=True) / col_number + x_diff = x_mat - x_mean + x_squared_diff = x_diff * x_diff + # This computes variance for every x_mat's column. + variance = np.sum(x_squared_diff, axis=1, keepdims=True) / col_number + variance_eps = variance + epsilon + std_dev = np.sqrt(variance_eps) + inv_std_dev = np.reciprocal(std_dev) + # Standardization step. y_mat is zero-mean and unit-variance. + y_mat = x_diff * inv_std_dev + # Apply affine transform on normalization outcome. + # W is linear coefficient while B is bias. + Y = np.reshape(y_mat, X_shape) * W + B + # Matrix-level operations' outputs should be reshaped + # to compensate the initial tensor-to-matrix reshape. + X_mean = np.reshape(x_mean, reduction_shape) + X_inv_std_dev = np.reshape(inv_std_dev, reduction_shape) + + return Y, X_mean, X_inv_std_dev + + +def calculate_normalized_shape(X_shape, axis): # type: ignore + X_rank = len(X_shape) + if axis < 0: + axis = axis + X_rank + return X_shape[axis:] + + +class LayerNormalization(Base): + @staticmethod + def export() -> None: + X = np.random.randn(2, 3, 4, 5).astype(np.float32) + + def case(axis: int) -> None: + normalized_shape = calculate_normalized_shape(X.shape, axis) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + Y, mean, inv_std_dev = _layer_normalization(X, W, B, axis) + + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'], + axis=axis, + ) + + if axis < 0: + name = f'test_layer_normalization_4d_axis_negative_{-axis}' + else: + name = f'test_layer_normalization_4d_axis{axis}' + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name=name) + + for i in range(len(X.shape)): + case(i) + case(i - len(X.shape)) + + @staticmethod + def export_default_axis() -> None: + X = np.random.randn(2, 3, 4, 5).astype(np.float32) + + # Default axis in LayerNormalization is -1. + normalized_shape = calculate_normalized_shape(X.shape, -1) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + # Axis is default to -1 in the reference implementation. + Y, mean, inv_std_dev = _layer_normalization(X, W, B) + + # Not specifying axis attribute means -1. + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'] + ) + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name='test_layer_normalization_default_axis') + + @staticmethod + def export2d() -> None: + X = np.random.randn(3, 4).astype(np.float32) + + def case(axis: int) -> None: + normalized_shape = calculate_normalized_shape(X.shape, axis) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + Y, mean, inv_std_dev = _layer_normalization(X, W, B, axis=axis) + + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'], + axis=axis, + ) + + if axis < 0: + name = f'test_layer_normalization_2d_axis_negative_{-axis}' + else: + name = f'test_layer_normalization_2d_axis{axis}' + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name=name) + + for i in range(len(X.shape)): + case(i) + case(i - len(X.shape)) + + @staticmethod + def export3d_epsilon() -> None: + X = np.random.randn(2, 3, 5).astype(np.float32) + + def case(axis: int) -> None: + normalized_shape = calculate_normalized_shape(X.shape, axis) + W = np.random.randn(*normalized_shape).astype(np.float32) + B = np.random.randn(*normalized_shape).astype(np.float32) + Y, mean, inv_std_dev = _layer_normalization(X, W, B, axis) + node = onnx.helper.make_node( + 'LayerNormalization', + inputs=['X', 'W', 'B'], + outputs=['Y', 'Mean', 'InvStdDev'], + axis=axis, + epsilon=1e-1 + ) + + if axis < 0: + name = f'test_layer_normalization_3d_axis_negative_{-axis}_epsilon' + else: + name = f'test_layer_normalization_3d_axis{axis}_epsilon' + + expect(node, inputs=[X, W, B], outputs=[Y, mean, inv_std_dev], + name=name) + + for i in range(len(X.shape)): + case(i) + case(i - len(X.shape)) diff --git a/third_party/onnx/onnx/backend/test/case/node/leakyrelu.py b/third_party/onnx/onnx/backend/test/case/node/leakyrelu.py new file mode 100644 index 000000000..b8e448e1a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/leakyrelu.py @@ -0,0 +1,43 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class LeakyRelu(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'LeakyRelu', + inputs=['x'], + outputs=['y'], + alpha=0.1 + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + # expected output [-0.1, 0., 1.] + y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * 0.1 + expect(node, inputs=[x], outputs=[y], + name='test_leakyrelu_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * 0.1 + expect(node, inputs=[x], outputs=[y], + name='test_leakyrelu') + + @staticmethod + def export_leakyrelu_default() -> None: + default_alpha = 0.01 + node = onnx.helper.make_node( + 'LeakyRelu', + inputs=['x'], + outputs=['y'], + ) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * default_alpha + expect(node, inputs=[x], outputs=[y], + name='test_leakyrelu_default') diff --git a/third_party/onnx/onnx/backend/test/case/node/less.py b/third_party/onnx/onnx/backend/test/case/node/less.py new file mode 100644 index 000000000..8560c99d6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/less.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Less(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Less', + inputs=['x', 'y'], + outputs=['less'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(3, 4, 5).astype(np.float32) + z = np.less(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_less') + + @staticmethod + def export_less_broadcast() -> None: + node = onnx.helper.make_node( + 'Less', + inputs=['x', 'y'], + outputs=['less'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(5).astype(np.float32) + z = np.less(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_less_bcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/less_equal.py b/third_party/onnx/onnx/backend/test/case/node/less_equal.py new file mode 100644 index 000000000..4cf9ea72b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/less_equal.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Less(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'LessOrEqual', + inputs=['x', 'y'], + outputs=['less_equal'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(3, 4, 5).astype(np.float32) + z = np.less_equal(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_less_equal') + + @staticmethod + def export_less_broadcast() -> None: + node = onnx.helper.make_node( + 'LessOrEqual', + inputs=['x', 'y'], + outputs=['less_equal'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(5).astype(np.float32) + z = np.less_equal(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_less_equal_bcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/log.py b/third_party/onnx/onnx/backend/test/case/node/log.py new file mode 100644 index 000000000..69e030f09 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/log.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Log(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Log', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([1, 10]).astype(np.float32) + y = np.log(x) # expected output [0., 2.30258512] + expect(node, inputs=[x], outputs=[y], + name='test_log_example') + + x = np.exp(np.random.randn(3, 4, 5).astype(np.float32)) + y = np.log(x) + expect(node, inputs=[x], outputs=[y], + name='test_log') diff --git a/third_party/onnx/onnx/backend/test/case/node/logsoftmax.py b/third_party/onnx/onnx/backend/test/case/node/logsoftmax.py new file mode 100644 index 000000000..c1f7f3b75 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/logsoftmax.py @@ -0,0 +1,98 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def logsoftmax(x: np.ndarray, axis: int = -1) -> np.ndarray: + x_max = np.max(x, axis=axis, keepdims=True) + tmp = np.exp(x - x_max) + s = np.sum(tmp, axis=axis, keepdims=True) + return (x - x_max) - np.log(s) + + +class LogSoftmax(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + ) + x = np.array([[-1, 0, 1]]).astype(np.float32) + # expected output + # [[-2.4076061 -1.407606 -0.407606 ]] + y = logsoftmax(x) + expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_example_1') + + @staticmethod + def export_logsoftmax_axis() -> None: + x = np.array([[0, 1, 2, 3], [10000, 10001, 10002, 10003]] + ).astype(np.float32) + # expected output + # [[-3.4401896 -2.4401896 -1.4401896 -0.44018966] + # [-3.4401896 -2.4401896 -1.4401896 -0.44018966]] + y = logsoftmax(x) + + node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + ) + expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_large_number') + + x = np.abs(np.random.randn(3, 4, 5).astype(np.float32)) + node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=0, + ) + y = logsoftmax(x, axis=0) + expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_axis_0') + + node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=1, + ) + y = logsoftmax(x, axis=1) + expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_axis_1') + + node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=2, + ) + y = logsoftmax(x, axis=2) + expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_axis_2') + + node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + axis=-1, + ) + y = logsoftmax(x, axis=-1) + expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_negative_axis') + + # default axis is -1 + node = onnx.helper.make_node( + 'LogSoftmax', + inputs=['x'], + outputs=['y'], + ) + expect(node, inputs=[x], outputs=[y], + name='test_logsoftmax_default_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/loop.py b/third_party/onnx/onnx/backend/test/case/node/loop.py new file mode 100644 index 000000000..c67b23fb3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/loop.py @@ -0,0 +1,426 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +from typing import List, Any + +import onnx +from ..base import Base +from . import expect + + +def compute_loop_outputs(x, seq, trip_count): # type: ignore + for i in range(trip_count): + if seq is None: + seq = [] + seq += [x[:int(i + 1)]] + return seq + + +class Loop(Base): + + @staticmethod + def export_loop_11() -> None: + # Given a tensor x of values [x1, ..., xN], and initial tensor y + # sum up its elements using a scan + # returning the final state (y+x1+x2+...+xN) as well the scan_output + # [y+x1, y+x1+x2, ..., y+x1+x2+...+xN] + + y_in = onnx.helper.make_tensor_value_info('y_in', onnx.TensorProto.FLOAT, [1]) + y_out = onnx.helper.make_tensor_value_info('y_out', onnx.TensorProto.FLOAT, [1]) + scan_out = onnx.helper.make_tensor_value_info('scan_out', onnx.TensorProto.FLOAT, [1]) + cond_in = onnx.helper.make_tensor_value_info('cond_in', onnx.TensorProto.BOOL, []) + cond_out = onnx.helper.make_tensor_value_info('cond_out', onnx.TensorProto.BOOL, []) + iter_count = onnx.helper.make_tensor_value_info('iter_count', onnx.TensorProto.INT64, []) + + x = np.array([1, 2, 3, 4, 5]).astype(np.float32) + y = np.array([-2]).astype(np.float32) + + x_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.helper.make_tensor( + name='const_tensor_x', + data_type=onnx.TensorProto.FLOAT, + dims=x.shape, + vals=x.flatten().astype(float), + ) + ) + + one_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['one'], + value=onnx.helper.make_tensor( + name='const_tensor_one', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[1] + ) + ) + + i_add_node = onnx.helper.make_node( + 'Add', + inputs=['iter_count', 'one'], + outputs=['end'] + ) + + start_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['iter_count'], + outputs=['slice_start'], + axes=[0] + ) + + end_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['end'], + outputs=['slice_end'], + axes=[0] + ) + + slice_node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'slice_start', 'slice_end'], + outputs=['slice_out'] + ) + + y_add_node = onnx.helper.make_node( + 'Add', + inputs=['y_in', 'slice_out'], + outputs=['y_out'] + ) + + identity_node = onnx.helper.make_node( + 'Identity', + inputs=['cond_in'], + outputs=['cond_out'] + ) + + scan_identity_node = onnx.helper.make_node( + 'Identity', + inputs=['y_out'], + outputs=['scan_out'] + ) + + loop_body = onnx.helper.make_graph( + [identity_node, x_const_node, one_const_node, i_add_node, + start_unsqueeze_node, end_unsqueeze_node, slice_node, y_add_node, + scan_identity_node], + 'loop_body', + [iter_count, cond_in, y_in], + [cond_out, y_out, scan_out] + ) + + node = onnx.helper.make_node( + 'Loop', + inputs=['trip_count', 'cond', 'y'], + outputs=['res_y', 'res_scan'], + body=loop_body + ) + + trip_count = np.array(5).astype(np.int64) + res_y = np.array([13]).astype(np.float32) + cond = np.array(1).astype(bool) + res_scan = np.array([-1, 1, 4, 8, 13]).astype(np.float32).reshape((5, 1)) + expect(node, inputs=[trip_count, cond, y], outputs=[res_y, res_scan], + name='test_loop11', opset_imports=[onnx.helper.make_opsetid("", 11)]) + + @staticmethod + def export_loop_13() -> None: + # Given a tensor x of values [x1, ..., xN], + # Return a sequence of tensors of + # [[x1], [x1, x2], ..., [x1, ..., xN]] + + seq_in = onnx.helper.make_tensor_sequence_value_info('seq_in', onnx.TensorProto.FLOAT, None) + seq_out = onnx.helper.make_tensor_sequence_value_info('seq_out', onnx.TensorProto.FLOAT, None) + cond_in = onnx.helper.make_tensor_value_info('cond_in', onnx.TensorProto.BOOL, []) + cond_out = onnx.helper.make_tensor_value_info('cond_out', onnx.TensorProto.BOOL, []) + iter_count = onnx.helper.make_tensor_value_info('iter_count', onnx.TensorProto.INT64, []) + + x = np.array([1, 2, 3, 4, 5]).astype(np.float32) + + x_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.helper.make_tensor( + name='const_tensor_x', + data_type=onnx.TensorProto.FLOAT, + dims=x.shape, + vals=x.flatten().astype(float), + ) + ) + + one_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['one'], + value=onnx.helper.make_tensor( + name='const_tensor_one', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[1] + ) + ) + + zero_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['slice_start'], + value=onnx.helper.make_tensor( + name='const_tensor_zero', + data_type=onnx.TensorProto.INT64, + dims=(1,), + vals=[0] + ) + ) + + axes_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['axes'], + value=onnx.helper.make_tensor( + name='const_tensor_axes', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[0] + ) + ) + + add_node = onnx.helper.make_node( + 'Add', + inputs=['iter_count', 'one'], + outputs=['end'] + ) + + end_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['end', 'axes'], + outputs=['slice_end'] + ) + + slice_node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'slice_start', 'slice_end'], + outputs=['slice_out'] + ) + + insert_node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['seq_in', 'slice_out'], + outputs=['seq_out'] + ) + + identity_node = onnx.helper.make_node( + 'Identity', + inputs=['cond_in'], + outputs=['cond_out'] + ) + + loop_body = onnx.helper.make_graph( + [identity_node, x_const_node, one_const_node, zero_const_node, add_node, + axes_node, end_unsqueeze_node, slice_node, insert_node], + 'loop_body', + [iter_count, cond_in, seq_in], + [cond_out, seq_out] + ) + + node = onnx.helper.make_node( + 'Loop', + inputs=['trip_count', 'cond', 'seq_empty'], + outputs=['seq_res'], + body=loop_body + ) + + trip_count = np.array(5).astype(np.int64) + seq_empty: List[Any] = [] + seq_res = [x[:int(i)] for i in x] + cond = np.array(1).astype(bool) + expect(node, inputs=[trip_count, cond, seq_empty], outputs=[seq_res], + name='test_loop13_seq', opset_imports=[onnx.helper.make_opsetid("", 13)], + input_type_protos=[onnx.helper.make_tensor_type_proto(onnx.TensorProto.INT64, trip_count.shape), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.BOOL, cond.shape), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, []))]) + + @staticmethod + def export_loop_16_none() -> None: + # Given a tensor sequence of values [x1, ..., xN], and an initial optional sequence of tensors [x0], + # Return a concatenated sequence of tensors of + # [x0, [x1], [x1, x2], ..., [x1, ..., xN]] + + ten_in_tp = onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, []) + seq_in_tp = onnx.helper.make_sequence_type_proto(ten_in_tp) + opt_in_tp = onnx.helper.make_optional_type_proto(seq_in_tp) + opt_in = onnx.helper.make_value_info('opt_seq_in', opt_in_tp) + seq_out = onnx.helper.make_tensor_sequence_value_info('seq_out', onnx.TensorProto.FLOAT, []) + cond_in = onnx.helper.make_tensor_value_info('cond_in', onnx.TensorProto.BOOL, []) + cond_out = onnx.helper.make_tensor_value_info('cond_out', onnx.TensorProto.BOOL, []) + iter_count = onnx.helper.make_tensor_value_info('iter_count', onnx.TensorProto.INT64, []) + + x0 = np.array(0).astype(np.float32) + x = np.array([1, 2, 3, 4, 5]).astype(np.float32) + + optional_has_elem_node = onnx.helper.make_node( + 'OptionalHasElement', + inputs=['opt_seq_in'], + outputs=['optional_has_elem'] + ) + + optional_is_none = onnx.helper.make_node( + 'Not', + inputs=['optional_has_elem'], + outputs=['optional_is_none'] + ) + + optional_get_elem = onnx.helper.make_node( + 'OptionalGetElement', + inputs=['opt_seq_in'], + outputs=['seq_in'] + ) + + constant_in = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['constant_in'], + value=onnx.helper.make_tensor( + name='const_tensor', + data_type=onnx.TensorProto.FLOAT, + dims=(), + vals=[0] + ) + ) + + seq_const_in = onnx.helper.make_node( + 'SequenceConstruct', + inputs=['constant_in'], + outputs=['init_seq_in'] + ) + + then_seq_out = onnx.helper.make_tensor_sequence_value_info('init_seq_in', onnx.TensorProto.FLOAT, []) + then_body = onnx.helper.make_graph( + [constant_in, seq_const_in], + 'then_body', + [], + [then_seq_out] + ) + + else_seq_out = onnx.helper.make_tensor_sequence_value_info('seq_in', onnx.TensorProto.FLOAT, []) + else_body = onnx.helper.make_graph( + [optional_get_elem], + 'else_body', + [], + [else_seq_out] + ) + + if_node = onnx.helper.make_node( + 'If', + inputs=['optional_is_none'], + outputs=['sequence'], + then_branch=then_body, + else_branch=else_body + ) + + x_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['x'], + value=onnx.helper.make_tensor( + name='const_tensor_x', + data_type=onnx.TensorProto.FLOAT, + dims=x.shape, + vals=x.flatten().astype(float), + ) + ) + + one_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['one'], + value=onnx.helper.make_tensor( + name='const_tensor_one', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[1] + ) + ) + + zero_const_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['slice_start'], + value=onnx.helper.make_tensor( + name='const_tensor_zero', + data_type=onnx.TensorProto.INT64, + dims=(1,), + vals=[0] + ) + ) + + axes_node = onnx.helper.make_node( + 'Constant', + inputs=[], + outputs=['axes'], + value=onnx.helper.make_tensor( + name='const_tensor_axes', + data_type=onnx.TensorProto.INT64, + dims=(), + vals=[0] + ) + ) + + add_node = onnx.helper.make_node( + 'Add', + inputs=['iter_count', 'one'], + outputs=['end'] + ) + + end_unsqueeze_node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['end', 'axes'], + outputs=['slice_end'] + ) + + slice_node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'slice_start', 'slice_end'], + outputs=['slice_out'] + ) + + insert_node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['sequence', 'slice_out'], + outputs=['seq_out'] + ) + + identity_node = onnx.helper.make_node( + 'Identity', + inputs=['cond_in'], + outputs=['cond_out'] + ) + + loop_body = onnx.helper.make_graph( + [identity_node, optional_has_elem_node, optional_is_none, if_node, x_const_node, one_const_node, + zero_const_node, add_node, axes_node, end_unsqueeze_node, slice_node, insert_node], + 'loop_body', + [iter_count, cond_in, opt_in], + [cond_out, seq_out] + ) + + node = onnx.helper.make_node( + 'Loop', + inputs=['trip_count', 'cond', 'opt_seq'], + outputs=['seq_res'], + body=loop_body + ) + + trip_count = np.array(5).astype(np.int64) + cond = np.array(1).astype(bool) + seq_res = compute_loop_outputs(x, [x0], trip_count) + opt_seq_in: List[Any] = [x0] + expect(node, inputs=[trip_count, cond, opt_seq_in], outputs=[seq_res], + name='test_loop16_seq_none', opset_imports=[onnx.helper.make_opsetid("", 16)], + input_type_protos=[onnx.helper.make_tensor_type_proto(onnx.TensorProto.INT64, trip_count.shape), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.BOOL, cond.shape), + opt_in_tp]) diff --git a/third_party/onnx/onnx/backend/test/case/node/lrn.py b/third_party/onnx/onnx/backend/test/case/node/lrn.py new file mode 100644 index 000000000..393181082 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/lrn.py @@ -0,0 +1,59 @@ +# SPDX-License-Identifier: Apache-2.0 + +import math +import numpy as np # type: ignore +import onnx +from ..base import Base +from . import expect + + +class LRN(Base): + + @staticmethod + def export() -> None: + alpha = 0.0002 + beta = 0.5 + bias = 2.0 + nsize = 3 + node = onnx.helper.make_node( + 'LRN', + inputs=['x'], + outputs=['y'], + alpha=alpha, + beta=beta, + bias=bias, + size=nsize + ) + x = np.random.randn(5, 5, 5, 5).astype(np.float32) + square_sum = np.zeros((5, 5, 5, 5)).astype(np.float32) + for n, c, h, w in np.ndindex(x.shape): + square_sum[n, c, h, w] = sum(x[n, + max(0, c - int(math.floor((nsize - 1) / 2))):min(5, c + int(math.ceil((nsize - 1) / 2)) + 1), + h, + w] ** 2) + y = x / ((bias + (alpha / nsize) * square_sum) ** beta) + expect(node, inputs=[x], outputs=[y], + name='test_lrn') + + @staticmethod + def export_default() -> None: + alpha = 0.0001 + beta = 0.75 + bias = 1.0 + nsize = 3 + node = onnx.helper.make_node( + 'LRN', + inputs=['x'], + outputs=['y'], + size=3 + ) + x = np.random.randn(5, 5, 5, 5).astype(np.float32) + square_sum = np.zeros((5, 5, 5, 5)).astype(np.float32) + for n, c, h, w in np.ndindex(x.shape): + square_sum[n, c, h, w] = sum(x[n, + max(0, c - int(math.floor((nsize - 1) / 2))):min(5, c + int(math.ceil((nsize - 1) / 2)) + 1), + h, + w] ** 2) + y = x / ((bias + (alpha / nsize) * square_sum) ** beta) + expect(node, inputs=[x], outputs=[y], + name='test_lrn_default') diff --git a/third_party/onnx/onnx/backend/test/case/node/lstm.py b/third_party/onnx/onnx/backend/test/case/node/lstm.py new file mode 100644 index 000000000..5cc68667a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/lstm.py @@ -0,0 +1,214 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +from typing import Any, Tuple + +import onnx +from ..base import Base +from . import expect + + +class LSTM_Helper(): + def __init__(self, **params: Any) -> None: + # LSTM Input Names + X = str('X') + W = str('W') + R = str('R') + B = str('B') + H_0 = str('initial_h') + C_0 = str('initial_c') + P = str('P') + LAYOUT = str('layout') + number_of_gates = 4 + number_of_peepholes = 3 + + required_inputs = [X, W, R] + for i in required_inputs: + assert i in params, "Missing Required Input: {0}".format(i) + + self.num_directions = params[W].shape[0] + + if self.num_directions == 1: + for k in params.keys(): + if k != X: + params[k] = np.squeeze(params[k], axis=0) + + hidden_size = params[R].shape[-1] + batch_size = params[X].shape[1] + + layout = params[LAYOUT] if LAYOUT in params else 0 + x = params[X] + x = x if layout == 0 else np.swapaxes(x, 0, 1) + b = params[B] if B in params else np.zeros(2 * number_of_gates * hidden_size, dtype=np.float32) + p = params[P] if P in params else np.zeros(number_of_peepholes * hidden_size, dtype=np.float32) + h_0 = params[H_0] if H_0 in params else np.zeros((batch_size, hidden_size), dtype=np.float32) + c_0 = params[C_0] if C_0 in params else np.zeros((batch_size, hidden_size), dtype=np.float32) + + self.X = x + self.W = params[W] + self.R = params[R] + self.B = b + self.P = p + self.H_0 = h_0 + self.C_0 = c_0 + self.LAYOUT = layout + + else: + raise NotImplementedError() + + def f(self, x: np.ndarray) -> np.ndarray: + return 1 / (1 + np.exp(-x)) + + def g(self, x: np.ndarray) -> np.ndarray: + return np.tanh(x) + + def h(self, x: np.ndarray) -> np.ndarray: + return np.tanh(x) + + def step(self) -> Tuple[np.ndarray, np.ndarray]: + seq_length = self.X.shape[0] + hidden_size = self.H_0.shape[-1] + batch_size = self.X.shape[1] + + Y = np.empty([seq_length, self.num_directions, batch_size, hidden_size]) + h_list = [] + + [p_i, p_o, p_f] = np.split(self.P, 3) + H_t = self.H_0 + C_t = self.C_0 + for x in np.split(self.X, self.X.shape[0], axis=0): + gates = np.dot(x, np.transpose(self.W)) + np.dot(H_t, np.transpose(self.R)) + np.add( + *np.split(self.B, 2)) + i, o, f, c = np.split(gates, 4, -1) + i = self.f(i + p_i * C_t) + f = self.f(f + p_f * C_t) + c = self.g(c) + C = f * C_t + i * c + o = self.f(o + p_o * C) + H = o * self.h(C) + h_list.append(H) + H_t = H + C_t = C + + concatenated = np.concatenate(h_list) + if self.num_directions == 1: + Y[:, 0, :, :] = concatenated + + if self.LAYOUT == 0: + Y_h = Y[-1] + else: + Y = np.transpose(Y, [2, 0, 1, 3]) + Y_h = Y[:, :, -1, :] + + return Y, Y_h + + +class LSTM(Base): + + @staticmethod + def export_defaults() -> None: + input = np.array([[[1., 2.], [3., 4.], [5., 6.]]]).astype(np.float32) + + input_size = 2 + hidden_size = 3 + weight_scale = 0.1 + number_of_gates = 4 + + node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R'], + outputs=['', 'Y_h'], + hidden_size=hidden_size + ) + + W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + + lstm = LSTM_Helper(X=input, W=W, R=R) + _, Y_h = lstm.step() + expect(node, inputs=[input, W, R], outputs=[Y_h.astype(np.float32)], name='test_lstm_defaults') + + @staticmethod + def export_initial_bias() -> None: + input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]]).astype(np.float32) + + input_size = 3 + hidden_size = 4 + weight_scale = 0.1 + custom_bias = 0.1 + number_of_gates = 4 + + node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size + ) + + W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + + # Adding custom bias + W_B = custom_bias * np.ones((1, number_of_gates * hidden_size)).astype(np.float32) + R_B = np.zeros((1, number_of_gates * hidden_size)).astype(np.float32) + B = np.concatenate((W_B, R_B), 1) + + lstm = LSTM_Helper(X=input, W=W, R=R, B=B) + _, Y_h = lstm.step() + expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_lstm_with_initial_bias') + + @staticmethod + def export_peepholes() -> None: + input = np.array([[[1., 2., 3., 4.], [5., 6., 7., 8.]]]).astype(np.float32) + + input_size = 4 + hidden_size = 3 + weight_scale = 0.1 + number_of_gates = 4 + number_of_peepholes = 3 + + node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R', 'B', 'sequence_lens', 'initial_h', 'initial_c', 'P'], + outputs=['', 'Y_h'], + hidden_size=hidden_size + ) + + # Initializing Inputs + W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + B = np.zeros((1, 2 * number_of_gates * hidden_size)).astype(np.float32) + seq_lens = np.repeat(input.shape[0], input.shape[1]).astype(np.int32) + init_h = np.zeros((1, input.shape[1], hidden_size)).astype(np.float32) + init_c = np.zeros((1, input.shape[1], hidden_size)).astype(np.float32) + P = weight_scale * np.ones((1, number_of_peepholes * hidden_size)).astype(np.float32) + + lstm = LSTM_Helper(X=input, W=W, R=R, B=B, P=P, initial_c=init_c, initial_h=init_h) + _, Y_h = lstm.step() + expect(node, inputs=[input, W, R, B, seq_lens, init_h, init_c, P], outputs=[Y_h.astype(np.float32)], + name='test_lstm_with_peepholes') + + @staticmethod + def export_batchwise() -> None: + input = np.array([[[1., 2.]], [[3., 4.]], [[5., 6.]]]).astype(np.float32) + + input_size = 2 + hidden_size = 7 + weight_scale = 0.3 + number_of_gates = 4 + layout = 1 + + node = onnx.helper.make_node( + 'LSTM', + inputs=['X', 'W', 'R'], + outputs=['Y', 'Y_h'], + hidden_size=hidden_size, + layout=layout + ) + + W = weight_scale * np.ones((1, number_of_gates * hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, number_of_gates * hidden_size, hidden_size)).astype(np.float32) + + lstm = LSTM_Helper(X=input, W=W, R=R, layout=layout) + Y, Y_h = lstm.step() + expect(node, inputs=[input, W, R], outputs=[Y.astype(np.float32), Y_h.astype(np.float32)], name='test_lstm_batchwise') diff --git a/third_party/onnx/onnx/backend/test/case/node/matmul.py b/third_party/onnx/onnx/backend/test/case/node/matmul.py new file mode 100644 index 000000000..e735f098c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/matmul.py @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class MatMul(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'MatMul', + inputs=['a', 'b'], + outputs=['c'], + ) + + # 2d + a = np.random.randn(3, 4).astype(np.float32) + b = np.random.randn(4, 3).astype(np.float32) + c = np.matmul(a, b) + expect(node, inputs=[a, b], outputs=[c], + name='test_matmul_2d') + + # 3d + a = np.random.randn(2, 3, 4).astype(np.float32) + b = np.random.randn(2, 4, 3).astype(np.float32) + c = np.matmul(a, b) + expect(node, inputs=[a, b], outputs=[c], + name='test_matmul_3d') + + # 4d + a = np.random.randn(1, 2, 3, 4).astype(np.float32) + b = np.random.randn(1, 2, 4, 3).astype(np.float32) + c = np.matmul(a, b) + expect(node, inputs=[a, b], outputs=[c], + name='test_matmul_4d') diff --git a/third_party/onnx/onnx/backend/test/case/node/matmulinteger.py b/third_party/onnx/onnx/backend/test/case/node/matmulinteger.py new file mode 100644 index 000000000..14b0c5991 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/matmulinteger.py @@ -0,0 +1,36 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +import onnx +from ..base import Base +from . import expect + + +class MatMulInteger(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node('MatMulInteger', + inputs=['A', 'B', 'a_zero_point', 'b_zero_point'], + outputs=['Y'],) + + A = np.array([[11, 7, 3], + [10, 6, 2], + [9, 5, 1], + [8, 4, 0], ], dtype=np.uint8) + + a_zero_point = np.array([12], dtype=np.uint8) + + B = np.array([[1, 4], + [2, 5], + [3, 6], ], dtype=np.uint8) + + b_zero_point = np.array([0], dtype=np.uint8) + + output = np.array([[-38, -83], + [-44, -98], + [-50, -113], + [-56, -128], ], dtype=np.int32) + + expect(node, inputs=[A, B, a_zero_point, b_zero_point], outputs=[output], + name='test_matmulinteger') diff --git a/third_party/onnx/onnx/backend/test/case/node/max.py b/third_party/onnx/onnx/backend/test/case/node/max.py new file mode 100644 index 000000000..7b2fb3674 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/max.py @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from ..utils import all_numeric_dtypes + + +class Max(Base): + + @staticmethod + def export() -> None: + data_0 = np.array([3, 2, 1]).astype(np.float32) + data_1 = np.array([1, 4, 4]).astype(np.float32) + data_2 = np.array([2, 5, 3]).astype(np.float32) + result = np.array([3, 5, 4]).astype(np.float32) + node = onnx.helper.make_node( + 'Max', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_max_example') + + node = onnx.helper.make_node( + 'Max', + inputs=['data_0'], + outputs=['result'], + ) + expect(node, inputs=[data_0], outputs=[data_0], + name='test_max_one_input') + + result = np.maximum(data_0, data_1) + node = onnx.helper.make_node( + 'Max', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_max_two_inputs') + + @staticmethod + def export_max_all_numeric_types() -> None: + for op_dtype in all_numeric_dtypes: + data_0 = np.array([3, 2, 1]).astype(op_dtype) + data_1 = np.array([1, 4, 4]).astype(op_dtype) + result = np.array([3, 4, 4]).astype(op_dtype) + node = onnx.helper.make_node( + 'Max', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_max_{0}'.format(np.dtype(op_dtype).name)) diff --git a/third_party/onnx/onnx/backend/test/case/node/maxpool.py b/third_party/onnx/onnx/backend/test/case/node/maxpool.py new file mode 100644 index 000000000..62ec760c6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/maxpool.py @@ -0,0 +1,417 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from .pool_op_common import get_output_shape, get_pad_shape, pool + + +class MaxPool(Base): + + @staticmethod + def export_maxpool_2d_uint8() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 5, 5] + pad_shape: [4, 4] -> [2, 2, 2, 2] by axis + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.uint8) + y = np.array([[[ + [13, 14, 15, 15, 15], + [18, 19, 20, 20, 20], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25]]]]).astype(np.uint8) + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_uint8') + + @staticmethod + def export_maxpool_2d_precomputed_pads() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 5, 5] + pad_shape: [4, 4] -> [2, 2, 2, 2] by axis + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] + + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.float32) + y = np.array([[[ + [13, 14, 15, 15, 15], + [18, 19, 20, 20, 20], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_precomputed_pads') + + @staticmethod + def export_maxpool_with_argmax_2d_precomputed_pads() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 5, 5] + pad_shape: [4, 4] -> [2, 2, 2, 2] by axis + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y', 'z'], + kernel_shape=[5, 5], + pads=[2, 2, 2, 2] + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.float32) + y = np.array([[[ + [13, 14, 15, 15, 15], + [18, 19, 20, 20, 20], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25], + [23, 24, 25, 25, 25]]]]).astype(np.float32) + z = np.array([[[ + [12, 13, 14, 14, 14], + [17, 18, 19, 19, 19], + [22, 23, 24, 24, 24], + [22, 23, 24, 24, 24], + [22, 23, 24, 24, 24]]]]).astype(np.int64) + + expect(node, inputs=[x], outputs=[y, z], name='test_maxpool_with_argmax_2d_precomputed_pads') + + @staticmethod + def export_maxpool_2d_precomputed_strides() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 2, 2] + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.float32) + y = np.array([[[[7, 9], + [17, 19]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_precomputed_strides') + + @staticmethod + def export_maxpool_with_argmax_2d_precomputed_strides() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 2, 2] + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y', 'z'], + kernel_shape=[2, 2], + strides=[2, 2], + storage_order=1 + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.float32) + y = np.array([[[[7, 9], + [17, 19]]]]).astype(np.float32) + z = np.array([[[[6, 16], + [8, 18]]]]).astype(np.int64) + + expect(node, inputs=[x], outputs=[y, z], name='test_maxpool_with_argmax_2d_precomputed_strides') + + @staticmethod + def export_maxpool_2d_precomputed_same_upper() -> None: + """ + input_shape: [1, 1, 5, 5] + output_shape: [1, 1, 3, 3] + pad_shape: [2, 2] -> [1, 1, 1, 1] by axis + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + auto_pad='SAME_UPPER' + ) + x = np.array([[[ + [1, 2, 3, 4, 5], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15], + [16, 17, 18, 19, 20], + [21, 22, 23, 24, 25], + ]]]).astype(np.float32) + y = np.array([[[[7, 9, 10], + [17, 19, 20], + [22, 24, 25]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_precomputed_same_upper') + + @staticmethod + def export_maxpool_1d_default() -> None: + """ + input_shape: [1, 3, 32] + output_shape: [1, 3, 31] + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2], + ) + x = np.random.randn(1, 3, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = [2] + strides = [1] + out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) + padded = x + y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0], 'MAX') + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_1d_default') + + @staticmethod + def export_maxpool_2d_default() -> None: + """ + input_shape: [1, 3, 32, 32] + output_shape: [1, 3, 31, 31] + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + ) + x = np.random.randn(1, 3, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (2, 2) + strides = (1, 1) + out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) + padded = x + y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'MAX') + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_default') + + @staticmethod + def export_maxpool_3d_default() -> None: + """ + input_shape: [1, 3, 32, 32, 32] + output_shape: [1, 3, 31, 31, 31] + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2, 2], + ) + x = np.random.randn(1, 3, 32, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = [2, 2, 2] + strides = [1, 1, 1] + out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) + padded = x + y = pool(padded, x_shape, kernel_shape, strides, out_shape, [0, 0, 0], 'MAX') + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_3d_default') + + @staticmethod + def export_maxpool_2d_same_upper() -> None: + """ + input_shape: [1, 3, 32, 32] + output_shape: [1, 3, 32, 32] + pad_shape: [1, 1] -> [0, 1, 0, 1] by axis + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_UPPER' + ) + x = np.random.randn(1, 3, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (2, 2) + strides = (1, 1) + out_shape = get_output_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides) + pad_shape = get_pad_shape('SAME_UPPER', x_shape[2:], kernel_shape, strides, out_shape) + pad_top = pad_shape[0] // 2 + pad_bottom = pad_shape[0] - pad_top + pad_left = pad_shape[1] // 2 + pad_right = pad_shape[1] - pad_left + padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) + y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'MAX') + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_same_upper') + + @staticmethod + def export_maxpool_2d_same_lower() -> None: + """ + input_shape: [1, 3, 32, 32] + output_shape: [1, 3, 32, 32] + pad_shape: [1, 1] -> [1, 0, 1, 0] by axis + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + auto_pad='SAME_LOWER' + ) + x = np.random.randn(1, 3, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (2, 2) + strides = (1, 1) + out_shape = get_output_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides) + pad_shape = get_pad_shape('SAME_LOWER', x_shape[2:], kernel_shape, strides, out_shape) + pad_bottom = pad_shape[0] // 2 + pad_top = pad_shape[0] - pad_bottom + pad_right = pad_shape[1] // 2 + pad_left = pad_shape[1] - pad_right + padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) + y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'MAX') + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_same_lower') + + @staticmethod + def export_maxpool_2d_pads() -> None: + """ + input_shape: [1, 3, 28, 28] + output_shape: [1, 3, 30, 30] + pad_shape: [4, 4] -> [2, 2, 2, 2] by axis + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + pads=[2, 2, 2, 2] + ) + x = np.random.randn(1, 3, 28, 28).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (3, 3) + strides = (1, 1) + pad_bottom = pad_top = pad_right = pad_left = 2 + pad_shape = [pad_top + pad_bottom, pad_left + pad_right] + out_shape = get_output_shape('VALID', np.add(x_shape[2:], pad_shape), kernel_shape, strides) + padded = np.pad(x, ((0, 0), (0, 0), (pad_top, pad_bottom), (pad_left, pad_right)), mode='constant', + constant_values=np.nan) + y = pool(padded, x_shape, kernel_shape, strides, out_shape, pad_shape, 'MAX') + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_pads') + + @staticmethod + def export_maxpool_2d_strides() -> None: + """ + input_shape: [1, 3, 32, 32] + output_shape: [1, 3, 10, 10] + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[5, 5], + strides=[3, 3] + ) + x = np.random.randn(1, 3, 32, 32).astype(np.float32) + x_shape = np.shape(x) + kernel_shape = (5, 5) + strides = (3, 3) + out_shape = get_output_shape('VALID', x_shape[2:], kernel_shape, strides) + padded = x + y = pool(padded, x_shape, kernel_shape, strides, out_shape, (0, 0), 'MAX') + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_strides') + + @staticmethod + def export_maxpool_2d_ceil() -> None: + """ + input_shape: [1, 1, 4, 4] + output_shape: [1, 1, 2, 2] + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[3, 3], + strides=[2, 2], + ceil_mode=True + ) + x = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]]).astype(np.float32) + y = np.array([[[ + [11, 12], + [15, 16]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_ceil') + + @staticmethod + def export_maxpool_2d_dilations() -> None: + """ + input_shape: [1, 1, 4, 4] + output_shape: [1, 1, 2, 2] + """ + node = onnx.helper.make_node( + 'MaxPool', + inputs=['x'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[1, 1], + dilations=[2, 2] + ) + x = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]]).astype(np.float32) + y = np.array([[[ + [11, 12], + [15, 16]]]]).astype(np.float32) + + expect(node, inputs=[x], outputs=[y], name='test_maxpool_2d_dilations') diff --git a/third_party/onnx/onnx/backend/test/case/node/maxunpool.py b/third_party/onnx/onnx/backend/test/case/node/maxunpool.py new file mode 100644 index 000000000..a3177e366 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/maxunpool.py @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class MaxUnpool(Base): + + @staticmethod + def export_without_output_shape() -> None: + node = onnx.helper.make_node( + 'MaxUnpool', + inputs=['xT', 'xI'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] + ) + xT = np.array([[[[1, 2], + [3, 4]]]], dtype=np.float32) + xI = np.array([[[[5, 7], + [13, 15]]]], dtype=np.int64) + y = np.array([[[[0, 0, 0, 0], + [0, 1, 0, 2], + [0, 0, 0, 0], + [0, 3, 0, 4]]]], dtype=np.float32) + expect(node, inputs=[xT, xI], outputs=[y], name='test_maxunpool_export_without_output_shape') + + @staticmethod + def export_with_output_shape() -> None: + node = onnx.helper.make_node( + 'MaxUnpool', + inputs=['xT', 'xI', 'output_shape'], + outputs=['y'], + kernel_shape=[2, 2], + strides=[2, 2] + ) + xT = np.array([[[[5, 6], + [7, 8]]]], dtype=np.float32) + xI = np.array([[[[5, 7], + [13, 15]]]], dtype=np.int64) + output_shape = np.array((1, 1, 5, 5), dtype=np.int64) + y = np.array([[[[0, 0, 0, 0, 0], + [0, 5, 0, 6, 0], + [0, 0, 0, 0, 0], + [0, 7, 0, 8, 0], + [0, 0, 0, 0, 0]]]], dtype=np.float32) + expect(node, inputs=[xT, xI, output_shape], outputs=[y], name='test_maxunpool_export_with_output_shape') diff --git a/third_party/onnx/onnx/backend/test/case/node/mean.py b/third_party/onnx/onnx/backend/test/case/node/mean.py new file mode 100644 index 000000000..f74f43fe2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/mean.py @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Mean(Base): + + @staticmethod + def export() -> None: + data_0 = np.array([3, 0, 2]).astype(np.float32) + data_1 = np.array([1, 3, 4]).astype(np.float32) + data_2 = np.array([2, 6, 6]).astype(np.float32) + result = np.array([2, 3, 4]).astype(np.float32) + node = onnx.helper.make_node( + 'Mean', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_mean_example') + + node = onnx.helper.make_node( + 'Mean', + inputs=['data_0'], + outputs=['result'], + ) + expect(node, inputs=[data_0], outputs=[data_0], + name='test_mean_one_input') + + result = np.divide(np.add(data_0, data_1), 2.) + node = onnx.helper.make_node( + 'Mean', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_mean_two_inputs') diff --git a/third_party/onnx/onnx/backend/test/case/node/meanvariancenormalization.py b/third_party/onnx/onnx/backend/test/case/node/meanvariancenormalization.py new file mode 100644 index 000000000..34ef81104 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/meanvariancenormalization.py @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class MeanVarianceNormalization(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'MeanVarianceNormalization', + inputs=['X'], + outputs=['Y'] + ) + + input_data = np.array([[[[0.8439683], [0.5665144], [0.05836735]], + [[0.02916367], [0.12964272], [0.5060197]], + [[0.79538304], [0.9411346], [0.9546573]]], + [[[0.17730942], [0.46192095], [0.26480448]], + [[0.6746842], [0.01665257], [0.62473077]], + [[0.9240844], [0.9722341], [0.11965699]]], + [[[0.41356155], [0.9129373], [0.59330076]], + [[0.81929934], [0.7862604], [0.11799799]], + [[0.69248444], [0.54119414], [0.07513223]]]], dtype=np.float32) + + # Calculate expected output data + data_mean = np.mean(input_data, axis=(0, 2, 3), keepdims=1) + data_mean_squared = np.power(data_mean, 2) + data_squared = np.power(input_data, 2) + data_squared_mean = np.mean(data_squared, axis=(0, 2, 3), keepdims=1) + std = np.sqrt(data_squared_mean - data_mean_squared) + expected_output = (input_data - data_mean) / (std + 1e-9) + + expect(node, inputs=[input_data], outputs=[expected_output], + name='test_mvn') diff --git a/third_party/onnx/onnx/backend/test/case/node/min.py b/third_party/onnx/onnx/backend/test/case/node/min.py new file mode 100644 index 000000000..ec121cc66 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/min.py @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from ..utils import all_numeric_dtypes + + +class Min(Base): + + @staticmethod + def export() -> None: + data_0 = np.array([3, 2, 1]).astype(np.float32) + data_1 = np.array([1, 4, 4]).astype(np.float32) + data_2 = np.array([2, 5, 0]).astype(np.float32) + result = np.array([1, 2, 0]).astype(np.float32) + node = onnx.helper.make_node( + 'Min', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_min_example') + + node = onnx.helper.make_node( + 'Min', + inputs=['data_0'], + outputs=['result'], + ) + expect(node, inputs=[data_0], outputs=[data_0], + name='test_min_one_input') + + result = np.minimum(data_0, data_1) + node = onnx.helper.make_node( + 'Min', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_min_two_inputs') + + @staticmethod + def export_min_all_numeric_types() -> None: + for op_dtype in all_numeric_dtypes: + data_0 = np.array([3, 2, 1]).astype(op_dtype) + data_1 = np.array([1, 4, 4]).astype(op_dtype) + result = np.array([1, 2, 1]).astype(op_dtype) + node = onnx.helper.make_node( + 'Min', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_min_{0}'.format(np.dtype(op_dtype).name)) diff --git a/third_party/onnx/onnx/backend/test/case/node/mod.py b/third_party/onnx/onnx/backend/test/case/node/mod.py new file mode 100644 index 000000000..39895b1c3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/mod.py @@ -0,0 +1,204 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Mod(Base): + + @staticmethod + def export_mod_mixed_sign_float64() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 + ) + + x = np.array([-4.3, 7.2, 5.0, 4.3, -7.2, 8.0]).astype(np.float64) + y = np.array([2.1, -3.4, 8.0, -2.1, 3.4, 5.0]).astype(np.float64) + z = np.fmod(x, y) # expected output [-0.1, 0.4, 5. , 0.1, -0.4, 3.] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_float64') + + @staticmethod + def export_mod_mixed_sign_float32() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 + ) + + x = np.array([-4.3, 7.2, 5.0, 4.3, -7.2, 8.0]).astype(np.float32) + y = np.array([2.1, -3.4, 8.0, -2.1, 3.4, 5.0]).astype(np.float32) + z = np.fmod(x, y) # expected output [-0.10000038, 0.39999962, 5. , 0.10000038, -0.39999962, 3.] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_float32') + + @staticmethod + def export_mod_mixed_sign_float16() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 + ) + + x = np.array([-4.3, 7.2, 5.0, 4.3, -7.2, 8.0]).astype(np.float16) + y = np.array([2.1, -3.4, 8.0, -2.1, 3.4, 5.0]).astype(np.float16) + z = np.fmod(x, y) # expected output [-0.10156, 0.3984 , 5. , 0.10156, -0.3984 , 3.] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_float16') + + @staticmethod + def export_mod_mixed_sign_int64() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int64) + y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int64) + z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int64') + + @staticmethod + def export_mod_mixed_sign_int32() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int32) + y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int32) + z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int32') + + @staticmethod + def export_mod_mixed_sign_int16() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int16) + y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int16) + z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int16') + + @staticmethod + def export_mod_mixed_sign_int8() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int8) + y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int8) + z = np.mod(x, y) # expected output [ 0, -2, 5, 0, 2, 3] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_mixed_sign_int8') + + @staticmethod + def export_mod_uint8() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([4, 7, 5]).astype(np.uint8) + y = np.array([2, 3, 8]).astype(np.uint8) + z = np.mod(x, y) # expected output [0, 1, 5] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint8') + + @staticmethod + def export_mod_uint16() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([4, 7, 5]).astype(np.uint16) + y = np.array([2, 3, 8]).astype(np.uint16) + z = np.mod(x, y) # expected output [0, 1, 5] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint16') + + @staticmethod + def export_mod_uint32() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([4, 7, 5]).astype(np.uint32) + y = np.array([2, 3, 8]).astype(np.uint32) + z = np.mod(x, y) # expected output [0, 1, 5] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint32') + + @staticmethod + def export_mod_uint64() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([4, 7, 5]).astype(np.uint64) + y = np.array([2, 3, 8]).astype(np.uint64) + z = np.mod(x, y) # expected output [0, 1, 5] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_uint64') + + @staticmethod + def export_mod_int64_fmod() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + fmod=1 + ) + + x = np.array([-4, 7, 5, 4, -7, 8]).astype(np.int64) + y = np.array([2, -3, 8, -2, 3, 5]).astype(np.int64) + z = np.fmod(x, y) # expected output [ 0, 1, 5, 0, -1, 3] + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_int64_fmod') + + @staticmethod + def export_mod_broadcast() -> None: + node = onnx.helper.make_node( + 'Mod', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.arange(0, 30).reshape([3, 2, 5]).astype(np.int32) + y = np.array([7]).astype(np.int32) + z = np.mod(x, y) + # array([[[0, 1, 2, 3, 4], + # [5, 6, 0, 1, 2]], + + # [[3, 4, 5, 6, 0], + # [1, 2, 3, 4, 5]], + + # [[6, 0, 1, 2, 3], + # [4, 5, 6, 0, 1]]], dtype=int32) + expect(node, inputs=[x, y], outputs=[z], + name='test_mod_broadcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/momentum.py b/third_party/onnx/onnx/backend/test/case/node/momentum.py new file mode 100644 index 000000000..f91aa3603 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/momentum.py @@ -0,0 +1,145 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from onnx.defs import ONNX_DOMAIN, AI_ONNX_PREVIEW_TRAINING_DOMAIN +from ..base import Base +from . import expect + + +def apply_momentum(r, t, x, g, v, norm_coefficient, alpha, beta): # type: ignore + # Add gradient of regularization term. + g_regularized = norm_coefficient * x + g + # Coefficient of gradient should be 1 at the first iteration. + beta_adjusted = beta if t > 0 else 1 + # Update momentum. + v_new = alpha * v + beta_adjusted * g_regularized + # Apply SG with momentum update rule. + x_new = x - r * v_new + return x_new, v_new + + +def apply_nesterov(r, t, x, g, v, norm_coefficient, alpha, beta): # type: ignore + # Add gradient of regularization term. + g_regularized = norm_coefficient * x + g + # Coefficient of gradient should be 1 at the first iteration. + beta_adjusted = beta if t > 0 else 1 + # Update momentum. + v_new = alpha * v + beta_adjusted * g_regularized + # Apply Nesterov with momentum update rule. + x_new = x - r * (g_regularized + alpha * v_new) + return x_new, v_new + + +class Momentum(Base): + + @staticmethod + def export_momentum() -> None: + # Define operator attributes. + norm_coefficient = 0.001 + alpha = 0.95 + beta = 0.1 + + # Create operator. + node = onnx.helper.make_node('Momentum', + inputs=['R', 'T', 'X', 'G', 'V'], + outputs=['X_new', 'V_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + mode='standard', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + + # Define operator inputs. + r = np.array(0.1, dtype=np.float32) # scalar + t = np.array(0, dtype=np.int64) # scalar + x = np.array([1.2, 2.8], dtype=np.float32) + g = np.array([-0.94, -2.5], dtype=np.float32) + v = np.array([1.7, 3.6], dtype=np.float32) + + # Compute expected outputs of Momentum. + x_new, v_new = apply_momentum(r, t, x, g, v, + norm_coefficient, alpha, beta) + + # Check results. + expect(node, inputs=[r, t, x, g, v], + outputs=[x_new, v_new], name='test_momentum', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) + + @staticmethod + def export_nesterov_momentum() -> None: + # Define operator attributes. + norm_coefficient = 0.01 + alpha = 0.95 + beta = 1.0 + + # Create operator. + node = onnx.helper.make_node('Momentum', + inputs=['R', 'T', 'X', 'G', 'V'], + outputs=['X_new', 'V_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + mode='nesterov', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + + # Define operator inputs. + r = np.array(0.1, dtype=np.float32) # scalar + t = np.array(0, dtype=np.int64) # scalar + x = np.array([1.2, 2.8], dtype=np.float32) + g = np.array([-0.94, -2.5], dtype=np.float32) + v = np.array([1.7, 3.6], dtype=np.float32) + + # Compute expected outputs of Momentum. + x_new, v_new = apply_nesterov(r, t, x, g, v, + norm_coefficient, alpha, beta) + + # Check results. + expect(node, inputs=[r, t, x, g, v], + outputs=[x_new, v_new], name='test_nesterov_momentum', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) + + @staticmethod + def export_momentum_multiple() -> None: + # Define operator attributes. + norm_coefficient = 0.001 + alpha = 0.95 + beta = 0.85 + + node = onnx.helper.make_node('Momentum', + inputs=['R', 'T', 'X1', 'X2', + 'G1', 'G2', 'H1', 'H2'], + outputs=['X1_new', 'X2_new', + 'V1_new', 'V2_new'], + norm_coefficient=norm_coefficient, + alpha=alpha, + beta=beta, + mode='standard', + domain=AI_ONNX_PREVIEW_TRAINING_DOMAIN + ) + + # Define operator inputs. + r = np.array(0.1, dtype=np.float32) # scalar + t = np.array(0, dtype=np.int64) # scalar + + x1 = np.array([1.0], dtype=np.float32) + g1 = np.array([-1.0], dtype=np.float32) + v1 = np.array([2.0], dtype=np.float32) + + x2 = np.array([1.0, 2.0], dtype=np.float32) + g2 = np.array([-1.0, -3.0], dtype=np.float32) + v2 = np.array([4.0, 1.0], dtype=np.float32) + + # Compute expected outputs of Momentum. + x1_new, v1_new = apply_momentum(r, t, x1, g1, v1, + norm_coefficient, alpha, beta) + x2_new, v2_new = apply_momentum(r, t, x2, g2, v2, + norm_coefficient, alpha, beta) + + # Check results. + expect(node, inputs=[r, t, x1, x2, g1, g2, v1, v2], + outputs=[x1_new, x2_new, v1_new, v2_new], name='test_momentum_multiple', + opset_imports=[onnx.helper.make_opsetid(AI_ONNX_PREVIEW_TRAINING_DOMAIN, 1)]) diff --git a/third_party/onnx/onnx/backend/test/case/node/mul.py b/third_party/onnx/onnx/backend/test/case/node/mul.py new file mode 100644 index 000000000..778fc432d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/mul.py @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Mul(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Mul', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([1, 2, 3]).astype(np.float32) + y = np.array([4, 5, 6]).astype(np.float32) + z = x * y # expected output [4., 10., 18.] + expect(node, inputs=[x, y], outputs=[z], + name='test_mul_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(3, 4, 5).astype(np.float32) + z = x * y + expect(node, inputs=[x, y], outputs=[z], + name='test_mul') + + x = np.random.randint(4, size=(3, 4, 5), dtype=np.uint8) + y = np.random.randint(24, size=(3, 4, 5), dtype=np.uint8) + z = x * y + expect(node, inputs=[x, y], outputs=[z], + name='test_mul_uint8') + + @staticmethod + def export_mul_broadcast() -> None: + node = onnx.helper.make_node( + 'Mul', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(5).astype(np.float32) + z = x * y + expect(node, inputs=[x, y], outputs=[z], + name='test_mul_bcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/neg.py b/third_party/onnx/onnx/backend/test/case/node/neg.py new file mode 100644 index 000000000..f44f07c31 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/neg.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Neg(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Neg', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-4, 2]).astype(np.float32) + y = np.negative(x) # expected output [4., -2.], + expect(node, inputs=[x], outputs=[y], + name='test_neg_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.negative(x) + expect(node, inputs=[x], outputs=[y], + name='test_neg') diff --git a/third_party/onnx/onnx/backend/test/case/node/negativeloglikelihoodloss.py b/third_party/onnx/onnx/backend/test/case/node/negativeloglikelihoodloss.py new file mode 100644 index 000000000..5894b7b6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/negativeloglikelihoodloss.py @@ -0,0 +1,477 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def compute_negative_log_likelihood_loss(input, target, weight=None, reduction='mean', ignore_index=None): # type: ignore + input_shape = input.shape + if len(input_shape) == 1: + raise RuntimeError("Unsupported shape") + + target_shape = target.shape + N = input_shape[0] + C = input_shape[1] + + # initialize the positional weights when required + gather_weight = None + if weight is not None: + # setting mode='clip' to deal with ignore_index > C or < 0 cases. + # when the target value is > C or < 0, it doesn't matter which value we are + # taking in gather_weight, since it will be set to 0 in the following if-block + # use np.int32 to make it compatible with x86 machines + gather_weight = np.take(weight, np.array(target, dtype=np.int32), mode='clip') + # set `ignore_index`'s loss weight to 0. + # The loss tensor will be multiplied by this weight tensor, + # so `ingore_index`'s loss value will be eliminated. + if ignore_index is not None: + gather_weight = np.where(target == ignore_index, 0, gather_weight).astype(dtype=np.float32) + elif ignore_index is not None: + gather_weight = np.where(target == ignore_index, 0, 1).astype(dtype=np.float32) + + # if input is 4-d and above, make it 3-d + if len(input_shape) != 3: + input = input.reshape((N, C, -1)) + target = target.reshape((N, -1)) + + # Get a dimension from the reshaped input. + # If the original input shape is [N, C, H, W], + # the D here should be H * W because we reshape + # [N, C, H, W] to [N, C, H * W]. + D = input.shape[2] + neg_gather_element_input = np.zeros((N, D), dtype=np.float32) + for i in range(N): + for d in range(D): + if target[i][d] != ignore_index: + neg_gather_element_input[i][d] = -input[i][target[i][d]][d] + + loss = neg_gather_element_input + + # if the input was 4-d or above reshape to the right shape + if len(input_shape) != 3: + loss = loss.reshape(target_shape) + + # apply the weights when required + if gather_weight is not None: + loss = gather_weight * loss + if reduction == 'mean': + loss = loss.sum() / gather_weight.sum() + return loss + + if reduction == 'mean': + loss = np.mean(loss) + elif reduction == 'sum': + loss = np.sum(loss) + return loss + + +class NegativeLogLikelihoodLoss(Base): + + @staticmethod + def export_input_shape_is_NC() -> None: + reduction = 'none' + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction + ) + + N, C = 3, 5 + np.random.seed(0) + input = np.random.rand(N, C).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, )).astype(np.int64) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + + expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NC') + + @staticmethod + def export_input_shape_is_NCd1d2() -> None: + reduction = 'none' + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction + ) + + N, C, dim1, dim2 = 3, 5, 6, 6 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + + expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2') + + @staticmethod + def export_input_shape_is_NCd1d2_reduction_mean() -> None: + reduction = 'mean' + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction + ) + + N, C, dim1, dim2 = 3, 5, 6, 6 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + + expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_reduction_mean') + + @staticmethod + def export_input_shape_is_NCd1d2_reduction_sum() -> None: + reduction = 'sum' + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction + ) + + N, C, dim1, dim2 = 3, 5, 6, 6 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2)) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + + expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_reduction_sum') + + @staticmethod + def export_input_shape_is_NCd1d2_with_weight() -> None: + reduction = 'none' + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction + ) + + N, C, dim1, dim2 = 3, 5, 6, 6 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + weight = np.random.rand(C).astype(np.float32) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + + expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight') + + @staticmethod + def export_input_shape_is_NCd1d2_with_weight_reduction_mean() -> None: + reduction = 'mean' + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction + ) + + N, C, dim1, dim2 = 3, 5, 6, 6 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + weight = np.random.rand(C).astype(np.float32) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + + expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight_reduction_mean') + + @staticmethod + def export_input_shape_is_NCd1d2_with_weight_reduction_sum() -> None: + reduction = 'sum' + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction + ) + + N, C, dim1, dim2 = 3, 5, 6, 6 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + weight = np.random.rand(C).astype(np.float32) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + + expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight_reduction_sum') + + @staticmethod + def export_input_shape_is_NCd1d2_with_weight_reduction_sum_ii() -> None: + reduction = 'sum' + ignore_index = np.int64(0) + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index + ) + + N, C, dim1, dim2 = 3, 5, 6, 6 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + target[0][0][0] = np.int64(0) + weight = np.random.rand(C).astype(np.float32) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction, ignore_index=ignore_index) + + expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_with_weight_reduction_sum_ii') + + @staticmethod + def export_input_shape_is_NCd1d2_no_weight_reduction_mean_ii() -> None: + reduction = 'mean' + ignore_index = np.int64(1) + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index + ) + + N, C, dim1, dim2 = 3, 5, 6, 6 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2)).astype(np.int64) + target[0][0][0] = np.int64(1) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, reduction=reduction, ignore_index=ignore_index) + + expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2_no_weight_reduction_mean_ii') + + @staticmethod + def export_input_shape_is_NCd1() -> None: + reduction = 'mean' + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction + ) + + N, C, d1 = 3, 5, 2 + np.random.seed(0) + input = np.random.rand(N, C, d1).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction) + + expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1') + + @staticmethod + def export_input_shape_is_NCd1_weight() -> None: + reduction = 'mean' + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction + ) + + N, C, d1 = 3, 5, 2 + np.random.seed(0) + input = np.random.rand(N, C, d1).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) + weight = np.random.rand(C).astype(np.float32) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction) + + expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_weight') + + @staticmethod + def export_input_shape_is_NCd1_ii() -> None: + reduction = 'mean' + ignore_index = np.int64(1) + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index + ) + + N, C, d1 = 3, 5, 2 + np.random.seed(0) + input = np.random.rand(N, C, d1).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) + target[0][0] = np.int64(1) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=None, reduction=reduction, ignore_index=ignore_index) + + expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_ii') + + @staticmethod + def export_input_shape_is_NCd1_weight_ii() -> None: + reduction = 'mean' + ignore_index = np.int64(1) + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index + ) + + N, C, d1 = 3, 5, 2 + np.random.seed(0) + input = np.random.rand(N, C, d1).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, d1)).astype(np.int64) + target[0][0] = np.int64(1) + weight = np.random.rand(C).astype(np.float32) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, target, weight=weight, reduction=reduction, ignore_index=ignore_index) + + expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_weight_ii') + + @staticmethod + def export_input_shape_is_NCd1d2d3d4d5_mean_weight() -> None: + reduction = 'mean' + + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction) + + N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + weight = np.random.rand(C).astype(np.float32) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + weight=weight, + reduction=reduction) + + expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3d4d5_mean_weight') + + @staticmethod + def export_input_shape_is_NCd1d2d3d4d5_none_no_weight() -> None: + reduction = 'none' + + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction) + + N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + reduction=reduction) + + expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3d4d5_none_no_weight') + + @staticmethod + def export_input_shape_is_NCd1_mean_weight_negative_ii() -> None: + reduction = 'mean' + ignore_index = np.int64(-1) + + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index) + + N, C, dim1 = 3, 5, 6 + np.random.seed(0) + input = np.random.rand(N, C, dim1).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1)).astype(np.int64) + target[0][0] = -1 + weight = np.random.rand(C).astype(np.float32) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + + expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1_mean_weight_negative_ii') + + @staticmethod + def export_input_shape_is_NCd1d2d3_none_no_weight_negative_ii() -> None: + reduction = 'none' + ignore_index = np.int64(-5) + + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index) + + N, C, dim1, dim2, dim3 = 3, 5, 6, 6, 5 + np.random.seed(0) + input = np.random.rand(N, C, dim1, dim2, dim3).astype(np.float32) + target = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3)).astype(np.int64) + target[0][0][0][0] = -5 + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + reduction=reduction, + ignore_index=ignore_index) + + expect(node, inputs=[input, target], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3_none_no_weight_negative_ii') + + @staticmethod + def export_input_shape_is_NCd1d2d3_sum_weight_high_ii() -> None: + reduction = 'sum' + ignore_index = np.int64(10) + + node = onnx.helper.make_node( + 'NegativeLogLikelihoodLoss', + inputs=['input', 'target', 'weight'], + outputs=['loss'], + reduction=reduction, + ignore_index=ignore_index) + + N, C = 3, 5 + np.random.seed(0) + input = np.random.rand(N, C).astype(np.float32) + target = np.random.randint(0, high=C, size=(N)) + target[0] = 10 + weight = np.random.rand(C).astype(np.float32) + + negative_log_likelihood_loss = compute_negative_log_likelihood_loss(input, + target, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + + expect(node, inputs=[input, target, weight], outputs=[negative_log_likelihood_loss], + name='test_nllloss_NCd1d2d3_sum_weight_high_ii') diff --git a/third_party/onnx/onnx/backend/test/case/node/nonmaxsuppression.py b/third_party/onnx/onnx/backend/test/case/node/nonmaxsuppression.py new file mode 100644 index 000000000..c9026dbfe --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/nonmaxsuppression.py @@ -0,0 +1,224 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class NonMaxSuppression(Base): + + @staticmethod + def export_nonmaxsuppression_suppress_by_IOU() -> None: + node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] + ) + boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] + ]]).astype(np.float32) + scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) + max_output_boxes_per_class = np.array([3]).astype(np.int64) + iou_threshold = np.array([0.5]).astype(np.float32) + score_threshold = np.array([0.0]).astype(np.float32) + selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 0, 5]]).astype(np.int64) + + expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_suppress_by_IOU') + + @staticmethod + def export_nonmaxsuppression_suppress_by_IOU_and_scores() -> None: + node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] + ) + boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] + ]]).astype(np.float32) + scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) + max_output_boxes_per_class = np.array([3]).astype(np.int64) + iou_threshold = np.array([0.5]).astype(np.float32) + score_threshold = np.array([0.4]).astype(np.float32) + selected_indices = np.array([[0, 0, 3], [0, 0, 0]]).astype(np.int64) + + expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_suppress_by_IOU_and_scores') + + @staticmethod + def export_nonmaxsuppression_flipped_coordinates() -> None: + node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] + ) + boxes = np.array([[ + [1.0, 1.0, 0.0, 0.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, 0.9, 1.0, -0.1], + [0.0, 10.0, 1.0, 11.0], + [1.0, 10.1, 0.0, 11.1], + [1.0, 101.0, 0.0, 100.0] + ]]).astype(np.float32) + scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) + max_output_boxes_per_class = np.array([3]).astype(np.int64) + iou_threshold = np.array([0.5]).astype(np.float32) + score_threshold = np.array([0.0]).astype(np.float32) + selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 0, 5]]).astype(np.int64) + + expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_flipped_coordinates') + + @staticmethod + def export_nonmaxsuppression_limit_output_size() -> None: + node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] + ) + boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] + ]]).astype(np.float32) + scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) + max_output_boxes_per_class = np.array([2]).astype(np.int64) + iou_threshold = np.array([0.5]).astype(np.float32) + score_threshold = np.array([0.0]).astype(np.float32) + selected_indices = np.array([[0, 0, 3], [0, 0, 0]]).astype(np.int64) + + expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_limit_output_size') + + @staticmethod + def export_nonmaxsuppression_single_box() -> None: + node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] + ) + boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0] + ]]).astype(np.float32) + scores = np.array([[[0.9]]]).astype(np.float32) + max_output_boxes_per_class = np.array([3]).astype(np.int64) + iou_threshold = np.array([0.5]).astype(np.float32) + score_threshold = np.array([0.0]).astype(np.float32) + selected_indices = np.array([[0, 0, 0]]).astype(np.int64) + + expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_single_box') + + @staticmethod + def export_nonmaxsuppression_identical_boxes() -> None: + node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] + ) + boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.0, 1.0, 1.0] + ]]).astype(np.float32) + scores = np.array([[[0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9]]]).astype(np.float32) + max_output_boxes_per_class = np.array([3]).astype(np.int64) + iou_threshold = np.array([0.5]).astype(np.float32) + score_threshold = np.array([0.0]).astype(np.float32) + selected_indices = np.array([[0, 0, 0]]).astype(np.int64) + + expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_identical_boxes') + + @staticmethod + def export_nonmaxsuppression_center_point_box_format() -> None: + node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'], + center_point_box=1 + ) + boxes = np.array([[ + [0.5, 0.5, 1.0, 1.0], + [0.5, 0.6, 1.0, 1.0], + [0.5, 0.4, 1.0, 1.0], + [0.5, 10.5, 1.0, 1.0], + [0.5, 10.6, 1.0, 1.0], + [0.5, 100.5, 1.0, 1.0] + ]]).astype(np.float32) + scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) + max_output_boxes_per_class = np.array([3]).astype(np.int64) + iou_threshold = np.array([0.5]).astype(np.float32) + score_threshold = np.array([0.0]).astype(np.float32) + selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 0, 5]]).astype(np.int64) + + expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_center_point_box_format') + + @staticmethod + def export_nonmaxsuppression_two_classes() -> None: + node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] + ) + boxes = np.array([[ + [0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0] + ]]).astype(np.float32) + scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3], + [0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) + max_output_boxes_per_class = np.array([2]).astype(np.int64) + iou_threshold = np.array([0.5]).astype(np.float32) + score_threshold = np.array([0.0]).astype(np.float32) + selected_indices = np.array([[0, 0, 3], [0, 0, 0], [0, 1, 3], [0, 1, 0]]).astype(np.int64) + + expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_two_classes') + + @staticmethod + def export_nonmaxsuppression_two_batches() -> None: + node = onnx.helper.make_node( + 'NonMaxSuppression', + inputs=['boxes', 'scores', 'max_output_boxes_per_class', 'iou_threshold', 'score_threshold'], + outputs=['selected_indices'] + ) + boxes = np.array([[[0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0]], + [[0.0, 0.0, 1.0, 1.0], + [0.0, 0.1, 1.0, 1.1], + [0.0, -0.1, 1.0, 0.9], + [0.0, 10.0, 1.0, 11.0], + [0.0, 10.1, 1.0, 11.1], + [0.0, 100.0, 1.0, 101.0]]]).astype(np.float32) + scores = np.array([[[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]], + [[0.9, 0.75, 0.6, 0.95, 0.5, 0.3]]]).astype(np.float32) + max_output_boxes_per_class = np.array([2]).astype(np.int64) + iou_threshold = np.array([0.5]).astype(np.float32) + score_threshold = np.array([0.0]).astype(np.float32) + selected_indices = np.array([[0, 0, 3], [0, 0, 0], [1, 0, 3], [1, 0, 0]]).astype(np.int64) + + expect(node, inputs=[boxes, scores, max_output_boxes_per_class, iou_threshold, score_threshold], outputs=[selected_indices], name='test_nonmaxsuppression_two_batches') diff --git a/third_party/onnx/onnx/backend/test/case/node/nonzero.py b/third_party/onnx/onnx/backend/test/case/node/nonzero.py new file mode 100644 index 000000000..2bf21e206 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/nonzero.py @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class NonZero(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'NonZero', + inputs=['condition'], + outputs=['result'], + ) + + condition = np.array([[1, 0], [1, 1]], dtype=bool) + result = np.array(np.nonzero(condition), dtype=np.int64) # expected output [[0, 1, 1], [0, 0, 1]] + expect(node, inputs=[condition], outputs=[result], + name='test_nonzero_example') diff --git a/third_party/onnx/onnx/backend/test/case/node/not.py b/third_party/onnx/onnx/backend/test/case/node/not.py new file mode 100644 index 000000000..ea4067bc1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/not.py @@ -0,0 +1,33 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Not(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Not', + inputs=['x'], + outputs=['not'], + ) + + # 2d + x = (np.random.randn(3, 4) > 0).astype(bool) + expect(node, inputs=[x], outputs=[np.logical_not(x)], + name='test_not_2d') + + # 3d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + expect(node, inputs=[x], outputs=[np.logical_not(x)], + name='test_not_3d') + + # 4d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + expect(node, inputs=[x], outputs=[np.logical_not(x)], + name='test_not_4d') diff --git a/third_party/onnx/onnx/backend/test/case/node/onehot.py b/third_party/onnx/onnx/backend/test/case/node/onehot.py new file mode 100644 index 000000000..556746072 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/onehot.py @@ -0,0 +1,106 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def one_hot(indices, depth, axis=-1, dtype=np.float32): # type: ignore + ''' Compute one hot from indices at a specific axis ''' + values = np.asarray(indices) + rank = len(values.shape) + depth_range = np.arange(depth) + if axis < 0: + axis += (rank + 1) + ls = values.shape[0:axis] + rs = values.shape[axis:rank] + targets = np.reshape(depth_range, (1,) * len(ls) + depth_range.shape + (1,) * len(rs)) + values = np.reshape(np.mod(values, depth), ls + (1,) + rs) + return np.asarray(targets == values, dtype=dtype) + + +class OneHot(Base): + + @staticmethod + def export_without_axis() -> None: + on_value = 5 + off_value = 2 + output_type = np.int32 + node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'] + ) + indices = np.array([0, 7, 8], dtype=np.int64) + depth = np.float32(12) + values = np.array([off_value, on_value], dtype=output_type) + y = one_hot(indices, depth, dtype=output_type) + y = y * (on_value - off_value) + off_value + expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_without_axis') + + @staticmethod + def export_with_axis() -> None: + axisValue = 1 + on_value = 3 + off_value = 1 + output_type = np.float32 + node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'], + axis=axisValue + ) + indices = np.array([[1, 9], + [2, 4]], dtype=np.float32) + depth = np.float32(10) + values = np.array([off_value, on_value], dtype=output_type) + y = one_hot(indices, depth, axis=axisValue, dtype=output_type) + y = y * (on_value - off_value) + off_value + expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_with_axis') + + @staticmethod + def export_with_negative_indices() -> None: + axisValue = 1 + on_value = 3 + off_value = 1 + output_type = np.float32 + node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'], + axis=axisValue + ) + indices = np.array([0, -7, -8], dtype=np.int64) + + # print(y) + # [[3. 1. 1. 1. 1. 1. 1. 1. 1. 1.] + # [1. 1. 1. 3. 1. 1. 1. 1. 1. 1.] + # [1. 1. 3. 1. 1. 1. 1. 1. 1. 1.]] + + depth = np.float32(10) + values = np.array([off_value, on_value], dtype=output_type) + y = one_hot(indices, depth, axis=axisValue, dtype=output_type) + y = y * (on_value - off_value) + off_value + expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_negative_indices') + + @staticmethod + def export_with_negative_axis() -> None: + axisValue = -2 + on_value = 3 + off_value = 1 + output_type = np.float32 + node = onnx.helper.make_node( + 'OneHot', + inputs=['indices', 'depth', 'values'], + outputs=['y'], + axis=axisValue + ) + indices = np.array([[1, 9], + [2, 4]], dtype=np.float32) + depth = np.float32(10) + values = np.array([off_value, on_value], dtype=output_type) + y = one_hot(indices, depth, axis=axisValue, dtype=output_type) + y = y * (on_value - off_value) + off_value + expect(node, inputs=[indices, depth, values], outputs=[y], name='test_onehot_with_negative_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/optionalgetelement.py b/third_party/onnx/onnx/backend/test/case/node/optionalgetelement.py new file mode 100644 index 000000000..ba124fda8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/optionalgetelement.py @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +from typing import Optional, Any + +import onnx +from ..base import Base +from . import expect + + +def optional_get_element_reference_implementation(optional: Optional[Any]) -> Any: + assert optional is not None + return optional + + +class OptionalHasElement(Base): + + @staticmethod + def export_get_element_tensor() -> None: + optional = np.array([1, 2, 3, 4]).astype(np.float32) + tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.FLOAT, shape=[4, ]) + input_type_proto = onnx.helper.make_optional_type_proto(tensor_type_proto) + + node = onnx.helper.make_node( + 'OptionalGetElement', + inputs=['optional_input'], + outputs=['output'] + ) + output = optional_get_element_reference_implementation(optional) + expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_get_element') + + @staticmethod + def export_get_element_sequence() -> None: + optional = [np.array([1, 2, 3, 4]).astype(np.int32)] + tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.INT32, shape=[4, ]) + seq_type_proto = onnx.helper.make_sequence_type_proto(tensor_type_proto) + input_type_proto = onnx.helper.make_optional_type_proto(seq_type_proto) + + node = onnx.helper.make_node( + 'OptionalGetElement', + inputs=['optional_input'], + outputs=['output'] + ) + output = optional_get_element_reference_implementation(optional) + expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_get_element_sequence') diff --git a/third_party/onnx/onnx/backend/test/case/node/optionalhaselement.py b/third_party/onnx/onnx/backend/test/case/node/optionalhaselement.py new file mode 100644 index 000000000..2966cd112 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/optionalhaselement.py @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +from typing import Optional + +import onnx +from ..base import Base +from . import expect + + +def optional_has_element_reference_implementation(optional: Optional[np.ndarray]) -> np.ndarray: + if optional is None: + return np.array(False) + else: + return np.array(True) + + +class OptionalHasElement(Base): + + @staticmethod + def export() -> None: + optional = np.array([1, 2, 3, 4]).astype(np.float32) + tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.FLOAT, shape=[4, ]) + input_type_proto = onnx.helper.make_optional_type_proto(tensor_type_proto) + node = onnx.helper.make_node( + 'OptionalHasElement', + inputs=['optional_input'], + outputs=['output'] + ) + output = optional_has_element_reference_implementation(optional) + expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_has_element') + + @staticmethod + def export_empty() -> None: + optional = None + tensor_type_proto = onnx.helper.make_tensor_type_proto(elem_type=onnx.TensorProto.INT32, shape=[]) + input_type_proto = onnx.helper.make_optional_type_proto(tensor_type_proto) + node = onnx.helper.make_node( + 'OptionalHasElement', + inputs=['optional_input'], + outputs=['output'] + ) + output = optional_has_element_reference_implementation(optional) + expect(node, inputs=[optional], outputs=[output], + input_type_protos=[input_type_proto], + name='test_optional_has_element_empty') diff --git a/third_party/onnx/onnx/backend/test/case/node/or.py b/third_party/onnx/onnx/backend/test/case/node/or.py new file mode 100644 index 000000000..b75fd77c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/or.py @@ -0,0 +1,82 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Or(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Or', + inputs=['x', 'y'], + outputs=['or'], + ) + + # 2d + x = (np.random.randn(3, 4) > 0).astype(bool) + y = (np.random.randn(3, 4) > 0).astype(bool) + z = np.logical_or(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_or2d') + + # 3d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + y = (np.random.randn(3, 4, 5) > 0).astype(bool) + z = np.logical_or(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_or3d') + + # 4d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + z = np.logical_or(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_or4d') + + @staticmethod + def export_or_broadcast() -> None: + node = onnx.helper.make_node( + 'Or', + inputs=['x', 'y'], + outputs=['or'], + ) + + # 3d vs 1d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + y = (np.random.randn(5) > 0).astype(bool) + z = np.logical_or(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast3v1d') + + # 3d vs 2d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + y = (np.random.randn(4, 5) > 0).astype(bool) + z = np.logical_or(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast3v2d') + + # 4d vs 2d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + y = (np.random.randn(5, 6) > 0).astype(bool) + z = np.logical_or(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast4v2d') + + # 4d vs 3d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + y = (np.random.randn(4, 5, 6) > 0).astype(bool) + z = np.logical_or(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast4v3d') + + # 4d vs 4d + x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool) + y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool) + z = np.logical_or(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_or_bcast4v4d') diff --git a/third_party/onnx/onnx/backend/test/case/node/pad.py b/third_party/onnx/onnx/backend/test/case/node/pad.py new file mode 100644 index 000000000..99c3ffce9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/pad.py @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def pad_impl(data, raw_pads, mode, constant_values=0.0): # type: ignore + + input_rank = data.ndim + if input_rank * 2 != raw_pads.size: + raise Exception('The number of elements in raw_pads should be 2 * data_rank') + + # re-order to np.pad accepted order ((x1_begin, x1_end), (x2_begin, x2_end), ...) + pad_width = () + for i in range(int(raw_pads.size / 2)): + pad_width += ((raw_pads[i], raw_pads[i + input_rank])), # type: ignore + + if mode == 'constant': + y = np.pad( + data, + pad_width=pad_width, + mode=mode, + constant_values=constant_values, + ) + return y + + y = np.pad( + data, + pad_width=pad_width, + mode=mode, + ) + + return y + + +class Pad(Base): + + @staticmethod + def export_constant_pad() -> None: + node = onnx.helper.make_node( + 'Pad', + inputs=['x', 'pads', 'value'], + outputs=['y'], + mode='constant' + ) + x = np.random.randn(1, 3, 4, 5).astype(np.float32) + pads = np.array([0, 0, 1, 3, 0, 0, 2, 4]).astype(np.int64) # pad order [x1_begin, x2_begin, ..., x1_end, x2_end, ...] + value = np.float32(1.2) + y = pad_impl( + x, + pads, + 'constant', + 1.2 + ) + + expect(node, inputs=[x, pads, value], outputs=[y], + name='test_constant_pad') + + @staticmethod + def export_reflection_and_edge_pad() -> None: + for mode in ['edge', 'reflect']: + node = onnx.helper.make_node( + 'Pad', + inputs=['x', 'pads'], + outputs=['y'], + mode=mode + ) + x = np.random.randn(1, 3, 4, 5).astype(np.int32) + pads = np.array([0, 0, 1, 1, 0, 0, 1, 1]).astype(np.int64) # pad order [x1_begin, x2_begin, ..., x1_end, x2_end, ...] + y = pad_impl( + x, + pads, + mode + ) + + expect(node, inputs=[x, pads], outputs=[y], + name='test_{}_pad'.format(mode)) diff --git a/third_party/onnx/onnx/backend/test/case/node/pool_op_common.py b/third_party/onnx/onnx/backend/test/case/node/pool_op_common.py new file mode 100644 index 000000000..217ef525e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/pool_op_common.py @@ -0,0 +1,75 @@ +# SPDX-License-Identifier: Apache-2.0 +import numpy as np # type: ignore +import itertools +from typing import Text, Sequence + + +def get_pad_shape(auto_pad: Text, + input_spatial_shape: Sequence[int], + kernel_spatial_shape: Sequence[int], + strides_spatial: Sequence[int], + output_spatial_shape: Sequence[int] + ) -> Sequence[int]: + pad_shape = [0] * len(input_spatial_shape) + if auto_pad in ('SAME_UPPER', 'SAME_LOWER'): + for i in range(len(input_spatial_shape)): + pad_shape[i] = (output_spatial_shape[i] - 1) * strides_spatial[i] + \ + kernel_spatial_shape[i] - input_spatial_shape[i] + elif auto_pad == 'VALID': + pass + return pad_shape + + +def get_output_shape(auto_pad: Text, + input_spatial_shape: Sequence[int], + kernel_spatial_shape: Sequence[int], + strides_spatial: Sequence[int] + ) -> Sequence[int]: + out_shape = [0] * len(input_spatial_shape) + if auto_pad in ('SAME_UPPER', 'SAME_LOWER'): + for i in range(len(input_spatial_shape)): + out_shape[i] = int( + np.ceil( + float( + input_spatial_shape[i]) + / float( + strides_spatial[i]))) + elif auto_pad == 'VALID': + for i in range(len(input_spatial_shape)): + out_shape[i] = int(np.ceil(float(input_spatial_shape[i] - (kernel_spatial_shape[i] - 1)) / float(strides_spatial[i]))) + return out_shape + + +def pool(padded: np.ndarray, + x_shape: Sequence[int], + kernel_shape: Sequence[int], + strides_shape: Sequence[int], + out_shape: Sequence[int], + pad_shape: Sequence[int], + pooling_type: Text, + count_include_pad: int = 0 + ) -> np.ndarray: + spatial_size = len(x_shape) - 2 + y = np.zeros([x_shape[0], x_shape[1]] + list(out_shape)) + + for shape in itertools.product(range(x_shape[0]), range(x_shape[1]), *[range(int( + (x_shape[i + 2] + pad_shape[i] - kernel_shape[i]) / strides_shape[i] + 1)) for i in range(spatial_size)]): + window = padded[shape[0], shape[1]] + window_vals = np.array([window[i] for i in list( + itertools.product( + *[range(strides_shape[i] * shape[i + 2], strides_shape[i] * shape[i + 2] + kernel_shape[i]) for i in + range(spatial_size)]) + )]) + if pooling_type == 'AVG': + f = np.average + elif pooling_type == 'MAX': + f = np.max + else: + raise NotImplementedError( + 'Pooling type {} does not support. Should be AVG, MAX'.format(pooling_type)) + + if count_include_pad == 1 and pooling_type == 'AVG': + y[shape] = f(window_vals) + else: + y[shape] = f(window_vals[np.where(~np.isnan(window_vals))]) + return y.astype(np.float32) diff --git a/third_party/onnx/onnx/backend/test/case/node/pow.py b/third_party/onnx/onnx/backend/test/case/node/pow.py new file mode 100644 index 000000000..dcffbdfc9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/pow.py @@ -0,0 +1,117 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def pow(x, y): # type: ignore + z = np.power(x, y).astype(x.dtype) + return z + + +class Pow(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([1, 2, 3]).astype(np.float32) + y = np.array([4, 5, 6]).astype(np.float32) + z = pow(x, y) # expected output [1., 32., 729.] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_example') + + x = np.arange(60).reshape(3, 4, 5).astype(np.float32) + y = np.random.randn(3, 4, 5).astype(np.float32) + z = pow(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_pow') + + @staticmethod + def export_pow_broadcast() -> None: + node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([1, 2, 3]).astype(np.float32) + y = np.array(2).astype(np.float32) + z = pow(x, y) # expected output [1., 4., 9.] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_bcast_scalar') + + node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], + ) + x = np.array([[1, 2, 3], [4, 5, 6]]).astype(np.float32) + y = np.array([1, 2, 3]).astype(np.float32) + # expected output [[1, 4, 27], [4, 25, 216]] + z = pow(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_bcast_array') + + @staticmethod + def export_types() -> None: + node = onnx.helper.make_node( + 'Pow', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([1, 2, 3]).astype(np.float32) + y = np.array([4, 5, 6]).astype(np.int64) + z = pow(x, y) # expected output [1., 32., 729.] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_int64') + + x = np.array([1, 2, 3]).astype(np.int64) + y = np.array([4, 5, 6]).astype(np.float32) + z = pow(x, y) # expected output [1, 32, 729] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int64_float32') + + x = np.array([1, 2, 3]).astype(np.float32) + y = np.array([4, 5, 6]).astype(np.int32) + z = pow(x, y) # expected output [1., 32., 729.] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_int32') + + x = np.array([1, 2, 3]).astype(np.int32) + y = np.array([4, 5, 6]).astype(np.float32) + z = pow(x, y) # expected output [1, 32, 729] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int32_float32') + + x = np.array([1, 2, 3]).astype(np.float32) + y = np.array([4, 5, 6]).astype(np.uint64) + z = pow(x, y) # expected output [1., 32., 729.] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_uint64') + + x = np.array([1, 2, 3]).astype(np.float32) + y = np.array([4, 5, 6]).astype(np.uint32) + z = pow(x, y) # expected output [1., 32., 729.] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_float32_uint32') + + x = np.array([1, 2, 3]).astype(np.int64) + y = np.array([4, 5, 6]).astype(np.int64) + z = pow(x, y) # expected output [1, 32, 729] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int64_int64') + + x = np.array([1, 2, 3]).astype(np.int32) + y = np.array([4, 5, 6]).astype(np.int32) + z = pow(x, y) # expected output [1, 32, 729] + expect(node, inputs=[x, y], outputs=[z], + name='test_pow_types_int32_int32') diff --git a/third_party/onnx/onnx/backend/test/case/node/prelu.py b/third_party/onnx/onnx/backend/test/case/node/prelu.py new file mode 100644 index 000000000..0a650afdf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/prelu.py @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class PRelu(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'PRelu', + inputs=['x', 'slope'], + outputs=['y'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + slope = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * slope + + expect(node, inputs=[x, slope], outputs=[y], + name='test_prelu_example') + + @staticmethod + def export_prelu_broadcast() -> None: + node = onnx.helper.make_node( + 'PRelu', + inputs=['x', 'slope'], + outputs=['y'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + slope = np.random.randn(5).astype(np.float32) + y = np.clip(x, 0, np.inf) + np.clip(x, -np.inf, 0) * slope + + expect(node, inputs=[x, slope], outputs=[y], + name='test_prelu_broadcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/qlinearconv.py b/third_party/onnx/onnx/backend/test/case/node/qlinearconv.py new file mode 100644 index 000000000..20f2b2603 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/qlinearconv.py @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +import onnx +from ..base import Base +from . import expect + + +class QLinearConv(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node('QLinearConv', + inputs=['x', 'x_scale', 'x_zero_point', 'w', 'w_scale', 'w_zero_point', 'y_scale', 'y_zero_point'], + outputs=['y'],) + + x = np.array([[255, 174, 162, 25, 203, 168, 58], + [15, 59, 237, 95, 129, 0, 64], + [56, 242, 153, 221, 168, 12, 166], + [232, 178, 186, 195, 237, 162, 237], + [188, 39, 124, 77, 80, 102, 43], + [127, 230, 21, 83, 41, 40, 134], + [255, 154, 92, 141, 42, 148, 247], ], dtype=np.uint8).reshape((1, 1, 7, 7)) + + x_scale = np.float32(0.00369204697) + x_zero_point = np.uint8(132) + + w = np.array([0], dtype=np.uint8).reshape((1, 1, 1, 1)) + + w_scale = np.array([0.00172794575], dtype=np.float32) + w_zero_point = np.array([255], dtype=np.uint8) + + y_scale = np.float32(0.00162681262) + y_zero_point = np.uint8(123) + + output = np.array([[0, 81, 93, 230, 52, 87, 197], + [240, 196, 18, 160, 126, 255, 191], + [199, 13, 102, 34, 87, 243, 89], + [23, 77, 69, 60, 18, 93, 18], + [67, 216, 131, 178, 175, 153, 212], + [128, 25, 234, 172, 214, 215, 121], + [0, 101, 163, 114, 213, 107, 8], ], dtype=np.uint8).reshape((1, 1, 7, 7)) + + expect(node, inputs=[x, x_scale, x_zero_point, w, w_scale, w_zero_point, y_scale, y_zero_point], outputs=[output], + name='test_qlinearconv') diff --git a/third_party/onnx/onnx/backend/test/case/node/qlinearmatmul.py b/third_party/onnx/onnx/backend/test/case/node/qlinearmatmul.py new file mode 100644 index 000000000..e70366ec6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/qlinearmatmul.py @@ -0,0 +1,71 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +import onnx +from ..base import Base +from . import expect + + +class QLinearMatMul(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node('QLinearMatMul', + inputs=['a', 'a_scale', 'a_zero_point', 'b', 'b_scale', 'b_zero_point', 'y_scale', 'y_zero_point'], + outputs=['y'],) + + #2D + a = np.array([[208, 236, 0, 238], + [3, 214, 255, 29], ], dtype=np.uint8) + + a_scale = np.array([0.0066], dtype=np.float32) + a_zero_point = np.array([113], dtype=np.uint8) + + b = np.array([[152, 51, 244], + [60, 26, 255], + [0, 127, 246], + [127, 254, 247]], dtype=np.uint8) + + b_scale = np.array([0.00705], dtype=np.float32) + b_zero_point = np.array([114], dtype=np.uint8) + + y_scale = np.array([0.0107], dtype=np.float32) + y_zero_point = np.array([118], dtype=np.uint8) + + output = np.array([[168, 115, 255], + [1, 66, 151], ], dtype=np.uint8) + + expect(node, inputs=[a, a_scale, a_zero_point, b, b_scale, b_zero_point, y_scale, y_zero_point], outputs=[output], + name='test_qlinearmatmul_2D') + + #3D + a = np.array([[[208, 236, 0, 238], + [3, 214, 255, 29]], + [[208, 236, 0, 238], + [3, 214, 255, 29]]], dtype=np.uint8) + + a_scale = np.array([0.0066], dtype=np.float32) + a_zero_point = np.array([113], dtype=np.uint8) + + b = np.array([[[152, 51, 244], + [60, 26, 255], + [0, 127, 246], + [127, 254, 247]], + [[152, 51, 244], + [60, 26, 255], + [0, 127, 246], + [127, 254, 247]]], dtype=np.uint8) + + b_scale = np.array([0.00705], dtype=np.float32) + b_zero_point = np.array([114], dtype=np.uint8) + + y_scale = np.array([0.0107], dtype=np.float32) + y_zero_point = np.array([118], dtype=np.uint8) + + output = np.array([[[168, 115, 255], + [1, 66, 151]], + [[168, 115, 255], + [1, 66, 151]]], dtype=np.uint8) + + expect(node, inputs=[a, a_scale, a_zero_point, b, b_scale, b_zero_point, y_scale, y_zero_point], outputs=[output], + name='test_qlinearmatmul_3D') diff --git a/third_party/onnx/onnx/backend/test/case/node/quantizelinear.py b/third_party/onnx/onnx/backend/test/case/node/quantizelinear.py new file mode 100644 index 000000000..205a3564c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/quantizelinear.py @@ -0,0 +1,47 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +import onnx +from ..base import Base +from . import expect + + +class QuantizeLinear(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node('QuantizeLinear', + inputs=['x', 'y_scale', 'y_zero_point'], + outputs=['y'],) + + x = np.array([0, 2, 3, 1000, -254, -1000]).astype(np.float32) + y_scale = np.float32(2) + y_zero_point = np.uint8(128) + y = np.array([128, 129, 130, 255, 1, 0]).astype(np.uint8) + + expect(node, inputs=[x, y_scale, y_zero_point], outputs=[y], + name='test_quantizelinear') + + @staticmethod + def export_axis() -> None: + node = onnx.helper.make_node('QuantizeLinear', + inputs=['x', 'y_scale', 'y_zero_point'], + outputs=['y'],) + + x = np.array([[[[-162, 10], + [-100, 232], + [-20, -50]], + + [[-76, 0], + [0, 252], + [32, -44]], + + [[245, -485], + [-960, -270], + [-375, -470]], ], ], dtype=np.float32) + y_scale = np.array([2, 4, 5], dtype=np.float32) + y_zero_point = np.array([84, 24, 196], dtype=np.uint8) + y = (x / y_scale.reshape(1, 3, 1, 1) + y_zero_point.reshape(1, 3, 1, 1)).astype(np.uint8) + + expect(node, inputs=[x, y_scale, y_zero_point], outputs=[y], + name='test_quantizelinear_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/rangeop.py b/third_party/onnx/onnx/backend/test/case/node/rangeop.py new file mode 100644 index 000000000..0a0e5ffd4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/rangeop.py @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Range(Base): + + @staticmethod + def export_range_float_type_positive_delta() -> None: + node = onnx.helper.make_node( + 'Range', + inputs=['start', 'limit', 'delta'], + outputs=['output'], + ) + + start = np.float32(1) + limit = np.float32(5) + delta = np.float32(2) + + output = np.arange(start, limit, delta, dtype=np.float32) # expected output [1.0, 3.0] + expect(node, inputs=[start, limit, delta], outputs=[output], + name='test_range_float_type_positive_delta') + + @staticmethod + def export_range_int32_type_negative_delta() -> None: + node = onnx.helper.make_node( + 'Range', + inputs=['start', 'limit', 'delta'], + outputs=['output'], + ) + + start = np.int32(10) + limit = np.int32(6) + delta = np.int32(-3) + + output = np.arange(start, limit, delta, dtype=np.int32) # expected output [10, 7] + expect(node, inputs=[start, limit, delta], outputs=[output], + name='test_range_int32_type_negative_delta') diff --git a/third_party/onnx/onnx/backend/test/case/node/reciprocal.py b/third_party/onnx/onnx/backend/test/case/node/reciprocal.py new file mode 100644 index 000000000..441fc0df6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reciprocal.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Reciprocal(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Reciprocal', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-4, 2]).astype(np.float32) + y = np.reciprocal(x) # expected output [-0.25, 0.5], + expect(node, inputs=[x], outputs=[y], + name='test_reciprocal_example') + + x = np.random.rand(3, 4, 5).astype(np.float32) + 0.5 + y = np.reciprocal(x) + expect(node, inputs=[x], outputs=[y], + name='test_reciprocal') diff --git a/third_party/onnx/onnx/backend/test/case/node/reduce_log_sum.py b/third_party/onnx/onnx/backend/test/case/node/reduce_log_sum.py new file mode 100644 index 000000000..a4720d515 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reduce_log_sum.py @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceLogSum(Base): + + @staticmethod + def export_nokeepdims() -> None: + node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"], + axes=[2, 1], + keepdims=0 + ) + data = np.random.ranf([3, 4, 5]).astype(np.float32) + reduced = np.log(np.sum(data, axis=(2, 1), keepdims=False)) + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_desc_axes') + + node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"], + axes=[0, 1], + keepdims=0 + ) + data = np.random.ranf([3, 4, 5]).astype(np.float32) + reduced = np.log(np.sum(data, axis=(0, 1), keepdims=False)) + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_asc_axes') + + @staticmethod + def export_keepdims() -> None: + node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"] + ) + data = np.random.ranf([3, 4, 5]).astype(np.float32) + reduced = np.log(np.sum(data, keepdims=True)) + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_default') + + @staticmethod + def export_negative_axes_keepdims() -> None: + node = onnx.helper.make_node( + 'ReduceLogSum', + inputs=['data'], + outputs=["reduced"], + axes=[-2] + ) + data = np.random.ranf([3, 4, 5]).astype(np.float32) + reduced = np.log(np.sum(data, axis=(-2), keepdims=True)) + # print(reduced) + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_negative_axes') diff --git a/third_party/onnx/onnx/backend/test/case/node/reduce_log_sum_exp.py b/third_party/onnx/onnx/backend/test/case/node/reduce_log_sum_exp.py new file mode 100644 index 000000000..695f797b9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reduce_log_sum_exp.py @@ -0,0 +1,149 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceLogSumExp(Base): + + @staticmethod + def export_do_not_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 0 + node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims + ) + + data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) + reduced = np.log(np.sum( + np.exp(data), axis=tuple(axes), keepdims=keepdims == 1)) + # print(reduced) + #[[20., 2.31326175] + # [40.00004578, 2.31326175] + # [60.00671387, 2.31326175]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_do_not_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.double) + reduced = np.log(np.sum( + np.exp(data), axis=tuple(axes), keepdims=keepdims == 1)) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_do_not_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 1 + node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims + ) + + data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) + reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) + # print(reduced) + # [[[20., 2.31326175]] + # [[40.00004578, 2.31326175]] + # [[60.00671387, 2.31326175]]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.double) + reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_keepdims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = None + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims + ) + + data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) + reduced = np.log(np.sum(np.exp(data), + axis=axes, + keepdims=keepdims == 1)) + # print(reduced) + # [[[60.00671387]]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_default_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.double) + reduced = np.log(np.sum(np.exp(data), + axis=axes, + keepdims=keepdims == 1)) + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_default_axes_keepdims_random') + + @staticmethod + def export_negative_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = [-2] + keepdims = 1 + node = onnx.helper.make_node( + 'ReduceLogSumExp', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims + ) + + data = np.array( + [[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], + dtype=np.double) + reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) + # print(reduced) + # [[[20., 2.31326175]] + # [[40.00004578, 2.31326175]] + # [[60.00671387, 2.31326175]]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_negative_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.double) + reduced = np.log(np.sum(np.exp(data), + axis=tuple(axes), + keepdims=keepdims == 1)) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_log_sum_exp_negative_axes_keepdims_random') diff --git a/third_party/onnx/onnx/backend/test/case/node/reducel1.py b/third_party/onnx/onnx/backend/test/case/node/reducel1.py new file mode 100644 index 000000000..70b31d79a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reducel1.py @@ -0,0 +1,137 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceL1(Base): + + @staticmethod + def export_do_not_keepdims() -> None: + shape = [3, 2, 2] + axes = [2] + keepdims = 0 + + node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims + ) + + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + #print(data) + #[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + + reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[3., 7.], [11., 15.], [19., 23.]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_do_not_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_do_not_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + shape = [3, 2, 2] + axes = [2] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims + ) + + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + #print(data) + #[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + + reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[[3.], [7.]], [[11.], [15.]], [[19.], [23.]]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_keep_dims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_keep_dims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = None + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims + ) + + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + #print(data) + #[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + + reduced = np.sum(a=np.abs(data), axis=axes, keepdims=keepdims == 1) + #print(reduced) + #[[[78.]]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_default_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(a=np.abs(data), axis=axes, keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_default_axes_keepdims_random') + + @staticmethod + def export_negative_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = [-1] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceL1', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims + ) + + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + # print(data) + #[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + + reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + # print(reduced) + #[[[3.], [7.]], [[11.], [15.]], [[19.], [23.]]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_negative_axes_keep_dims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(a=np.abs(data), axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l1_negative_axes_keep_dims_random') diff --git a/third_party/onnx/onnx/backend/test/case/node/reducel2.py b/third_party/onnx/onnx/backend/test/case/node/reducel2.py new file mode 100644 index 000000000..6dd61b269 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reducel2.py @@ -0,0 +1,150 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceL2(Base): + + @staticmethod + def export_do_not_keepdims() -> None: + shape = [3, 2, 2] + axes = [2] + keepdims = 0 + + node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims + ) + + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + #print(data) + #[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + + reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + #print(reduced) + #[[2.23606798, 5.], + # [7.81024968, 10.63014581], + # [13.45362405, 16.2788206]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_do_not_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_do_not_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + shape = [3, 2, 2] + axes = [2] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims + ) + + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + #print(data) + #[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + + reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + #print(reduced) + #[[[2.23606798], [5.]] + # [[7.81024968], [10.63014581]] + # [[13.45362405], [16.2788206 ]]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_keep_dims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_l2_keep_dims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = None + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims + ) + + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + #print(data) + #[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + + reduced = np.sqrt(np.sum( + a=np.square(data), axis=axes, keepdims=keepdims == 1)) + #print(reduced) + #[[[25.49509757]]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_default_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sqrt(np.sum( + a=np.square(data), axis=axes, keepdims=keepdims == 1)) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_default_axes_keepdims_random') + + @staticmethod + def export_negative_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = [-1] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceL2', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims + ) + + data = np.reshape(np.arange(1, np.prod(shape) + 1, dtype=np.float32), shape) + # print(data) + #[[[1., 2.], [3., 4.]], [[5., 6.], [7., 8.]], [[9., 10.], [11., 12.]]] + + reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + # print(reduced) + #[[[2.23606798], [5.]] + # [[7.81024968], [10.63014581]] + # [[13.45362405], [16.2788206 ]]] + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_negative_axes_keep_dims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sqrt(np.sum( + a=np.square(data), axis=tuple(axes), keepdims=keepdims == 1)) + + expect(node, inputs=[data], outputs=[reduced], + name='test_reduce_l2_negative_axes_keep_dims_random') diff --git a/third_party/onnx/onnx/backend/test/case/node/reducemax.py b/third_party/onnx/onnx/backend/test/case/node/reducemax.py new file mode 100644 index 000000000..c187b5b67 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reducemax.py @@ -0,0 +1,118 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceMax(Base): + + @staticmethod + def export_do_not_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 0 + + node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[20., 2.] + # [40., 2.] + # [60., 2.]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_do_not_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_do_not_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[[20., 2.]] + # [[40., 2.]] + # [[60., 2.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_keepdims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = None + keepdims = 1 + node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.maximum.reduce(data, axis=axes, keepdims=keepdims == 1) + #print(reduced) + [[[60.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_default_axes_keepdim_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.maximum.reduce(data, axis=axes, keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_default_axes_keepdims_random') + + @staticmethod + def export_negative_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = [-2] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceMax', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + # print(reduced) + #[[[20., 2.]] + # [[40., 2.]] + # [[60., 2.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_negative_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.maximum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_max_negative_axes_keepdims_random') diff --git a/third_party/onnx/onnx/backend/test/case/node/reducemean.py b/third_party/onnx/onnx/backend/test/case/node/reducemean.py new file mode 100644 index 000000000..d23924d25 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reducemean.py @@ -0,0 +1,119 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceMean(Base): + + @staticmethod + def export_do_not_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 0 + + node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[12.5, 1.5] + # [35., 1.5] + # [57.5, 1.5]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_do_not_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_do_not_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[[12.5, 1.5]] + # [[35., 1.5]] + # [[57.5, 1.5]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_keepdims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = None + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.mean(data, axis=axes, keepdims=keepdims == 1) + #print(reduced) + #[[[18.25]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_default_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.mean(data, axis=axes, keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_default_axes_keepdims_random') + + @staticmethod + def export_negative_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = [-2] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceMean', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + # print(reduced) + # [[[12.5, 1.5]] + # [[35., 1.5]] + # [[57.5, 1.5]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_negative_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.mean(data, axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_mean_negative_axes_keepdims_random') diff --git a/third_party/onnx/onnx/backend/test/case/node/reducemin.py b/third_party/onnx/onnx/backend/test/case/node/reducemin.py new file mode 100644 index 000000000..8cd2f72aa --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reducemin.py @@ -0,0 +1,117 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceMin(Base): + + @staticmethod + def export_do_not_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 0 + + node = onnx.helper.make_node( + 'ReduceMin', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[5., 1.] + # [30., 1.] + # [55., 1.]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_do_not_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_do_not_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceMin', inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[[5., 1.]] + # [[30., 1.]] + # [[55., 1.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_keepdims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = None + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceMin', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.minimum.reduce(data, axis=axes, keepdims=keepdims == 1) + #print(reduced) + #[[[1.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_default_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.minimum.reduce(data, axis=axes, keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_default_axes_keepdims_random') + + @staticmethod + def export_negative_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = [-2] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceMin', inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[5, 1], [20, 2]], [[30, 1], [40, 2]], [[55, 1], [60, 2]]], dtype=np.float32) + reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + # print(reduced) + #[[[5., 1.]] + # [[30., 1.]] + # [[55., 1.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_negative_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.minimum.reduce(data, axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_min_negative_axes_keepdims_random') diff --git a/third_party/onnx/onnx/backend/test/case/node/reduceprod.py b/third_party/onnx/onnx/backend/test/case/node/reduceprod.py new file mode 100644 index 000000000..dbd651d5f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reduceprod.py @@ -0,0 +1,115 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceProd(Base): + + @staticmethod + def export_do_not_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 0 + + node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[3., 8.] + # [35., 48.] + # [99., 120.]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_do_not_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_do_not_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[[3., 8.]] + # [[35., 48.]] + # [[99., 120.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_keepdims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = None + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.prod(data, axis=axes, keepdims=keepdims == 1) + #print(reduced) + #[[[4.790016e+08]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_default_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.prod(data, axis=axes, keepdims=keepdims == 1) + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_default_axes_keepdims_random') + + @staticmethod + def export_negative_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = [-2] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceProd', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) + # print(reduced) + #[[[3., 8.]] + # [[35., 48.]] + # [[99., 120.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_negative_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.prod(data, axis=tuple(axes), keepdims=keepdims == 1) + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_prod_negative_axes_keepdims_random') diff --git a/third_party/onnx/onnx/backend/test/case/node/reducesum.py b/third_party/onnx/onnx/backend/test/case/node/reducesum.py new file mode 100644 index 000000000..6ec666ceb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reducesum.py @@ -0,0 +1,146 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceSum(Base): + + @staticmethod + def export_do_not_keepdims() -> None: + shape = [3, 2, 2] + axes = np.array([1], dtype=np.int64) + keepdims = 0 + + node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) + #print(reduced) + #[[4., 6.] + # [12., 14.] + # [20., 22.]] + + expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_do_not_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) + + expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_do_not_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + shape = [3, 2, 2] + axes = np.array([1], dtype=np.int64) + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) + #print(reduced) + #[[[4., 6.]] + # [[12., 14.]] + # [[20., 22.]]] + + expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) + + expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_keepdims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = np.array([], dtype=np.int64) + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.sum(data, axis=None, keepdims=keepdims == 1) + #print(reduced) + #[[[78.]]] + + expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_default_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(data, axis=None, keepdims=keepdims == 1) + + expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_default_axes_keepdims_random') + + @staticmethod + def export_negative_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = np.array([-2], dtype=np.int64) + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.sum(data, axis=tuple(axes.tolist()), keepdims=keepdims == 1) + # print(reduced) + #[[[4., 6.]] + # [[12., 14.]] + # [[20., 22.]]] + + expect(node, inputs=[data, axes], outputs=[reduced], + name='test_reduce_sum_negative_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(data, axis=tuple( + axes.tolist()), keepdims=keepdims == 1) + + expect(node, inputs=[data, axes], outputs=[reduced], + name='test_reduce_sum_negative_axes_keepdims_random') + + @staticmethod + def export_empty_axes_input_noop() -> None: + shape = [3, 2, 2] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceSum', + inputs=['data', 'axes'], + outputs=['reduced'], + keepdims=keepdims, + noop_with_empty_axes=True) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + axes = np.array([], dtype=np.int64) + reduced = np.array(data) + #print(reduced) + #[[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]] + + expect(node, inputs=[data, axes], outputs=[reduced], + name='test_reduce_sum_empty_axes_input_noop_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.array(data) + + expect(node, inputs=[data, axes], outputs=[reduced], name='test_reduce_sum_negative_axes_keepdims_random') diff --git a/third_party/onnx/onnx/backend/test/case/node/reducesumsquare.py b/third_party/onnx/onnx/backend/test/case/node/reducesumsquare.py new file mode 100644 index 000000000..20fc1a464 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reducesumsquare.py @@ -0,0 +1,119 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReduceSumSquare(Base): + + @staticmethod + def export_do_not_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 0 + + node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[10., 20.] + # [74., 100.] + # [202., 244.]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_do_not_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_do_not_keepdims_random') + + @staticmethod + def export_keepdims() -> None: + shape = [3, 2, 2] + axes = [1] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + #print(reduced) + #[[[10., 20.]] + # [[74., 100.]] + # [[202., 244.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_keepdims_random') + + @staticmethod + def export_default_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = None + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.sum(np.square(data), axis=axes, keepdims=keepdims == 1) + #print(reduced) + #[[[650.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_default_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(np.square(data), axis=axes, keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_default_axes_keepdims_random') + + @staticmethod + def export_negative_axes_keepdims() -> None: + shape = [3, 2, 2] + axes = [-2] + keepdims = 1 + + node = onnx.helper.make_node( + 'ReduceSumSquare', + inputs=['data'], + outputs=['reduced'], + axes=axes, + keepdims=keepdims) + + data = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]], dtype=np.float32) + reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + # print(reduced) + #[[[10., 20.s]] + # [[74., 100.]] + # [[202., 244.]]] + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_negative_axes_keepdims_example') + + np.random.seed(0) + data = np.random.uniform(-10, 10, shape).astype(np.float32) + reduced = np.sum(np.square(data), axis=tuple(axes), keepdims=keepdims == 1) + + expect(node, inputs=[data], outputs=[reduced], name='test_reduce_sum_square_negative_axes_keepdims_random') diff --git a/third_party/onnx/onnx/backend/test/case/node/relu.py b/third_party/onnx/onnx/backend/test/case/node/relu.py new file mode 100644 index 000000000..26d2a7152 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/relu.py @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Relu(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Relu', + inputs=['x'], + outputs=['y'], + ) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, 0, np.inf) + + expect(node, inputs=[x], outputs=[y], + name='test_relu') diff --git a/third_party/onnx/onnx/backend/test/case/node/reshape.py b/third_party/onnx/onnx/backend/test/case/node/reshape.py new file mode 100644 index 000000000..a435166e5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reshape.py @@ -0,0 +1,71 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def reshape_reference_implementation(data: np.ndarray, shape: np.ndarray, allowzero: int = 0) -> np.ndarray: + # replace zeros with corresponding dim size + # we need to do this because np.reshape doesn't support 0 by default unless 'allowzero' is set + new_shape = np.copy(shape) + if allowzero == 0: + zeros_index = np.where(shape == 0) + new_shape[zeros_index] = np.array(data.shape)[zeros_index] + reshaped = np.reshape(data, new_shape) + return reshaped + + +class Reshape(Base): + + @staticmethod + def export_reshape() -> None: + original_shape = [2, 3, 4] + test_cases = { + 'reordered_all_dims': np.array([4, 2, 3], dtype=np.int64), + 'reordered_last_dims': np.array([2, 4, 3], dtype=np.int64), + 'reduced_dims': np.array([2, 12], dtype=np.int64), + 'extended_dims': np.array([2, 3, 2, 2], dtype=np.int64), + 'one_dim': np.array([24], dtype=np.int64), + 'negative_dim': np.array([2, -1, 2], dtype=np.int64), + 'negative_extended_dims': np.array([-1, 2, 3, 4], dtype=np.int64), + 'zero_dim': np.array([2, 0, 4, 1], dtype=np.int64), + 'zero_and_negative_dim': np.array([2, 0, 1, -1], dtype=np.int64), + } + data = np.random.random_sample(original_shape).astype(np.float32) + + for test_name, shape in test_cases.items(): + node = onnx.helper.make_node( + 'Reshape', + inputs=['data', 'shape'], + outputs=['reshaped'], + ) + + reshaped = reshape_reference_implementation(data, shape) + + expect(node, inputs=[data, shape], outputs=[reshaped], + name='test_reshape_' + test_name) + + @staticmethod + def export_allowzero() -> None: + original_shape = [0, 3, 4] + test_cases = { + 'allowzero_reordered': np.array([3, 4, 0], dtype=np.int64), + } + data = np.random.random_sample(original_shape).astype(np.float32) + + for test_name, shape in test_cases.items(): + node = onnx.helper.make_node( + 'Reshape', + inputs=['data', 'shape'], + outputs=['reshaped'], + allowzero=1, # if allowzero=1, final shape = (3, 4, 0) + # if allowzero=0, final shape = (3, 4, 4) + ) + + reshaped = reshape_reference_implementation(data, shape, allowzero=1) + + expect(node, inputs=[data, shape], outputs=[reshaped], + name='test_reshape_' + test_name) diff --git a/third_party/onnx/onnx/backend/test/case/node/resize.py b/third_party/onnx/onnx/backend/test/case/node/resize.py new file mode 100644 index 000000000..f220e6cb7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/resize.py @@ -0,0 +1,939 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from typing import Any, List, Callable, Union, Optional, Text + + +def cartesian(arrays: List[np.ndarray], out: np.ndarray = None) -> np.ndarray: + """ + From https://stackoverflow.com/a/1235363 + Generate a cartesian product of input arrays. + Parameters + ---------- + arrays : list of array-like + 1-D arrays to form the cartesian product of. + out : ndarray + Array to place the cartesian product in. + Returns + ------- + out : ndarray + 2-D array of shape (M, len(arrays)) containing cartesian products + formed of input arrays. + Examples + -------- + >>> cartesian(([1, 2, 3], [4, 5], [6, 7])) + array([[1, 4, 6], + [1, 4, 7], + [1, 5, 6], + [1, 5, 7], + [2, 4, 6], + [2, 4, 7], + [2, 5, 6], + [2, 5, 7], + [3, 4, 6], + [3, 4, 7], + [3, 5, 6], + [3, 5, 7]]) + """ + + arrays = [np.asarray(x) for x in arrays] + dtype = arrays[0].dtype + + n = np.prod([x.size for x in arrays]) + if out is None: + out = np.zeros([n, len(arrays)], dtype=dtype) + + m = n // arrays[0].size + out[:, 0] = np.repeat(arrays[0], m) + if arrays[1:]: + cartesian(arrays[1:], out=out[0:m, 1:]) + for j in range(1, arrays[0].size): + out[j * m:(j + 1) * m, 1:] = out[0:m, 1:] + return out + + +def interpolate_1d_with_x(data: np.ndarray, + scale_factor: float, + x: float, + get_coeffs: Callable[[float], np.ndarray], + roi: np.ndarray = None, + extrapolation_value: float = 0.0, + coordinate_transformation_mode: Text = 'half_pixel', + exclude_outside: bool = False, + ) -> np.ndarray: + def get_neighbor_idxes(x: float, n: int, limit: int) -> np.ndarray: + """ + Return the n nearest indexes to x among [0, limit), prefer the indexes smaller than x. + As a result, the ratio must be in (0, 1] + Examples: + get_neighbor_idxes(4, 2, 10) == [3, 4] + get_neighbor_idxes(4, 3, 10) == [3, 4, 5] + get_neighbor_idxes(4.4, 3, 10) == [3, 4, 5] + get_neighbor_idxes(4.5, 3, 10) == [3, 4, 5] + get_neighbor_idxes(4.6, 3, 10) == [4, 5, 6] + get_neighbor_idxes(4.4, 1, 10) == [4] + get_neighbor_idxes(4.6, 1, 10) == [5] + :param x: + :param n: the number of the wanted indexes + :param limit: the maximum value of index + :return: An np.array containing n nearest indexes in ascending order + """ + idxes = sorted(range(limit), key=lambda idx: (abs(x - idx), idx))[:n] + idxes = sorted(idxes) + return np.array(idxes) + + def get_neighbor(x: float, n: int, data: np.ndarray) -> np.ndarray: + """ + Pad `data` in 'edge' mode, and get n nearest elements in the padded array and their indexes in the original + array + :param x: center index (in the unpadded coordinate system) of the found nearest elements. + :param n: the number of neighbors. + :param data: the array + :return: A tuple containing the indexes of neighbor elements (the index can be smaller than 0 or higher than + len(data)) and the value of these elements + """ + pad_width = np.ceil(n / 2).astype(int) + padded = np.pad(data, pad_width, mode='edge') + x += pad_width + + idxes = get_neighbor_idxes(x, n, len(padded)) + ret = padded[idxes] + return idxes - pad_width, ret + + input_width = len(data) + output_width = scale_factor * input_width + if coordinate_transformation_mode == 'align_corners': + if output_width == 1: + x_ori = 0. + else: + x_ori = x * (input_width - 1) / (output_width - 1) + elif coordinate_transformation_mode == 'asymmetric': + x_ori = x / scale_factor + elif coordinate_transformation_mode == 'tf_crop_and_resize': + if output_width == 1: + x_ori = (roi[1] - roi[0]) * (input_width - 1) / 2 + else: + x_ori = x * (roi[1] - roi[0]) * \ + (input_width - 1) / (output_width - 1) + x_ori += (roi[0] * (input_width - 1)) + # Return extrapolation_value directly as what TF CropAndResize does + if x_ori < 0 or x_ori > input_width - 1: + return extrapolation_value + elif coordinate_transformation_mode == 'pytorch_half_pixel': + if output_width == 1: + x_ori = -0.5 + else: + x_ori = (x + 0.5) / scale_factor - 0.5 + elif coordinate_transformation_mode == 'half_pixel': + x_ori = (x + 0.5) / scale_factor - 0.5 + else: + raise ValueError(f'invalid coordinate_transformation_mode: {coordinate_transformation_mode}') + x_ori_int = np.floor(x_ori).astype(int).item() + + # ratio must be in (0, 1] since we prefer the pixel on the left of `x_ori` + if x_ori.is_integer(): + ratio = 1 + else: + ratio = x_ori - x_ori_int + + coeffs = get_coeffs(ratio) + n = len(coeffs) + + idxes, points = get_neighbor(x_ori, n, data) + + if exclude_outside: + for i, idx in enumerate(idxes): + if idx < 0 or idx >= input_width: + coeffs[i] = 0 + coeffs /= sum(coeffs) + + return np.dot(coeffs, points).item() + + +def interpolate_nd_with_x(data: np.ndarray, + n: int, + scale_factors: List[float], + x: List[float], + get_coeffs: Callable[[float], np.ndarray], + roi: np.ndarray = None, + **kwargs: Any + ) -> np.ndarray: + if n == 1: + return interpolate_1d_with_x(data, scale_factors[0], x[0], get_coeffs, roi=roi, + **kwargs) + return interpolate_1d_with_x( + [interpolate_nd_with_x(data[i], n - 1, scale_factors[1:], x[1:], get_coeffs, + roi=None if roi is None else np.concatenate( + [roi[1:n], roi[n + 1:]]), + **kwargs) + for i in range(data.shape[0])], scale_factors[0], x[0], get_coeffs, + roi=None if roi is None else [roi[0], roi[n]], **kwargs) + + +def interpolate_nd(data: np.ndarray, + get_coeffs: Callable[[float], np.ndarray], + output_size: Optional[List[int]] = None, + scale_factors: Optional[List[float]] = None, + roi: np.ndarray = None, + **kwargs: Any + ) -> np.ndarray: + def get_all_coords(data: np.ndarray) -> np.ndarray: + return cartesian([list(range(data.shape[i])) for i in range(len(data.shape))]) + + assert output_size is not None or scale_factors is not None + if output_size is not None: + scale_factors = np.array(output_size) / np.array(data.shape) + else: + output_size = (scale_factors * np.array(data.shape)).astype(int) + assert scale_factors is not None + + ret = np.zeros(output_size) + for x in get_all_coords(ret): + ret[tuple(x)] = interpolate_nd_with_x(data, len(data.shape), scale_factors, x, get_coeffs, roi=roi, + **kwargs) + return ret + + +def cubic_coeffs(ratio: float, A: float = -0.75) -> np.ndarray: + coeffs = [((A * (ratio + 1) - 5 * A) * (ratio + 1) + 8 * A) * (ratio + 1) - 4 * A, + ((A + 2) * ratio - (A + 3)) * ratio * ratio + 1, + ((A + 2) * (1 - ratio) - (A + 3)) * (1 - ratio) * (1 - ratio) + 1, + ((A * ((1 - ratio) + 1) - 5 * A) * ((1 - ratio) + 1) + 8 * A) * ((1 - ratio) + 1) - 4 * A] + + return np.array(coeffs) + + +def linear_coeffs(ratio: float) -> np.ndarray: + return np.array([1 - ratio, ratio]) + + +def nearest_coeffs(ratio: float, mode: Text = 'round_prefer_floor') -> np.ndarray: + if type(ratio) == int or ratio.is_integer(): + return np.array([0, 1]) + elif mode == 'round_prefer_floor': + return np.array([ratio <= 0.5, ratio > 0.5]) + elif mode == 'round_prefer_ceil': + return np.array([ratio < 0.5, ratio >= 0.5]) + elif mode == 'floor': + return np.array([1, 0]) + elif mode == 'ceil': + return np.array([0, 1]) + + +class Resize(Base): + + @staticmethod + def export_resize_upsample_scales_nearest() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='nearest', + ) + + data = np.array([[[ + [1, 2], + [3, 4], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32) + + # [[[[1. 1. 1. 2. 2. 2.] + # [1. 1. 1. 2. 2. 2.] + # [3. 3. 3. 4. 4. 4.] + # [3. 3. 3. 4. 4. 4.]]]] + output = interpolate_nd( + data, nearest_coeffs, scale_factors=scales).astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_nearest') + + @staticmethod + def export_resize_downsample_scales_nearest() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='nearest', + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) + + # [[[[1. 3.]]]] + output = interpolate_nd( + data, nearest_coeffs, scale_factors=scales).astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_nearest') + + @staticmethod + def export_resize_upsample_sizes_nearest() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + ) + + data = np.array([[[ + [1, 2], + [3, 4], + ]]], dtype=np.float32) + + sizes = np.array([1, 1, 7, 8], dtype=np.int64) + + # [[[[1. 1. 1. 1. 2. 2. 2. 2.] + # [1. 1. 1. 1. 2. 2. 2. 2.] + # [1. 1. 1. 1. 2. 2. 2. 2.] + # [1. 1. 1. 1. 2. 2. 2. 2.] + # [3. 3. 3. 3. 4. 4. 4. 4.] + # [3. 3. 3. 3. 4. 4. 4. 4.] + # [3. 3. 3. 3. 4. 4. 4. 4.]]]] + output = interpolate_nd( + data, nearest_coeffs, output_size=sizes).astype(np.float32) + + expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest') + + @staticmethod + def export_resize_downsample_sizes_nearest() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + ]]], dtype=np.float32) + + sizes = np.array([1, 1, 1, 3], dtype=np.int64) + + # [[[[1. 3.]]]] + output = interpolate_nd( + data, nearest_coeffs, output_size=sizes).astype(np.float32) + + expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_downsample_sizes_nearest') + + @staticmethod + def export_resize_upsample_scales_linear() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', + ) + + data = np.array([[[ + [1, 2], + [3, 4], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + + # [[[[1. 1.25 1.75 2. ] + # [1.5 1.75 2.25 2.5 ] + # [2.5 2.75 3.25 3.5 ] + # [3. 3.25 3.75 4. ]]]] + output = interpolate_nd( + data, linear_coeffs, scale_factors=scales).astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_linear') + + @staticmethod + def export_resize_upsample_scales_linear_align_corners() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='align_corners' + ) + + data = np.array([[[ + [1, 2], + [3, 4], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + + # [[[[1. 1.33333333 1.66666667 2. ] + # [1.66666667 2. 2.33333333 2.66666667] + # [2.33333333 2.66666667 3. 3.33333333] + # [3. 3.33333333 3.66666667 4. ]]]] + output = interpolate_nd( + data, linear_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_linear_align_corners') + + @staticmethod + def export_resize_downsample_scales_linear() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) + + # [[[[2.6666665 4.3333331]]]] + output = interpolate_nd( + data, linear_coeffs, scale_factors=scales).astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_linear') + + @staticmethod + def export_resize_downsample_scales_linear_align_corners() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='align_corners' + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 0.6, 0.6], dtype=np.float32) + + # [[[[1. 3.142857]]]] + output = interpolate_nd( + data, linear_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_linear_align_corners') + + @staticmethod + def export_resize_upsample_scales_cubic() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + + # [[[[ 0.47265625 0.76953125 1.24609375 1.875 2.28125 + # 2.91015625 3.38671875 3.68359375] + # [ 1.66015625 1.95703125 2.43359375 3.0625 3.46875 + # 4.09765625 4.57421875 4.87109375] + # [ 3.56640625 3.86328125 4.33984375 4.96875 5.375 + # 6.00390625 6.48046875 6.77734375] + # [ 6.08203125 6.37890625 6.85546875 7.484375 7.890625 + # 8.51953125 8.99609375 9.29296875] + # [ 7.70703125 8.00390625 8.48046875 9.109375 9.515625 + # 10.14453125 10.62109375 10.91796875] + # [10.22265625 10.51953125 10.99609375 11.625 12.03125 + # 12.66015625 13.13671875 13.43359375] + # [12.12890625 12.42578125 12.90234375 13.53125 13.9375 + # 14.56640625 15.04296875 15.33984375] + # [13.31640625 13.61328125 14.08984375 14.71875 15.125 + # 15.75390625 16.23046875 16.52734375]]]] + output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales).astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic') + + @staticmethod + def export_resize_upsample_scales_cubic_align_corners() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + coordinate_transformation_mode='align_corners' + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + + # [[[[ 1. 1.34110787 1.80029155 2.32944606 2.67055394 + # 3.19970845 3.65889213 4. ] + # [ 2.36443149 2.70553936 3.16472303 3.69387755 4.03498542 + # 4.56413994 5.02332362 5.36443149] + # [ 4.20116618 4.54227405 5.00145773 5.53061224 5.87172012 + # 6.40087464 6.86005831 7.20116618] + # [ 6.31778426 6.65889213 7.1180758 7.64723032 7.98833819 + # 8.51749271 8.97667638 9.31778426] + # [ 7.68221574 8.02332362 8.48250729 9.01166181 9.35276968 + # 9.8819242 10.34110787 10.68221574] + # [ 9.79883382 10.13994169 10.59912536 11.12827988 11.46938776 + # 11.99854227 12.45772595 12.79883382] + # [11.63556851 11.97667638 12.43586006 12.96501458 13.30612245 + # 13.83527697 14.29446064 14.63556851] + # [13. 13.34110787 13.80029155 14.32944606 14.67055394 + # 15.19970845 15.65889213 16. ]]]] + output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic_align_corners') + + @staticmethod + def export_resize_downsample_scales_cubic() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 0.8, 0.8], dtype=np.float32) + + # [[[[ 1.47119141 2.78125 4.08251953] + # [ 6.71142578 8.02148438 9.32275391] + # [11.91650391 13.2265625 14.52783203]]]] + output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales).astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_cubic') + + @staticmethod + def export_resize_downsample_scales_cubic_align_corners() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + coordinate_transformation_mode='align_corners' + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 0.8, 0.8], dtype=np.float32) + + # [[[[ 1. 2.39519159 3.79038317] + # [ 6.58076634 7.97595793 9.37114951] + # [12.16153268 13.55672427 14.95191585]]]] + output = interpolate_nd( + data, cubic_coeffs, scale_factors=scales, coordinate_transformation_mode='align_corners').astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_cubic_align_corners') + + @staticmethod + def export_resize_upsample_sizes_cubic() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='cubic', + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + sizes = np.array([1, 1, 9, 10], dtype=np.int64) + + # [[[[ 0.45507922 0.64057922 0.97157922 1.42257922 1.90732922 + # 2.22332922 2.70807922 3.15907922 3.49007922 3.67557922] + # [ 1.39437963 1.57987963 1.91087963 2.36187963 2.84662963 + # 3.16262963 3.64737963 4.09837963 4.42937963 4.61487963] + # [ 2.95130693 3.13680693 3.46780693 3.91880693 4.40355693 + # 4.71955693 5.20430693 5.65530693 5.98630693 6.17180693] + # [ 5.20525069 5.39075069 5.72175069 6.17275069 6.65750069 + # 6.97350069 7.45825069 7.90925069 8.24025069 8.42575069] + # [ 6.88975 7.07525 7.40625 7.85725 8.342 + # 8.658 9.14275 9.59375 9.92475 10.11025 ] + # [ 8.57424931 8.75974931 9.09074931 9.54174931 10.02649931 + # 10.34249931 10.82724931 11.27824931 11.60924931 11.79474931] + # [10.82819307 11.01369307 11.34469307 11.79569307 12.28044307 + # 12.59644307 13.08119307 13.53219307 13.86319307 14.04869307] + # [12.38512037 12.57062037 12.90162037 13.35262037 13.83737037 + # 14.15337037 14.63812037 15.08912037 15.42012037 15.60562037] + # [13.32442078 13.50992078 13.84092078 14.29192078 14.77667078 + # 15.09267078 15.57742078 16.02842078 16.35942078 16.54492078]]]] + output = interpolate_nd( + data, cubic_coeffs, output_size=sizes).astype(np.float32) + + expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_cubic') + + @staticmethod + def export_resize_downsample_sizes_cubic() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='cubic', + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + sizes = np.array([1, 1, 3, 3], dtype=np.int64) + + # [[[[ 1.63078704 3.00462963 4.37847222] + # [ 7.12615741 8.5 9.87384259] + # [12.62152778 13.99537037 15.36921296]]]] + output = interpolate_nd( + data, cubic_coeffs, output_size=sizes).astype(np.float32) + + expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_downsample_sizes_cubic') + + # TensorFlow v1 bicubic with half_pixel_centers=True + @staticmethod + def export_resize_upsample_scales_cubic_A_n0p5_exclude_outside() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + cubic_coeff_a=-0.5, + exclude_outside=True + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + + # [[[[ 0.55882353 0.81494204 1.35698249 1.89705882 2.39705882 + # 2.93713516 3.47917561 3.73529412] + # [ 1.58329755 1.83941606 2.38145651 2.92153285 3.42153285 + # 3.96160918 4.50364964 4.75976814] + # [ 3.75145936 4.00757787 4.54961832 5.08969466 5.58969466 + # 6.12977099 6.67181144 6.92792995] + # [ 5.91176471 6.16788321 6.70992366 7.25 7.75 + # 8.29007634 8.83211679 9.08823529] + # [ 7.91176471 8.16788321 8.70992366 9.25 9.75 + # 10.29007634 10.83211679 11.08823529] + # [10.07207005 10.32818856 10.87022901 11.41030534 11.91030534 + # 12.45038168 12.99242213 13.24854064] + # [12.24023186 12.49635036 13.03839082 13.57846715 14.07846715 + # 14.61854349 15.16058394 15.41670245] + # [13.26470588 13.52082439 14.06286484 14.60294118 15.10294118 + # 15.64301751 16.18505796 16.44117647]]]] + output = interpolate_nd(data, lambda x: cubic_coeffs(x, A=-0.5), scale_factors=scales, + exclude_outside=True).astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic_A_n0p5_exclude_outside') + + @staticmethod + def export_resize_downsample_scales_cubic_A_n0p5_exclude_outside() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + cubic_coeff_a=-0.5, + exclude_outside=True + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 0.8, 0.8], dtype=np.float32) + + # [[[[ 1.36812675 2.6695014 4.0133367 ] + # [ 6.57362535 7.875 9.2188353 ] + # [11.94896657 13.25034122 14.59417652]]]] + output = interpolate_nd(data, lambda x: cubic_coeffs(x, A=-0.5), scale_factors=scales, + exclude_outside=True).astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_downsample_scales_cubic_A_n0p5_exclude_outside') + + # TensorFlow v1 bicubic with half_pixel_centers=False + @staticmethod + def export_resize_upsample_scales_cubic_asymmetric() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', 'scales'], + outputs=['Y'], + mode='cubic', + coordinate_transformation_mode='asymmetric' + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 2.0, 2.0], dtype=np.float32) + + # [[[[ 1. 1.40625 2. 2.5 3. 3.59375 4. + # 4.09375] + # [ 2.625 3.03125 3.625 4.125 4.625 5.21875 5.625 + # 5.71875] + # [ 5. 5.40625 6. 6.5 7. 7.59375 8. + # 8.09375] + # [ 7. 7.40625 8. 8.5 9. 9.59375 10. + # 10.09375] + # [ 9. 9.40625 10. 10.5 11. 11.59375 12. + # 12.09375] + # [11.375 11.78125 12.375 12.875 13.375 13.96875 14.375 + # 14.46875] + # [13. 13.40625 14. 14.5 15. 15.59375 16. + # 16.09375] + # [13.375 13.78125 14.375 14.875 15.375 15.96875 16.375 + # 16.46875]]]] + output = interpolate_nd(data, lambda x: cubic_coeffs(x, A=-0.75), scale_factors=scales, + coordinate_transformation_mode='asymmetric').astype(np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_resize_upsample_scales_cubic_asymmetric') + + @staticmethod + def export_resize_tf_crop_and_resize() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', 'roi', '', 'sizes'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='tf_crop_and_resize' + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + # Note: for some rois, the result may be different with that of TF for inaccurate floating point + roi = np.array([0, 0, 0.4, 0.6, 1, 1, 0.6, 0.8], dtype=np.float32) + sizes = np.array([1, 1, 3, 3], dtype=np.int64) + + # [[[[ 7.6000004 7.9 8.2 ] + # [ 8.8 9.1 9.400001 ] + # [10. 10.3 10.6 ]]]] + output = interpolate_nd(data, linear_coeffs, output_size=sizes, roi=roi, + coordinate_transformation_mode='tf_crop_and_resize').astype(np.float32) + + expect(node, inputs=[data, roi, sizes], outputs=[output], + name='test_resize_tf_crop_and_resize') + + @staticmethod + def export_resize_tf_crop_and_resize_extrapolation_value() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', 'roi', '', 'sizes'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='tf_crop_and_resize', + extrapolation_value=10.0 + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + # Note: for some rois, the result may be different with that of TF for inaccurate floating point + roi = np.array([0, 0, 0.4, 0.6, 1, 1, 1.2, 1.7], dtype=np.float32) + sizes = np.array([1, 1, 3, 3], dtype=np.int64) + + # [[[[ 7.6000004 10. 10. ] + # [12.400001 10. 10. ] + # [10. 10. 10. ]]]] + output = interpolate_nd(data, linear_coeffs, output_size=sizes, roi=roi, + coordinate_transformation_mode='tf_crop_and_resize', extrapolation_value=10.0).astype(np.float32) + + expect(node, inputs=[data, roi, sizes], outputs=[output], + name='test_resize_tf_crop_and_resize') + + @staticmethod + def export_resize_downsample_sizes_linear_pytorch_half_pixel() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='linear', + coordinate_transformation_mode='pytorch_half_pixel' + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + sizes = np.array([1, 1, 3, 1], dtype=np.int64) + + # [[[[ 1.6666666] + # [ 7. ] + # [12.333333 ]]]] + output = interpolate_nd( + data, linear_coeffs, output_size=sizes, coordinate_transformation_mode='pytorch_half_pixel').astype(np.float32) + + expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_downsample_sizes_linear_pytorch_half_pixel') + + @staticmethod + def export_resize_upsample_sizes_nearest_floor_align_corners() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + coordinate_transformation_mode='align_corners', + nearest_mode='floor' + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + sizes = np.array([1, 1, 8, 8], dtype=np.int64) + + # [[[[ 1. 1. 1. 2. 2. 3. 3. 4.] + # [ 1. 1. 1. 2. 2. 3. 3. 4.] + # [ 1. 1. 1. 2. 2. 3. 3. 4.] + # [ 5. 5. 5. 6. 6. 7. 7. 8.] + # [ 5. 5. 5. 6. 6. 7. 7. 8.] + # [ 9. 9. 9. 10. 10. 11. 11. 12.] + # [ 9. 9. 9. 10. 10. 11. 11. 12.] + # [13. 13. 13. 14. 14. 15. 15. 16.]]]] + output = interpolate_nd( + data, lambda x: nearest_coeffs(x, mode='floor'), output_size=sizes, coordinate_transformation_mode='align_corners').astype(np.float32) + + expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest_floor_align_corners') + + @staticmethod + def export_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + coordinate_transformation_mode='asymmetric', + nearest_mode='round_prefer_ceil' + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + sizes = np.array([1, 1, 8, 8], dtype=np.int64) + + # [[[[ 1. 2. 2. 3. 3. 4. 4. 4.] + # [ 5. 6. 6. 7. 7. 8. 8. 8.] + # [ 5. 6. 6. 7. 7. 8. 8. 8.] + # [ 9. 10. 10. 11. 11. 12. 12. 12.] + # [ 9. 10. 10. 11. 11. 12. 12. 12.] + # [13. 14. 14. 15. 15. 16. 16. 16.] + # [13. 14. 14. 15. 15. 16. 16. 16.] + # [13. 14. 14. 15. 15. 16. 16. 16.]]]] + output = interpolate_nd( + data, lambda x: nearest_coeffs(x, mode='round_prefer_ceil'), + output_size=sizes, coordinate_transformation_mode='asymmetric').astype(np.float32) + + expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric') + + @staticmethod + def export_resize_upsample_sizes_nearest_ceil_half_pixel() -> None: + node = onnx.helper.make_node( + 'Resize', + inputs=['X', '', '', 'sizes'], + outputs=['Y'], + mode='nearest', + coordinate_transformation_mode='half_pixel', + nearest_mode='ceil' + ) + + data = np.array([[[ + [1, 2, 3, 4], + [5, 6, 7, 8], + [9, 10, 11, 12], + [13, 14, 15, 16], + ]]], dtype=np.float32) + + sizes = np.array([1, 1, 8, 8], dtype=np.int64) + + # [[[[ 1. 2. 2. 3. 3. 4. 4. 4.] + # [ 5. 6. 6. 7. 7. 8. 8. 8.] + # [ 5. 6. 6. 7. 7. 8. 8. 8.] + # [ 9. 10. 10. 11. 11. 12. 12. 12.] + # [ 9. 10. 10. 11. 11. 12. 12. 12.] + # [13. 14. 14. 15. 15. 16. 16. 16.] + # [13. 14. 14. 15. 15. 16. 16. 16.] + # [13. 14. 14. 15. 15. 16. 16. 16.]]]] + output = interpolate_nd( + data, lambda x: nearest_coeffs(x, mode='ceil'), output_size=sizes).astype(np.float32) + + expect(node, inputs=[data, sizes], outputs=[output], + name='test_resize_upsample_sizes_nearest_ceil_half_pixel') diff --git a/third_party/onnx/onnx/backend/test/case/node/reversesequence.py b/third_party/onnx/onnx/backend/test/case/node/reversesequence.py new file mode 100644 index 000000000..d102a6124 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/reversesequence.py @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ReverseSequence(Base): + + @staticmethod + def export_reversesequence_time() -> None: + node = onnx.helper.make_node( + 'ReverseSequence', + inputs=['x', 'sequence_lens'], + outputs=['y'], + time_axis=0, + batch_axis=1, + ) + x = np.array([[0.0, 4.0, 8.0, 12.0], + [1.0, 5.0, 9.0, 13.0], + [2.0, 6.0, 10.0, 14.0], + [3.0, 7.0, 11.0, 15.0]], dtype=np.float32) + sequence_lens = np.array([4, 3, 2, 1], dtype=np.int64) + + y = np.array([[3.0, 6.0, 9.0, 12.0], + [2.0, 5.0, 8.0, 13.0], + [1.0, 4.0, 10.0, 14.0], + [0.0, 7.0, 11.0, 15.0]], dtype=np.float32) + + expect(node, inputs=[x, sequence_lens], outputs=[y], + name='test_reversesequence_time') + + @staticmethod + def export_reversesequence_batch() -> None: + node = onnx.helper.make_node( + 'ReverseSequence', + inputs=['x', 'sequence_lens'], + outputs=['y'], + time_axis=1, + batch_axis=0, + ) + x = np.array([[0.0, 1.0, 2.0, 3.0], + [4.0, 5.0, 6.0, 7.0], + [8.0, 9.0, 10.0, 11.0], + [12.0, 13.0, 14.0, 15.0]], dtype=np.float32) + sequence_lens = np.array([1, 2, 3, 4], dtype=np.int64) + + y = np.array([[0.0, 1.0, 2.0, 3.0], + [5.0, 4.0, 6.0, 7.0], + [10.0, 9.0, 8.0, 11.0], + [15.0, 14.0, 13.0, 12.0]], dtype=np.float32) + + expect(node, inputs=[x, sequence_lens], outputs=[y], + name='test_reversesequence_batch') diff --git a/third_party/onnx/onnx/backend/test/case/node/rnn.py b/third_party/onnx/onnx/backend/test/case/node/rnn.py new file mode 100644 index 000000000..14cb6f870 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/rnn.py @@ -0,0 +1,184 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +from typing import Any, Tuple + +import onnx +from ..base import Base +from . import expect + + +class RNN_Helper(): + def __init__(self, **params: Any) -> None: + # RNN Input Names + X = str('X') + W = str('W') + R = str('R') + B = str('B') + H_0 = str('initial_h') + LAYOUT = str('layout') + + required_inputs = [X, W, R] + for i in required_inputs: + assert i in params, "Missing Required Input: {0}".format(i) + + self.num_directions = params[str(W)].shape[0] + + if self.num_directions == 1: + for k in params.keys(): + if k != X: + params[k] = np.squeeze(params[k], axis=0) + + hidden_size = params[R].shape[-1] + batch_size = params[X].shape[1] + + layout = params[LAYOUT] if LAYOUT in params else 0 + x = params[X] + x = x if layout == 0 else np.swapaxes(x, 0, 1) + b = params[B] if B in params else np.zeros(2 * hidden_size, dtype=np.float32) + h_0 = params[H_0] if H_0 in params else np.zeros((batch_size, hidden_size), dtype=np.float32) + + self.X = x + self.W = params[W] + self.R = params[R] + self.B = b + self.H_0 = h_0 + self.LAYOUT = layout + + else: + raise NotImplementedError() + + def f(self, x: np.ndarray) -> np.ndarray: + return np.tanh(x) + + def step(self) -> Tuple[np.ndarray, np.ndarray]: + seq_length = self.X.shape[0] + hidden_size = self.H_0.shape[-1] + batch_size = self.X.shape[1] + + Y = np.empty([seq_length, self.num_directions, batch_size, hidden_size]) + h_list = [] + + H_t = self.H_0 + for x in np.split(self.X, self.X.shape[0], axis=0): + H = self.f(np.dot(x, np.transpose(self.W)) + np.dot(H_t, np.transpose(self.R)) + np.add( + *np.split(self.B, 2))) + h_list.append(H) + H_t = H + + concatenated = np.concatenate(h_list) + if self.num_directions == 1: + Y[:, 0, :, :] = concatenated + + if self.LAYOUT == 0: + Y_h = Y[-1] + else: + Y = np.transpose(Y, [2, 0, 1, 3]) + Y_h = Y[:, :, -1, :] + + return Y, Y_h + + +class RNN(Base): + + @staticmethod + def export_defaults() -> None: + input = np.array([[[1., 2.], [3., 4.], [5., 6.]]]).astype(np.float32) + + input_size = 2 + hidden_size = 4 + weight_scale = 0.1 + + node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R'], + outputs=['', 'Y_h'], + hidden_size=hidden_size + ) + + W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32) + + rnn = RNN_Helper(X=input, W=W, R=R) + _, Y_h = rnn.step() + expect(node, inputs=[input, W, R], outputs=[Y_h.astype(np.float32)], name='test_simple_rnn_defaults') + + @staticmethod + def export_initial_bias() -> None: + input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]]).astype(np.float32) + + input_size = 3 + hidden_size = 5 + custom_bias = 0.1 + weight_scale = 0.1 + + node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size + ) + + W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32) + + # Adding custom bias + W_B = custom_bias * np.ones((1, hidden_size)).astype(np.float32) + R_B = np.zeros((1, hidden_size)).astype(np.float32) + B = np.concatenate((W_B, R_B), axis=1) + + rnn = RNN_Helper(X=input, W=W, R=R, B=B) + _, Y_h = rnn.step() + expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], + name='test_simple_rnn_with_initial_bias') + + @staticmethod + def export_seq_length() -> None: + input = np.array([[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]], + [[10., 11., 12.], [13., 14., 15.], [16., 17., 18.]]]).astype(np.float32) + + input_size = 3 + hidden_size = 5 + + node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R', 'B'], + outputs=['', 'Y_h'], + hidden_size=hidden_size + ) + + W = np.random.randn(1, hidden_size, input_size).astype(np.float32) + R = np.random.randn(1, hidden_size, hidden_size).astype(np.float32) + + # Adding custom bias + W_B = np.random.randn(1, hidden_size).astype(np.float32) + R_B = np.random.randn(1, hidden_size).astype(np.float32) + B = np.concatenate((W_B, R_B), axis=1) + + rnn = RNN_Helper(X=input, W=W, R=R, B=B) + _, Y_h = rnn.step() + expect(node, inputs=[input, W, R, B], outputs=[Y_h.astype(np.float32)], name='test_rnn_seq_length') + + @staticmethod + def export_batchwise() -> None: + input = np.array([[[1., 2.]], [[3., 4.]], [[5., 6.]]]).astype(np.float32) + + input_size = 2 + hidden_size = 4 + weight_scale = 0.5 + layout = 1 + + node = onnx.helper.make_node( + 'RNN', + inputs=['X', 'W', 'R'], + outputs=['Y', 'Y_h'], + hidden_size=hidden_size, + layout=layout + ) + + W = weight_scale * np.ones((1, hidden_size, input_size)).astype(np.float32) + R = weight_scale * np.ones((1, hidden_size, hidden_size)).astype(np.float32) + + rnn = RNN_Helper(X=input, W=W, R=R, layout=layout) + Y, Y_h = rnn.step() + expect(node, inputs=[input, W, R], outputs=[Y.astype(np.float32), Y_h.astype(np.float32)], name='test_simple_rnn_batchwise') diff --git a/third_party/onnx/onnx/backend/test/case/node/roialign.py b/third_party/onnx/onnx/backend/test/case/node/roialign.py new file mode 100644 index 000000000..882d5ebc8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/roialign.py @@ -0,0 +1,244 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def get_roi_align_input_values(): # type: ignore + X = np.array( + [ + [ + [ + [ + 0.2764, + 0.7150, + 0.1958, + 0.3416, + 0.4638, + 0.0259, + 0.2963, + 0.6518, + 0.4856, + 0.7250, + ], + [ + 0.9637, + 0.0895, + 0.2919, + 0.6753, + 0.0234, + 0.6132, + 0.8085, + 0.5324, + 0.8992, + 0.4467, + ], + [ + 0.3265, + 0.8479, + 0.9698, + 0.2471, + 0.9336, + 0.1878, + 0.4766, + 0.4308, + 0.3400, + 0.2162, + ], + [ + 0.0206, + 0.1720, + 0.2155, + 0.4394, + 0.0653, + 0.3406, + 0.7724, + 0.3921, + 0.2541, + 0.5799, + ], + [ + 0.4062, + 0.2194, + 0.4473, + 0.4687, + 0.7109, + 0.9327, + 0.9815, + 0.6320, + 0.1728, + 0.6119, + ], + [ + 0.3097, + 0.1283, + 0.4984, + 0.5068, + 0.4279, + 0.0173, + 0.4388, + 0.0430, + 0.4671, + 0.7119, + ], + [ + 0.1011, + 0.8477, + 0.4726, + 0.1777, + 0.9923, + 0.4042, + 0.1869, + 0.7795, + 0.9946, + 0.9689, + ], + [ + 0.1366, + 0.3671, + 0.7011, + 0.6234, + 0.9867, + 0.5585, + 0.6985, + 0.5609, + 0.8788, + 0.9928, + ], + [ + 0.5697, + 0.8511, + 0.6711, + 0.9406, + 0.8751, + 0.7496, + 0.1650, + 0.1049, + 0.1559, + 0.2514, + ], + [ + 0.7012, + 0.4056, + 0.7879, + 0.3461, + 0.0415, + 0.2998, + 0.5094, + 0.3727, + 0.5482, + 0.0502, + ], + ] + ] + ], + dtype=np.float32, + ) + batch_indices = np.array([0, 0, 0], dtype=np.int64) + rois = np.array([[0, 0, 9, 9], [0, 5, 4, 9], [5, 5, 9, 9]], dtype=np.float32) + return X, batch_indices, rois + + +class RoiAlign(Base): + @staticmethod + def export_roialign_aligned_false() -> None: + node = onnx.helper.make_node( + "RoiAlign", + inputs=["X", "rois", "batch_indices"], + outputs=["Y"], + spatial_scale=1.0, + output_height=5, + output_width=5, + sampling_ratio=2, + coordinate_transformation_mode="output_half_pixel", + ) + + X, batch_indices, rois = get_roi_align_input_values() + # (num_rois, C, output_height, output_width) + Y = np.array( + [ + [ + [ + [0.4664, 0.4466, 0.3405, 0.5688, 0.6068], + [0.3714, 0.4296, 0.3835, 0.5562, 0.3510], + [0.2768, 0.4883, 0.5222, 0.5528, 0.4171], + [0.4713, 0.4844, 0.6904, 0.4920, 0.8774], + [0.6239, 0.7125, 0.6289, 0.3355, 0.3495], + ] + ], + [ + [ + [0.3022, 0.4305, 0.4696, 0.3978, 0.5423], + [0.3656, 0.7050, 0.5165, 0.3172, 0.7015], + [0.2912, 0.5059, 0.6476, 0.6235, 0.8299], + [0.5916, 0.7389, 0.7048, 0.8372, 0.8893], + [0.6227, 0.6153, 0.7097, 0.6154, 0.4585], + ] + ], + [ + [ + [0.2384, 0.3379, 0.3717, 0.6100, 0.7601], + [0.3767, 0.3785, 0.7147, 0.9243, 0.9727], + [0.5749, 0.5826, 0.5709, 0.7619, 0.8770], + [0.5355, 0.2566, 0.2141, 0.2796, 0.3600], + [0.4365, 0.3504, 0.2887, 0.3661, 0.2349], + ] + ], + ], + dtype=np.float32, + ) + + expect(node, inputs=[X, rois, batch_indices], outputs=[Y], name="test_roialign_aligned_false") + + @staticmethod + def export_roialign_aligned_true() -> None: + node = onnx.helper.make_node( + "RoiAlign", + inputs=["X", "rois", "batch_indices"], + outputs=["Y"], + spatial_scale=1.0, + output_height=5, + output_width=5, + sampling_ratio=2, + coordinate_transformation_mode="half_pixel", + ) + + X, batch_indices, rois = get_roi_align_input_values() + # (num_rois, C, output_height, output_width) + Y = np.array( + [ + [ + [ + [0.5178, 0.3434, 0.3229, 0.4474, 0.6344], + [0.4031, 0.5366, 0.4428, 0.4861, 0.4023], + [0.2512, 0.4002, 0.5155, 0.6954, 0.3465], + [0.3350, 0.4601, 0.5881, 0.3439, 0.6849], + [0.4932, 0.7141, 0.8217, 0.4719, 0.4039], + ] + ], + [ + [ + [0.3070, 0.2187, 0.3337, 0.4880, 0.4870], + [0.1871, 0.4914, 0.5561, 0.4192, 0.3686], + [0.1433, 0.4608, 0.5971, 0.5310, 0.4982], + [0.2788, 0.4386, 0.6022, 0.7000, 0.7524], + [0.5774, 0.7024, 0.7251, 0.7338, 0.8163], + ] + ], + [ + [ + [0.2393, 0.4075, 0.3379, 0.2525, 0.4743], + [0.3671, 0.2702, 0.4105, 0.6419, 0.8308], + [0.5556, 0.4543, 0.5564, 0.7502, 0.9300], + [0.6626, 0.5617, 0.4813, 0.4954, 0.6663], + [0.6636, 0.3721, 0.2056, 0.1928, 0.2478], + ] + ], + ], + dtype=np.float32, + ) + + expect(node, inputs=[X, rois, batch_indices], outputs=[Y], name="test_roialign_aligned_true") diff --git a/third_party/onnx/onnx/backend/test/case/node/round.py b/third_party/onnx/onnx/backend/test/case/node/round.py new file mode 100644 index 000000000..017d9cf04 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/round.py @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Round(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Round', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([0.1, 0.5, 0.9, 1.2, 1.5, + 1.8, 2.3, 2.5, 2.7, -1.1, + -1.5, -1.9, -2.2, -2.5, -2.8]).astype(np.float32) + y = np.array([0., 0., 1., 1., 2., + 2., 2., 2., 3., -1., + -2., -2., -2., -2., -3.]).astype(np.float32) # expected output + expect(node, inputs=[x], outputs=[y], + name='test_round') diff --git a/third_party/onnx/onnx/backend/test/case/node/scan.py b/third_party/onnx/onnx/backend/test/case/node/scan.py new file mode 100644 index 000000000..6fd7ff7f2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/scan.py @@ -0,0 +1,103 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Scan(Base): + + @staticmethod + def export_scan_8() -> None: + # Given an input sequence [x1, ..., xN], sum up its elements using a scan + # returning the final state (x1+x2+...+xN) as well the scan_output + # [x1, x1+x2, ..., x1+x2+...+xN] + # + # create graph to represent scan body + sum_in = onnx.helper.make_tensor_value_info('sum_in', onnx.TensorProto.FLOAT, [2]) + next = onnx.helper.make_tensor_value_info('next', onnx.TensorProto.FLOAT, [2]) + sum_out = onnx.helper.make_tensor_value_info('sum_out', onnx.TensorProto.FLOAT, [2]) + scan_out = onnx.helper.make_tensor_value_info('scan_out', onnx.TensorProto.FLOAT, [2]) + add_node = onnx.helper.make_node( + 'Add', + inputs=['sum_in', 'next'], + outputs=['sum_out'] + ) + id_node = onnx.helper.make_node( + 'Identity', + inputs=['sum_out'], + outputs=['scan_out'] + ) + scan_body = onnx.helper.make_graph( + [add_node, id_node], + 'scan_body', + [sum_in, next], + [sum_out, scan_out] + ) + # create scan op node + no_sequence_lens = '' # optional input, not supplied + node = onnx.helper.make_node( + 'Scan', + inputs=[no_sequence_lens, 'initial', 'x'], + outputs=['y', 'z'], + num_scan_inputs=1, + body=scan_body + ) + # create inputs for batch-size 1, sequence-length 3, inner dimension 2 + initial = np.array([0, 0]).astype(np.float32).reshape((1, 2)) + x = np.array([1, 2, 3, 4, 5, 6]).astype(np.float32).reshape((1, 3, 2)) + # final state computed = [1 + 3 + 5, 2 + 4 + 6] + y = np.array([9, 12]).astype(np.float32).reshape((1, 2)) + # scan-output computed + z = np.array([1, 2, 4, 6, 9, 12]).astype(np.float32).reshape((1, 3, 2)) + + expect(node, inputs=[initial, x], outputs=[y, z], + name='test_scan_sum', opset_imports=[onnx.helper.make_opsetid("", 8)]) + + @staticmethod + def export_scan_9() -> None: + # Given an input sequence [x1, ..., xN], sum up its elements using a scan + # returning the final state (x1+x2+...+xN) as well the scan_output + # [x1, x1+x2, ..., x1+x2+...+xN] + # + # create graph to represent scan body + sum_in = onnx.helper.make_tensor_value_info('sum_in', onnx.TensorProto.FLOAT, [2]) + next = onnx.helper.make_tensor_value_info('next', onnx.TensorProto.FLOAT, [2]) + sum_out = onnx.helper.make_tensor_value_info('sum_out', onnx.TensorProto.FLOAT, [2]) + scan_out = onnx.helper.make_tensor_value_info('scan_out', onnx.TensorProto.FLOAT, [2]) + add_node = onnx.helper.make_node( + 'Add', + inputs=['sum_in', 'next'], + outputs=['sum_out'] + ) + id_node = onnx.helper.make_node( + 'Identity', + inputs=['sum_out'], + outputs=['scan_out'] + ) + scan_body = onnx.helper.make_graph( + [add_node, id_node], + 'scan_body', + [sum_in, next], + [sum_out, scan_out] + ) + # create scan op node + node = onnx.helper.make_node( + 'Scan', + inputs=['initial', 'x'], + outputs=['y', 'z'], + num_scan_inputs=1, + body=scan_body + ) + # create inputs for sequence-length 3, inner dimension 2 + initial = np.array([0, 0]).astype(np.float32).reshape((2,)) + x = np.array([1, 2, 3, 4, 5, 6]).astype(np.float32).reshape((3, 2)) + # final state computed = [1 + 3 + 5, 2 + 4 + 6] + y = np.array([9, 12]).astype(np.float32).reshape((2,)) + # scan-output computed + z = np.array([1, 2, 4, 6, 9, 12]).astype(np.float32).reshape((3, 2)) + + expect(node, inputs=[initial, x], outputs=[y, z], + name='test_scan9_sum', opset_imports=[onnx.helper.make_opsetid("", 9)]) diff --git a/third_party/onnx/onnx/backend/test/case/node/scatter.py b/third_party/onnx/onnx/backend/test/case/node/scatter.py new file mode 100644 index 000000000..c587d46c6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/scatter.py @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from onnx import helper + + +# The below Scatter's numpy implementation is from https://stackoverflow.com/a/46204790/11767360 +def scatter(data, indices, updates, axis=0): # type: ignore + if axis < 0: + axis = data.ndim + axis + + idx_xsection_shape = indices.shape[:axis] + indices.shape[axis + 1:] + + def make_slice(arr, axis, i): # type: ignore + slc = [slice(None)] * arr.ndim + slc[axis] = i + return slc + + def unpack(packed): # type: ignore + unpacked = packed[0] + for i in range(1, len(packed)): + unpacked = unpacked, packed[i] + return unpacked + + # We use indices and axis parameters to create idx + # idx is in a form that can be used as a NumPy advanced indices for scattering of updates param. in data + idx = [[unpack(np.indices(idx_xsection_shape).reshape(indices.ndim - 1, -1)), + indices[tuple(make_slice(indices, axis, i))].reshape(1, -1)[0]] for i in range(indices.shape[axis])] + idx = list(np.concatenate(idx, axis=1)) + idx.insert(axis, idx.pop()) + + # updates_idx is a NumPy advanced indices for indexing of elements in the updates + updates_idx = list(idx) + updates_idx.pop(axis) + updates_idx.insert(axis, np.repeat(np.arange(indices.shape[axis]), np.prod(idx_xsection_shape))) + + scattered = np.copy(data) + scattered[tuple(idx)] = updates[tuple(updates_idx)] + return scattered + + +class Scatter(Base): + + @staticmethod + def export_scatter_without_axis() -> None: + node = onnx.helper.make_node( + 'Scatter', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + ) + data = np.zeros((3, 3), dtype=np.float32) + indices = np.array([[1, 0, 2], [0, 2, 1]], dtype=np.int64) + updates = np.array([[1.0, 1.1, 1.2], [2.0, 2.1, 2.2]], dtype=np.float32) + + y = scatter(data, indices, updates) + # print(y) produces + # [[2.0, 1.1, 0.0], + # [1.0, 0.0, 2.2], + # [0.0, 2.1, 1.2]] + + expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_without_axis', opset_imports=[helper.make_opsetid("", 10)]) + + @staticmethod + def export_scatter_with_axis() -> None: + axis = 1 + node = onnx.helper.make_node( + 'Scatter', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, + ) + data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) + indices = np.array([[1, 3]], dtype=np.int64) + updates = np.array([[1.1, 2.1]], dtype=np.float32) + + y = scatter(data, indices, updates, axis=axis) + # print(y) produces + # [[1.0, 1.1, 3.0, 2.1, 5.0]] + + expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_with_axis', opset_imports=[helper.make_opsetid("", 10)]) diff --git a/third_party/onnx/onnx/backend/test/case/node/scatterelements.py b/third_party/onnx/onnx/backend/test/case/node/scatterelements.py new file mode 100644 index 000000000..f134eb513 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/scatterelements.py @@ -0,0 +1,140 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +# The below ScatterElements' numpy implementation is from https://stackoverflow.com/a/46204790/11767360 +def scatter_elements(data, indices, updates, axis=0, reduction='none'): # type: ignore + if axis < 0: + axis = data.ndim + axis + + idx_xsection_shape = indices.shape[:axis] + indices.shape[axis + 1:] + + def make_slice(arr, axis, i): # type: ignore + slc = [slice(None)] * arr.ndim + slc[axis] = i + return slc + + def unpack(packed): # type: ignore + unpacked = packed[0] + for i in range(1, len(packed)): + unpacked = unpacked, packed[i] + return unpacked + + def make_indices_for_duplicate(idx): # type: ignore + final_idx = list() + for i in range(len(idx[0])): + final_idx.append(tuple(idx_element[i] for idx_element in idx)) + return list(final_idx) + + # We use indices and axis parameters to create idx + # idx is in a form that can be used as a NumPy advanced indices for scattering of updates param. in data + idx = [[unpack(np.indices(idx_xsection_shape).reshape(indices.ndim - 1, -1)), + indices[tuple(make_slice(indices, axis, i))].reshape(1, -1)[0]] for i in range(indices.shape[axis])] + idx = list(np.concatenate(idx, axis=1)) + idx.insert(axis, idx.pop()) + + # updates_idx is a NumPy advanced indices for indexing of elements in the updates + updates_idx = list(idx) + updates_idx.pop(axis) + updates_idx.insert(axis, np.repeat(np.arange(indices.shape[axis]), np.prod(idx_xsection_shape))) + + scattered = np.copy(data) + if reduction == 'none': + scattered[tuple(idx)] = updates[tuple(updates_idx)] + else: + idx, updates_idx = make_indices_for_duplicate(idx), make_indices_for_duplicate(updates_idx) + for iter, idx_set in enumerate(idx): + if reduction == 'add': + scattered[idx_set] += updates[updates_idx[iter]] + elif reduction == 'mul': + scattered[idx_set] *= updates[updates_idx[iter]] + return scattered + + +class ScatterElements(Base): + + @staticmethod + def export_scatter_elements_without_axis() -> None: + node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + ) + data = np.zeros((3, 3), dtype=np.float32) + indices = np.array([[1, 0, 2], [0, 2, 1]], dtype=np.int64) + updates = np.array([[1.0, 1.1, 1.2], [2.0, 2.1, 2.2]], dtype=np.float32) + + y = scatter_elements(data, indices, updates) + # print(y) produces + # [[2.0, 1.1, 0.0], + # [1.0, 0.0, 2.2], + # [0.0, 2.1, 1.2]] + + expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_without_axis') + + @staticmethod + def export_scatter_elements_with_axis() -> None: + axis = 1 + node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, + ) + data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) + indices = np.array([[1, 3]], dtype=np.int64) + updates = np.array([[1.1, 2.1]], dtype=np.float32) + + y = scatter_elements(data, indices, updates, axis) + # print(y) produces + # [[1.0, 1.1, 3.0, 2.1, 5.0]] + + expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_with_axis') + + @staticmethod + def export_scatter_elements_with_negative_indices() -> None: + axis = 1 + node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, + ) + data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) + indices = np.array([[1, -3]], dtype=np.int64) + updates = np.array([[1.1, 2.1]], dtype=np.float32) + + y = scatter_elements(data, indices, updates, axis) + # print(y) produces + # [[1.0, 1.1, 2.1, 4.0, 5.0]] + + expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_with_negative_indices') + + @staticmethod + def export_scatter_elements_with_duplicate_indices() -> None: + axis = 1 + node = onnx.helper.make_node( + 'ScatterElements', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + axis=axis, + reduction='add', + ) + data = np.array([[1.0, 2.0, 3.0, 4.0, 5.0]], dtype=np.float32) + indices = np.array([[1, 1]], dtype=np.int64) + updates = np.array([[1.1, 2.1]], dtype=np.float32) + + y = scatter_elements(data, indices, updates, axis, reduction='add') + # print(y) produces + # [[1.0, 5.2, 3.0, 4.0, 5.0]] + + expect(node, inputs=[data, indices, updates], outputs=[y], + name='test_scatter_elements_with_duplicate_indices') diff --git a/third_party/onnx/onnx/backend/test/case/node/scatternd.py b/third_party/onnx/onnx/backend/test/case/node/scatternd.py new file mode 100644 index 000000000..72f91597d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/scatternd.py @@ -0,0 +1,106 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def scatter_nd_impl(data, indices, updates, reduction='none'): # type: ignore + + # Check tensor shapes + assert indices.shape[-1] <= len(data.shape) + assert updates.shape == indices.shape[:-1] + data.shape[indices.shape[-1]:] + + # Compute output + output = np.copy(data) + for i in np.ndindex(indices.shape[:-1]): + # NOTE: The order of iteration in this loop is not specified. + if reduction == 'add': + output[indices[i]] += updates[i] + elif reduction == 'mul': + output[indices[i]] *= updates[i] + else: + output[indices[i]] = updates[i] + return output + + +class ScatterND(Base): + + @staticmethod + def export_scatternd() -> None: + node = onnx.helper.make_node( + 'ScatterND', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + ) + data = np.array( + [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) + indices = np.array([[0], [2]], dtype=np.int64) + updates = np.array( + [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]], dtype=np.float32) + # Expecting output as np.array( + # [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + # [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + # [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], + # [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) + output = scatter_nd_impl(data, indices, updates) + expect(node, inputs=[data, indices, updates], outputs=[output], + name='test_scatternd') + + @staticmethod + def export_scatternd_add() -> None: + node = onnx.helper.make_node( + 'ScatterND', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + reduction='add', + ) + data = np.array( + [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) + indices = np.array([[0], [0]], dtype=np.int64) + updates = np.array( + [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]], dtype=np.float32) + # Expecting output as np.array( + # [[[7, 8, 9, 10], [13, 14, 15, 16], [18, 17, 16, 15], [16, 15, 14, 13]], + # [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + # [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], + # [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) + output = scatter_nd_impl(data, indices, updates, reduction='add') + expect(node, inputs=[data, indices, updates], outputs=[output], + name='test_scatternd_add') + + @staticmethod + def export_scatternd_multiply() -> None: + node = onnx.helper.make_node( + 'ScatterND', + inputs=['data', 'indices', 'updates'], + outputs=['y'], + reduction='mul', + ) + data = np.array( + [[[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]], + [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) + indices = np.array([[0], [0]], dtype=np.int64) + updates = np.array( + [[[5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7], [8, 8, 8, 8]], + [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]], dtype=np.float32) + # Expecting output as np.array( + # [[[5, 10, 15, 20], [60, 72, 84, 96], [168, 147, 126, 105], [128, 96, 64, 32]], + # [[1, 2, 3, 4], [5, 6, 7, 8], [8, 7, 6, 5], [4, 3, 2, 1]], + # [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], + # [[8, 7, 6, 5], [4, 3, 2, 1], [1, 2, 3, 4], [5, 6, 7, 8]]], dtype=np.float32) + output = scatter_nd_impl(data, indices, updates, reduction='mul') + expect(node, inputs=[data, indices, updates], outputs=[output], + name='test_scatternd_multiply') diff --git a/third_party/onnx/onnx/backend/test/case/node/selu.py b/third_party/onnx/onnx/backend/test/case/node/selu.py new file mode 100644 index 000000000..2b2f49e3b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/selu.py @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Selu(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Selu', + inputs=['x'], + outputs=['y'], + alpha=2.0, + gamma=3.0 + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + # expected output [-3.79272318, 0., 3.] + y = np.clip(x, 0, np.inf) * 3.0 + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 * 3.0 + expect(node, inputs=[x], outputs=[y], + name='test_selu_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, 0, np.inf) * 3.0 + (np.exp(np.clip(x, -np.inf, 0)) - 1) * 2.0 * 3.0 + expect(node, inputs=[x], outputs=[y], + name='test_selu') + + @staticmethod + def export_selu_default() -> None: + default_alpha = 1.67326319217681884765625 + default_gamma = 1.05070102214813232421875 + node = onnx.helper.make_node( + 'Selu', + inputs=['x'], + outputs=['y'], + ) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, 0, np.inf) * default_gamma + \ + (np.exp(np.clip(x, -np.inf, 0)) - 1) * default_alpha * default_gamma + expect(node, inputs=[x], outputs=[y], + name='test_selu_default') diff --git a/third_party/onnx/onnx/backend/test/case/node/sequence_map.py b/third_party/onnx/onnx/backend/test/case/node/sequence_map.py new file mode 100755 index 000000000..b8ad3f053 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/sequence_map.py @@ -0,0 +1,242 @@ +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class SequenceMap(Base): + @staticmethod + def export_sequence_map_identity_1_sequence(): # type: () -> None + body = onnx.helper.make_graph( + [onnx.helper.make_node('Identity', ['in0'], ['out0'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info( + 'in0', onnx.TensorProto.FLOAT, ['N'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['M'])] + ) + + node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x'], + outputs=['y'], + body=body + ) + + x = [np.random.uniform(0.0, 1.0, 10).astype(np.float32) + for _ in range(3)] + y = x + input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + ] + output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + ] + expect(node, inputs=[x], outputs=[y], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_identity_1_sequence') + + @staticmethod + def export_sequence_map_identity_2_sequences(): # type: () -> None + body = onnx.helper.make_graph( + [onnx.helper.make_node('Identity', ['in0'], ['out0']), + onnx.helper.make_node('Identity', ['in1'], ['out1'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['M'])], + [onnx.helper.make_tensor_value_info('out0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('out1', onnx.TensorProto.FLOAT, ['M'])] + ) + + node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0', 'y1'], + body=body + ) + + x0 = [np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) for _ in range(3)] + x1 = [np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) for _ in range(3)] + y0 = x0 + y1 = x1 + input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M'])), + ] + output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M'])), + ] + expect(node, inputs=[x0, x1], outputs=[y0, y1], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_identity_2_sequences') + + @staticmethod + def export_sequence_map_identity_1_sequence_1_tensor(): # type: () -> None + body = onnx.helper.make_graph( + [onnx.helper.make_node('Identity', ['in0'], ['out0']), + onnx.helper.make_node('Identity', ['in1'], ['out1'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['M'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info( + 'out1', onnx.TensorProto.FLOAT, ['M'])] + ) + + node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0', 'y1'], + body=body + ) + + x0 = [np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) for _ in range(3)] + x1 = np.random.uniform(0.0, 1.0, np.random.randint( + 1, 10)).astype(np.float32) + y0 = x0 + y1 = [x1 for _ in range(3)] + input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M']), + ] + output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['M'])), + ] + expect(node, inputs=[x0, x1], outputs=[y0, y1], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_identity_1_sequence_1_tensor') + + @staticmethod + def export_sequence_map_add_2_sequences(): # type: () -> None + body = onnx.helper.make_graph( + [onnx.helper.make_node('Add', ['in0', 'in1'], ['out0'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['N'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['N'])] + ) + + node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0'], + body=body + ) + + N = [np.random.randint(1, 10) for _ in range(3)] + x0 = [np.random.uniform(0.0, 1.0, N[k]).astype(np.float32) + for k in range(3)] + x1 = [np.random.uniform(0.0, 1.0, N[k]).astype(np.float32) + for k in range(3)] + y0 = [x0[k] + x1[k] for k in range(3)] + input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + ] + output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + ] + expect(node, inputs=[x0, x1], outputs=[y0], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_add_2_sequences') + + @staticmethod + def export_sequence_map_add_1_sequence_1_tensor(): # type: () -> None + body = onnx.helper.make_graph( + [onnx.helper.make_node('Add', ['in0', 'in1'], ['out0'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('in0', onnx.TensorProto.FLOAT, ['N']), + onnx.helper.make_tensor_value_info('in1', onnx.TensorProto.FLOAT, ['N'])], + [onnx.helper.make_tensor_value_info( + 'out0', onnx.TensorProto.FLOAT, ['N'])] + ) + + node = onnx.helper.make_node( + 'SequenceMap', + inputs=['x0', 'x1'], + outputs=['y0'], + body=body + ) + + x0 = [np.random.uniform(0.0, 1.0, 10).astype(np.float32) for k in range(3)] + x1 = np.random.uniform(0.0, 1.0, 10).astype(np.float32) + y0 = [x0[i] + x1 for i in range(3)] + input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N']), + ] + output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['N'])), + ] + expect(node, inputs=[x0, x1], outputs=[y0], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_add_1_sequence_1_tensor') + + @staticmethod + def export_sequence_map_extract_shapes(): # type: () -> None + body = onnx.helper.make_graph( + [onnx.helper.make_node('Shape', ['x'], ['shape'])], + 'seq_map_body', + [onnx.helper.make_tensor_value_info('x', onnx.TensorProto.FLOAT, ['H', 'W', 'C'])], + [onnx.helper.make_tensor_value_info('shape', onnx.TensorProto.INT64, [3])] + ) + + node = onnx.helper.make_node( + 'SequenceMap', + inputs=['in_seq'], + outputs=['shapes'], + body=body + ) + + shapes = [ + np.array([40, 30, 3], dtype=np.int64), + np.array([20, 10, 3], dtype=np.int64), + np.array([10, 5, 3], dtype=np.int64), + ] + x0 = [np.zeros(shape, dtype=np.float32) for shape in shapes] + input_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.FLOAT, ['H', 'W', 'C'])), + ] + output_type_protos = [ + onnx.helper.make_sequence_type_proto( + onnx.helper.make_tensor_type_proto(onnx.TensorProto.INT64, [3])), + ] + expect(node, inputs=[x0], outputs=[shapes], + input_type_protos=input_type_protos, + output_type_protos=output_type_protos, + name='test_sequence_map_extract_shapes') diff --git a/third_party/onnx/onnx/backend/test/case/node/sequenceinsert.py b/third_party/onnx/onnx/backend/test/case/node/sequenceinsert.py new file mode 100644 index 000000000..d5ca6633e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/sequenceinsert.py @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +from typing import List, Any + +import onnx +from ..base import Base +from . import expect + + +def sequence_insert_reference_implementation(sequence: List[Any], tensor: np.ndarray, position: np.ndarray = None) -> List[Any]: + # make a copy of input sequence + seq = list(sequence) + if position is not None: + # In these cases, insert_position will be between [-len(sequence), len(sequence)] + # The position argument will be in the format np.array([pos_index]) + insert_position = position[0] + seq.insert(insert_position, tensor) + else: + # Default position of insertion is at the end of the sequence. + seq.append(tensor) + return seq + + +class SequenceInsert(Base): + + @staticmethod + def export() -> None: + test_cases = { + 'at_back': [np.array([10, 11, 12]).astype(np.int64)], + 'at_front': [np.array([-2, -1, 0]), np.array([0]).astype(np.int64)] + } + sequence = [np.array([1, 2, 3, 4]).astype(np.int64), np.array([5, 6, 7]).astype(np.int64), np.array([8, 9]).astype(np.int64)] + + for test_name, test_inputs in test_cases.items(): + tensor = test_inputs[0].astype(np.int64) + + if len(test_inputs) > 1: + node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['sequence', 'tensor', 'position'], + outputs=['output_sequence'] + ) + position = test_inputs[1] + inserted = sequence_insert_reference_implementation(sequence, tensor, position) + expect(node, inputs=[sequence, tensor, position], outputs=[inserted], + name='test_sequence_insert_' + test_name) + else: + node = onnx.helper.make_node( + 'SequenceInsert', + inputs=['sequence', 'tensor'], + outputs=['output_sequence'] + ) + inserted = sequence_insert_reference_implementation(sequence, tensor) + expect(node, inputs=[sequence, tensor], outputs=[inserted], + name='test_sequence_insert_' + test_name) diff --git a/third_party/onnx/onnx/backend/test/case/node/shape.py b/third_party/onnx/onnx/backend/test/case/node/shape.py new file mode 100644 index 000000000..eaed93059 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/shape.py @@ -0,0 +1,58 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +# Reference implementation of shape op +def shape_reference_impl(x, start=None, end=None): # type: ignore + dims = x.shape[start:end] + return np.array(dims).astype(np.int64) + + +def test_shape(testname, xval, start=None, end=None): # type: ignore + node = onnx.helper.make_node( + 'Shape', + inputs=['x'], + outputs=['y'], + start=start, + end=end + ) + + yval = shape_reference_impl(xval, start, end) + + expect(node, inputs=[xval], outputs=[yval], name='test_shape' + testname) + + +class Shape(Base): + + @staticmethod + def export() -> None: + x = np.array([ + [1, 2, 3], + [4, 5, 6], + ]).astype(np.float32) + test_shape('_example', x) # preserve names of original test cases + + x = np.random.randn(3, 4, 5).astype(np.float32) + + test_shape('', x) # preserve names of original test cases + + test_shape('_start_1', x, start=1) + + test_shape('_end_1', x, end=1) + + test_shape('_start_negative_1', x, start=-1) + + test_shape('_end_negative_1', x, end=-1) + + test_shape('_start_1_end_negative_1', x, start=1, end=-1) + + test_shape('_start_1_end_2', x, start=1, end=2) + + test_shape('_clip_start', x, start=-10) + + test_shape('_clip_end', x, end=10) diff --git a/third_party/onnx/onnx/backend/test/case/node/shrink.py b/third_party/onnx/onnx/backend/test/case/node/shrink.py new file mode 100644 index 000000000..5e4de81b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/shrink.py @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Shrink(Base): + + @staticmethod + def export_hard_shrink() -> None: + node = onnx.helper.make_node( + 'Shrink', + inputs=['x'], + outputs=['y'], + lambd=1.5, + ) + X = np.arange(-2.0, 2.1, dtype=np.float32) + Y = np.array([-2, 0, 0, 0, 2], dtype=np.float32) + expect(node, inputs=[X], outputs=[Y], + name='test_shrink_hard') + + @staticmethod + def export_soft_shrink() -> None: + node = onnx.helper.make_node( + 'Shrink', + inputs=['x'], + outputs=['y'], + lambd=1.5, + bias=1.5, + ) + X = np.arange(-2.0, 2.1, dtype=np.float32) + Y = np.array([-0.5, 0, 0, 0, 0.5], dtype=np.float32) + expect(node, inputs=[X], outputs=[Y], + name='test_shrink_soft') diff --git a/third_party/onnx/onnx/backend/test/case/node/sigmoid.py b/third_party/onnx/onnx/backend/test/case/node/sigmoid.py new file mode 100644 index 000000000..7fd34b5b0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/sigmoid.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Sigmoid(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Sigmoid', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = 1.0 / (1.0 + np.exp(np.negative(x))) # expected output [0.26894143, 0.5, 0.7310586] + expect(node, inputs=[x], outputs=[y], + name='test_sigmoid_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = 1.0 / (1.0 + np.exp(np.negative(x))) + expect(node, inputs=[x], outputs=[y], + name='test_sigmoid') diff --git a/third_party/onnx/onnx/backend/test/case/node/sign.py b/third_party/onnx/onnx/backend/test/case/node/sign.py new file mode 100644 index 000000000..72e926067 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/sign.py @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Sign(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Sign', + inputs=['x'], + outputs=['y'], + ) + + x = np.array(range(-5, 6)).astype(np.float32) + y = np.sign(x) + expect(node, inputs=[x], outputs=[y], + name='test_sign') diff --git a/third_party/onnx/onnx/backend/test/case/node/sin.py b/third_party/onnx/onnx/backend/test/case/node/sin.py new file mode 100644 index 000000000..e3e74d369 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/sin.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Sin(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Sin', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.sin(x) + expect(node, inputs=[x], outputs=[y], + name='test_sin_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.sin(x) + expect(node, inputs=[x], outputs=[y], + name='test_sin') diff --git a/third_party/onnx/onnx/backend/test/case/node/sinh.py b/third_party/onnx/onnx/backend/test/case/node/sinh.py new file mode 100644 index 000000000..898d9818c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/sinh.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Sinh(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Sinh', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.sinh(x) # expected output [-1.17520118, 0., 1.17520118] + expect(node, inputs=[x], outputs=[y], + name='test_sinh_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.sinh(x) + expect(node, inputs=[x], outputs=[y], + name='test_sinh') diff --git a/third_party/onnx/onnx/backend/test/case/node/size.py b/third_party/onnx/onnx/backend/test/case/node/size.py new file mode 100644 index 000000000..2efbddff8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/size.py @@ -0,0 +1,33 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Size(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Size', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([ + [1, 2, 3], + [4, 5, 6], + ]).astype(np.float32) + y = np.array(6).astype(np.int64) + + expect(node, inputs=[x], outputs=[y], + name='test_size_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.array(x.size).astype(np.int64) + + expect(node, inputs=[x], outputs=[y], + name='test_size') diff --git a/third_party/onnx/onnx/backend/test/case/node/slice.py b/third_party/onnx/onnx/backend/test/case/node/slice.py new file mode 100644 index 000000000..af6586a1b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/slice.py @@ -0,0 +1,150 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Slice(Base): + + @staticmethod + def export_slice() -> None: + node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], + ) + + x = np.random.randn(20, 10, 5).astype(np.float32) + y = x[0:3, 0:10] + starts = np.array([0, 0], dtype=np.int64) + ends = np.array([3, 10], dtype=np.int64) + axes = np.array([0, 1], dtype=np.int64) + steps = np.array([1, 1], dtype=np.int64) + + expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice') + + @staticmethod + def export_slice_neg() -> None: + node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], + ) + + x = np.random.randn(20, 10, 5).astype(np.float32) + starts = np.array([0], dtype=np.int64) + ends = np.array([-1], dtype=np.int64) + axes = np.array([1], dtype=np.int64) + steps = np.array([1], dtype=np.int64) + y = x[:, 0:-1] + + expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_neg') + + @staticmethod + def export_slice_start_out_of_bounds() -> None: + node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], + ) + + x = np.random.randn(20, 10, 5).astype(np.float32) + starts = np.array([1000], dtype=np.int64) + ends = np.array([1000], dtype=np.int64) + axes = np.array([1], dtype=np.int64) + steps = np.array([1], dtype=np.int64) + y = x[:, 1000:1000] + + expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_start_out_of_bounds') + + @staticmethod + def export_slice_end_out_of_bounds() -> None: + node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], + ) + + x = np.random.randn(20, 10, 5).astype(np.float32) + starts = np.array([1], dtype=np.int64) + ends = np.array([1000], dtype=np.int64) + axes = np.array([1], dtype=np.int64) + steps = np.array([1], dtype=np.int64) + y = x[:, 1:1000] + + expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_end_out_of_bounds') + + @staticmethod + def export_slice_default_axes() -> None: + node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends'], + outputs=['y'], + ) + + x = np.random.randn(20, 10, 5).astype(np.float32) + starts = np.array([0, 0, 3], dtype=np.int64) + ends = np.array([20, 10, 4], dtype=np.int64) + y = x[:, :, 3:4] + + expect(node, inputs=[x, starts, ends], outputs=[y], + name='test_slice_default_axes') + + @staticmethod + def export_slice_default_steps() -> None: + node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes'], + outputs=['y'], + ) + + x = np.random.randn(20, 10, 5).astype(np.float32) + starts = np.array([0, 0, 3], dtype=np.int64) + ends = np.array([20, 10, 4], dtype=np.int64) + axes = np.array([0, 1, 2], dtype=np.int64) + y = x[:, :, 3:4] + + expect(node, inputs=[x, starts, ends, axes], outputs=[y], + name='test_slice_default_steps') + + @staticmethod + def export_slice_neg_steps() -> None: + node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes', 'steps'], + outputs=['y'], + ) + + x = np.random.randn(20, 10, 5).astype(np.float32) + starts = np.array([20, 10, 4], dtype=np.int64) + ends = np.array([0, 0, 1], dtype=np.int64) + axes = np.array([0, 1, 2], dtype=np.int64) + steps = np.array([-1, -3, -2]).astype(np.int64) + y = x[20:0:-1, 10:0:-3, 4:1:-2] + + expect(node, inputs=[x, starts, ends, axes, steps], outputs=[y], + name='test_slice_neg_steps') + + @staticmethod + def export_slice_negative_axes() -> None: + node = onnx.helper.make_node( + 'Slice', + inputs=['x', 'starts', 'ends', 'axes'], + outputs=['y'], + ) + + x = np.random.randn(20, 10, 5).astype(np.float32) + starts = np.array([0, 0, 3], dtype=np.int64) + ends = np.array([20, 10, 4], dtype=np.int64) + axes = np.array([0, -2, -1], dtype=np.int64) + y = x[:, :, 3:4] + + expect(node, inputs=[x, starts, ends, axes], outputs=[y], + name='test_slice_negative_axes') diff --git a/third_party/onnx/onnx/backend/test/case/node/softmax.py b/third_party/onnx/onnx/backend/test/case/node/softmax.py new file mode 100644 index 000000000..b02827166 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/softmax.py @@ -0,0 +1,96 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def softmax(x: np.ndarray, axis: int = -1) -> np.ndarray: + x_max = np.max(x, axis=axis, keepdims=True) + tmp = np.exp(x - x_max) + s = np.sum(tmp, axis=axis, keepdims=True) + return tmp / s + + +class Softmax(Base): + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + ) + x = np.array([[-1, 0, 1]]).astype(np.float32) + # expected output [[0.09003058, 0.24472848, 0.66524094]] + y = softmax(x, axis=1) + expect(node, inputs=[x], outputs=[y], + name='test_softmax_example') + + @staticmethod + def export_softmax_axis() -> None: + x = np.array([[0, 1, 2, 3], [10000, 10001, 10002, 10003]] + ).astype(np.float32) + # expected output + # [[0.032058604 0.08714432 0.23688284 0.6439143 ] + # [0.032058604 0.08714432 0.23688284 0.6439143 ]] + y = softmax(x) + + node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + ) + expect(node, inputs=[x], outputs=[y], + name='test_softmax_large_number') + + x = np.abs(np.random.randn(3, 4, 5).astype(np.float32)) + node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=0, + ) + y = softmax(x, axis=0) + expect(node, inputs=[x], outputs=[y], + name='test_softmax_axis_0') + + node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=1, + ) + y = softmax(x, axis=1) + expect(node, inputs=[x], outputs=[y], + name='test_softmax_axis_1') + + node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=2, + ) + y = softmax(x, axis=2) + expect(node, inputs=[x], outputs=[y], + name='test_softmax_axis_2') + + node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + axis=-1, + ) + y = softmax(x, axis=-1) + expect(node, inputs=[x], outputs=[y], + name='test_softmax_negative_axis') + + # default axis is -1 + node = onnx.helper.make_node( + 'Softmax', + inputs=['x'], + outputs=['y'], + ) + expect(node, inputs=[x], outputs=[y], + name='test_softmax_default_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/softmaxcrossentropy.py b/third_party/onnx/onnx/backend/test/case/node/softmaxcrossentropy.py new file mode 100644 index 000000000..fa3059b32 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/softmaxcrossentropy.py @@ -0,0 +1,902 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def softmaxcrossentropy(x, target, weight=None, reduction='mean', ignore_index=None, get_log_prob=None): # type: ignore + input_shape = x.shape + if len(input_shape) == 1: + raise RuntimeError("Unsupported shape") + + target_shape = target.shape + N = input_shape[0] + C = input_shape[1] + + # compute log_softmax + max_x = np.max(x, axis=1, keepdims=True) + exp_x = np.exp(x - max_x) + p = exp_x / np.sum(exp_x, axis=1, keepdims=True) + inp = np.log(p) + log_prob = None + if get_log_prob is True: + log_prob = np.copy(inp) + + # initialize the positional weights when required + gather_weight = None + if weight is not None: + # setting mode='clip' to deal with ignore_index > C or < 0 cases. + # when the target value is > C or < 0, it doesn't matter which value we are + # taking in gather_weight, since it will be set to 0 in the following if-block + # use np.int32 to make it compatible with x86 machines + gather_weight = np.take(weight, np.array(target, dtype=np.int32), mode='clip') + # set `ignore_index`'s loss weight to 0. + # The loss tensor will be multiplied by this weight tensor, + # so `ingore_index`'s loss value will be eliminated. + if ignore_index is not None: + gather_weight = np.where(target == ignore_index, 0, gather_weight).astype(dtype=np.float32) + elif ignore_index is not None: + gather_weight = np.where(target == ignore_index, 0, 1).astype(dtype=np.float32) + + # if input is 4-d and above, make it 3-d + if len(input_shape) != 3: + inp = inp.reshape((N, C, -1)) + target = target.reshape((N, -1)) + + # Get a dimension from the reshaped input. + # If the original input shape is [N, C, H, W], + # the D here should be H * W because we reshape + # [N, C, H, W] to [N, C, H * W]. + D = inp.shape[2] + neg_gather_element_input = np.zeros((N, D), dtype=np.float32) + for i in range(N): + for d in range(D): + if target[i][d] != ignore_index: + neg_gather_element_input[i][d] = -inp[i][target[i][d]][d] + + loss = neg_gather_element_input + + # if the input was 4-d or above reshape to the right shape + if len(input_shape) != 3: + loss = loss.reshape(target_shape) + + # apply the weights when required + if gather_weight is not None: + loss = gather_weight * loss + if reduction == 'mean': + loss = loss.sum() / gather_weight.sum() + if get_log_prob is True: + return loss, log_prob + else: + return loss + + if reduction == 'mean': + loss = np.mean(loss) + elif reduction == 'sum': + loss = np.sum(loss) + + if get_log_prob is True: + return loss, log_prob + else: + return loss + + +class SoftmaxCrossEntropyLoss(Base): + + @staticmethod + def export_softmaxcrossentropy_none() -> None: + # Define operator attributes. + reduction = 'none' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, reduction='none') + + # Check results + expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_none') + + @staticmethod + def export_softmaxcrossentropy_none_log_prob() -> None: + # Define operator attributes. + reduction = 'none' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, reduction='none', get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_none_log_prob') + + @staticmethod + def export_softmaxcrossentropy_none_weights() -> None: + # Define operator attributes. + reduction = 'none' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, weight=weights, reduction='none') + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_none_weights') + + @staticmethod + def export_softmaxcrossentropy_none_weights_log_prob() -> None: + # Define operator attributes. + reduction = 'none' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, reduction='none', get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_none_weights_log_prob') + + @staticmethod + def export_softmaxcrossentropy_sum() -> None: + # Define operator attributes. + reduction = 'sum' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, reduction='sum') + + # Check results + expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_sum') + + @staticmethod + def export_softmaxcrossentropy_sum_log_prob() -> None: + # Define operator attributes. + reduction = 'sum' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, reduction='sum', get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_sum_log_prob') + + @staticmethod + def export_softmaxcrossentropy_mean() -> None: + # Define operator attributes. + reduction = 'mean' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels) + + # Check results + expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean') + + @staticmethod + def export_softmaxcrossentropy_mean_log_prob() -> None: + # Define operator attributes. + reduction = 'mean' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_log_prob') + + @staticmethod + def export_softmaxcrossentropy_mean_3d() -> None: + # Define operator attributes. + reduction = 'mean' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2).astype(np.float32) + y = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, y) + + # Check results + expect(node, inputs=[x, y], outputs=[sce], name='test_sce_mean_3d') + + @staticmethod + def export_softmaxcrossentropy_mean_3d_log_prob() -> None: + # Define operator attributes. + reduction = 'mean' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2).astype(np.float32) + y = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, y, get_log_prob=True) + + # Check results + expect(node, inputs=[x, y], outputs=[loss, log_prob], name='test_sce_mean_3d_log_prob') + + @staticmethod + def export_softmaxcrossentropy_mean_weights() -> None: + # Define operator attributes. + reduction = 'mean' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, weight=weights) + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight') + + @staticmethod + def export_softmaxcrossentropy_mean_weights_log_prob() -> None: + # Define operator attributes. + reduction = 'mean' + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_log_prob') + + @staticmethod + def export_softmaxcrossentropy_mean_weights_ii() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(0) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + labels[0] = np.int64(0) + weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index) + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight_ii') + + @staticmethod + def export_softmaxcrossentropy_mean_weights_ii_log_prob() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(0) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + labels[0] = np.int64(0) + weights = np.array([0.9, 0.7, 0.8, 0.9, 0.9], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index, get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_ii_log_prob') + + @staticmethod + def export_softmaxcrossentropy_mean_no_weights_ii() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(2) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + labels[0] = np.int64(2) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, ignore_index=ignore_index) + + # Check results + expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean_no_weight_ii') + + @staticmethod + def export_softmaxcrossentropy_mean_no_weights_ii_log_prob() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(2) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, )).astype(np.int64) + labels[0] = np.int64(2) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, ignore_index=ignore_index, get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_no_weight_ii_log_prob') + + @staticmethod + def export_softmaxcrossentropy_mean_weights_ii_3d() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(1) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + labels[0][0] = np.int64(1) + weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index) + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight_ii_3d') + + @staticmethod + def export_softmaxcrossentropy_mean_weights_ii_3d_log_prob() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(1) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + labels[0][0] = np.int64(1) + weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, weight=weights, ignore_index=ignore_index, get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_ii_3d_log_prob') + + @staticmethod + def export_softmaxcrossentropy_mean_no_weights_ii_3d() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(2) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + labels[0][0] = np.int64(2) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, ignore_index=ignore_index) + + # Check results + expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean_no_weight_ii_3d') + + @staticmethod + def export_softmaxcrossentropy_mean_no_weights_ii_3d_log_prob() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(2) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, 2)).astype(np.int64) + labels[0][0] = np.int64(2) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, ignore_index=ignore_index, get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_no_weight_ii_3d_log_prob') + + @staticmethod + def export_softmaxcrossentropy_mean_weights_ii_4d() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(2) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2, 7).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) + labels[0][0][0] = np.int64(2) + weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, reduction=reduction, weight=weights, ignore_index=ignore_index) + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[sce], name='test_sce_mean_weight_ii_4d') + + @staticmethod + def export_softmaxcrossentropy_mean_weights_ii_4d_log_prob() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(2) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2, 7).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) + labels[0][0][0] = np.int64(2) + weights = np.array([0.2, 0.3, 0.6, 0.1, 0.5], dtype=np.float32) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, reduction=reduction, weight=weights, ignore_index=ignore_index, get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels, weights], outputs=[loss, log_prob], name='test_sce_mean_weight_ii_4d_log_prob') + + @staticmethod + def export_softmaxcrossentropy_mean_no_weights_ii_4d() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(2) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2, 7).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) + labels[0][0][0] = np.int64(2) + + # Compute SoftmaxCrossEntropyLoss + sce = softmaxcrossentropy(x, labels, reduction=reduction, ignore_index=ignore_index) + + # Check results + expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_mean_no_weight_ii_4d') + + @staticmethod + def export_softmaxcrossentropy_mean_no_weights_ii_4d_log_prob() -> None: + # Define operator attributes. + reduction = 'mean' + ignore_index = np.int64(2) + + # Create operator. + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + + # Define operator inputs. + np.random.seed(0) + x = np.random.rand(3, 5, 2, 7).astype(np.float32) + labels = np.random.randint(0, high=5, size=(3, 2, 7)).astype(np.int64) + labels[0][0][0] = np.int64(2) + + # Compute SoftmaxCrossEntropyLoss + loss, log_prob = softmaxcrossentropy(x, labels, reduction=reduction, ignore_index=ignore_index, get_log_prob=True) + + # Check results + expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_mean_no_weight_ii_4d_log_prob') + + @staticmethod + def export_input_shape_is_NCd1d2d3d4d5_mean_weight() -> None: + reduction = 'mean' + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction) + + N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 + np.random.seed(0) + x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + weight = np.random.rand(C).astype(np.float32) + + sce = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction) + + expect(node, inputs=[x, labels, weight], outputs=[sce], name='test_sce_NCd1d2d3d4d5_mean_weight') + + @staticmethod + def export_input_shape_is_NCd1d2d3d4d5_mean_weight_log_prob() -> None: + reduction = 'mean' + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction) + + N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 + np.random.seed(0) + x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + weight = np.random.rand(C).astype(np.float32) + + loss, log_prob = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + get_log_prob=True) + + expect(node, inputs=[x, labels, weight], outputs=[loss, log_prob], name='test_sce_NCd1d2d3d4d5_mean_weight_log_prob') + + @staticmethod + def export_input_shape_is_NCd1d2d3d4d5_none_no_weight() -> None: + reduction = 'none' + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction) + + N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 + np.random.seed(0) + x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + + sce = softmaxcrossentropy(x, + labels, + reduction=reduction) + + expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_NCd1d2d3d4d5_none_no_weight') + + @staticmethod + def export_input_shape_is_NCd1d2d3d4d5_none_no_weight_log_prob() -> None: + reduction = 'none' + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction) + + N, C, dim1, dim2, dim3, dim4, dim5 = 3, 5, 6, 6, 5, 3, 4 + np.random.seed(0) + x = np.random.rand(N, C, dim1, dim2, dim3, dim4, dim5).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3, dim4, dim5)).astype(np.int64) + + loss, log_prob = softmaxcrossentropy(x, + labels, + reduction=reduction, + get_log_prob=True) + + expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_NCd1d2d3d4d5_none_no_weight_log_prob') + + @staticmethod + def export_input_shape_is_NCd1_mean_weight_negative_ii() -> None: + reduction = 'mean' + ignore_index = np.int64(-1) + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + + N, C, dim1 = 3, 5, 6 + np.random.seed(0) + x = np.random.rand(N, C, dim1).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N, dim1)).astype(np.int64) + labels[0][0] = -1 + weight = np.random.rand(C).astype(np.float32) + + sce = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + + expect(node, inputs=[x, labels, weight], outputs=[sce], name='test_sce_NCd1_mean_weight_negative_ii') + + @staticmethod + def export_input_shape_is_NCd1_mean_weight_negative_ii_log_prob() -> None: + reduction = 'mean' + ignore_index = np.int64(-1) + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + + N, C, dim1 = 3, 5, 6 + np.random.seed(0) + x = np.random.rand(N, C, dim1).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N, dim1)).astype(np.int64) + labels[0][0] = -1 + weight = np.random.rand(C).astype(np.float32) + + loss, log_prob = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index, + get_log_prob=True) + + expect(node, inputs=[x, labels, weight], outputs=[loss, log_prob], name='test_sce_NCd1_mean_weight_negative_ii_log_prob') + + @staticmethod + def export_input_shape_is_NCd1d2d3_none_no_weight_negative_ii() -> None: + reduction = 'none' + ignore_index = np.int64(-5) + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + + N, C, dim1, dim2, dim3 = 3, 5, 6, 6, 5 + np.random.seed(0) + x = np.random.rand(N, C, dim1, dim2, dim3).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3)).astype(np.int64) + labels[0][0][0][0] = -5 + + sce = softmaxcrossentropy(x, + labels, + reduction=reduction, + ignore_index=ignore_index) + + expect(node, inputs=[x, labels], outputs=[sce], name='test_sce_NCd1d2d3_none_no_weight_negative_ii') + + @staticmethod + def export_input_shape_is_NCd1d2d3_none_no_weight_negative_ii_log_prob() -> None: + reduction = 'none' + ignore_index = np.int64(-5) + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + + N, C, dim1, dim2, dim3 = 3, 5, 6, 6, 5 + np.random.seed(0) + x = np.random.rand(N, C, dim1, dim2, dim3).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N, dim1, dim2, dim3)).astype(np.int64) + labels[0][0][0][0] = -5 + + loss, log_prob = softmaxcrossentropy(x, + labels, + reduction=reduction, + ignore_index=ignore_index, + get_log_prob=True) + + expect(node, inputs=[x, labels], outputs=[loss, log_prob], name='test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob') + + @staticmethod + def export_input_shape_is_NCd1d2d3_sum_weight_high_ii() -> None: + reduction = 'sum' + ignore_index = np.int64(10) + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z'], + reduction=reduction, + ignore_index=ignore_index) + + N, C = 3, 5 + np.random.seed(0) + x = np.random.rand(N, C).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N)).astype(np.int64) + labels[0] = 10 + weight = np.random.rand(C).astype(np.float32) + + sce = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index) + + expect(node, inputs=[x, labels, weight], outputs=[sce], name='test_sce_NCd1d2d3_sum_weight_high_ii') + + @staticmethod + def export_input_shape_is_NCd1d2d3_sum_weight_high_ii_log_prob() -> None: + reduction = 'sum' + ignore_index = np.int64(10) + + node = onnx.helper.make_node('SoftmaxCrossEntropyLoss', + inputs=['x', 'y', 'w'], + outputs=['z', 'log_prob'], + reduction=reduction, + ignore_index=ignore_index) + + N, C = 3, 5 + np.random.seed(0) + x = np.random.rand(N, C).astype(np.float32) + labels = np.random.randint(0, high=C, size=(N)).astype(np.int64) + labels[0] = 10 + weight = np.random.rand(C).astype(np.float32) + + loss, log_prob = softmaxcrossentropy(x, + labels, + weight=weight, + reduction=reduction, + ignore_index=ignore_index, + get_log_prob=True) + + expect(node, inputs=[x, labels, weight], outputs=[loss, log_prob], name='test_sce_NCd1d2d3_sum_weight_high_ii_log_prob') diff --git a/third_party/onnx/onnx/backend/test/case/node/softplus.py b/third_party/onnx/onnx/backend/test/case/node/softplus.py new file mode 100644 index 000000000..fbcc83ebc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/softplus.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Softplus(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Softplus', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.log(np.exp(x) + 1) # expected output [0.31326166, 0.69314718, 1.31326163] + expect(node, inputs=[x], outputs=[y], + name='test_softplus_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.log(np.exp(x) + 1) + expect(node, inputs=[x], outputs=[y], + name='test_softplus') diff --git a/third_party/onnx/onnx/backend/test/case/node/softsign.py b/third_party/onnx/onnx/backend/test/case/node/softsign.py new file mode 100644 index 000000000..c0715ce55 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/softsign.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Softsign(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Softsign', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.array([-0.5, 0, 0.5]).astype(np.float32) + expect(node, inputs=[x], outputs=[y], + name='test_softsign_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = x / (1 + np.abs(x)) + expect(node, inputs=[x], outputs=[y], + name='test_softsign') diff --git a/third_party/onnx/onnx/backend/test/case/node/spacetodepth.py b/third_party/onnx/onnx/backend/test/case/node/spacetodepth.py new file mode 100644 index 000000000..0278ad3d8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/spacetodepth.py @@ -0,0 +1,57 @@ + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class SpaceToDepth(Base): + + @staticmethod + def export() -> None: + b, c, h, w = shape = (2, 2, 6, 6) + blocksize = 2 + node = onnx.helper.make_node( + 'SpaceToDepth', + inputs=['x'], + outputs=['y'], + blocksize=blocksize, + ) + x = np.random.random_sample(shape).astype(np.float32) + tmp = np.reshape(x, [b, c, + h // blocksize, blocksize, + w // blocksize, blocksize]) + tmp = np.transpose(tmp, [0, 3, 5, 1, 2, 4]) + y = np.reshape(tmp, [b, c * (blocksize**2), + h // blocksize, + w // blocksize]) + expect(node, inputs=[x], outputs=[y], + name='test_spacetodepth') + + @staticmethod + def export_example() -> None: + node = onnx.helper.make_node( + 'SpaceToDepth', + inputs=['x'], + outputs=['y'], + blocksize=2, + ) + + # (1, 1, 4, 6) input tensor + x = np.array([[[[0, 6, 1, 7, 2, 8], + [12, 18, 13, 19, 14, 20], + [3, 9, 4, 10, 5, 11], + [15, 21, 16, 22, 17, 23]]]]).astype(np.float32) + + # (1, 4, 2, 3) output tensor + y = np.array([[[[0, 1, 2], + [3, 4, 5]], + [[6, 7, 8], + [9, 10, 11]], + [[12, 13, 14], + [15, 16, 17]], + [[18, 19, 20], + [21, 22, 23]]]]).astype(np.float32) + expect(node, inputs=[x], outputs=[y], + name='test_spacetodepth_example') diff --git a/third_party/onnx/onnx/backend/test/case/node/split.py b/third_party/onnx/onnx/backend/test/case/node/split.py new file mode 100644 index 000000000..dcc1ae5ee --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/split.py @@ -0,0 +1,104 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Split(Base): + + @staticmethod + def export_1d() -> None: + input = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float32) + + node = onnx.helper.make_node( + 'Split', + inputs=['input'], + outputs=['output_1', 'output_2', 'output_3'], + axis=0 + ) + + expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4.]).astype(np.float32), np.array([5., 6.]).astype(np.float32)] + expect(node, inputs=[input], outputs=[y for y in expected_outputs], name='test_split_equal_parts_1d') + + split = np.array([2, 4]).astype(np.int64) + node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2'], + axis=0, + ) + + expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4., 5., 6.]).astype(np.float32)] + expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_variable_parts_1d') + + @staticmethod + def export_2d() -> None: + input = np.array([[1., 2., 3., 4., 5., 6.], + [7., 8., 9., 10., 11., 12.]]).astype(np.float32) + + node = onnx.helper.make_node( + 'Split', + inputs=['input'], + outputs=['output_1', 'output_2'], + axis=1 + ) + + expected_outputs = [np.array([[1., 2., 3.], [7., 8., 9.]]).astype(np.float32), + np.array([[4., 5., 6.], [10., 11., 12.]]).astype(np.float32)] + + expect(node, inputs=[input], outputs=[y for y in expected_outputs], name='test_split_equal_parts_2d') + + split = np.array([2, 4]).astype(np.int64) + node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2'], + axis=1, + ) + + expected_outputs = [np.array([[1., 2.], [7., 8.]]).astype(np.float32), + np.array([[3., 4., 5., 6.], [9., 10., 11., 12.]]).astype(np.float32)] + + expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_variable_parts_2d') + + @staticmethod + def export_default_values() -> None: + input = np.array([1., 2., 3., 4., 5., 6.]).astype(np.float32) + + # If axis is not specified, split is applied on default axis 0 + node = onnx.helper.make_node( + 'Split', + inputs=['input'], + outputs=['output_1', 'output_2', 'output_3'] + ) + + expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4.]).astype(np.float32), np.array([5., 6.]).astype(np.float32)] + expect(node, inputs=[input], outputs=[y for y in expected_outputs], name='test_split_equal_parts_default_axis') + + split = np.array([2, 4]).astype(np.int64) + node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2'] + ) + + expected_outputs = [np.array([1., 2.]).astype(np.float32), np.array([3., 4., 5., 6.]).astype(np.float32)] + expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_variable_parts_default_axis') + + @staticmethod + def export_zero_size_splits() -> None: + input = np.array([]).astype(np.float32) + + # Split emtpy tensor to tensors of size zero + split = np.array([0, 0, 0]).astype(np.int64) + node = onnx.helper.make_node( + 'Split', + inputs=['input', 'split'], + outputs=['output_1', 'output_2', 'output_3'] + ) + + expected_outputs = [np.array([]).astype(np.float32), np.array([]).astype(np.float32), np.array([]).astype(np.float32)] + expect(node, inputs=[input, split], outputs=[y for y in expected_outputs], name='test_split_zero_size_splits') diff --git a/third_party/onnx/onnx/backend/test/case/node/sqrt.py b/third_party/onnx/onnx/backend/test/case/node/sqrt.py new file mode 100644 index 000000000..4647d7c6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/sqrt.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Sqrt(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Sqrt', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([1, 4, 9]).astype(np.float32) + y = np.sqrt(x) # expected output [1., 2., 3.] + expect(node, inputs=[x], outputs=[y], + name='test_sqrt_example') + + x = np.abs(np.random.randn(3, 4, 5).astype(np.float32)) + y = np.sqrt(x) + expect(node, inputs=[x], outputs=[y], + name='test_sqrt') diff --git a/third_party/onnx/onnx/backend/test/case/node/squeeze.py b/third_party/onnx/onnx/backend/test/case/node/squeeze.py new file mode 100644 index 000000000..bed1bd787 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/squeeze.py @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from onnx.backend.test.case.base import Base +from onnx.backend.test.case.node import expect + + +class Squeeze(Base): + + @staticmethod + def export_squeeze() -> None: + node = onnx.helper.make_node( + 'Squeeze', + inputs=['x', 'axes'], + outputs=['y'], + ) + x = np.random.randn(1, 3, 4, 5).astype(np.float32) + axes = np.array([0], dtype=np.int64) + y = np.squeeze(x, axis=0) + + expect(node, inputs=[x, axes], outputs=[y], + name='test_squeeze') + + @staticmethod + def export_squeeze_negative_axes() -> None: + node = onnx.helper.make_node( + 'Squeeze', + inputs=['x', 'axes'], + outputs=['y'], + ) + x = np.random.randn(1, 3, 1, 5).astype(np.float32) + axes = np.array([-2], dtype=np.int64) + y = np.squeeze(x, axis=-2) + expect(node, inputs=[x, axes], outputs=[y], + name='test_squeeze_negative_axes') diff --git a/third_party/onnx/onnx/backend/test/case/node/stringnormalizer.py b/third_party/onnx/onnx/backend/test/case/node/stringnormalizer.py new file mode 100644 index 000000000..ccf09bca6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/stringnormalizer.py @@ -0,0 +1,108 @@ +# SPDX-License-Identifier: Apache-2.0 +# coding: utf-8 + + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class StringNormalizer(Base): + + @staticmethod + def export_nostopwords_nochangecase() -> None: + input = np.array([u'monday', u'tuesday']).astype(object) + output = input + + # No stopwords. This is a NOOP + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + is_case_sensitive=1, + ) + expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_nostopwords_nochangecase') + + @staticmethod + def export_monday_casesensintive_nochangecase() -> None: + input = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) + output = np.array([u'tuesday', u'wednesday', u'thursday']).astype(object) + stopwords = [u'monday'] + + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + is_case_sensitive=1, + stopwords=stopwords + ) + expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_casesensintive_nochangecase') + + @staticmethod + def export_monday_casesensintive_lower() -> None: + input = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) + output = np.array([u'tuesday', u'wednesday', u'thursday']).astype(object) + stopwords = [u'monday'] + + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='LOWER', + is_case_sensitive=1, + stopwords=stopwords + ) + expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_casesensintive_lower') + + @staticmethod + def export_monday_casesensintive_upper() -> None: + input = np.array([u'monday', u'tuesday', u'wednesday', u'thursday']).astype(object) + output = np.array([u'TUESDAY', u'WEDNESDAY', u'THURSDAY']).astype(object) + stopwords = [u'monday'] + + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + is_case_sensitive=1, + stopwords=stopwords + ) + expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_casesensintive_upper') + + @staticmethod + def export_monday_empty_output() -> None: + input = np.array([u'monday', u'monday']).astype(object) + output = np.array([u'']).astype(object) + stopwords = [u'monday'] + + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + is_case_sensitive=1, + stopwords=stopwords + ) + expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_empty_output') + + @staticmethod + def export_monday_insensintive_upper_twodim() -> None: + input = np.array([u'Monday', u'tuesday', u'wednesday', u'Monday', u'tuesday', u'wednesday']).astype(object).reshape([1, 6]) + + # It does upper case cecedille, accented E + # and german umlaut but fails + # with german eszett + output = np.array([u'TUESDAY', u'WEDNESDAY', u'TUESDAY', u'WEDNESDAY']).astype(object).reshape([1, 4]) + stopwords = [u'monday'] + + node = onnx.helper.make_node( + 'StringNormalizer', + inputs=['x'], + outputs=['y'], + case_change_action='UPPER', + stopwords=stopwords + ) + expect(node, inputs=[input], outputs=[output], name='test_strnormalizer_export_monday_insensintive_upper_twodim') diff --git a/third_party/onnx/onnx/backend/test/case/node/sub.py b/third_party/onnx/onnx/backend/test/case/node/sub.py new file mode 100644 index 000000000..856ade897 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/sub.py @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Sub(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Sub', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.array([1, 2, 3]).astype(np.float32) + y = np.array([3, 2, 1]).astype(np.float32) + z = x - y # expected output [-2., 0., 2.] + expect(node, inputs=[x, y], outputs=[z], + name='test_sub_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(3, 4, 5).astype(np.float32) + z = x - y + expect(node, inputs=[x, y], outputs=[z], + name='test_sub') + + x = np.random.randint(12, 24, size=(3, 4, 5), dtype=np.uint8) + y = np.random.randint(12, size=(3, 4, 5), dtype=np.uint8) + z = x - y + expect(node, inputs=[x, y], outputs=[z], + name='test_sub_uint8') + + @staticmethod + def export_sub_broadcast() -> None: + node = onnx.helper.make_node( + 'Sub', + inputs=['x', 'y'], + outputs=['z'], + ) + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.random.randn(5).astype(np.float32) + z = x - y + expect(node, inputs=[x, y], outputs=[z], + name='test_sub_bcast') diff --git a/third_party/onnx/onnx/backend/test/case/node/sum.py b/third_party/onnx/onnx/backend/test/case/node/sum.py new file mode 100644 index 000000000..2806ab26c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/sum.py @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Sum(Base): + + @staticmethod + def export() -> None: + data_0 = np.array([3, 0, 2]).astype(np.float32) + data_1 = np.array([1, 3, 4]).astype(np.float32) + data_2 = np.array([2, 6, 6]).astype(np.float32) + result = np.array([6, 9, 12]).astype(np.float32) + node = onnx.helper.make_node( + 'Sum', + inputs=['data_0', 'data_1', 'data_2'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1, data_2], outputs=[result], + name='test_sum_example') + + node = onnx.helper.make_node( + 'Sum', + inputs=['data_0'], + outputs=['result'], + ) + expect(node, inputs=[data_0], outputs=[data_0], + name='test_sum_one_input') + + result = np.add(data_0, data_1) + node = onnx.helper.make_node( + 'Sum', + inputs=['data_0', 'data_1'], + outputs=['result'], + ) + expect(node, inputs=[data_0, data_1], outputs=[result], + name='test_sum_two_inputs') diff --git a/third_party/onnx/onnx/backend/test/case/node/tan.py b/third_party/onnx/onnx/backend/test/case/node/tan.py new file mode 100644 index 000000000..d03f8fbc6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/tan.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Tan(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Tan', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.tan(x) + expect(node, inputs=[x], outputs=[y], + name='test_tan_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.tan(x) + expect(node, inputs=[x], outputs=[y], + name='test_tan') diff --git a/third_party/onnx/onnx/backend/test/case/node/tanh.py b/third_party/onnx/onnx/backend/test/case/node/tanh.py new file mode 100644 index 000000000..ae689239f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/tanh.py @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Tanh(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Tanh', + inputs=['x'], + outputs=['y'], + ) + + x = np.array([-1, 0, 1]).astype(np.float32) + y = np.tanh(x) # expected output [-0.76159418, 0., 0.76159418] + expect(node, inputs=[x], outputs=[y], + name='test_tanh_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.tanh(x) + expect(node, inputs=[x], outputs=[y], + name='test_tanh') diff --git a/third_party/onnx/onnx/backend/test/case/node/tfidfvectorizer.py b/third_party/onnx/onnx/backend/test/case/node/tfidfvectorizer.py new file mode 100644 index 000000000..260eb59dd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/tfidfvectorizer.py @@ -0,0 +1,206 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +from typing import Any, Sequence + +import onnx +from onnx import NodeProto +from ..base import Base +from . import expect + + +class TfIdfVectorizerHelper(): + def __init__(self, **params: Any) -> None: + # Attr names + mode = str('mode') + min_gram_length = str('min_gram_length') + max_gram_length = str('max_gram_length') + max_skip_count = str('max_skip_count') + ngram_counts = str('ngram_counts') + ngram_indexes = str('ngram_indexes') + pool_int64s = str('pool_int64s') + + required_attr = [mode, min_gram_length, max_gram_length, max_skip_count, + ngram_counts, ngram_indexes, pool_int64s] + + for i in required_attr: + assert i in params, "Missing attribute: {0}".format(i) + + self.mode = params[mode] + self.min_gram_length = params[min_gram_length] + self.max_gram_length = params[max_gram_length] + self.max_skip_count = params[max_skip_count] + self.ngram_counts = params[ngram_counts] + self.ngram_indexes = params[ngram_indexes] + self.pool_int64s = params[pool_int64s] + + def make_node_noweights(self) -> NodeProto: + return onnx.helper.make_node( + 'TfIdfVectorizer', + inputs=['X'], + outputs=['Y'], + mode=self.mode, + min_gram_length=self.min_gram_length, + max_gram_length=self.max_gram_length, + max_skip_count=self.max_skip_count, + ngram_counts=self.ngram_counts, + ngram_indexes=self.ngram_indexes, + pool_int64s=self.pool_int64s + ) + + +class TfIdfVectorizer(Base): + + @staticmethod + def export_tf_only_bigrams_skip0() -> None: + input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) + output = np.array([0., 0., 0., 0., 1., 1., 1.]).astype(np.float32) + + ngram_counts = np.array([0, 4]).astype(np.int64) + ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) + pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + + helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=0, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s + ) + node = helper.make_node_noweights() + expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_only_bigrams_skip0') + + @staticmethod + def export_tf_batch_onlybigrams_skip0() -> None: + input = np.array([[1, 1, 3, 3, 3, 7], [8, 6, 7, 5, 6, 8]]).astype(np.int32) + output = np.array([[0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 1., 0., 1.]]).astype(np.float32) + + ngram_counts = np.array([0, 4]).astype(np.int64) + ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) + pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + + helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=0, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s + ) + node = helper.make_node_noweights() + expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_batch_onlybigrams_skip0') + + @staticmethod + def export_tf_onlybigrams_levelempty() -> None: + input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) + output = np.array([1., 1., 1.]).astype(np.float32) + + ngram_counts = np.array([0, 0]).astype(np.int64) + ngram_indexes = np.array([0, 1, 2]).astype(np.int64) + pool_int64s = np.array([ # unigrams none + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + + helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=0, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s + ) + node = helper.make_node_noweights() + expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_onlybigrams_levelempty') + + @staticmethod + def export_tf_onlybigrams_skip5() -> None: + input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) + output = np.array([0., 0., 0., 0., 1., 3., 1.]).astype(np.float32) + + ngram_counts = np.array([0, 4]).astype(np.int64) + ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) + pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + + helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s + ) + node = helper.make_node_noweights() + expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_onlybigrams_skip5') + + @staticmethod + def export_tf_batch_onlybigrams_skip5() -> None: + input = np.array([[1, 1, 3, 3, 3, 7], [8, 6, 7, 5, 6, 8]]).astype(np.int32) + output = np.array([[0., 0., 0., 0., 0., 0., 0.], [0., 0., 0., 0., 1., 1., 1.]]).astype(np.float32) + + ngram_counts = np.array([0, 4]).astype(np.int64) + ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) + pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + + helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=2, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s + ) + node = helper.make_node_noweights() + expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_batch_onlybigrams_skip5') + + @staticmethod + def export_tf_uniandbigrams_skip5() -> None: + input = np.array([1, 1, 3, 3, 3, 7, 8, 6, 7, 5, 6, 8]).astype(np.int32) + output = np.array([0., 3., 1., 0., 1., 3., 1.]).astype(np.float32) + + ngram_counts = np.array([0, 4]).astype(np.int64) + ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) + pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + + helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=1, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s + ) + node = helper.make_node_noweights() + expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_uniandbigrams_skip5') + + @staticmethod + def export_tf_batch_uniandbigrams_skip5() -> None: + input = np.array([[1, 1, 3, 3, 3, 7], [8, 6, 7, 5, 6, 8]]).astype(np.int32) + output = np.array([[0., 3., 0., 0., 0., 0., 0.], [0., 0., 1., 0., 1., 1., 1.]]).astype(np.float32) + + ngram_counts = np.array([0, 4]).astype(np.int64) + ngram_indexes = np.array([0, 1, 2, 3, 4, 5, 6]).astype(np.int64) + pool_int64s = np.array([2, 3, 5, 4, # unigrams + 5, 6, 7, 8, 6, 7]).astype(np.int64) # bigrams + + helper = TfIdfVectorizerHelper( + mode='TF', + min_gram_length=1, + max_gram_length=2, + max_skip_count=5, + ngram_counts=ngram_counts, + ngram_indexes=ngram_indexes, + pool_int64s=pool_int64s + ) + node = helper.make_node_noweights() + expect(node, inputs=[input], outputs=[output], name='test_tfidfvectorizer_tf_batch_uniandbigrams_skip5') diff --git a/third_party/onnx/onnx/backend/test/case/node/thresholdedrelu.py b/third_party/onnx/onnx/backend/test/case/node/thresholdedrelu.py new file mode 100644 index 000000000..e1132e0a6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/thresholdedrelu.py @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class ThresholdedRelu(Base): + + @staticmethod + def export() -> None: + alpha = 2.0 + node = onnx.helper.make_node( + 'ThresholdedRelu', + inputs=['x'], + outputs=['y'], + alpha=alpha + ) + + x = np.array([-1.5, 0., 1.2, 2.0, 2.2]).astype(np.float32) + y = np.clip(x, alpha, np.inf) # expected output [0., 0., 0., 0., 2.2] + y[y == alpha] = 0 + + expect(node, inputs=[x], outputs=[y], + name='test_thresholdedrelu_example') + + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, alpha, np.inf) + y[y == alpha] = 0 + + expect(node, inputs=[x], outputs=[y], + name='test_thresholdedrelu') + + @staticmethod + def export_default() -> None: + default_alpha = 1.0 + node = onnx.helper.make_node( + 'ThresholdedRelu', + inputs=['x'], + outputs=['y'] + ) + x = np.random.randn(3, 4, 5).astype(np.float32) + y = np.clip(x, default_alpha, np.inf) + y[y == default_alpha] = 0 + + expect(node, inputs=[x], outputs=[y], + name='test_thresholdedrelu_default') diff --git a/third_party/onnx/onnx/backend/test/case/node/tile.py b/third_party/onnx/onnx/backend/test/case/node/tile.py new file mode 100644 index 000000000..1002d2a6d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/tile.py @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Tile(Base): + + @staticmethod + def export_tile() -> None: + node = onnx.helper.make_node( + 'Tile', + inputs=['x', 'y'], + outputs=['z'] + ) + + x = np.random.rand(2, 3, 4, 5).astype(np.float32) + + repeats = np.random.randint(low=1, high=10, size=(np.ndim(x),)).astype(np.int64) + + z = np.tile(x, repeats) + + expect(node, + inputs=[x, repeats], + outputs=[z], + name='test_tile') + + @staticmethod + def export_tile_precomputed() -> None: + node = onnx.helper.make_node( + 'Tile', + inputs=['x', 'y'], + outputs=['z'] + ) + + x = np.array([ + [0, 1], + [2, 3] + ], dtype=np.float32) + + repeats = np.array([2, 2], dtype=np.int64) + + z = np.array([ + [0, 1, 0, 1], + [2, 3, 2, 3], + [0, 1, 0, 1], + [2, 3, 2, 3] + ], dtype=np.float32) + + expect(node, + inputs=[x, repeats], + outputs=[z], + name='test_tile_precomputed') diff --git a/third_party/onnx/onnx/backend/test/case/node/topk.py b/third_party/onnx/onnx/backend/test/case/node/topk.py new file mode 100644 index 000000000..c4f64e298 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/topk.py @@ -0,0 +1,121 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def topk_sorted_implementation(X, k, axis, largest): # type: ignore + sorted_indices = np.argsort(X, axis=axis) + sorted_values = np.sort(X, axis=axis) + if largest: + sorted_indices = np.flip(sorted_indices, axis=axis) + sorted_values = np.flip(sorted_values, axis=axis) + topk_sorted_indices = np.take(sorted_indices, np.arange(k), axis=axis) + topk_sorted_values = np.take(sorted_values, np.arange(k), axis=axis) + return topk_sorted_values, np.array(topk_sorted_indices, dtype=np.int64) + + +class TopK(Base): + + @staticmethod + def export_top_k() -> None: + axis = 1 + largest = 1 + + k = 3 + node = onnx.helper.make_node( + 'TopK', + inputs=['x', 'k'], + outputs=['values', 'indices'], + axis=axis + ) + X = np.array([ + [0, 1, 2, 3], + [4, 5, 6, 7], + [8, 9, 10, 11], + ], dtype=np.float32) + K = np.array([k], dtype=np.int64) + values_ref, indices_ref = topk_sorted_implementation(X, k, axis, largest) + + #print(values_ref) + #[[ 3. 2. 1.] + # [ 7. 6. 5.] + # [11. 10. 9.]] + #print(indices_ref) + #[[3 2 1] + # [3 2 1] + # [3 2 1]] + + expect(node, inputs=[X, K], outputs=[values_ref, indices_ref], + name='test_top_k') + + @staticmethod + def export_top_k_smallest() -> None: + axis = 1 + largest = 0 + sorted = 1 + k = 3 + + node = onnx.helper.make_node( + 'TopK', + inputs=['x', 'k'], + outputs=['values', 'indices'], + axis=axis, + largest=largest, + sorted=sorted + ) + + X = np.array([ + [0, 1, 2, 3], + [4, 5, 6, 7], + [11, 10, 9, 8], + ], dtype=np.float32) + K = np.array([k], dtype=np.int64) + values_ref, indices_ref = topk_sorted_implementation(X, k, axis, largest) + + #print(values_ref) + #[[ 0. 1. 2.] + # [ 4. 5. 6.] + # [ 8. 9. 10.]] + #print(indices_ref) + #[[0 1 2] + # [0 1 2] + # [3 2 1]] + + expect(node, inputs=[X, K], outputs=[values_ref, indices_ref], + name='test_top_k_smallest') + + @staticmethod + def export_top_k_negative_axis() -> None: + axis = -1 + largest = 1 + + k = 3 + node = onnx.helper.make_node( + 'TopK', + inputs=['x', 'k'], + outputs=['values', 'indices'], + axis=axis + ) + X = np.array([ + [0, 1, 2, 3], + [4, 5, 6, 7], + [8, 9, 10, 11], + ], dtype=np.float32) + K = np.array([k], dtype=np.int64) + values_ref, indices_ref = topk_sorted_implementation(X, k, axis, largest) + + # print(values_ref) + #[[ 3. 2. 1.] + # [ 7. 6. 5.] + # [11. 10. 9.]] + # print(indices_ref) + #[[3 2 1] + # [3 2 1] + # [3 2 1]] + + expect(node, inputs=[X, K], outputs=[values_ref, indices_ref], + name='test_top_k_negative_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/transpose.py b/third_party/onnx/onnx/backend/test/case/node/transpose.py new file mode 100644 index 000000000..334c449a5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/transpose.py @@ -0,0 +1,43 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore +import itertools + +import onnx +from ..base import Base +from . import expect + + +class Transpose(Base): + + @staticmethod + def export_default() -> None: + shape = (2, 3, 4) + data = np.random.random_sample(shape).astype(np.float32) + + node = onnx.helper.make_node( + 'Transpose', + inputs=['data'], + outputs=['transposed'] + ) + + transposed = np.transpose(data) + expect(node, inputs=[data], outputs=[transposed], + name='test_transpose_default') + + @staticmethod + def export_all_permutations() -> None: + shape = (2, 3, 4) + data = np.random.random_sample(shape).astype(np.float32) + permutations = list(itertools.permutations(np.arange(len(shape)))) + + for i in range(len(permutations)): + node = onnx.helper.make_node( + 'Transpose', + inputs=['data'], + outputs=['transposed'], + perm=permutations[i] + ) + transposed = np.transpose(data, permutations[i]) + expect(node, inputs=[data], outputs=[transposed], + name='test_transpose_all_permutations_' + str(i)) diff --git a/third_party/onnx/onnx/backend/test/case/node/trilu.py b/third_party/onnx/onnx/backend/test/case/node/trilu.py new file mode 100644 index 000000000..7477f7a76 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/trilu.py @@ -0,0 +1,450 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def triu_reference_implementation(x, k=0): # type: ignore + return np.triu(x, k) + + +def tril_reference_implementation(x, k=0): # type: ignore + return np.tril(x, k) + + +class Trilu(Base): + @staticmethod + def export_triu() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + ) + + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 0, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[4, 7, 3, 7, 9], + # [0, 2, 8, 6, 9], + # [0, 0, 0, 8, 7], + # [0, 0, 0, 2, 4]] + y = triu_reference_implementation(x) + expect(node, inputs=[x], outputs=[y], name='test_triu') + + @staticmethod + def export_triu_neg() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + ) + + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + k = np.array(-1).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 0, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [0, 4, 0, 8, 7], + # [0, 0, 4, 2, 4]] + y = triu_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_triu_neg') + + @staticmethod + def export_triu_out_neg_out() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + ) + + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + k = np.array(-7).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 0, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 0, 8, 7], + # [4, 3, 4, 2, 4]] + y = triu_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_triu_out_neg_out') + + @staticmethod + def export_triu_pos() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + ) + + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + k = np.array(2).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 0, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[0, 0, 3, 7, 9], + # [0, 0, 0, 6, 9], + # [0, 0, 0, 0, 7], + # [0, 0, 0, 0, 0]] + y = triu_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_triu_pos') + + @staticmethod + def export_triu_out_pos() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + ) + + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + k = np.array(6).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 0, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[0, 0, 0, 0, 0], + # [0, 0, 0, 0, 0], + # [0, 0, 0, 0, 0], + # [0, 0, 0, 0, 0]] + y = triu_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_triu_out_pos') + + @staticmethod + def export_triu_square() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + ) + + x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) + y = triu_reference_implementation(x) + # X: + # [[[4, 6, 9], + # [7, 5, 4], + # [8, 1, 2]], + # + # [[1, 4, 9], + # [9, 6, 3], + # [8, 9, 8]]] + # expect result: + # [[[4, 6, 9], + # [0, 5, 4], + # [0, 0, 2]], + # + # [[1, 4, 9], + # [0, 6, 3], + # [0, 0, 8]]] + expect(node, inputs=[x], outputs=[y], name='test_triu_square') + + @staticmethod + def export_triu_square_neg() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + ) + + x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) + k = np.array(-1).astype(np.int64) + # X: + # [[[4, 6, 9], + # [7, 5, 4], + # [8, 1, 2]], + # + # [[1, 4, 9], + # [9, 6, 3], + # [8, 9, 8]]] + # expect result: + # [[[4, 6, 9], + # [7, 5, 4], + # [0, 1, 2]], + # + # [[1, 4, 9], + # [9, 6, 3], + # [0, 9, 8]]] + y = triu_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_triu_square_neg') + + @staticmethod + def export_triu_one_row() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + ) + + x = np.random.randint(10, size=(3, 1, 5)).astype(np.int64) + k = np.array(1).astype(np.int64) + # X: + # [[[1, 4, 9, 7, 1]], + # + # [[9, 2, 8, 8, 4]], + # + # [[3, 9, 7, 4, 2]]] + # expect result: + # [[[0, 4, 9, 7, 1]], + # + # [[0, 2, 8, 8, 4]], + # + # [[0, 9, 7, 4, 2]]] + y = triu_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_triu_one_row') + + @staticmethod + def export_triu_zero() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + ) + + x = np.random.randint(10, size=(0, 5)).astype(np.int64) + k = np.array(6).astype(np.int64) + # X: + # [] + # expect result: + # [] + y = triu_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_triu_zero') + + @staticmethod + def export_tril() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + upper=0, + ) + + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 1, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[4, 0, 0, 0, 0], + # [1, 2, 0, 0, 0], + # [9, 4, 1, 0, 0], + # [4, 3, 4, 2, 0]] + y = tril_reference_implementation(x) + expect(node, inputs=[x], outputs=[y], name='test_tril') + + @staticmethod + def export_tril_neg() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, + ) + + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + k = np.array(-1).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 1, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[0, 0, 0, 0, 0], + # [1, 0, 0, 0, 0], + # [9, 4, 0, 0, 0], + # [4, 3, 4, 0, 0]] + y = tril_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_tril_neg') + + @staticmethod + def export_tril_out_neg() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, + ) + + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + k = np.array(-7).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 1, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[0, 0, 0, 0, 0], + # [0, 0, 0, 0, 0], + # [0, 0, 0, 0, 0], + # [0, 0, 0, 0, 0]] + y = tril_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_tril_out_neg') + + @staticmethod + def export_tril_pos() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, + ) + + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + k = np.array(2).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 1, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[4, 7, 3, 0, 0], + # [1, 2, 8, 6, 0], + # [9, 4, 1, 8, 7], + # [4, 3, 4, 2, 4]] + y = tril_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_tril_pos') + + @staticmethod + def export_tril_out_pos() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, + ) + x = np.random.randint(10, size=(4, 5)).astype(np.int64) + k = np.array(6).astype(np.int64) + # X: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 1, 8, 7], + # [4, 3, 4, 2, 4]] + # expect result: + # [[4, 7, 3, 7, 9], + # [1, 2, 8, 6, 9], + # [9, 4, 1, 8, 7], + # [4, 3, 4, 2, 4]] + y = tril_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_tril_out_pos') + + @staticmethod + def export_tril_square() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + upper=0, + ) + + x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) + # X: + # [[[0, 4, 3], + # [2, 0, 9], + # [8, 2, 5]], + # + # [[2, 7, 2], + # [2, 6, 0], + # [2, 6, 5]]] + # expect result: + # [[[0, 0, 0], + # [2, 0, 0], + # [8, 2, 5]], + # + # [[2, 0, 0], + # [2, 6, 0], + # [2, 6, 5]]] + y = tril_reference_implementation(x) + expect(node, inputs=[x], outputs=[y], name='test_tril_square') + + @staticmethod + def export_tril_square_neg() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, + ) + + x = np.random.randint(10, size=(2, 3, 3)).astype(np.int64) + k = np.array(-1).astype(np.int64) + # X: + # [[[0, 4, 3], + # [2, 0, 9], + # [8, 2, 5]], + # + # [[2, 7, 2], + # [2, 6, 0], + # [2, 6, 5]]] + # expect result: + # [[[0, 0, 0], + # [2, 0, 0], + # [8, 2, 0]], + # + # [[0, 0, 0], + # [2, 0, 0], + # [2, 6, 0]]] + y = tril_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_tril_square_neg') + + @staticmethod + def export_tril_one_row() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x'], + outputs=['y'], + upper=0, + ) + + x = np.random.randint(10, size=(3, 1, 5)).astype(np.int64) + # X: + # [[[6, 2, 4, 1, 6]], + # + # [[8, 3, 8, 7, 0]], + # + # [[2, 2, 9, 5, 9]]] + # expect result: + # [[[6, 0, 0, 0, 0]], + # + # [[8, 0, 0, 0, 0]], + # + # [[2, 0, 0, 0, 0]]] + y = tril_reference_implementation(x) + expect(node, inputs=[x], outputs=[y], name='test_tril_one_row_neg') + + @staticmethod + def export_tril_zero() -> None: + node = onnx.helper.make_node( + 'Trilu', + inputs=['x', 'k'], + outputs=['y'], + upper=0, + ) + + x = np.random.randint(10, size=(3, 0, 5)).astype(np.int64) + k = np.array(6).astype(np.int64) + # X: + # [] + # expect result: + # [] + y = tril_reference_implementation(x, int(k)) + expect(node, inputs=[x, k], outputs=[y], name='test_tril_zero') diff --git a/third_party/onnx/onnx/backend/test/case/node/unique.py b/third_party/onnx/onnx/backend/test/case/node/unique.py new file mode 100644 index 000000000..7f81feaa0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/unique.py @@ -0,0 +1,141 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +def specify_int64(indices, inverse_indices, counts): # type: ignore + return np.array(indices, dtype=np.int64), np.array(inverse_indices, dtype=np.int64), np.array(counts, dtype=np.int64) + + +class Unique(Base): + + @staticmethod + def export_sorted_without_axis() -> None: + node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'] + ) + + x = np.array([2.0, 1.0, 1.0, 3.0, 4.0, 3.0], dtype=np.float32) + y, indices, inverse_indices, counts = np.unique(x, True, True, True) + indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) + expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_without_axis') + + @staticmethod + def export_not_sorted_without_axis() -> None: + node_not_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=0 + ) + # numpy unique does not retain original order (it sorts the output unique values) + # https://github.com/numpy/numpy/issues/8621 + # we need to recover unsorted output and indices + x = np.array([2.0, 1.0, 1.0, 3.0, 4.0, 3.0], dtype=np.float32) + y, indices, inverse_indices, counts = np.unique(x, True, True, True) + + # prepare index mapping from sorted to unsorted + argsorted_indices = np.argsort(indices) + inverse_indices_map = {i: si for i, si in zip(argsorted_indices, np.arange(len(argsorted_indices)))} + + indices = indices[argsorted_indices] + y = np.take(x, indices, axis=0) + inverse_indices = np.asarray([inverse_indices_map[i] for i in inverse_indices], dtype=np.int64) + counts = counts[argsorted_indices] + indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) + # print(y) + # [2.0, 1.0, 3.0, 4.0] + # print(indices) + # [0 1 3 4] + # print(inverse_indices) + # [0, 1, 1, 2, 3, 2] + # print(counts) + # [1, 2, 2, 1] + + expect(node_not_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_not_sorted_without_axis') + + @staticmethod + def export_sorted_with_axis() -> None: + node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=1, + axis=0 + ) + + x = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]], dtype=np.float32) + y, indices, inverse_indices, counts = np.unique(x, True, True, True, axis=0) + indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) + # print(y) + # [[1. 0. 0.] + # [2. 3. 4.]] + # print(indices) + # [0 2] + # print(inverse_indices) + # [0 0 1] + # print(counts) + # [2 1] + + expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_with_axis') + + @staticmethod + def export_sorted_with_axis_3d() -> None: + node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=1, + axis=1 + ) + + x = np.array([[[1., 1.], [0., 1.], [2., 1.], [0., 1.]], + [[1., 1.], [0., 1.], [2., 1.], [0., 1.]]], dtype=np.float32) + y, indices, inverse_indices, counts = np.unique(x, True, True, True, axis=1) + indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) + # print(y) + # [[[0. 1.] + # [1. 1.] + # [2. 1.]] + # [[0. 1.] + # [1. 1.] + # [2. 1.]]] + # print(indices) + # [1 0 2] + # print(inverse_indices) + # [1 0 2 0] + # print(counts) + # [2 1 1] + expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_with_axis_3d') + + @staticmethod + def export_sorted_with_negative_axis() -> None: + node_sorted = onnx.helper.make_node( + 'Unique', + inputs=['X'], + outputs=['Y', 'indices', 'inverse_indices', 'counts'], + sorted=1, + axis=-1 + ) + + x = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 3]], dtype=np.float32) + y, indices, inverse_indices, counts = np.unique(x, True, True, True, axis=-1) + indices, inverse_indices, counts = specify_int64(indices, inverse_indices, counts) + # print(y) + # [[0. 1.] + # [0. 1.] + # [3. 2.]] + # print(indices) + # [1 0] + # print(inverse_indices) + # [1 0 0] + # print(counts) + # [2 1] + + expect(node_sorted, inputs=[x], outputs=[y, indices, inverse_indices, counts], name='test_unique_sorted_with_negative_axis') diff --git a/third_party/onnx/onnx/backend/test/case/node/unsqueeze.py b/third_party/onnx/onnx/backend/test/case/node/unsqueeze.py new file mode 100644 index 000000000..21092225a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/unsqueeze.py @@ -0,0 +1,89 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Unsqueeze(Base): + + @staticmethod + def export_unsqueeze_one_axis() -> None: + x = np.random.randn(3, 4, 5).astype(np.float32) + + for i in range(x.ndim): + axes = np.array([i]).astype(np.int64) + node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], + ) + y = np.expand_dims(x, axis=i) + + expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_axis_' + str(i)) + + @staticmethod + def export_unsqueeze_two_axes() -> None: + x = np.random.randn(3, 4, 5).astype(np.float32) + axes = np.array([1, 4]).astype(np.int64) + + node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], + ) + y = np.expand_dims(x, axis=1) + y = np.expand_dims(y, axis=4) + + expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_two_axes') + + @staticmethod + def export_unsqueeze_three_axes() -> None: + x = np.random.randn(3, 4, 5).astype(np.float32) + axes = np.array([2, 4, 5]).astype(np.int64) + + node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], + ) + y = np.expand_dims(x, axis=2) + y = np.expand_dims(y, axis=4) + y = np.expand_dims(y, axis=5) + + expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_three_axes') + + @staticmethod + def export_unsqueeze_unsorted_axes() -> None: + x = np.random.randn(3, 4, 5).astype(np.float32) + axes = np.array([5, 4, 2]).astype(np.int64) + + node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], + ) + y = np.expand_dims(x, axis=2) + y = np.expand_dims(y, axis=4) + y = np.expand_dims(y, axis=5) + + expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_unsorted_axes') + + @staticmethod + def export_unsqueeze_negative_axes() -> None: + node = onnx.helper.make_node( + 'Unsqueeze', + inputs=['x', 'axes'], + outputs=['y'], + ) + x = np.random.randn(1, 3, 1, 5).astype(np.float32) + axes = np.array([-2]).astype(np.int64) + y = np.expand_dims(x, axis=-2) + expect(node, inputs=[x, axes], outputs=[y], + name='test_unsqueeze_negative_axes') diff --git a/third_party/onnx/onnx/backend/test/case/node/upsample.py b/third_party/onnx/onnx/backend/test/case/node/upsample.py new file mode 100644 index 000000000..8828ca09b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/upsample.py @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect +from onnx import helper + + +class Upsample(Base): + + @staticmethod + def export_nearest() -> None: + node = onnx.helper.make_node( + 'Upsample', + inputs=['X', 'scales'], + outputs=['Y'], + mode='nearest', + ) + + data = np.array([[[ + [1, 2], + [3, 4], + ]]], dtype=np.float32) + + scales = np.array([1.0, 1.0, 2.0, 3.0], dtype=np.float32) + + output = np.array([[[ + [1, 1, 1, 2, 2, 2], + [1, 1, 1, 2, 2, 2], + [3, 3, 3, 4, 4, 4], + [3, 3, 3, 4, 4, 4], + ]]], dtype=np.float32) + + expect(node, inputs=[data, scales], outputs=[output], + name='test_upsample_nearest', opset_imports=[helper.make_opsetid("", 9)]) diff --git a/third_party/onnx/onnx/backend/test/case/node/where.py b/third_party/onnx/onnx/backend/test/case/node/where.py new file mode 100644 index 000000000..4ecd3d1d5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/where.py @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Where(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Where', + inputs=['condition', 'x', 'y'], + outputs=['z'], + ) + + condition = np.array([[1, 0], [1, 1]], dtype=bool) + x = np.array([[1, 2], [3, 4]], dtype=np.float32) + y = np.array([[9, 8], [7, 6]], dtype=np.float32) + z = np.where(condition, x, y) # expected output [[1, 8], [3, 4]] + expect(node, inputs=[condition, x, y], outputs=[z], + name='test_where_example') + + @staticmethod + def export_long() -> None: + node = onnx.helper.make_node( + 'Where', + inputs=['condition', 'x', 'y'], + outputs=['z'], + ) + + condition = np.array([[1, 0], [1, 1]], dtype=bool) + x = np.array([[1, 2], [3, 4]], dtype=np.int64) + y = np.array([[9, 8], [7, 6]], dtype=np.int64) + z = np.where(condition, x, y) # expected output [[1, 8], [3, 4]] + expect(node, inputs=[condition, x, y], outputs=[z], + name='test_where_long_example') diff --git a/third_party/onnx/onnx/backend/test/case/node/xor.py b/third_party/onnx/onnx/backend/test/case/node/xor.py new file mode 100644 index 000000000..76bbf76d8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/node/xor.py @@ -0,0 +1,82 @@ +# SPDX-License-Identifier: Apache-2.0 + +import numpy as np # type: ignore + +import onnx +from ..base import Base +from . import expect + + +class Xor(Base): + + @staticmethod + def export() -> None: + node = onnx.helper.make_node( + 'Xor', + inputs=['x', 'y'], + outputs=['xor'], + ) + + # 2d + x = (np.random.randn(3, 4) > 0).astype(bool) + y = (np.random.randn(3, 4) > 0).astype(bool) + z = np.logical_xor(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_xor2d') + + # 3d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + y = (np.random.randn(3, 4, 5) > 0).astype(bool) + z = np.logical_xor(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_xor3d') + + # 4d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + y = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + z = np.logical_xor(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_xor4d') + + @staticmethod + def export_xor_broadcast() -> None: + node = onnx.helper.make_node( + 'Xor', + inputs=['x', 'y'], + outputs=['xor'], + ) + + # 3d vs 1d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + y = (np.random.randn(5) > 0).astype(bool) + z = np.logical_xor(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast3v1d') + + # 3d vs 2d + x = (np.random.randn(3, 4, 5) > 0).astype(bool) + y = (np.random.randn(4, 5) > 0).astype(bool) + z = np.logical_xor(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast3v2d') + + # 4d vs 2d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + y = (np.random.randn(5, 6) > 0).astype(bool) + z = np.logical_xor(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast4v2d') + + # 4d vs 3d + x = (np.random.randn(3, 4, 5, 6) > 0).astype(bool) + y = (np.random.randn(4, 5, 6) > 0).astype(bool) + z = np.logical_xor(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast4v3d') + + # 4d vs 4d + x = (np.random.randn(1, 4, 1, 6) > 0).astype(bool) + y = (np.random.randn(3, 1, 5, 6) > 0).astype(bool) + z = np.logical_xor(x, y) + expect(node, inputs=[x, y], outputs=[z], + name='test_xor_bcast4v4d') diff --git a/third_party/onnx/onnx/backend/test/case/test_case.py b/third_party/onnx/onnx/backend/test/case/test_case.py new file mode 100644 index 000000000..2a1c6fd1a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/test_case.py @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: Apache-2.0 + +from dataclasses import dataclass +from typing import Optional, Sequence, Tuple +import onnx +import numpy as np # type: ignore + + +@dataclass +class TestCase: + name: str + model_name: str + url: Optional[str] + model_dir: Optional[str] + model: Optional[onnx.ModelProto] + data_sets: Optional[Sequence[Tuple[Sequence[np.ndarray], Sequence[np.ndarray]]]] + kind: str + rtol: float + atol: float + # Tell PyTest this isn't a real test. + __test__: bool = False diff --git a/third_party/onnx/onnx/backend/test/case/utils.py b/third_party/onnx/onnx/backend/test/case/utils.py new file mode 100644 index 000000000..8eb7d287e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/case/utils.py @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: Apache-2.0 + +import importlib +import pkgutil +from types import ModuleType +from typing import Optional, List + +import numpy as np # type: ignore + + +all_numeric_dtypes = [ + np.int8, np.int16, np.int32, np.int64, + np.uint8, np.uint16, np.uint32, np.uint64, + np.float16, np.float32, np.float64, +] + + +def import_recursive(package: ModuleType) -> None: + """ + Takes a package and imports all modules underneath it + """ + pkg_dir: Optional[List[str]] = None + pkg_dir = package.__path__ # type: ignore + module_location = package.__name__ + for (_module_loader, name, ispkg) in pkgutil.iter_modules(pkg_dir): + module_name = "{}.{}".format(module_location, name) # Module/package + module = importlib.import_module(module_name) + if ispkg: + import_recursive(module) diff --git a/third_party/onnx/onnx/backend/test/cmd_tools.py b/third_party/onnx/onnx/backend/test/cmd_tools.py new file mode 100644 index 000000000..904fd8c50 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/cmd_tools.py @@ -0,0 +1,107 @@ +# SPDX-License-Identifier: Apache-2.0 + +import argparse +import json +import os +import shutil + +import onnx.backend.test.case.node as node_test +import onnx.backend.test.case.model as model_test +from onnx import numpy_helper +from typing import Text + + +TOP_DIR = os.path.realpath(os.path.dirname(__file__)) +DATA_DIR = os.path.join(TOP_DIR, 'data') + + +def generate_data(args: argparse.Namespace) -> None: + + def prepare_dir(path: Text) -> None: + if os.path.exists(path): + shutil.rmtree(path) + os.makedirs(path) + + cases = model_test.collect_testcases() + if args.op_type is None: + # include all of the testcases + cases += node_test.collect_testcases() + else: + # only include those testcases including the given operator + cases += node_test.collect_testcases_by_operator(args.op_type) + for case in cases: + output_dir = os.path.join( + args.output, case.kind, case.name) + prepare_dir(output_dir) + if case.kind == 'real': + with open(os.path.join(output_dir, 'data.json'), 'w') as fi: + json.dump({ + 'url': case.url, + 'model_name': case.model_name, + 'rtol': case.rtol, + 'atol': case.atol, + }, fi, sort_keys=True) + else: + assert case.model + with open(os.path.join(output_dir, 'model.onnx'), 'wb') as f: + f.write(case.model.SerializeToString()) + assert case.data_sets + for i, (inputs, outputs) in enumerate(case.data_sets): + data_set_dir = os.path.join( + output_dir, 'test_data_set_{}'.format(i)) + prepare_dir(data_set_dir) + for j, input in enumerate(inputs): + with open(os.path.join( + data_set_dir, 'input_{}.pb'.format(j)), 'wb') as f: + if case.model.graph.input[j].type.HasField('map_type'): + f.write(numpy_helper.from_dict( + input, case.model.graph.input[j].name).SerializeToString()) + elif case.model.graph.input[j].type.HasField('sequence_type'): + f.write(numpy_helper.from_list( + input, case.model.graph.input[j].name).SerializeToString()) + elif case.model.graph.input[j].type.HasField('optional_type'): + f.write(numpy_helper.from_optional( + input, case.model.graph.input[j].name).SerializeToString()) + else: + assert case.model.graph.input[j].type.HasField('tensor_type') + f.write(numpy_helper.from_array( + input, case.model.graph.input[j].name).SerializeToString()) + for j, output in enumerate(outputs): + with open(os.path.join( + data_set_dir, 'output_{}.pb'.format(j)), 'wb') as f: + if case.model.graph.output[j].type.HasField('map_type'): + f.write(numpy_helper.from_dict( + output, case.model.graph.output[j].name).SerializeToString()) + elif case.model.graph.output[j].type.HasField('sequence_type'): + f.write(numpy_helper.from_list( + output, case.model.graph.output[j].name).SerializeToString()) + elif case.model.graph.output[j].type.HasField('optional_type'): + f.write(numpy_helper.from_optional( + output, case.model.graph.output[j].name).SerializeToString()) + else: + assert case.model.graph.output[j].type.HasField('tensor_type') + f.write(numpy_helper.from_array( + output, case.model.graph.output[j].name).SerializeToString()) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser('backend-test-tools') + subparsers = parser.add_subparsers() + + subparser = subparsers.add_parser('generate-data', help='convert testcases to test data') + subparser.add_argument('-o', '--output', default=DATA_DIR, + help='output directory (default: %(default)s)') + subparser.add_argument('-t', '--op_type', default=None, + help='op_type for test case generation. (generates test data for the specified op_type only.)') + subparser.set_defaults(func=generate_data) + + return parser.parse_args() + + +def main() -> None: + args = parse_args() + args.func(args) + + +if __name__ == '__main__': + main() diff --git a/third_party/onnx/onnx/backend/test/cpp/driver/test_driver.cc b/third_party/onnx/onnx/backend/test/cpp/driver/test_driver.cc new file mode 100644 index 000000000..0abb40695 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/cpp/driver/test_driver.cc @@ -0,0 +1,273 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "test_driver.h" +#include +#include +#include + +#include +#include +#include +#ifdef _WIN32 +#include +#include +#else +#include +#endif +#include "onnx/common/common.h" + +namespace ONNX_NAMESPACE { +namespace testing { +bool FileExists(const std::string& filename) { +#ifdef _WIN32 + if (INVALID_FILE_ATTRIBUTES == GetFileAttributes(filename.c_str())) { + return false; + } +#else + struct stat stats; + if (lstat(filename.c_str(), &stats) != 0 || !S_ISREG(stats.st_mode)) { + return false; + } +#endif + return true; +} +void TestDriver::SetDefaultDir(const std::string& s) { + default_dir_ = s; +} + +/** + * It is possible that case_dir is not a dir. + * But it does not affect the result. + */ +void TestDriver::FetchSingleTestCase(const std::string& case_dir, const std::string& test_case_name) { + std::string model_name = case_dir; + model_name += "model.onnx"; + if (FileExists(model_name)) { + UnsolvedTestCase test_case; + test_case.test_case_name_ = test_case_name; + test_case.model_filename_ = model_name; + test_case.model_dirname_ = case_dir; + for (int case_count = 0;; case_count++) { + std::vector input_filenames, output_filenames; + std::string input_name, output_name; + std::string case_dirname = case_dir; + case_dirname += "test_data_set_" + ONNX_NAMESPACE::to_string(case_count); + input_name = case_dirname + "/input_" + "0" + ".pb"; + output_name = case_dirname + "/output_" + "0" + ".pb"; + if (!FileExists(output_name) && !FileExists(input_name)) { + break; + } + + for (int data_count = 0;; data_count++) { + input_name = case_dirname + "/input_" + ONNX_NAMESPACE::to_string(data_count) + ".pb"; + output_name = case_dirname + "/output_" + ONNX_NAMESPACE::to_string(data_count) + ".pb"; + const bool input_exists = FileExists(input_name); + const bool output_exists = FileExists(output_name); + if (!output_exists && !input_exists) { + break; + } + if (input_exists) { + input_filenames.emplace_back(std::move(input_name)); + } + if (output_exists) { + output_filenames.emplace_back(std::move(output_name)); + } + } + UnsolvedTestData test_data(input_filenames, output_filenames); + test_case.test_data_.emplace_back(std::move(test_data)); + } + testcases_.emplace_back(std::move(test_case)); + } +} + +bool TestDriver::FetchAllTestCases(const std::string& target) { + std::string target_dir = target; + if (target_dir == "") { + target_dir = default_dir_; + } + if (target_dir[target_dir.size() - 1] == '/') { + target_dir.erase(target_dir.size() - 1, 1); + } +#ifdef _WIN32 + _finddata_t file; + intptr_t lf; + if ((lf = _findfirst(target_dir.c_str(), &file)) == -1) { + std::cerr << "Error: cannot open directory " << target_dir << " when fetching test data: " << strerror(errno) + << std::endl; + return false; + } else { + ONNX_TRY { + do { + std::string entry_dname = file.name; + std::string full_entry_dname; + if (entry_dname != "." && entry_dname != "..") { + full_entry_dname = target_dir + "/" + entry_dname + "/"; + FetchSingleTestCase(full_entry_dname, entry_dname); + } + } while (_findnext(lf, &file) == 0); + } + ONNX_CATCH(const std::exception& e) { + ONNX_HANDLE_EXCEPTION([&]() { + _findclose(lf); + ONNX_THROW_EX(e); + }); + } + _findclose(lf); + } +#else + DIR* directory; + ONNX_TRY { + directory = opendir(target_dir.c_str()); + if (directory == NULL) { + std::cerr << "Error: cannot open directory " << target_dir << " when fetching test data: " << strerror(errno) + << std::endl; + return false; + } + while (true) { + errno = 0; + struct dirent* entry = readdir(directory); + if (entry == NULL) { + if (errno != 0) { + std::cerr << "Error: cannot read directory " << target_dir << " when fetching test data: " << strerror(errno) + << std::endl; + return -1; + } else { + break; + } + } + std::string full_entry_dname; + std::string entry_dname = entry->d_name; + if (entry_dname != "." && entry_dname != "..") { + full_entry_dname = target_dir + "/" + entry_dname + "/"; + FetchSingleTestCase(full_entry_dname, entry_dname); + } + } + } + ONNX_CATCH(const std::exception& e) { + ONNX_HANDLE_EXCEPTION([&]() { + if (directory != NULL) { + closedir(directory); + } + ONNX_THROW_EX(e); + }); + } + if (directory != NULL) { + if (closedir(directory) != 0) { + std::cerr << "Warning: failed to close directory " << target_dir + << " when fetching test data: " << strerror(errno) << std::endl; + return false; + } + } +#endif + return true; +} + +std::vector GetTestCase(const std::string& location) { + TestDriver test_driver; + test_driver.FetchAllTestCases(location); + return test_driver.testcases_; +} + +void LoadSingleFile(const std::string& filename, std::string& filedata) { + FILE* fp; + if ((fp = fopen(filename.c_str(), "r")) != NULL) { + ONNX_TRY { + int fsize; + char buff[1024] = {0}; + do { + fsize = fread(buff, sizeof(char), 1024, fp); + filedata += std::string(buff, buff + fsize); + } while (fsize == 1024); + } + ONNX_CATCH(const std::exception& e) { + ONNX_HANDLE_EXCEPTION([&]() { + fclose(fp); + ONNX_THROW_EX(e); + }); + } + fclose(fp); + } else { + std::cerr << "Warning: failed to open file: " << filename << std::endl; + } +} + +ResolvedTestCase LoadSingleTestCase(const UnsolvedTestCase& t) { + ResolvedTestCase st; + std::string raw_model; + LoadSingleFile(t.model_filename_, raw_model); + st.test_case_name_ = t.test_case_name_; + ONNX_NAMESPACE::ParseProtoFromBytes(&st.model_, raw_model.c_str(), raw_model.size()); + int test_data_counter = 0; + for (auto& test_data : t.test_data_) { + ResolvedTestData proto_test_data; + for (auto& input_file : test_data.input_filenames_) { + std::string input_data; + ONNX_NAMESPACE::ValueInfoProto input_info; + LoadSingleFile(input_file, input_data); + input_info = st.model_.graph().input(test_data_counter); + if (input_info.type().has_tensor_type()) { + ONNX_NAMESPACE::TensorProto input_proto; + ONNX_NAMESPACE::ParseProtoFromBytes(&input_proto, input_data.c_str(), input_data.size()); + proto_test_data.inputs_.emplace_back(std::move(input_proto)); + } else if (input_info.type().has_sequence_type()) { + ONNX_NAMESPACE::SequenceProto input_proto; + ONNX_NAMESPACE::ParseProtoFromBytes(&input_proto, input_data.c_str(), input_data.size()); + proto_test_data.seq_inputs_.emplace_back(std::move(input_proto)); + } else if (input_info.type().has_map_type()) { + ONNX_NAMESPACE::MapProto input_proto; + ONNX_NAMESPACE::ParseProtoFromBytes(&input_proto, input_data.c_str(), input_data.size()); + proto_test_data.map_inputs_.emplace_back(std::move(input_proto)); + } else if (input_info.type().has_optional_type()) { + ONNX_NAMESPACE::OptionalProto input_proto; + ONNX_NAMESPACE::ParseProtoFromBytes(&input_proto, input_data.c_str(), input_data.size()); + proto_test_data.optional_inputs_.emplace_back(std::move(input_proto)); + } + test_data_counter++; + } + test_data_counter = 0; + for (auto& output_file : test_data.output_filenames_) { + std::string output_data; + ONNX_NAMESPACE::ValueInfoProto output_info; + output_info = st.model_.graph().output(test_data_counter); + LoadSingleFile(output_file, output_data); + if (output_info.type().has_tensor_type()) { + ONNX_NAMESPACE::TensorProto output_proto; + ONNX_NAMESPACE::ParseProtoFromBytes(&output_proto, output_data.c_str(), output_data.size()); + proto_test_data.outputs_.emplace_back(std::move(output_proto)); + } else if (output_info.type().has_sequence_type()) { + ONNX_NAMESPACE::SequenceProto output_proto; + ONNX_NAMESPACE::ParseProtoFromBytes(&output_proto, output_data.c_str(), output_data.size()); + proto_test_data.seq_outputs_.emplace_back(std::move(output_proto)); + } else if (output_info.type().has_map_type()) { + ONNX_NAMESPACE::MapProto output_proto; + ONNX_NAMESPACE::ParseProtoFromBytes(&output_proto, output_data.c_str(), output_data.size()); + proto_test_data.map_outputs_.emplace_back(std::move(output_proto)); + } else if (output_info.type().has_optional_type()) { + ONNX_NAMESPACE::OptionalProto output_proto; + ONNX_NAMESPACE::ParseProtoFromBytes(&output_proto, output_data.c_str(), output_data.size()); + proto_test_data.optional_outputs_.emplace_back(std::move(output_proto)); + } + test_data_counter++; + } + st.proto_test_data_.emplace_back(std::move(proto_test_data)); + } + return st; +} + +std::vector LoadAllTestCases(const std::string& location) { + std::vector t = GetTestCase(location); + return LoadAllTestCases(t); +} + +std::vector LoadAllTestCases(const std::vector& t) { + std::vector st; + for (const auto& i : t) { + st.push_back(LoadSingleTestCase(i)); + } + return st; +} + +} // namespace testing +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/backend/test/cpp/driver/test_driver.h b/third_party/onnx/onnx/backend/test/cpp/driver/test_driver.h new file mode 100644 index 000000000..c66d7dc6f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/cpp/driver/test_driver.h @@ -0,0 +1,142 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include + +#include "onnx/onnxifi_loader.h" +#include "onnx/onnxifi_utils.h" +#include "onnx/string_utils.h" +#include "onnx/onnx-data_pb.h" + +#include "gtest/gtest.h" +namespace ONNX_NAMESPACE { +namespace testing { +/** + * Store one chunk of test data files repos, + * includng input and output. + * No real data was loaded in this type of class, + * but only data location. + * Data loading is unsolved, this class CANNOT be treated as real data. + */ +struct UnsolvedTestData { + std::vector input_filenames_; + std::vector output_filenames_; + UnsolvedTestData() {} + UnsolvedTestData( + const std::vector& input_filenames, + const std::vector& output_filenames) + : input_filenames_(input_filenames), + output_filenames_(output_filenames) {} +}; + +/** + * Store one model file repos, + * including one model file and several chunks of test data + * No real data was loaded in this type of class, + * but only data location. + * Data loading is unsolved, this class CANNOT be treated as real data. + */ +struct UnsolvedTestCase { + UnsolvedTestCase( + const std::string& model_filename, + const std::string& model_dirname, + const std::vector& test_data) + : model_filename_(model_filename), + model_dirname_(model_dirname), + test_data_(test_data) {} + + UnsolvedTestCase() {} + std::string test_case_name_; + std::string model_filename_; + std::string model_dirname_; + std::vector test_data_; +}; + +/** + * Store one chunk of test data, + * including raw input/output and protos. + * Real data was loaded in this type of class. + * Data loading is resolved, this class may contains large chunk of data. + */ +struct ResolvedTestData { + std::vector inputs_; + std::vector seq_inputs_; + std::vector map_inputs_; + std::vector optional_inputs_; + + std::vector outputs_; + std::vector seq_outputs_; + std::vector map_outputs_; + std::vector optional_outputs_; +}; + +/** + * Store one test model, + * including raw model, model proto and several chunks of test data. + * Real data was loaded in this type of class. + * Data loading is resolved, this class may contains large chunk of data. + */ +struct ResolvedTestCase { + ONNX_NAMESPACE::ModelProto model_; + std::vector proto_test_data_; + std::string test_case_name_; +}; + +/** + * Store all unloaded test cases in one repo. + */ +class TestDriver { + std::string default_dir_; + + public: + void SetDefaultDir(const std::string& s); + std::vector testcases_; + TestDriver(const std::string& default_dir = ".") { + default_dir_ = default_dir; + } + /** + * Fetch all test cases in target. + * Return true if success, and false if failed. + */ + bool FetchAllTestCases(const std::string& target_dir); + /** + * Fetch one test case from repo case_dir. + * The structure of case_dir should include following contents. + * + * Regular file: model.onnx, store the protobuf of the model. + * Repo(s): test_data_set_X: store the input&output data. + * + * Each repo in test_data_set_X should include following contents. + * + * Regular file(s): input_X.pb, store one input tensor. + * Regular file(s): output_X.pb, store one output tensor. + */ + void FetchSingleTestCase( + const std::string& case_dir, + const std::string& test_case_name); +}; + +std::vector GetTestCase(); + +/** + * Load one proto file from filename as string to filedata. + */ +void LoadSingleFile(const std::string& filename, std::string& filedata); + +/** + * Load one test case. + */ +ResolvedTestCase LoadSingleTestCase(const UnsolvedTestCase& t); + +/** + * Load all test cases. + */ +std::vector LoadAllTestCases(const std::string& location); +std::vector LoadAllTestCases( + const std::vector& t); + +} // namespace testing +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/backend/test/cpp/driver_test.cc b/third_party/onnx/onnx/backend/test/cpp/driver_test.cc new file mode 100644 index 000000000..1774aeb02 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/cpp/driver_test.cc @@ -0,0 +1,415 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "gtest_utils.h" + +#include "onnx/checker.h" +#include "onnx/onnxifi.h" +#include "onnx/onnxifi_ext.h" +#include "onnx/onnxifi_loader.h" +#include "onnx/string_utils.h" + +/** + * In order to not test the backend itself + * but only to test the funcionality of this test driver, + * include IO and integrity checkers, + * please set ONNXIFI_DUMMY_BACKEND to be true when compiling. + * By default it is false. + */ +#ifndef ONNXIFI_DUMMY_BACKEND +#define ONNXIFI_DUMMY_BACKEND false +#endif + +#ifndef ONNXIFI_TESTDATA_EPS +#define ONNXIFI_TESTDATA_EPS 1e-5 +#endif + +namespace ONNX_NAMESPACE { +namespace testing { +const float onnxifi_testdata_eps = static_cast(ONNXIFI_TESTDATA_EPS); + +template +class CompareOnnxifiData { + public: + bool IsEqual(void* P, void* Q) { + T x = *((T*)P), y = *((T*)Q); + return ((x - y) > -onnxifi_testdata_eps) && + ((x - y) < onnxifi_testdata_eps); + } +}; + +class ONNXCppDriverTest : public ::testing::TestWithParam< + ONNX_NAMESPACE::testing::ResolvedTestCase> { + public: + struct PrintToStringParamName { + template + std::string operator()(const ::testing::TestParamInfo& t) const { + auto test_case = + static_cast(t.param); + /** + * We pick folder name instead of model.graph().name as test case name + * here mostly for two reasons: + * 1. Name of proto graph can be empty or ruined. + * 2. Compares to the complex logic of protobuf, folder name is easier to + * parse, to modify and to use. + */ + return test_case.test_case_name_; + } + }; + + protected: + std::vector protos_; + ONNX_NAMESPACE::ModelProto model_; + + // A memory pool of shape information of onnxTensorDescriptorV1 used in this + // test driver. + std::vector> shape_pool; + // A memory pool of raw_data of backend output in onnxTensorDescriptorV1. + std::vector> data_pool; + + void SetUp() override { + ONNX_NAMESPACE::testing::ResolvedTestCase t = GetParam(); + protos_ = t.proto_test_data_; + model_ = t.model_; + } + + uint64_t GetDescriptorSize(const onnxTensorDescriptorV1* t) { + uint64_t d_size = 1; + for (uint32_t i = 0; i < t->dimensions; i++) { + d_size *= t->shape[i]; + } + return d_size; + } + + bool IsGtestAssertMemorySafeSuccess( + onnxStatus x, + onnxGraph* graph_pointer, + onnxifi_library& lib) { + if (x != ONNXIFI_STATUS_SUCCESS) { + if (graph_pointer != NULL) { + lib.onnxReleaseGraph(*graph_pointer); + } + } + bool result = (x == ONNXIFI_STATUS_SUCCESS); + return result; + } + + bool IsUnsupported(onnxStatus s, std::string& msg) { + if (s == ONNXIFI_STATUS_UNSUPPORTED_VERSION) { + msg = "Unsupported version of ONNX or operator."; + return true; + } + + if (s == ONNXIFI_STATUS_UNSUPPORTED_OPERATOR) { + msg = "Unsupported operator."; + return true; + } + + if (s == ONNXIFI_STATUS_UNSUPPORTED_ATTRIBUTE) { + msg = "Unsupported attribute."; + return true; + } + + if (s == ONNXIFI_STATUS_UNSUPPORTED_SHAPE) { + msg = "Unsupported shape."; + return true; + } + if (s == ONNXIFI_STATUS_UNSUPPORTED_DATATYPE) { + msg = "Unsupported datatype"; + return true; + } + return false; + } + + bool IsDescriptorEqual( + const onnxTensorDescriptorV1& x, + const onnxTensorDescriptorV1& y) { + if (x.dataType != y.dataType || x.dimensions != y.dimensions) { + return false; + } + const int dims = x.dimensions; + for (int i = 0; i < dims; i++) { + if (x.shape[i] != y.shape[i]) { + return false; + } + } + const uint64_t d_size = GetDescriptorSize(&x); + void* p1 = (void*)x.buffer; + void* p2 = (void*)y.buffer; + bool is_equal = true; + for (uint64_t i = 0; i < d_size; i++) { + int offset = 1; + switch (x.dataType) { + case ONNXIFI_DATATYPE_UNDEFINED: + case ONNXIFI_DATATYPE_INT8: + CompareOnnxifiData compare_int8; + is_equal &= compare_int8.IsEqual(p1, p2); + offset = sizeof(char); + break; + case ONNXIFI_DATATYPE_UINT8: + CompareOnnxifiData compare_uint8; + is_equal &= compare_uint8.IsEqual(p1, p2); + offset = sizeof(unsigned char); + break; + case ONNXIFI_DATATYPE_FLOAT16: + // no support now + break; + case ONNXIFI_DATATYPE_INT16: + CompareOnnxifiData compare_int16; + is_equal &= compare_int16.IsEqual(p1, p2); + offset = sizeof(short); + break; + case ONNXIFI_DATATYPE_UINT16: + CompareOnnxifiData compare_uint16; + is_equal &= compare_uint16.IsEqual(p1, p2); + offset = sizeof(unsigned short); + break; + case ONNXIFI_DATATYPE_FLOAT32: + CompareOnnxifiData compare_float32; + is_equal &= compare_float32.IsEqual(p1, p2); + offset = sizeof(float); + break; + case ONNXIFI_DATATYPE_INT32: + CompareOnnxifiData compare_int32; + is_equal &= compare_int32.IsEqual(p1, p2); + offset = sizeof(int); + break; + case ONNXIFI_DATATYPE_UINT32: + CompareOnnxifiData compare_uint32; + is_equal &= compare_uint32.IsEqual(p1, p2); + offset = sizeof(unsigned int); + break; + case ONNXIFI_DATATYPE_FLOAT64: + CompareOnnxifiData compare_float64; + is_equal &= compare_float64.IsEqual(p1, p2); + offset = sizeof(long double); + break; + case ONNXIFI_DATATYPE_INT64: + CompareOnnxifiData compare_int64; + is_equal &= compare_int64.IsEqual(p1, p2); + offset = sizeof(long long); + break; + case ONNXIFI_DATATYPE_UINT64: + CompareOnnxifiData compare_uint64; + is_equal &= compare_uint64.IsEqual(p1, p2); + offset = sizeof(unsigned long long); + break; + case ONNXIFI_DATATYPE_COMPLEX64: + case ONNXIFI_DATATYPE_COMPLEX128: + // no support now + break; + } + p1 = (char*)p1 + offset; + p2 = (char*)p2 + offset; + if (!is_equal) { + return false; + } + } + return true; + } + + void RunAndVerify( + onnxifi_library& lib, + onnxBackend& backend, + onnxBackendID backendID) { + // Check Model + ONNX_NAMESPACE::checker::check_model(model_); + // Check Input & Output Data + ONNX_NAMESPACE::checker::CheckerContext ctx; + for (auto proto_test_data : protos_) { + for (auto input : proto_test_data.inputs_) { + ONNX_NAMESPACE::checker::check_tensor(input, ctx); + } + for (auto input : proto_test_data.seq_inputs_) { + ONNX_NAMESPACE::checker::check_sequence(input, ctx); + } + for (auto input : proto_test_data.map_inputs_) { + ONNX_NAMESPACE::checker::check_map(input, ctx); + } + for (auto input : proto_test_data.optional_inputs_) { + ONNX_NAMESPACE::checker::check_optional(input, ctx); + } + for (auto output : proto_test_data.outputs_) { + ONNX_NAMESPACE::checker::check_tensor(output, ctx); + } + for (auto output : proto_test_data.seq_outputs_) { + ONNX_NAMESPACE::checker::check_sequence(output, ctx); + } + for (auto output : proto_test_data.map_outputs_) { + ONNX_NAMESPACE::checker::check_map(output, ctx); + } + for (auto output : proto_test_data.optional_outputs_) { + ONNX_NAMESPACE::checker::check_optional(output, ctx); + } + } + if (!ONNXIFI_DUMMY_BACKEND) { + onnxGraph graph; + uint32_t weightCount = model_.graph().initializer_size(); + onnxTensorDescriptorV1 weightDescriptors, + *weightDescriptors_pointer = NULL; + if (weightCount != 0) { + weightDescriptors = + ONNX_NAMESPACE::testing::ProtoToOnnxTensorDescriptor( + model_.graph().initializer(0), shape_pool); + weightDescriptors_pointer = &weightDescriptors; + } + std::string serialized_model; + model_.SerializeToString(&serialized_model); + auto is_compatible = lib.onnxGetBackendCompatibility( + backendID, serialized_model.size(), serialized_model.data()); + std::string error_msg; + if (IsUnsupported(is_compatible, error_msg)) { + std::cout << "Warning: " << error_msg + << " This test case will be skipped." << std::endl; + GTEST_SKIP(); + return; + } + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess(is_compatible, NULL, lib)); + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess( + lib.onnxInitGraph( + backend, + NULL, + serialized_model.size(), + serialized_model.data(), + weightCount, + weightDescriptors_pointer, + &graph), + NULL, + lib)); + for (const auto& proto_test_data : protos_) { + std::vector input_descriptor, output_descriptor, + result_descriptor; + for (const auto& input : proto_test_data.inputs_) { + input_descriptor.push_back( + ONNX_NAMESPACE::testing::ProtoToOnnxTensorDescriptor( + input, shape_pool)); + } + int output_count = 0; + for (auto& output : proto_test_data.outputs_) { + output_count++; + output_descriptor.push_back( + ONNX_NAMESPACE::testing::ProtoToOnnxTensorDescriptor( + output, shape_pool)); + onnxTensorDescriptorV1 result; + result.tag = ONNXIFI_TAG_TENSOR_DESCRIPTOR_V1; + std::string name_string = output_descriptor[output_count - 1].name; + result.name = name_string.c_str(); + result.dataType = output.data_type(); + result.memoryType = ONNXIFI_MEMORY_TYPE_CPU; + std::vector shape_values( + output.dims().begin(), output.dims().end()); + shape_pool.emplace_back(std::move(shape_values)); + result.dimensions = shape_pool.back().size(); + result.shape = shape_pool.back().data(); + std::vector raw_data(output.raw_data().size(), 0); + data_pool.emplace_back(std::move(raw_data)); + result.buffer = (onnxPointer)data_pool.back().data(); + result_descriptor.emplace_back(std::move(result)); + } + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess( + lib.onnxSetGraphIO( + graph, + input_descriptor.size(), + input_descriptor.data(), + result_descriptor.size(), + result_descriptor.data()), + &graph, + lib)); + + onnxMemoryFenceV1 inputFence, outputFence; + inputFence.tag = ONNXIFI_TAG_MEMORY_FENCE_V1; + outputFence.tag = ONNXIFI_TAG_MEMORY_FENCE_V1; + inputFence.type = ONNXIFI_SYNCHRONIZATION_EVENT; + outputFence.type = ONNXIFI_SYNCHRONIZATION_EVENT; + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess( + lib.onnxInitEvent(backend, &inputFence.event), &graph, lib)); + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess( + lib.onnxInitEvent(backend, &outputFence.event), &graph, lib)); + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess( + lib.onnxRunGraph(graph, &inputFence, &outputFence), &graph, lib)); + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess( + lib.onnxSignalEvent(inputFence.event), &graph, lib)); + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess( + lib.onnxWaitEvent(outputFence.event), &graph, lib)); + lib.onnxReleaseEvent(outputFence.event); + lib.onnxReleaseEvent(inputFence.event); + ASSERT_EQ(output_descriptor.size(), result_descriptor.size()); + for (int i = 0; i < output_descriptor.size(); i++) { + auto output_size = GetDescriptorSize(&output_descriptor[i]); + auto result_size = GetDescriptorSize(&result_descriptor[i]); + ASSERT_EQ(output_size, result_size); + for (int j = 0; j < output_size; j++) { + EXPECT_EQ( + IsDescriptorEqual(output_descriptor[i], result_descriptor[i]), + true); + } + } +/* + * Examine functions in onnxifi_ext + */ +#ifdef ONNXIFI_ENABLE_EXT + onnxExtensionFunctionPointer* f; + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess( + lib.onnxGetExtensionFunctionAddress( + backendID, "onnxGetExtensionFunctionAddress", f), + NULL, + lib)); +#endif + } + ASSERT_TRUE(IsGtestAssertMemorySafeSuccess( + lib.onnxReleaseGraph(graph), NULL, lib)); + } + } +}; + +/** + * When testing backend, we do not specify target backend here, + * but always use the by-default backend of onnxifi_loader. + * Check onnxifi_loader.c for more detail of how to indicate specific + * backend. + */ +TEST_P(ONNXCppDriverTest, ONNXCppDriverUnitTest){ + onnxifi_library lib; + onnxBackendID* backendIDs = NULL; + onnxBackend backend; + const size_t max_info_size = 50; // The maximum backend info size + if (!ONNXIFI_DUMMY_BACKEND) { + ASSERT_TRUE(onnxifi_load(1, NULL, &lib)); + size_t numBackends = 0; + ASSERT_EQ( + lib.onnxGetBackendIDs(backendIDs, &numBackends), + ONNXIFI_STATUS_FALLBACK); + backendIDs = (void**)malloc(numBackends * sizeof(onnxBackendID)); + ASSERT_EQ( + lib.onnxGetBackendIDs(backendIDs, &numBackends), + ONNXIFI_STATUS_SUCCESS); + + for (int i = 0; i < numBackends; i++) { + const uint64_t backendProperties[] = {ONNXIFI_BACKEND_PROPERTY_NONE}; + ASSERT_EQ( + lib.onnxInitBackend(backendIDs[i], backendProperties, &backend), + ONNXIFI_STATUS_SUCCESS); + char infovalue[max_info_size]; + size_t infoValueSize = max_info_size; + ASSERT_EQ( + lib.onnxGetBackendInfo( + backendIDs[i], ONNXIFI_BACKEND_NAME, infovalue, &infoValueSize), + ONNXIFI_STATUS_SUCCESS); + RunAndVerify(lib, backend, backendIDs[i]); + lib.onnxReleaseBackend(backend); + lib.onnxReleaseBackendID(backendIDs[i]); + } + free(backendIDs); + } else { + RunAndVerify(lib, backend, NULL); + } +} + +INSTANTIATE_TEST_CASE_P( + ONNXCppAllTest, + ONNXCppDriverTest, + ::testing::ValuesIn(GetTestCases()), + ONNXCppDriverTest::PrintToStringParamName()); +} // namespace testing +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/backend/test/cpp/gtest_utils.cc b/third_party/onnx/onnx/backend/test/cpp/gtest_utils.cc new file mode 100644 index 000000000..13fed6295 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/cpp/gtest_utils.cc @@ -0,0 +1,13 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "gtest_utils.h" +namespace ONNX_NAMESPACE { +namespace testing { +std::vector& GetTestCases() { + static std::vector all_test_cases; + return all_test_cases; +} +} // namespace testing +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/backend/test/cpp/gtest_utils.h b/third_party/onnx/onnx/backend/test/cpp/gtest_utils.h new file mode 100644 index 000000000..d05c77b6f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/cpp/gtest_utils.h @@ -0,0 +1,11 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "gtest/gtest.h" +#include "onnx/backend/test/cpp/driver/test_driver.h" +namespace ONNX_NAMESPACE { +namespace testing { +std::vector& GetTestCases(); +} +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/backend/test/cpp/test_main.cc b/third_party/onnx/onnx/backend/test/cpp/test_main.cc new file mode 100644 index 000000000..b67afdb3f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/cpp/test_main.cc @@ -0,0 +1,19 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include "gtest_utils.h" + +GTEST_API_ int main(int argc, char** argv) { + if (argc < 2) { + std::cerr << "target directory must be given!" << std::endl; + return EXIT_FAILURE; + } + argc--; + std::string target_dir = argv[argc]; + auto testcases = ONNX_NAMESPACE::testing::LoadAllTestCases(target_dir); + ONNX_NAMESPACE::testing::GetTestCases() = testcases; + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/third_party/onnx/onnx/backend/test/data/node/test_abs/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_abs/model.onnx new file mode 100644 index 000000000..cbb52b8a8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_abs/model.onnx @@ -0,0 +1,13 @@ + backend-test:I + +xy"Abstest_absZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_abs/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_abs/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_abs/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_abs/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_abs/test_data_set_0/output_0.pb new file mode 100644 index 000000000..414f615a9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_abs/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_acos/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_acos/model.onnx new file mode 100644 index 000000000..874cf5705 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_acos/model.onnx @@ -0,0 +1,13 @@ + backend-test:K + +xy"Acos test_acosZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_acos/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_acos/test_data_set_0/input_0.pb new file mode 100644 index 000000000..7a61135c2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_acos/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJð  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_acos/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_acos/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..15177ccd16805f721ffa0b238e95de5bd3ce566f GIT binary patch literal 254 zcmVsaKP~0GKTCPWKmS7(KaYKb1(RKb7~2KZ-K_N&DLCNbJ zK`s;nLG$ONKy76JK}H}1Kp9NfKuwYoKt>1{LDfpOKr(EXKu}^>K(zY)Kn-7`K!CNw zKvt!dKM3K`K$u9-Ku@jFKvd=zK|fvOK+K7UKz`kwK=kV9KsRB;@“ö‰?ZT—?/?é 5@Á81@ÕŽ7@øP>@&º2@í¯@Àd1@\<­?šN&@}2¼?žG<@ñ6@¾@½Àñ?¾ï0@»@’Ó@·Û?j[$@çÜ#@sK$@=9<@oÑ)@âÕ@†Ö@+@VÅ?5”(@aæ(@ÕµÜ?(Õ³?V@Àk@™þ@\@¿ã>@—^¢?×Ü?OÓÅ?én'@éªí?<<@YZê? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_acosh_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_acosh_example/model.onnx new file mode 100644 index 000000000..868c12b59 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_acosh_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:E + +xy"Acoshtest_acosh_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_acosh_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_acosh_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7c690ef0b1ccf261f41c3e1989a6aa885f8d68c9 GIT binary patch literal 21 ccmd;J7GQK@tnlJtU{G)j`JwB;z|de103zE22LJ#7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_acosh_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_acosh_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1b7c7729e04bf1305bcf884e67ce6628ec802633 GIT binary patch literal 21 bcmd;J7GQK@tn}jfKEd9hLj8(80}ucJGwKBA literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..324e40e38a1600114bd73cdf20a3b4b0d0c8a979 GIT binary patch literal 320 zcmd;J7vf1uOwLZtOVKS!EiSR@XX0vSx~ zOCT@5C^tSiKQ%2aGdVLguS7IosM!iAXC;xCsh6LZSD{x>lv9nU^la z19DP)BE-5VZlJS-*tl3Y7=;)>oDeXF9mwGaI#q~^ivuXb!o|eF2oi8d7w|w9ND}6P WdJ0J!ND%BrWR*@bTsR#lzz6_vW=cQ+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d0483cc61 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BRJÍÌÌ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..54656de61df113af74638d4e31110b7cb8c8c9f0 GIT binary patch literal 15 QcmWe&cVZ0j;$VOR01J-+0RR91 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..038e9dcb5c09947e3beaca0e8ce9fbd6acc3e3a2 GIT binary patch literal 13 Ucmd;J6kv2>jPPP%U}&%h00|5M!vFvP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..265567aa17fa1767d1b16f6d976a1be3b87142e1 GIT binary patch literal 13 Ucmd;J6kv2>boXLmU})G600|WWG5`Po literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/input_4.pb new file mode 100644 index 0000000000000000000000000000000000000000..82851b850996a678afc18f64429531173908171b GIT binary patch literal 13 Ucmd;J6kv2>^zdR~U|?_n00*4`Gynhq literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/output_0.pb new file mode 100644 index 000000000..075011c20 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BX_newJ—b‡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/output_1.pb new file mode 100644 index 000000000..47b03d2f3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adagrad/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BH_newJ@ß?@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c9dc8c1f8199fc50db1b006c46a6ea76c48ced9f GIT binary patch literal 465 zcmZ{gK}*9h7=}$9Yx&%v1}h?-ya)pe>qRJd&`Wcc9fp^ZrRfNENy(zqvwvjA9sC>K z=6^CxCmj?I;pKh4mn7dC_;@s@?1jtX*6@`{H^;C=fSv$N!JAF&Nx;jjW>$$+lHlQN zl1sj}nzTyxo;ZK)KNNJKX)!*BQNbDg$VP zJcL1j@KIx?&iK}Z%~BX3u%iKZ0dgccAYMbVUMA~hNH1fn>2CJsXYf~4N0Fm#Z5?&l UeTf})*|yTddmpdh-$Fw43({U-mjD0& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d0483cc61 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BRJÍÌÌ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..54656de61df113af74638d4e31110b7cb8c8c9f0 GIT binary patch literal 15 QcmWe&cVZ0j;$VOR01J-+0RR91 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..259b58bf7f3d11fde5b959e44f4a97ae791ed8c5 GIT binary patch literal 14 Vcmd;J6kv2>iZJwIVPI&m2LKBq0rda? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..eb51654d455357db15a81c2fc6a46a89d28f47b2 GIT binary patch literal 18 Zcmd;J5@2*ayRs1VPI(34*&}q0%QOH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_5.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_5.pb new file mode 100644 index 0000000000000000000000000000000000000000..62e5b3a8f7515918af3f49d0b6536a2fcea0da0b GIT binary patch literal 18 Zcmd;J5@2*@-XybVPIfz000T20cHRI literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_7.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/input_7.pb new file mode 100644 index 0000000000000000000000000000000000000000..cb33a3de6635f4b8e576e11be4af29c88323dfdf GIT binary patch literal 18 Xcmd;J5@2*<@-Xt^U|?u)0AhOp6S@Mc literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f84f709d7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BX1_newJ—b‡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_1.pb new file mode 100644 index 000000000..c8d6212c8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BX2_newJ@¸…?7@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_2.pb new file mode 100644 index 000000000..ac197e13e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +BH1_newJ@ß?@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_3.pb new file mode 100644 index 000000000..987572fef --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adagrad_multiple/test_data_set_0/output_3.pb @@ -0,0 +1 @@ +BH2_newJ ïŸ@ÝÎA \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_adam/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e2c192a7df4c47165250ab9947dff869863a0c15 GIT binary patch literal 371 zcmd;J7vf1uOwLZtOVKS!EiSP-#Kbk7k&7{ii!p?YF@lTHor^Jyi_t@fH6lJQwOoib z3_^K;C?yuhl*C*uelFI;oPvx*QDfs``vr`QT6|nANvS1?qG!*Xu?6u3x!6++iZgTa z^F*iazh(>)lHwA`%P-1}PtH$GOUq2oOwB71%@=C60?JuQBxdU6=jB!C6%?hGWu}(v zl@ujr=4Ixk3vq&+7@r8VG>RMOMjk@1(Jlhp#DWN2P6pbJ(?gmEReN3$#CKHg8(A{Xoye! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d0483cc61 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BRJÍÌÌ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..54656de61df113af74638d4e31110b7cb8c8c9f0 GIT binary patch literal 15 QcmWe&cVZ0j;$VOR01J-+0RR91 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_2.pb new file mode 100644 index 000000000..15244fd4b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BXJš™™?333@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..439d577ffbbfb621346b9f41aca167107861274a GIT binary patch literal 17 Ycmd;J5@2*y_B@eG}xx2i_W{hLQnn&|C~p^ zrj-nehw$>gdEiUl&l}UDoEOhREw8lL==f(Jz6p>!AaigQQ#=tk32K7MP#J29nnrZA zm}W|BQKL>-?^*BD-lxW2x;IN+O-|r|m+L1U%x0VGFG42A;O0W};Pd0&_;c`8-Bejo zi`7aNQYanN^gTv4KI1a1m3j-;jd+z}8|sEjCDkLP?ejB^6SC^1)N);lheP}b9f9i+ zy4RYyF=I4-`#B2W;gt)HM@$m!Bu<+o111?TY{0MqlMWcH&rWypQ}`>>ro^OOl{PhO dU$jjP+t+SW!}d$CsbRa7?7rdl0{(5+C%>}aXI=mR literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d0483cc61 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BRJÍÌÌ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..54656de61df113af74638d4e31110b7cb8c8c9f0 GIT binary patch literal 15 QcmWe&cVZ0j;$VOR01J-+0RR91 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..259b58bf7f3d11fde5b959e44f4a97ae791ed8c5 GIT binary patch literal 14 Vcmd;J6kv2>iZJwIVPI&m2LKBq0rda? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..eb51654d455357db15a81c2fc6a46a89d28f47b2 GIT binary patch literal 18 Zcmd;J5@2*ayRs1VPI(34*&}q0%QOH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_5.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_5.pb new file mode 100644 index 0000000000000000000000000000000000000000..62e5b3a8f7515918af3f49d0b6536a2fcea0da0b GIT binary patch literal 18 Zcmd;J5@2*3N!R#VPIfz000UT0dxQW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_7.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_7.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb84e11178156b14aabf2cb7ca4af4bc41bdaa6e GIT binary patch literal 18 Xcmd;J5@2*<3N!NJU|?u)0AhOp6k-Co literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_8.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_8.pb new file mode 100644 index 0000000000000000000000000000000000000000..3a1c3faf7739e5cfbcfe238cb019f067e29bba56 GIT binary patch literal 14 Vcmd;J6kv2>@-XybVPIge2LK780c8LH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_9.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/input_9.pb new file mode 100644 index 0000000000000000000000000000000000000000..4d97f4be46e6e946550a846257b9eb3715cd3eb0 GIT binary patch literal 18 Zcmd;J5@2*<@-Xt^U|?vlXJAlp1OO8E0!#n^ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d6554ea2b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BX1_newJÁVB? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_1.pb new file mode 100644 index 000000000..84851f0eb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BX2_newJdï ?6¿ü? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_2.pb new file mode 100644 index 000000000..ca18d87a6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +BV1_newJpÎì? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..32448031b5173cab3aa57e976e1ef23a90b04546 GIT binary patch literal 22 dcmd;J5@2*<3p0w(OD*@}xWrK45Ovwd9so9w1|a|d literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_4.pb new file mode 100644 index 000000000..8b342ab6c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_4.pb @@ -0,0 +1 @@ +BH1_newJ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_5.pb b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_5.pb new file mode 100644 index 000000000..dfc933bfd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_adam_multiple/test_data_set_0/output_5.pb @@ -0,0 +1 @@ +BH2_newJZì?;’A \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_add/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_add/model.onnx new file mode 100644 index 000000000..78da81354 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_add/model.onnx @@ -0,0 +1,19 @@ + backend-test:i + +x +ysum"Addtest_addZ +x + + + +Z +y + + + +b +sum + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1424d7297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_add/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a83758c3533fc03cd91f4c124ba712eead53cfd0 GIT binary patch literal 256 zcmV+b0ssC80|*2N1rPy319Nq4O7Ha zbDut;Sb@Ke((FFCg2pjbZ<$g{p^j~_q2v`D`InZ`ORMNGc{ z_HDop_{Kl1K&n4;(GkEegK$7x58^(my_`R+^}D{nj_f`hh9N-UFMhtY;LJa3^ew+T zh=9MKg9“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_add_bcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_add_bcast/test_data_set_0/input_1.pb new file mode 100644 index 000000000..dcbe531c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_add_bcast/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_add_bcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_add_bcast/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..725a84b31c28d90dfc240580b0c158a4b0bcbbf5 GIT binary patch literal 256 zcmV+b0ssC80|*2N1rPy319Nq4O7H2|*wE$Y9?h!#IoMhCylAB;cHZ&kg>W6i(P3?DyVb*;W8IFUcjSAxGfI!q7cgn;q`v4I2> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_add_uint8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_add_uint8/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1735d5acd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_add_uint8/test_data_set_0/input_1.pb @@ -0,0 +1,4 @@ +ByJ< + + +        \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_add_uint8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_add_uint8/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b8a101479 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_add_uint8/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BsumJ<&, $!"' ,$'" \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_and2d/model.onnx new file mode 100644 index 000000000..823a8fad1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_and2d/model.onnx @@ -0,0 +1,17 @@ + backend-test:_ + +x +yand"And +test_and2dZ +x +   + +Z +y +   + +b +and +   + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d9541774b1b6eb6fca5913ce404acbc7b8bfaf00 GIT binary patch literal 23 acmd;J=3o)vbYiUV;$Z{<21W)3AO!#vI{`}o literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and2d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_and2d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2f37772a3d53eb91534d1067016b0849ddbc0188 GIT binary patch literal 23 acmd;J=3o)vbYiUZ;$Z{<21W)3APE2zNdZd$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..644166260e8e29158bd00b0f5301aff34541d822 GIT binary patch literal 25 ccmd;J=3o)vbYf1-OY!1i1OWy{1_mGr03mAv2LJ#7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and3d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_and3d/model.onnx new file mode 100644 index 000000000..601f2ba6b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_and3d/model.onnx @@ -0,0 +1,20 @@ + backend-test:k + +x +yand"And +test_and3dZ +x +  + + +Z +y +  + + +b +and +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and3d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..402cb458fef2a00e0a948f85be2d86f6c4af72f4 GIT binary patch literal 73 scmd;J=3wDq72tGYtnjj7WB@`SU|;}IKoUqJW2hKN5ULQY2*hRp0Ah;)m;e9( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and3d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_and3d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..825b4f452aedebedb58afce7049b99d4664b65a9 GIT binary patch literal 73 ycmd;J=3wDq72tGYtn{*BWMpJuU}OMNPypru2_OKAgIGY!02Ts?fH)vMjEn$ek^!dx literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and3d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ac2cebf48598c63f9f393f2dfc4eb5b857c3adb6 GIT binary patch literal 75 wcmd;J=3wDq72tGYPRvX3vSDOkWB?){!NAA}B0)R|fQUgkU~z~#s4OD`0Fqk*OaK4? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and4d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_and4d/model.onnx new file mode 100644 index 000000000..ae2465b88 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_and4d/model.onnx @@ -0,0 +1,23 @@ + backend-test:w + +x +yand"And +test_and4dZ +x +  + + + +Z +y +  + + + +b +and +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and4d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and4d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3c2fb94d859345b8155ce8046769d8923e74ddf8 GIT binary patch literal 376 zcmX|*%MrsM3`9{9XOx?3@-Y>;k`1q+@1TxhD&OB2|NW zr1L#W^g`PP2QDIB%-kx8Dw;v-82}zqLqAi79ON=M`O_d5b#I>rTRYxNb< Y5GDdiV2R)nR@UTeGg>>zm6;>LKAvF$-~a#s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and4d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and4d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5389f4895aa9c17ac45fbfacbb561d6fc6b00d46 GIT binary patch literal 378 zcmZWkOBO&d3{=I7oikawh4-wT+cD%fHRvK~=9gBg3^K~J%xm4xW4rn;PO;`C0UgR~ zCS3@FRT=vXgbf{uMi3V92|OVoA|2c94u^LuP5XXugI&TCeilpJ_0K_=GVtajl>zzP KUNVeKx%~!Xqystt literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/model.onnx new file mode 100644 index 000000000..c54ddce1d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/model.onnx @@ -0,0 +1,18 @@ + backend-test:k + +x +yand"Andtest_and_bcast3v1dZ +x +  + + +Z +y + +  +b +and +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5cc32fe100a22bb1654e283a90b1cdfc7f9cb6e3 GIT binary patch literal 73 rcmd;J=3wDq72tGYtnjj71OWy{1_m$#&IXDAA&3i>0g^x(8G~d1WB&o4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1500686f9682b83e63e4ba1557429c3dd431dc27 GIT binary patch literal 14 Tcmd;J72tGYtn^}K00Kq;3Ty#0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v1d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a5e19b0b5a505bd9d8039763b007a4a5e83967a8 GIT binary patch literal 75 icmd;J=3wDq72tGYPRvX3vS9!MMpOdCLlOgXu@V505CTB} literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/model.onnx new file mode 100644 index 000000000..22bc73a8a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/model.onnx @@ -0,0 +1,18 @@ + backend-test:o + +x +yand"Andtest_and_bcast3v2dZ +x +  + + +Z +y +   + +b +and +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d784193ad434efa0f3ee1407799bfac9192b6b1f GIT binary patch literal 73 ucmd;J=3wDq72tGYtnjj7U|?im1Ogxh1Ryqu3ljy&KzTqR5EHHf$OZsorU9e? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..8bab0d309ce75e36c6c8e87f6ddb972209c50868 GIT binary patch literal 31 ecmd;J;b0ZubYiUZ5@BFqWMpIjLl6PtF#-S|cL7-d literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast3v2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..05a20c23cf016ac96d6dd96e1af850233b0bab2b GIT binary patch literal 75 qcmd;J=3wDq72tGYPRvX3vSDCg1VaWWU<7f203wRufrL=RfII+_hyqdo literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/model.onnx new file mode 100644 index 000000000..a36c3355a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/model.onnx @@ -0,0 +1,20 @@ + backend-test:w + +x +yand"Andtest_and_bcast4v2dZ +x +  + + + +Z +y +   + +b +and +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..22944e3243740501ecaa8be2c697296750f64652 GIT binary patch literal 376 zcmX|*%Mrsc2t*-vGV;we`RIyLa>@vA7p##4>`z+T+Shx1&g07O{d;9(gic>6Bw5Dc z;lN!?!2_vQv8+cC4VG%`wn$l+cZb&0VTkEX@CI9FioIa!2$bg$Re<~>QN{!n)dmm} c0Mz4?6X;>hPoNZj$q;UT8E-L4=vd7Wf16JN-2eap literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v2d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d7cba2c1a18ae46eb63d8ff7a8295379f7cd10e2 GIT binary patch literal 41 icmd;JIJh6 zEoRE9z@$Ih literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v3d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c8235b845cd823c290e380698168c59dda5ab0a8 GIT binary patch literal 378 zcmYk0%ME}q3_}S86mHDKku8uoGdE)pJMO1a8!LWJ>ctmdeLMEE-0yRJ^Q2>_c;Zr5 zWoET8AjFcB&1_FrHY-iFLidrOItd4+dRgeh$WSu;5q;4E%l{C|CX?FIF!~zZHeiLo VDA2rIf$a*ZibbFrJ(Nl>0zZ2515^M2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v4d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v4d/model.onnx new file mode 100644 index 000000000..d17a018ff --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v4d/model.onnx @@ -0,0 +1,22 @@ + backend-test: + +x +yand"Andtest_and_bcast4v4dZ +x +  + + + +Z +y +  + + + +b +and +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v4d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_and_bcast4v4d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..024a3481cd47fb9cbd00d45c46a206d2320deb56 GIT binary patch literal 39 jcmd;J$%T&3NgfJ+a`uV zoSH1Gp~b$#rI1oI)Ky@<-5HP!^Hea!JC6d%I(P%Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_example_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_example_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f6f7c0f367d735ebf8cd93c978f41ee85931cdf2 GIT binary patch literal 32 ccmd;JD@rXc%_;FpU}S&*7!BoOP%wEI4O0N)!)SDI0D<@e&;S4c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/model.onnx new file mode 100644 index 000000000..8689e4a9f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/model.onnx @@ -0,0 +1,15 @@ + backend-test:° +A +dataresult"ArgMax* +keepdims * +select_last_index 1test_argmax_default_axis_random_select_last_indexZ +data + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_default_axis_random_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..155c0f172de7ffe11c61dd268f74b9cad8243139 GIT binary patch literal 114 scmd;JD@rXc%_;FpU}S&*7!BoOP%wEI4O0N)!)SDI0D<@e&;S4c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example/model.onnx new file mode 100644 index 000000000..fcf0ce22d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example/model.onnx @@ -0,0 +1,13 @@ + backend-test:† +4 +dataresult"ArgMax* +axis * +keepdims test_argmax_keepdims_exampleZ +data +  + +b +result +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..931446fc1f30bf855a28f650654249d757fc6929 GIT binary patch literal 30 icmd;J;$RYBbYe+KEJ^edU|?WyU|?vl2U0*6d%I(P%Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_example_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..60d9eebdb4be7e21cd1e5b37b1eeb9f543461eb7 GIT binary patch literal 32 ccmd;J;$ReDcVa6_EiTO|@e*KUfB+Z`07}>cZU6uP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/model.onnx new file mode 100644 index 000000000..36a9021db --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/model.onnx @@ -0,0 +1,15 @@ + backend-test: +4 +dataresult"ArgMax* +axis * +keepdims test_argmax_keepdims_randomZ +data + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b447f5f9af7f6fe9858de0b77fec81f2f5e6d237 GIT binary patch literal 82 ocmd;J;$Y-p5ny*>D@rXc%_;G6U}8W8Fg_zx7{-UGf{DXu003(Pu>b%7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/model.onnx new file mode 100644 index 000000000..785d4ef0c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/model.onnx @@ -0,0 +1,16 @@ + backend-test:¹ +N +dataresult"ArgMax* +axis * +keepdims * +select_last_index -test_argmax_keepdims_random_select_last_indexZ +data + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_keepdims_random_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b447f5f9af7f6fe9858de0b77fec81f2f5e6d237 GIT binary patch literal 82 ocmd;J;$Y-p5ny*>D@rXc%_;G6U}8W8Fg_zx7{-UGf{DXu003(Pu>b%7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example/model.onnx new file mode 100644 index 000000000..2685d086a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example/model.onnx @@ -0,0 +1,13 @@ + backend-test: += +dataresult"ArgMax* +axisÿÿÿÿÿÿÿÿÿ * +keepdims *test_argmax_negative_axis_keepdims_exampleZ +data +  + +b +result +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..931446fc1f30bf855a28f650654249d757fc6929 GIT binary patch literal 30 icmd;J;$RYBbYe+KEJ^edU|?WyU|?vl2U0*6d%I(P%Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_example_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..60d9eebdb4be7e21cd1e5b37b1eeb9f543461eb7 GIT binary patch literal 32 ccmd;J;$ReDcVa6_EiTO|@e*KUfB+Z`07}>cZU6uP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/model.onnx new file mode 100644 index 000000000..1c989a251 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/model.onnx @@ -0,0 +1,15 @@ + backend-test:¤ += +dataresult"ArgMax* +axisÿÿÿÿÿÿÿÿÿ * +keepdims )test_argmax_negative_axis_keepdims_randomZ +data + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..50b682b13286c8ff23ba5bec17e42eddd6494efc GIT binary patch literal 66 jcmd;J;$Y@r6kvB^D@rXc%_;FRU}S&*W+)A#aESu|!XpEp literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/model.onnx new file mode 100644 index 000000000..48f89aae4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/model.onnx @@ -0,0 +1,16 @@ + backend-test:Ð +W +dataresult"ArgMax* +axisÿÿÿÿÿÿÿÿÿ * +keepdims * +select_last_index ;test_argmax_negative_axis_keepdims_random_select_last_indexZ +data + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_negative_axis_keepdims_random_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..50b682b13286c8ff23ba5bec17e42eddd6494efc GIT binary patch literal 66 jcmd;J;$Y@r6kvB^D@rXc%_;FRU}S&*W+)A#aESu|!XpEp literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..12a18745bf1e1f0d8821f114d04f6313f7edf58c GIT binary patch literal 156 zcmd;J7UD@tOwLZtOVKS!EiSQYW#ls9Vo6CXNfcr$N-ZwUDN$l`EK2uHtkB}-Vo9vX zES6wgz{sS<&&83Qnp%*OnOiKu02C0C2WgK_EK1K!tccIckB7;|r&c897UZNxi9wC! jWlm<|0u9HYF Ha-DquMn^X) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example_select_last_index/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example_select_last_index/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1821ab502d10e1943279a3de763274fb200d5503 GIT binary patch literal 30 fcmd;J;$RYBbYe+KEJ^edU|?WyfM5q8t>6d%I(P%Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_example_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..15b429cecbb76b69b096c1c8fb341d4209ba81b5 GIT binary patch literal 30 acmd;J5@2^?D@rXc%_;E`U}S&*7!3ePwF6}U literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..60080901ede577d9ffb85af5a91490630730ea24 GIT binary patch literal 163 zcmd;J7UD@tOwLZtOVKS!EiSR@VdOI5Vo6CXNfcr$N-ZwUDN$l`EK2uHtkB}-Vo9vX zES6wgz{sS<&&83Qnp%*OnOiKu02C0C18I*>EK1K!tccIckB7;|7bWJU?U3(`i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..993e0e3ca6485b333df4a2ab4c4e702180f34ab2 GIT binary patch literal 80 mcmd;J;$RVAcVa6_EiTO|@p52dKm{;9BUBj1hpB>z!)O5gcLS&Z literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c5232bb2f996af7c8a4816b8d7c6d7791f593065 GIT binary patch literal 207 zcmZXOy$ZrG6opL;HC%(%Ou^ByAUM0}t`Fc6u1zSVZ7NBGJdTgyW@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmax_no_keepdims_random_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..993e0e3ca6485b333df4a2ab4c4e702180f34ab2 GIT binary patch literal 80 mcmd;J;$RVAcVa6_EiTO|@p52dKm{;9BUBj1hpB>z!)O5gcLS&Z literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example/model.onnx new file mode 100644 index 000000000..6c1dd3b34 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example/model.onnx @@ -0,0 +1,12 @@ + backend-test:} +' +dataresult"ArgMin* +keepdims  test_argmin_default_axis_exampleZ +data +  + +b +result +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..931446fc1f30bf855a28f650654249d757fc6929 GIT binary patch literal 30 icmd;J;$RYBbYe+KEJ^edU|?WyU|?vl2U0*6d%I(P%Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_example_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..434e6e663c7c45a4933061c89d4d35a02b2bfc59 GIT binary patch literal 32 Zcmd;JD@rXc%_;FpU_b+mP(C`1ri=k5Pe>d9fv5w{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/model.onnx new file mode 100644 index 000000000..55e95e2a6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/model.onnx @@ -0,0 +1,15 @@ + backend-test:° +A +dataresult"ArgMin* +keepdims * +select_last_index 1test_argmin_default_axis_random_select_last_indexZ +data + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_default_axis_random_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ed2a8d28bc1112a8e2c6229bca2e9cb580a733db GIT binary patch literal 114 ncmd;JD@rXc%_;FpU_b+mP(C`1ri=k5Pe>d9fv5w{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example/model.onnx new file mode 100644 index 000000000..87e49370b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example/model.onnx @@ -0,0 +1,13 @@ + backend-test:† +4 +dataresult"ArgMin* +axis * +keepdims test_argmin_keepdims_exampleZ +data +  + +b +result +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..931446fc1f30bf855a28f650654249d757fc6929 GIT binary patch literal 30 icmd;J;$RYBbYe+KEJ^edU|?WyU|?vl2U0*6d%I(P%Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_example_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..19a64be4dd11a0627eed5071297106b4635ab5b2 GIT binary patch literal 32 acmd;J;$ReDcVa6_EiTO|@e*KUKm`Cw&;xA% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/model.onnx new file mode 100644 index 000000000..f11ad57c8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/model.onnx @@ -0,0 +1,15 @@ + backend-test: +4 +dataresult"ArgMin* +axis * +keepdims test_argmin_keepdims_randomZ +data + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a6ab81d9c2aa9a747a35f52ee93a601865188ba5 GIT binary patch literal 82 kcmd;J;$Y-p5ny*>D@rXc%_;G6U}S&*CMZpa4^;-I004^vu>b%7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/model.onnx new file mode 100644 index 000000000..06c290a7a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/model.onnx @@ -0,0 +1,16 @@ + backend-test:¹ +N +dataresult"ArgMin* +axis * +keepdims * +select_last_index -test_argmin_keepdims_random_select_last_indexZ +data + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_keepdims_random_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a6ab81d9c2aa9a747a35f52ee93a601865188ba5 GIT binary patch literal 82 kcmd;J;$Y-p5ny*>D@rXc%_;G6U}S&*CMZpa4^;-I004^vu>b%7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example/model.onnx new file mode 100644 index 000000000..4ce3fbb9c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example/model.onnx @@ -0,0 +1,13 @@ + backend-test: += +dataresult"ArgMin* +axisÿÿÿÿÿÿÿÿÿ * +keepdims *test_argmin_negative_axis_keepdims_exampleZ +data +  + +b +result +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..931446fc1f30bf855a28f650654249d757fc6929 GIT binary patch literal 30 icmd;J;$RYBbYe+KEJ^edU|?WyU|?vl2U0*6d%I(P%Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_example_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..19a64be4dd11a0627eed5071297106b4635ab5b2 GIT binary patch literal 32 acmd;J;$ReDcVa6_EiTO|@e*KUKm`Cw&;xA% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/model.onnx new file mode 100644 index 000000000..aa1f62d4d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/model.onnx @@ -0,0 +1,15 @@ + backend-test:¤ += +dataresult"ArgMin* +axisÿÿÿÿÿÿÿÿÿ * +keepdims )test_argmin_negative_axis_keepdims_randomZ +data + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_negative_axis_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3a522130a2e44cd179a2e1fc46c104337092b12c GIT binary patch literal 66 lcmd;J;$Y@r6kvB^D@rXc%_;FRU}iuCj8HBUsxSkL4*pF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example_select_last_index/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example_select_last_index/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..02090d668a32060f268051a98b6a523a87cc85ce GIT binary patch literal 200 zcmZXOy$ZrG6opMFHC&57L8P-|!NJu{cYOetaNAr;Xc|irp^xJ$_=Xaxlfzj)&UZK> zmqm?DM@}Cig?M^1xIv~dqRc∨Ypk?Axnx)dDgcO(@xm@oEL4BO0{nLpe*JgiRnz zO;i>`RK{rieu{X9h@_Jbw$=iPVHg(Vb%Nda8&lzI!(DG4CNTxN-0 H_`3K2L}@oB literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example_select_last_index/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example_select_last_index/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1821ab502d10e1943279a3de763274fb200d5503 GIT binary patch literal 30 fcmd;J;$RYBbYe+KEJ^edU|?WyfM5q8t>6d%I(P%Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example_select_last_index/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_example_select_last_index/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3b84db581851e7870255962e3155865faac09f6f GIT binary patch literal 30 Ycmd;J5@2^?D@rXc%_;E`U}QiA07pF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..216dccf7e63efbfcd779a82ebe42353764f462dc GIT binary patch literal 163 zcmd;J7UD@tOwLZtOVKS!EiSR@VdOI5Vo6CXNfcr$N-ZwUDN$l`EK2vy%+uoLVo9vX zES6wgz{sS<&&83Qnp%*OnOiKu02C0C18I*>EK1MK%!|*?Tm2^} literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..edce89923 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ?¯1®?à0AºD Á^Áµ‡ÁoàÔ@4²@ÊÎì@j(A$v¿@Å9E¿æ‰³@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..00245371b36e4580a992e31aba416e4e46fb720a GIT binary patch literal 80 icmd;J;$RVAcVa6_EiTO|@p52ffB+^aO^6Rw2B!f1mjkE( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random_select_last_index/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_argmin_no_keepdims_random_select_last_index/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..08ea97c7707a804382eecd70b6e277011c729852 GIT binary patch literal 207 zcmZXOy$ZrG6opL;HC%(%Ou^ByAUM0}t`Fc6Vsj~>Z7NBGK8}y!QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asin/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_asin/test_data_set_0/output_0.pb new file mode 100644 index 000000000..7ef10bf49 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_asin/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðø?OL?(Ÿ%?…?åüß>úÂ3?Jäç>¶õŒ?8s¦?l{É>‚ãi?«? ¨?º_—?¿š‘=ت²=ñ£¥<¶Û{?"Hd?®‡?‡‹®?fm?C–õ>E@e?[Ëò=çÃ1?M>`Hž?TŒ ?ŸêÚ>Ÿ‰>Z°b?%„ò>$Ç?cï™]“ç>k§E?9Õv=:Ø:?p-—c>N¤>X—¾>ªS?/xè>L†µ?)ZÑ=úyW>ãç%>È06?ƒ>aø>Ú|> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asin_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_asin_example/model.onnx new file mode 100644 index 000000000..41661dd78 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_asin_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:C + +xy"Asintest_asin_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asin_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_asin_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7c32a2f1c99d56a6bc321c4499b4454c8558572c GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU|`q}#2{b~02xyPEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asin_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_asin_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2ef8fdad56b04b15c1bc37304191d411eb58a267 GIT binary patch literal 21 Zcmd;J7GQK@tn}iU#KpFs0SJJ!JpdzC191QV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asinh/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_asinh/model.onnx new file mode 100644 index 000000000..0c18656cd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_asinh/model.onnx @@ -0,0 +1,14 @@ + backend-test:M + +xy"Asinh +test_asinhZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asinh/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_asinh/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_asinh/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asinh/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_asinh/test_data_set_0/output_0.pb new file mode 100644 index 000000000..71224febc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_asinh/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðÉšª?ØÅÇ>%Ã]?,òÅ?(ÿ°?»~]¿§{X?ng¾ÄÓ½'ºÌ>Èþ>ý¥•?A³3?b”ø=cÜ>óѧ><‚˜?µ¢P¾ È>!H?‹Ö/¿…qÇ?´§•¿Ž\;=“>¾V=›?½–?¼ >AG½>½L¿®·¿\¸®¾Æt>!‚„?M=‚?©Á¾wƒ˜¾šPj¿Ü$“¿P馿ƒðµ?ÆÊú¾J­Ù¾µP†¿ã 7?LÏ ¿DcQû¾-s€¿˜Ö漎Õ>„ ˆ=¯˜˜>¤¿Õßµ¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asinh_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_asinh_example/model.onnx new file mode 100644 index 000000000..de019c6c0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_asinh_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:E + +xy"Asinhtest_asinh_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asinh_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_asinh_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_asinh_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_asinh_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fc85f0a2ab21860534427c027f026fb01b4fcf23 GIT binary patch literal 21 Zcmd;J7GQK@tn}j9yfAS;0}udddjK))1(yH- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atan/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_atan/model.onnx new file mode 100644 index 000000000..b98edadfa --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_atan/model.onnx @@ -0,0 +1,13 @@ + backend-test:K + +xy"Atan test_atanZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atan/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_atan/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_atan/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atan/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_atan/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d1e21981c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_atan/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJð# ‡?ãÂ>¯OF?V“?Ã"Š?ÆF¿Ü‚B?~Ò¾p¥Ò½æzÇ>4~>|êw?ÿˆ&?´ø÷=ßáÕ>¶ä¤>¦ {?ö4O¾W›>=õ4¿žF™¿Ã3?{6?¡r#¿zñ“?mìw¿ÖK;=Ê{=¾}#~?¦%y?j>Ó¹>ÓÜ9¿98¿±l«¾ËÐ>ðfc?0…`?…3½¾ŽN–¾× O¿u¿þ4…¿ûmŒ?jSñ¾¡fÓ¾H«e¿c.)?Í‚¿d¥V¾Aõ:¿(½>QËñ¾&8^¿ÇÎæ¼s3Ï>âˆ=Þb–>Ùµ¿t*²¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atan_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_atan_example/model.onnx new file mode 100644 index 000000000..e7fd45739 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_atan_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:C + +xy"Atantest_atan_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atan_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_atan_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atan_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_atan_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4a268e9929d84be7b02b53116e9192337915b553 GIT binary patch literal 21 Zcmd;J7GQK@tn}i!&F{IN0SJJ!Jpe0E1d{*& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atanh/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_atanh/model.onnx new file mode 100644 index 000000000..fc8f56681 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_atanh/model.onnx @@ -0,0 +1,14 @@ + backend-test:M + +xy"Atanh +test_atanhZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atanh/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_atanh/test_data_set_0/input_0.pb new file mode 100644 index 000000000..7a61135c2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_atanh/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJð  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atanh/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_atanh/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..35d5d654178793a3358cabaed22a9c866611b404 GIT binary patch literal 254 zcmV8K07QW zKeh3hJkFjtKMq$mKZsN~Kis(DKRX{)KN+pSK9}b2KK|ESKY{ypJ>3mXKgHNjKZCMb zK4`)OJ|{D$KG`P2J}K8FKN;olKD&t|K)<)qJ)sp@KJKC>KJ?p1KNFIKK2%--KZJIF EKDJ?QuK)l5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atanh_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_atanh_example/model.onnx new file mode 100644 index 000000000..d3dc0876b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_atanh_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:E + +xy"Atanhtest_atanh_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atanh_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_atanh_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7c32a2f1c99d56a6bc321c4499b4454c8558572c GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU|`q}#2{b~02xyPEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_atanh_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_atanh_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b2bac68eca18d98ba99db0cc82448b98054427b7 GIT binary patch literal 21 Zcmd;J7GQK@tn}guna{JI0SJJ!Jpd=<1S
“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_1d_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_1d_default/test_data_set_0/output_0.pb new file mode 100644 index 000000000..efcdf6ce4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_1d_default/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJôi‚Š?¤0?pÎ?nx@féã>`¼^¼¦yÌ>ËW¾Þ`>ý>§•L?¨Ç?vùá>Ç>´ Ç>Óói?\û$? ÿ\=Ð€Š¾° Ú¿˜s¿žOB?Piz=ˆC?T½Ð>>M4¿Îѽx<,?#À?DéO?åyˆ>Ú–·¿ •¿$)Ľh}1?à°›?P§Ð>‹°¾×è,¿ý¿È¿_ú=ºv8?4žò¾jnX¿,[s¾ÌÖ¾GÏi¿¹Ù ¿A1‚¾¨À}½X¿oº¿jàL>Ü\}>$ì<>Eè)¾Š?ÿ¾|¿¿¿†¢¿C½å½ó ‚¿äm¿ž—c¾jøÚ¾ùñÇ>´ªÛ>eZ"?@nC½°Õ¾µŸ¾$G¿Ž9¿fñã¾Â¾4ó ¿bU¾é.?Î ¿À’ļƕØ?`ÇÄ?ò´ÿ>3 ¿€‰¼ò¹¦>Ž»Ñ>Õ!7?C«?ìŸ*?h? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_ceil/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_ceil/model.onnx new file mode 100644 index 000000000..1d4c906ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_ceil/model.onnx @@ -0,0 +1,18 @@ + backend-test:¤ +N +xy" AveragePool* + ceil_mode * + kernel_shape@@ * +strides@@ test_averagepool_2d_ceilZ +x + + + + +b +y + + + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_ceil/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_ceil/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7ef45fc81625dc3cabe8ce37afaef887025d74ca GIT binary patch literal 79 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
^h=FDQD|I!AO>k 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/model.onnx new file mode 100644 index 000000000..cbdd71baf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/model.onnx @@ -0,0 +1,18 @@ + backend-test:¿ +W +xy" AveragePool* +count_include_pad * + kernel_shape@@ * +pads@@@@ *test_averagepool_2d_pads_count_include_padZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_pads_count_include_pad/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5309700dbf0ab051f17b8f0c485f1ae833dfc4f7 GIT binary patch literal 9424 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a92a50abd3ccfdbe4f88b2db6ae8e1c0e86220e9 GIT binary patch literal 115 zcmWN=p%Oqq7=_WhVQ2ohQ4~c{+?9+Zih>}DG(ivqLGXAU!6W$2%rR%qy!qg2x3;77 hM(LxHWDLxhvtY@JkqtZc95`|2!i_r*p1gSTNk4je5n})V literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/model.onnx new file mode 100644 index 000000000..9ce3ff966 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/model.onnx @@ -0,0 +1,18 @@ + backend-test:Ë +W +xy" AveragePool* +count_include_pad * + kernel_shape@@ * +pads@@@@ 6test_averagepool_2d_precomputed_pads_count_include_padZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb22a530a3c2daa0e26f9a6e3308004798ca90e8 GIT binary patch literal 115 zcmWN=p%H*E5Jka%f|-*kffDF|1c{;q1O*_Gkw_#m5{X1cQU;~)W_I1&yzwU3VB5Gz hxtA2d%)-i#N>X6Uj*$~*uFTwd@MPh|n-44B^aIW{6QBS9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_pads_count_include_pad/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..62b2add4cec1403deef0142226271fb861c6a005 GIT binary patch literal 115 zcmd;JO;w7_1MZrdov0 J(c|GQ2LR8PDsKP) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/model.onnx new file mode 100644 index 000000000..213d7ef4c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/model.onnx @@ -0,0 +1,19 @@ + backend-test:¿ +W +xy" AveragePool* +auto_pad" +SAME_UPPER * + kernel_shape@@ * +strides@@ *test_averagepool_2d_precomputed_same_upperZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb22a530a3c2daa0e26f9a6e3308004798ca90e8 GIT binary patch literal 115 zcmWN=p%H*E5Jka%f|-*kffDF|1c{;q1O*_Gkw_#m5{X1cQU;~)W_I1&yzwU3VB5Gz hxtA2d%)-i#N>X6Uj*$~*uFTwd@MPh|n-44B^aIW{6QBS9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_same_upper/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e8ff996ff8459c632131efcce907dea86a8f1227 GIT binary patch literal 51 xcmd;JX6Uj*$~*uFTwd@MPh|n-44B^aIW{6QBS9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_strides/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_averagepool_2d_precomputed_strides/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7b17d98ebc2ef9d709ec6390080681d9e8bb7b54 GIT binary patch literal 31 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�acocFCF&T@twZvY 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

WgpF2j)q%d(R=VcjE!j_P$Ak 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 AKBhx|1++{QAyUTo@t1yA)oAuJ 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

5P3>I3CIJ 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%0D>V&{{#*z3wfm^_R!$Mph=(5LEIji22Hhe_D%!o8 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 N}AbZ2Mf$i+w%SHYbypKh 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 z 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/model.onnx new file mode 100644 index 000000000..dc4608635 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/model.onnx @@ -0,0 +1,24 @@ + backend-test:° +9 +x +Wy"Conv* + kernel_shape@@ * +pads@@@@ test_basic_conv_with_paddingZ +x + + + + +Z +W + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..063e19140bb88b0f694bbad952a6f822e14fbd81 GIT binary patch literal 115 zcmW;7p%H*E5Jb^Ck(rYzffDF|1c{;q1O-GQPa=`XNF)-OQYeK#?EE)tYHGnk)KRx- hm47~PiQuSccp+INqC<~_84C&=I}V(vxNze^%O8lO5|;n~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_basic_conv_with_padding/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6d5f1a8b2114776d498339ed5a397226496cac8c GIT binary patch literal 51 bcmd;J i1;mShcoz^0I5RLv0OnL}%{L%k;RFCqF%{4N literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_basic_conv_without_padding/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_basic_conv_without_padding/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a77bc3463c2057416bde00b1f312ca6379e2c502 GIT binary patch literal 202 zcmd;J7UD@tOwLZtOVKS!EiSRz%*bWQ#aO|`7%s$Esl?)(pI4?O%EgnNT9lWX6JMN> zSdi+#?7+N$kzGrWi=`kjrPzT10)aw8@*p$flM;(FljD$5nq*BlpkM^pP5%8#8|1s?VO)i z=9yQLnx0xDBnDC*pOjdfnH--C6bGsSiAPBTbqk4ciEuCp32-rSFhVgikY)x+mSd4* h0!lJPiJ{rZ#>E0Ogdqv2sS>P-4aG#TCMPBVE&yRWCNBU0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_0.pb new file mode 100644 index 000000000..33cea0263 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ  diff --git a/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_1.pb new file mode 100644 index 000000000..53980d95d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BwJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6741b0981 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +B x_zero_pointJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_basic_convinteger/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f81e5d710a91899b37606a98aa72430f9294db0b GIT binary patch literal 31 hcmd;JL1PBEX0YU+IO5g+5p3pwC2CP5sc2U37W2rr7L8ZSSJ}JL|5SPEz zVoE-<>eD{iL76|j5%E7?*ET<8G{`?oaU4J5nqa@of6u>$=oG(vuL-}&E62Zw z7GJ&m*XO^plp(*@n{B`P&%QtUFi1WicJaPF`{zF<(-Od_wI)9tw2;3s07t(P*N#6j zbE`i@JL12WOxZqrZi_$sv&6pi*C9VZwhX_2XazrB=G{GM`Gr1cEo#4cwOc<{GQm9= zGQPi9M)SWioRPnMis8R(#*@BCB!)lV^nX6(9zZ>cAcVhLZq7b}9xuPflc7HfTL8f0 z|Ea!tnwP$x`3=A>=sUie+{iv1Z+AXg+|)hCUR1yJO8h(?5H!Z%|k3+w31OL9=%(=eKC5JvXFd@I&%kjR^wZXro#*IJjcQif%yKukd`E5U{ m35dUi>tesM?)5)fXzRXvWsAQY?|VPrV3fbgf#1IEE`dLhvHAo6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_1.pb new file mode 100644 index 000000000..d116d510b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BsJ ³ 6?þa:¿êV? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_2.pb new file mode 100644 index 000000000..04d874429 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BbiasJ =˜ž?ttä¿ÖÒK¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_3.pb new file mode 100644 index 000000000..735331ef9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_3.pb @@ -0,0 +1 @@ +BmeanJ ðD³¿fÆ<¾ž²¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_4.pb new file mode 100644 index 000000000..f583c0235 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/input_4.pb @@ -0,0 +1 @@ +BvarJ c»6=l¿L?W›= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5094ae41528ea6908fb602fda716f37f55b463af GIT binary patch literal 496 zcmVL1PBEX0YU+JO5g+2L)bu`-x)#k5J5nZinu`7U&%iz!(Tw~vGhN| z#KS<-+QDC|J+f;B+k)et}KM{huk*mppbu0ucG z=kdQ72<Ft&;+MS<4eh_&?-f95yu?6|5qLmM5>r4JBxgQj{)s>j#+yG!L)bt*b^jr{R+Md`Sm~fG{HdTK<$bE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/model.onnx new file mode 100644 index 000000000..53523e765 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/model.onnx @@ -0,0 +1,48 @@ + backend-test:Ó +p +x +s +bias +mean +vary output_mean +output_var"BatchNormalization* +epsilon +×#< * + training_mode $test_batchnorm_epsilon_training_modeZ +x + + + + +Z +s + + +Z +bias + + +Z +mean + + +Z +var + + +b +y + + + + +b + output_mean + + +b + +output_var + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d514241f1f5df0847e2f4e129444f7845e8335e5 GIT binary patch literal 496 zcmVL1PBEX0YU+IO5g+5p3pwC2CP5sc2U37W2rr7L8ZSSJ}JL|5SPEz zVoE-<>eD{iL76|j5%E7?*ET<8G{`?oaU4J5nqa@of6u>$=oG(vuL-}&E62Zw z7GJ&m*XO^plp(*@n{B`P&%QtUFi1WicJaPF`{zF<(-Od_wI)9tw2;3s07t(P*N#6j zbE`i@JL12WOxZqrZi_$sv&6pi*C9VZwhX_2XazrB=G{GM`Gr1cEo#4cwOc<{GQm9= zGQPi9M)SWioRPnMis8R(#*@BCB!)lV^nX6(9zZ>cAcVhLZq7b}9xuPflc7HfTL8f0 z|Ea!tnwP$x`3=A>=sUie+{iv1Z+AXg+|)hCUR1yJO8h(?5H!Z%|k3+w31OL9=%(=eKC5JvXFd@I&%kjR^wZXro#*IJjcQif%yKukd`E5U{ m35dUi>tesM?)5)fXzRXvWsAQY?|VPrV3fbgf#1IEE`dLhvHAo6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_1.pb new file mode 100644 index 000000000..d116d510b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BsJ ³ 6?þa:¿êV? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_2.pb new file mode 100644 index 000000000..04d874429 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BbiasJ =˜ž?ttä¿ÖÒK¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_3.pb new file mode 100644 index 000000000..735331ef9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_3.pb @@ -0,0 +1 @@ +BmeanJ ðD³¿fÆ<¾ž²¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_4.pb new file mode 100644 index 000000000..f583c0235 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/input_4.pb @@ -0,0 +1 @@ +BvarJ c»6=l¿L?W›= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_epsilon_training_mode/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7143658e3e97e7d4b2acce500d7aab04edacf04c GIT binary patch literal 496 zcmVL1PBEX0YU+JO5g+d|H(g&g%Lnd>ncAnAFDr90ir$-%t$}ZE6hH` z47NY6oXS7=j0!+cDl0(RD(63KIzB+&{2M^fT-`qHnzT|W)Q&Gr;Wcv(yG5=mm|P3 z(k#IK8Zy5m2?xO8eIme}O3S~toe#h-puN9{IL*BWmF~W71*yIRv9G@%NlQN6@btc4 zdGNn7!4JS5_sGAzpK38FvZ!+}3jSr@>d5DUNz^CrNHZp*(&5)#0b z9|XY9#2~;51IWJ+1>HVtFL=M;UogP-<^8{vz16=cF7LmX5OTlPXw|>5G~B;t&auD6 zek8!s4BfvAm7c%eZGgWvF=D?w`=`D(T93b!0DHfsmh-îœX?êÎ!> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/model.onnx new file mode 100644 index 000000000..bbdb6c742 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/model.onnx @@ -0,0 +1,35 @@ + backend-test:Î +. +x +s +bias +mean +vary"BatchNormalizationtest_batchnorm_exampleZ +x + + + + +Z +s + + +Z +bias + + +Z +mean + + +Z +var + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_0.pb new file mode 100644 index 000000000..51031034e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_1.pb new file mode 100644 index 000000000..be392c2f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BsJ ÙºÀ>*¹Œ¿­²˜> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_2.pb new file mode 100644 index 000000000..ffa575cc8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BbiasJ Ç©?3Ï1¿Ì9¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_3.pb new file mode 100644 index 000000000..03fea1b63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_3.pb @@ -0,0 +1 @@ +BmeanJ rÌÞ¾­´ì?‚,? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_4.pb new file mode 100644 index 000000000..93001374b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/input_4.pb @@ -0,0 +1 @@ +BvarJ Ç»y?î[?nì?< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0809e19c11690020bc336b2230140dcca8ecdecf GIT binary patch literal 496 zcmVL1PBEX0YU+JO5g+5hYCQxhSEP$!0ta*DHcE`4h=xLRF6N1TJ1kD zpSM3;__;qM3DZAF2*y8x`2s+dA>=>r@WelmsMJ4tNY6hI@&iCj|Fl0MN6tSJSCu~y zFp)qD@;N_}o%24kr5Hd--k87U&`v-$aJfHd-`qcN45Pj_>v+C0)Tlqo--bUCxg$XR z+IB#AQuRNaov1%R3n)DR^p`zaQTsnyV(vfAcAUU}G`+xcZ`QzC%U3`;?peSSP))#1 zcdo!1dJjGREjif_L`B3i%(8>qmM4h6t(R8qhEx#+*fiIu-h=x@Mv z2tdGVGoC*scdb8oR+m4bl~q43smDLbXRAMk^Kl+{0|zLGy5iorjelHxxzOvOLG zmi9kc#DYHtqS8MxnVmm?hLk^e#G*f$&aXexzQI44(KtXVdEGw2Aag$@3spdq^oPEV z{y)E%WYImk#M?iaqcK3h{(nA{y8S-@JWf4?x1c`?Sg$^kFp59F)hRzb&Avb9g&x1~ z7p*_;KZ8G--%CIa*0#WO2C%@qFDpNoai_q4h*m&$07<~z?18{b<5ED2“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_1.pb new file mode 100644 index 000000000..be392c2f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BsJ ÙºÀ>*¹Œ¿­²˜> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_2.pb new file mode 100644 index 000000000..ffa575cc8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BbiasJ Ç©?3Ï1¿Ì9¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_3.pb new file mode 100644 index 000000000..03fea1b63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_3.pb @@ -0,0 +1 @@ +BmeanJ rÌÞ¾­´ì?‚,? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_4.pb new file mode 100644 index 000000000..93001374b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/input_4.pb @@ -0,0 +1 @@ +BvarJ Ç»y?î[?nì?< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_batchnorm_example_training_mode/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..77cd8aabed707547c796b76dd9094c23c8f03e0e GIT binary patch literal 496 zcmVL1PBEX0YU+JO5g)EN&rCB5V=1gXV*W6$_zl`00Te*uVFut=G8yh zC7eG3te!vooVh;)qpLqaR`5UY{L4SXcB(&sTf0ARl(j#QZ1O*?Q<*>1f3!dJnQlK{ z^$0-6+>XC;L#n?NIGR4dbuhq&AA>(YZ2!LGP=>zKkO07J7#zQ~9#+3*?d3ko zi^o4$1IxXhbsWFI(AmEaFxJ1I7jnI1?i9XNJ>$N95evWAtscKtxVJu_W|_Y3myf<{ zIsd-2tv5Z)Ss1?zaACfjL(aaab#%QEkD0zQR`tHe+%CQx3`f0K=@h=|fT+Ehd#b*K zMTNc+(||uaJCQ$1<#InYBNIOyW34}E1dl(kHXT26S-d~31!+IX&Za*cP|82s*s4FZ z)89YctVTa4F1bHVEr36l*=#?YyM;fCzmq?02d6)U5Ia9e{;t24-E6<;!;L=@So^=y zDHy=Y9@D=E7mB{4h9W=o^}@d}D=@vY%h;kZ29Jl*O5A2C#yY@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli/model.onnx new file mode 100644 index 000000000..aab6c1257 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli/model.onnx @@ -0,0 +1,13 @@ + backend-test:E + +xy" Bernoullitest_bernoulliZ +x + +  + +b +y + +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli/test_data_set_0/input_0.pb new file mode 100644 index 000000000..b6d3af50c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ + + BxJP¨_Váá?3‡`ÏÔâæ?K‰nkÖIã?õ•cÛ®oá?öý)Û?[›‰!*«ä?ÒYaÊmÜ?÷:ˆg‰ì?63ISÖî?BÒKNŠØ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..49da0b5cf63be7b05930e57ea197f8ff3c2eaa18 GIT binary patch literal 89 hcmdQY%?n à> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..49da0b5cf63be7b05930e57ea197f8ff3c2eaa18 GIT binary patch literal 89 hcmd6BWOmtUHblNk>Zk57VgQ}Roba#G_{ zD+&_xQc_dm(@OJ_OEUBGBI1jH0{OX0fQY%?n à> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_double_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..49da0b5cf63be7b05930e57ea197f8ff3c2eaa18 GIT binary patch literal 89 hcmd7?5#aJO^Zk57VgQ!5G*^HNe% z;?qj=l1no4^CIGlfCBlsN`gUPIy5gcEx#z&Co?-$i;s&XBQrfil!2kaegPw+7B3fb zPJTI%%fJBQ@^G=HlvEa^N^mb=Wa292BEwdYV~t61YEy~L;&B@8s;^Sf|PEAb_WdMQ& qjEq9UAf@q1F!^|pWE4M09~Tz~2cr-R7ZV3p5>TKLS-^=&fFA%$Ef`S% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed/test_data_set_0/input_0.pb new file mode 100644 index 000000000..7faf960c6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ + +BxJ(  ?¦7?³N?w} ?HéØ>QY%?n à> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e4dd877fed3fcb2d1c171d07d159ba61141b7680 GIT binary patch literal 49 fcmd%5-e3;^f_??e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b8a5a8ddd9930cb26e14e50ccadbac00d7006351 GIT binary patch literal 439 zcmdFG@`;Ni9-h zcZV>z{J6+AM2N9ciN!gwxI~MSi>V|Z>>(i;eBl|z4{|jZ7Y7HU5DOO*2UikMpb}ZY IiAjJT0FHEw;{X5v literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..7faf960c6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ + +BxJ(  ?¦7?³N?w} ?HéØ>QY%?n à> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bernoulli_seed_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e4dd877fed3fcb2d1c171d07d159ba61141b7680 GIT binary patch literal 49 fcmd%5-e3;^f_??e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/model.onnx new file mode 100644 index 000000000..9525387dd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/model.onnx @@ -0,0 +1,17 @@ + backend-test:y +) +x +yz"BitShift* + direction"LEFT test_bitshift_left_uint16Z +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..57ba338287efd16f82bdaad9089c3cbac2a9466e GIT binary patch literal 15 Wcmd;J7GQB=tngwJU|?ZjWB>pQwE;i? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..fcbf693c8e5ee5ea024daef264ed99192b3c84e8 GIT binary patch literal 15 Wcmd;J7GQB=tn^}IWME=oW&i*SU;#1! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fedb77508a33cc2b2afb7642756691468aca056b GIT binary patch literal 15 Wcmd;J7GQB=tny-0U=U#7U;qFNWdUUX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/model.onnx new file mode 100644 index 000000000..a6398e0d2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/model.onnx @@ -0,0 +1,17 @@ + backend-test:y +) +x +yz"BitShift* + direction"LEFT test_bitshift_left_uint32Z +x + +  +Z +y + +  +b +z + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c01899b3abbceaa85319c42b141aeec63c86aa74 GIT binary patch literal 21 Zcmd;J7T|GWtnlIyU|?Wi0b)iV1^^TX0Zsq_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d58cf2893393d714913ed6f6edd472978fb0494c GIT binary patch literal 21 Zcmd;J7T|GWtn}hxWME)m0%B$$1^^RU0YCr% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..126ba2ba5230fc4f18134643bfe63df800432063 GIT binary patch literal 21 Zcmd;J7T|GWtn%VfU|?Vn0Adax1^^Xd0doKV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/model.onnx new file mode 100644 index 000000000..e1f04b61c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/model.onnx @@ -0,0 +1,17 @@ + backend-test:y +) +x +yz"BitShift* + direction"LEFT test_bitshift_left_uint64Z +x + +  +Z +y + +  +b +z + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4c69686334ab5040b154ddc8dfdfcd5a754ebaf3 GIT binary patch literal 33 Ycmd;J7T|SatniW$V1NJ?D9s3^0VLr8TL1t6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2b2b147a19473aa7731e82e85d6ffe55d2f5724b GIT binary patch literal 33 Ycmd;J7T|Satn`v#WPkuBD9sF|0V9L~O#lD@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..586fb01919726933550946c42f2a39858d0e62b4 GIT binary patch literal 33 Ycmd;J7T|Satn!jjV1NJtD9r(-0Vj_EfB*mh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/model.onnx new file mode 100644 index 000000000..120aabf90 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/model.onnx @@ -0,0 +1,17 @@ + backend-test:x +) +x +yz"BitShift* + direction"LEFT test_bitshift_left_uint8Z +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2381f5a6a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/input_1.pb new file mode 100644 index 000000000..a079f7460 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b98bfa686 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_left_uint8/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ  \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/model.onnx new file mode 100644 index 000000000..b345754cb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/model.onnx @@ -0,0 +1,17 @@ + backend-test:{ +* +x +yz"BitShift* + direction"RIGHT test_bitshift_right_uint16Z +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..57ba338287efd16f82bdaad9089c3cbac2a9466e GIT binary patch literal 15 Wcmd;J7GQB=tngwJU|?ZjWB>pQwE;i? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..fcbf693c8e5ee5ea024daef264ed99192b3c84e8 GIT binary patch literal 15 Wcmd;J7GQB=tn^}IWME=oW&i*SU;#1! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..73293c5640ea8dc161cda3cd0b34a0200990495f GIT binary patch literal 15 Wcmd;J7GQB=tny;xU|?imU;qFMi2*hM literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/model.onnx new file mode 100644 index 000000000..feebd1fa8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/model.onnx @@ -0,0 +1,17 @@ + backend-test:{ +* +x +yz"BitShift* + direction"RIGHT test_bitshift_right_uint32Z +x + +  +Z +y + +  +b +z + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c01899b3abbceaa85319c42b141aeec63c86aa74 GIT binary patch literal 21 Zcmd;J7T|GWtnlIyU|?Wi0b)iV1^^TX0Zsq_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d58cf2893393d714913ed6f6edd472978fb0494c GIT binary patch literal 21 Zcmd;J7T|GWtn}hxWME)m0%B$$1^^RU0YCr% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d545c52b6e6a195a961dc3f5404e3b934f0ed5c3 GIT binary patch literal 21 Ycmd;J7T|GWtn%XFU|?Wi1Y!^X028SJL;wH) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/model.onnx new file mode 100644 index 000000000..bf20f84ac --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/model.onnx @@ -0,0 +1,17 @@ + backend-test:{ +* +x +yz"BitShift* + direction"RIGHT test_bitshift_right_uint64Z +x + +  +Z +y + +  +b +z + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4c69686334ab5040b154ddc8dfdfcd5a754ebaf3 GIT binary patch literal 33 Ycmd;J7T|SatniW$V1NJ?D9s3^0VLr8TL1t6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2b2b147a19473aa7731e82e85d6ffe55d2f5724b GIT binary patch literal 33 Ycmd;J7T|Satn`v#WPkuBD9sF|0V9L~O#lD@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5260f807e2e6e4af4311fe177c6cbcd778121f32 GIT binary patch literal 33 Xcmd;J7T|Satn!lJV1NKdC=H_kBp(4$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/model.onnx new file mode 100644 index 000000000..820adac3d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/model.onnx @@ -0,0 +1,17 @@ + backend-test:z +* +x +yz"BitShift* + direction"RIGHT test_bitshift_right_uint8Z +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2381f5a6a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/input_1.pb new file mode 100644 index 000000000..a079f7460 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_bitshift_right_uint8/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..36087feb330d9c9c5170d200474b724794892285 GIT binary patch literal 12 Tcmd;J7GQE>tny;!U}OLQ2g(64 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/model.onnx new file mode 100644 index 000000000..078bbaf12 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/model.onnx @@ -0,0 +1,12 @@ + backend-test:r + +inputoutput"Cast* +to test_cast_BFLOAT16_to_FLOATZ +input +  + +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/test_data_set_0/input_0.pb new file mode 100644 index 000000000..e7fbb216d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJõ>õ>ÿ>Q?ð>Q?W>9?À€€€ÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_BFLOAT16_to_FLOAT/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..80a9fe87a0b212c841b48601d72afc38f95eabec GIT binary patch literal 64 zcmd;J=3o(EbYjadEh#81@iJgw_-Y5i|ABO%Jp;oBC>;)@ErI+4^$ZLRF#I0?)U^** literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/model.onnx new file mode 100644 index 000000000..c60a94b58 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/model.onnx @@ -0,0 +1,12 @@ + backend-test:p + +inputoutput"Cast* +to test_cast_DOUBLE_to_FLOATZ +input +   + +b +output +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2f262521e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/test_data_set_0/input_0.pb @@ -0,0 +1 @@ + BinputJ`RÖÜdú/Ô?\²™Š G×?þX'L ?â?Fþ Ü?ÌöÕ+ ï?€¨ãÔ›º?|3):y¼Ê?<¿ìOÊ¥Ä?’ÐSnCæä?z Pûí5Ð?4.Ì# ØÝ?¸åùyVIÏ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5f760bfd8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BoutputJ0Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/model.onnx new file mode 100644 index 000000000..4ae26ca15 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/model.onnx @@ -0,0 +1,14 @@ + backend-test:r + +inputoutput"Cast* +to + test_cast_DOUBLE_to_FLOAT16Z +input +   + +b +output +  + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_DOUBLE_to_FLOAT16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a1a2cd292a8c422a45a34b134da614a583f6e3d6 GIT binary patch literal 111 zcmV-#0FeI(0|*2V3ql2HZg6#UN?@#dXoVeF#6KvKmz9e_yg!K0MCqmgObgO?h~QgxIfg>vDR_W>OWvC8o%e6xIZRE RgX~ T8eRg~g7yp#X4)_)$k_t`D&!H? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/model.onnx new file mode 100644 index 000000000..da421a6e1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/model.onnx @@ -0,0 +1,12 @@ + backend-test:r + +inputoutput"Cast* +to test_cast_FLOAT_to_BFLOAT16Z +input +  + +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fc06bd1b5f4811cfe314ccf5d921457d7c0cf66a GIT binary patch literal 63 zcmd;J=3o(EbYjiSD=01TGT34I)o#PPuXdZR{kMC%A<+KJnGbe6EP?hH--X**3Rv1R NFdV37U}%8h{{R8I7%Tt) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5d313b3c5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_BFLOAT16/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BoutputJõ>õ>ÿ>Q?ð>Q?W>9?À€€€ÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/model.onnx new file mode 100644 index 000000000..e83e2181f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/model.onnx @@ -0,0 +1,12 @@ + backend-test:p + +inputoutput"Cast* +to  test_cast_FLOAT_to_DOUBLEZ +input +  + +b +output +   + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/test_data_set_0/input_0.pb new file mode 100644 index 000000000..a3a4dfd28 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJ0^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_DOUBLE/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ab6a834d8e1c5b2bfe43e42268abd65159ffdbb8 GIT binary patch literal 112 zcmd;J=3o)vc4EsfEh#81@k(G|U^tMi`^X+hKd71a7DPK_>u&kX0p;tj!Q$5g-h;)rPI?Izf6#FkEH3fug*^cB&LW@y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/model.onnx new file mode 100644 index 000000000..428d57ec4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/model.onnx @@ -0,0 +1,14 @@ + backend-test:q + +inputoutput"Cast* +to + test_cast_FLOAT_to_FLOAT16Z +input +  + +b +output +  + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/test_data_set_0/input_0.pb new file mode 100644 index 000000000..111154322 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJ0  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_FLOAT16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2fa7f21ce789dfb3c9ef0c0de663bc7184fbaac8 GIT binary patch literal 40 vcmd;J=3o)va$?IbEh#81@sdcf*lBsmBF5slnYJZ^xsvrZYh|-gD{Bh?(lrYD literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx new file mode 100644 index 000000000..46447c96d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/model.onnx @@ -0,0 +1,12 @@ + backend-test:p + +inputoutput"Cast* +to test_cast_FLOAT_to_STRINGZ +input +  + +b +output +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/test_data_set_0/input_0.pb new file mode 100644 index 000000000..4b0bb0708 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJ0 z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/test_data_set_0/output_0.pb new file mode 100644 index 000000000..8d2b65fc1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_FLOAT_to_STRING/test_data_set_0/output_0.pb @@ -0,0 +1,6 @@ +2 0.97676112 0.60484552 0.73926362 0.0391877932 +0.282806962 +0.120196562 0.29614022 +0.118727722 +0.317983182 +0.414262982 0.0641474952 0.6924721Boutput \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx new file mode 100644 index 000000000..d9c4180fb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/model.onnx @@ -0,0 +1,12 @@ + backend-test:p + +inputoutput"Cast* +to test_cast_STRING_to_FLOATZ +input +  + +b +output +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/test_data_set_0/input_0.pb new file mode 100644 index 000000000..fbe920e57 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/test_data_set_0/input_0.pb @@ -0,0 +1,7 @@ +2 +0.478925472 +0.480336672 +0.499684872 +0.819105452 +0.4703124820.8164682 +0.210871952 0.72290382NaN2INF2+INF2-INFBinput \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cast_STRING_to_FLOAT/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..20e739450902a13b964a86fb1bd145fcb9693ee0 GIT binary patch literal 64 zcmd;J=3o(EbYjadEh#81@iN$9`qgg3yRUYeuKl-rx*^d1%$W~%JS>6s7vF{3SqfO% OGcX*eXJBZ6;r{?0gcz;> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/model.onnx new file mode 100644 index 000000000..f3cc97f68 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/model.onnx @@ -0,0 +1,16 @@ + backend-test:‰ + +input +likeoutput"CastLiketest_castlike_BFLOAT16_to_FLOATZ +input +  + +Z +like + + +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/input_0.pb new file mode 100644 index 000000000..e7fbb216d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJõ>õ>ÿ>Q?ð>Q?W>9?À€€€ÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c739ea465af64fe0814bcf7ff2d122314f3d7c71 GIT binary patch literal 16 Xcmd;J6kv2>$;r%4^O literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..80a9fe87a0b212c841b48601d72afc38f95eabec GIT binary patch literal 64 zcmd;J=3o(EbYjadEh#81@iJgw_-Y5i|ABO%Jp;oBC>;)@ErI+4^$ZLRF#I0?)U^** literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b3598c7ca2f9e7b168b3dbd626219858b2e2cf68 GIT binary patch literal 172 zcmdI qOdQNW%n~KU#RAeR#KpzI!6?K66k|-1;DXvI1X9h2Q0>Gdzz+bYktc-! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..e7fbb216d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJõ>õ>ÿ>Q?ð>Q?W>9?À€€€ÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c739ea465af64fe0814bcf7ff2d122314f3d7c71 GIT binary patch literal 16 Xcmd;J6kv2>$;r%4^O literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_BFLOAT16_to_FLOAT_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..80a9fe87a0b212c841b48601d72afc38f95eabec GIT binary patch literal 64 zcmd;J=3o(EbYjadEh#81@iJgw_-Y5i|ABO%Jp;oBC>;)@ErI+4^$ZLRF#I0?)U^** literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/model.onnx new file mode 100644 index 000000000..363c44c5d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/model.onnx @@ -0,0 +1,16 @@ + backend-test:‡ + +input +likeoutput"CastLiketest_castlike_DOUBLE_to_FLOATZ +input +   + +Z +like + + +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2f262521e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/input_0.pb @@ -0,0 +1 @@ + BinputJ`RÖÜdú/Ô?\²™Š G×?þX'L ?â?Fþ Ü?ÌöÕ+ ï?€¨ãÔ›º?|3):y¼Ê?<¿ìOÊ¥Ä?’ÐSnCæä?z Pûí5Ð?4.Ì# ØÝ?¸åùyVIÏ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1cc9eb8c8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BlikeJÓ¡> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5f760bfd8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BoutputJ0Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/model.onnx new file mode 100644 index 000000000..ead7aa56c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/model.onnx @@ -0,0 +1,18 @@ + backend-test:‰ + +input +likeoutput"CastLiketest_castlike_DOUBLE_to_FLOAT16Z +input +   + +Z +like + + + +b +output +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a1a2cd292a8c422a45a34b134da614a583f6e3d6 GIT binary patch literal 111 zcmV-#0FeI(0|*2V3ql2HZg6#UN?@#dXoVeF#6KvKmz9e_yg!K0MCqmgObgO?h~QgxIfg>vDR_W>OWvC8o%e6xIZRE RgXnjNHrHiwG)#7KLD_BC!PQR literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT16_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a1a2cd292a8c422a45a34b134da614a583f6e3d6 GIT binary patch literal 111 zcmV-#0FeI(0|*2V3ql2HZg6#UN?@#dXoVeF#6KvKmz9e_yg!K0MCqmgObgO?h~QgxIfg>vDR_W>OWvC8o%e6xIZRE RgX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2f262521e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ + BinputJ`RÖÜdú/Ô?\²™Š G×?þX'L ?â?Fþ Ü?ÌöÕ+ ï?€¨ãÔ›º?|3):y¼Ê?<¿ìOÊ¥Ä?’ÐSnCæä?z Pûí5Ð?4.Ì# ØÝ?¸åùyVIÏ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1cc9eb8c8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BlikeJÓ¡> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5f760bfd8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_DOUBLE_to_FLOAT_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BoutputJ0Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/model.onnx new file mode 100644 index 000000000..bf61a448b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/model.onnx @@ -0,0 +1,17 @@ + backend-test:‰ + +input +likeoutput"CastLiketest_castlike_FLOAT16_to_DOUBLEZ +input +  + + +Z +like + +  +b +output +   + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/test_data_set_0/input_0.pb new file mode 100644 index 000000000..1454185c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ + +BinputJæ8ï8;t9Á5þ6•9µ+V9]9»2 0 \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a01a391921a2e81278e2575c06ff6f20a4618167 GIT binary patch literal 20 Ycmd;J6ySDZ$;r%4_2OUvffnjNHsS?wG)#7KLD=UC!hcT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..1454185c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ + +BinputJæ8ï8;t9Á5þ6•9µ+V9]9»2 0 \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_DOUBLE_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a01a391921a2e81278e2575c06ff6f20a4618167 GIT binary patch literal 20 Ycmd;J6ySDZ$;r%4_2OUvff$;r%4^~ T8eRg~g7yp#X4)_)$k_t`D&!H? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT16_to_FLOAT_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..18f1e659f1369c848fb93fa78f2b4ca81bc72eec GIT binary patch literal 171 zcmd#hRH{P+B6ymS0)|q?K5l6N^i$;r%4^~ T8eRg~g7yp#X4)_)$k_t`D&!H? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/model.onnx new file mode 100644 index 000000000..2ddf9e195 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/model.onnx @@ -0,0 +1,16 @@ + backend-test:‰ + +input +likeoutput"CastLiketest_castlike_FLOAT_to_BFLOAT16Z +input +  + +Z +like + + +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fc06bd1b5f4811cfe314ccf5d921457d7c0cf66a GIT binary patch literal 63 zcmd;J=3o(EbYjiSD=01TGT34I)o#PPuXdZR{kMC%A<+KJnGbe6EP?hH--X**3Rv1R NFdV37U}%8h{{R8I7%Tt) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/input_1.pb new file mode 100644 index 000000000..d3235bb24 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BlikeJõ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5d313b3c5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BoutputJõ>õ>ÿ>Q?ð>Q?W>9?À€€€ÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..8403d07fd98ee080e0f567b3f3e904ce7ef80b0f GIT binary patch literal 172 zcmdGdzz+bilP9A9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fc06bd1b5f4811cfe314ccf5d921457d7c0cf66a GIT binary patch literal 63 zcmd;J=3o(EbYjiSD=01TGT34I)o#PPuXdZR{kMC%A<+KJnGbe6EP?hH--X**3Rv1R NFdV37U}%8h{{R8I7%Tt) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..d3235bb24 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BlikeJõ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5d313b3c5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_BFLOAT16_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BoutputJõ>õ>ÿ>Q?ð>Q?W>9?À€€€ÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/model.onnx new file mode 100644 index 000000000..c3489a1b6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/model.onnx @@ -0,0 +1,16 @@ + backend-test:‡ + +input +likeoutput"CastLiketest_castlike_FLOAT_to_DOUBLEZ +input +  + +Z +like + +  +b +output +   + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/input_0.pb new file mode 100644 index 000000000..a3a4dfd28 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJ0^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..9d880ecb0e3e7419d2c40991143db23276280aff GIT binary patch literal 20 bcmd;J6ySDZ$;r%4_2OV)U^tMi`^X*uCb$IK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ab6a834d8e1c5b2bfe43e42268abd65159ffdbb8 GIT binary patch literal 112 zcmd;J=3o)vc4EsfEh#81@k(G|U^tMi`^X+hKd71a7DPK_>u&kX0p;tj!Q$5g-h;)rPI?Izf6#FkEH3fug*^cB&LW@y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f5064b546b9a9cf05d1f60746e3146b012908f54 GIT binary patch literal 170 zcmdÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..9d880ecb0e3e7419d2c40991143db23276280aff GIT binary patch literal 20 bcmd;J6ySDZ$;r%4_2OV)U^tMi`^X*uCb$IK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_DOUBLE_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ab6a834d8e1c5b2bfe43e42268abd65159ffdbb8 GIT binary patch literal 112 zcmd;J=3o)vc4EsfEh#81@k(G|U^tMi`^X+hKd71a7DPK_>u&kX0p;tj!Q$5g-h;)rPI?Izf6#FkEH3fug*^cB&LW@y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/model.onnx new file mode 100644 index 000000000..43fc912b1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/model.onnx @@ -0,0 +1,18 @@ + backend-test:ˆ + +input +likeoutput"CastLiketest_castlike_FLOAT_to_FLOAT16Z +input +  + +Z +like + + + +b +output +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/input_0.pb new file mode 100644 index 000000000..111154322 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJ0  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/input_1.pb new file mode 100644 index 000000000..5b8b689b7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ + +BlikeJd8 \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2fa7f21ce789dfb3c9ef0c0de663bc7184fbaac8 GIT binary patch literal 40 vcmd;J=3o)va$?IbEh#81@sdcf*lBsmBF5slnYJZ^xsvrZYh|-gD{Bh?(lrYD literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..fce76c7e48321d6da87dc8388ad1c00b7344df4e GIT binary patch literal 171 zcmd#hRH{P+B6ymS0)|q?K5l6N^iQY%?n à>~®J?¨e? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..5b8b689b7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ + +BlikeJd8 \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_FLOAT16_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2fa7f21ce789dfb3c9ef0c0de663bc7184fbaac8 GIT binary patch literal 40 vcmd;J=3o)va$?IbEh#81@sdcf*lBsmBF5slnYJZ^xsvrZYh|-gD{Bh?(lrYD literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/model.onnx new file mode 100644 index 000000000..be377f75f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/model.onnx @@ -0,0 +1,16 @@ + backend-test:‡ + +input +likeoutput"CastLiketest_castlike_FLOAT_to_STRINGZ +input +  + +Z +like + + +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/input_0.pb new file mode 100644 index 000000000..4b0bb0708 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJ0 z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/input_1.pb new file mode 100644 index 000000000..796cde003 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +2 0.9767611Blike \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/output_0.pb new file mode 100644 index 000000000..8d2b65fc1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING/test_data_set_0/output_0.pb @@ -0,0 +1,6 @@ +2 0.97676112 0.60484552 0.73926362 0.0391877932 +0.282806962 +0.120196562 0.29614022 +0.118727722 +0.317983182 +0.414262982 0.0641474952 0.6924721Boutput \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..24fdcc07bcd258f664a76da520a97f0aa31be5f4 GIT binary patch literal 170 zcmd)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..796cde003 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +2 0.9767611Blike \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..8d2b65fc1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_FLOAT_to_STRING_expanded/test_data_set_0/output_0.pb @@ -0,0 +1,6 @@ +2 0.97676112 0.60484552 0.73926362 0.0391877932 +0.282806962 +0.120196562 0.29614022 +0.118727722 +0.317983182 +0.414262982 0.0641474952 0.6924721Boutput \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/model.onnx new file mode 100644 index 000000000..c3e70b808 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/model.onnx @@ -0,0 +1,16 @@ + backend-test:‡ + +input +likeoutput"CastLiketest_castlike_STRING_to_FLOATZ +input +  + +Z +like + + +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/input_0.pb new file mode 100644 index 000000000..fbe920e57 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/input_0.pb @@ -0,0 +1,7 @@ +2 +0.478925472 +0.480336672 +0.499684872 +0.819105452 +0.4703124820.8164682 +0.210871952 0.72290382NaN2INF2+INF2-INFBinput \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/input_1.pb new file mode 100644 index 000000000..7cb044382 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BlikeJ¸5õ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..20e739450902a13b964a86fb1bd145fcb9693ee0 GIT binary patch literal 64 zcmd;J=3o(EbYjadEh#81@iN$9`qgg3yRUYeuKl-rx*^d1%$W~%JS>6s7vF{3SqfO% OGcX*eXJBZ6;r{?0gcz;> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7014726d5992b2eb2e74a30c4e926b0962f86ed3 GIT binary patch literal 170 zcmd \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_castlike_STRING_to_FLOAT_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..20e739450902a13b964a86fb1bd145fcb9693ee0 GIT binary patch literal 64 zcmd;J=3o(EbYjadEh#81@iN$9`qgg3yRUYeuKl-rx*^d1%$W~%JS>6s7vF{3SqfO% OGcX*eXJBZ6;r{?0gcz;> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_ceil/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_ceil/model.onnx new file mode 100644 index 000000000..c81b74af7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_ceil/model.onnx @@ -0,0 +1,13 @@ + backend-test:K + +xy"Ceil test_ceilZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_ceil/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_ceil/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_ceil/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_ceil/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_ceil/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ca539550e67166d43dd823ebf4743f89ee225851 GIT binary patch literal 254 zcmZXOOAdfA2t*-j(xo@Dap{fRaWg$qk08URA#p*<(0K!GX=~edKKZ@|6HzCU!>el# zP2w7F_V841GC%+8tofBkraUE2b69^2))VdfsVyA7qIs APyhe` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_ceil_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_ceil_example/model.onnx new file mode 100644 index 000000000..e8f6661ac --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_ceil_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:C + +xy"Ceiltest_ceil_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_ceil_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_ceil_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b9a2ac3d787b2979a673872ececa7b4d7564ff93 GIT binary patch literal 17 Ycmd;J5@2*@~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_celu/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_celu/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..8da707e2944d9cc18792167a6370cc782956cac7 GIT binary patch literal 122 zcmd;J7vf1uOwLZtOVKS!EiSQ2;gaQIj1XdsRAO;X%_-I5=VDFFDac3^Wnf@%Sis0A n#0gRspA3|Xk_M?1;}YRu6cXTK;$TL?j7dPrNL-RmOaeRr`xg@Z literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_celu/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_celu/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb4a0b06b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_celu/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ +BXJlNX??šo=¦èî<Á>‚Š?9žK?2îp?ldt?š5>ç€ì>t”‡>¸,?øjˆ<[î?Ìl?Uäx?¹õ=W¾Ó>B¶i?â?š½Q?]HI?î¨ñ=©F1?³‹ +?íÞ™= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_celu/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_celu/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a5ae597db --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_celu/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +BYJlNX??šo=¦èî<Á>‚Š?9žK?2îp?ldt?š5>ç€ì>t”‡>¸,?øjˆ<[î?Ìl?Uäx?¹õ=W¾Ó>B¶i?â?š½Q?]HI?î¨ñ=©F1?³‹ +?íÞ™= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..975254a868c59fdbf329265035adb59915e1ab2d GIT binary patch literal 468 zcmd;J7vf1uOwLZtOVKS!EiSRz%gp5|r0SfSQyLHA$0vhWsTBo@c`2zW@oA-b$t9Wj zd5Jj%8Hq|9&iQ%8C5d?@T4G$RWr;bZsajkdi~@{GEDQ_`4htArxFWb1Be;k&O-P-P zr4jKEYnfd#%eb<+h*dA7MaW=RpcjKui%WA#l$e2REq*RmuuY;23=Q@R7#X>uiSz>( w304U)Mk+D;mgWcvVTN;*G%(zR#JEH_7=;A5m^he`Fk=!>G7^`h6O#ZB08Gb|F8}}l literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb4a0b06b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ +BXJlNX??šo=¦èî<Á>‚Š?9žK?2îp?ldt?š5>ç€ì>t”‡>¸,?øjˆ<[î?Ìl?Uäx?¹õ=W¾Ó>B¶i?â?š½Q?]HI?î¨ñ=©F1?³‹ +?íÞ™= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a5ae597db --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_celu_expanded/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +BYJlNX??šo=¦èî<Á>‚Š?9žK?2îp?ldt?š5>ç€ì>t”‡>¸,?øjˆ<[î?Ìl?Uäx?¹õ=W¾Ó>B¶i?â?š½Q?]HI?î¨ñ=©F1?³‹ +?íÞ™= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_clip/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..428ad94c5dc1b46abe31a3fa30353fb65ad487f9 GIT binary patch literal 137 zcmd;J6XHoqOwLZtOVKS!EiSPt<`Uy#tl(nK&CCN5i4{VOl}aqmIhh4QoFMu5WFRw2 z9H>M{h)aNjQHY0&iGvx4S%8=|iWjU=h>eQ{D8&Hg0*!!jlYrVPv1xN+65s&“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d79b11f35035e698c9e2a7cec1efadacc7348741 GIT binary patch literal 13 UcmWe&bYjlU%=2PlU})G601=A=C;$Ke literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..cafe4fc04b03fe3f4616ccbdfd9a0bad7cdf294f GIT binary patch literal 13 UcmWe&bYjj;tngxCU}&%h01*)assI20 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..988707f17da4a8853c6bf6e231470efaa93be2be GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8$iUEGpYiaF-Q>P1dk`ChAL&)?|8G%jpY&I1Uq;I1y+153 z*=aNg+kxcbE<4#DF!*W9?ey3#_WCNY7?WtwzD%zLcC5>y_5;=I?+I47-{>7{-~P`Q z#0QzV-y_%BR$;CEJ}BS5Yn7Z`>%4<@Z(WnYdb$-i?fWFD05%V#X0!jXeYwYHfz*TL zp|t(P3a0&T-Veayb2#0>W>3EnxzEQob-$RzF*}7LOknld_nz$u^t)}RXVqal^X@FW N_eo0o&35kG2LP{(VR--m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_inbounds/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_inbounds/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..0a61e485e44b94c8781e2e8cb347ac3ab82e1c8b GIT binary patch literal 102 zcmd;J6XHoqOwLZtOVKS!EiSPN;1b|stl(ncVi01iRAO-g5JT9wSb$OtNkDa#*wi^O H3Ge^_%?KJV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..631490bccac9e9a3950c885c169270cc74dcda45 GIT binary patch literal 73 zcmd;J=3wDq6<~H^tnjj7U|{$UMnDE5kOcxD0Y*kfAi=;0766ir|Nn#d3?Ol+C<6eU C^9p?c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..615a8146da9bad6aaab627211674474384525dc9 GIT binary patch literal 10 RcmWe&c4E#=tngxF000Ud0qOt% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_max/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9d5ad395e4fac65583cd081123d9a817d9a0b11e GIT binary patch literal 73 qcmd;J=3wDq6<~H^tn{*BU|{$UMnDFL1*O0&C>JXDA0`dq14#g!`wDRY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_min/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_int8_min/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..dc79de71ae6d845c900913d1be819e1dac99b84f GIT binary patch literal 134 zcmd;J6XHoqOwLZtOVKS!EiSPt;1c9wtl(nK&CC;GtW;ug&dDqgk^)J^Cj*)BDXD3R zr8y<>nRz7^@jyjU;y~p>LR B7(D<0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/input_0.pb new file mode 100644 index 000000000..96a2566e7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2d8f7a33a256131e63429cbbbbadc987e1143bb9 GIT binary patch literal 13 ScmWe&bYjj;tngxC00ICH(gEuL literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_max/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..60eb82bd6c5030a37e72e94cc113aabbd100ebce GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W87^kMQKT3SZzG$t0{a3!-+0Ot3*4xhR3tx2s%--sf0j5FX zFmQ}-9$0L5J^Y&^&)1NPeO6RJi&@i;uwBAUSh8i+wqKonSH3+;d>{ xAaOz+=-*?Hu*#O_1IVJ!A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..24ff6ef308c1434b7a59dd9f2bd80c71859e5da5 GIT binary patch literal 129 zcmd;J6XHoqOwLZtOVKS!EiSRj<`U#$tl(nK&CC;GtW;ug&dDqg5(P=cCj*)BDXD3R zr8y<>K=~+fph_VjE&&ckAs#L!4rU-`0b“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c2bfba0c42cd89323cd466c035177947dff8af9d GIT binary patch literal 13 ScmWe&bYjlU%=2Pl00ICH%mL{D literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_default_min/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9210c945eb811d99d4a992bbc612942ba0b7b898 GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8SaIf|ea6Exc9Z+6>`!O$JE-uyw`Tx?{}#ny8pQr#dC5+r zLD+7Q>Mr}Z%TD$O41U^jJ3Y3Gy}ruskL`Z2x=gPHb|AGN&=ag~ztKAuEWXlN&;cao zk!x)WqGgPZ*nbw@W8bw(&aQRdLAV}}+$Tu|JFTj@_EVqFgxd`ghXJO|KT*WzaJr-L X#UzfQm>1}G+fL7_!*=G~S#WUxU@$nc literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_clip_example/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..17bcddd2fea61246ae7f9b82eba477f1405fd427 GIT binary patch literal 129 zcmd;J6XHoqOwLZtOVKS!EiSRj<`Uy#tl(nK&CCN5i4{VOl}aqmIhh4Qf*|?$WFRv> zwIVUMASX47AE;D_i;IJUQHX_$iGw+c7pzf;jf({+!~o_3jev5KfXXY8l{+yB@BjeY CSQ$D1 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a0ab4543ff3ed7e2b9678ec07f93aac8d069c7be GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU|=`^#30}R02y5ZE&u=k literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d79b11f35035e698c9e2a7cec1efadacc7348741 GIT binary patch literal 13 UcmWe&bYjlU%=2PlU})G601=A=C;$Ke literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..cafe4fc04b03fe3f4616ccbdfd9a0bad7cdf294f GIT binary patch literal 13 UcmWe&bYjj;tngxCU}&%h01*)assI20 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c0b9013e475b1396e35d33adc5c1a3f1a21b39bd GIT binary patch literal 21 Ycmd;J7GQK@tn}hxU})IS00s^A03TulEdT%j literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2de5a5359a7fb1477dad9cbe043c158996c55fd6 GIT binary patch literal 130 zcmd;J6XHoqOwLZtOVKS!EiSRj;S%Fwtl(nK&CCN5i4{VOl}aqmIhh4QLLmA0WFRv> zGcPH>G%uw%iXW&}h>MGZgHecui;06diWjU?h>eQ{D8vBf0?mMOlYq)Ak(E0!3Ge^_ D4mlaJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..aaaeb640f5b7e72bb1de70d629731f216076c49b GIT binary patch literal 13 UcmWe&bYjlU%=2PlU|4Vf01?asNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5cfc885b73bf5fbeeab08aea8f32aac74ec00e3d GIT binary patch literal 13 UcmWe&bYjj;tngxCU|8S)01;9G%K!iX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_inbounds/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c0b9013e475b1396e35d33adc5c1a3f1a21b39bd GIT binary patch literal 21 Ycmd;J7GQK@tn}hxU})IS00s^A03TulEdT%j literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2b14afd51a89c9cd08ffbb186d188baea9e8becf GIT binary patch literal 131 zcmd;J6XHoqOwLZtOVKS!EiSRj zzqBMNzceqUIEo*rScr>@gM(3sg^P)UIf@soRfvs?1t`P-<^m0Ya+83{E0L8uF$wSh E07VNLH2?qr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9c5dc72d46c699f1f147ae85634b645f07da9966 GIT binary patch literal 21 Zcmd;J7GQK@tnlJtU^sAq0Spc}001Ig1Fir7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..aaaeb640f5b7e72bb1de70d629731f216076c49b GIT binary patch literal 13 UcmWe&bYjlU%=2PlU|4Vf01?asNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5cfc885b73bf5fbeeab08aea8f32aac74ec00e3d GIT binary patch literal 13 UcmWe&bYjj;tngxCU|8S)01;9G%K!iX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_outbounds/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..75f56e1fe516da83b85c6cd2b07f97d63d34f7f1 GIT binary patch literal 21 Zcmd;J7GQK@tn}hxU|4W~0Sp#6001ED18)ET literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3819a20361e69ef8efbf8728d256a34cf1da8e4c GIT binary patch literal 133 zcmd;J6XHoqOwLZtOVKS!EiSRj=Mv*$tl(nK&CCN5i4{VOl}aqmIhh4Qq9FPBWFRxX zxF9F9Bq_f%FQqt&AE;c2i;IJUQHX_$iGw+c7pz%`jf({+!~o_3je&BLfXXY8l{+yB G@Bjd&cN+}= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ff367a29bdd7c5916e15d8a5dee3833301f907b8 GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00svf03Xx?Z2$lO literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..aaaeb640f5b7e72bb1de70d629731f216076c49b GIT binary patch literal 13 UcmWe&bYjlU%=2PlU|4Vf01?asNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5cfc885b73bf5fbeeab08aea8f32aac74ec00e3d GIT binary patch literal 13 UcmWe&bYjj;tngxCU|8S)01;9G%K!iX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_clip_splitbounds/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0123d928f381c3d3338faf42f39852fdfd57de94 GIT binary patch literal 21 Ycmd;J7GQK@tn}hxU})IS00s*j03V|RP5=M^ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_compress_0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..137b6b2275857d07f55fe5bd0fd360d12bdb9b78 GIT binary patch literal 167 zcmd;J7UD@tOwLZtOVKS!EiSQ|z{q9D#hRH{P+G#pnVg@Ol39|OpC`nYUs?hbQsQvV z&n+lQEiTsL=3+^#$Sjs%Sis06#1GONpA40YH;594njyr;#lyiU#KFbH!3@MqKnWyM cxwtquIE7e1l1UO=P&<&cFoCoOV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_0/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_0/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c8d8c4f2ff2646c8de8405c807a210f2d5baaabd GIT binary patch literal 20 bcmd;J7T|Q^OwP|s$t=mt&+}qtU}OXUE@A|R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_0/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..787c92554c62e72f7999a1a5ccf3bc417c3ab1cb GIT binary patch literal 32 kcmd;J;$RYBbYjadEh#81@e*KQaByH?XaM2`KzzUf0APd$nE(I) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_compress_1/model.onnx new file mode 100644 index 000000000..39ded1659 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_compress_1/model.onnx @@ -0,0 +1,17 @@ + backend-test: +1 +input + conditionoutput"Compress* +axis test_compress_1Z +input +  + +Z + condition + +  +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4013bc6a67bcb6c381a2cf6d4cca4546f1d465fb GIT binary patch literal 39 ocmd;J=3o+FbYjiSD=01Tl3-wHuxDUkZ~!78ZUEv1KzzUf0D%t&9{>OV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c00e46c023c828aa9f6566a39ef6d9d2e1f9599d GIT binary patch literal 19 acmd;J65w>=OwP|s$t=mt&+}qpU<3du#{`1_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..695a73bc17cea9040a1a8d817dd2bc28c020d4b6 GIT binary patch literal 28 hcmd;J=3o?HbYjadEh#81@#0}%U~phyXaM2^4gf{&1$6)b literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/model.onnx new file mode 100644 index 000000000..5a705d298 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/model.onnx @@ -0,0 +1,16 @@ + backend-test:Š +$ +input + conditionoutput"Compresstest_compress_default_axisZ +input +  + +Z + condition + +  +b +output + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4013bc6a67bcb6c381a2cf6d4cca4546f1d465fb GIT binary patch literal 39 ocmd;J=3o+FbYjiSD=01Tl3-wHuxDUkZ~!78ZUEv1KzzUf0D%t&9{>OV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0b6c330c0ce1ae0db7495b76c1680cead14d8fa7 GIT binary patch literal 22 dcmd;J72tH@OwP|s$t=mt&+}qsU}Rum1OPXp1d0Fv literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_default_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..70260a63509e799cb9231acf47db1e705364f07b GIT binary patch literal 22 dcmd;J5@2*<%P%b{C@t~gU|?WyU|?9_001$B1cv|s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/model.onnx new file mode 100644 index 000000000..74471faf6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/model.onnx @@ -0,0 +1,17 @@ + backend-test:¥ +: +input + conditionoutput"Compress* +axisÿÿÿÿÿÿÿÿÿ test_compress_negative_axisZ +input +  + +Z + condition + +  +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4013bc6a67bcb6c381a2cf6d4cca4546f1d465fb GIT binary patch literal 39 ocmd;J=3o+FbYjiSD=01Tl3-wHuxDUkZ~!78ZUEv1KzzUf0D%t&9{>OV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c00e46c023c828aa9f6566a39ef6d9d2e1f9599d GIT binary patch literal 19 acmd;J65w>=OwP|s$t=mt&+}qpU<3du#{`1_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_compress_negative_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..695a73bc17cea9040a1a8d817dd2bc28c020d4b6 GIT binary patch literal 28 hcmd;J=3o?HbYjadEh#81@#0}%U~phyXaM2^4gf{&1$6)b literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1db8fcbddb657c5f3c5d4c0d37598bbd9f4313f7 GIT binary patch literal 159 zcmd;J7UD@tOwLZtOVKS!EiSR@VC2%}Vk=9`DNQwi(uP88`K2WVr6o#i&iQ%Ci6vUx zTr7zdnZ*(e3mBP%L_zxElfg3ahAHtNnRtUJ5tu1LTwEL+j6y72OdL#bQA1?WB%oS| M4M?IaPD}!v0B}nsI{*Lx literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_0/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_0/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..956756d6d41ba44fc34cf5871a1f57f611b38c04 GIT binary patch literal 22 dcmd;J5@2*XF$J&y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_negative_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_negative_1/model.onnx new file mode 100644 index 000000000..86a9389c8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_negative_1/model.onnx @@ -0,0 +1,17 @@ + backend-test:š +6 +value0 +value1output"Concat* +axisÿÿÿÿÿÿÿÿÿ test_concat_1d_axis_negative_1Z +value0 + + +Z +value1 + + +b +output + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_negative_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_1d_axis_negative_1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..956756d6d41ba44fc34cf5871a1f57f611b38c04 GIT binary patch literal 22 dcmd;J5@2*XF$J&y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..24db1731bcd76dc08be7d8b4fc343046e45e383e GIT binary patch literal 171 zcmd;J7UD@tOwLZtOVKS!EiSQ|!pNn|#a5P>Q<`c3r45DH@=Hq!N=ua3ob&UN6HBzX zxmXe_GK(b`7BDgiiGuXSCxd0;jZ)%4GVumc5-?MQ__%mD7=<{vm^hd~7%pRoE|Ub* Q1F;E7h6SX@iAjJH02$0Bx&QzG literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c04418c91b063cf93c8961eb3ab634f613160543 GIT binary patch literal 32 kcmd;J;$RYBbYd$@%qdMZ@DgBPXs~BsU~m8;AZ~B~091elQ~&?~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..13e244f121a8d33cfa618fb65d3b6134a7bb232c GIT binary patch literal 32 kcmd;J;$RYBbYd$@%qdMZ^b%lTSm40GZ~%xO05O9j0AQg8R{#J2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_0/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..def8bc4946e3abda80e651a7f53442f754b85623 GIT binary patch literal 48 ucmd;J;b0PAbYjadEh#81@ls%5Xs~BsU~m8;AZ`HS1wecNh#vqkgChXerU?rG literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/model.onnx new file mode 100644 index 000000000..93863e324 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/model.onnx @@ -0,0 +1,17 @@ + backend-test:” +- +value0 +value1output"Concat* +axis test_concat_2d_axis_1Z +value0 +  + +Z +value1 +  + +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c04418c91b063cf93c8961eb3ab634f613160543 GIT binary patch literal 32 kcmd;J;$RYBbYd$@%qdMZ@DgBPXs~BsU~m8;AZ~B~091elQ~&?~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..13e244f121a8d33cfa618fb65d3b6134a7bb232c GIT binary patch literal 32 kcmd;J;$RYBbYd$@%qdMZ^b%lTSm40GZ~%xO05O9j0AQg8R{#J2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_2d_axis_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1260354451383b082d43efa6482658a7f9cc3ddc GIT binary patch literal 48 wcmd;J;$RVAbYjadEh#81@ls%5Xs~BsU~phySOCNafYQ<`c3r45DH@=Hq!N=ua3ob&UN6HBzX zxmXe_GK(b`7BDgiiGuXSCxd0;jZ@-5GVumcGB8twgt!Da7=?Jam^heV7%ppwO*RRr Q7h)rlEDKDp6O#ZZ0LqRgIRF3v literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..91bb523483d71aee2c7df9aeed6fd3df41361cd0 GIT binary patch literal 50 vcmd;J;s8PcMklti#GKMp11|*zh6Z~E1_lQp0^$ZBUI4@gfcOCrGdKbO%0&pT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1b71b8473093b0d0b0778b5a9d986cbaf3cc9068 GIT binary patch literal 50 ucmd;J;s8PcMklti#GKMpLoWpe1_4I~1_dBC0AdFq4glf=AT9vn21fv~d{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_0/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d3ffbb59418c7cdf72ba491325b951dd1ab1107e GIT binary patch literal 82 zcmd;J;b7um5@2*<%P%b{C@t}FU|?vlXJB9e(heXt5HA4Y13>%$h#4Fi7zBV=0f-HN R*a3(GfH(n&3xK%65db@M4SfIr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/model.onnx new file mode 100644 index 000000000..51379ca94 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/model.onnx @@ -0,0 +1,20 @@ + backend-test:  +- +value0 +value1output"Concat* +axis test_concat_3d_axis_1Z +value0 + + + +Z +value1 + + + +b +output + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..91bb523483d71aee2c7df9aeed6fd3df41361cd0 GIT binary patch literal 50 vcmd;J;s8PcMklti#GKMp11|*zh6Z~E1_lQp0^$ZBUI4@gfcOCrGdKbO%0&pT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1b71b8473093b0d0b0778b5a9d986cbaf3cc9068 GIT binary patch literal 50 ucmd;J;s8PcMklti#GKMpLoWpe1_4I~1_dBC0AdFq4glf=AT9vn21fv~d{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d03e552282050c17d7ce0a72609aef771ab57fd3 GIT binary patch literal 82 zcmd;J;$Y!m5@2*<%P%b{C@t}FU|?vlXJB9e(heXt5DPdmFem`A0T4R?@dBXO0U&+= S#0)@w01zhtaRCrFI0676pbdQh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/model.onnx new file mode 100644 index 000000000..a925f7ec4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/model.onnx @@ -0,0 +1,20 @@ + backend-test:  +- +value0 +value1output"Concat* +axis test_concat_3d_axis_2Z +value0 + + + +Z +value1 + + + +b +output + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..91bb523483d71aee2c7df9aeed6fd3df41361cd0 GIT binary patch literal 50 vcmd;J;s8PcMklti#GKMp11|*zh6Z~E1_lQp0^$ZBUI4@gfcOCrGdKbO%0&pT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1b71b8473093b0d0b0778b5a9d986cbaf3cc9068 GIT binary patch literal 50 ucmd;J;s8PcMklti#GKMpLoWpe1_4I~1_dBC0AdFq4glf=AT9vn21fv~d{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b4de73e0de1dd3f1be65b650e8202e6bb8509ec4 GIT binary patch literal 82 zcmd;J;$Y%n5nyy;%P%b{C@t}FU|?vlXJB9e(gKbQ3<^N(01^XY0}vaC7XaA@fH(li RP5|NuKsE!AE&$>NM*thN4SfIr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/model.onnx new file mode 100644 index 000000000..276194447 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/model.onnx @@ -0,0 +1,20 @@ + backend-test:² +6 +value0 +value1output"Concat* +axisÿÿÿÿÿÿÿÿÿ test_concat_3d_axis_negative_1Z +value0 + + + +Z +value1 + + + +b +output + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..91bb523483d71aee2c7df9aeed6fd3df41361cd0 GIT binary patch literal 50 vcmd;J;s8PcMklti#GKMp11|*zh6Z~E1_lQp0^$ZBUI4@gfcOCrGdKbO%0&pT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1b71b8473093b0d0b0778b5a9d986cbaf3cc9068 GIT binary patch literal 50 ucmd;J;s8PcMklti#GKMpLoWpe1_4I~1_dBC0AdFq4glf=AT9vn21fv~d{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b4de73e0de1dd3f1be65b650e8202e6bb8509ec4 GIT binary patch literal 82 zcmd;J;$Y%n5nyy;%P%b{C@t}FU|?vlXJB9e(gKbQ3<^N(01^XY0}vaC7XaA@fH(li RP5|NuKsE!AE&$>NM*thN4SfIr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/model.onnx new file mode 100644 index 000000000..e22154d71 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/model.onnx @@ -0,0 +1,20 @@ + backend-test:² +6 +value0 +value1output"Concat* +axisþÿÿÿÿÿÿÿÿ test_concat_3d_axis_negative_2Z +value0 + + + +Z +value1 + + + +b +output + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..91bb523483d71aee2c7df9aeed6fd3df41361cd0 GIT binary patch literal 50 vcmd;J;s8PcMklti#GKMp11|*zh6Z~E1_lQp0^$ZBUI4@gfcOCrGdKbO%0&pT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1b71b8473093b0d0b0778b5a9d986cbaf3cc9068 GIT binary patch literal 50 ucmd;J;s8PcMklti#GKMpLoWpe1_4I~1_dBC0AdFq4glf=AT9vn21fv~d{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d03e552282050c17d7ce0a72609aef771ab57fd3 GIT binary patch literal 82 zcmd;J;$Y!m5@2*<%P%b{C@t}FU|?vlXJB9e(heXt5DPdmFem`A0T4R?@dBXO0U&+= S#0)@w01zhtaRCrFI0676pbdQh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/model.onnx new file mode 100644 index 000000000..fb3e9679f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/model.onnx @@ -0,0 +1,20 @@ + backend-test:² +6 +value0 +value1output"Concat* +axisýÿÿÿÿÿÿÿÿ test_concat_3d_axis_negative_3Z +value0 + + + +Z +value1 + + + +b +output + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..91bb523483d71aee2c7df9aeed6fd3df41361cd0 GIT binary patch literal 50 vcmd;J;s8PcMklti#GKMp11|*zh6Z~E1_lQp0^$ZBUI4@gfcOCrGdKbO%0&pT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1b71b8473093b0d0b0778b5a9d986cbaf3cc9068 GIT binary patch literal 50 ucmd;J;s8PcMklti#GKMpLoWpe1_4I~1_dBC0AdFq4glf=AT9vn21fv~d{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_concat_3d_axis_negative_3/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d3ffbb59418c7cdf72ba491325b951dd1ab1107e GIT binary patch literal 82 zcmd;J;b7um5@2*<%P%b{C@t}FU|?vlXJB9e(heXt5HA4Y13>%$h#4Fi7zBV=0f-HN R*a3(GfH(n&3xK%65db@M4SfIr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constant/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_constant/model.onnx new file mode 100644 index 000000000..2a3d11bb0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_constant/model.onnx @@ -0,0 +1,7 @@ + backend-test:Ç +›values"Constant*† +value*z"dxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@B const_tensor  test_constantb +values +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constant/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_constant/test_data_set_0/output_0.pb new file mode 100644 index 000000000..7e2d9120c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_constant/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BvaluesJdxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constant_pad/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_constant_pad/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c4edfc6ca3e105d6e98ffa563cf17d4a04848853 GIT binary patch literal 184 zcmd;J6XHoqOwLZtOVKS!EiSQI$jGJ3#aO|`QjnNZ%*9%km{Xc6#8|1s9FUlzCCtT= zo1c=Z#F3nzS6q^qSF(VSSx6A1FCHcm57ZYW4KzVWj7x-rQAmJ`iGvY{nSq!Eh*_hA pAZ813adB|43xUKqqWEDpv2n2gH8CUsO{m0T0y|JOj}wysHvq$}BJBVG literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constant_pad/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_constant_pad/test_data_set_0/input_0.pb new file mode 100644 index 000000000..09d5a14a4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_constant_pad/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constant_pad/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_constant_pad/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..14c2aba5f410ca6ef0b93022ca13890abc28d007 GIT binary patch literal 76 icmd“Žz?Ëj@$ ï?š™™?š™™?š™™?š™™?š™™?š™™?š™™?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>š™™?š™™?š™™?š™™?š™™?š™™?š™™?(€>¢%º?^ÓB?À0ù= Bã>š™™?š™™?š™™?š™™?š™™?š™™?š™™?]ת>ü=¿?R¾iJ >¦Z¿š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?/d#ÀŒS'?±K]?‡þ=¿©C@š™™?š™™?š™™?š™™?š™™?š™™?š™™?¨(º¿Hm;= ­?¾2Ä?ó¼?š™™?š™™?š™™?š™™?š™™?š™™?š™™?Šª>…žÁ>íEc¿½Šý¿‹!²¾š™™?š™™?š™™?š™™?š™™?š™™?š™™?ò >*z?•ç™?³OƾmÇš¾š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?ü6†¿&õ¿gÚ¿³ù?‘x¿š™™?š™™?š™™?š™™?š™™?š™™?š™™?FKྙ[ ¿œ G?4”ο—ØY¾š™™?š™™?š™™?š™™?š™™?š™™?š™™?L=e¿Æ> Ä¿õ—¿kÞæ¼š™™?š™™?š™™?š™™?š™™?š™™?š™™?QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_float_ones/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_float_ones/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5e5d5a6ca96a0a8b682ab341a7ff2cd3d34fb583 GIT binary patch literal 154 zcmd;J5#mWoOwLZtOVKS!EiSQYX5=#CVyqBitW@H6&d)0@Nz5zpPYcdSEJ)RoGMI~t kgM(d&g^P)UIZ2$0u~JBgOMrt>hzBSD76j5vPD}!v0It*|M*si- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_float_ones/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_float_ones/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..04b96676c1508073f746cabb445e7a1497bffddc GIT binary patch literal 33 Ycmd;J7GQT`tniXxVSoT;D9r?=0V4$gNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_float_ones/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_float_ones/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d3badd310669f9be79adefe5dca90ee928e5e4e7 GIT binary patch literal 109 acmd;J;b7)q5@2*ycNgLK4a=9R=lSXHS-`BD5JlexG!IM{_) WxR^K?lYj!1U;#F;0D}{g01p7&U?l7S literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_shape_zero/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_shape_zero/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f62ff7fec9046caa03c09237bc8862dd88fcd40 GIT binary patch literal 17 Scmd;J6kvB^tnlJsfC2ywwE->w literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_shape_zero/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_shape_zero/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e5181b62420cee7b35aa537e95146b9283d37593 GIT binary patch literal 9 Qcmd;J5MXm+tn^|400c4tB>(^b literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_zeros/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_zeros/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1667c52f89e337b3999881b0691616e7fef96fb1 GIT binary patch literal 145 zcmd;J5#mWoOwLZtOVKS!EiSRD<}&7DtPoycNgLK4a=9R=(r55EENAZIU<>KPtU>9QH eV&Y&*66Rv86yoFJ;b0Tu019vcF`E;U04D%;og*0l literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_zeros/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_zeros/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5d50478be7b052e2d756e49be04d5cee2e28935d GIT binary patch literal 25 Wcmd;J5@2^?tnd=xVt@cPC=CD@l>tWp literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_zeros/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_constantofshape_int_zeros/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6362cca6bb28f0fd335882969eed1539beaba17c GIT binary patch literal 252 Wcmdb$bf>^tkb!x!+3@J7f4^t<5naL;s&ab;U)@5&dtv64&vfiPWS&}ic&$k{MM zlwjz)wlvmDCK)B-->Pz|QLnNq)W}LZqqOhq+R}ZlsK}J=cG=QzvB6aYB0(0xI3ex% TfY}6cLVhLeComvnN0uypG$Sx_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_and_asymmetric_padding/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_and_asymmetric_padding/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..275a5b9f8777013f64ed315164467c0ad542e96d GIT binary patch literal 156 zcmW;7Are4P6ouh?XBanHf+g4iUX(1s5=8MuK@dez6h%=KMNt$*|2Xr1b4*PwvM^Ss xZP}~*^BI>DJSJ?oAcaVb1SxV5sk42WL=v8^)$gFg^!1F^X?0FEC9y#N3J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_no_padding/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_conv_with_strides_no_padding/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..fa8731f4af4f3dca55a56be18b56d7a9d7697f06 GIT binary patch literal 222 zcmd;J7UD@tOwLZtOVKS!EiSP-&dBA>#aO|`7%s$Esl?)(pI4?O%EgnNT9lWX6JMN> zSdi+#?7+N$kzGrWi=`kjrPzT10zpCoTDJSJ?oAcaVb1SxVDJSJ?oAcaVb1SxV$5nq*BlpkM^pP5%8#8|1s?VO)i z=9yQLnx0yuCCJ56keE{JzzBg07};&=7_spr%T&CN>lkS%8{YoR|do E03%W?`Tzg` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_0.pb new file mode 100644 index 000000000..33cea0263 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ  diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_1.pb new file mode 100644 index 000000000..53980d95d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BwJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6741b0981 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +B x_zero_pointJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convinteger_with_padding/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ecfa319732bbe3b93bd118bd16e44a10cfc2cec8 GIT binary patch literal 79 zcmd;J$5nq*BlpkM^pP5%8#8|1s?VO)i z=9yQLnx0xDqySPLp9~ZM%7R4V%QH(d@=HtN3ldXOGV{`-q=DuLiE)W=FbN58F>x?L rF*A^621%AE>Q1`YNM3=R$u%mAYu85jzH*a3(i0L27=^a>yraAIJ% k0i;24Ah88N%mNfU0Hgze_yABXhz6+zsbK(NAfT-s0Grq!ssI20 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_1d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_1d/model.onnx new file mode 100644 index 000000000..7c3196b71 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_1d/model.onnx @@ -0,0 +1,19 @@ + backend-test:| + +X +WY" ConvTransposetest_convtranspose_1dZ +X + + + +Z +W + + + +b +Y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_1d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_1d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..044c8ba35c917e78c443ad8461f85256ba254aef GIT binary patch literal 25 bcmd;Jw~f`uTs5G*Y86E22f7=~dOhG7_n z;o?5iH}5lFiYcaAs;7@E7I8Uy#qeG=a=EBDaN$81hmg^xN6vzh4Ha8<>^X4c#F-0M tZrpkB846Xsf|3C)J0Sx5*gNy#-cNm7O=BC#S_%*x8*BqF6o7AT8}l8}{! zl(LX0MShfpB$2X^B3W4YK4bm^+nM_Gp7%ZXo^$5C_c|WO>ts4vj?eE2d3svnIVSnD z4aT^xF^BLs8uLK3NWdlEz%4RDTtkc^mdd-SjU$d$=(=~PcB~w)SVbvLn2VZy012sFA#Na6xY^vNvyV6%Hueg4cqUeENq zTNN>GO@#Z2CSvRabJJntW|Oy5?~a(megqinOkr?#BI>u)dU45~T}1w~T_WQ5v<{`j%5$gXd@eK*aL8xb)f4N;Fs&4~$q~3>n=y{hz@0xl!3jNaGQTjVd Ke@FlMj(!2*0a$ea literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_autopad_same/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_autopad_same/model.onnx new file mode 100644 index 000000000..ea5f39f66 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_autopad_same/model.onnx @@ -0,0 +1,25 @@ + backend-test:¿ +E +X +WY" ConvTranspose* +auto_pad" +SAME_UPPER * +strides@@ test_convtranspose_autopad_sameZ +X + + + + +Z +W + + + + +b +Y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_autopad_same/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_autopad_same/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5fed94a3b0475575b589e5f5e578580a4c63f5a1 GIT binary patch literal 51 scmd;J*0T3Sm;s6j0R0F~wHb_qakY)g3C_uLtm$-uiE!_hETV^V` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/model.onnx new file mode 100644 index 000000000..12b3d3079 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/model.onnx @@ -0,0 +1,23 @@ + backend-test:£ +, +X +WY" ConvTranspose* + dilations@@ test_convtranspose_dilationsZ +X + + + + +Z +W + + + + +b +Y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a7469a04867c44dea2fb0a39d07977bc92599bed GIT binary patch literal 51 xcmd;J;K0DZ0K^UU3=9H}04`PooB#j- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_dilations/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ebe21926b2b33072b526c0bce39b0cd5ed0a3ace GIT binary patch literal 115 zcmd;Je0FKy8qyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_output_shape/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_output_shape/model.onnx new file mode 100644 index 000000000..4d2539427 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_output_shape/model.onnx @@ -0,0 +1,26 @@ + backend-test:» +A +X +WY" ConvTranspose* + output_shape@ +@ * +strides@@ test_convtranspose_output_shapeZ +X + + + + +Z +W + + + + +b +Y + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_output_shape/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_output_shape/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5fed94a3b0475575b589e5f5e578580a4c63f5a1 GIT binary patch literal 51 scmd;Je0FKy8qyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pad/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pad/model.onnx new file mode 100644 index 000000000..56d575671 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pad/model.onnx @@ -0,0 +1,25 @@ + backend-test:´ +C +X +WY" ConvTranspose* +output_padding@@ * +strides@@ test_convtranspose_padZ +X + + + + +Z +W + + + + +b +Y + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pad/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pad/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5fed94a3b0475575b589e5f5e578580a4c63f5a1 GIT binary patch literal 51 scmd;Je0FKy8qyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pads/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pads/model.onnx new file mode 100644 index 000000000..188646832 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pads/model.onnx @@ -0,0 +1,24 @@ + backend-test:¯ += +X +WY" ConvTranspose* +pads@@@@ * +strides@@ test_convtranspose_padsZ +X + + + + +Z +W + + + + +b +Y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pads/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_pads/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5fed94a3b0475575b589e5f5e578580a4c63f5a1 GIT binary patch literal 51 scmd;J_r literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_with_kernel/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_convtranspose_with_kernel/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9fd2487d5489007fb987cb32b484b26ee2f63152 GIT binary patch literal 656 zcmd;Je0N+?k!~g&Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cos/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cos/model.onnx new file mode 100644 index 000000000..4d210c8d5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cos/model.onnx @@ -0,0 +1,13 @@ + backend-test:I + +xy"Costest_cosZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cos/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cos/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cos/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cos/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cos/test_data_set_0/output_0.pb new file mode 100644 index 000000000..e7e3f56f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cos/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +ByJð)ªD¾¤Æk?°Ý?éý¿º¸•¾ -?xä?À}?2£~?ɸj?IY}?cî=ú_9?y~?†1g?báq?yöœ=¡¡z?‚Žs?£*(?jëT¿Jd¸>; m?+dt?fÿ> Ð>#M +¾½æ½¾Ow_?sÓg? >ôq6?.}0½Ž:z?$ + ?ºm?hR_?ó»Â>úå?xßh?o?Þ`t?…3N?kWo? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cos_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cos_example/model.onnx new file mode 100644 index 000000000..d07aefb34 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cos_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:A + +xy"Costest_cos_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cos_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cos_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cos_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cos_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5791183f1004e717d94dc879d046be868123fa04 GIT binary patch literal 21 Zcmd;J7GQK@tn}h>2;{P7U}&%h(EuU?1EK%` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cosh/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cosh/model.onnx new file mode 100644 index 000000000..1d33dccb6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cosh/model.onnx @@ -0,0 +1,13 @@ + backend-test:K + +xy"Cosh test_coshZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cosh/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cosh/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cosh/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cosh/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cosh/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0a8ad7082 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cosh/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJð‡<@@²bŠ?B\Â?!!˜@'T@£%Â?Ò?¾?x?¶®€?9ñŠ?ˆT?gz@1ä¦?Ýò€?;ÑŒ?)1‡?ÿ¿@´‚?úR†?>˜±?ÖÅÎ@LTœ?‘à²?]æ¤?_|œ@v}@P"€?½?‚?U@Ûr@%Š?C‰?ص?ý]l@@Ó‡?S‘?@¹í?q9è?ظ‰?¹ä…?½ Í?ü @Ò6@G¤e@–ü?ØzŒ?ÙJò?­¨?2'@Qè‚?^×¶?T³‰?µ‘?©ä? €?/ì‹?…H€?læ…?_ š?’ƒˆ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cosh_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cosh_example/model.onnx new file mode 100644 index 000000000..de7bc22b0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cosh_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:C + +xy"Coshtest_cosh_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cosh_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cosh_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cosh_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cosh_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7d0ec27e1006e76c8325617c6ce1bd2e82d81d5c GIT binary patch literal 21 acmd;J7GQK@tn}hp-F(!ZfuX@3L<0acGX_!s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..9f337922f5d886a1f9e0bc3d10f36a39773206b2 GIT binary patch literal 110 zcmd;J7vf1uOwLZtOVKS!EiSQ&;1c0ttl(lvtjH`DVyskRb1uydF3lC<1IflGm*y6i u=EfVQMDYVv32||8aBvH;a4~VPM)5)QuyL_)un93F0TomtD{x{G-~|BTJQha) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5a92807169f1cb0e97e88853c88a333470d78769 GIT binary patch literal 49 hcmd;J72tMatnkuc0D}+q5SqaOLUTZA0Vplv003}g1F--A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5ea75d94f3784e89e0349b63a3d43b4b09c4a6ad GIT binary patch literal 14 TcmWe&b7D!X$Sn3^VE_UE6u$ys literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7844c6a440644b361e308efff834295156c68b29 GIT binary patch literal 49 hcmd;J72tMatn|`g0D}+q5SqgQLQ6nt6)3Ie0047)1NZ;{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_exclusive/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_exclusive/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..73292221cb2e5c770e2d45a047a947cf44749b9c GIT binary patch literal 138 zcmd;J7vf1uOwLZtOVKS!EiSPt;Zoybtl(lvtjH`DVyskRb1uydF3r^v;NncJNX{uO z&MZrnU|hh+BqRY+AD>*BTU?qOZz{n&d22vfLT$)>4nj3GJ5)YM(;s@#$;^N}q;1*)xV&Y(p;)9yS#>K+HCd7~g NR8Wbmz==tK7XU~z9n$~+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5a92807169f1cb0e97e88853c88a333470d78769 GIT binary patch literal 49 hcmd;J72tMatnkuc0D}+q5SqaOLUTZA0Vplv003}g1F--A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5ea75d94f3784e89e0349b63a3d43b4b09c4a6ad GIT binary patch literal 14 TcmWe&b7D!X$Sn3^VE_UE6u$ys literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ea06327a8706a8f4a6a7a5f827b702ad7a59a4e GIT binary patch literal 49 gcmd;J72tMatn|`g00TV-2(1I9HK4Q-looLS0A5%FPXGV_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse_exclusive/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_1d_reverse_exclusive/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..473920459e0ee0fa1d96c2f51a813406585d6048 GIT binary patch literal 163 zcmd;J7vf1uOwLZtOVKS!EiSR@VdOI7Vyxg|Nvy~$7GkVaVskFd4KB^q65!%Ytw_!( zEzT@Um0(=J$fU)`#a@(JmReK{;R`8%42VxI%`Gm?jWZKxqLeEdr$_8~~BR1Q`GT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_0/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_0/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5ea75d94f3784e89e0349b63a3d43b4b09c4a6ad GIT binary patch literal 14 TcmWe&b7D!X$Sn3^VE_UE6u$ys literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_0/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f5901522dc809c0752614cdf30a6004d7f565f4d GIT binary patch literal 59 lcmd;J;$Rlwc4DmbGGG9M5B3n6!2v>ZKxq*uEd!;M8~~D`1TX*q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3de0826d9f0705d409c19e1922a14b1f8ed86f2d GIT binary patch literal 125 zcmd;J7vf1uOwLZtOVKS!EiSQ2=Mv#!tl(lvtjH`DVyskRb1uydF3lAZ1E literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f274efdec94d178cf2190f7d4641183bd758bb2 GIT binary patch literal 59 lcmd;J;$Rlwc4DmXGGG9M5B3n6!2v>ZKxqLeEdr$_8~~BR1Q`GT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c00ea22e0555a476e4c40a4757e26d6b006bba0f GIT binary patch literal 14 VcmWe&b7D!X$Sn3^VPs%n000!j0$~6E literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_axis_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e3a084217eb4257bf8503e0be68253e94e8a2a48 GIT binary patch literal 59 lcmd;J;$Rlwc4DmbGGG9M5B3n6!vR7|KxqLetpug@8~~MF1Xch5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..bf03320005ef3bb7529df09b0cadb43249d0c6e8 GIT binary patch literal 132 zcmd;J7vf1uOwLZtOVKS!EiSRj;}YRwtl(lvtjH`DVyskRb1uydF3lB^0m;TEm*y6i z=EfVP#OI}^CzfQErN)C4MhOG;2=Q_8aBvH8a4~T(0WotFAJh~!E*1_pA%-NNqDpi{ IPD}#4026^6dH?_b literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f274efdec94d178cf2190f7d4641183bd758bb2 GIT binary patch literal 59 lcmd;J;$Rlwc4DmXGGG9M5B3n6!2v>ZKxqLeEdr$_8~~BR1Q`GT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1dce0eb3d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BaxisJÿÿÿÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_cumsum_2d_negative_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e3a084217eb4257bf8503e0be68253e94e8a2a48 GIT binary patch literal 59 lcmd;J;$Rlwc4DmbGGG9M5B3n6!vR7|KxqLetpug@8~~MF1Xch5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/model.onnx new file mode 100644 index 000000000..72060b1c1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/model.onnx @@ -0,0 +1,17 @@ + backend-test:Ž +6 +xy" DepthToSpace* + blocksize * +mode"CRD test_depthtospace_crd_modeZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..660603548a0335673ea9d4014019462ea3cf90a7 GIT binary patch literal 592 zcmV~$eJs>*90%}lcb(j+pEI@-YwA44M&#^%-_N`Ba89yVrzdF_Hc=w&LUF63Td{e_ z^QNXpYwJR-T>0aQS#>29D^K&(n2oe>f3fjTn-O7iqt8Qm7-reBmb_8el!w0ZP-Jsm^x*Xb{cZ@ys#(vXJA$xa4u&b`5bYES z=!>D1;*~Eb>kkKA)g*DEVoa z7&1s{CSF4oZ@Z~wYZ9Et`&gwh8T7H2;cp?N_9YTXixBWt4&4q0opBSBy|1E{z-88c ztAWb=?X08!HmT)<)N{hfM)rikCgI>aWukh!5YuT^rplAy*z6e;c-^7Q(I5zyMWob4 z!8xRsO6yhhOyPmLuDg6z2TqWuHXZ)~1s~{+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_crd_mode/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f1a31fb5bc454ec7a71ad145c2d7489ed9918e57 GIT binary patch literal 592 zcmV~$c}SCS90%aEZOz=Q*NMVR32UAyXquC~zwf8)m@|`W8 z(s_V|of5RvqFnjMN|9=1R!Vu{6^fu4jik_^=Mg)Loy8)tXuVUcQ(?SK;A)WIY;q6X z_l!n~B_2-_o|p^!wMX^ zSj}4N5-?a`B9VHY!Xo#eyI+lK6?2s9IzdBu9gN?b0cp!UzNtfx8~$31#r$H^r5wgS zZ34H@$Vb}UDb>dpi5(j-ZwW#Aq7O{D2dS_zA3KBsdN-}5L4%Z%!xS`~pds&w093r~ zqTcc_d@;084%bNu$`|zD^*Ck!;gI+EGBs~WhQ{`TT*i9Y)A%B)G^XHpeFSt>6SQK{ zGfq^DnD$_duk^F|H-1DPd)P6_6vN*_L<<8Ubu5xVS_HLxfC9hD(S6*=blVw*cZcJG z_Z_-2+NjDJ3C4-CPzaYqbcwE$&bX1;B^+e$tH^KCM9o1<%}1Mwe&AZ zk5aRW6xI@IyH!t9={8mt;9#nJ8QS}9)6tpJc&6}##2`am=UskXl^3$34nS^jhw)4X z?d$VE>TCf{T6MU&@SSX$aJZ?O`MjN85M(vcvPcF$ryztV1HdeYu z(?Bz?&OusMOYEmVVz>EXa%z-nOe5q`nh7`Uew2@H#s_CRnN|O$~g{R+6?>$tHI#Kh?42Rh>R0YFc=mVya0p2Ab311$kL+0uwXEF1H!^VM2tqG(P&)UWh@$v zMx(F(@bJR-TVs2+Zxd&N*%z(R|J*`~b19?p(wJV*;fg12c)|1cG}7|7(~92l#seQT jP>>uZ7+{JaW>}%d8W9x^Na2wo#|TSoaKsiT>~IcWJNF?3 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/model.onnx new file mode 100644 index 000000000..483c41297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/model.onnx @@ -0,0 +1,17 @@ + backend-test:Ž +6 +xy" DepthToSpace* + blocksize * +mode"DCR test_depthtospace_dcr_modeZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..660603548a0335673ea9d4014019462ea3cf90a7 GIT binary patch literal 592 zcmV~$eJs>*90%}lcb(j+pEI@-YwA44M&#^%-_N`Ba89yVrzdF_Hc=w&LUF63Td{e_ z^QNXpYwJR-T>0aQS#>29D^K&(n2oe>f3fjTn-O7iqt8Qm7-reBmb_8el!w0ZP-Jsm^x*Xb{cZ@ys#(vXJA$xa4u&b`5bYES z=!>D1;*~Eb>kkKA)g*DEVoa z7&1s{CSF4oZ@Z~wYZ9Et`&gwh8T7H2;cp?N_9YTXixBWt4&4q0opBSBy|1E{z-88c ztAWb=?X08!HmT)<)N{hfM)rikCgI>aWukh!5YuT^rplAy*z6e;c-^7Q(I5zyMWob4 z!8xRsO6yhhOyPmLuDg6z2TqWuHXZ)~1s~{+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_dcr_mode/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8721c7484d225c0834754a3850daeadd4a56c3f7 GIT binary patch literal 592 zcmV~$c}SCS90%aEZOz=Q*NMVR32UAyXquC~zwf8)m@|`W8 z(s_V|of5RvqFnjMN|9=1R!Vu{6^fu4jik_^=Mg)Loy8)tXuVUcQ(?SK;A)T{E=rC2 zp3(5Nrr}AV951gHA+civ-c4&MebEQWVG1g2%!hYG0L~Y?qO~poadY2Dq@Jgw!wPiw ztI=B?hP=m@DTnJMjqL|Lcs))}KJZ)^Q49k$Z6DVl}%~F-KnvE!4av841c4|va!82DR=@s)libu5xVT7(PUcPQ|y99bj5&~0ZBE{Vu^ zCWG8m&3x)?0R&l1baUZ5`8fqaXWYn?x@gGWSCLC-Ej0%%u~M^&nB@?pWwj*Zwjy?$ zFIqJXRAU;Uwp;b|OyP;L00*norHcdD}lmW0yI6R8t;Wufbe@S|n z9YQFqCA8~d4A@V9*i%+va%z-jUY&zSX(p!9ZA@a2L6tAVx+*UmojDD;!5!tJo8cbb TMW)q5)D|>OX5JfK+6?>$`()^k literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_example/model.onnx new file mode 100644 index 000000000..4ec6c5dd0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_example/model.onnx @@ -0,0 +1,17 @@ + backend-test: +6 +xy" DepthToSpace* + blocksize * +mode"DCR test_depthtospace_exampleZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_depthtospace_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b779a1137fdb7afb1e3cbf574831146208100c72 GIT binary patch literal 208 zcmW;Ep%MX600q!}lovM$g0R5{2!de7+7XN-3c?0K@BxCbV~i0+aib`TK0_2mQFO+g zd*-$qLyWNzn`tP*cJ>I#Kh?XVt5nph+x3ep*$0vFB!3rFz-%@N|_;^1HsV&P)qV2Kihn<~V{ g#lpcT#1JKhWJw$N&HU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/test_data_set_0/input_2.pb new file mode 100644 index 000000000..d7beff25a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +B x_zero_pointJ€ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f248d253c539a7a1a7f9a95d20cca2fdbacc0bf6 GIT binary patch literal 25 ccmd;J5nyy;tn?CKU}!kZz)%ImAW-KF05wSjbpQYW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/model.onnx new file mode 100644 index 000000000..fa71acdee --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/model.onnx @@ -0,0 +1,25 @@ + backend-test:º +/ +x +x_scale + x_zero_pointy"DequantizeLineartest_dequantizelinear_axisZ +x + + + + +Z +x_scale + + +Z + x_zero_point + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_0.pb new file mode 100644 index 000000000..f5ae5cc35 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJY"ÈJ;W õcŽyf \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..4a72bc49f95b4c8d129b2e1ec517ae6e66bca15d GIT binary patch literal 27 gcmd;J7GQK@uZS;BPRvR5;$dK5aA06)0OAD>07>`-djJ3c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_2.pb new file mode 100644 index 000000000..14b45dbd1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +B x_zero_pointJTÄ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dequantizelinear_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d50e2b457e58b60b21e996d5fd8a24bf68b63b36 GIT binary patch literal 87 zcmd;J_1_q_W3=9g63=Ag@F)(B}GcYVT$iUzMWX}L%7^ne?GdM9Y c7y!jeof#TF0reCdVPI%K%+RnK$bNko0HmA~(*OVf literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_det_2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_det_2d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a1cc4b4343360c124ac37c8862dd8acdcd0ebe79 GIT binary patch literal 82 zcmd;J6XHoqOwLZtOVKS!EiSRL;o|0EtPok{QizR<1t`ei#3aBC01dwnG5`Po literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_det_2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_det_2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..188fd6ddef5fe097f2f2d192becdab2c5a031c87 GIT binary patch literal 27 bcmd;J;$RYBbYiUV5?}y>274go07MP|A%+6F literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_det_2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_det_2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ee10c603149867dbf240f6d4195ff2fa917a402f GIT binary patch literal 11 ScmWe&bYiUZVqsulH~;_${sG(o literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_det_nd/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_det_nd/model.onnx new file mode 100644 index 000000000..723f6f428 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_det_nd/model.onnx @@ -0,0 +1,12 @@ + backend-test:D + +xy"Det test_det_ndZ +x + + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_det_nd/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_det_nd/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e8c16bdf238e7dc0af35973a01ea0b02bb244e9f GIT binary patch literal 61 tcmd;J=3wGr5@2*“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_div/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_div/test_data_set_0/input_1.pb new file mode 100644 index 000000000..41fe484fb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_div/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJðìç¥?x2?¬³¨?’µ?ü5ˆ?í¢Ø?f†È?Hø¡?ËùÂ?>Œ?ž¸É?.óö?ÞÆ¨?´mÕ?ÁÞ?œ°Û?B ¥?Ðr—?ÛË?â’‚?µê?Ý™€?±ÂÖ?Ÿ¢?ÖÞ?þ(û?%ן?†¿É?ÈË??É?ðœ?®óù?h;¹?Wì?ŠˆÙ?j¦?‡*è?³À²?þÇð?&gÊ?´Üð?à¤Ø?"ÕÜ?f+À?ó`ú?FnÒ?â@¶?KžÍ?ìt‚?š¦?‘€Ô?C!¥?!Ï?äá¶?7W‘?.¦?œôÈ?¸¡Ë?~ƒÉ?œÓ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_div/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_div/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e28adb5d12e66b12e6cff56bcbd9e235ea2ae1bb GIT binary patch literal 254 zcmV2YPKASMRJp}kbKVZQVKa_HnJvGb7KIRigK4?*tKQfLnz7G*fKDAa>zgw)b zzgmkXKOyA“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_div_bcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_div_bcast/test_data_set_0/input_1.pb new file mode 100644 index 000000000..69248c4a5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_div_bcast/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJìç¥?x2?¬³¨?’µ?ü5ˆ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_div_bcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_div_bcast/test_data_set_0/output_0.pb new file mode 100644 index 000000000..51b469f06 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_div_bcast/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJðd5®?#·>8>?¾ÐÊ?3£à?ŒA¿ùhY?>1ë½½x•½ÊÅ>‹™ã=Gd¦?0Ò?µ2°= Õ>ÆÎƒ>3òª?‰e¾d­b>ßwM¿¯ü¿…‘? ç'?nW¿÷@" ¿'‰'=wn¾û¹Š?½°?'Ôô='­>ªp,¿dF³¿§d§¾ ÷=ºÃŒ?°‹i?î8Œ¾çr‘¾dO¿ëx¢¿¯µ¥¿Ðް?R6õ¾4 ­¾æV¿J?y’¿Ó¶L¾øÜ0¿%±>oƾµµU¿°óؼ3©>%Šs=k>¤å¾(‡®¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_div_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_div_example/model.onnx new file mode 100644 index 000000000..c28a54df4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_div_example/model.onnx @@ -0,0 +1,16 @@ + backend-test:U + +x +yz"Divtest_div_exampleZ +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_div_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_div_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..085a7dc43a96eb6ff0801d73406c24490477e574 GIT binary patch literal 17 Ycmd;J5@2*pN#aAFeR0RV=`7_I;S literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad67ee7f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..fda1584bed3099cb5cd00bd9cc910aa2332537c6 GIT binary patch literal 158 zcmd;J7vf1uOwLZtOVKS!EiSQYXXKLSVyqBitQ2CbQet;0$}h+-Ez#oUVku5dO_5+& zz{n&d2~ruK0+EVONli;E%_)h`O)Soi5(nuO;u7Fs6yo7x;$Q}179eI#0!mcklBfbp MaH8sPViMp10F>PwBLDyZ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad67ee7f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/output_1.pb new file mode 100644 index 000000000..de98527e0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask/test_data_set_0/output_1.pb @@ -0,0 +1 @@ + BzJ< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b6c1cd9853f035eaa62936181499bdcf768c94d8 GIT binary patch literal 180 zcmd;J7vf1uOwLZtOVKS!EiSQ|%gCj~#aO|`SR}+)Da2T%#O_j*Uyxr~qQ%X{QkSezYSlvt9PA0-YnL`aBBfP+zphl`1W8Hibc im^F$UWHcKW3s8a~38<“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/input_1.pb new file mode 100644 index 000000000..18a4deb5f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BrJÍÌÌ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad67ee7f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/output_1.pb new file mode 100644 index 000000000..de98527e0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_mask_ratio/test_data_set_0/output_1.pb @@ -0,0 +1 @@ + BzJ< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_old/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_old/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f959a711803b9823a2efc79dc3ca2b10f328dc8c GIT binary patch literal 101 zcmd;J7vf1uOwLZtOVKS!EiSS0<>KdJtPoc=0KzX^Evd kCGq(=DN$ghTwEL+j6y72OdQNfK!HjjBmpNDE(QT^0EGn>^Z)<= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_old/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_old/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_old/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_old/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c0b9013e475b1396e35d33adc5c1a3f1a21b39bd GIT binary patch literal 21 Ycmd;J7GQK@tn}hxU})IS00s^A03TulEdT%j literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1a7b38378c649bcfe930103d38d6261514b9c515 GIT binary patch literal 146 zcmd;J7vf1uOwLZtOVKS!EiSRD;gaWKtl(lS5@M`WVs|OZFUT(~(c“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/test_data_set_0/input_1.pb new file mode 100644 index 000000000..18a4deb5f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BrJÍÌÌ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad67ee7f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_default_ratio/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e5e8fd619df64f64e1b6215378af80c2cae84d96 GIT binary patch literal 133 zcmd;J7vf1uOwLZtOVKS!EiSRjiX5W= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad67ee7f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dropout_random_old/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b0f8177e477315d418611ea8f5f098eef649a6f8 GIT binary patch literal 182 zcmd;J72-)sOwLZtOVKS!EiSQ|&&XxM#aJQ4SSiF_8DE^7n3F2RQyE{CT9hAOke``X zq9p24nU|QGnH*S}m{*cnmFkn3mzr24Bn8qQp8}C9gv#ZB<)ZjOCUS9ca4-t7a4~VP mB>@F0!2(QB0YNUfZERdDKy?gBVq7Tp3W3C#gczKd1h@euq%Wxe literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..493d80fda064286a564373e174b1a5b604509b75 GIT binary patch literal 33 icmd;J6JT^=tniXxfB**u28RO-3lO zAywUkeVJ%c0nYtC1j7)L)G_FTYOQMFO6k#rmfm^x^QoPtb^h2w`wcTO|n}` z>&%tjF;>e9(R?6O`}Fz#DQ%y0l}oF%633-YoXPC2_-Je#^)p*IY|?uL-AkF4x)-gm zIPBo>hJ|FKWc9?T>wYup6j((;?7$OS9BEZ18aeisAv)7KSLVFfKvDsGXFwpJpF`2e zJHdyuTj~*sx9U?_IIZG2Bu}X-dibEKte#O-S^aOS%4$+o#P^Enl2P+>? z?9@ow6CKa(m1FqEfUYHx$&%z~>?JZql3V5yeo}cm;RFR&50UT8ZYiDx;hW)!Xb9sn z6P!bT#eftZ-=CfAz#3;{Dh~BUHq4B5Vtd#w^Va~LsXv{ZG``?pgn(&3HF=H!VoJ%d zslpdVA?0HOD1eW$(kGuO;9XyZI}+rNP2eA9U)~0B-Yjh#_GRIEix9YMBWNiFe!yyma}AzvRZH!&6< niWmZ>p!ODx@(z%(k literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..493d80fda064286a564373e174b1a5b604509b75 GIT binary patch literal 33 icmd;J6JT^=tniXxfB**u28RO-3GS_E8-JVvPz3fQd6S% zLB?}&ad0pSv2ZbQuq6QnD!~FwPysR literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d4818b3753735860514af78725ee1ed609c12422 GIT binary patch literal 15 Wcmd;J6JT;;tn^~rU%4hhiva)@Sp%B@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98bf9a5ea --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +By_scaleJ€€< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_2.pb new file mode 100644 index 000000000..d5833802d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B y_zero_pointJÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d02a4927324c30760fc5d57372fdb6d7e22e3c8c GIT binary patch literal 3528 zcmdT{!AcxK5Z!5Kbu2~KCIlh3IW7cp_NFU>U_jRpj1ZdM={B^^_KZ6{%Z!(ty?OEE zCBKlL$T|6+98%M>Cc7YkK(~-RE!9K4e(zNk)lrwOk9cw=wRml0VRpX0f+>BsUu!;A z$w|qzQ8)5PX~`$7`GAS`=z4aPwnt-LF)l94!brhnm2)ld&qb*dqcVNM-YOkOgG?6& zGxlFVcgoXJ_M=`9haLQV2|_=(y!s37=Rt#8LQpxUd}b-H4y7m)iR}BE5M4=`3pFmb zkuHHd0e_vlB*HDT|{c4svcFQG=>oWLS@bb?pU z_#BLn^h*C`LEk$s*CE%RWW01*j^LJnr~E!jhP$6`rwLC{i+wePdoPtTXQgvV?B(eP z#|47(i`mSg)df4q^?0{~82nwFCXO{Z)XFHHvU54fjx(hVJ2-AT=qG{a0P|#l2V=2G zT?;ZuRi5J(wxE94MBzu^T>hufoKqTRrClr+D0OWVzPso26dXNs+$0T`ylIX&9Pq;Q zSAm#pn=~t;a$djf>|3c>VJCQWC?sz9riKZ4<3-nNc7r5Y%kmHAw*WV9KNLN(3F>%b z@nJ;Y{Oil;e6x9T07OwhLm<)e2m`eZkXc|09$li#5aM^8(MwoR(#8qx?2+EuFT^xe A8vpR literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d4818b3753735860514af78725ee1ed609c12422 GIT binary patch literal 15 Wcmd;J6JT;;tn^~rU%4hhiva)@Sp%B@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98bf9a5ea --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +By_scaleJ€€< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..d5833802d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_max_adjusted_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B y_zero_pointJÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c9ceb73c9eb53213d08b39363d152bfe31f73063 GIT binary patch literal 203 zcmd;J72-)sOwLZtOVKS!EiSRz!pLR9#aJQ4SSiF_8DE^7n3F2RQyE{CT9hAOke``X zq9p24nU|QGnH*S}m{*cnmFkn3mzr24qz=*^p8}C9gv#ZB<>GTQ^WqazvPz3fQd6RY zLB{iO@o+E-ad0tlFat455>T)bEXaf;D98nO0vi_#P(4GE7#E6Tgh1j4%H%J F4giNZ4k!Qs literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_0.pb new file mode 100644 index 000000000..793fce69f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ @†SŸÕÿ`¦ùÿ¿• \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98bf9a5ea --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +By_scaleJ€€< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..74d6f51802cb09216c89a3bd974ba9ea319086b2 GIT binary patch literal 19 acmWe&a^k6suSzY-k1xp2%q#I?WB>p-CG!%m@Yo;Z1n&ec$)q<4x3~{V`9@q!zD@EX>>MZJ5zdJGJH$ zl^m2@8+9%}C@uMvH9s)X9(}(%O53A}(u|95WnrXXvdXy@`0=IGiBXw8U>}u^qhY2C zgB}N)(3|nJl!ItJh{Fy(zk<+DTweVn?!~Z)TS8DdhkR@yua2ZB6N%^tFCaRTG8bx6 zY$03%mjqn%Y=b)YYSp8sj%&i^%HG}8Ox#6|yeWZ2Fjsid4x*aAwMJ{&K46eLX%7T>6DY41Z z&yEWO=NGe{Mav6zkn8bo2Qm0doFp0X1;&Gs{;4cpysJLnIA#|Y+00uRDs zle#8kn5sO-Eo_PXu(87Lz&ZU7MRN{ml$Ca|T!PfIR=9PK>7j7+*m09ISn{Sh;&8|d zGgt*;vMtiAh{}2WwzF@gW`&*L(VmdF;hP$!;0+h;*X$fYvKHli%$oo=Z$A({q6zAF zZTVtE-~8{*=wze0bF4u>3TOl*>f#%Y(O6p}SunnYxmxrYg!q4F{0f#BwRS=~@5%b} EzqEW+CjbBd literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2651ee2beac4c401c6200b516196ffa75e81a0da GIT binary patch literal 59 zcmd;J=3o(EbYiUVGGJh6uun^4b4W{DX3xN&;Lv|4)Bz|4#0P-lY7VnzRzmp>4%H%J F4giNZ4k!Qs literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..793fce69f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ @†SŸÕÿ`¦ùÿ¿• \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98bf9a5ea --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +By_scaleJ€€< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_dynamicquantizelinear_min_adjusted_expanded/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..74d6f51802cb09216c89a3bd974ba9ea319086b2 GIT binary patch literal 19 acmWe&a^k6suSzY-k1xp2%q#I?WB>p-CDO$;Un0Ok57A^-pY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_edge_pad/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_edge_pad/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..131ea5f957c7b1fa9054ebd27d649ed75047b34c GIT binary patch literal 76 gcmdsEF...i test_einsum_batch_diagonalZ +x +  + + +b +y +   + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_diagonal/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_diagonal/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5e8787cd07a4646d48814d8779d038d3096d4d68 GIT binary patch literal 614 zcmV-s0-5~?0|*5O1rQ5D0eDK-1f|dA^Nu642zh)_C@IFV{KkebF z4Fzz*Klg?GOSDAyKNISZ$!l8ZKajJN2pA^6Kg)F@RY7RnKjf9=kn392KRcOCb-(BL zKelSHK%hd(zl4zi9Zd<;Kk$WqmcUf&zdAaw?1gLuz-B3Li*f4YKWvb48g{AcKiMx_ z+t9z~zrDr39CauHKn*$#@f1b(zg=~u4ykRYKRBcr@uT&}zsHAKe?x}&KMnwGSAK%` zKhN9yHc{2XKQro(k!-`KR=ca1cX@Nzpj$DlHTL;zZ3NTf!dz?zfZU~TjsUKKZWf|W5>4HzZGVq+)5StzlpyocR8NjKdi7 bik test_einsum_batch_matmulZ +x +  + + +Z +y +  + + +b +z +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5b93576069cd70b02a2dd4461a356f80d927e7a8 GIT binary patch literal 254 zcmV642zh)_C@IFV{KkebF z4Fzz*Klg?GOSDAyKNISZ$!l8ZKajJN2pA^6Kg)F@RY7RnKjf9=kn392KRcOCb-(BL zKelSHK%hd(zl4zi9Zd<;Kk$WqmcUf&zdAaw?1gLuz-B3Li*f4YKWvb48g{AcKiMx_ z+t9z~zrDr39CauHKn*$#@f1b(zg=~u4ykRYKRBcr@uT&}zsHAKe?x}&KMnwGSAK%` EKk*}f!vFvP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/input_1.pb new file mode 100644 index 000000000..e59448341 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/input_1.pb @@ -0,0 +1,3 @@ + ByJàÏÛû6QÕÃ?3ê‘Ð3Ø?Ê£ý§½hì¿xÝ0£W±ÿ¿E)ÏQ1DÖ¿îNˆ6>Ä?EÉäGE¯ó?$`þ¦ò<ó?ø`hköÉØ¿õÍ¢íXÓ¿SdQy߯ð¿]¬~ºd¸ö¿`ü­øáLû¿ÌÊÅB`6ÿ?6«žOà¿eÖ¨Ëh Ü¿në¿%s ô¿Qht3áè?Š¥Œ†Òù¿£ÊÑ;Ë¿"¡_}©§ì¿šõ±ÃØ??–„Xà¿®’¶’Þãò¿õ+TÍÛœ¿BÏðÊiÛ?µ§ÁÎE±?90³[Ó?ù­ïØ]Lä¿zø4¹&7׿¤£áÅ˄忦\Cë׿gÖZKê¿v±ŠÚžû¿O¸7[æµÆ?…íJcǶٿf£ÜJú¿‰¿)w9žÝ?¬°W”–í¿ +>@–˜ª?)þ »µTç?e¹ƒ‚À?±tR6ü:ò?Î*¸ØÁó¿nL«'÷¿Ù?ÜæÚöéå¿zõ¥û‘Ýë¿ÜÖn»ï…⿈FzðÓ¿>?(´Á¬?}ªÑ(t¤ò¿|ך’Óì?œ‹gÕiÍÝ?^ôsBt”ø¿rÖHˆáÏ÷?“D~ãUþ?|-µ÷GÜò? +¯ÆêÆÇ¿ç7€Í!ñ¿K&Æßð? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_batch_matmul/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8d382df70a04b4a9784122ba5aa3bda51caad70d GIT binary patch literal 334 zcmV-U0kQrF1qcEN1P}{C0eVWn0`Imexm;V%zdZ2Xd@RG;KRa1-yXMRQz}Q|lMwOfq zz+?kF^TTwrKhU2&c_H=oKSSOlTe4I2KPVZp?Tp6hzuuHS2+3^qzY>ycq4^>EKdGdt z?5Fm}zu>b(HUP)azldIFKWBFVz+6<{t~i|cKSot-$PV=KzcS{M)brNO;9zoTzSIC)L*zeT{p z$YrJ0zurqs|1d}az*3EGCrpR@KlnA%t?cOTKjygNF!eFzbTDO8i+~tzm$)jNc__RKv17z9;j{;z-+dDs@g*3zZi;O g=W+-HKzv90*l-C2!0_*1<4d9KKO|_O)0-s`K(iFDfdBvi literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..41ad6d0d511ac175a15a67646421272ada6743cd GIT binary patch literal 132 zcmd;J7vf1uOwLZtOVKS!EiSRj<5J~ftl(m-6k@DWVsp*RD=y8|65`@WEi6qe$;{7F zV$RgbT)@aIBnDC*p9)qGpP84JS`=SUl%EpC57aKi#l^wFEyTjb#K8&@s6-Y>;^tzk Q5@O?G0jgkdViMp10Q>J99{>OV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/input_0.pb new file mode 100644 index 000000000..60ec8162b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/input_0.pb @@ -0,0 +1 @@ + BxJ(¥ÏåóŽ9ü?S‰Ìú,œÙ?«É"RÒQï?N1ãiYí@Ú=±|„áý? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/input_1.pb new file mode 100644 index 000000000..9869f3dd6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/input_1.pb @@ -0,0 +1 @@ + ByJ(‚Œ¥BÜEï¿é•2Ógî?6„ÓI¬_ÿY´ÈøŒlº¿f)gð>GÚ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a9dda2a61 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_inner_prod/test_data_set_0/output_0.pb @@ -0,0 +1 @@ + BzJ…PR<èšî¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/model.onnx new file mode 100644 index 000000000..e7f35f6ec --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/model.onnx @@ -0,0 +1,12 @@ + backend-test:] +$ +xy"Einsum* +equation"ij->i test_einsum_sumZ +x +   + +b +y + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/test_data_set_0/input_0.pb new file mode 100644 index 000000000..86fd72d2a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/test_data_set_0/input_0.pb @@ -0,0 +1 @@ + BxJ`¥ÏåóŽ9ü?S‰Ìú,œÙ?«É"RÒQï?N1ãiYí@Ú=±|„áý?‚Œ¥BÜEï¿é•2Ógî?6„ÓI¬_ÿY´ÈøŒlº¿f)gð>GÚ?í᪠pÂ?÷…ýK´D÷? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a69ca9279 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_sum/test_data_set_0/output_0.pb @@ -0,0 +1 @@ + ByJ[.Ü‹ ‰@R½»0û?H!@Ú»}þ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/model.onnx new file mode 100644 index 000000000..412a226cd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/model.onnx @@ -0,0 +1,12 @@ + backend-test:h +% +xy"Einsum* +equation"ij->ji test_einsum_transposeZ +x +   + +b +y +   + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/test_data_set_0/input_0.pb new file mode 100644 index 000000000..86fd72d2a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/test_data_set_0/input_0.pb @@ -0,0 +1 @@ + BxJ`¥ÏåóŽ9ü?S‰Ìú,œÙ?«É"RÒQï?N1ãiYí@Ú=±|„áý?‚Œ¥BÜEï¿é•2Ógî?6„ÓI¬_ÿY´ÈøŒlº¿f)gð>GÚ?í᪠pÂ?÷…ýK´D÷? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/test_data_set_0/output_0.pb new file mode 100644 index 000000000..22d7af00b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_einsum_transpose/test_data_set_0/output_0.pb @@ -0,0 +1 @@ + ByJ`¥ÏåóŽ9ü?Ú=±|„áý?Y´ÈøŒlº¿S‰Ìú,œÙ?‚Œ¥BÜEï¿f)gð>GÚ?«É"RÒQï?é•2Ógî?í᪠pÂ?N1ãiYí@6„ÓI¬_ÿ÷…ýK´D÷? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_elu/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_elu/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..66c13b76b2aa65a9b20a2d4e3e958d47d333fe47 GIT binary patch literal 112 zcmd;J7UD@tOwLZtOVKS!EiSQ&;*#NFtPo>)05?=rS literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_elu/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_elu/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_elu/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_elu/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_elu/test_data_set_0/output_0.pb new file mode 100644 index 000000000..542ab30e1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_elu/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?‘¨Ÿ¿ÿ8s?”Ô¾(ÙH¾ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?äî½¾iJ >n“¿쿌S'?±K]?|†¿©C@+6Ä¿Hm;=Hή¾2Ä?ó¼?Šª>…žÁ>œ£–¿³®Ü¿r¿ò >*z?•ç™?Bk$¿Ð’¿FI¦¿P¿}†Ñ¿³ù?vpL¿$ž5¿ ܶ¿œ G? Í¿°;ľüq—¿Æ>0ËL¿èb±¿`¥c½QNÛ>.:ˆ=™Ýš>2}p¿~Ä¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_elu_default/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_elu_default/model.onnx new file mode 100644 index 000000000..e4024db72 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_elu_default/model.onnx @@ -0,0 +1,13 @@ + backend-test:Q + +xy"Elutest_elu_defaultZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_elu_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_elu_default/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_elu_default/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_elu_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_elu_default/test_data_set_0/output_0.pb new file mode 100644 index 000000000..222986cd8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_elu_default/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?‘¨¿ÿ8s?”Ô¾(ÙȽø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?äî=¾iJ >n¿l¿ŒS'?±K]?|¿©C@+6D¿Hm;=HÎ.¾2Ä?ó¼?Šª>…žÁ>œ£¿³®\¿r–¾ò >*z?•ç™?Bk¤¾Ð’…¾FI&¿PB¿}†Q¿³ù?vp̾$žµ¾ Ü6¿œ G? M¿°;D¾üq¿Æ>0Ë̾èb1¿`¥ã¼QNÛ>.:ˆ=™Ýš>2}ð¾~Ä›¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_elu_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_elu_example/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1e53245c285c420c8990ff340da7bdf11981b605 GIT binary patch literal 104 zcmd;J7UD@tOwLZtOVKS!EiSPN;*#NFtPoFq65-Bu!0f(`eCc;%+;{WeA~# z39MlSx16(UqN>b^DnVu#$xy|EMw@v%qke;QK58UAZ zDI(tJ04@H8A~6AHb2!(TS#vM&2BWy3Q`GDczeLwyj@NR98QzWsIs*3_u*0VZyS!oc d#IBw0d4GeNe^mePaPI#&|DqZ78@6=S{{W&kW>o+H literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_equal/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_equal/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f28c2e7d60e64dd26d100686264062dfc6144cef GIT binary patch literal 73 fcmd;J=3wDq72tGYtn#v9Kmm-%JQNPH1dI&;U`7Fh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/model.onnx new file mode 100644 index 000000000..29f9d4481 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/model.onnx @@ -0,0 +1,18 @@ + backend-test:g + +x +yz"Equaltest_equal_bcastZ +x + + + +Z +y + + +b +z +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b8f53b362405c447e39804c4f792c53652b137c7 GIT binary patch literal 254 zcmXw!*$Toi6hsqRYXosC_(4AUMgFl*ViET(o)co>Fq65-Bu!0f(`eCc;%+;{WeA~# z39MlSx16(Uqtn?E3_5c6>zd-y0h~EP-BLf2i0OKkV5dZ)H literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_equal_bcast/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dbc90caa295579bd4c4d5795720a99d0dee1e7a7 GIT binary patch literal 73 acmd;J=3wDq72tGYtn#v9AOINg$O8ai69Iw% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_erf/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_erf/model.onnx new file mode 100644 index 000000000..740dc07bd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_erf/model.onnx @@ -0,0 +1,15 @@ + backend-test:Q + +xy"Erftest_erfZ +x + + + + + b +y + + + + + B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_erf/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_erf/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3530a84348e91858dea1a4820ea3654f57617e99 GIT binary patch literal 12304 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_exp/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_exp/model.onnx new file mode 100644 index 000000000..75c0c6883 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_exp/model.onnx @@ -0,0 +1,13 @@ + backend-test:I + +xy"Exptest_expZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_exp/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_exp/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_exp/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_exp/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_exp/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a43ee3e89f0f26484547cc86a93b737a2e7fa311 GIT binary patch literal 254 zcmV-K~pDhK0yA3KWnLKp7T`K+bcOKQ7d|Kgqb#J~c%R zKK8~mKX<8>Kez>3KxqC{Kwru&KbST>KXq-hKE8r?J`LtMKCBnvK*h%yKkhIkKki48 zKBz+rKz`#(J{0jzKL{MrJ_mTbKWLg6KQB6+KGouQKjv`6Kf}$4KczLTKWD)QKfxU` EKUrC8#{d8T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_exp_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_exp_example/model.onnx new file mode 100644 index 000000000..6617ea376 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_exp_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:A + +xy"Exptest_exp_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_exp_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_exp_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_exp_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_exp_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ff102096db841c467c75e85c29dcc5f9a4c80f0 GIT binary patch literal 21 ccmd;J7GQK@tn}j96t%~WfuX@ZU05LTMtpET3 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/model.onnx new file mode 100644 index 000000000..664a74111 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/model.onnx @@ -0,0 +1,17 @@ + backend-test: +# +data + new_shapeexpanded"Expandtest_expand_dim_changedZ +data +  + +Z + new_shape + + +b +expanded + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..62725e6c7849111239f8380e56ea895e0fafd79d GIT binary patch literal 26 fcmd;J=3o?HbYe+KEJ^g@VPI&mXJBA(03rtfF+2m? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..8d9183b22ed0e9c27b5de187165644f7d2bb9203 GIT binary patch literal 41 gcmd;J7GQVc%u6kgFV09TNcECnVt@cfD9r|?0gfpIlK=n! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_expand_dim_changed/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8aae37547b2d7802372379184dbb4bf46defaf67 GIT binary patch literal 165 vcmd;J;$Y@r6JT`WNUbPH%u7j4@tVNMz|dfi9WyvEFkr(DKyhrCI_3ZX2d3=GKF0mw&S0D|5MG5`Po literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/model.onnx new file mode 100644 index 000000000..938741154 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/model.onnx @@ -0,0 +1,13 @@ + backend-test:| +' +xy"EyeLike* +dtype * +k 'test_eyelike_populate_off_main_diagonalZ +x +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_eyelike_populate_off_main_diagonal/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..29bf3c25b7e5e4db2271f1a47e5255ef7919a93d GIT binary patch literal 91 zcmd;J;b0YDb7HLU3eaI-V9*C*2OxHaVoo3(48)>9tOCU0K9tOCU0K9tOCU0Kn+a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4141d1e424660456f30d73144f44955aa797e1e6 GIT binary patch literal 122 zcmd;J7UD@tOwLZtOVKS!EiSQ2;gaEEOcY{FQet<@Nh~Qz&C}xMVo9vXES6wcz{n&d z1X2~B29b&fi5o;ogLH^-iEuCq32-rSFaa?$5VHU=YmzV*W0DXb7Y|U911P`<#1&3V G0-ON;^B0T& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/test_data_set_0/input_0.pb new file mode 100644 index 000000000..9cd476ae7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b8af61450 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis0/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +xBbJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis1/model.onnx new file mode 100644 index 000000000..b7a1f6af7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis1/model.onnx @@ -0,0 +1,14 @@ + backend-test:d + +ab"Flatten* +axis test_flatten_axis1Z +a + + + + +b +b +  + +QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c6d529fcd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis1/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +<BbJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/model.onnx new file mode 100644 index 000000000..473f36a29 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/model.onnx @@ -0,0 +1,14 @@ + backend-test:d + +ab"Flatten* +axis test_flatten_axis2Z +a + + + + +b +b +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..9cd476ae7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/test_data_set_0/output_0.pb new file mode 100644 index 000000000..16f29d667 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis2/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BbJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/model.onnx new file mode 100644 index 000000000..f455575b8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/model.onnx @@ -0,0 +1,14 @@ + backend-test:d + +ab"Flatten* +axis test_flatten_axis3Z +a + + + + +b +b +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/test_data_set_0/input_0.pb new file mode 100644 index 000000000..9cd476ae7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a9787fdf1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_axis3/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BbJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/model.onnx new file mode 100644 index 000000000..9e5990ad2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/model.onnx @@ -0,0 +1,13 @@ + backend-test:^ + +ab"Flattentest_flatten_default_axisZ +a + + + + +b +b +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/test_data_set_0/input_0.pb new file mode 100644 index 000000000..ec5cd2936 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/test_data_set_0/output_0.pb new file mode 100644 index 000000000..9ad6a5cc4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_default_axis/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BbJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/model.onnx new file mode 100644 index 000000000..f88bf444e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/model.onnx @@ -0,0 +1,14 @@ + backend-test:v +% +ab"Flatten* +axisÿÿÿÿÿÿÿÿÿ test_flatten_negative_axis1Z +a + + + + +b +b +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..9cd476ae7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a9787fdf1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis1/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BbJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/model.onnx new file mode 100644 index 000000000..7d447388e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/model.onnx @@ -0,0 +1,14 @@ + backend-test:v +% +ab"Flatten* +axisþÿÿÿÿÿÿÿÿ test_flatten_negative_axis2Z +a + + + + +b +b +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..9cd476ae7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/test_data_set_0/output_0.pb new file mode 100644 index 000000000..16f29d667 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis2/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BbJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis3/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis3/model.onnx new file mode 100644 index 000000000..4da7bbd4c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis3/model.onnx @@ -0,0 +1,14 @@ + backend-test:v +% +ab"Flatten* +axisýÿÿÿÿÿÿÿÿ test_flatten_negative_axis3Z +a + + + + +b +b +  + +QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis3/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis3/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c6d529fcd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis3/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +<BbJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/model.onnx new file mode 100644 index 000000000..2e1d117e5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/model.onnx @@ -0,0 +1,14 @@ + backend-test:v +% +ab"Flatten* +axisüÿÿÿÿÿÿÿÿ test_flatten_negative_axis4Z +a + + + + +b +b +  + +xB \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/test_data_set_0/input_0.pb new file mode 100644 index 000000000..9cd476ae7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b8af61450 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_flatten_negative_axis4/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +xBbJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_floor/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_floor/model.onnx new file mode 100644 index 000000000..d4f266ba9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_floor/model.onnx @@ -0,0 +1,14 @@ + backend-test:M + +xy"Floor +test_floorZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_floor/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_floor/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_floor/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_floor/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_floor/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b84ba0bfe8cbced78d73d90e716fb9955e6e57ff GIT binary patch literal 254 zcmY+6OAdfA2n8W((xo?&xb#NudNVmvk06ha9}+@grmszHZp+F$pT}ULzR_C}d%xm@ zS#Ml^ZYX{$2U9cweB_9=T3ca9#y7_uO&3mbck$m?wKHVY-4NL0+FHyfcvd(!xNIm9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_floor_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_floor_example/model.onnx new file mode 100644 index 000000000..a0ace88d6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_floor_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:E + +xy"Floortest_floor_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_floor_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_floor_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7b703a3a4117b402de12a38c2aba69635f45f343 GIT binary patch literal 21 ccmd;J7GQK@tnlJtU^uXU*36mq3=9ko04}5i_y7O^ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_floor_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_floor_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..93002678ce38f85c627fa87b98c5d7c04e204faa GIT binary patch literal 21 acmd;J7GQK@tn}hxU|=}Fz|de1q#XbqrvmN( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gather_0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..764b311f0bc35f8e2e7e8d8a2608591472f4dbfb GIT binary patch literal 163 zcmd;J7UD@tOwLZtOVKS!EiSR@VdPThVo6CXN#tVB%uC5kPAwK_T9vBxx?jN+dlXwQxO7Oahz$M`a#d literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/input_0.pb new file mode 100644 index 000000000..663f5c964 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..bfcd20aadc56e5888da9e76d7563bd603ff0eebe GIT binary patch literal 39 dcmd;J7GQT`&&*57OinHKl3;)WMkvh;r2%g&1F--A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/output_0.pb new file mode 100644 index 000000000..aacfe4ef5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gather_0/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gather_1/model.onnx new file mode 100644 index 000000000..bd85de6ef --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gather_1/model.onnx @@ -0,0 +1,21 @@ + backend-test:Œ +' +data +indicesy"Gather* +axis  test_gather_1Z +data + + + + +Z +indices + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..663f5c964 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..bfcd20aadc56e5888da9e76d7563bd603ff0eebe GIT binary patch literal 39 dcmd;J7GQT`&&*57OinHKl3;)WMkvh;r2%g&1F--A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ee50b9068 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gather_1/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJèxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/model.onnx new file mode 100644 index 000000000..f2a2301b9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/model.onnx @@ -0,0 +1,18 @@ + backend-test: +' +data +indicesy"Gather* +axis test_gather_2d_indicesZ +data +  + +Z +indices +  + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/test_data_set_0/input_0.pb new file mode 100644 index 000000000..37c74aca0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ$xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_2d_indices/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0ce468e7ec04518223777c65f7275fa62a6ffc9f GIT binary patch literal 33 dcmd;J8Dg>VZ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_0/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_0/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..65897f5c3689cd77dd4f3fadaac9ba0357d16778 GIT binary patch literal 49 dcmd;J;$RYBcVf@XOUX=5E%s7iKm&|ud;pI?1HS+O literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_0/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f721f24f9f0d24bdcb007a4e8f6df5da6bb0af51 GIT binary patch literal 27 ccmd;J;$RYBbYiUZ5@29xu!mv?1_lQQ04~e}`Tzg` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..72ae049cb0bc32c1e751490dfa0dc144ea59ccf9 GIT binary patch literal 168 zcmd;J72-)sOwLZtOVKS!EiSQ|$jGJ7#gdX(lE}rLnU|88oLVfzSgFM4o>-ERTI8CO znwy$eQmncN6eOaj~h-{&O% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..670c322dbf3a305b7360939365c052f0793ae4b0 GIT binary patch literal 50 wcmd;J=3o|JbYe+KEJ^fIVPI&mXJBA(03sl60OAEed;o|a05O9j1A~Ag0L#D#M*si- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e6b50a51db2570eec119131bda299b649854aa5f GIT binary patch literal 65 jcmd;J;$RkFcVf@XOUX=5E%q{CWPkuBC=H{~`7m(+&kh6B literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..14166cc7c09291e84aa5072b6806bebf036d8d56 GIT binary patch literal 35 lcmd;J;$RkFbYiUZl3-wHaA06yaAaU`0MZXYY#?@U002vS1f~E0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_negative_indices/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gather_elements_negative_indices/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..09f24a7f21e223ebcbf2fb7d13bd6bca7db3ed13 GIT binary patch literal 183 zcmd;J6XHoqOwLZtOVKS!EiSQIz{sV~#gdX(lE}rLnU|88oLVfzSgFM4o>-ERTI8CO znwy$eQmn=mVo6CXN#tVB%uC5kPAwKk<>9eF$r)30JY^K;{X5v literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gather_negative_indices/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gather_negative_indices/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6feb34d016231a16509f1ef9a4d1df964752ea4b GIT binary patch literal 52 tcmd@Bbm-8B42LP8&2e|+M literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_float32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_float32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e74ff0acf04aefa7a3645b1dee754436d254f0b6 GIT binary patch literal 51 hcmd;J;$Y-p5@2^?&&*57OinHKQec1rMl>2G4girR1IYjY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_float32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_float32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ea0b7d1d79fb696740d75350246b8e5d5ce1b070 GIT binary patch literal 34 kcmd;J;$Y-p5@2*<%P%b{C@t|4U|?Wy03sl60OAD>09v^P;s5{u literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/model.onnx new file mode 100644 index 000000000..6db1f8bf1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/model.onnx @@ -0,0 +1,16 @@ + backend-test:‰ +! +data +indicesoutput"GatherNDtest_gathernd_example_int32Z +data +  + +Z +indices +  + +b +output + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4bc8485f4581e3dcd7e2e1b501383f1e5cfb68d1 GIT binary patch literal 30 fcmd;J;$RYBb7DzJEJ^edU;qL}AZ7w$W*`OtGF$>{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..44cc4034056a47d9a03c668f9074eea9b6145c02 GIT binary patch literal 49 fcmd;J;$RYBcVf@XOUX=5E%s7iKm&|WK8ywck4OW+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bc07bbf1645d00806f1c3f5e9f3e81185617d897 GIT binary patch literal 22 acmd;J5@2&;%P%b{C@t~gU;qMUAO-+0F9UA? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/model.onnx new file mode 100644 index 000000000..a383c78c5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/model.onnx @@ -0,0 +1,19 @@ + backend-test:¯ +4 +data +indicesoutput"GatherND* + +batch_dims &test_gathernd_example_int32_batch_dim1Z +data + + + +Z +indices +  + +b +output +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ab873d2a20e6cc45b09adaff3349e39d572f097f GIT binary patch literal 48 pcmd;J;s8PcHYb*p#F9iW1qL8s1Y#y2W(HywAZ7((HXvpPVgOyl0-FE; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..76c523359a7ea7ee5b3b6406c87718c8bf57dda3 GIT binary patch literal 33 bcmd;J;$ReDcVf@XOUX=5E%p*%WIzP~QZfUs literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gathernd_example_int32_batch_dim1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..227b48af69b7f5d23ff72912847d34a10b5f789e GIT binary patch literal 32 icmd;J;$RYBb7IRcEh#81@e*KSU|?VdViq7~1!4e9!vl-} literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2a8d93f40a677222776581c2f97affc2ca1add5e GIT binary patch literal 216 zcmd;J6XHoqOwLZtOVKS!EiSP-$jBAQ#hA#&n8d}HEW}u;#NwWso2$jo#hRE?kdY|L zz|df~fRRy)kBcQKwIos0*myIT&&$PDQk0li>?pywfRRZH#&rU7g(N^`$EO2LicieR ziBBvkDauSL1qwz911%HcB*+L9WK9AJRw4;9 Kg9M$J1h@g^`Y3q- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_0.pb new file mode 100644 index 000000000..53f90be01 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJ0  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_1.pb new file mode 100644 index 000000000..e5347a9d5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJP^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_2.pb new file mode 100644 index 000000000..a9cf36e7f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BcJ‰Œé>ã„?í™<\?N²? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/output_0.pb new file mode 100644 index 000000000..981b51174 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_all_attributes/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ<uÂ>¤÷>âÀ>®Ú>¼ä>îßÈ>¾í"?„?*'?†M?¸ÀØ>L’#?n´þ>ŠXþ>»£? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..262a97e2bb743e471e8619f771c7d26367cd7681 GIT binary patch literal 161 zcmd;J6XHoqOwLZtOVKS!EiSR@V&qchVoc;>OyXip7GkVaVsTH+&DG-PVol5`$Ve1r zU|_Icz{n`X4^kbU4wQ=rOGF6+bqVot@o+E-ad0tlFat3wNH7UWkQFG%0uoF{5@ZAk RCIJO2kpw~7S)7;zxB()>80i22 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_0.pb new file mode 100644 index 000000000..ee690bab0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_1.pb new file mode 100644 index 000000000..6945e22c7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJPÙp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_alpha/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..7077e4ffe336e33efce98d917289ebaaea95ee96 GIT binary patch literal 27 Ucmd;J´Æ•?D¾?\Ø„? ?íps?½ß?No?à ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3c40891571dbb7ae86e0c6ed1a36576e18818e81 GIT binary patch literal 159 zcmd;J6XHoqOwLZtOVKS!EiSR@VB}KbVoc;>OyXip7GkVaVsTH+&DG-LVo6FZNfc#Z zV6b1n$SA}IQXHQSl!^z5M+pP<2=Q_8a4-sSa4~T(0WmvBFbPSJ9Vo~G5==%CWCRH& Q0R=0O1VP$aoR|c-0j}j35dZ)H literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_0.pb new file mode 100644 index 000000000..b8f458ac2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJ8  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_1.pb new file mode 100644 index 000000000..369305110 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJpZ{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_2.pb new file mode 100644 index 000000000..257550d45 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BcJõ—2?ü®v=9±*?ì®+? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/output_0.pb new file mode 100644 index 000000000..257d11549 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_beta/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ Ë<ë?X{-@ìV @Ε3@ä€@5¡X@7.+@ÄŠ^@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/model.onnx new file mode 100644 index 000000000..e6b2ba486 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/model.onnx @@ -0,0 +1,21 @@ + backend-test:‡ + +a +b +cy"Gemmtest_gemm_default_matrix_biasZ +a +  + +Z +b +  + +Z +c +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_0.pb new file mode 100644 index 000000000..e0263dc80 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJH  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_1.pb new file mode 100644 index 000000000..2afad68ca --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJ`H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_2.pb new file mode 100644 index 000000000..f7941271b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BcJ0õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/output_0.pb new file mode 100644 index 000000000..25be287dc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_matrix_bias/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +ByJ0ka@ƒ2@žô@°ä*@§Û?ýÌP@Pè @ +Â'@œ@C®@Ž´@bDÍ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/model.onnx new file mode 100644 index 000000000..713c2c63a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/model.onnx @@ -0,0 +1,18 @@ + backend-test:k + +a +by"Gemmtest_gemm_default_no_biasZ +a +  + + +Z +b +  + + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c697d4a45 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ + +BaJP  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/input_1.pb new file mode 100644 index 000000000..33a04e66f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ + +BbJx»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_no_bias/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a2d1ea89d23f94bf070f5a18a7ea8029f452b76e GIT binary patch literal 35 qcmd;J;$RkFbYiUZk`P}O?;!9n*&&5T%7MYiz+rN`t%J#VVFv(zPY8|x literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c5501990f8c8d7de753c6ca90f13d749e5a492fa GIT binary patch literal 149 zcmd;J6XHoqOwLZtOVKS!EiSRD=Mv&#Oypur;$ln|VyskRaZk<76_N$X#is+A@hPck ziKRIu@x{rBIf+H_NtuboQNlniLVR329E?I7TudBHK+FshOhOW51`4u7af6Iy<6;4- TWJm(4s6QY%? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/input_1.pb new file mode 100644 index 000000000..a8407d404 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJ0n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/input_2.pb new file mode 100644 index 000000000..8a37e5403 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BcJÃõH@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_scalar_bias/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1e8cfac7abe16f763a0bd1dddf8e8082ea560abe GIT binary patch literal 43 zcmd;J;$RVAbYiUZQc(7QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/input_1.pb new file mode 100644 index 000000000..4c02a907a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJT¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/input_2.pb new file mode 100644 index 000000000..c2b01ea8f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BcJõ—2? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/output_0.pb new file mode 100644 index 000000000..e8c7e349a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_single_elem_vector_bias/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ$œ7@×[-@͆2@UX@ÚN@‚nT@[)@ @*…8@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/model.onnx new file mode 100644 index 000000000..d85b483c0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/model.onnx @@ -0,0 +1,21 @@ + backend-test:‡ + +a +b +cy"Gemmtest_gemm_default_vector_biasZ +a +  + +Z +b +  + +Z +c +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_0.pb new file mode 100644 index 000000000..b8f458ac2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJ8  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_1.pb new file mode 100644 index 000000000..369305110 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJpZ{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_2.pb new file mode 100644 index 000000000..257550d45 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BcJõ—2?ü®v=9±*?ì®+? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_vector_bias/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..151d42666b4d1312eab4c508f721edd46dabd97d GIT binary patch literal 43 zcmd;J;$RVAbYiUZQb_s8?XWFF-$8h-oWmM!PlrdBO&lioMLEQ^I5;d~C~*J)`@Riz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/model.onnx new file mode 100644 index 000000000..eea18fe76 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/model.onnx @@ -0,0 +1,21 @@ + backend-test:… + +a +b +cy"Gemmtest_gemm_default_zero_biasZ +a +  + +Z +b +  + +Z +c +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_0.pb new file mode 100644 index 000000000..ee690bab0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_1.pb new file mode 100644 index 000000000..6945e22c7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJPÙp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_default_zero_bias/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..7077e4ffe336e33efce98d917289ebaaea95ee96 GIT binary patch literal 27 Ucmd;JQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/test_data_set_0/input_1.pb new file mode 100644 index 000000000..2afad68ca --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJ`H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeA/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..7077e4ffe336e33efce98d917289ebaaea95ee96 GIT binary patch literal 27 Ucmd;JPKR`L32|%xc4?wDj R>Ob9YJwT#q;6I!&06-I%6jlHL literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/model.onnx new file mode 100644 index 000000000..e7dcfc267 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/model.onnx @@ -0,0 +1,22 @@ + backend-test: +! +a +b +cy"Gemm* +transB test_gemm_transposeBZ +a +  + +Z +b +  + +Z +c +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_0.pb new file mode 100644 index 000000000..e0263dc80 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJH  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_1.pb new file mode 100644 index 000000000..165ae220b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJ`H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gemm_transposeB/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..7077e4ffe336e33efce98d917289ebaaea95ee96 GIT binary patch literal 27 Ucmd;J“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool/test_data_set_0/output_0.pb new file mode 100644 index 000000000..11253b30d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ ýIó>o¶F¾w‘¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool_precomputed/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool_precomputed/model.onnx new file mode 100644 index 000000000..6b0bb2a1f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool_precomputed/model.onnx @@ -0,0 +1,15 @@ + backend-test:y + +xy"GlobalAveragePool"test_globalaveragepool_precomputedZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool_precomputed/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_globalaveragepool_precomputed/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f170252f2f77bc246d8d0ed4a58bb6ed9e6fd42c GIT binary patch literal 51 xcmd;J“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool/test_data_set_0/output_0.pb new file mode 100644 index 000000000..68ac3d729 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ ©C@³ù?âב? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool_precomputed/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool_precomputed/model.onnx new file mode 100644 index 000000000..c7db3bd8e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool_precomputed/model.onnx @@ -0,0 +1,15 @@ + backend-test:q + +xy" GlobalMaxPooltest_globalmaxpool_precomputedZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool_precomputed/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_globalmaxpool_precomputed/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f170252f2f77bc246d8d0ed4a58bb6ed9e6fd42c GIT binary patch literal 51 xcmd;J“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1424d7297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3c4514fc593db4b1e2b137bf7f9e15073fc38954 GIT binary patch literal 79 zcmd;J=3wDq72tGYPcKSMEJ-c$vS9=P1|WnGU>*aI$H)L9fi#c}=0ceur62?V3kC!e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/model.onnx new file mode 100644 index 000000000..8244ce90d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/model.onnx @@ -0,0 +1,18 @@ + backend-test:w + +x +ygreater"Greatertest_greater_bcastZ +x + + + +Z +y + + +b +greater +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/input_1.pb new file mode 100644 index 000000000..dcbe531c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_bcast/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..086fbce5357d347d5ba25bbecab714d1ad31609a GIT binary patch literal 79 wcmd;J=3wDq72tGYPcKSMEJ-c$vS9=P1~3UD7{FYp7z30CqCt=m%!jA|01S!*A^-pY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/model.onnx new file mode 100644 index 000000000..1d2dcbf96 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/model.onnx @@ -0,0 +1,19 @@ + backend-test:’ +% +x +y greater_equal"GreaterOrEqualtest_greater_equalZ +x + + + +Z +y + + + +b# + greater_equal +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1424d7297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ef2676775a30cd499492561b4c552fde77ce3698 GIT binary patch literal 85 zcmd;J=3wDq72tH@O)pAKEJ-bjPc1A>%<-~e1OWyhgb-jJ1CYna03(4kkPYTSnINSg F1OURy29N*% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/model.onnx new file mode 100644 index 000000000..6d0c362c2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/model.onnx @@ -0,0 +1,18 @@ + backend-test: +% +x +y greater_equal"GreaterOrEqualtest_greater_equal_bcastZ +x + + + +Z +y + + +b# + greater_equal +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/input_1.pb new file mode 100644 index 000000000..dcbe531c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..de5062272b0bde0b3d2820c5f21acdba61d34e0f GIT binary patch literal 85 zcmd;J=3wDq72tH@O)pAKEJ-bjPc1A>%<-~e1OWyx2_qQ5T&NfWln0_gkP*y>r~m-O CP6nR< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/model.onnx new file mode 100644 index 000000000..31f63dec8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/model.onnx @@ -0,0 +1,24 @@ + backend-test:œ +L +x +y;GreaterOrEqual_test_greater_equal_bcast_expanded_functionO1"Greater +J +x +y;GreaterOrEqual_test_greater_equal_bcast_expanded_functionO2"Equal + +;GreaterOrEqual_test_greater_equal_bcast_expanded_functionO1 +;GreaterOrEqual_test_greater_equal_bcast_expanded_functionO2 greater_equal"Or!test_greater_equal_bcast_expandedZ +x + + + +Z +y + + +b# + greater_equal +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..dcbe531c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_bcast_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..de5062272b0bde0b3d2820c5f21acdba61d34e0f GIT binary patch literal 85 zcmd;J=3wDq72tH@O)pAKEJ-bjPc1A>%<-~e1OWyx2_qQ5T&NfWln0_gkP*y>r~m-O CP6nR< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/model.onnx new file mode 100644 index 000000000..ebc0ab20b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/model.onnx @@ -0,0 +1,25 @@ + backend-test:† +F +x +y5GreaterOrEqual_test_greater_equal_expanded_functionO1"Greater +D +x +y5GreaterOrEqual_test_greater_equal_expanded_functionO2"Equal + +5GreaterOrEqual_test_greater_equal_expanded_functionO1 +5GreaterOrEqual_test_greater_equal_expanded_functionO2 greater_equal"Ortest_greater_equal_expandedZ +x + + + +Z +y + + + +b# + greater_equal +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1424d7297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_greater_equal_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ef2676775a30cd499492561b4c552fde77ce3698 GIT binary patch literal 85 zcmd;J=3wDq72tH@O)pAKEJ-bjPc1A>%<-~e1OWyhgb-jJ1CYna03(4kkPYTSnINSg F1OURy29N*% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gridsample/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gridsample/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e0abc2bd9ab0765924d903424635a6ddbdf396e1 GIT binary patch literal 225 zcmdm7?eer?>PTX!dC^|jSyeNx3?gf$etXJ*__N_ Yf2qej)>BT8*`5E{@ceIk(_MV(1A()DF#rGn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gridsample/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gridsample/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9488b8ba899b5e9cb7367a1fffc516c9055018ee GIT binary patch literal 160 zcmd;J1hrO3>$!ACmoE99|Og5fOIjC{sW}B9T^xT9M7Inahx@CB~WY) oP@SP;TAH1sv9UK$E&?cb2dLixD0c)XcM)jbJ)pkVK(PV`0FQAur~m)} literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gridsample_aligncorners_true/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gridsample_aligncorners_true/model.onnx new file mode 100644 index 000000000..2ff754b64 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gridsample_aligncorners_true/model.onnx @@ -0,0 +1,25 @@ + backend-test: +C +X +GridY" +GridSample* + align_corners * +mode"bilinear !test_gridsample_aligncorners_trueZ +X + + + + +Z +Grid + + + + +b +Y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gridsample_aligncorners_true/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gridsample_aligncorners_true/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d0c8ea512f30fff1435dcb36f6e3edd2ef31c528 GIT binary patch literal 39 kcmd;Jo?*IS* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gridsample_bicubic/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gridsample_bicubic/model.onnx new file mode 100644 index 000000000..23390519d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gridsample_bicubic/model.onnx @@ -0,0 +1,24 @@ + backend-test:¡ +, +X +GridY" +GridSample* +mode"bicubic test_gridsample_bicubicZ +X + + + + +Z +Grid + + + + +b +Y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gridsample_bicubic/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gridsample_bicubic/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d0c8ea512f30fff1435dcb36f6e3edd2ef31c528 GIT binary patch literal 39 kcmd;J)<2*C>uFfc4QaQ2MPJ`e_qIU-|(_yV9F5QfMD E07Xp|r2qf` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gridsample_border_padding/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gridsample_border_padding/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c61638df4a7e569ee69aaf09b3ce00b45a0d9d90 GIT binary patch literal 47 kcmd;J)<2*C>uFfc4QaQ2MPJ`e_qIU-|(_yV9F5QfMD E07Xp|r2qf` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gridsample_reflection_padding/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gridsample_reflection_padding/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0adcf14b73e10220af7d00847b51b7453d462d13 GIT binary patch literal 47 rcmd;J)<2*C>uFfc4QaQ2MPJ`e_qIU-|(_yV9F5QfMD E07Xp|r2qf` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gridsample_zeros_padding/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gridsample_zeros_padding/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..909b699ef274f004e83c1cebae9fed567672507b GIT binary patch literal 47 fcmd;JÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/input_2.pb new file mode 100644 index 000000000..213bb3fa0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BRJ°ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/output_0.pb new file mode 100644 index 000000000..7f5281e00 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/output_0.pb @@ -0,0 +1,7 @@ +BYJH +ÞB> +ÞB> +ÞB> +ÞB> +ÞB> +ÞB>W3>W3>W3>W3>W3>W3>fUÇ=fUÇ=fUÇ=fUÇ=fUÇ=fUÇ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/output_1.pb new file mode 100644 index 000000000..a9c91371f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gru_batchwise/test_data_set_0/output_1.pb @@ -0,0 +1,7 @@ +BY_hJH +ÞB> +ÞB> +ÞB> +ÞB> +ÞB> +ÞB>W3>W3>W3>W3>W3>W3>fUÇ=fUÇ=fUÇ=fUÇ=fUÇ=fUÇ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_defaults/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gru_defaults/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5ff1c0fe40984a187cb335d2b51cbd35c174dbe8 GIT binary patch literal 187 zcmd;J7vf1uOwLZtOVKS!EiSQI!pNn`#TdcG7|z8QB*Y-Z92uXX#OxjvswKq5ospT6 zlA0G^oLQAB!McEvNk|Z+CqBKXG(IIYEwMDGq&P|(s9Q*gOMrt>h=+@bgAs_CftU#- d5soIo50ePOBEgy@$px|yYM>yYM>yYM>yYM>ì¶L>ì¶L>ì¶L>ì¶L>ì¶L> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5c79aad3f2b13aaa63bcc0fb21033d78ea3f024a GIT binary patch literal 213 zcmd;J7vf1uOwLZtOVKS!EiSRz$H=9_#TdcG7|z8Q#Kq_~~R8K0rV>>d=VCB(&@ zk(rW`nipT3S(Pfmx`2^MNEoCoKE0?kzBsioJ|{IVy(A+_9B71)5SIW4qYw`l69*Fz zGlMWlA{lOI{“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_2.pb new file mode 100644 index 000000000..0b3c5c433 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BRJ¬FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_3.pb new file mode 100644 index 000000000..97393a9a5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/input_3.pb @@ -0,0 +1,2 @@ +BBJxÙºÀ>*¹Œ¿­²˜>Ç©?3Ï1¿Ì9¾rÌÞ¾­´ì?‚,?ÖžÐ>8E¿< +?¡,¿Â`=ÏÆ"¿»*-?u›?ELU¾dÁÊ>qé‹¿‡á¾¿ó÷à>u¬*>l‘"?r…@hÉq?¸®i¿dúŽ?§o¨¿ÑTì¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/output_0.pb new file mode 100644 index 000000000..6116cf946 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_gru_seq_length/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BY_hJÀ/”º$\¾ž€ó³øzà¶ž™=XO7¶X¼èÃ!­d°.>#<Ѐâ±O\L¹ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5d7e933cd5c2885e9b75c5dadf37d9f1758bed21 GIT binary patch literal 220 zcmd;J7vf1uOwLZtOVKS!EiSP-%E+a|#TdcG7|z8Q#Kq_~~R8K0rV>>d=VCB(&@ zk(rW`nipT3S(PfmynvBOND8DaKE0?kzC5!eBR(@Pvm`SyCq5}Nu{cT`Xp)c+mjDN& z5Dym<2O|(OgD^-U98H1~CJ}^HLKx&0J}w@hQ5;aCgpwq=KyE`*54ORHNq`Rkezqd( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_gru_with_initial_bias/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9cb9bf0ac34f11b9f5aad7933812673878f5f792 GIT binary patch literal 49 vcmd;JyYM>yYM>Š>Š>Š>)G™=)G™=)G™= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e117bc908d4f2e88a89fc0e0bfd50047e2ec2a9d GIT binary patch literal 123 zcmd;J7vf1uOwLZtOVKS!EiSQ2<&xoItPo“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_0/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a6b15b507304a73648460b5f42253aaaed5fb3ad GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8$iUEG&j1D>8pZ|*AhRJVAYw3eFnM$uT`x=?n;9@MbQ-1y MMw2QJQ;(@10IstU82|tP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/model.onnx new file mode 100644 index 000000000..fc51e2ab8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/model.onnx @@ -0,0 +1,14 @@ + backend-test:e + +xy"Hardmax* +axis test_hardmax_axis_1Z +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f31bbeb2296c01702ddc691f445db52773d393b GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8$iUEG&j1D>8ipYv#E~%lxKyLdqw|sV!R*JS23;H“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_axis_2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f7afee97729f562be906a7c88d648ae44bc7aef8 GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8$bbSG>=9gKHcXUQF_?M~jjjiokIaVY!6t@F4qYuFJ_7>) DOH&IW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/model.onnx new file mode 100644 index 000000000..0e739da48 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/model.onnx @@ -0,0 +1,13 @@ + backend-test:^ + +xy"Hardmaxtest_hardmax_default_axisZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_default_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f7afee97729f562be906a7c88d648ae44bc7aef8 GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8$bbSG>=9gKHcXUQF_?M~jjjiokIaVY!6t@F4qYuFJ_7>) DOH&IW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/model.onnx new file mode 100644 index 000000000..982284e76 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:Q + +xy"Hardmaxtest_hardmax_exampleZ +x +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..433614e247e99ce2cd456a38b736b8fa3290938e GIT binary patch literal 75 wcmd;J;b0M9bYiUVa$sO^0Adhmum=(j5WE0LgZV%%2!PmNbq-)IT&;rx04oLu%K!iX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a0fb2a75d6fbe057d1793fc00eedaac0d6758dfd GIT binary patch literal 75 bcmd;J;b0M9bYiUZa$sO+uxG#k#ESs{zj_30 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/model.onnx new file mode 100644 index 000000000..3672c1628 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/model.onnx @@ -0,0 +1,14 @@ + backend-test:u +% +xy"Hardmax* +axisÿÿÿÿÿÿÿÿÿ test_hardmax_negative_axisZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_negative_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f7afee97729f562be906a7c88d648ae44bc7aef8 GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8$bbSG>=9gKHcXUQF_?M~jjjiokIaVY!6t@F4qYuFJ_7>) DOH&IW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_one_hot/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_one_hot/model.onnx new file mode 100644 index 000000000..cd0b6a0e5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_one_hot/model.onnx @@ -0,0 +1,11 @@ + backend-test:Q + +xy"Hardmaxtest_hardmax_one_hotZ +x +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardmax_one_hot/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardmax_one_hot/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9f8805fef1e8abe17ef51378762430f0186b1276 GIT binary patch literal 27 Zcmd;J“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb2d84b64217fc0617f8cee9995b1b76370485f9 GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8$iUEG|K*~OJ&1;355Xt4Aoe>;Hv5od9(xH5Kl}NdI$(KE z=4$(8I-2&fSwZ%N{w`p#FKhqVnXGZNkCQUAV*r8#=UlLORAv^C4>Fg5fu&U5{@Y?k zusBHUb)K%hHKUh(-z|Bto;;;nb~one!sVm5FWA+ce`@zZWH!((FwkJXc-IEIiM)rw zdNSl{!DjRA{bP6GwY1#=d2f4>{0(*vE9Gny{)yV_$|~721UlHeUYKAvGwhlj E02m5J#Q*>R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/model.onnx new file mode 100644 index 000000000..34a13728c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/model.onnx @@ -0,0 +1,13 @@ + backend-test:a + +xy" HardSigmoidtest_hardsigmoid_defaultZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_default/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bd3a10659195b46d4fcb680c2cd32cc131b88062 GIT binary patch literal 254 zcmV`8EAKd@| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardsigmoid_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c7cb5d38842aaf570fb776884738a124a32180a4 GIT binary patch literal 21 ccmd;J7GQK@tn}i!aORBdteKMb3=9qS06QE89smFU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardswish/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_hardswish/model.onnx new file mode 100644 index 000000000..e4ed18be1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardswish/model.onnx @@ -0,0 +1,13 @@ + backend-test:U + +xy" HardSwishtest_hardswishZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardswish/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardswish/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardswish/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardswish/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardswish/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5e8478e33a6fb2977e9d306bf31e04170a5c43a0 GIT binary patch literal 254 zcmVKX8lsKlbgxKLoF+z6u~9KaeYv zy>=chJ_@FRJ>PJGKGN4cJ}o|vKO?upy_f_sK1*htzEs3Q zzCg&!KF@~^KkWUEzDO(oKY`M}z9LD!JbJgYz56$mKNJ~^KXcrsJ(dPqK05@Uz8*%b zz8QHPzWZ^gJ>d>sKdhElKO?m)zN;<^zS5hnzCm=qzKLGEzP||0Kd+ovzN3miz6Qy< zzU`j+KAYsezS(8Uy=2g!zD%TFK4kz|zTQi>zBRLCyepo1K5ah>J=1zBJ|+!-zE?ye EzKsxcqyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4affd0bcf02f30b023370ac3d9fbcc9a7785976f GIT binary patch literal 258 zcmd;J7vf1uOwLZtOVKS!EiSQo&B&F=#aJPv=aE>H5?r2HoDmNakIw*di^1H~ih{(v zl+={?w9>rflFa-(kKp(SC2p|#%=Fy+%oHttF4n}Hf{aAb)vL7Z7BDhu@o}*vrIsX$ zGB7aM1NmImKr6UNv_gonQi<8OG)G7rhl8TTK@Jz<65wDI;^AWAUpN# JaAFeR0{|f{NWcI9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_hardswish_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5e8478e33a6fb2977e9d306bf31e04170a5c43a0 GIT binary patch literal 254 zcmVKX8lsKlbgxKLoF+z6u~9KaeYv zy>=chJ_@FRJ>PJGKGN4cJ}o|vKO?upy_f_sK1*htzEs3Q zzCg&!KF@~^KkWUEzDO(oKY`M}z9LD!JbJgYz56$mKNJ~^KXcrsJ(dPqK05@Uz8*%b zz8QHPzWZ^gJ>d>sKdhElKO?m)zN;<^zS5hnzCm=qzKLGEzP||0Kd+ovzN3miz6Qy< zzU`j+KAYsezS(8Uy=2g!zD%TFK4kz|zTQi>zBRLCyepo1K5ah>J=1zBJ|+!-zE?ye EzKsxcqyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_identity/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_identity/model.onnx new file mode 100644 index 000000000..717d47bc1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_identity/model.onnx @@ -0,0 +1,15 @@ + backend-test:[ + +xy"Identity test_identityZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_identity/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_identity/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2dc664213538a7ba6f72930f35bdd8bcc70fbe0b GIT binary patch literal 31 jcmd;J0GhZ4)c^nh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_identity_opt/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_identity_opt/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..caf27fcf2a739f6d3851d332745cedb77b240371 GIT binary patch literal 43 tcmd;L&o3y6&o3C(vgG0f^QG^zq^buSnZ6k`3f{B7#AEl$O=w{QZsEfnF zaUA~#KLBqc{tK3QLn~)W>%aM+Bgpp#yGCU5lEX zR9|R$_=jdeg;~_%d03)V*b{vP{h+*IOW5qU>-MvQIx=W-5_QqG@%cVyNIKpFzV%Ew literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_if/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_if/test_data_set_0/input_0.pb new file mode 100644 index 000000000..a61228b1b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_if/test_data_set_0/input_0.pb @@ -0,0 +1 @@ + BcondJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_if/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_if/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5371ef38811720db2734bb66c89056ea8192d0be GIT binary patch literal 31 hcmd;J6<~B?E=n!-5@BFyuxDUkZ~!78ZUEv14ggHM1uFmm literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_if_opt/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_if_opt/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..bbac0ae9f2e58ed47eb2e1e1129ad9a5dc56d310 GIT binary patch literal 419 zcmZ{gy-tKc6oqGSFqg|paAKo{F~nGq*qGSZxN$4Dv9Plt{LF@pI3NsWvD(_Fpzs}h z2cK#O7BulExwpFKe&^%>@JSTLk3uHrN>u9VZ3jOMWN|JN4wZPWg^Yz~+%EhNinhoq z5kzGumohtYd}8_;ntHd7(VGE7UTVVaBa(kUVLkQK|);&s}u92_gbe&d>m}rKbOi zwn~K@gQq&Tqvbs+5Ko0_zR~_6GSw8K{KeVh)|S$_p5hO}Ki=H#S`C(qKpQ?dL$SNa Rz~ZFKK34qK{|!Upx*IF=X=eZc literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_if_opt/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_if_opt/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c5b8b09d9cd29889cb46b1394211be6eb6879204 GIT binary patch literal 11 ScmWgObYe-)&r9)QWB>pSYywXJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_if_opt/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_if_opt/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d4eb6c858b6142c5f351e60c7be4cda961b21b09 GIT binary patch literal 44 ucmd<$C{8UbP0dSA6=2qq6JV5*;$RhE^b%oUXs~BsU~m8;AZ`HS1r7kcEC;6m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_if_seq/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_if_seq/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..cfada6bd2ed957b1c2f4fcec27ac546132062cb7 GIT binary patch literal 389 zcmaLTu}Z{15C-7gxRJTJ^E?Nut0aX*z(%mKx!_gW+S!C;GslU?hD$bb>GBS~K;FYw z@*&J7Q4rK(U|EKLz8L_TrHOuFlU-RZ?d^w$?;a|hn~aVME(7m=6TV5D@~-4KEfS-* z*Nwy*l63&<+>|ykHoQdtHQ7}hF2P^OhjSs?NQkDZs4L;#t5zz!Kv@&?S$SoHvq#=n zY&7>lMWroGhCz8&r%U|qq“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/input_1.pb new file mode 100644 index 000000000..be392c2f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BsJ ÙºÀ>*¹Œ¿­²˜> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/input_2.pb new file mode 100644 index 000000000..ffa575cc8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BbiasJ Ç©?3Ï1¿Ì9¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_epsilon/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4093b496d5e11c9dbb0fd67c58736d5da31aae8d GIT binary patch literal 496 zcmVL1PBEX0YU+JO5g*m1?@jqL7+bv(!f7D?gKy++44Wrb0t4XHNQWV zHi17h?1Mkb*PuTE*O5OHmfJrUTq!+$BQL<^y)r*Rb1%QH=J384qXWQ#$^X9#J4wF*?|r|p-ZMU| zgqJ^~0Hwadk4e93kmJARMBu;WW0Jlp%=euaU?&2)j+7B}JnB7+J3+pmX4Jmi57WHha05PIX3IOu+pj$s`Y!pgtERyaJuQine~6S%*w_=`TRQqjLtoa4T5VXVKOQ69h0%7edhZdtw(029E( zva-HH2rR$meO5m7mmt4dcpJZ9z}~#f0~Nn;hh{$JP{qEBmGQoK3t>JKYu7zeTT(vs mlrp{8RRF&-pOO!2tkJ-2~JC literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c60d361f703b4d055d7c6c44f2946b66658fd77f GIT binary patch literal 17 Ycmd;J5@2*Xq literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_instancenorm_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5211daa8b6d8a206444ac22784393c083a5cafdb GIT binary patch literal 39 qcmd;JzsRICtjR^+; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isinf/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_isinf/model.onnx new file mode 100644 index 000000000..fd6750fbc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_isinf/model.onnx @@ -0,0 +1,12 @@ + backend-test:= + +xy"IsInf +test_isinfZ +x + + +b +y + +  +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isinf/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_isinf/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ad81eb14fb70d77af29039661923dfe77a72128f GIT binary patch literal 33 lcmd;J6JT^=tniYUHFM^E28ILm3=9qR#>U1DK>9z34FHh930(jH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isinf/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_isinf/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c75785dce768307e48f32ed621b2de3f236d7a34 GIT binary patch literal 15 Wcmd;J6X0}Wtn^}IU|?imWCQ>UxdAr- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isinf_negative/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_isinf_negative/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..18daacc5df55b35c973ccb6dc0e3723e79562946 GIT binary patch literal 116 zcmd;J5#mWoOwLZtOVKS!EiSQ&<5J~ftPopIMxlmlmIwnw|)fiQ)(8<>KPtU=(8EV&Y&+0t!@u1vnuBPD}z^ E06Vc8IRF3v literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isinf_negative/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_isinf_negative/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2e8954d5c05e5c6b564e45bb15995b49c1e911b9 GIT binary patch literal 33 lcmd;J6JT^=tniYUHS^|v28ILm3=9qRX=!N(fb@S58vvnG3bp_M literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isinf_negative/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_isinf_negative/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6adb495967fe785c6018151ab8ca0ac412ed764e GIT binary patch literal 15 Ucmd;J6X0}Wtn^}I00Kq^01LDMH2?qr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isinf_positive/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_isinf_positive/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..9433053cfc0ea5ece708dec159e3fb4ac2a0c3d4 GIT binary patch literal 116 zcmd;J5#mWoOwLZtOVKS!EiSQ&<5J~ftPopIMxlmlj`;Uz`b&iQ)(8<>KPtU=(8EV&Y&+0t!@u1vnuBPD}z^ E061|QIRF3v literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isinf_positive/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_isinf_positive/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f65bb69e401411462344fdbbe3186bcbce7c0970 GIT binary patch literal 33 lcmd;J6JT^=tniYUHS^|v28ILm3=9qRX=!N=K>9z34FH_e3N`=$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isinf_positive/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_isinf_positive/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ebe65e3b140aeb39af7afa79be4680e7f3fe1947 GIT binary patch literal 15 Ucmd;J6X0}Wtn^}IU|<9y01LMPHUIzs literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isnan/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_isnan/model.onnx new file mode 100644 index 000000000..f629dbffd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_isnan/model.onnx @@ -0,0 +1,12 @@ + backend-test:= + +xy"IsNaN +test_isnanZ +x + + +b +y + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_isnan/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_isnan/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..14d9d76db6c940b5e00505301b7782b1ab65f48a GIT binary patch literal 25 ccmd;J5nyy;tnd“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/input_1.pb new file mode 100644 index 000000000..cb9f86153 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ0^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/input_2.pb new file mode 100644 index 000000000..c4cc3f806 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ0©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò > \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_0.pb new file mode 100644 index 000000000..dfc674678 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJ0ºâF@”À¿ h >^‡´>V@./í?´Íd><üš?‚å»?œÀ@öi¿W¶Ò¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_1.pb new file mode 100644 index 000000000..148269b82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÙŠ?? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_2.pb new file mode 100644 index 000000000..43e398028 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ¸Š? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3f5ec47670eb107d1d892f3231c77d70b7aadcb2 GIT binary patch literal 5969 zcmd5=O-~b16y>$W4o{*u7(?Q2HYQCp>c)hXluCk1!H&p>i{`cSiW7#JG9R__JNyAG zTp2WRVPe?0a^u#&;l{Yrn0Vj34h)qL7N>~|((tCe@7#0GoO|Ch40Ez2+S}51ZpJc- zXAf`jm!|z#ypmx(2zP|%?upn9{HA)^^wfIOKk?wM(-eI-y4{rhuJ9e{G&_mkPJgrD z1tNaXja)DAEn`0LqgeQH&SKhw46wv}Ms z;dDKKy9$C^Pj(v8N!rqx>&wV0*5wxA{l@rcHh|G=C!HgjFK2$c+(~(_48KHVUCMP| z7x)OO42zjd3D%bewbgRGKs>cYT)D_gs*lZ(w+d^@}Abd}5gEx~l&)$uhc6A}>=lzaw$~j}+Lui3p`tTuMAj z_cP8}bzs=5r;0;{q|u&HuwS?gv^rp&QHO&OqN!N!sIXc2{@@1TJm0YCI*%FVkoaW4t3TLygzDv|ye#fRFPAMF+`5&mlBKS78mJdIrlsaN|PChy!at zgc?R})fJHX-PW!Aye}j3WJ& m)Z*G{i`C)97JYN$pT%oDB{jFsC@gDT=f`-5A65%fSN;NspTgPz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..6a0330647 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJ0xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..cb9f86153 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ0^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..c4cc3f806 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ0©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò > \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..dfc674678 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJ0ºâF@”À¿ h >^‡´>V@./í?´Íd><üš?‚å»?œÀ@öi¿W¶Ò¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..148269b82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÙŠ?? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..43e398028 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis0_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ¸Š? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/model.onnx new file mode 100644 index 000000000..0a9274ac6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/model.onnx @@ -0,0 +1,30 @@ + backend-test:ä +> +X +W +BYMean InvStdDev"LayerNormalization* +axis !test_layer_normalization_2d_axis1Z +X +  + +Z +W + + +Z +B + + +b +Y +  + +b +Mean +  + +b + InvStdDev +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..6a0330647 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJ0xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_1.pb new file mode 100644 index 000000000..6e6202179 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ^&,¿Z¸¾[*P¿ÔöÜ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6292fe9bc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ3¯5>;¶Í¾WªÐ¿Ìñì> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4628fd7c3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJ0Uñ`¾¤Ó =p®š¿-Ü¿Ž69¿p„= ËÀ¹°?ðªU?¯G¹¾ÐU–¿¦‰À \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98181fe95 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ lH¬?†1Ø>Þíó> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2515b32d3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ €É´?ÃLm?•Ñ×? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..47e0232d7ee7555d478e28c47bcc8114d2d7c1f2 GIT binary patch literal 6038 zcmd5=O=}ZD815unvmJ}ATakjdy$At?_9FCT(^#n553^R=dI*#3q%Pg=ruz|Ne}_My z2TxK24}y5{XU!g3ypmoi!lqkZ9fha&O9psC(AeYM^U&b*j+o1*WExLhOCnCH z6TFm!v+RhKDD-EXZCR@zKU>ao(Utai_8{Z08ONHo9)Kckh+xk)9Pdz4m|YkEJ2DFA z>IKHk$<9c8e|#YC6Fsr&2PxK|3?U%gH%M) zF0ZCOrTYmdKeS=k)>FlyhNPptpkOp;Py$M`18fckh=yXlqoT~q_Zz3Gi+IDNdNF2L zk9;Dce9%(yQ7w_Ia`0ioLWuy1ZNpFF{ESjwbY0rJZ*eN)tOHoPbrQEOdvu66h!P6; z2eh|hcfGX%8i$mymz}C}j{agCZX4F4bcL)(pycyw1?k%5y4Rzce`FkQ943QL<9&Rd zh}q-pDeQ*9X$xPTC+`M2l6o0RUKi4W^|V3wxZa@PAev|$LL#~b8xXY%Q2vgS3mGCV zYyeTzFmP+0h!wbcP#oiO)`ns2N8g57Y}>9hWUOw+sAasvg*#|(sC~5(^t45NhG=`; zC?pzF%yitr&LfxvD;{AjBNLAWtV#cm0G!bTKXC$ofh|_`-!HFsX4Fyr3ZFEYW%80) srk}AhrJ6kFCM_EILan&aqR+O6KWkm*8JI)staXE*#yR}5R+_&07r(vYK>z>% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..6a0330647 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJ0xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..6e6202179 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ^&,¿Z¸¾[*P¿ÔöÜ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6292fe9bc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ3¯5>;¶Í¾WªÐ¿Ìñì> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4628fd7c3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJ0Uñ`¾¤Ó =p®š¿-Ü¿Ž69¿p„= ËÀ¹°?ðªU?¯G¹¾ÐU–¿¦‰À \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98181fe95 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ lH¬?†1Ø>Þíó> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2515b32d3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis1_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ €É´?ÃLm?•Ñ×? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/model.onnx new file mode 100644 index 000000000..777d89f2f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/model.onnx @@ -0,0 +1,30 @@ + backend-test:÷ +G +X +W +BYMean InvStdDev"LayerNormalization* +axisÿÿÿÿÿÿÿÿÿ +test_layer_normalization_2d_axis_negative_1Z +X +  + +Z +W + + +Z +B + + +b +Y +  + +b +Mean +  + +b + InvStdDev +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..6a0330647 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJ0xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_1.pb new file mode 100644 index 000000000..42570cabf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJµDh¿²ÄT=®¥:?> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_2.pb new file mode 100644 index 000000000..fda0006ee --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJâב?Æž¿¹ÿÍ>·O/¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..804362a72f8a3b8ca249c77243e60b33dd22019c GIT binary patch literal 59 zcmV-B0L1?Y0|*2V0YU*;N-%GS8b6otroXTz#yk>}1;5bio4xn0roU=ZLO(>_K)({K R0YI_Kp1%MB&AZgS@xGuq8rT2; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98181fe95 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ lH¬?†1Ø>Þíó> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2515b32d3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ €É´?ÃLm?•Ñ×? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..036f6f660707265978af77d86829a2697d113ca5 GIT binary patch literal 6631 zcmcIpO>5LZ817_KHyw*zQ;~w6auF6hv=)S(>~<{(_JgLi+f@m($!rZxlWjhhb#LO$ zi+EGK^aptIl0LogBfy26rjT?Y3bXgBeu+EtjCS<^cTQz`Ia~{IR z(zXa2OS|b$N|)Pu$h+eH}y|_G*Gh;`KVA-T_EgUpovgbGc`z2Uji%IEUsUss;I{^kljS> z8H(DoS-KWmb4{bV?6ElJK9q3@nWwbltnPg#6a`r~%jdIYoKv{J6N&+aP;XW^^T8!l zN<#c4g}|eG;EXB=;gy2I1!YqN1DOX23%OBQNjxydZ;Zq*ArRtRxD#@tWN?9t-(vI- zQdtP4UT%zFE@`N>t^mj#{$4?tD2jeT*uKaEA%#C;p;0lD4uk^;r~E_>`%|U7YVkbP( zd_!I>e_|<6MaZuiC5)UTj0F;t9oPXS4TPfBxWF5)G1{ZlUJgR}1SSYhXt*pAPLRdz z3q~6(ArKOvyzkV>j#1stE@g-&Wj*QlaZ;G?#uL^+~VgGDu8 gXcQMZ@Y>GkYn|&fHTB3k>D-{FCmwy+P-<8I0Rkc3h5!Hn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..6a0330647 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJ0xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..42570cabf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJµDh¿²ÄT=®¥:?> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..fda0006ee --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJâב?Æž¿¹ÿÍ>·O/¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..804362a72f8a3b8ca249c77243e60b33dd22019c GIT binary patch literal 59 zcmV-B0L1?Y0|*2V0YU*;N-%GS8b6otroXTz#yk>}1;5bio4xn0roU=ZLO(>_K)({K R0YI_Kp1%MB&AZgS@xGuq8rT2; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..98181fe95 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ lH¬?†1Ø>Þíó> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2515b32d3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_1_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ €É´?ÃLm?•Ñ×? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/model.onnx new file mode 100644 index 000000000..6cdcfaf43 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/model.onnx @@ -0,0 +1,30 @@ + backend-test:ÿ +G +X +W +BYMean InvStdDev"LayerNormalization* +axisþÿÿÿÿÿÿÿÿ +test_layer_normalization_2d_axis_negative_2Z +X +  + +Z +W +  + +Z +B +  + +b +Y +  + +b +Mean +  + +b + InvStdDev +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..6a0330647 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJ0xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_1.pb new file mode 100644 index 000000000..4e7a63007 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ0*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_2.pb new file mode 100644 index 000000000..d5d501c31 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ04”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_0.pb new file mode 100644 index 000000000..37959bfd4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJ0Ðׄ¾a‘*¿õ~¿$(ѽ^2俽ż?0;›¼¿k ?Œîì>m>>Âm> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_1.pb new file mode 100644 index 000000000..148269b82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÙŠ?? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_2.pb new file mode 100644 index 000000000..43e398028 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ¸Š? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..017db71847a3cc621d66b850bf643c85b745bfaa GIT binary patch literal 6639 zcmcIpO>5LZ817_KHyw+vsYpRjxd;m$tb)*!-L3_}e$cdbTa_@onXRE|vdzb`?oGUT z5pRl@{s2#&Jc$ZD2;#+y|G>LHKz%2ZwCP%Uka-KG>?AwSJn#FwUsJ;{C)=#E!vptP z!sBH2#|`?Fn2+wUCp=mTqh02ELzZ}9;E2bLFV>yl*n=6@VFNFA0=^Az_PI0T@Ij9S zE_a=78g#O6FZdx#?(|~M4+G1X4}&;iK~ld+$NS7rdEKZHOMiQC_0~SoXUFJQLUGSv zwvOTuZgPc)#zDQTG-$`M=kW7gx=c=iWi-V=%iVy-Jc{VEG~EZz2o z9F9IjFwYi`!t2eF+NKJ%RSiVLB_>PhIB?Lm83wJ_plnhRB@hglT zLMjWP)XR+#%q0!A+!X+Y!{2BK6GhoC2-}x=Af)j7EV3$g+Jq_CyDz=Juw>?Who z{A-OOq9Ei;JM*deK)Gp(iyrP;m8RDRy?i4S69!?PIO4E&QX`jAvVm~tV|SR(%boB@ z^9^}b{lrqDijZG(N*Fmw7z-pOJFq=U8VE(Laf&xyV6;b>yHLPhh%2H61pgi98Rg+&F2mF}m1> cH#h%TyhJmTm(~evOWK#|(aA?2HniG>zqSA07XSbN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..6a0330647 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJ0xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..4e7a63007 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ0*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..d5d501c31 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ04”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..37959bfd4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJ0Ðׄ¾a‘*¿õ~¿$(ѽ^2俽ż?0;›¼¿k ?Œîì>m>>Âm> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..148269b82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÙŠ?? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..43e398028 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_2d_axis_negative_2_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ¸Š? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..909f7470c16914e18022691902425f915525c693 GIT binary patch literal 310 zcmdx?%}i3jO4h=*#45(nBYB*Z1a!6?MT#l*n`#LPg<3X%xNCE“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_1.pb new file mode 100644 index 000000000..a31659249 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJxŠª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_2.pb new file mode 100644 index 000000000..74d995721 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJx^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_0.pb new file mode 100644 index 000000000..6dbb76c6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJxj÷¾³»¿¾0_ ¿Ä– ÀB¾¾¸e¿šÔ†¿,bJ¾Î76¿ˆ°y=e‚?·k™¿—7#?Š0迎ÁÍ>Cþ#¿¤À2´…¿ˆ†ñ½‡VŸ>‰D¨?dèy?Ï€ˆ>Öx¾”g¸?H†’?2“?àO¶¾6ÛÚ¿ëÓ5? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0106db6a9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ¾â> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..0230503de --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJX¢l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..aeee5298d2f8c8a597b5c97a77131ff266a29948 GIT binary patch literal 6513 zcmcIp&1(}u6z^eB6Qx*s9-;>C-2 zQ@r;N@aRcY@F0j(ynFTLU*VgbY`ZP7D7-l=A(`ZT{N8)N_uj-b*=&zHJ0fteCn8Q3 ze$LZp?9qMxR7A}%+U35t&l4{Uy7IK^%g?*PiGy2imyf*oMpq1C&xdb{(SQf8aJ&69 zaI)Vn`yo&6s$IFHF&|gzB__Z6LdsdsbfJ zaZ;P1MiS1E17d(H4kc~2j;yb3Kj8ymO=mBl-zntvObLWM3?VTmqQ0mZhE6KgFJeQ%W4h3`2s z!9L>G#n}AE$mTcG-Ij1uN4Se45nH9E*arK55vo@adKm1qe-wrbInS^5v$)hw7b8%l zWc#-U)tC+FvI{Pv_sMY%s5CwY_&GeOou_5lU*~|kWJd{QM`trfuohyYdbm+w>%M0^K|qykZYZfNjBgGh8}?7fsn z!YZw#KEUt;pV5^9^iq~V1maWHpApzs_yd8;CiKp&#G(VGAX@E9@p+iv80ZT?F&^l` zi$0)p^9GNslAZP-{UKSfsTibFP5ThT9$vuKH9w8>b*r@Kx&X>2{3+?AB79Cu+=dv! z9<&!F;J`~Q+>X5wj?2G|+_nJ-FS}sKbNsbIwdp|TL_3Ql>mY-Y-@FLdDmA~;@ zQFwtr?qo>0=#3G)KnK6>@mPYd8rKK>VOA+Xr#W@u$VkVkv_vc~AAyoS&(nicnaCY=KufyhOH~| zYJ}0MN!TnkOaq=0Jk#=E^KS?BNe4anMQ7r{RhofcI3u7UdwSRCu`iRpP&cX<{{R`# Bp0EG_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..a31659249 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJxŠª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..74d995721 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJx^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..6dbb76c6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJxj÷¾³»¿¾0_ ¿Ä– ÀB¾¾¸e¿šÔ†¿,bJ¾Î76¿ˆ°y=e‚?·k™¿—7#?Š0迎ÁÍ>Cþ#¿¤À2´…¿ˆ†ñ½‡VŸ>‰D¨?dèy?Ï€ˆ>Öx¾”g¸?H†’?2“?àO¶¾6ÛÚ¿ëÓ5? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0106db6a9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ¾â> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..0230503de --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis0_epsilon_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJX¢l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/model.onnx new file mode 100644 index 000000000..d8851df5f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/model.onnx @@ -0,0 +1,35 @@ + backend-test:— +Q +X +W +BYMean InvStdDev"LayerNormalization* +axis * +epsilonÍÌÌ= )test_layer_normalization_3d_axis1_epsilonZ +X + + + +Z +W +  + +Z +B +  + +b +Y + + + +b +Mean + + + +b + InvStdDev + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_1.pb new file mode 100644 index 000000000..0186d6af8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ¿z‘S¿z¡É½·Ù)¿›5?2;Š¿Aà’¿ó)à¾þþ¾èúö?> s?N³=Ûœ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_2.pb new file mode 100644 index 000000000..5c4937399 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ<,(X?€¿»Å¿\˜?MF¢>g½k?E0£>@Y[?©&¿b„¿ú|.?A¬M¿V†0¿Ž;é¾t0< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_0.pb new file mode 100644 index 000000000..dfbc21bca --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJx£ÒA? ³Ê¿¶½æ¿ü-¬¾ßF7>¾Ñ@à¨+?w;÷?f¿Ù>þc¿MT€?‘1t?Ô*¿¨¿«¾>==V?l N?$k¦¿‚:Ž?µoÍ>)÷@$Nì|h>bÇâ¿ló¬?…¿JÎ|¿n˜¸¾ïÜŸ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2494f05b3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÆß/?7yK> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2bd20bd1a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ6ï—?5P? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..fd840045a28fc8e7b402c7c391b1cd8194981915 GIT binary patch literal 6590 zcmcIp&1(}u6z^@nb>?X4i#G!_K=Vb<0(B4M&Sp-Z>B>3)RRix)5A zP4V8F7muDq1P_8p#XrKEe}!*$vh6m6fbixJLUxk(=KX%Zc^?zgWb<9_9E!lbn}|4B z{jfq`vS*L@3lVLF(GmB(6P|cs(2=VhUq0^ymljss4j+2)Qb+V-&xdb{VV?)Ca67#; zaI)WS_#saosAbDs4}&=2K~lR(X9wI*Ma`@dtNiQi?A|FUug=gPgzDS@+d~d7kF31T zSOnZw;zLz`8Jbj*Q7xdejtd>IipjC}OK*r(FQ$521P;p>u1ey>o7_=fz{Ymyul? zKjEWu_R*jkC5CRh5F&c<9ce(FjVpkk!;{)oT9!q75fY*-Q=u$VO=SJGmK#=O!{=1UX2}S)oq4SD|P|0hQK zmb@Bav}zJIPYu(6R|#IT?FCtIuF-i|FpCfC;}5%FVt5F? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..0186d6af8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ¿z‘S¿z¡É½·Ù)¿›5?2;Š¿Aà’¿ó)à¾þþ¾èúö?> s?N³=Ûœ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..5c4937399 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ<,(X?€¿»Å¿\˜?MF¢>g½k?E0£>@Y[?©&¿b„¿ú|.?A¬M¿V†0¿Ž;é¾t0< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..dfbc21bca --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJx£ÒA? ³Ê¿¶½æ¿ü-¬¾ßF7>¾Ñ@à¨+?w;÷?f¿Ù>þc¿MT€?‘1t?Ô*¿¨¿«¾>==V?l N?$k¦¿‚:Ž?µoÍ>)÷@$Nì|h>bÇâ¿ló¬?…¿JÎ|¿n˜¸¾ïÜŸ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2494f05b3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÆß/?7yK> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2bd20bd1a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis1_epsilon_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ6ï—?5P? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/model.onnx new file mode 100644 index 000000000..319b89902 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/model.onnx @@ -0,0 +1,35 @@ + backend-test: +Q +X +W +BYMean InvStdDev"LayerNormalization* +axis * +epsilonÍÌÌ= )test_layer_normalization_3d_axis2_epsilonZ +X + + + +Z +W + + +Z +B + + +b +Y + + + +b +Mean + + + +b + InvStdDev + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_1.pb new file mode 100644 index 000000000..82e3d1c6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ|i?mj¢>ÊLI?|Îî¾;Çq¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_2.pb new file mode 100644 index 000000000..9aab7853f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ òѾen‹¼- Â>…˜@Ö-½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3c76f6f0c0dc2cbfc0eab4756e150fb339cc4bf8 GIT binary patch literal 133 zcmV;00DAuj0tf>L1rPy30a;3TK)jVa0YU`7!ZS6#L1x-Nn;{~XIU!So+Mg%GB{A0X+!iHfVe*dt9nm~q}edAEhXhPOD| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..bd9b55802 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÄ¢¹?}Ó<(Á?C]>“ÊÉ=Š> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..e182fed80 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..56d324d8083890d28edac18b772d12e2e14d7e9c GIT binary patch literal 6582 zcmcIp&1(}u6z^;{W;+%dN5SGn*kizh?X4i#G!_K=Vb<0pB4M&S!KK^XbU#Au#fum5 zrg*l0fJaXvf(JpQ;veD7zrr^=*>)?TAiOz*(w*%4_`Uaj@4bm-v4sJ5_eJR4N=1^c zzF(m)*pmnRxrn!-_<#rg5l{Un?90=BAfNZca|bJ4pHKW`xi3bEAHX-oWW+;Hc>Q4( zy7{{sLB!L0>e#l{qcBN%m^QA_>X-+aXjpY(n?FxZ?i>?yb&h@~RHp@O581uKGjp9M zX=9!mX|zO+i2<&-lyulGvc8VyAGpep|IKNSR#+=U{kK@eUV8vM{8 z5*-@nFypbXE1OvWF#N(FpOgahQkFpk;#1aN5Ljq@*aM-;CQV||fl?4{52e*bnBN)b zTSYk@=)%iBpmXyckBfl-k_DTJK|0m6WHIdF1#I03vZUDIDr=qxobUyIN;tPkvL2lasgrDD96gmFZpxShxbE1<+l68?mDXw#bXIEPO7;@wX zq571duK{QFKbkd^C6qiyzu9qI9*9|E>~wAh?!;a*N^YWa=+qs2?vXG-TB&&omWd{M z!)jg-g;)6FPL7m^-Wb6Pbnu%#PbB!Naec-gW|abTnp3x!jCAc(PoG2|G0Rs2%*==7QY>IE(g>PfXXa1CQ_3#3{Qo~< z^sdXR5k~74VGGo-4ER*wQ|&FvhC`_Z2WIi0S$;5pSG%)b9o(Qf*fY+^;3hq@ebyJ6 HM*YfP0FuCc literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..82e3d1c6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ|i?mj¢>ÊLI?|Îî¾;Çq¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..9aab7853f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ òѾen‹¼- Â>…˜@Ö-½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3c76f6f0c0dc2cbfc0eab4756e150fb339cc4bf8 GIT binary patch literal 133 zcmV;00DAuj0tf>L1rPy30a;3TK)jVa0YU`7!ZS6#L1x-Nn;{~XIU!So+Mg%GB{A0X+!iHfVe*dt9nm~q}edAEhXhPOD| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..bd9b55802 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÄ¢¹?}Ó<(Á?C]>“ÊÉ=Š> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..e182fed80 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis2_epsilon_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/model.onnx new file mode 100644 index 000000000..428cb6975 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/model.onnx @@ -0,0 +1,35 @@ + backend-test:¢ +Z +X +W +BYMean InvStdDev"LayerNormalization* +axisÿÿÿÿÿÿÿÿÿ * +epsilonÍÌÌ= 3test_layer_normalization_3d_axis_negative_1_epsilonZ +X + + + +Z +W + + +Z +B + + +b +Y + + + +b +Mean + + + +b + InvStdDev + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_1.pb new file mode 100644 index 000000000..ee9989213 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJиt¿†$±¾t\í¾½„ö>Ö8Å¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_2.pb new file mode 100644 index 000000000..89dd20119 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ=@C >ÞÀm>µé¿Á¡s¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_0.pb new file mode 100644 index 000000000..95e94801a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJxáðžG3?$_?`4ؼïᙿRwÇ?¤+¯¾n¸>Ò³1¿mË”¿Õk?)è¾öˆ=Ü\†¿ÓæO>“¨½hÕ¾1zø>˜v ¿ó?6®Î?ò‘=€Ss<–VX¿®FÀÔÑÅ?Íj>Ÿ5Ú>à²q½lÇï¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..bd9b55802 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÄ¢¹?}Ó<(Á?C]>“ÊÉ=Š> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..e182fed80 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..43feeea747258d021f186016aaf7596a6c28b699 GIT binary patch literal 7169 zcmcgxO>5LZ815vgn~sI9qhJw1$Z^3#^&l(?cDoh?`$5-_wkmNpnXRE|vdzb`EqLio zy!i`?7xAX}Cq$~K;6V^C-uwd|>pPiEo0g>)d9$!Ao7v=<=Y5~|Yt}T`c$+)xB5*G! zB2MamuF>a&i938tMDt;^!F_L=CteuXa@qFfbvrn+aMiVW-;3=)tidmP!k)54H}-tE zNA$ZqaD{7k(!j}{GV6ytxuupZb0!Spga=9O93Aa(KNU5zN-X2k-rkK}V$?_IPeRMt z3wwe_IcICk@HnZBQ7s84$u7}=-UcPh%tk|AZaw8)VU1=V0QZ4VY%um1jm;7d)-9vu zZ402XLlEt@Dxz?zS&--1T%Hw^R4a8dqSW~Ua}(1LQ%5#&G2cWr+XUUuUmzwKD=&3) z?;-*ynO%&e9w_O{fZfK14?UXl;+coCE=!yaHsnsw)A=N1=e+VQaeoz*(gjx z_LRkMhsf&p2u-}pSDIF3*5^qg0%$N4cAhi$2Nn1;p{P4x5Apcjvxc-3KM2KyM69}V zf(PI-sazlMMqTyPbDUXDu&!s*X={IJ@QBa79L%JQ3uwrzA z6y9oxt%6b_Isl>>l>rwzl1VO%_Zs3XRrDJoOpzC2>A24$OK+uZ2qzF4UV#7{iavNU zyk-sdzv!oNKH=)qt_vpnhS?t;g~ZINiQ5!C7&teh1W3I>u042zxyoj&jn;^OnY`?b zD36(U8Z7}0F+aC5-!lizWcksWa4o&*^*~?02rUB+aiBWnbaz-|`iznXh^K5Vhx?+~ z@gJKuAdlmXZUyRy`FubTGv`Sof+STZxkX6>vB)+~@YZY0_Aaxdi&)ly8KRRK9*?Dy zRI&Yn+3qVS#6+u3s2N$YDoY}kr`3=OzhhDwq;|Yqa69NJ3^mI-UN;IMtbiAc=Gavp zvGpz<=`bT3EDAn@sk0Q5mPK&vz>NiEvg`lzC)nzFdEUh+9N)8Xs+k(Rb$E}iPRPeiStIRB^pM4{A2hV;nSb(qy@vn* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..ee9989213 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJиt¿†$±¾t\í¾½„ö>Ö8Å¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..89dd20119 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJ=@C >ÞÀm>µé¿Á¡s¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..95e94801a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJxáðžG3?$_?`4ؼïᙿRwÇ?¤+¯¾n¸>Ò³1¿mË”¿Õk?)è¾öˆ=Ü\†¿ÓæO>“¨½hÕ¾1zø>˜v ¿ó?6®Î?ò‘=€Ss<–VX¿®FÀÔÑÅ?Íj>Ÿ5Ú>à²q½lÇï¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..bd9b55802 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÄ¢¹?}Ó<(Á?C]>“ÊÉ=Š> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..e182fed80 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_1_epsilon_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/model.onnx new file mode 100644 index 000000000..b8ce46acf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/model.onnx @@ -0,0 +1,35 @@ + backend-test:ª +Z +X +W +BYMean InvStdDev"LayerNormalization* +axisþÿÿÿÿÿÿÿÿ * +epsilonÍÌÌ= 3test_layer_normalization_3d_axis_negative_2_epsilonZ +X + + + +Z +W +  + +Z +B +  + +b +Y + + + +b +Mean + + + +b + InvStdDev + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a0ab9b13d2fc55ef3da25d91dfee61381e731220 GIT binary patch literal 71 zcmV-N0J#4M0|*5W0YU*+N<6VXwZ3QmufHwCB)>gO4!|o9AU`?~&A)G4jlT`6RXqSy dJ->m0#XnYjrN895h&~19AiWlZmA`iN1wWgr9MAv& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_2.pb new file mode 100644 index 000000000..c7a81ef2a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJ<ש/¾”E?+ÑR?ur +@Y«?g½¾Ñu¾¥ÁŒ?]¿'?©ß#?jøÎ¿•GǼ˜ï<¿GR>ɽ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_0.pb new file mode 100644 index 000000000..95e7d4154 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJxcÅ¿Œ¶ž? Ã?¦ø¿Gœ @"ì2@J‘¿ †??Ø >Ø¡H¿·#`>ÑÑ=¿~)ˆ?L'¾ktW¾EA-¿ôw„?Vlú?”M?ÖM@dâ%¿*_?þOœ?øNO@Kø=˜´k½Ç9¿8Ë|¿lŸâ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2494f05b3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÆß/?7yK> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2bd20bd1a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ6ï—?5P? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4069c9fdd6a5767a2762eca4506d94875b165f2b GIT binary patch literal 7177 zcmcgxO=}ZD7uF$81iCcV2MDt;^!F_L=CteuXa@qFfb2~V+aM`ta&x`Fqtid{KlykO~86GF~QK}{31lc7T(A%J7nb~N_%hqGw5#~tt0dVgK#Rg*!(bz2UVBM@( z-nIZLI|R{gt0D?7H4E|_&*fP)NUb_Wjwy9M!#u<^#MGffoX-zY%ML;R{O!L$OfpuU z>*(G^1W-0d1W@*5E}A|UBhmJHdC2*mBX#;2GvxY|*3c-;ryEPcO&#G*_e5;!^I{D+ z{U)?5NJMv8X?x#Yr}9Fy(9Zl<9}M_@h`rZnDf&S~DbPkN^L^E*U^oueb$C)gK`XLR zn1Jjli{B2B)$akCc$X)eW_8x*Ng@JhFcfw%Y05)^>g9JLZs<;v1oukcd@x zPVfL+MwNEtUrI3|z7FA61!uj`P`ROQj%YY*Gv$#m^|{msBmKmzI0_0eaY(mA5>||k zkiu&Xu~kq?L2F+P&2Y(R+mI9Z>u2{e#NBJPwjZQ;AYTO7;2VvyiOECSOG5>&9SRI zV(VSJ(qWZsuqgNprp{7KS{A|4eK!`A$*%s-KfzYd%KI)x;rgD9QO(fct;2g{bzGLl plXMIgjN-$_;KLSdu`+Cn);XHFWMGZJZlraA9“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a0ab9b13d2fc55ef3da25d91dfee61381e731220 GIT binary patch literal 71 zcmV-N0J#4M0|*5W0YU*+N<6VXwZ3QmufHwCB)>gO4!|o9AU`?~&A)G4jlT`6RXqSy dJ->m0#XnYjrN895h&~19AiWlZmA`iN1wWgr9MAv& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..c7a81ef2a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJ<ש/¾”E?+ÑR?ur +@Y«?g½¾Ñu¾¥ÁŒ?]¿'?©ß#?jøÎ¿•GǼ˜ï<¿GR>ɽ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..95e7d4154 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJxcÅ¿Œ¶ž? Ã?¦ø¿Gœ @"ì2@J‘¿ †??Ø >Ø¡H¿·#`>ÑÑ=¿~)ˆ?L'¾ktW¾EA-¿ôw„?Vlú?”M?ÖM@dâ%¿*_?þOœ?øNO@Kø=˜´k½Ç9¿8Ë|¿lŸâ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2494f05b3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJÆß/?7yK> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..2bd20bd1a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_2_epsilon_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJ6ï—?5P? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/model.onnx new file mode 100644 index 000000000..d61890b24 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/model.onnx @@ -0,0 +1,37 @@ + backend-test:² +Z +X +W +BYMean InvStdDev"LayerNormalization* +axisýÿÿÿÿÿÿÿÿ * +epsilonÍÌÌ= 3test_layer_normalization_3d_axis_negative_3_epsilonZ +X + + + +Z +W + + + +Z +B + + + +b +Y + + + +b +Mean + + + +b + InvStdDev + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_1.pb new file mode 100644 index 000000000..ceb27708a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJx5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_2.pb new file mode 100644 index 000000000..0acbab48c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJxÙºÀ>*¹Œ¿­²˜>Ç©?3Ï1¿Ì9¾rÌÞ¾­´ì?‚,?ÖžÐ>8E¿< +?¡,¿Â`=ÏÆ"¿»*-?u›?ELU¾dÁÊ>qé‹¿‡á¾¿ó÷à>u¬*>l‘"?r…@hÉq?¸®i¿dúŽ?§o¨¿ÑTì¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_0.pb new file mode 100644 index 000000000..143aa8d71 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJx„yí½/æ’¿…Í>æÅ<@zªf¾@à‰¿,GܾLL^?6µ?Á{Ê>Ÿ ¥¿ê„8¿Ä$†¿Pƒ¾[#¿öæõ>šÞ2>+u>G)>´Œ7ÀÁ6ÕÀ¬?‹ý,¾Ü…º¿Ü÷?¼òì¾°X¡¿ƒˆš?F~2¿×¯Ó> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0106db6a9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ¾â> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_2.pb new file mode 100644 index 000000000..0230503de --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJX¢l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5e876f3a493956630d0de4057b11e663cdc2dbe8 GIT binary patch literal 7185 zcmcgxO=}ZD81C#QCLIgLQLu<0>@na$dk~6(O=Cf@A9U5GRaqyyle%=fo9;(Q3toB? zZ~lVfMZ78g36Ux)co4*kKSB^h-`UBw+miMo?*^8TOm?4n-uHRGCenXZIvw~?%>B52mX>?mOGLd|BSz`N?(X#+Qkop0-w7>d zFYFN-<&14PIia}^wue9F$)d3Wj^LzVU*K1fO|(MHW+(|#%7WGYeva* zw**kxCWv-h5n*t-nUm+4OrDi0sZ}P)h*IY>%uP%|OdZ(7g=`bGbQAQ?-@yySBxB{d zj_zGV0A+JT0A)|+py_iV6dkvpg`DTwQm3CWLvBE66^+tdvc4#s#1_s}UqpsJCsu*e zFG7ogM0A&#boShJDl0_uoz#Ez!vQ}CvG*D+L_dfqIogP2exMo^3@5<4HjnEkX-PH; z&`KAU)8q@S1-M?oPb4(WDC!iv!` zQh2Q)whBs#=m3ajR0f>yNG6#u-fD=mRNilhFnL~xrQ;qC4c$!I5KbU8yaE9@6n*ey zc+DE@f5A(lY{J#290yGH1+zaq2#J|hW2Y&4FmP^!F_3zNTzl{abCu0l8?6xmGr8#* zQ5G|AG+F=}VtzJL-!mJ{WZBW0a16ca_CQ}h2rU8*aiH4gbZ1y&`h=1t#8WoY=AOuR z{D-Cu$m4jUTaG$nJ|9rT%z4s?AW79pZc@@fEV7Mby!8^Zy-V%rAeMDthUlb*%OmL| zRct?Dw)+YSG100MYDSig%A$zmX*Hz6ub7kusU0sD-12)0L(Q_b+YJK=f<2e*|q=q6Kv(2Jnv!@j_=tR)v6j?I$UMBuyoWy hW7t9)?pPkWaGs{F$*mE9NU!!qy3cCZ4;otS^gsGdzNr8J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..2dbaaccad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJxxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..ceb27708a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJx5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..0acbab48c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJxÙºÀ>*¹Œ¿­²˜>Ç©?3Ï1¿Ì9¾rÌÞ¾­´ì?‚,?ÖžÐ>8E¿< +?¡,¿Â`=ÏÆ"¿»*-?u›?ELU¾dÁÊ>qé‹¿‡á¾¿ó÷à>u¬*>l‘"?r…@hÉq?¸®i¿dúŽ?§o¨¿ÑTì¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..143aa8d71 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJx„yí½/æ’¿…Í>æÅ<@zªf¾@à‰¿,GܾLL^?6µ?Á{Ê>Ÿ ¥¿ê„8¿Ä$†¿Pƒ¾[#¿öæõ>šÞ2>+u>G)>´Œ7ÀÁ6ÕÀ¬?‹ý,¾Ü…º¿Ü÷?¼òì¾°X¡¿ƒˆš?F~2¿×¯Ó> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0106db6a9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ¾â> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..0230503de --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_3d_axis_negative_3_epsilon_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJX¢l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..79e979903e1bfa1e6975aa09c1d1ba6506fcf7cb GIT binary patch literal 307 zcmdlD0$fZSOhC*G#4JF}3X%-RC+UPsG6|?N5~rjb7sM+FYZ-yo!Eur@ S7s8WBhQJko6gx2q2m%0oAu}NW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..177f4201f1bddaaa5d74494a47fc2df994fe8726 GIT binary patch literal 496 zcmVL1PBEX0YU*+O5g+8y1+gvxs1Q9vY0*t$EiOv&oRHuIT^lk%-+7O zwCq2E8!SK8p3pux8AZQ53<^IHp)9|`U;;hQ#v;GFDlI>Cn-f1pOjW*Q!OA{y>5IRI z;l97~_uxKttSUZiks?2Gg&06+$#Flpu4%ty`i?)RZ>Yb~RP4S%!i&AoPTN00s6M}X zkyF2Vp~=0s*(tx9HIP3tJBq(S;F7=dDd4^w{{Ft``u0CQ4Rb#cPP07{+nm2FC|ExZ z2Y|m1yT!j;5tu(sMxs7vy=y;3Frz*|SzAAysV2V?VuZi?d@eshtWCdGhA_X5JL$f3 zFpoU3KDEAQ{;$6+#3a8xOb);+4xUpQjb0o1IfL70ck&NYN9^MOi4d{&hEZD$8o<2^3lF!Zi~DvAi_R{ zm=HkL6)nBcxOBgUB(c79TOY=@`Gkp>w{WN4CFg ml>EN<_zJ&+1l2yt{gc0${6{}UOTRy&dIZ3hKH5ImNi9DYm+kQY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_2.pb new file mode 100644 index 000000000..bda17879f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJà/#¿6g˾Ù¾ x˜¾ó6ž¾K‡Ö¿š“?ñ0Š?¤8P¿Ë³»¿‚d?×f¿,\>£¾¯1?Û1?ÀÀ9¿±¿ºÊ¿ÓA?Š,˜¿·¾¿ ¨¿ÎPW½Ø÷¿-OA>¹?¤µ=y,Ÿ¾½yÇ=ÍOÌ>)r1ÀV[ú?PºÇ>@'¿ ++Ⱦ¹Ëü>çÇí½¼öÀ§ @$c⽕‚?.*1¿¨Ä?¤›’>1Ý?ÝÊ…¿Ï›?ì—0?梦?YÊ ¿0Iö¾_s@™®‡¿f6 ¾¨…‘?$È=t<?•„̾÷w½>F<§¿ =Ô?þÿñ½) .¿˜*?wãë¾ûȪ¿=a¬¿›1?8g#¾é¾‚ó‰?Ô;¿² ;¿÷žh;Á=ù»,½áâ’¾÷k|½ÞÂÛ½þ78¿O P¿hŒ>d¿8$”¿Å䟾vs!¾(n@=g4¿‰yq?¼G??Y/˜¿èóE?g‰—¿á/*ÀÂ7?Áà¿âàæ>W/¿)lÔ?êĈ?/"è¾ 0¿ãf›¿œÀá¾Áо¹º¾úv >ü?é³>ðžC¿ ¸¿û¨®?¾0¿·ü&¿ªl¿´é뿹ô¾r•õ¾ÍÏ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..252bdd874458f9e70d628dec9ae5a4f8a192667e GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)fIZVA%zb(I5Ef_!#BD=qBFv7p7-A_O8 z!4p3<4tKwn)UCgsJOe+VRM|bs>4v_ns-wOVj{rX?D^ov!&d@wPbf~{V-NC;GH_|`c zCMiHlSd+e4kM+LAg%!WD^E*J0W}mjOZ|Z5zKE;?KTrr`A8OSe(Ci+`7M($qztxljlCcQ0%|dG8e$GCfGle3WYx&SrZ&Yl+M0vV&gw_(09Ht!o55IHL5?97#Kc481X)=eucdx zI=MbURfNCHjuSw%uSHb*H`& zlS06TVmiJ7jvhdgbc4SpP+LEns*gSZv0J~4hEzYmzsJ9rAUD8mB*Q-4f8f8we1<>F zLNdQc2h%?$SO~u`D;7Pl7>2!*9#p>w^u0d^)-Jvhn&iHu?H;{gs^h+3VJ|)JF-XAV m!{)!>yYN4NO_V(JBv!tF8>qZypDn-8y}LaE43WM7-H<<1O6zq1 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0c4a329dc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ`Ë> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3c75e1e5c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJóït? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b83a0f06d89700d796ab4cbbe08e8ac73e0b0c0a GIT binary patch literal 6017 zcmd5=&ubGw6z(LcNk_rB7AXiG)`JjGR0N?Xo5n)brZsEr4-a9oJE=>zyXpRjv44ku zKo6dz3LXUU;>n9w{|oUV-W0(%nQXf)ZRp_(co;%5+4sKpy|>?cGo_Mot|jbE={whB z8O77zZ}1m}^+>#wVLb@9gy-&v*bV%q+HHF3_ojbn-|s}O7x-prHt?fZ_;F>Dk9UQa$V#cq%);K6Yj<~9VS0>zWPB8!jXEftG?K!s zh~mlw&&9zM+hsX|{*1F#V*%u6)p{;E(j4!9knz`yV@(?mK}Z|I-!u!ByCVr^2S&iU z41-&>OvPMGE2dat<>E9O(*=X`I71bD8joLd;8eiOY0hBgG$BRg{5?&wJ(QOGMJ8 zRQFYmk08r1o0*VceQA(eU5;mnCtJjov%H}C*c54tQuGa_=np{kw0gT{7Uw(>$I?IQ z=ndmQH^w{)^0IkMpZmZ#&H=1nEJ)!K!(8W8ebXe%=pGe$k+S&%iTi(~z}ikkD9!vr z;!(JtamuOhE3O5%rK37 zDnc`FB`qpnNUe@L&jrJ@aau}bj*Cs?NZJ^F^)G58-ow< zJ~?iP+2m{mb}3-l!jnVBJJK@Lc%2CgrfCECIBigLP?_jCgofxUtU*+Vu>2D@F7z33 zU=4^+!^o|=B2wh)MzM#BSsRAQkG{Y%*qT{v$Vgpgkz~Bb!5zpO>b;uxyV{~YL)dO7 z45*9=GaYxZ{RlRKWsk5%p+7ukxTg7k1muhc{KP)}nQAdAr@wDrzpRexm-u9f8D*X; u“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..177f4201f1bddaaa5d74494a47fc2df994fe8726 GIT binary patch literal 496 zcmVL1PBEX0YU*+O5g+8y1+gvxs1Q9vY0*t$EiOv&oRHuIT^lk%-+7O zwCq2E8!SK8p3pux8AZQ53<^IHp)9|`U;;hQ#v;GFDlI>Cn-f1pOjW*Q!OA{y>5IRI z;l97~_uxKttSUZiks?2Gg&06+$#Flpu4%ty`i?)RZ>Yb~RP4S%!i&AoPTN00s6M}X zkyF2Vp~=0s*(tx9HIP3tJBq(S;F7=dDd4^w{{Ft``u0CQ4Rb#cPP07{+nm2FC|ExZ z2Y|m1yT!j;5tu(sMxs7vy=y;3Frz*|SzAAysV2V?VuZi?d@eshtWCdGhA_X5JL$f3 zFpoU3KDEAQ{;$6+#3a8xOb);+4xUpQjb0o1IfL70ck&NYN9^MOi4d{&hEZD$8o<2^3lF!Zi~DvAi_R{ zm=HkL6)nBcxOBgUB(c79TOY=@`Gkp>w{WN4CFg ml>EN<_zJ&+1l2yt{gc0${6{}UOTRy&dIZ3hKH5ImNi9DYm+kQY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..bda17879f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJà/#¿6g˾Ù¾ x˜¾ó6ž¾K‡Ö¿š“?ñ0Š?¤8P¿Ë³»¿‚d?×f¿,\>£¾¯1?Û1?ÀÀ9¿±¿ºÊ¿ÓA?Š,˜¿·¾¿ ¨¿ÎPW½Ø÷¿-OA>¹?¤µ=y,Ÿ¾½yÇ=ÍOÌ>)r1ÀV[ú?PºÇ>@'¿ ++Ⱦ¹Ëü>çÇí½¼öÀ§ @$c⽕‚?.*1¿¨Ä?¤›’>1Ý?ÝÊ…¿Ï›?ì—0?梦?YÊ ¿0Iö¾_s@™®‡¿f6 ¾¨…‘?$È=t<?•„̾÷w½>F<§¿ =Ô?þÿñ½) .¿˜*?wãë¾ûȪ¿=a¬¿›1?8g#¾é¾‚ó‰?Ô;¿² ;¿÷žh;Á=ù»,½áâ’¾÷k|½ÞÂÛ½þ78¿O P¿hŒ>d¿8$”¿Å䟾vs!¾(n@=g4¿‰yq?¼G??Y/˜¿èóE?g‰—¿á/*ÀÂ7?Áà¿âàæ>W/¿)lÔ?êĈ?/"è¾ 0¿ãf›¿œÀá¾Áо¹º¾úv >ü?é³>ðžC¿ ¸¿û¨®?¾0¿·ü&¿ªl¿´é뿹ô¾r•õ¾ÍÏ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..252bdd874458f9e70d628dec9ae5a4f8a192667e GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)fIZVA%zb(I5Ef_!#BD=qBFv7p7-A_O8 z!4p3<4tKwn)UCgsJOe+VRM|bs>4v_ns-wOVj{rX?D^ov!&d@wPbf~{V-NC;GH_|`c zCMiHlSd+e4kM+LAg%!WD^E*J0W}mjOZ|Z5zKE;?KTrr`A8OSe(Ci+`7M($qztxljlCcQ0%|dG8e$GCfGle3WYx&SrZ&Yl+M0vV&gw_(09Ht!o55IHL5?97#Kc481X)=eucdx zI=MbURfNCHjuSw%uSHb*H`& zlS06TVmiJ7jvhdgbc4SpP+LEns*gSZv0J~4hEzYmzsJ9rAUD8mB*Q-4f8f8we1<>F zLNdQc2h%?$SO~u`D;7Pl7>2!*9#p>w^u0d^)-Jvhn&iHu?H;{gs^h+3VJ|)JF-XAV m!{)!>yYN4NO_V(JBv!tF8>qZypDn-8y}LaE43WM7-H<<1O6zq1 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0c4a329dc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ`Ë> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3c75e1e5c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis0_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJóït? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/model.onnx new file mode 100644 index 000000000..1f1a03ee0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/model.onnx @@ -0,0 +1,40 @@ + backend-test:” +> +X +W +BYMean InvStdDev"LayerNormalization* +axis !test_layer_normalization_4d_axis1Z +X + + + + +Z +W + + + +Z +B + + + +b +Y + + + + +b +Mean + + + + +b# + InvStdDev + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0bafab8fb258f08d0c34c0da7482dd8d5f66bbda GIT binary patch literal 254 zcmVVKPBaoKAwaWz~N$|K4KvSKlKG?KB_?GKFi06y)wb5zv|4rzTgvb EzpS=>)&Kwi literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..12cf194141371390e737f7d76d5f00c0f591adf1 GIT binary patch literal 254 zcmVJ??eoz5_cZztG{oybdFZ zKN3X%!1ndPKFG5RzZ^R8zswBzzb>q4za7V5K8rueJ{e(fzrHPkKT{;OKitd8J}PDx zzxeErKb>JgKWYwMKLHLXzgKBBz=3%OKtnOkzl(tqy&_&1KwCknKG6YlKZs7izn6;R zzcyb8zp$N)Kb%LgzDaFMzwoz8KH7YWKh5*FzZ3JCzdGhgzZ@NmKMr+pJ~VX*KL1PBEX0YU*;O5g(vty#cfUXj1{+_SzDh!sBoyEMQ!B7nU{bLzeP z-nTzTg#o}A%!5AL4k*7e2W7za2*uo=X+uA?%8Qedv zL=nJXooYXVwH7}Y>x@6~W4FI)7l^;-AqPMsxBB7_tE|7W6G^}&*df3uy(+%~nrJ`e?-4+7 zU$ws1#Hqc$NDe^Yc3HkS)OWuCoHjbvLtnpLMrglo8K*zqSVTQ^a818F$3DO6o}xeC zS0ujN&bvOoEWW=R%dbDgAF;kXsolQD*Pg!7RWLrz$09$jAqc?l#@ar(G`qimjpx6@ zTCu-W)(OCyszg43YDhiJyp_LOQAIz?0Zc!Q9v43-&b`0H3S2+(RbPd4iTL(P>OBg_6`#C=$y;MI=DZjrP^8>)BSsTA#rKLX{o;MR3CzE&U{Jt&fe^sjysSR7wd_CdIL<%9qN+Z07W_O!d4N6`dkR2+q;bBj m-EhAXo`Sz|#1uaYADurqe=9x^Q(C`poWHzFL|#A7E1kbhVeGX4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/output_1.pb new file mode 100644 index 000000000..cfe5baaba --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ¾=áA> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3f98a1912 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJm‹q?„6y? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d51ba6ae42d36c692b4d7ce0ff65ef4233e94f70 GIT binary patch literal 6086 zcmd5=O=}ZD818IRla2-BTC^Z|SPw!#q#_7C*)$fa_QR~zwjRPHJJF@v-E==+pf;^7H+7(z4Y`|-TbyzetpE}N4r(cY52b3K+( zJp1kje_`4W#7h}22jRBx++7j7f!|cSO;3H_^p9-Za+;#=Ml(&>?+V|MPP3Ev?eu>Z zygey?TCOmwxc}wa?LAhU9pfJvABAUg8I(?zNpW68 zadmhIEp)bmsapvI=(6qU66ZJ{kwGn%PO`pl0W?=DpHMi&#B= zA_wQ=mBB|q8JNvnO0Xd}sIBJq8N#V8;_6vmR6}u^8kHIk&(wIh2jbKE&AL@u@I)L- z|G?2;4!vO<=*C<`g}i1B8JZs$$2ouvpCu`LLYV8is=qYIGP*+`m#CWGk#YZz5ZF73 z2&Gk6N<2#UGfsYJ!?2^LibD-aM|(=aXwaYplx7Fm91IW*#Y#s-nU(JkPF3gehDr5& z%&;E$ScKW2rQ)MnB3b3&%Y=y%0TkP+mqgher7-6>bavn3RK`&Uuy$+5PF?os60sA; z6!1@IZ^fQ^a}_iWDPcFgRc9Ri%{bgPtVihznGZq9XU_`Ku?ls!M>YS%INmr+1|P=z zXqbrE;_M0Rg~4tMPY#oJ106}d3?;8~X~BBhAbebJP;d}Uv<@K=U4spX+9@diz{!Oa z5eGJaC~6qEHCIFmTs`h*w&B@~%wP71AGPiM(xz-h)f_-eCk>zx?uJXftPWn;JsGR=` DW7y“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0bafab8fb258f08d0c34c0da7482dd8d5f66bbda GIT binary patch literal 254 zcmVVKPBaoKAwaWz~N$|K4KvSKlKG?KB_?GKFi06y)wb5zv|4rzTgvb EzpS=>)&Kwi literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..12cf194141371390e737f7d76d5f00c0f591adf1 GIT binary patch literal 254 zcmVJ??eoz5_cZztG{oybdFZ zKN3X%!1ndPKFG5RzZ^R8zswBzzb>q4za7V5K8rueJ{e(fzrHPkKT{;OKitd8J}PDx zzxeErKb>JgKWYwMKLHLXzgKBBz=3%OKtnOkzl(tqy&_&1KwCknKG6YlKZs7izn6;R zzcyb8zp$N)Kb%LgzDaFMzwoz8KH7YWKh5*FzZ3JCzdGhgzZ@NmKMr+pJ~VX*KL1PBEX0YU*;O5g(vty#cfUXj1{+_SzDh!sBoyEMQ!B7nU{bLzeP z-nTzTg#o}A%!5AL4k*7e2W7za2*uo=X+uA?%8Qedv zL=nJXooYXVwH7}Y>x@6~W4FI)7l^;-AqPMsxBB7_tE|7W6G^}&*df3uy(+%~nrJ`e?-4+7 zU$ws1#Hqc$NDe^Yc3HkS)OWuCoHjbvLtnpLMrglo8K*zqSVTQ^a818F$3DO6o}xeC zS0ujN&bvOoEWW=R%dbDgAF;kXsolQD*Pg!7RWLrz$09$jAqc?l#@ar(G`qimjpx6@ zTCu-W)(OCyszg43YDhiJyp_LOQAIz?0Zc!Q9v43-&b`0H3S2+(RbPd4iTL(P>OBg_6`#C=$y;MI=DZjrP^8>)BSsTA#rKLX{o;MR3CzE&U{Jt&fe^sjysSR7wd_CdIL<%9qN+Z07W_O!d4N6`dkR2+q;bBj m-EhAXo`Sz|#1uaYADurqe=9x^Q(C`poWHzFL|#A7E1kbhVeGX4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..cfe5baaba --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ¾=áA> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3f98a1912 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis1_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJm‹q?„6y? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/model.onnx new file mode 100644 index 000000000..b5e4083e6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/model.onnx @@ -0,0 +1,38 @@ + backend-test:Œ +> +X +W +BYMean InvStdDev"LayerNormalization* +axis !test_layer_normalization_4d_axis2Z +X + + + + +Z +W +  + +Z +B +  + +b +Y + + + + +b +Mean + + + + +b# + InvStdDev + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_1.pb new file mode 100644 index 000000000..6c525c00a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ +BWJP/Uu>”V½¾øx?L‘@±Ð>ÐE¾2xA?™ +¿µë?¿wb=ŠL%À¥´“¿(²¾Ù;­¿¦-„¿zß¾°LÒ¿¤èϾw ¿•Ð< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_2.pb new file mode 100644 index 000000000..5bd79dbf2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJPM¼“?ÿ¤0>CЬ<Ç®Ë=§Ùh>~$‚¿Së½¥ž>u¯¿n›]?ˆjŠ?Û¡!¿A!w¾Ñ`¿™ +3?"Ö‡¿Ñc¾-â[¿oµP=N©å¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..75e5a26cb592563c7cec40b49ca6dd158275dac9 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)k)V@C<|9d_okorD+Z;3!$6t znz%o9aE3oGl8nE!Z0x_r9iYDsQGh-^q~^b%&UruZwHiMSMYq4Ruem_LhB7{I?ts4# za$3I&vC_Vfm2T3olor1`t9ZbJ7zIDKd4RtfwYI-Aq?5jbA5OncIAT9%u`R%^X0g8& zT5`V=%055V54gVQAYH%Zes4eO+dIFFT(3M-+vC4(_C7yYfRnuFJc>OkV~oI-bum9H zPpQ9W3;;h;C@4SpXDz<$QDZ+vlvhB2@6W%2q9wk5!q>kcbVWbS_?W*Wm;gU`A-cbK zabZ4wy5+yr%(y?JT|_@O552#Cm3lvba=O0GRH47dw`4ySViUlF&tyNKQ~>|J>pRqq-y_UZgD_*~H)gZs18hpEYbmYH&n(0{p literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2226bc2ce --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJê¿?~Zd=SHʾÄO´¾»¨×>XFþ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_2.pb new file mode 100644 index 000000000..4b0b73a6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJŽ–?…W?ÓÕ‘?¢ô­?ç|‰?»'_? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..15ade9d8bfbb32ad6f05d87fac8c99314986f09a GIT binary patch literal 6078 zcmd5=O=}ZD73vS}<-?T1;bZ9RlZcA`tSyXk(!*x%s~ z=s^&q2p$CS;>n9w|ArUwrU<^1$+p{)77tIr!xFNSydTf|%=5l8rfE$yMQck2?)5~* z$?TgO{DtK_5HDr497fy1_jX0%g+W8DHhlHI5gb{#+{59iP)7E`Zq;(N&*+s|Ol@w+N2Ee9_ z!ke`mV_R5qEA4&}E5~;v z>7bJER|X#eWneaQDZ!fDpthRZX9=g4NGj)eQ8mSB5-Qamo~ib555%YSnVMZ%@I{iy z;J^{-lXCQyaiAM(5f$>9J)~)VU>xTF)_j(v2nb=W>#DwKkY#*_NM0h4za!)RA0cpd zQV~hJu$20g?q}Tip$)^fo+=Irl8*M2f>EPE4N#gLU~@1)G!!ds6=hbwKe(wnk2h>o z&&LeY$j2he8Z8wcC5dE}gAWrHY6zg%R{b>2&M1XB*QLGt4mV{SbpVrFCvj`CONWS^ zD4~FVLbVmU>#bE#JEVlY{;4|S=x@g1wqY8jD`Y(cC7)d@NY^gZye`%J6XST}urc^B z-bcfRm@Uqpz-}0vmhk1U@oq3jl9r*y>s(qeO&f%d(*^|x(L~Q7G(=Zn4WfDq%0F=9 zLLU(q)_^E#7`RnW#0p&9DE4tVYr`=4(YIk1+ptS@8LOKyl8pDba0l{++E5`6H}V><^DQtZDuq0XU-xe*6Ib99yi)zh7Q&URFo-OMJ>? zR+$^7K~I66B0Xc9lS=H*^9fos^DnE%UpC3i#z|(HS9l-fA?u8+vgTEOn8!&!sv6~s Fe*x?u“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..6c525c00a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ +BWJP/Uu>”V½¾øx?L‘@±Ð>ÐE¾2xA?™ +¿µë?¿wb=ŠL%À¥´“¿(²¾Ù;­¿¦-„¿zß¾°LÒ¿¤èϾw ¿•Ð< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..5bd79dbf2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJPM¼“?ÿ¤0>CЬ<Ç®Ë=§Ùh>~$‚¿Së½¥ž>u¯¿n›]?ˆjŠ?Û¡!¿A!w¾Ñ`¿™ +3?"Ö‡¿Ñc¾-â[¿oµP=N©å¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..75e5a26cb592563c7cec40b49ca6dd158275dac9 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)k)V@C<|9d_okorD+Z;3!$6t znz%o9aE3oGl8nE!Z0x_r9iYDsQGh-^q~^b%&UruZwHiMSMYq4Ruem_LhB7{I?ts4# za$3I&vC_Vfm2T3olor1`t9ZbJ7zIDKd4RtfwYI-Aq?5jbA5OncIAT9%u`R%^X0g8& zT5`V=%055V54gVQAYH%Zes4eO+dIFFT(3M-+vC4(_C7yYfRnuFJc>OkV~oI-bum9H zPpQ9W3;;h;C@4SpXDz<$QDZ+vlvhB2@6W%2q9wk5!q>kcbVWbS_?W*Wm;gU`A-cbK zabZ4wy5+yr%(y?JT|_@O552#Cm3lvba=O0GRH47dw`4ySViUlF&tyNKQ~>|J>pRqq-y_UZgD_*~H)gZs18hpEYbmYH&n(0{p literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2226bc2ce --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJê¿?~Zd=SHʾÄO´¾»¨×>XFþ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..4b0b73a6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis2_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJŽ–?…W?ÓÕ‘?¢ô­?ç|‰?»'_? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/model.onnx new file mode 100644 index 000000000..f34f8f84c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/model.onnx @@ -0,0 +1,38 @@ + backend-test:„ +> +X +W +BYMean InvStdDev"LayerNormalization* +axis !test_layer_normalization_4d_axis3Z +X + + + + +Z +W + + +Z +B + + +b +Y + + + + +b +Mean + + + + +b# + InvStdDev + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_1.pb new file mode 100644 index 000000000..14c9a9fa2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ^;¦¿pV£?š©?³BR>rÞ8= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_2.pb new file mode 100644 index 000000000..b2f8e3d53 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJj¼@›ˆ¾F焾Iº>GT¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..79de96605635a9f581d8592cb7e7ad34bd14de71 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)vKHWcjQ4+xNE1AC;qZ>cm@xMO;-HSlC1;{^~ zAt1kxc%?qH%fCNf4`4tqlKel!q*^}Gt1mtWt-3#D83{n!{pvrisC&Pz%Evx$QM5lt zP>w(lAh|w=goHl30mMJsO^ZMke+$2WXHdU}6Bs}Jb;3W%Hlsgfwv9jTnNPo< z)>S+upS?e_{Vzaq>7YMy=%YV8L=irO!nQxiiZwt(D3HITF}J_UYe7F8e!M?$)(Sv2 zvaG+L>*_xQ(9=D&qrN|MiB~{e@ykCzw$i@Teab!DlE6Rg2va}MKYl&+@?JlXV0S&t zuD3r^$ z8=XJEDGt0{ioHL42TMR8N$S5qhb+HF+3-FV<;6c*0BS%cJ1Rd=lWIOt(Yrn7cf&s@ z+c-aKH0C}QA)3F~hB`e;@V-CH-ibhwJ2}je!o8$(tbbO mbz8mp=?B0Xw-rCXM7KY@r{g~&PC7q?{W8GreYZYSg}^`mPUOh| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..f1d0d7f58a37513acf07fc7f97cb8f8e30d6e1ab GIT binary patch literal 114 zcmV-&0FD0$0tf>L1PB2T0YU^#WnpegV8o)iKYbL_JSf2xKSP0CK9kDHJ&FR5KBr>| zzg~aBK4SL^zw}8AzkVv@z5t;ky$;4LzaU2Vz6O_WK2^B%zNS9=JXK&5KV7)-J^?!$ UKQ%=_zROZpKfwGoKX6VUKT4o200000 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_2.pb new file mode 100644 index 000000000..996fa15b2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3/test_data_set_0/output_2.pb @@ -0,0 +1,2 @@ +B InvStdDevJ`”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d?Z³—?²â´?°8C?O­˜?èEá?€v@gñÌ?a¹®?’zž?eF@, +Y?o„q?­²Ý?‡ûÈ?]–=?ñ Z?0e?¡Þ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..9fdc3c119fa5b2c4a47d3f78680b378bef5514a9 GIT binary patch literal 6070 zcmd5=O=}ZD815vg*^WZvTBIO&SPw!##19a9vS}<-?T1;bZ9Ig@?nIYvchmidvA@H+ zJ$RBLco4*kCof+88(zelBKS@wn{K5o9-e@QC3L6zemw6p&->08hIytfoGlr+R}vW~ zbFZ%Q=cavMypYjK7;OvR+ZBly1}(MP^40rRaA@JC+Y)^*zR{BXt_WP|wmNCx48B?P zLy_F+#-1Mrmaz~9aUz1GI>RS>!cS$@s4%Ov|M~K*Jyx2V;2#(thi7vIlunjOX+gwE zb&3~~aF*?{0)_sBvkh|@BqBQZbx`gr>2^c9sUzL_zKpG+owh0YuZ)k!0jy?r+8NbsIuq~J&Y+0Zzjq|* zppx*H1wIDKz-;DHf;G8eZ8f(~5l)Uss;7BLHN{yHD%BpIs`hXf#HWqxb*sGSizJc3 z$Pww2a`c9Apc``u74o`uMALlFIL-mA`7BEj5W-y7RsE$wmho*Od6_`|hK&1vguvcO zMI^1_a_UpMpK#-cHVoT(syHM_I@%KoMvVqFKxuY>&A|ZCP^@-Tlv(+H|m-g;k+>~+H0ZeY~#I4I79U^w3 zgaZBn)mH4TH`hSzkP`L=r|OKOzZi$xhG~?pkof?Ve0HrMU8`94dQ|g|jN^^N#^8f^ zA09QtY;pD&cEeyh!k0&lcf&c7vAR^aMJv5(7H8-~e`z6~?krd4jpSlx_~WW2+LJCrxnzFG=;+M+%~ zI9@jjiN+K&9e1$(2sVP{kFaKGFg)h4rulyi;EX5usS*4+wwTp_zr1c“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..14c9a9fa2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJ^;¦¿pV£?š©?³BR>rÞ8= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..b2f8e3d53 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJj¼@›ˆ¾F焾Iº>GT¼? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..79de96605635a9f581d8592cb7e7ad34bd14de71 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)vKHWcjQ4+xNE1AC;qZ>cm@xMO;-HSlC1;{^~ zAt1kxc%?qH%fCNf4`4tqlKel!q*^}Gt1mtWt-3#D83{n!{pvrisC&Pz%Evx$QM5lt zP>w(lAh|w=goHl30mMJsO^ZMke+$2WXHdU}6Bs}Jb;3W%Hlsgfwv9jTnNPo< z)>S+upS?e_{Vzaq>7YMy=%YV8L=irO!nQxiiZwt(D3HITF}J_UYe7F8e!M?$)(Sv2 zvaG+L>*_xQ(9=D&qrN|MiB~{e@ykCzw$i@Teab!DlE6Rg2va}MKYl&+@?JlXV0S&t zuD3r^$ z8=XJEDGt0{ioHL42TMR8N$S5qhb+HF+3-FV<;6c*0BS%cJ1Rd=lWIOt(Yrn7cf&s@ z+c-aKH0C}QA)3F~hB`e;@V-CH-ibhwJ2}je!o8$(tbbO mbz8mp=?B0Xw-rCXM7KY@r{g~&PC7q?{W8GreYZYSg}^`mPUOh| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..f1d0d7f58a37513acf07fc7f97cb8f8e30d6e1ab GIT binary patch literal 114 zcmV-&0FD0$0tf>L1PB2T0YU^#WnpegV8o)iKYbL_JSf2xKSP0CK9kDHJ&FR5KBr>| zzg~aBK4SL^zw}8AzkVv@z5t;ky$;4LzaU2Vz6O_WK2^B%zNS9=JXK&5KV7)-J^?!$ UKQ%=_zROZpKfwGoKX6VUKT4o200000 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..996fa15b2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis3_expanded/test_data_set_0/output_2.pb @@ -0,0 +1,2 @@ +B InvStdDevJ`”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d?Z³—?²â´?°8C?O­˜?èEá?€v@gñÌ?a¹®?’zž?eF@, +Y?o„q?­²Ý?‡ûÈ?]–=?ñ Z?0e?¡Þ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/model.onnx new file mode 100644 index 000000000..43e06f3ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/model.onnx @@ -0,0 +1,38 @@ + backend-test:— +G +X +W +BYMean InvStdDev"LayerNormalization* +axisÿÿÿÿÿÿÿÿÿ +test_layer_normalization_4d_axis_negative_1Z +X + + + + +Z +W + + +Z +B + + +b +Y + + + + +b +Mean + + + + +b# + InvStdDev + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_1.pb new file mode 100644 index 000000000..60203fb57 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ +BWJéßË?¢c„¾˜Ý> +e°¿U»Ÿ¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_2.pb new file mode 100644 index 000000000..51f7304cb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJEW¿Ý߀¿è=×?LÓJ¿S¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9b6c764bca66bcc4a9382b28516b4ba55a346f19 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g(k)VaNIei^@%RJ%W>NgKfQ5<0(&G*!Seld!*; zSIj@3-vhsY1316n?hwEiIlI48Rpmc&rT{-Vc;deD9vQzcskgsmvB5ut3wOVCyvn^P zH(S7y9*n@V{EG(f<(Vsuv zwvWCp`BJ~x%8|dVz|KG9Y{Early$#v*eJhbLmI#QB?UkLZxuUhoE}NAABcBr(5O=E^@LX~4f+Du%x*ARWMyN}0d)%jG{6>x4fl$!fn2 zUy?t!w3EMy8@oTIl&n84DlESWQBc4zzcpVtBXJ1SU|s;2|~YVs`L2( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..f1d0d7f58a37513acf07fc7f97cb8f8e30d6e1ab GIT binary patch literal 114 zcmV-&0FD0$0tf>L1PB2T0YU^#WnpegV8o)iKYbL_JSf2xKSP0CK9kDHJ&FR5KBr>| zzg~aBK4SL^zw}8AzkVv@z5t;ky$;4LzaU2Vz6O_WK2^B%zNS9=JXK&5KV7)-J^?!$ UKQ%=_zROZpKfwGoKX6VUKT4o200000 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_2.pb new file mode 100644 index 000000000..996fa15b2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1/test_data_set_0/output_2.pb @@ -0,0 +1,2 @@ +B InvStdDevJ`”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d?Z³—?²â´?°8C?O­˜?èEá?€v@gñÌ?a¹®?’zž?eF@, +Y?o„q?­²Ý?‡ûÈ?]–=?ñ Z?0e?¡Þ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..fa3573a332e42d4930d30e2172a2c5c2f904a3c4 GIT binary patch literal 6663 zcmcIpOKa3n6zyD=BmpaVe=Du?~ z=21NRXPUks`qPK(IS-eDaEE#Bki~A`TjH|iiSw3!?81y=v4I;|KHq{n``ntc_@Kvp zhdWj`@$K~K1utOn{a)mHfp2K@fgi=pkLwe3w9mYR*R>ik)DQc&?(PwFc7*;Q6!#tU zR_PRTcIrHf;`$g>;$V{O5e4XQN?Q6x>4+`!8S8OlH2ngYPlRHD=vc$K5!*4>d zp%C0*Cf!4KjOX=Wxtsc@elk$A5c#N3R9zsfUZ9CkRWmh6QC|Qn+AOYLq^hXLlaSp+ z?HP*NvsStmTX&j9b-`nC%zY^15;9L|2U*?wOehMnZkEqy-8iLietPrCu(KU@mE><*oq89sXWHm?(;VL0G=X10jV!VxdtnlMaLf2&eo+4eL|1F-tGM z=YjWK@scQ?<0^BG1E%?g(Ow;g!pL^9)8u^^uXe*2NW4MH{pF9FSyE`1Uf{tTZn~3^ zYyO==5m6BGrJ4Fve_Xn0@{Jzu7?q~m2fh3x6cYwvo;c#Lc3LBsP_lur=VRK;tKoudsW|S~;k}wuXOm<+qlr#{ETH_pVyvAscQhPZF2mF5qMU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..60203fb57 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ +BWJéßË?¢c„¾˜Ý> +e°¿U»Ÿ¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..51f7304cb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJEW¿Ý߀¿è=×?LÓJ¿S¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9b6c764bca66bcc4a9382b28516b4ba55a346f19 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g(k)VaNIei^@%RJ%W>NgKfQ5<0(&G*!Seld!*; zSIj@3-vhsY1316n?hwEiIlI48Rpmc&rT{-Vc;deD9vQzcskgsmvB5ut3wOVCyvn^P zH(S7y9*n@V{EG(f<(Vsuv zwvWCp`BJ~x%8|dVz|KG9Y{Early$#v*eJhbLmI#QB?UkLZxuUhoE}NAABcBr(5O=E^@LX~4f+Du%x*ARWMyN}0d)%jG{6>x4fl$!fn2 zUy?t!w3EMy8@oTIl&n84DlESWQBc4zzcpVtBXJ1SU|s;2|~YVs`L2( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..f1d0d7f58a37513acf07fc7f97cb8f8e30d6e1ab GIT binary patch literal 114 zcmV-&0FD0$0tf>L1PB2T0YU^#WnpegV8o)iKYbL_JSf2xKSP0CK9kDHJ&FR5KBr>| zzg~aBK4SL^zw}8AzkVv@z5t;ky$;4LzaU2Vz6O_WK2^B%zNS9=JXK&5KV7)-J^?!$ UKQ%=_zROZpKfwGoKX6VUKT4o200000 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..996fa15b2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_1_expanded/test_data_set_0/output_2.pb @@ -0,0 +1,2 @@ +B InvStdDevJ`”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d?Z³—?²â´?°8C?O­˜?èEá?€v@gñÌ?a¹®?’zž?eF@, +Y?o„q?­²Ý?‡ûÈ?]–=?ñ Z?0e?¡Þ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/model.onnx new file mode 100644 index 000000000..9ba4d2ed7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/model.onnx @@ -0,0 +1,38 @@ + backend-test:Ÿ +G +X +W +BYMean InvStdDev"LayerNormalization* +axisþÿÿÿÿÿÿÿÿ +test_layer_normalization_4d_axis_negative_2Z +X + + + + +Z +W +  + +Z +B +  + +b +Y + + + + +b +Mean + + + + +b# + InvStdDev + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_1.pb new file mode 100644 index 000000000..0df36139f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJPÉ©?rðv¿!Tu=¤ŸY¾ðC¿Ec¿Ñ·o?b¿ÒÖŠ>æ.M¿¯­%¿aÊñ>@/n?%†3¾x¶¿½ÿ?ÑF[¿¼RÅ¿ &@RÝξ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_2.pb new file mode 100644 index 000000000..05c71f197 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJP»¿éõ.¿Ø.¼>áB>í +Z¿Oé??†¿Ï£—¿ðu?»ª?:GQ¿Y_³¿gåƒ?ZÀð¿ªw?Z¹b½Ì"‡¾a¤´>æp¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..beb6c1986e02a8d0df974f307bece757cb474686 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)X_02vnrTe}&^U6NT{b;^m{Q$t616)8fSJAyf zHa)+u1wTJbM!i2I&HTQC=xD##zn(wXJ^H_;C4#@e$kRRxt$e?K_>n)Oz}vpO4+cM* z|BJv?pq0Op579n`h^jt$Y!SeE<2*ojiU+?P;fcQ_A*Mf69Kb$89bdl@_oBasFO@zr zmEXVEPd>l#eUU$y{${^}L*T#qY#qN?)BU`V!5qNS&Eh^2UyeR-V!^&ulR&@g-|jyy zDB{1UkU>9XjblGjUgE!e*o(hF zr#e85BkRA2(JR1!kApqNVGKV62v|N9`29Yf1i`*|G;Y9!7MH)VrM*5{93wyG)7-xl zKGi-9DRw@NWLUpsum(S<`cdU-4H&R4qiX>@r*uTW70h`-Ge?Z^D{rT-J!o|SslNgw5s|%Q+7Q6J$Bw>`0>D3Uo5;T6njAm4Q64`?_L{yS`uC9l literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2226bc2ce --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJê¿?~Zd=SHʾÄO´¾»¨×>XFþ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_2.pb new file mode 100644 index 000000000..4b0b73a6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJŽ–?…W?ÓÕ‘?¢ô­?ç|‰?»'_? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..28acfd41873e550c9725295554cbc7fd69eb04b6 GIT binary patch literal 6671 zcmcIpOKa3n6zsHhB@eZ@Mx$j($ zc@)q7x=EiB{n0)4gojH(xWhbm$YM9}E%Dg$#C^*@@?gfX*uae}pKrk@``ntg_@Kvp zhdWj`@$K~63tqtDJH5#D0^iW)13!wHAJ-@8XrFlruWL18sBibL-P$AS>iz1sr}5 ziVcMj4m0T zCVJ0M^q#fSwb+_&8r21l#WDAxjZ4U4O%vE32t`5G&GPxI8z(gGFN9)1A@rL?&U^?7 zm68yDNg?p)He^o~g7I8I;euim!9nJ3!a{CT784Jg@g1Y^O9+HK7vY53C>i`C#IG=B z2&pWDRxb@BxJx=}xhnwjfWJ`?Hi}|g5X={OAe8X?EHo-+(t&gU;gnyf!9GP>v-I+3 z9(dmsFNyL!t}^F1;F`}E z=3grm5e1=MnrTe+2c^3vKj`6(QE9q;(91VMF<}t)i9-%+Ck=85B^wB5KBmn)UYvxF z4c|~#%imZER1xZHMhT-P31@-CMsYOeF77NAT(SSi6F@4 z_7P(YmJkR9P@Z?{WYegw@<^P0LaExvppcc?@^kmD-{ALHtY@TMObA_fMIN><~tE6+49x^)ZLk*>N;V&S2;Pn6i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..0df36139f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJPÉ©?rðv¿!Tu=¤ŸY¾ðC¿Ec¿Ñ·o?b¿ÒÖŠ>æ.M¿¯­%¿aÊñ>@/n?%†3¾x¶¿½ÿ?ÑF[¿¼RÅ¿ &@RÝξ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..05c71f197 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BBJP»¿éõ.¿Ø.¼>áB>í +Z¿Oé??†¿Ï£—¿ðu?»ª?:GQ¿Y_³¿gåƒ?ZÀð¿ªw?Z¹b½Ì"‡¾a¤´>æp¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..beb6c1986e02a8d0df974f307bece757cb474686 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)X_02vnrTe}&^U6NT{b;^m{Q$t616)8fSJAyf zHa)+u1wTJbM!i2I&HTQC=xD##zn(wXJ^H_;C4#@e$kRRxt$e?K_>n)Oz}vpO4+cM* z|BJv?pq0Op579n`h^jt$Y!SeE<2*ojiU+?P;fcQ_A*Mf69Kb$89bdl@_oBasFO@zr zmEXVEPd>l#eUU$y{${^}L*T#qY#qN?)BU`V!5qNS&Eh^2UyeR-V!^&ulR&@g-|jyy zDB{1UkU>9XjblGjUgE!e*o(hF zr#e85BkRA2(JR1!kApqNVGKV62v|N9`29Yf1i`*|G;Y9!7MH)VrM*5{93wyG)7-xl zKGi-9DRw@NWLUpsum(S<`cdU-4H&R4qiX>@r*uTW70h`-Ge?Z^D{rT-J!o|SslNgw5s|%Q+7Q6J$Bw>`0>D3Uo5;T6njAm4Q64`?_L{yS`uC9l literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..2226bc2ce --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJê¿?~Zd=SHʾÄO´¾»¨×>XFþ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..4b0b73a6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_2_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJŽ–?…W?ÓÕ‘?¢ô­?ç|‰?»'_? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/model.onnx new file mode 100644 index 000000000..dbb6d22c1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/model.onnx @@ -0,0 +1,40 @@ + backend-test:§ +G +X +W +BYMean InvStdDev"LayerNormalization* +axisýÿÿÿÿÿÿÿÿ +test_layer_normalization_4d_axis_negative_3Z +X + + + + +Z +W + + + +Z +B + + + +b +Y + + + + +b +Mean + + + + +b# + InvStdDev + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_1.pb new file mode 100644 index 000000000..467f7cc14 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ +BWJððƾŒ¢¿÷V<>ê^ž÷Í¿Jc¿CËn¿%Ÿ?h P?¡V?*_¿·×P¿¬ì¿¤†¿"Ò@Z³ÀÝb?6l¤¿ +²Õ½²í|¿Œ¼–¿ôñ‘¿c£à?.¾D¿H?,)<"T8?>é¿ùq›>TÏE?A¯Ô¿Úyå>zÙ?ºms¼©GR?ª+?5¿râ"=H“È¿1ç¾Aˆ>9?^ŸÉ<ÛP8?,¿©FнÍï„躾9Jå¿tøo½•¢¾?óп¢}‰½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..50ca1fe118ed235436eea944871cfddfb6c33a49 GIT binary patch literal 254 zcmVzqjuyzociUK3)2# zKHqf?K#_c}KNf`ozfV=BJ|IJXKdrF(JU*a~y+1%xJ=XzMb6gKK^x| EKD(50X8-^I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ee4368eae79cdc7c959fcf6ca83dc40b73a72653 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)Rm|s6?DZ4(Mx= zsER-k6DdAUou5B&vXj0XHwxL&_XQ58QFo$o%dHoCsOb_2kYGYr3abBMo$)LcIR zOX@zpMh`%rCd$9y80WsTS4clxZh$|`K?*;dyO_R@ma{#mxr;u;23fzZVadK)W5_=< zwyi$yB51qRT_|!fz^DDjpVdT7B z8>&Ap4gx>+rjfp+R180Wiq?-W0F z-&(&#@tVH4rW4KIu0A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_1.pb new file mode 100644 index 000000000..cfe5baaba --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ¾=áA> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3f98a1912 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJm‹q?„6y? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d269dfbf196d70ff25171f49d8654b82991c417e GIT binary patch literal 6679 zcmcIp&1=*^6z^oWZaNlR$D#$rLp%rz9@K)+lijWb!G6%RcDpKJb~9T;(`1{EW!;nF z&5L+byz~$7|AHgsm6;_N(06Hp-?m z6!7Xp1oyN=;9qa#)OIdYTSX_;$}AaEVtY;yz~>+(4uN0Fz^e&3{qr~d0*y$?|JKlg zhhSLw7QwLc8+%x|+*Sh7bp~0+xK2mP?lVTlq!g^eDJ;c1tHO>u!k!z5&?qg5E#UBr zP;4lKaF}s-KOASWez4q4;!_(<)HFrjYZO%%2-b5n5xQ!s1|{lK;KdG)YNu&g_Ty=& zZnF0bW$#%lT#L;c4WqK)@+cA>v~dNQuW1tdBcUkB%q*VIx^YC~{zfPU6hgmQ6x@T5 zP$dcZlM;dmZ$tJ}AQ&$+6fP)65gcUh#yk*4X)$)e89y-!zk)!>a~V#kjf%kuA%2Z9 zLnvh-w0dP2!ClHx%UubO1^lgsuuZS;z zY5wMcm6Jg`7Zcd7P+f;jXktH1Ii<0g|M?e4>!Q4WIZvl_!m3o$HF!$!l;Ig~U65^w qQMeLjlcNXqqYm0&Zu2;E?aMR?#mG4U%gNKeLJyc7_o2F0J^K#{s^JF! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..467f7cc14 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ +BWJððƾŒ¢¿÷V<>ê^ž÷Í¿Jc¿CËn¿%Ÿ?h P?¡V?*_¿·×P¿¬ì¿¤†¿"Ò@Z³ÀÝb?6l¤¿ +²Õ½²í|¿Œ¼–¿ôñ‘¿c£à?.¾D¿H?,)<"T8?>é¿ùq›>TÏE?A¯Ô¿Úyå>zÙ?ºms¼©GR?ª+?5¿râ"=H“È¿1ç¾Aˆ>9?^ŸÉ<ÛP8?,¿©FнÍï„躾9Jå¿tøo½•¢¾?óп¢}‰½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..50ca1fe118ed235436eea944871cfddfb6c33a49 GIT binary patch literal 254 zcmVzqjuyzociUK3)2# zKHqf?K#_c}KNf`ozfV=BJ|IJXKdrF(JU*a~y+1%xJ=XzMb6gKK^x| EKD(50X8-^I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ee4368eae79cdc7c959fcf6ca83dc40b73a72653 GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g)Rm|s6?DZ4(Mx= zsER-k6DdAUou5B&vXj0XHwxL&_XQ58QFo$o%dHoCsOb_2kYGYr3abBMo$)LcIR zOX@zpMh`%rCd$9y80WsTS4clxZh$|`K?*;dyO_R@ma{#mxr;u;23fzZVadK)W5_=< zwyi$yB51qRT_|!fz^DDjpVdT7B z8>&Ap4gx>+rjfp+R180Wiq?-W0F z-&(&#@tVH4rW4KIu0A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..cfe5baaba --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ¾=áA> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3f98a1912 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_3_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJm‹q?„6y? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/model.onnx new file mode 100644 index 000000000..840032332 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/model.onnx @@ -0,0 +1,42 @@ + backend-test:¯ +G +X +W +BYMean InvStdDev"LayerNormalization* +axisüÿÿÿÿÿÿÿÿ +test_layer_normalization_4d_axis_negative_4Z +X + + + + +Z +W + + + + +Z +B + + + + +b +Y + + + + +b +Mean + + + + +b# + InvStdDev + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1256426bbc1abaa623133ba4015e3ef4effe8e82 GIT binary patch literal 496 zcmVL1PBEX0YU*+O5g()&N4p*A$L2Sjcz~W53WAOcYwTG$|OFkIzzs< zDayWI6p6mAVvxTMmXAJJJ$}C?byq(Ua(})+yGlJR*!(_1up~b)3dz5Z-c!D4Q(-@d zTiL&$Nya`ZTM)p3;ex*sJ03kg57fVJN_@W;WxT%@_R>F6D=0qjIT1hc1Z2Jf^|ZdA z=+3{jYn8qy@j}1npj$tn50XFHxVt~tKw3XyK^ecc)sDXkL_|LWY_>jlU*f;E0k%G0 zgit^ATX8+Mem%Yo!cM;pD7n8>;7mV2M4rCl5pTZF$=yG9J1;-R+`T@gco9A^kHSBJ z8{9t(^ld+^3>8264FL1PBEX0YU*nO5g+BdPP5{#DhPzq-eh>K-s<+(_BBQ^(nx-w81|R znhie`G&{Y*%waz3)PujrE3>{H){H-vC8j^`jx0dYWtY9}mMFj0qyxV)PlCTta-Y3{ z^}{}*K@7bZRg6DG)^ENI<*~j4&J@2Z`q00ftjNEn?v}qYm8L((FJ(W|{;xmjg{r^h z`}@Ch`6$2Q2{b-cRR2EoBZfa4jgdaZ58pq&@?*Y_ziGcIGS|PLlViWd?RP#bgJZv2 z&Tl^_$Fx6Crx(D8GF?BcRS&>PkD6&@Wj4+KI6V$0*XJb$s@pOH>WP{Tn#+G=>|UL1PBEX0YU*;O5g*$O71^M z5Gg<8_HaBn*rL5?aD%_Lip{@8oXtNUd!|2bfGt4usH{A^!8bkt=GnW+;fB9mr)a+d z;Fmxopdvn$OZUF-ARj+~bBVsFmiIrJe#XD52amrruY*7BcfmhON@zciOsPLNwtTAZn;0*+ylT4!jM056j8ryp%_0SB(*=dX16}w>&3r%l*qmm_>sN{`Xaufyr{pr z#B9ImqX55n%Dul}q0>L!E2ckn%g4U-*89E!D+9leEnC3UxZgjf87IF??9shqSI<3p z$KyXBJt4n@yKTR|n}$EK$w|OP5Q#ho71+O>ZA8D>ARs^ilx4pzwktja;03@uUC=&& z${IUZ2T(r@#AiQ4<7hwB`P)8gl72t8ba}tbbC5j~NPa&`l_@{W`aVB^H$cAtIFrEe zPY1qZU5`J~V>G}}{W(8W+6=$J9d17eMwdMoX>C9r@R2?=evUu90gAvkGA_WIax=hi mFe5!gbS^zUpc26LB%!_p9)dsj;toG(*VQ~G4br}6)kr?zZ|Tbb literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0c4a329dc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ`Ë> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3c75e1e5c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJóït? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..96d1cb4061d15327f074e4426551729034f9bfbd GIT binary patch literal 6687 zcmcIpO=}ZD818JgW;+VTwMaqnupWef2PGi%WYbs>><8V}rd3%cyOX+fyPNJuh`EUu z@gm+7FZ}_YJb4lodJx2mKf=3bLEqWQw%gM7AoB*6kW6--ectzZzb1xZp6f7oi-+Eg zlqc!*iw1p0%*XfHQywow@iq(mAxr%zbi}d~i0_^7&_cs=*uYPmkZ-~-``l?be9&W| z$33T;g>HWLToAGJZZGkJD71{(C`?ioru9iW-e*C^>qd=O`un}>w|9v?Jx0G1iu(*^ zTRFvooj%Kwv_3(#G@2s2L<2gUlD4^~9Ikx(oUb5;4%FSBsV(rtgp z;n9Z(=GowJbhA}b+r>g{RfE*3(_~DF?KwdJpMj7#1b(FeujSzM&)?AtG$JJbTSIdm z!p73J2pdbgnU9pqZ7Jqme^5kB;JZS0UoawOM8Q!`VIkXI=3eG zCTh=6)SeaPT5R8HS=G6Kr6~`gj7!LJP7~Ol2t`3QZS{Ostz!!JH$pL>5bDi5XCb(R zN=b-MQV2Y`1JP3jXS~!tXtJ(o`|zgNL70n6h^65eeB)~`*LqNtGRwJjvy?62aK9n)fAyM zEuTD?dfsT4d;-%Is_C!^P3*g=q%^bfKYxL2To&gqm*}KH%o^1U4Xz4YI$YyoaqYCl i=1GekxO4r)#j7-TNokz`-2T“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1256426bbc1abaa623133ba4015e3ef4effe8e82 GIT binary patch literal 496 zcmVL1PBEX0YU*+O5g()&N4p*A$L2Sjcz~W53WAOcYwTG$|OFkIzzs< zDayWI6p6mAVvxTMmXAJJJ$}C?byq(Ua(})+yGlJR*!(_1up~b)3dz5Z-c!D4Q(-@d zTiL&$Nya`ZTM)p3;ex*sJ03kg57fVJN_@W;WxT%@_R>F6D=0qjIT1hc1Z2Jf^|ZdA z=+3{jYn8qy@j}1npj$tn50XFHxVt~tKw3XyK^ecc)sDXkL_|LWY_>jlU*f;E0k%G0 zgit^ATX8+Mem%Yo!cM;pD7n8>;7mV2M4rCl5pTZF$=yG9J1;-R+`T@gco9A^kHSBJ z8{9t(^ld+^3>8264FL1PBEX0YU*nO5g+BdPP5{#DhPzq-eh>K-s<+(_BBQ^(nx-w81|R znhie`G&{Y*%waz3)PujrE3>{H){H-vC8j^`jx0dYWtY9}mMFj0qyxV)PlCTta-Y3{ z^}{}*K@7bZRg6DG)^ENI<*~j4&J@2Z`q00ftjNEn?v}qYm8L((FJ(W|{;xmjg{r^h z`}@Ch`6$2Q2{b-cRR2EoBZfa4jgdaZ58pq&@?*Y_ziGcIGS|PLlViWd?RP#bgJZv2 z&Tl^_$Fx6Crx(D8GF?BcRS&>PkD6&@Wj4+KI6V$0*XJb$s@pOH>WP{Tn#+G=>|UL1PBEX0YU*;O5g*$O71^M z5Gg<8_HaBn*rL5?aD%_Lip{@8oXtNUd!|2bfGt4usH{A^!8bkt=GnW+;fB9mr)a+d z;Fmxopdvn$OZUF-ARj+~bBVsFmiIrJe#XD52amrruY*7BcfmhON@zciOsPLNwtTAZn;0*+ylT4!jM056j8ryp%_0SB(*=dX16}w>&3r%l*qmm_>sN{`Xaufyr{pr z#B9ImqX55n%Dul}q0>L!E2ckn%g4U-*89E!D+9leEnC3UxZgjf87IF??9shqSI<3p z$KyXBJt4n@yKTR|n}$EK$w|OP5Q#ho71+O>ZA8D>ARs^ilx4pzwktja;03@uUC=&& z${IUZ2T(r@#AiQ4<7hwB`P)8gl72t8ba}tbbC5j~NPa&`l_@{W`aVB^H$cAtIFrEe zPY1qZU5`J~V>G}}{W(8W+6=$J9d17eMwdMoX>C9r@R2?=evUu90gAvkGA_WIax=hi mFe5!gbS^zUpc26LB%!_p9)dsj;toG(*VQ~G4br}6)kr?zZ|Tbb literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0c4a329dc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BMeanJ`Ë> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..3c75e1e5c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_4d_axis_negative_4_expanded/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +B InvStdDevJóït? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/model.onnx new file mode 100644 index 000000000..d56e4e127 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/model.onnx @@ -0,0 +1,37 @@ + backend-test:û +1 +X +W +BYMean InvStdDev"LayerNormalization%test_layer_normalization_default_axisZ +X + + + + +Z +W + + +Z +B + + +b +Y + + + + +b +Mean + + + + +b# + InvStdDev + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_0.pb new file mode 100644 index 000000000..703fd46ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BXJàxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_1.pb new file mode 100644 index 000000000..2664d330b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJÙºÀ>*¹Œ¿­²˜>Ç©?3Ï1¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_2.pb new file mode 100644 index 000000000..0c6176683 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJÌ9¾rÌÞ¾­´ì?‚,?ÖžÐ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3857c14ca7dc88720239f0ab66cbce1b498c6c1a GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g){UEw^s@1;LKwb4IUuMa@b1K+%$1U@(E zDdInLqR&2nbQrw8^!UD~On*Kk)cPG44{R6+QxI4e!y->dIy4*iD?+HL!(x|@hx*|TlM$o?z(%e7I zh0MPU5P?2Heu=(J(cr)1i3~u*2t>ci+=)MXU6#J44wybv^U6Q|vrItCkH$XeUCq5- zX!<_QhZI1L%z?jt(F8t9G3CAn@&drpQ|LeLkA=TTo6@~JLXm5T`xIPL{s! z#S1_mecrzo4~9OBFvz|cRA)bn#NaL1PB2T0YU^#WnpegV8o)iKYbL_JSf2xKSP0CK9kDHJ&FR5KBr>| zzg~aBK4SL^zw}8AzkVv@z5t;ky$;4LzaU2Vz6O_WK2^B%zNS9=JXK&5KV7)-J^?!$ UKQ%=_zROZpKfwGoKX6VUKT4o200000 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/output_2.pb new file mode 100644 index 000000000..996fa15b2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis/test_data_set_0/output_2.pb @@ -0,0 +1,2 @@ +B InvStdDevJ`”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d?Z³—?²â´?°8C?O­˜?èEá?€v@gñÌ?a¹®?’zž?eF@, +Y?o„q?­²Ý?‡ûÈ?]–=?ñ Z?0e?¡Þ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c6aec2477ed8fb79317609a1097215008b30002b GIT binary patch literal 6271 zcmd5=-D=c86z*hGHywqpu}DGjB3=j!ih3jT%5K+!V7GPC|C=zI%xY+wY?H~dR=ibw zi#|ZFLsXy2|o%Qx#|S+y%Qc=@OYo4fpFN!PaHlPu+Zb4(@#S;+czIX zOgtJSeh`J0F&Bl2V4-ME(eWV*QrnxD_nAYos)<&k49uyxSf#mTIt%4Y#ic~tB6cm zih1836$c>jUCF2qxCbCNdjrwzPP*OYUg~mhcEl5_*5S{xd6+|G4 zI}PqxwYEP5E_@}l8U?8R_>tYqr!`9vC2OeH8@9^=UhXYVG_sHbF?;=zd#JfEcLO(< zNN9jQs@K_~q=i~&TIZnt2f4AzJV7mHU_C0>EuSS4Y*ldHkr}x$N{#)7=~ZlP+Pw8+->Sv(^|qFW|4}3s?Ldt z!*G;XWZwC=8~Dv@@~+`3oid2opqin“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..2664d330b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BWJÙºÀ>*¹Œ¿­²˜>Ç©?3Ï1¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..0c6176683 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BBJÌ9¾rÌÞ¾­´ì?‚,?ÖžÐ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3857c14ca7dc88720239f0ab66cbce1b498c6c1a GIT binary patch literal 496 zcmVL1PBEX0YU*;O5g){UEw^s@1;LKwb4IUuMa@b1K+%$1U@(E zDdInLqR&2nbQrw8^!UD~On*Kk)cPG44{R6+QxI4e!y->dIy4*iD?+HL!(x|@hx*|TlM$o?z(%e7I zh0MPU5P?2Heu=(J(cr)1i3~u*2t>ci+=)MXU6#J44wybv^U6Q|vrItCkH$XeUCq5- zX!<_QhZI1L%z?jt(F8t9G3CAn@&drpQ|LeLkA=TTo6@~JLXm5T`xIPL{s! z#S1_mecrzo4~9OBFvz|cRA)bn#NaL1PB2T0YU^#WnpegV8o)iKYbL_JSf2xKSP0CK9kDHJ&FR5KBr>| zzg~aBK4SL^zw}8AzkVv@z5t;ky$;4LzaU2Vz6O_WK2^B%zNS9=JXK&5KV7)-J^?!$ UKQ%=_zROZpKfwGoKX6VUKT4o200000 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/output_2.pb new file mode 100644 index 000000000..996fa15b2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_layer_normalization_default_axis_expanded/test_data_set_0/output_2.pb @@ -0,0 +1,2 @@ +B InvStdDevJ`”ù¿?‰”Ç?ðÊ@ Ò¥?æ°?é±d?Z³—?²â´?°8C?O­˜?èEá?€v@gñÌ?a¹®?’zž?eF@, +Y?o„q?­²Ý?‡ûÈ?]–=?ñ Z?0e?¡Þ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/model.onnx new file mode 100644 index 000000000..49ffc8b3e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/model.onnx @@ -0,0 +1,14 @@ + backend-test:f +" +xy" LeakyRelu* +alphaÍÌÌ= test_leakyreluZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5680514b268954cffe39bcabff64c7c311b96d17 GIT binary patch literal 254 zcmVdzK82paK8w+{y=2u& zzC3{rz493#J}P>hKb7a1KPjdjy?dqiykNf8z3XTZzS_7hz5=uPKj^?vy=!kXy+=s^ zzMKh1KV3s5zTZZ!ygg*My%re8KFv8%y&}u;z3;I&yHQTtJ}x?lJ(=B_KELRJy(^Ry Ey}itLkN^Mx literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/model.onnx new file mode 100644 index 000000000..fe3778b69 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/model.onnx @@ -0,0 +1,13 @@ + backend-test:] + +xy" LeakyRelutest_leakyrelu_defaultZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_leakyrelu_default/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5fd7f400c81945c84e8a70ed8c162551f61f7b5a GIT binary patch literal 254 zcmVdzK82paK5ujpyii1< zy!ioSyYd+zJ}P>hKb7a1Kd07xyZjwSyMW6pyxym1ycEZayaKcNKe+&>yH<>ky9+{1 zyqpO~Kjbxpyyj~QyO*{SycQV7K5${DyH0OGyo|w“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_less/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1424d7297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..832abe84b3cf935715a550277097dd889d293efd GIT binary patch literal 76 wcmd;J=3wDq72tGY$w@6P_Of9B0Y)H%5MUl7kjKCXBY`xK4dz0bAf+G#0JYBo;Q#;t literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/model.onnx new file mode 100644 index 000000000..0542f7160 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/model.onnx @@ -0,0 +1,18 @@ + backend-test:k + +x +yless"Lesstest_less_bcastZ +x + + + +Z +y + + +b +less +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/input_1.pb new file mode 100644 index 000000000..dcbe531c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_bcast/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..63d73107d638d5cdbffe56f0144995dfa8b89ec4 GIT binary patch literal 76 tcmd;J=3wDq72tGY$w@6P_Of9B0Y)$hBN)M4s2C%Z2ckic0nCS}006X00@45g literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_less_equal/model.onnx new file mode 100644 index 000000000..3ca38c6b5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal/model.onnx @@ -0,0 +1,21 @@ + backend-test:† + +x +y +less_equal" LessOrEqualtest_less_equalZ +x + + + +Z +y + + + +b + +less_equal +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1424d7297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6c300263c63eed66a2349f618ad36477f24d0ba4 GIT binary patch literal 82 zcmd;J=3wDq72tH@%1JFQj!!KtP0aDKVE_R}AcPQL9wU&)zz8FOG>{GELYW|?AOrwr COa)#5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/model.onnx new file mode 100644 index 000000000..5bf56ea72 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/model.onnx @@ -0,0 +1,20 @@ + backend-test:„ + +x +y +less_equal" LessOrEqualtest_less_equal_bcastZ +x + + + +Z +y + + +b + +less_equal +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/input_1.pb new file mode 100644 index 000000000..dcbe531c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..00bd1b0525e11f648a81c8d0b29572805132b3e6 GIT binary patch literal 82 zcmd;J=3wDq72tH@%1JFQj!!KtP0aDKVE_R}FbN|V!Ca^qBa{cCL68B=ho}GmWXJ_i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/model.onnx new file mode 100644 index 000000000..e74a07dfc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/model.onnx @@ -0,0 +1,26 @@ + backend-test:÷ +C +x +y5LessOrEqual_test_less_equal_bcast_expanded_functionO1"Less +D +x +y5LessOrEqual_test_less_equal_bcast_expanded_functionO2"Equal +~ +5LessOrEqual_test_less_equal_bcast_expanded_functionO1 +5LessOrEqual_test_less_equal_bcast_expanded_functionO2 +less_equal"Ortest_less_equal_bcast_expandedZ +x + + + +Z +y + + +b + +less_equal +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..dcbe531c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_bcast_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..00bd1b0525e11f648a81c8d0b29572805132b3e6 GIT binary patch literal 82 zcmd;J=3wDq72tH@%1JFQj!!KtP0aDKVE_R}FbN|V!Ca^qBa{cCL68B=ho}GmWXJ_i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/model.onnx new file mode 100644 index 000000000..a943e7fe9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/model.onnx @@ -0,0 +1,27 @@ + backend-test:á += +x +y/LessOrEqual_test_less_equal_expanded_functionO1"Less +> +x +y/LessOrEqual_test_less_equal_expanded_functionO2"Equal +r +/LessOrEqual_test_less_equal_expanded_functionO1 +/LessOrEqual_test_less_equal_expanded_functionO2 +less_equal"Ortest_less_equal_expandedZ +x + + + +Z +y + + + +b + +less_equal +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1424d7297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_less_equal_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6c300263c63eed66a2349f618ad36477f24d0ba4 GIT binary patch literal 82 zcmd;J=3wDq72tH@%1JFQj!!KtP0aDKVE_R}AcPQL9wU&)zz8FOG>{GELYW|?AOrwr COa)#5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_log/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_log/model.onnx new file mode 100644 index 000000000..6ab18d29f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_log/model.onnx @@ -0,0 +1,13 @@ + backend-test:I + +xy"Logtest_logZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_log/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_log/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..78488599c0579f7bd67cefb5e6928424b7d6f92e GIT binary patch literal 254 zcmV-K~pDhK0yA3KWnLKp7T`K+bcOKQ7d|Kgqb#J~c%R zKK8~mKX<8>Kez>3KxqC{Kwru&KbST>KXq-hKE8r?J`LtMKCBnvK*h%yKkhIkKki48 zKBz+rKz`#(J{0jzKL{MrJ_mTbKWLg6KQB6+KGouQKjv`6Kf}$4KczLTKWD)QKfxU` EKUigJ#sB~S literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_log/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_log/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ffa52800d0a3950621315f4e333c0ec40ac1477a GIT binary patch literal 254 zcmV*zb|AX zz>HHTKe0<)KZpK3zo|nJK&U9Xze#O7JtD0?z8o^dKl2m3KZ>dzK8BvbKJGhKb7a1KeJE9zHG;uzWg?Zzb3=AzYu5IzXG%QKah9=zeP*nzL{H~ zznlq2KQxrizn0ipzDzx3zZMwAJ|M&bzx5uMzir;;yi!ivJ}f$jJ(%5^KJQ{8zcsnJ EzNHd%Q~&?~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_log_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_log_example/model.onnx new file mode 100644 index 000000000..9b3de4b95 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_log_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:A + +xy"Logtest_log_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_log_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_log_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e410a4851a9122bf87df7b5887732caf0c58849c GIT binary patch literal 17 Ycmd;J5@2*1+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1c7ccb961e6e9245017f715ab524b2f02f7bd1d7 GIT binary patch literal 129 zcmd;J7vf1uOwLZtOVKS!EiSRj=91@PtPo“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ae044b31c901f4281b5894b55de39af57c14dd11 GIT binary patch literal 254 zcmV4CE33vFlPwA0l^`8Vq+=Ie-_81*hnQdhZvao~Ti5Xr6TA^m z?(wm&1t!Ux_06}uSpHV@Ws;f*={Zug01q+2v*$!dC;0gQSs58Vy~Ixb*~Q1BalaTO Wl(0DjG{lH7W;r&7zZ%y;vi||dgKsbZ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_0_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ae044b31c901f4281b5894b55de39af57c14dd11 GIT binary patch literal 254 zcmV“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c9e960ab6bcde20e263fb3de1044ab9cef1fd4bc GIT binary patch literal 254 zcmV181zvDHgzT%`Czie8zzZBifzv3|y5zthIl zzS)bz)b%Fz*;_p>!2Ng)z>cV> EzX5TAumAu6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/model.onnx new file mode 100644 index 000000000..b85cb9015 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/model.onnx @@ -0,0 +1,31 @@ + backend-test:ì +X7LogSoftmax_test_logsoftmax_axis_1_expanded_functionaxes"Constant* +value*:  +l +x>LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_ReduceMax" ReduceMax* +axes@ * +keepdims  +‚ +x +>LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_ReduceMax8LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_Sub"Sub +y +8LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_Sub8LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_Exp"Exp +Ï +8LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_Exp +7LogSoftmax_test_logsoftmax_axis_1_expanded_functionaxes>LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_ReduceSum" ReduceSum* +keepdims  + +>LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_ReduceSum8LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_Log"Log +| +8LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_Sub +8LogSoftmax_test_logsoftmax_axis_1_expanded_functionX_Logy"Subtest_logsoftmax_axis_1_expandedZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_1_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c9e960ab6bcde20e263fb3de1044ab9cef1fd4bc GIT binary patch literal 254 zcmV181zvDHgzT%`Czie8zzZBifzv3|y5zthIl zzS)bz)b%Fz*;_p>!2Ng)z>cV> EzX5TAumAu6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/model.onnx new file mode 100644 index 000000000..5a4a79df3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/model.onnx @@ -0,0 +1,15 @@ + backend-test:k + +xy" +LogSoftmax* +axis test_logsoftmax_axis_2Z +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf0547d7e4aa5404c219f21ac1ee1105e1d038f7 GIT binary patch literal 254 zcmViJzofkoz`{evzqFI}zwlqzzu)DozX_?& Ezbn6mMF0Q* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/model.onnx new file mode 100644 index 000000000..332528f20 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/model.onnx @@ -0,0 +1,31 @@ + backend-test:ì +X7LogSoftmax_test_logsoftmax_axis_2_expanded_functionaxes"Constant* +value*:  +l +x>LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_ReduceMax" ReduceMax* +axes@ * +keepdims  +‚ +x +>LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_ReduceMax8LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_Sub"Sub +y +8LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_Sub8LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_Exp"Exp +Ï +8LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_Exp +7LogSoftmax_test_logsoftmax_axis_2_expanded_functionaxes>LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_ReduceSum" ReduceSum* +keepdims  + +>LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_ReduceSum8LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_Log"Log +| +8LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_Sub +8LogSoftmax_test_logsoftmax_axis_2_expanded_functionX_Logy"Subtest_logsoftmax_axis_2_expandedZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_axis_2_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf0547d7e4aa5404c219f21ac1ee1105e1d038f7 GIT binary patch literal 254 zcmViJzofkoz`{evzqFI}zwlqzzu)DozX_?& Ezbn6mMF0Q* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/model.onnx new file mode 100644 index 000000000..04284e55c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/model.onnx @@ -0,0 +1,14 @@ + backend-test:d + +xy" +LogSoftmaxtest_logsoftmax_default_axisZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf0547d7e4aa5404c219f21ac1ee1105e1d038f7 GIT binary patch literal 254 zcmViJzofkoz`{evzqFI}zwlqzzu)DozX_?& Ezbn6mMF0Q* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/model.onnx new file mode 100644 index 000000000..a03c18232 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/model.onnx @@ -0,0 +1,32 @@ + backend-test:Õ +g=LogSoftmax_test_logsoftmax_default_axis_expanded_functionaxes"Constant* +value*: +ÿÿÿÿÿÿÿÿÿ  +{ +xDLogSoftmax_test_logsoftmax_default_axis_expanded_functionX_ReduceMax" ReduceMax* +axes@ÿÿÿÿÿÿÿÿÿ * +keepdims  +Ž +x +DLogSoftmax_test_logsoftmax_default_axis_expanded_functionX_ReduceMax>LogSoftmax_test_logsoftmax_default_axis_expanded_functionX_Sub"Sub +… +>LogSoftmax_test_logsoftmax_default_axis_expanded_functionX_Sub>LogSoftmax_test_logsoftmax_default_axis_expanded_functionX_Exp"Exp +á +>LogSoftmax_test_logsoftmax_default_axis_expanded_functionX_Exp +=LogSoftmax_test_logsoftmax_default_axis_expanded_functionaxesDLogSoftmax_test_logsoftmax_default_axis_expanded_functionX_ReduceSum" ReduceSum* +keepdims  +‹ +DLogSoftmax_test_logsoftmax_default_axis_expanded_functionX_ReduceSum>LogSoftmax_test_logsoftmax_default_axis_expanded_functionX_Log"Log +ˆ +>LogSoftmax_test_logsoftmax_default_axis_expanded_functionX_Sub +>LogSoftmax_test_logsoftmax_default_axis_expanded_functionX_Logy"Sub%test_logsoftmax_default_axis_expandedZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_default_axis_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf0547d7e4aa5404c219f21ac1ee1105e1d038f7 GIT binary patch literal 254 zcmViJzofkoz`{evzqFI}zwlqzzu)DozX_?& Ezbn6mMF0Q* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1/model.onnx new file mode 100644 index 000000000..a53afac6b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1/model.onnx @@ -0,0 +1,12 @@ + backend-test:Y + +xy" +LogSoftmaxtest_logsoftmax_example_1Z +x +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_example_1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a00f7191aa129fe41d6a7aba60fd7f1e50b03bf1 GIT binary patch literal 23 acmd;JLogSoftmax_test_logsoftmax_large_number_expanded_functionX_Sub"Sub +… +>LogSoftmax_test_logsoftmax_large_number_expanded_functionX_Sub>LogSoftmax_test_logsoftmax_large_number_expanded_functionX_Exp"Exp +á +>LogSoftmax_test_logsoftmax_large_number_expanded_functionX_Exp +=LogSoftmax_test_logsoftmax_large_number_expanded_functionaxesDLogSoftmax_test_logsoftmax_large_number_expanded_functionX_ReduceSum" ReduceSum* +keepdims  +‹ +DLogSoftmax_test_logsoftmax_large_number_expanded_functionX_ReduceSum>LogSoftmax_test_logsoftmax_large_number_expanded_functionX_Log"Log +ˆ +>LogSoftmax_test_logsoftmax_large_number_expanded_functionX_Sub +>LogSoftmax_test_logsoftmax_large_number_expanded_functionX_Logy"Sub%test_logsoftmax_large_number_expandedZ +x +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_large_number_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_large_number_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..559a11acd68c820eba42b56b3286069d7fdc10c1 GIT binary patch literal 43 ocmd;J;$RVAbYiUVQeXgs274go07MQ94l-^GE“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf0547d7e4aa5404c219f21ac1ee1105e1d038f7 GIT binary patch literal 254 zcmViJzofkoz`{evzqFI}zwlqzzu)DozX_?& Ezbn6mMF0Q* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/model.onnx new file mode 100644 index 000000000..e30293350 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/model.onnx @@ -0,0 +1,32 @@ + backend-test:ã +h>LogSoftmax_test_logsoftmax_negative_axis_expanded_functionaxes"Constant* +value*: +ÿÿÿÿÿÿÿÿÿ  +| +xELogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_ReduceMax" ReduceMax* +axes@ÿÿÿÿÿÿÿÿÿ * +keepdims  + +x +ELogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_ReduceMax?LogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_Sub"Sub +‡ +?LogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_Sub?LogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_Exp"Exp +ä +?LogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_Exp +>LogSoftmax_test_logsoftmax_negative_axis_expanded_functionaxesELogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_ReduceSum" ReduceSum* +keepdims  + +ELogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_ReduceSum?LogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_Log"Log +Š +?LogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_Sub +?LogSoftmax_test_logsoftmax_negative_axis_expanded_functionX_Logy"Sub&test_logsoftmax_negative_axis_expandedZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_logsoftmax_negative_axis_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf0547d7e4aa5404c219f21ac1ee1105e1d038f7 GIT binary patch literal 254 zcmViJzofkoz`{evzqFI}zwlqzzu)DozX_?& Ezbn6mMF0Q* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_loop11/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_loop11/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5807fad5d303e74f39ff5bdd97b6ca20f5906518 GIT binary patch literal 726 zcmZ`%v2NQi5EWx8rq6-nT!I8>&_!JW0Ulfg9lX?WkfA`gAd445mN*DC$V8+IE0gDb zKxY3)#{5@#mSxLB01=Xo@7}$;dqUvJEJ^<;oei9_ZuB0)2M2IP{w!0o&<=QNbOx-% zuuxW(DClL=L`VF$G0*WE2R<`d`TZYJJ4iVH4j? z7&~*n5=rZrUL3S^3|zD^n4ax7M4^rkVO0+SgkZ?wNU#~gZhyGN&Cct>P2eT$WHbrZ zEW|DuN|K=AkksrwwV@<6y~EX`rZHP C+qqo; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d5d9bc105fa8fb3f0f8cae5cbd79ccabffbb2481 GIT binary patch literal 24 acmWe&cj783$}EUa&M(a?@#0`*fB*naM+E`^ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_1.pb new file mode 100644 index 000000000..a61228b1b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_1.pb @@ -0,0 +1 @@ + BcondJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..cd343fdd0631c406639df8f61f4253f9bc084fa4 GIT binary patch literal 13 Ucmd;J6kv2>tn^}GU|=`^010#fElMqpuk>PJU$sV*mgE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_loop11/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ad9be2d9e01130f01b5620324f555932bb5534b0 GIT binary patch literal 38 qcmd;JY;AcLsSkx#eoYnhyzk@sFz$;i9H9a>2C0DP{JvX z5{U=kE&3Qd3o{OmgH*{Yt;XNq&Wuv}&3KgkL7N{0^x^bh4382Zl*QC!Ze|0>%-I|g zk2ePYPQyaC`C6h+t~+BiI$@|^`w#gTFbuwpD2S_^fRyqRAim31F~rH+xnXs;vK>Ph&gO$r(skNAzV%2 zKF8Nwh3~M#11f9{qkrp}F{pEmBx^IgvL4HzlL^hx@cf2*+wapmAXQsO!(KB|E+tgb zwS!hE)!>y9V-1^uS5(4{ccEGp_TK!HGK5EYEHDTmOGTofEXtxKsDc23Ma3o(8u>9O7G@mm2}--_ zH}D17Abx@m;6wNY_T1~(vC|U8kuyH$_}rOuFJrvxd%l&w8JK$R65e9 z@C2X`A;bXhqeOYJn0c9yvHarj_r=mHFFVEsmq|=yuaz8>x#+ej;>ZxG1{{|jzncAV^B2_tgDRtq5x7S3h)gM9uTL6)kX^~H|z?&Fgr};b#VZ<$OiSevt@0YSS{wGRc61@wg0Xdns z*9J+n{Xu0IAbBS7G|VN`y+eg7DHQqE36%$rV3WNPh)>rIM6h0YfD@I;6i+Y4h7#0F z(_y_rP64yIF&$L>MN4g5y1f*Z66tf;^kFW74F4+R9ZXJYPz*00(f|--;_--D qJ?|{CQVoNRmEL+Rl&aI+YCv2xab^8N92uNB=o=c$99v-Y`~Lu>f=fsM literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d5d9bc105fa8fb3f0f8cae5cbd79ccabffbb2481 GIT binary patch literal 24 acmWe&cj783$}EUa&M(a?@#0`*fB*naM+E`^ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_1.pb new file mode 100644 index 000000000..a61228b1b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_1.pb @@ -0,0 +1 @@ + BcondJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..56d0dafb46c7d2ce81ca229d22753962c48d30e3 GIT binary patch literal 25 ecmd;L&o3y6FHS8KVAkRhV3gtzVDw^P00IC->jUTj literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_loop16_seq_none/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..326e70c018f9836706e7152c5553e3d369c39032 GIT binary patch literal 121 zcmd;LFHS9tFG?*IV3gtzVDw^P00Jp44n_#O!Cs1wg9*syU|?vl2TD0e32`t3`8+T_ gP{=__jDrOzCV(skWIISnaj*i#MbO0=7#27H0IMtyM*si- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lrn/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_lrn/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c5fe791017d6695ce413ae0ce21d4c22409d2db3 GIT binary patch literal 166 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lrn/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_lrn/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9ff5b9954d33c675ac0e7d412e7a773c3b402c2f GIT binary patch literal 2516 zcmW;Hi945x769NRBncr#X_3UQMTuMCJ10vip`@5nbOWh%v#G*K!cCdwoxjk@=_&-)j=qvb~bpQ?mTC~POhh#n)-@l7` zqY4l^=dtCNSr}&AEXE%=ExyQ4gtp{*VOB;6%HL2#BhymhO<5MSr}%;TqEJ+d)S$eg zZSW~ohuxJrIXUYcv=B`JlMW?8&Z38{76SyKch-G%Ca^tB|ydGRd7ZNk5_SQC5 zmX5_1m3V$EuS32Q^w@d)DR|RUMUyMm@j}RvCa9&swfrT5^T>^mo!L%CYeMMa&mU>K zB$%@2sq+VmbiRCG1bo;VM@eA`ye#}Y7%tZ5_j@J?szb79Q+rkLwRA$|5OmE3COS>djtcxmz62|WPv8{U0^BX5k3sDdIq~_gI78W*w5-+e;r>~;_s~nR zcJ&Jo-W%Y4yD(TX(vBnEyMaXeXPmq53uTo(6>o%{rNf)f<5rK4V17IS6gDgI_ls`= zP3@=0TdFLdm~_y#H~sLgx*q)gm_SjRV?bzL%6kV-@}J`~;mgK8LBFFNmKQhSg8>P8 zSkB(#6&r?a>QZYa^4YeM~vv!Im55z}{xZneA>0OB%4%;x4t>U%6WRQkK z1z}bRZf=={(eZ)8n1`DmpCnRZ4MDL=%XuX*Q zKe;ggAwFvCdG0fncIQ&rF?&m`nL#xF)j=+l>7o}4e`nQ=ufh0hEWd2GV=YZBA-z?O zBl04#NY0B(ey{?+h&HLew+j#XiJkbi+6z8+Hu&^e1RH1O1NfEA~_i^mF}_) zhsXo>aqgXdY4+$jygK+09cesI0S+Yqev$lW@j_u?-fLl;t|1iSQ<5&7O&PC(I49*2 zRfpA(K~@rYtZ?S!UCJ159g1gNtJ!Q#Dpaa`f>pOWsQyt5ZT7t;wx+sKHM`S}i)Z** z(rVnf+Xh1{)Op^OGbkaY;Ch_?3VGSf8nOMZBRT{{2|p`70@<^%wBw%>@Y^vTCbcAduTvzp znh($$i#~XKFQ5E^{n+T1KNrsY0;VdRqL6W2v{1Lf%)ym>&}I}Dtc|26*0~IkK|1fb(Xue3`noc>5p%%m+#pq%Bw>x06$a|(lAGLT8e6lGBeF7S_BVS9 zR5(tBJ+FmbehpADD-f=)8N&wCf_cl(e)LKGOo0aPXlALDw$$Zw&zNE|%`c{>u`l7r z=l{YZ>0FD!Vna+e+z$(WHIr^s>JoIvjv={^(e(J46*U<ULjScN_}oAkzFkra zKJKH$-hwGm;bqPhTLbBW#17AW@IphGe$>@=6&HB-QrE1jRByM4I}U9X8)70LaQ$tm zvi~wvNHC(Ngu`Ux^9N18nZTiKQ9OFjI#!GKMxSwdsM>ZAwG90Do8%JL5A;%V`d0xX zDnP4TK($6kSW|TtpU<5}QFb#pLO+@9x~FpNDq}d(I+fdFjnE+X7@GP&;mNxuVQR@; zKI9q)?=EjbmqrU=#yL-(*ZYV@?h)uzzbvh2A5Yy=GR2(Wvp}|J2A=W4$fYhy6L~ znIg}Zuf#n@GGaL>gPV}e+8l*|&*0n-T#~lmDdj!MFb0IxBkEgpnvCR24 z1_PoSq4c*9`tn$f<#yZi;@?G)v>owLPANZs)l2=WoY-W-I7}+8r4^eCX}6{>9mZ^E z9ve*|j}@=oyi@}dK4w75z+~!PWXn4%j>7$w;m~AQNIJcf$lTqK3s=cd;hIzIu6YLB z`y`z2IU6P)J<2cB8c8CPC8jwf@z`tm!ZVw28eMjluXlR0fqFAoP13`ZuOvPUj|UeG jJ&^s?7rJim!b2WmJf^cBbQ~kdXR99B{<(p$A(Z|LHO$tV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lrn_default/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_lrn_default/model.onnx new file mode 100644 index 000000000..872bf2871 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_lrn_default/model.onnx @@ -0,0 +1,16 @@ + backend-test:f + +xy"LRN* +size test_lrn_defaultZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lrn_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_lrn_default/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..93a434a6947673ed68b2495de06d3efe4e272921 GIT binary patch literal 2516 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lrn_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_lrn_default/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..99db03951491bb67e7da0e49a8a671794042b67b GIT binary patch literal 2516 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/model.onnx new file mode 100644 index 000000000..695364267 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/model.onnx @@ -0,0 +1,33 @@ + backend-test:Ô +: +X +W +RYY_h"LSTM* + hidden_size * +layout test_lstm_batchwiseZ +X + + + +Z +W + + + +Z +R + + + +b +Y + + + + +b +Y_h + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a4c92c6a4c63381b8f40f40c13a25c0813169ff2 GIT binary patch literal 37 mcmd;J=3wMt5@2*š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/input_2.pb new file mode 100644 index 000000000..84928826f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BRJš™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/output_0.pb new file mode 100644 index 000000000..63506ae96 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJTÂÙª>ÂÙª>ÂÙª>ÂÙª>ÂÙª>ÂÙª>ÂÙª>)U?)U?)U?)U?)U?)U?)U?Ìô7?Ìô7?Ìô7?Ìô7?Ìô7?Ìô7?Ìô7? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/output_1.pb new file mode 100644 index 000000000..745611e70 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_lstm_batchwise/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BY_hJTÂÙª>ÂÙª>ÂÙª>ÂÙª>ÂÙª>ÂÙª>ÂÙª>)U?)U?)U?)U?)U?)U?)U?Ìô7?Ìô7?Ìô7?Ìô7?Ìô7?Ìô7?Ìô7? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_defaults/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_lstm_defaults/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..cfca8879b1405993f840a553ea53af62957d657a GIT binary patch literal 189 zcmd;J7vf1uOwLZtOVKS!EiSQI#>l0`#TdcG7|z8QB*Y-Z92uXX#Nrbi;;SXZ#hsCv zl9HMiUz}N$D#5&fkx57hq$xh9xFk0|B{eOvG^eCEN*t(PNQg^-gHecwi;05~h?#+y g2_zAYCIM0amI%Tk!JH(?1+pJa3S=0w6O#ZR0Ci6uMF0Q* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_defaults/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_lstm_defaults/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..17423bca0281e7ec2c630932193d4014318561d0 GIT binary patch literal 37 mcmd;Jáƒ>áƒ>.uÎ>.uÎ>.uÎ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..0d19414a61455cfe26572466f6661d9afbfea394 GIT binary patch literal 222 zcmd;J7vf1uOwLZtOVKS!EiSP-&d8<9#TdcG7|z8Q#Kq_~~R8K0rV;u9R=t0lz6 zospT6lA0G^oLQAB!LopnNk|%`FFvQZBsac1vm_%vGcU6wGchMVDKoJ+N*rjGkPw#u z2cr-V7ZV2~5Ho`?NFp3fLI5TaghhfSN*LrCJ}w@hQ5;aC6p|#lK(0em53+&9iAjJD E03WC$(*OVf literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9cb9bf0ac34f11b9f5aad7933812673878f5f792 GIT binary patch literal 49 vcmd;JRn1Mn70Keudvj6}9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/output_0.pb new file mode 100644 index 000000000..502aec9b7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_initial_bias/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BY_hJ0áƒ>áƒ>áƒ>áƒ>þf ?þf ?þf ?þf ?|Î*?|Î*?|Î*?|Î*? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..018ea942df5c323182ac972598d089f778a19768 GIT binary patch literal 375 zcmZut%WA?v6zxnxJ6=%xc&!KKh2=+d4HjyBrqT_x4yEPyTX z38Sr4(|Gau^)W-}DqWUjq}69iqd&$m4gRvS?jTRvDOnTM>Zc-`4SgUY^aaBNxL_XK zBM!v6K?K2#ShWyQHt?0P2Z^^5cdIlTH%1_U5YHHgoNV&gp&FKgP0dSAjn7HVEB4}GWME(bVE}5V1}*>q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_5.pb b/third_party/onnx/onnx/backend/test/data/node/test_lstm_with_peepholes/test_data_set_0/input_5.pb new file mode 100644 index 0000000000000000000000000000000000000000..174d35fe29ba755aec05133a55997a96d5d9d1f3 GIT binary patch literal 45 ecmd;J À> À>.?.?.? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/model.onnx new file mode 100644 index 000000000..088124bd4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/model.onnx @@ -0,0 +1,16 @@ + backend-test:b + +a +bc"MatMultest_matmul_2dZ +a +  + +Z +b +  + +b +c +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/input_0.pb new file mode 100644 index 000000000..8478b72ad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJ0xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/input_1.pb new file mode 100644 index 000000000..f062118b0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJ0^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a3e5cad22 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_2d/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BcJ$ÑO@~óô?¯]À˜¥?|6 ÀwS¤¿]ì†?·Þ?—ÞÉ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/model.onnx new file mode 100644 index 000000000..754636016 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/model.onnx @@ -0,0 +1,19 @@ + backend-test:n + +a +bc"MatMultest_matmul_3dZ +a + + + +Z +b + + + +b +c + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/input_0.pb new file mode 100644 index 000000000..1469c695f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJ`©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/input_1.pb new file mode 100644 index 000000000..c35dcb6e8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJ`4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..e35af96b7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_3d/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BcJH‰‰ÀZöË>¶Wz¾6Êå¿Ø ¿ýNÀ_89?)Õs?pC@ZbÀÞ𠿣啿fBÁ@úA?šCN@4 K@¬ª½=cçé? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/model.onnx new file mode 100644 index 000000000..37f261f32 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/model.onnx @@ -0,0 +1,22 @@ + backend-test:z + +a +bc"MatMultest_matmul_4dZ +a + + + + +Z +b + + + + +b +c + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/input_0.pb new file mode 100644 index 000000000..575a605e6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BaJ`âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/input_1.pb new file mode 100644 index 000000000..3e4b0b6bf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BbJ`G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..02d669ef4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmul_4d/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BcJHçÀBöÃ>Ø¢ì?⻆>µ>À«>~?‘NÀ’Ñ3?ÀB¿mT‰@ˆø³?5>ë@Õ¯—¿D=À3ƒB?ÇHŠ?D™?>æ–O@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/model.onnx new file mode 100644 index 000000000..227661bbb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/model.onnx @@ -0,0 +1,26 @@ + backend-test:Á +4 +A +B + a_zero_point + b_zero_pointY" MatMulIntegertest_matmulintegerZ +A +  + +Z +B +  + +Z + a_zero_point + + +Z + b_zero_point + + +b +Y +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..abf965a2060ab6958cec23382e2e551d146b3f4e GIT binary patch literal 23 ecmd;J;b0bEa$VzW@LL literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad39e94c6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_matmulinteger/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJ Úÿÿÿ­ÿÿÿÔÿÿÿžÿÿÿÎÿÿÿÿÿÿÈÿÿÿ€ÿÿÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_example/model.onnx new file mode 100644 index 000000000..ee71640e8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_example/model.onnx @@ -0,0 +1,21 @@ + backend-test:‘ +% +data_0 +data_1 +data_2result"Maxtest_max_exampleZ +data_0 + + +Z +data_1 + + +Z +data_2 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6b1c568f05ba00c536af1dbeab6b908f90d007a4 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qM&VPJ4@U;q*f3=Q@GJ2?bn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e411be9680e872bd654dd1e5ae799963e5edbb98 GIT binary patch literal 26 dcmd;J7GQK@OGzwAj5qY+VPI&m2Vw^h1^__71tb6f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..f1bf1d201341e9df296dd45386001ecca97e7314 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qS)VPIfzU|?7P#10MsJQxIq literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2057c5b4564cf59edaf5192c63197a9722c254c3 GIT binary patch literal 26 fcmd;J7GQK@D@rXc%_;HXVPJ4@U|?7P#0?GrMr;Lo literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_float16/model.onnx new file mode 100644 index 000000000..a2f93caca --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_float16/model.onnx @@ -0,0 +1,19 @@ + backend-test:s + +data_0 +data_1result"Maxtest_max_float16Z +data_0 + + + +Z +data_1 + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_float16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..560f20f37ad536cb5a5c6278b71316af5c49ad0d GIT binary patch literal 20 bcmd;J7T|JXOGzwAj5qLNV{l?{V6XuIC07Hb literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_float16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0ebf1b00432909cf922237bbb01f3f51127a8f82 GIT binary patch literal 20 bcmd;J7T|JXOGzwAj5qXRW3XXxVQ>KeB~}Bh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_float16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..cf0575b51f36debd944c913aab17460a513b36e3 GIT binary patch literal 20 bcmd;J7T|JXD@rXc%_;F>V{l?{VQ>KeDj5VP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_float32/model.onnx new file mode 100644 index 000000000..c82924a59 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_float32/model.onnx @@ -0,0 +1,16 @@ + backend-test:s + +data_0 +data_1result"Maxtest_max_float32Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_float32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6b1c568f05ba00c536af1dbeab6b908f90d007a4 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qM&VPJ4@U;q*f3=Q@GJ2?bn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_float32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e411be9680e872bd654dd1e5ae799963e5edbb98 GIT binary patch literal 26 dcmd;J7GQK@OGzwAj5qY+VPI&m2Vw^h1^__71tb6f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_float32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..928c1dff7b434fe4f504cf78a37d72ccc040dadb GIT binary patch literal 26 dcmd;J7GQK@D@rXc%_;HXVPJ4@U|?tfV*o|01zG?A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_float64/model.onnx new file mode 100644 index 000000000..e17e52435 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_float64/model.onnx @@ -0,0 +1,16 @@ + backend-test:s + +data_0 +data_1result"Maxtest_max_float64Z +data_0 + +  +Z +data_1 + +  +b +result + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_float64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fffda548211a6019ad9fa8dc657ca03ba114257e GIT binary patch literal 38 gcmd;J7T|VbOGzwAj5qL-U;qOS2MEmor9apM0AgbVu>b%7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_float64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..3bc19186080156b9efa933bd5ed9f74ccf9847f9 GIT binary patch literal 38 fcmd;J7T|VbOGzwAj5qX>U;u*;_7GaY0Y(D=ah?Rq literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_float64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_float64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c7e7d314e3b0efddfe506c2545908a222b7aa2d1 GIT binary patch literal 38 dcmd;J7T|VbD@rXc%_;GcU;qOS2M8?yrvYw01Xut7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_int16/model.onnx new file mode 100644 index 000000000..0d53dd64a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_int16/model.onnx @@ -0,0 +1,16 @@ + backend-test:q + +data_0 +data_1result"Maxtest_max_int16Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f4d132951402e4744451b34f39f56b96be8df1d1 GIT binary patch literal 20 bcmd;J7GQN^OGzwAj5qLNV`gAtU}OLQBG>}x literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d800761087c1745239dc94fda9b817fe1593c863 GIT binary patch literal 20 Zcmd;J7GQN^OGzwAj5qXRV`N|fLI5J;0_*?) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8bc974598be38de1c18acb248681502d957f08b7 GIT binary patch literal 20 Zcmd;J7GQN^D@rXc%_;F>V`g9hLI5X}17iRH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_int32/model.onnx new file mode 100644 index 000000000..883de0103 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_int32/model.onnx @@ -0,0 +1,16 @@ + backend-test:q + +data_0 +data_1result"Maxtest_max_int32Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..136f93fa62e908c938a139eccaad882e1d85a692 GIT binary patch literal 26 ecmd;J7GQH?OGzwAj5qM&VP;@pU;<)BAO-+5r2_8& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d0c6f07990a072dce4a41d7354f28376baff0014 GIT binary patch literal 26 bcmd;J7GQH?OGzwAj5qY+VPs%nV1Z%)G`Iru literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f17e085356757f86b3638ff70bdb75a1b67902d7 GIT binary patch literal 26 bcmd;J7GQH?D@rXc%_;HXVP;@pV1Z%)JTn7o literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_int64/model.onnx new file mode 100644 index 000000000..d1dbace3f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_int64/model.onnx @@ -0,0 +1,16 @@ + backend-test:q + +data_0 +data_1result"Maxtest_max_int64Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..09588d06e9c75b8fd374d133c5fade204d9ab414 GIT binary patch literal 38 dcmd;J7GQT`OGzwAj5qL-U}k^-CMeAar2$zO0{j2~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c5db1a476e52ed2357b5df916af390b019481599 GIT binary patch literal 38 bcmd;J7GQT`OGzwAj5qX>U}S&*7Bm_FSvvy& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3a11a5bb63b802da15ee51dc48fef609830f83ec GIT binary patch literal 38 bcmd;J7GQT`D@rXc%_;GcU}k^-7Bm_FW=aEh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int8/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_int8/model.onnx new file mode 100644 index 000000000..886c7bcfc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_int8/model.onnx @@ -0,0 +1,16 @@ + backend-test:p + +data_0 +data_1result"Max test_max_int8Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/input_0.pb new file mode 100644 index 000000000..33768d3cb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +Bdata_0J \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/input_1.pb new file mode 100644 index 000000000..26608b19b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +Bdata_1J \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cc7d499c3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_int8/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BresultJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_one_input/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_one_input/model.onnx new file mode 100644 index 000000000..9050fd712 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_one_input/model.onnx @@ -0,0 +1,11 @@ + backend-test:W + +data_0result"Maxtest_max_one_inputZ +data_0 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_one_input/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_one_input/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6b1c568f05ba00c536af1dbeab6b908f90d007a4 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qM&VPJ4@U;q*f3=Q@GJ2?bn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_one_input/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_one_input/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0e49b0c7e907ec550f99340a965d439610708c1b GIT binary patch literal 26 fcmd;J7GQK@D@rXc%_;HXVPJ4@U;q*f3=Q@GLaPMX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/model.onnx new file mode 100644 index 000000000..42e66dc65 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/model.onnx @@ -0,0 +1,16 @@ + backend-test:v + +data_0 +data_1result"Maxtest_max_two_inputsZ +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6b1c568f05ba00c536af1dbeab6b908f90d007a4 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qM&VPJ4@U;q*f3=Q@GJ2?bn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e411be9680e872bd654dd1e5ae799963e5edbb98 GIT binary patch literal 26 dcmd;J7GQK@OGzwAj5qY+VPI&m2Vw^h1^__71tb6f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_two_inputs/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..928c1dff7b434fe4f504cf78a37d72ccc040dadb GIT binary patch literal 26 dcmd;J7GQK@D@rXc%_;HXVPJ4@U|?tfV*o|01zG?A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_uint16/model.onnx new file mode 100644 index 000000000..866cd253f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_uint16/model.onnx @@ -0,0 +1,16 @@ + backend-test:r + +data_0 +data_1result"Maxtest_max_uint16Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e0f4892347944b81da8c3db6ca274ced72ef5a94 GIT binary patch literal 20 bcmd;J7GQB=OGzwAj5qLNV`gAtU}OLQBF6&f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..04f20f0f0768a707a682cebf1c71a9b62ccc3a31 GIT binary patch literal 20 Zcmd;J7GQB=OGzwAj5qXRV`N|fLI5Jt0_y+( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..59382f51780a5fc90982c0d387d63cb586bbc6c8 GIT binary patch literal 20 Zcmd;J7GQB=D@rXc%_;F>V`g9hLI5X&17ZLG literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_uint32/model.onnx new file mode 100644 index 000000000..efc5a526f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_uint32/model.onnx @@ -0,0 +1,16 @@ + backend-test:r + +data_0 +data_1result"Maxtest_max_uint32Z +data_0 + +  +Z +data_1 + +  +b +result + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3320c87965d818acf237e36470ed1283350512a0 GIT binary patch literal 26 ecmd;J7T|GWOGzwAj5qM&VP;@pU;<)BAO-+6F9P)d literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d4f4b39f38b7ed52194b47a016d740b0666eefaa GIT binary patch literal 26 bcmd;J7T|GWOGzwAj5qY+VPs%nV1Z%)H9`XU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6901d13cb3666f38b9d123410f7190d1a5e41c9c GIT binary patch literal 26 bcmd;J7T|GWD@rXc%_;HXVP;@pV1Z%)JiP;O literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_uint64/model.onnx new file mode 100644 index 000000000..e3164b9db --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_uint64/model.onnx @@ -0,0 +1,16 @@ + backend-test:r + +data_0 +data_1result"Maxtest_max_uint64Z +data_0 + +  +Z +data_1 + +  +b +result + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7925e46d9fcf048989c650a8a2c1e18ba920e174 GIT binary patch literal 38 dcmd;J7T|SaOGzwAj5qL-U}k^-CMeAar2$#$0|Ed5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c4afccbded99b31dde452bfec098327d94cfa52 GIT binary patch literal 38 bcmd;J7T|SaOGzwAj5qX>U}S&*7Bm_FS`7mR literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ec8bba3b9a5985693d108a1f3b16a318e1b3810a GIT binary patch literal 38 bcmd;J7T|SaD@rXc%_;GcU}k^-7Bm_FXB-24 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/model.onnx new file mode 100644 index 000000000..f80f70d92 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/model.onnx @@ -0,0 +1,16 @@ + backend-test:q + +data_0 +data_1result"Maxtest_max_uint8Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/input_0.pb new file mode 100644 index 000000000..3cae306a4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +Bdata_0J \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/input_1.pb new file mode 100644 index 000000000..3fd882d37 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +Bdata_1J \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c3de218cb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_max_uint8/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BresultJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/model.onnx new file mode 100644 index 000000000..5d764e8d9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/model.onnx @@ -0,0 +1,14 @@ + backend-test:q +$ +xy"MaxPool* + kernel_shape@ test_maxpool_1d_defaultZ +x + + + + b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/test_data_set_0/input_0.pb new file mode 100644 index 000000000..04d0812b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/test_data_set_0/input_0.pb @@ -0,0 +1 @@ + BxJ€xÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0d8a86d6e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_1d_default/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJôxÌá?“Žz?Ëj@Ëj@$ ï?ÿ8s?ÿ8s?hdÓ½ø9Ò>ø9Ò>¢%º?¢%º?^ÓB? Bã> Bã>ü=¿?ü=¿?iJ >iJ >¦Z¿ŒS'?±K]?±K]?©C@©C@Hm;=Hm;=2Ä?2Ä?ó¼?…žÁ>íEc¿‹!²¾ò >*z?*z?•ç™?mÇš¾mÇš¾ü6†¿&õ¿³ù?³ù?FKà¾FKྜ G?œ G?—ØY¾—ØY¾Æ>Æ> Ä¿kÞæ¼QNÛ>QNÛ>™Ýš>™Ýš>6¹¹¾6¹¹¾Z¸¾Z¸¾[*P¿3¯5>;¶Í¾Ìñì>Ìñì>²ÄT=®¥:?®¥:?âב?âב?¹ÿÍ>¹ÿÍ>·O/¿~/¿ÐƒŸ¾¡ f=¡ f=‘œf?‘œf?Okî> ¾?¬ò?¬ò?@â–?7>8¾Fø†?Fø†?yœ?yœ?z?z?ûá4? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_ceil/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_ceil/model.onnx new file mode 100644 index 000000000..ec830d1e6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_ceil/model.onnx @@ -0,0 +1,18 @@ + backend-test:œ +J +xy"MaxPool* + ceil_mode * + kernel_shape@@ * +strides@@ test_maxpool_2d_ceilZ +x + + + + +b +y + + + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_ceil/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_ceil/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7ef45fc81625dc3cabe8ce37afaef887025d74ca GIT binary patch literal 79 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/model.onnx new file mode 100644 index 000000000..1a4728a2d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/model.onnx @@ -0,0 +1,17 @@ + backend-test:— +9 +xy"MaxPool* + kernel_shape@@ * +pads@@@@  test_maxpool_2d_precomputed_padsZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb22a530a3c2daa0e26f9a6e3308004798ca90e8 GIT binary patch literal 115 zcmWN=p%H*E5Jka%f|-*kffDF|1c{;q1O*_Gkw_#m5{X1cQU;~)W_I1&yzwU3VB5Gz hxtA2d%)-i#N>X6Uj*$~*uFTwd@MPh|n-44B^aIW{6QBS9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_pads/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fd51891613091b69a3e894ef0df3dd496372f351 GIT binary patch literal 115 zcmd;Jn+a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/model.onnx new file mode 100644 index 000000000..c0e5ec3a5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/model.onnx @@ -0,0 +1,19 @@ + backend-test:· +S +xy"MaxPool* +auto_pad" +SAME_UPPER * + kernel_shape@@ * +strides@@ &test_maxpool_2d_precomputed_same_upperZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb22a530a3c2daa0e26f9a6e3308004798ca90e8 GIT binary patch literal 115 zcmWN=p%H*E5Jka%f|-*kffDF|1c{;q1O*_Gkw_#m5{X1cQU;~)W_I1&yzwU3VB5Gz hxtA2d%)-i#N>X6Uj*$~*uFTwd@MPh|n-44B^aIW{6QBS9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_same_upper/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a5057808eb3f6b2585ee32527763e00a77da50dd GIT binary patch literal 51 xcmd;JX6Uj*$~*uFTwd@MPh|n-44B^aIW{6QBS9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_strides/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_precomputed_strides/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5570ba5b841f41326f3dc9dfcc941734a7feaaff GIT binary patch literal 31 kcmd;J;K0Bj;K;zx0mL&L0W!}7VE_OC literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_lower/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_lower/model.onnx new file mode 100644 index 000000000..2cfab8f41 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_lower/model.onnx @@ -0,0 +1,18 @@ + backend-test:™ +A +xy"MaxPool* +auto_pad" +SAME_LOWER * + kernel_shape@@ test_maxpool_2d_same_lowerZ +x + + + + + b +y + + + + + B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_lower/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_same_lower/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3530a84348e91858dea1a4820ea3654f57617e99 GIT binary patch literal 12304 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%0AoaJ}&Zq9G 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/model.onnx new file mode 100644 index 000000000..a7a1a5edd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/model.onnx @@ -0,0 +1,17 @@ + backend-test:Œ +9 +xy"MaxPool* + kernel_shape@@ * +pads@@@@ test_maxpool_2d_uint8Z +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/test_data_set_0/input_0.pb new file mode 100644 index 000000000..24dc63ef8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ +BxJ +  \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/test_data_set_0/output_0.pb new file mode 100644 index 000000000..1879dc291 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_2d_uint8/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ  \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_3d_default/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_3d_default/model.onnx new file mode 100644 index 000000000..4e3596e08 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_3d_default/model.onnx @@ -0,0 +1,18 @@ + backend-test:… +( +xy"MaxPool* + kernel_shape@@@ test_maxpool_3d_defaultZ +x + + + + + + b +y + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_3d_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_3d_default/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1f024e54b2e78c93a83866570920f1e6fb673409 GIT binary patch literal 393235 zcmWifcRbhM7so?pwvZAk$tIz~`<@SyqEMtlWkpMA2#s$D*)uZIpsW-n6yEoIC_5`c zDNUlii-w=yn=l#C#d(Szq^L!m49w9y7R7UcilWTm;u`x4@}?3>H~RaSGL|ah0DbqjD9fqQPDGDpLzF#Y!aN zTpf9D<%Mj_UyPl1gMLv^A(}^WAnkP~l-oB_zosnu$2bzz?o^;7T+~vjZN@sBQ&`9k%yFsFB62)Xb$s!*;=cDoM z+jOg%HoC~)qOO__*!$x#E-5u4rj_kg>>rE8Q_m@W{rQXplxUJY$@Aer z#4OH^mi=(++D`PINPvQUh1l)%j+)oUvR!tAU|vY@NU|dyx!A&1J=DN#qa-jejY0Eg zDfm_68CCrEkB(0K03vn}r0mKW>A|z8t-cAw1w&AxrUBigGGOh>T;j{_1}ptM!rAN! zIYnwH?HP^}$8^EGWGy;J>SKcG7(Jw)Xm*`cP~U&0sB>2pnKj~EEeRDck!;6(Zt*B~ zWdk$KiNVm&25>%h8DCXL5&qXItXy~+9{$b`{Y83I>a-PTb+3nj10tNwGFQNtpQYW( z0rYZR9BjcwQ1o;G?E2M#Y1U1(86VBidVM01=4)Y(@$3Y@UAd%n&1yK-@qwB)?MLA+ z-E{lj*jgQxdJ>T#$?22TVY_Y}!bsKY^pM+o%7*_Seajj!G%=LnSgMdAt{1Z$tCY;Y6PZhwzx99YbC zcAWr+>L$XOz6eFMn(6JfKjd}Od$#rm54S*NI!D#(1oRYCpLKj^lDGMvn7r_jfE1}%(820_(k=8%~zq=nz3KLc5^ z(yRb4Fum|^@-wTUqKmQ_nh^N%E&bhGjEqMKDrGN*WxfljBM0b@<(ANjPaL~Pv{HD~W5QF)*aowN;f|F|njo8m)BO%xHSmGYQ4h z6Uk=gKU53Y2+{{mP)>~vqciY_Sd^)PzDNru4mr{tjvf%@`VcRyZX}wnlHAbeVJK~? z#1M&I+-GwP<+siUPUQ3;PS}p~jr+ZW0?>Fg%(GINGokkaZw!qgHT;YO53Ou@1 z0|Oiv@HAJz$_EK3vSJ1B?WrU|+g@NLPbJwF?f~Ci_cN9MF;uMH4#m`OqtmlBz*%vQ zzL45SJ6oPWps5}-K4wXNkQ7;*SP!9d9)svNKPVBEg$XeM?i-K4OuY#|jo-y(f_CqR zr_OrZeN+lx>&Flefsa&oO9gr#+6wCR@x(qW2yf|KB>NrL!$-fXrrn>{z|)l%m_x3u z^p)>v4Ej^bR)1SbQjOgqkbTQ~7`!1}pAMs^%PMS*THV(_vF%W0_hLG zN}4wDaDIt@qPt#+a$RKCkRmI4cHXh+m~r|D9(?kQHkU0Y8Mmh4rR}phIWGf{6}Clg zkTf^BK7@3L@^H%)M6gUXp4OBZp-1WvTuk~8jyx=cB_kf#5Re3YU;mQFN35XW?n$V) zv;#Fb59zEPHz@wD!L7Yn2a;K0Fw@YKt-t3%-u9lvCarR+)E5Wo3-jS)f;Ojn`x*9q zx;pk<;zI-bFmyO@o(=tehvb@zva>eC!HT|pRBZS<a<3>>&S4_`fAMCPw(V9r?W z2VLH1s*tLKUCQ}z!A_q0G&SGsepCqt|FFQlx2AD!6dAKFTx-G+d4(mpCb((kYSNxt zL9E}+1tB*vGaM6u+0LWnqv0ELNR?;I(^kM1UU|4_TTNpaI~-6=M1ds&^o~$6-0B_2 z;t%R5I-HCXUsi$HYcbsY^AiKh&6M|>1^2kz3}9NHku9C>w6ZP+BNcBF z4Xt{jR``hye%L};rM)Qe%$NopYQ(PM2V{Qzest(QNHTtuBfq#jTCIA)b|v>>{{6Si zMdf;WivKAVb>*Yl*lbX@+zt{lg7mXlCxNBg$)>x7L?!zYI1Y0$N?Ql6rQf0RFKwqs zxLI_S43|!RJ&RVXDLMT70kChkvyL$p)xBTz@I?A2cI(v-WOouvc{Y#I>p>mFjdwRP z)}iF=wDr&?eGLp}-)8;9N+H%a9NGj=;LhP}G*CTDHEx~+;~A&f8+R3Ow6qZx4yTZF z;WN34}YXOVc@7*36I-a ziKdS{{(6@PIUeS)OMENvh^ynqokrZyU_p-M;tq@rm1gH}oyBoAFCyJM2O-Lii)Uh9 zqVYB%EX#?7v)0$?YCl{2RAoaR9gBhXueVUu z(jP8DNy;Wt9bkwLq;(*9J55`@6~UD~o$S@DwRnYnPla2u&UnyOWyGy@1;nbe_xs7QZB)L z;wcHndoH2KjR)+F_s1}2jN4JoIZH%bS)< z;cFM>9*<_1=26f*#1EDQilA9}1qHOf5iP!1By67`G@LAw*)wQft z?RFHLEP$M0SCpCOgZ11D#&akdgZv)S#2_bJeeovj*IW(i+jp~BYn$oBQ-2sc+)1jZ zO_JHkeYNl82Qb-bgtb^Fgq!9s1o7}tIJ!?A^}9ZjRf~sU`A1DOUfmB;mM*9uS8FDB z*0}b?b~7`n1J2mAQ68(No?r4UAX_F1$=@ZMC z60@djZA`(#9ppdNFm#l7%U+&&jz|WS;@<2n5Vb1?1~1M-^Lc?(w%Z*uMV7$)zEjB8 z?L~E7xZ=JF2ga^w7*Dhm!GWnfHqR-5xpaOr{iI-tiBp=YyJ{bJCJEsEz8Es1yB15Y zE<}&k&xE757Zye?p+P*AD8Noa_exi+UEhFWGt@ZipL9@(*)=%!T^9#*Yl+Zv3-VsX z1$phq03!LZGw%%YdY%IPo=kcv7Q= zK2Y8ijp=z5A-k;L4?z!8E z<%6i0t}-oK6$zZrHk`$x7Nk9+1jpZ8giX`3=;gT@ z*!;qowA?#~p6y=5*u{?%3&>vw|lAKJuOMA&V!EpR0T!nf;$Jl3H zRakCW&Qz`QhmzfM;GkwCYM8j;9Qi^rdbpilR>`GLI%dIrdJOaSwo{|~Yj8zG1RmMx ziW+-$;GDS=QzGesBbWD3|GVAjRc(qFQ-nEpyKk}6>`b9SDUxL@Z;(}O8Zgs49)$33hyu5q9LyoRz~O0NH&^G_Yi@TH;>7 zW{x)9cf5|IhZn()4f@pimkIQG#zXgTDDE+sjeDN&hG!q&k`KrCz!(bB|9+*?-93}2 zT9$$y%^XHg&JpZ>3&N9ieDw0dSnBM(mFVeQVAPt+A?2Ga3Cd(q?`1Al_|!xCXd2F` zw1h=FqN&mY9XiKFm~L`D3r;~+v^`je-TL_sUd?wTzF!34^ov7e#fKZ<_S=I=mB}Q! zygl&5rx8DUjL~gzm7tNo57rgyK&JWzSRPP7^ai>he`g)JeLjFlHqIyW{<9*g3a7Ex z#tQx=^V4v{G06Rp#b$-|lhqN&NT{j`Ui)(#R33hXMT!S%T?aC$V`Bw}hy-UnsGA-9`D-UxK@B3(ZheqweD?Al+KPKc{ALHnx9ccGL+$ zUtKOyJ3mA&T8e;bh$$?Z%cTnI(`etrArz{&#x0^BOY=aAZ3e0q0h+y%Z}Z~AH{_jenJG~*Ii?U4ojlqe}TYC@&b>KIgWEP z@#r^xkUTGpZ?)PO&ATm-mN5;YSU21nu1aE_9Ypb0?Qr3a1U3^VqLP?H5~LT9n(Gtj zsCpX%vR>1axI8i`D@M-=2B21E34YCJr?Vb^q@2}!uvDgiirLPFUnaBgh3HATV95f393M^wF9n+;m0~mW1}VW@!6Jqsy)jX7uGgXslWhMwP_8;xq8rmumU)-v8VRy znH0F?d!2aet%T1OD>3h~aQ{}_bh4kfU{^&@q==Z3qs zD8s$9c^DZf1$I8gbjiebGGj0h_w+bHLjO21*}EGbFVx_KT8RMP8EH=HgL^Q##hk8| z?V*M#9n_t?LC$;wG%GtsPOrZM9=%q0xWfZ}J6%9&1vwnDe?tYfQgU4N4H0xZ3@IC| zK%OUpnTQ=O>I zk6^j72k2dy4>6-tdCht$um!+XiSU3Y{;y$X;#0zPu_7I-4d9j5RkC1E4NiA(O&V6N z!2I|S{4e?hKE_gPxDth0`=7%uQFFM*qk{3zn`lz_2-DuZ2(4GfFj7+1FzzGGnv0YW z#m}BF=oCw3x{?X&bB?-KjMa)-=F{okf*A39F_|kY1rNGpiR$J_qA+HLlQLOY9r=Jv z&eDhZOV=>|aV79|>kbG`(Bj~QwKU=83Cs>=Fz~MARQ~u%?#&h9u4*g(_A?)jW%vo<$$!+-0hpm$4}#xr|5c zW*F#l#;&PL+Q@f}=|10%%ebW&{P6=E7&C{FJF2yOf#<;0AOdUCFVey+WsulI3y{I=q9VRb-#A#`a! zg!2Y8$l7_uz{kImjVzgihub=c!N^Y#8MuwIWp{`P?|Pzo^)xImISwWIKrPSpyvHcTzd@f4xGEd*zYNbvb0HsvB>*zr@eC-N=U>QZTMp#K<|U z$5Xu7W|2IFtb161A5j%nb{5 zSbKRP2D#{w+O5h=xQ_~)*wchU?L3&fZWG-4s*NAk{D=0}c{%6jDKfv8%*2fI1GvA^ z1kxv_`l3HG=yTb4d^)G4ws>L#it6k~Baa^TM`|R-CLbd{m*>EuFV0vvzZCffnjpTy zA9=p0qxL)(V&$&@zf4b3v-fX_gk3wmbS?DO$N;0(d z8?|fsKps2PvAI`|;@)4|(b91(Xt=(^io)4oklux^b%I>SZEx`%{S679SJBAz*BQ0q z3h-6i2Lp;Xa7o}+;L9>2dp}*H?B7PS=UsVF-reCza5Ouj+-V4d%=KJJh(}>6Q2}Uym(WD zJeXX@NKU?oby{6GA}&JJPs!rXlq*D>N0IxmA_1JuJ8gHPEtj8reLEgOuXdYOgjYi>dAzkdkb zCu10WsrS_7*(*|ga)82W7IZV1{Xd4qfxU>al?Z9sHqxHZf`Qe-Ik%XqIZAO z2CG9Ly><5x{Vh|RJY`~IWeG;qCgR;}hVSY^;mEX7uXv$-3kR5?1 zRh4u}*$j~LpG~CN!|06We$f4TA16O$5E+%7&~y4*Z6x0pwpvk|E?$s>hqV-$0CPUz z9*<)hePb!ZPSEkm1bXN11@MdI=l+_f%KX<^K;LYvhHhIgW`;C{uJ?l6O1rm&dL@$S zf3HKO{C%vbQ=(Zmrk446(?`m;#0||qxI&qwJ#IfO%&-e16@m$U9Wtk}F z?AhaZU}Fe&%O1hX4|14ua0a(Qe;!_87U7S!3(WVi2V^In!*4r%;92PiTwk?;PKLL@ z>pQmOZo)rUIHgYob(_&IBg0JjTO{5fa)IZz5xzc_Xl8xmGRYq)rme%5 zYTx^=gyFMK$Xp?N{OA~uS-duAl9y*<-n4*f{dPhx6$Q*ss>gSq9+0bV7O<6^ix?O1 z#!O`J3i$6~aIbSAEIWId2Bq4N)Wyw=^7e8#YBrzrXr$ot_5!RozKi|y22tsk86&hQ z024zlvvc$fQF*-;x-I@e^^^=D;ISV#iBQ6~{W$VBs7^5$eMmePM}{J26(~H_W9gnlk`}TG&P7p7{Kw9IY)l1!{c#X7TE8*vQQU4(!-S zN=@o(#0RfU@scL^$~zaBohh_A3*oT;8MrLG415Z+agC@XS?fViv3EW_)*V3HRoa#f`gQ)yYkCq(7k6b;T%aWgi2Zo7>SkVT|y-+>Zvz(%^EW0kZBrx^13}q@k>v zXxvzXKF8}I-tQ5}6fS`hxpZdp@prV?Lj|w@c?9t@D&U)Y7^`X8ilt!0t-czAE_M90 zX>~b#zORPqraX|_kq-jr`N-f@%t?wUz{)q7$T#BwxmmrImVcgLtn z>Apf0D!)JrU4w<1NmTTO9C}v2B-|%qkRdxsH@1AEkZFoR$A!q~jG@py`3ZS($X}Ja@>`2qiYw(wxL#E^&Ik z6SZvZLEkh6ipAnUPBIQHb>->Or%ABnaz7@NPtxJbmH4i9FB)WoVu|zxU^V^e)9G8V zCLtV`NJ$Z+1ID!%MM_{6&oof8s>0{f=i!21QD8l(gog!&fO|R)ThpcCe2^RV9^ysE zb8#>{mzVA!4zSSi3)%RW18d#A(C3vWy|nZp>37?V0jXWE``1d8o_go^eIfWmOPK4& zGXf@L9i6pdnEp6wOJ~yxFp&yGjbA#@I59x?;4G}xlmh3!$6#S1AFkygad2P#77ytxf_uL>^iF6xddsAe$zx_UGhWNGD~^}2PuluO zMZq4}yy728iw}iIZHDYsjZQE(l!hq18CW+x4t;9Z6NM@6t)&-?q~{Phd2SANz2A!! zMq;emz-dOkaXsx_TStdlTp(|KDd}$Up3)q1IlV_$lGx!SICxe9A0E1f31v2TdRa8x zYx$4f6u$z>1K-(vt9L}ei?9zSp3sVma~KhyL9otPfyXwl03)Z9sP6QZF6-T8nm4Uu5ijs%j+z<&sl^iv>K0p(;;7YtC?BBKd5le4N$2- zaH)`l*IP&MxKBKK9qb}%V=5@>Jx;6V`@r>PUNAN;g!OfU)Jw1o;s(Xg`6I#u9ALKE zxM6!+7oK*>q9657(wan9Sb6*fd)xO3-SRjZJ}&d2Y2h+c8b}82woXus0(D62oP|5> zz3HmnIpkP8(s(bo+J<@u@G-ehu9^QJDOcvBn4=5$@6dwIq!3X2x*Y#z=u>OG`Cvad z2lL~6X?w^Iuc(L>OJLZJ4C@$s^L(@Ap zP>>`;@+9^V*SW*YiwSLfy|)yddC!wYQ#E&C*)(qIzh-)`Jr?OB12B!|ho&9>h!#f^ zf37rz1x0z}&_FjGm@`TvqrAcN*cbXZD4X2e6b>7=e}lI1URXcng}PbC#UtDGalgGN z?#k+c5P>C_S=B(iQ#+Uw-uux1zdI!GeH$@lFCgdCS@4MF=RP)-N70@jD5=drap!Wf z;NxZ7f0D9~XU^m{-Pni+|7*aB@^)&R*-Om>w5R+AYamv{3pIV`gJN74Jn#`GE0bK& z@y&TWa?=O{y$nIeQJHjg?}HtNR&YgMl8F0#Ar(RIVYy)ioZ`u*xvs}y{e&!N1|);z zM=cQc3dWvwomhHC8vaFng?Gs-F*A!pJyXL`=}tNfo|55qK9%I2<>iu=yh2tj`8!q6 z$f6=a!k{$NLq&GPVWF=d>g@7@;~NC9$>BOawdiJ?t$Dy}PBBQ$-$wdgsH4X9FJ!*D z323`2vyZMCv#R$>t#^d2Jzf!veS| ze~n!K;0F7C$lN=`QPoS&+88TA7 z5uSz}CF>RmvT~oAP^mct_UtfZKir>ylcxJ&!f_h+lZ`oCsk?z|_FAB>R|xION6Zieff$Y<_Aw1s$D}NlJ)*G!ctGXXosAiLA_e{aFej4ZE6qn=*Ujev(Wr|JN z5U)kEp(kM**q8nR$GmT3q2pneVYeWU<5|)te-aiPJwn8atTElMlIi43r~R>~$ib>! zJT^@X3jAh4@12(pUvDghgFZ@HE#Zzau=>o|fqeStQCs=Is zWbcS@@p$w)3^>0IG=?OInX4M)ogE^&&)3n1x(4)A#e2|m=p~0r_-Lp07};a)O;n^s zxSw{bLCnlC*u%BPfw|S-7k-kyFi$6mJkce zMkdr_TlE%NTfYh=j7=f5wvxj|Y@%zy8Ch_vJy zYPUrTTx1zI`Y9iR3i_BmKfmF5D`~EZ@RX-+#T+(o<~(Y@FPl;GBWX3<@SuO+a zP4W0R$Db$(%!3&%7fAnYf_2HEa3K256a(;s8SXKlY|#P>TubTYM<O+WDw?poP}WGBDlnv%>7I@(ft8 zS%PrY%4kIsKW^pZP=nE7n&|$UNThCoS2B6PFpqbu;Ww~e5(!UQ4E)nkpbOSS zLq=^fTKwmQwNf)^YkwFx+*sf|TYPWh_H`}j$d?1g>6$Qp%n?*m_OR{3Cdli)mEN_TK@zi_QMX0{4wzg-*KNgg z|7!<&bwnShEfV8u+Ygf$LFRa`tO(Z5Dy6aMBKUY;4Kuet5{{Wl;`1C4 zqq<$-7jPMhU)MphOFQUFZXjlN25DBaBzL`i5jsW;)8+$r=%T}l^zE#vo{hylT)vr~ zHvTZDPipM2^e=<6ulb_}e;X|_cEt?Ki}0}NFzFo&!bj z_<8&T5g%72CWCpzREnQ--F^q2<+q|$OR}*~@-plFsSVoBNP%9^8}{0R5VG!X76zVa zp|3NpF?Bg@jM>{eXhI9fz?TFvC|XDNc0`$qy=3w8P8I{+3X{<(|Hu|cruOluGnCCX zpnsk(;eK5)oBG=Rptl_TX}yyVSc|pd-OgZgYqA+S85R7|`1dB-r5IZAtS>1 zy{nxSlr}``u`F_@I~EduhMIFKZiV=8x<2%{fQTa=SXL+~Yu;efhaZ9ADPh27UwSdEHcGieK;c zJ;id@4ba&SLnsI2(A7!>J1vXx;Sd+>&0A>t&UE7K?T&Hd2@om~N1gXov!ip~;C8l^ z?0)(hhK_DUzMMBS^JX&2TTUlR$|o6v5JT9eBL-qT4%ocOhseqo(qH+p7&gK~eeDi% z>a=EZZt6;qrzt})`f@p&Ua*->jvdD%EdjVAbrpUxc+7Y!Z#PRenu&*NJSLBz!DcCBoaNCqB?cyT)so*swZuLng|g#!>B}66DUYu;EY}P&iNT+|6gy$!}YT#P_{%5RioCCt(WvLvAqpb zL_`@6iB-5sOaaUirhH>WA3a4j(w`-f;JarB^nHlMow`dn>i6=gTUaV;dwIcpo!c~~ zPnc8paT6>(Zc7XES|DfJX7FE=gZKQrAY$2c9M3Oi7c3DV{-PdJ9Jm~FCve1V(8|@x$sQGj6Bs|fwQEZ)AVOm==(bcUN)6s-}&7rJztfYET3)q z(3y({-M;8seu^|^B|%2n4f1bqPc84?CR7tq!u$|^IP4Y!s@J@rz*CHD*3W`RJC|{s z1!rNRt0m@dsfV1o`$;O#2xBwcO#I>&q4uG0RQ(`b8I>51g9sgp;X%)pX|U}SoriZ~^tDk~BXWhVbK3zIjh*q8UkBXkssoLrJ>(D@hs`=S zm@W0@%=oqda%ImEyz;poPgtmtv9s#6@_z+Q4fmb|iTkyY$Kt^4w91GU?^Wyj5ETfyoZ)G>{`P{9C%y+ z5x>%FP@6Co~u@B%-dj;+B;b2hmIr6vm3L0FN;a*;C z3aqXwtPI=$VRuK&)|vhV<%c)e+%7RZvWvr=)Hi28e|Lh>o@b^fMiODeQ)$kvu*I}0 zGY6LaZN(M5;jl(9j9GlslZviiM5l|Z&|P!R(f9tgBrn*2@_tT5xu^%kEN2e-sYb%W z1Q9k_nwOkY;i>A+QT*wQ)Dem5q z4qwBDm@2Lzb7SdMa!mg=WM6WnhlhHnX4E!gn)(0{J~NFo**rmARF4wvOYU&mNQ|b= z;Nn${Q#kF`OxSGV4d(_{!D^ZU<9kw>nWh_v&8~X<9F$A)2Nc11tt_s2q6(t>Mp1GV z2Zm@SF`g;N`TO)H)V$)tC(b&^idqOarkrzf$yX?Ie+)9cs&QlN2t8a>fvvZ0gJ{1b zt}SnXs{=i>U7QC8^7FuYqd!FV>u}%y9wE_}6yRdNGg;}Tj=i@=&8j-usO0udWIxBA zmKrPL{_;g6Z_ipt`;|(5?&x*$WLk|AK?0d_4s(dEq>EzB7bIDqWfxHoq;UG&61w*p27nU&*^L93jn)1lYi- zy$d0-T7WXCOK6|lSyGRX~gD~JUX18 z!MQE^oIFV?qPlLa=i&bH_1*9)~Y zwWF2>JI}+~_gAo4+yXKV%VNIJNfe8Lt6*hNAD2BV^QTHpgMs8)_DoOLkXsVaBAzlrQcHN#Ta#^r$?X z7<6GcI`8SY^4Z$rGwX@FrVdK~{zJ5e--Db%D0=MpMB@x?*|dpd*gALy8=a$YPp}AA zJ@7ddQqqOho1hl}=1_vmc@#(!!`>kZ-t`*r-$U$2|ylB&HJp1hs&IeG=1+&x>yfj>D0_zveq^Tp-4viQ=#>o7RdgJ zM6IkXs2*+#J7#}_;dMo5sYcE6mnM;`YwlqCy>CRbin5bB0^H`)ov`$`8%k?j!gj@e za;Qoi0wT=7EVqG*-8ZORBxj0oHw*BaN(_*I`|O!A6FO~l65r$-(_2?J;=6VO8WZYH zh0eU9HB<3n)vH$|b7c~IPA$TTd1@H)SC#!^&_$oE%Vjm~&rI>srMO?|K2{BQVRFS{ z5ZmlZBWt-ZdT18L41Q%E*=FO8{c42FDsCqjvCauaRZ#f(&3R`GJ3l5z@8%-IA#Rco`0?;qx>l>+Ir_-Ywt&-DvJG4u<+vlK?hymy32HRfO=?xziInPYyihp?8&9txI)D7(;O`O` z{%M9qJ9lDHRwA5ObpsY!l%dhoyiW6?{j_z~V!)%4@Tw>XEvEd_r#JI+Uv5gp#yS=| zvgt4cw1+fc3Te^&{kWexs3x=<0@KwsI_V35RP+V?4hQB~cBZ`R)?ZbNDGhMqFa zzPJ`;1ooiy%$H!8^43fwQ4D5h#$l&=9WBb$h1ovMFc`QTCu7&*(wnzyJ(TaD%A+5( z>ypA*jp*g@QK|ygJ(mKTJ_ZiWcV_nM-=f;bCUNUiPgFm;m2~IcN5xw~#K@$b2G@t7 zV8JKqmuvz{$~$cTNGOn; zm#d+br0 z-YYt=D-8EX8^CD=L*zX$7YmFgreggQ_S3XVTz_sKu3fpB`WndK1!WFADz(H*X@OIF zJ9R&&{C3&VKS{B4AFk&p1MYBxoC5WplqYl=1>(oA{6#;9w5h_a~$SHSQSg}?OgWTsseNsKM{$M|LtCbOZ zAtUIl%Ycu(f^c;(1YXxZnVJbj3Lm8Czn(%`|4^VfoxlS|E-=th>a=`LG!xRtoey0Fqy`}VY;0>!pwlT4?2 zOk1A_ruv7_E@U${Z8?fg!BcfWixs*qO{RfAXL7UuQ{=w4Sc+@ZJfZ7QJ{E60%N|p# zf88?jDQkW*k`0e@K|v}v48#9fQvON1Z#&G-iPO5w;kXGAlh2Y()( z&n>hGh121sjQYnXxNNc;4YN}q+h{h8T3!V%Kj*{j^-=8pJ<}OG1#y&J(adBNhp;{QX)b{DWjxeW{>Pq8QB?G5uW>cHH?O+ zq@)rhr24i?>-YTrbZ{KrgZsGeYnZCvH)rtH(cM z(vb|T`ps#-_WU6dmYW+xA7@ZUZjWBLRsgRm9)%53Ux;u>1pYDHKao^hEyve!5m1^k8-Li| z0HywJ(q|q*2)6?&3M?Y4eO57AovJX{G6|!mHsIrtXyT+MMcz_BqJA|1%%eRq?VvoL zUHO^ZcyNzg<$a-+m5WIEtTXuGwlLqi@-g-YX){H?FTk*7dCg zSUHH2Lzl$RCuA2oon~1Tt5nYS*N%#R>|oKVvxLq#hJhg|O_$zpq_eV)-~o9t6z<5z z$BBachG&YTyD}7#rMsYTbu1n{IGHD8e;p1kzXFF;*WuLspW z=59r1^+MQjrGjK1Nx%tT4cGXA<`era5(M7L=jpnw(h$E!l%I`j$@=bk;*>R$_+~oMdy@*m?K5RX2PLUWy)Qkx zD+JcC$#g7rE8b~(&hAR-h49bmbmc{^e|L_h*D7P^`a~)0t;j^3?tZpzOcyHo?NDzx zK<>@jgw9V01p5w?vwx~UyGe*=ax4=vX0%h8DRb#w-6YWdF%gG)rKpPY9LSm+0rf`C zL|jFm@6cREMsH-%uibu_U3$}S_klR*%8JMIpxYqHu{~_n4*`weh`qT1^uweZH2qqY zzVEG5Y>a;{OW|@QCm-@95M zuJI`|_sk7=Lp%+LuwVoRxAQ4(x1a~QV0u| z4{@H*`&9luK)~|tMA|!)ioFuR7S6vKFpGsLPowE^d_h+?E`_m-IT#zM2v@A1!`}DZ z^yj@cL*w$l@Ky@xhXYf|eZ|9^e{~r)p1h3ax&}NOdl{H8Y`_kz55uT9ZuS~^l$7Vn z($paCy*1PUgM>gBZeGaB8md5IQ73i&VT*S2%Baj!6F6u*6Lu7CXac!>(tYhNIMfcI zbU`-8L~U)lV7?4eJa^KLC9crx$KyN9ljFzQNuyh>7B6UfT>X%j6u)b0J(ZPJ=5!st z(Ej#6QsjG>&b_G(&BclEW0EB9o%4rXx=WnuTJ>VYa5nC6mgVodTFT_OrP2E2GWuy$ zf_?B_5Zo3m#MgQ$pxtpBhq8A!?cCSSMxC{V8wdZ;g?GZC?D!$N^mHd%Q7BIjU0Dim zIRU6ery@pftHI;*{gJOepS;=`-c-18DtVcwkEOL1u%UE0-6PwD0gh1jv9Q25b@6du0IT-@S`#@jO>Aovjx>8@vu zqcR|3UoGS9F@<-0P7qXYE~Y*&${@_~cENADZ_YZ1AK~;8=aO-%?qU2Z_MUq6{AIUyoB_j@X&7jb4m-2EaO-(Z-hWcJ zaZ8UmvAkokZSSkWFGCaIG}k*-eLGLOvw5UKH;|qSFUN{DJG^n6 z+aIk|4@jxb;UQ*7?syA?a!e8Q|C(HNoW6sUS#PdmmoRAE2VFAt~IuhfFE4#>)w> zh`4hCR(NzVaupFYK4=9(Z@8^=};AqNcu3^hB_^N zj}ey?;P&4 z#|G7D)7gP<>76xp;H1|H;wA3*u}OuRravL&@oRC5j|ksieW2-v;;21#sbjfreKP;jEAcfb?7PQTYLVE0>SDGiSh$ z@MNl2^$+%FO++u3I1+$o$@_#RbbDru1Ll8`jfy5@J`kQOf$#bH7;zyCEgt95btw-> zOjaab3cOCdC;cME92bEVs-tUts+br!4|8>v;r4tbmfbUfH?cI6I2}I>>mR3+6@vjF zsQH7WRya_lDZaFOXdk`rtOF(N-%PBnK}cKl33GS(XlYi)-M6 z>I(8p{~1K&c%ka@DcC3=hB8-!NwK*IU-H2b@Xk07i(?XLx zi&%Gw%~0?3i_Ex{f**3qsmkL~@}(>dqJQ$CQE3fe0Y>PUgJ7Mo3xU<@>y8=_nG1QI>I}iF@s;k6hoBWB)q;> z1YB2Jb8meqp7(6UzzTajy1R{Cwv%I)OwfeW=VpKdrjgIuF63`#5x4Knq2gDx7)Hnx zq-P5gzrEei_EZI~`R`_ivfq$`$`06U7>}QJ*3%lXYTA8e0eTF0W0Z^nY<)gL+dY*a zmH(DLj>y6Dw&`HMbO>~1T*%vDA=txtL1*bsg1;)sAQ`t3CVnk~rgd4QWJ)^u*)YMlc(2VS7rlN0b zBAyG-XK;E|-;;pMU@B>%Rw>8~CJ#lLY_EzB?<5&y_{>IViec^_A)roMnTLEil zi;}*6F}~~DSX8_wjSd5Ipg6|izs>;*%+Y@2` zO@_RV*97|^bGAa>iyZZD#u1zEAT;4SNjgx3tj#afJSqykuU@bR{>0O_A$2emFO89L zwrK66&v}Yxf{sQ$n#-Gm{=aePzkP}NMbE@D3s>RWuePw}5a*SFSRBYZ3(MAAgr@Ek zvT#70&wIkvs}nmhdM^VB4+3HKdLLl+Xz<%yR-vOT0eOQW_V?oJIMKGB2A5uLOjm!3 zg&TW8t;7nXKgp8^riM6=$)@W}HSh=jB<4rTlUn^4&^TvAd9n|v?(j-tq+|x&8#p~6 zw>NDNI|8pQ%JK6TQLs95gB?4*7w5-Sg2vX@gn(qMDYaqNaIw>skM0{rm$yWOJQE)&#TAa*qsb=bngZkd z%D2(w%{nLykszrP*P%rZAJgKdVNPQV28M}|1I=f!b-Ms>1?TA>dPV8DA;tRgS8UnC zag^fpYk>*opyP2BMgk=9sQw06tyu|&rCv~}X9oB)wiH^v%aVNl6QaMNhW&Ln3lBTR zfX~Z`{2l(MVf&9*dUXzurfm_$(ig%YvbKvPujzn8Ck^SUgR5wsS}pB<@{nome@$<` zNCeY;6~LeR4V`}GVSsB8Ufw+)F79;3Y_lmq!?^ElUjvz(*6LVFI)*fB@t+Nh6XpDD ztjpJCSZjB3xu6i21RaLhj1bIJl*fBpQt{3+GiLfcEzCEQ<|SWK!`8=y90-l0Qor{A znGs-MJ+l$#6j%^vlb58n;UbzG55?!*8dz5xOlm5w&`!0f{QWsbc+2uEIDc1#Bqt4! zE85HMlHqm)*P_|)&)w1Q0T8udIyT7aVAKN@+E7*2G!iY$ce!bY%8IdY$|i_5xgVt&zoa45K@5_z zpTp90Rru}xl1@43$kZ$_g%68;!A`~%M|~H7z0LqI$vU)rgTA5CTX#J9HVhSh85+9t z*TI7?X>>d^2Kam3AnRx&J@{r7d^jvfBX&||sdogpOjF`5uB+mFbj8#)I0DH)W9_5YfvMvK>KWLIkv)^pTzoO8pI<|=d6wumU641|>mxII?-aUkD}WOP z`{AjL6pkO&082-6m{31PVtxn`$BhH1o{&#RnzpkhHgfo4?-lwpc^UlP`j2WUJweNr zvr$lKGCpomr~bm{@vC?i9rJTQ*Z8#{zSxv{YfFGdLk#J3&%-5w+U!l*4Yo@VvTM^xUkATX&`>^t2F-i&iVY;S8Fn+Q5 z;Fy;TZ!DYP&zgI9(eyHm?~#UF+qXDlS`jR*jltahHQ+mWI%c(q+QcPJh3Q%;9{x&AEIm@cc!ZWgBTv{bK4m zB?R32rO2b99Vp*!)^usrA=>*Xj{1B_f$Ve*+&|d@y$k|KOWa(jkeEzQTs)6nSDrI} z=gs5||D4MC`X8cLmKU0zL`J(-3`%A!#e0Ebyqe3C!E$2>$sNpwuwZ|(D(M%-^|Vuq zqPcjmx|BW+8)4MUbihu|6d%1d#*~R!tm^J*5I=PaJSk9?K#rPKk6JYulFHAab3}UZ~pw0aod;aqoT$8Yb-}qV+Vznppwm%u7XXm^p zd(N~_Ve6Urt?ULg8!sltdiI8^G6jfu@E<0`y#t4TX;a&YeXugs0uFJ*hM^2oa&1!% zB(E(+X5=l0lBd38oAhkF zFc?fe|7k+rjF;s3K>@T_FoS*g^*q$n|22eU4ZLvX1h{0ZV&@5EK=*$H^-ibJ7B7EH z&?!cNwHl=Nj|x8PXYlt)aUymu3`@H6*;{79XleNt+C{hF;EytFtek?zUdkk-(E(R| z<@^&HFQVj|?O51VMoa~rpwjp@ITPXwPuE^#56G&+Je_-_)V927mzWY?`0{*uRK*=4 zmTy3@;$gUwVGXzJufe1Gmk@DSnC~Iu1A-4uk`Vh;AOXkWO@j;;37)`zL8nl0w>Ehg zauC%wd1KoHCA_auNQ#%O#~UlpK)9S4R!`=bP&5eLo7U4F;rqt}w%y`r-jNjrI(zmxNxJ5+PJer4$R+Knl>LJ+X; zJ{$IHGS17rh+ai{IN(2>Kl$G*$a0%P-mVY;OPY>_>X=V1NSq+sBU<%ytBqwJqf7^oiIuLyTA3B#oV|)8Xdy z9XQuT4Cg(rrat5E;PKw4%vdguJe^;U-!|?erG3G;bfz{sSr2la{EyV7zL}e&=fm5R z3~Ae*#IPIm>9o|aW3Ym(NnD7e+n${}V-wCcQ{=SZvq|*uC&NB^zW9TNsACSiu|2e}TI@*Wg9PWUQA= zg!NIeWJxt(p1&oWw@jwJn>BemBqnkk(H6cVCpgfeyUgk?YHv> zo0Qp1r3q)$iK~HQeox3$o*4*@y&`va&f%Fo)g!83Eiqg-5)^90`A+8(2_0#s4SIR- z@+re4+pNap0g^=HNFh!=HU_WuAE2%FOTbQ66|?1D5-F=o?Dq6;AhM^4oBMFOT8l|2 zk$4`f3k2wwupRJW{VLo#x}oV}(J*n~OMqgAAkJ}Ctq3QJ+o-jRMdG#4drgu=uFTh z89H;92()i7AdgJ6q4MSkuD=`)fdQrLj0uuZ*H;DeZ7N`xVj&RB9q3DHgzZ!GsPD2Y@L%y1CjUA` z4Wc;Ka3p0sdllHbj22(`kQaWdh$EYJr4V!O%pBX2K^;^l@u&U$#h5X7zS&&^Of4Ci|^IupzoL*ceiQ7^;^?n z(XN%?b2JZC)1`2I@fVZ|*ajj3L13^f8oGP#&^Jpik!QDWlBIL5LF?@=Xe>p*SG$Z3 zR##JJ2UU1_rH@#gvBifaLJ+Nak0cvB09Fiig&I);C;H?ogndLgK{ z5B*kLpfNA>S=*D`JRz2=dwt@#&l3nwf-`ASe-B$BCk)SAWjNl_CcO5Z!0M?Ye6!6F zz-ByyyWi>v>*@e9+uk%~w1?mUwiMPHIAR7);nh#7rA-1sj2Z8N!7uUqByM0D`bZYh z`bC+LtXGFBm5WgS!yfG9^|FqyBA95uEu5DpnJ_cFp_69`cKVBGiPnB1j`my+Pz=d^ z`ov5{i7(P$NtZ5h!z15MK&X~HTAkF!oh}p6@@7BsxSe^=8d1pVu*7Fk$?&Nm6rFW~ znE2{Y za%rGk^os=dc(0O_|Aa1UhDmQOrJ48KIbTK%ZVQpasJ~CxeHxcxUhxx}x8MtoT#F~i zosqle)999ofc7);iMmk@x<<>9m^5WN{5_az@V8L=#)bHDt{~o1C-|L&lNa8xjB)P| zI%*;eTULG|zDX}Zf1wL({g={I?sW!r@`FhJr&P?jt;sQfvgzq(nIN+?3Ii0a*~)3w zMAmsWo>^K29#59@GA%+NO27&&BckxWR2Fquq(PrnzUAiTC0O=F0A}@$(@AETyI2F>$}e4N@uO6bvuPH<3JR~udbvUR*rER?RosH zadYA~^qubbXHB|ISHp>k<|IAhl7qNlCR7F86K0ikF?V&87r9!fHrY)ntr5 z+)mC^C6LkjNxXZG2aubuFn8-EXi9rI_-GcO87R*frsu-UIvM&T*#ep} z64?MLf~yA3fvoxz{_`FYbmlE2>xDT!Qsf0PQsN1BtTgCl^E~Pw+dhCXmGHfi$Vsj^i0$iR&w7jx}Hk$R~)cJkL6aFyUdpqEA$hs+6=ORtM&C__F>uf zMvRhM53f~OEFK+)djZL0`R2Dw^`=&mdvuK2KhlHxL{XX;ybXWa4-yfpMZBF4V$oM` zA5HKnfr#;6RR3!kbaR?Fo8Hrg+NnC!`-&$FiLAw0w~Qdiy&Ad-&ckQ*07!8>j$yId zu*f);&9n)_=l)W(jPL59Y*b8~0jrfUd zAm03Nil|*^nwtdVr%gOwTPqIy~ zXUwH~YcJzw=Ooy-V3exNozFO(Jxg={GE6Ap?(Qiw;mWQzG`+YTB-C$$J~zjRD~?4Y zA0_;@;yNr)Frc3MWN_S2oUI7m%hmNN^yNr6dP`W~j`ncs*K-*dfqXc!e?PnuY9K!} zHTbfFgCIOJ4m@VC)cdzOmP8OTpsLG=TkBx+Dum=p4P>65CZlQ@xVAQkR)KJM zJ--J1J1nSUwHw~kzd}dn#6b1KbC9bU1(oZ?p($GgZEy6Gn}W}9&!!kyQx}bYZj`{U z#dC1`TS=a?d>AeKG{zP$G=??TF5&sdyNPlc$1gI~2I>BPr0dFFqHk~k2LF>Gl1C-@ z?e}>&x6lWR9?SbnB}mw3j{Iq_GZq{vko_WQpS(NdU#@<9@0PK7&tcp6R8CR zFD$1@zkX5c>gRNIaW)C=FGeTjeXxGI5dW!Z5KQ;!CEr^G_&3*8GBs^?NLgd*3IQ#o^gaNj9f|Er!GYKR8HS}&;}z^e$%hxJ?!6XP3Wna z4Kow0NKJ7t{wTC0FAOzd(e)+p^rR2)&&l$QuGXXKns)lK$PC81Z6M;}Y@9wvhlrrkXncfOjIzQf#1;6U7Ek$vw}!mY-1}X`O>~sH`#}t5`4KP9heaR-Z1>H z67S(8J%HdHp{<$5RAC*Ayu1D}b{s;|FzCt}@C-IFN2Ph75 zzSKLBU=|ZYPUMZTLc$zdGWk9U4xWuSDL6fK*)415=^#rM6b zX#Y_XzquLWLH%HSbzg%T&&dXjL%Hn#OVb454 zes9t~{4e`2T50ZuYgmas!92nbH>T#RuA!%C7Kp?Qkf3t_g%jT5^$pRud7cm|?f*g_-w@%i zzG#kn?=Pegxvf;&G>I&0six2KO3{Y%{a-O=$+DU4lnyA8tmB5fnI}7;WmhGA?-GPP zuO<^^xv8|}LMTPLpDo)DZatA$^vQtu z=8wT0qdTOQ)4+A+oQHoM*u+I-VEZn4@^wo;u|9Z%Ofzo*$BC=Zv%nADdgbBI5@Fu7 zD{dq-JRYf7Jl${3V8~u|zVo>hEXqCxQ?6dXo-5iA+|BuPwjG3I8+Q_N%?s(eFkBO( zZfL2W5B6_uV4D!fP3gOgvu^BTOS-x^uc1B&KUAliC%$17=9Q!H^e6DXzLTx{83}W$ z*3eDc1YjV{iu}d7?k5TEAPyk|FK%oi&y~w2k=hdqzdNhooRWnC&bJ;@(ex7m2i$hGPJ%kgZ?N{^xIPbjcwxii7bVeZ;4WapUhxWUA6QX&pWQVPXC3;>a<`xloK%lHWlfs~Rpl6q4k*=Q&QG zKdn&Tgv-eg-K5${LR_VI>r3~*oo)4Ka^N&7^F85E^MK)`j$mwy@j(OcG;FBp=NMTA zZ2t%UrW~sZ`fZgWI{xINfNm}+G2wCn1TWJ;+j{c+c>;=1U9PlvV zzf9>vjmvh#gr^f2@U`x5(z|O6(qmijM@kJ&STuwY4NLLeu9@&O-xkUr+Tz8-{p7<}6?oRL z8=OY2k*j&W_^qyoHT6A%id~r~XWj(cZfHT{llz9<_YPoj(qxWQKZ7;D=K?)lD$r@2 z*C=^m8+?(~#2%?pc)L^<;-L9&u4E8DBfuZu zsQ`D>3ehP00c-i7n1&p3g^Mc~-kvA7aDVV$Vlpuob~vx1rR(S7uCABRI-!>S9&M#5 zt%XeP&p$N#*<7f+kci~C9_Gt*&>>|42OJiFKw%x+`g)GG**B4wn{z=%;taFCU@Mf| zjYathwjg5ZP3-L6QMsZ7+?AQ$WH~Y!q)r8qj_5}A?e%al{Hz| z#Z6iE^`s^$5<2holcn8SFqXWA)(`2iTIQp4b7BOM$PnW=_)>6Z%{vmRTmW%i?(~A@ zQ@HPRifmP6&}LCFX}amoUJD;@I`_j9=B!k}=pVll;K#Y1 zP`l^{5nJR(Y*p*9=3F?2b*{#w<)5k5{(R=;<9rCI7J;UHPiWXJ1)R0|GQiIV|f-^c&rE&4!7eHv?w0J|gpE>Y;z}HmWuz zMXva4hk#?MG$P#`Qaz>M)E*V^Fr9~gBJP6Xp$1Hlo=d&{9ERpii5U7QmE%FWquxe} zwqNq#k>EtM9rZwq;u^RvP>8$oh0#KE1__Fui^3JdRBiAMEdBZk`r7khg|#+HL`$%{ zA89kzT3(ES&k!?cwuFRz_8=cd0wAY8iDL^0@-}9*V2GtGoOya3XMOX;<+EB~N%b6B zc3uE0&#TeF(&_N*HvpW9#BW^*WXBa7^eKNub-i@4;bSvc4qT;nxAM6h3TIN>z6|c~ zE`ZAJ-89ee3U#YG2p{IAU~Q#64F9So6|Y1=Jyi|_BVAF{dJ`FrjmM7`5%6@X9CmqL z00B+z9ZLy7A*~S1D|JE1djj~EW6MpOEx;e#eG*?UFQZN;`S5*N2;ICvnW}wyfYIs5 zwuD7t6z6kL>lEV|?41s?e@A27Ep_PJ#-&cVU8GTZQ^@Y3Ea)^hs<9J`?51CRl5AUkWv2x?0xU6M0jxW8--1II) z1-B?n`1=r})-1yZr!(1iN0UHBeH*$2-GYM#lc=`nb8^5>n@GmUz(@U2t`Dq*&Nau; zx9brN73d?XGs97GT^rdwKb@WV=rpEoy-XGu`@x)phdCbJU5MG_MHUXyq&l@+=SGuii z<@0D#5z&ebT}`x486a|`kO);PkmrvVfOq?CTKT{dXWpEG>6t4bNzfUth9w$|8J$3W z>`E$h+8uU|tpxA-AZ&Z#L5}1q(+{`rP{Fxc{GFZwIOSm_JfEGwR_I9*^93!e>fR3G z)G-^@xJiS$MJk+nI!ZRl^#bf{hGVK3hAHNm*l{2U@%JhG=D3QaO5~uy<)uv~E6za- zs|$f8xfV<=w}T- z`fR@s${N&D>#r;6rbF*=aLk5d;~h=l>Sr;CTz!SrF)TgjuE-G!)LTg!UoHbdld8DLI}q58^u%-4)lAY++s z=<$^*u~X7^(Tk1@;0|C7;49} zJbgMVSd;gxW;gEaA0w-F%E0x~X*izVOqD+Z{p`7psJmY!u8&_~TWcKTc1rR#UJ0T8 zgO5mZQv=CY`A1Lq?f}yhoG&b{0W6mRndijgt*JiCXk6M!t91Y4yaQL*S=atD?EDZW zdBOp@m2eu>Ol@-H*Ejm_Z9MfV%)(x00kUq>YeEv1VvWyyvRS*7>ebAr3$HE2Cbju! zoS28Ad`GfB>ngr{Fqzf3wh7n?YY{{Wpf67ZFUcg*n2yV=>-Q3}w=bPAvpu0=06FF?PXZe^^KvpLp!&l@AZ+xQgdEGnW0M zygrT6ixy+H?`6yzd(Yl5oPd2Ig%Eus8AosTl2>bgQhtsnwr(;dg6TqZ#HR~ni?T44 z86h{hIq(|cFqoFW&A*s(dP>s-zXh4YcMoaQdDerHEw4d#w;;M%S3+FQPx?mN8;)## zK(mswp>BactY4_cyO{WcXuj&iiMRitt-c;aZ73$Zf)<*2u>)KRUgFsm=`?XsJe?N* zi_Qyu!Z>;;f!V3oL@37!jJh_k(b6IKW||yG>1>C|Gj7tIUS-I7tAgv!T++N=$V=>vPhgMGNqWk>zgQ--m;eE5CIIU`ZP`F6(5ry1xWm2QnxT++ zYdbz=^O_DXJ_F}?mGEI*A}QKkONjYD;x6Gw)nX;+{fWY`>0b`MSNuj6F5~g!-YC)^ zhxKv7fHLFj^p%}6cQai28i2>YXko#VHHkW z;xnDvWRzjtKqIYBB-Oo^%{k1V6LcZG&_|STv@Z zbGk#zXe#}zmmOUn1$R3L|89FC)?`Vtv)aPQ;HeJ!e4`DQhZzid`5ok6h$h((_K&t) zwT6mmX8hssXfohz1wGS^U~!KwI`A*!#BUQ(tL+k#lD`L|nw7vHWF8fm9zkw()nJ0x zAT3PK!M_LiFx6cN3Rb_PeI23nm-h!~o2kudn>to z?F#byf(1QYY7bL_ACkJ^RLq{8i|VqsA=BtMW3zn)eeqllbHn=Sn0mb7E{_uUeeD() z)#cOw9?J1#WM<*rR(JR@Z!bMP+Zoy~%93Z7kCP+Ynn~)=MBcI2s^HdIN4%IJayRuH zRhSqH-6wvMtqGZQcSHkv79K$L>x&?I!WBAAuALlIx=tJSb9tqTYV`Gw4m@~$7K8{X z@>cH2A+e4*VC+{+@;wUhY|s?YZ7{}kox2!b8Bg*)@yPFEG5GCmSCcuXO}d^pjd$$w zJ!VtGbgYhA!xmH+ft|-n;GK@gUh!5U)?rU&L=cX}eq*f+?^4x||LEc%ONB zsvKM1Nnq5h!?4q?o4h;I3Olcl(QsZ3-3mJ3Y*vcd?Nyj&k&RL{X>dQ&4$TMrNm@xN z9QWq9(4BdtW|9nf zLso|q=YAVwo4=)#kA}XSPf#0*jP8>cZ%klJ-~gs+H07nOZ5SUii@t566olP2N7%egQpBg}V7yMb~+qI@5lb6B!=6DuAt8{Z|n z!ARl&()p7}THrvY?v$nv%s!HfXX8*b%##GJ3MZ`MICDr|oYfw>Pw(3KkY#;? zq-~}gu`OCjgcmqscV{sZ@8U!bNQBba+#8W=@c@USl%OiEfTrJg#i$(vxFs`6bar+y zKWEm1vwk(MT|SQPCPv66e_}j;;2`GPXkxZDX%Kq(YhQGHz;4_Y2b7wqCpXr3+|B0hTtQ2g}-vs&VJgHN29k~7$$0Z^EnEXex@xjFaTA@0R`MLftsaMs5 zwVWnDp(2);|CHtJX?_NOo5kpGmnX;<48oxWf;=IY6gVUt!kja`L^iFBp}(D6QARbD zar1c!kL7Y310qK0mB-EyaJLn&olS>FwPh&$-j1XdD?+#0cUrrqmps{AM>Z=9^ZpZx zqju-+VU}|w?bs3kyntnpv1bW6n74vTd##1nvb!KXI{-hwP=%@pV-zkrPl~q}(JvCW zNck%V(7P){)n!e2fzxVnJidfHI-CgqJO$|XY8`y_Zj@Qw*58z{^BLwZ>=xaG}-#u-Z!o z${Jf1carJ$v*7+mK}?J=z`j{yzlwx;|i?&Jr#G})5j0M z`OCy#(0r9gY*U;pKi0sGUQiN;G;ZGMReg<0kA)GbFkQ^OuDWW92|VFpQhr_STFggRCK2!Otw;y6>F(Yh%ZUyt@p$WQ&W#dyWqsB8skX-6y z8M7`y>=-n|OVI&1?{z%8rRfH)N_50iey*sUcCvjZvea6K7)ee-Eo<@T96w|1+=qvMGdp<;ImW# zN4DRlTh5u&9gninKD3{DFILj|ByL*@3N`ny(X%Z815@r<2{EXc#w+(oYtgy{<8*aBNg8R7* z)LQ!=SU$T2x2uHt<}TcxMvALTyEl*{Th7rxqUqT9qaB|l+QRFrg=EH~-iEIw((Izs zo)dlp7aYM^J#^|(pJ;pEM zGI9>KpqP^uRS7qOHTsG4dtf=;W8P0k9!eAA9qDw^Az?oGuD~17DkJUVSIO~x*#y=+ zAz7Rztybh7IafP}H=WB771L6nL*-lX;Yw5d9-IlSbw=>XE|+*4ETH%Q{bJHVH=Vs3QSD)!4`9dyVdNH_my&+#NDDfZm z&Vi<^8K|!^l@2fFKt27Occ9`D`F+Y2TID79NA9*#-JDEZKiY_^s-vm6fCFrh4n)fz z@93pz!1RfL%bVk@V69@4Ynk9{XH-*Cj#qRWFfyZgV=14M+4bPSopPo ztWV;j%0(sYJ#0a=l%l~m%^%d9qFDRhP}Dj90{2D9Mh!!8qK zFFzwE&zOSuqzpLr^%pfUTFr}Dr3f3B?jtxT4ByRW(x~VV`h2Z0ew-CWY?nG=$*H}# zFLfQ41=GN6ndgLQvp=BilT3DL_gYLG_{z<71(@rj%due2J6gUn1;_S^!=VcW81BK6 z6uELX#zY^#%m6ew89?5Ti|`GmK7!C_T|77{iY?RYNa;Es8X@=(biSFB<0g#=yC$NT z_b!+~3UO3f15dO*fl7Zzk~`%dO8t<-`%ER#J^UIRig%%;a+YD$%9C`gz#mVX%tCce zXZos5j&C7hj*?D1s&MLNla=!YOiSYQee(HPEXr!9s+^>@(ceGB$)Xl7d5_tr@4?)+WVr<#Cnwp1-!;FzMIFQFNt9Jx6 z#l;sgne(%WVt^p-5b;7D*RNXbts@_&>fi>~6~Ld73CgGCkRRX0&OgvW2m3CtbI!eD z)3YR@#aaV~Fa5{Jak-S~wP#7d%u95FxhprfxlUX*ZDlLIl!5Cvjt7=M35RPry}n5x zgw=nb!!M1ftLQ#*?p6^ITwDakA+>~_cmy6t-_m%e7AB?E1s0Ad;XsTOta{TA4|Xhu ziMxQFmbp*iWj#)svW;~sm*N#@>yc8j8eTQ0LPpYAl5TmQZufq{=`nMlZSWj@;l3P* z)HhOHyM$iV4a1iuL7=|c0}Sg{lRp*LX>T!$;Bx^^Tx-WGU5==g)CYU6PsKNSVeE{s zWHh-vALXjnz|oVT#Osp;Z+@2vZkxW#pvLS!*67VX)V3@nQt{KM+Ocyex^NHtE!ITM zWiE6nm#-%Oh)Z;K3dfVD$H+|u9wv!Zk+C0PWNgeD?l$J3GINnMEwjUulg%J7b{52M z(*$EdJ@TVdnr}a+8jXXE!E~V_&aw%E!~b32G952BXp7^*M*J_F7@bq(4Zh5S(|uPV!DA9%XDk{%o#1?*Ih-eRltu5$ zOCbKV8S)*Iar2cmoKt=TWNebi+Xh7laqfgQOb;rZQV0TPr6ze6K!Y}IkSTrMrn`GVUkQka36spN7*B6aGPhpAT zr6=Vq;8({<$TKX#MVDv8s&WxDo5bxN|HOdm{&}oqOaeVP*a*%7F~ob}1!&Dr2ZgFx zaHU8K=AH<|Um;O!ukZshRF?@p?hoJXkZP3y2My+9(}6Ma*x?na{62?QtdIknk8Z*hVJYY*s>1KE&;ivp2mJW1 zvwC?)DowTR!UeL4`bD*$O2JH`~nSE-wORowffJFK?c<8N;`n6S@<8=*DH+;e9`aL0|-dl-A*?u&0 zNM)C-+e(dAte`Vx?$Pe1nRH!%BY6s3X3pv|+*uY08$LJCwB zSqoYFu>%)>NkWf5{q*Ag7On%3!Pf6Rf*g|r&jrNQ&i2-VlB`Kkd^(xQ%Wh?FJN{*N ztrmbSiLc-b_~WXtYiZH$N?dLt#Cy_p7K_uPpfLO~(tA!QW1+|>cvj&4rLE8-P|pTi zat`KWStR}D3$z~Z#A`A4P@>(@y=Q&`2$4S`HTn?HkC&-9n2L>8E zqZemt!KPXfHrHQ~t!=QwX`A%OT`d-L61LD~HPdkZ;8y%LmW9zy$>0{h0m=?&fyVXa zM1o@|w{xuYB43K?P9o@gV;TyY43In4pU4t_7d-ZE7T?weak>0dzFUt0)>2*E=08HJ zxbC^^ge7qR67j;C@zlG`Kve5B6i<#`j?PmG!?^APGCt~ntgl<{;g}qz5 z8{<+F;GJzSEmjR@Tjvy^V`4Ow|G~oIb{Y8DtAlT+Jf=EZN@(nN5tMfbqd#)b!DLnu zyE@!)5$6?hTQmciJXv14&t=f`G2k*sVQ}c9Dz3NxP7@llLHU^`+yAbNmQ?3)S;|6G z?}`Ui>w0qd#Uhm9r?4jKL&T$fkUIx*OpHo`f+-cG+`15htS6(}l+2{~>> z)N1ClVp1~jJ-3DYXXFP>O-=A%a}(WtZVC=JvgDU)8;z*VggO2_IN@WtS<~-T&$slhs z{7m?W{S~^*xuw%#-=aF2?4v@uEC|jpk>(G~Gw0hEJf$mSYKd&bEgEUXlI)esfPPH^ z_h4P}YV(OARCpACE<<`!g1M@w?_-s-wv7MJfEt_95H_|F;#b`29 z(tQ}tpVES)>3yj8A`bcQ#bKXwJH5242}(QG(u(Wh=>F~+8CDWS=jUeF!1am-=52tD zZb@X$I#(!3jli2VhhX~8P&V|3A{xn;q4b}07@Q1fIxY*D}pKMgZHt_&b zw{#*e)}sK!60XCqL#CkhCJPKW=zw5SJ}c|X^>dTU+1QOA@wJi|hE^#-riLRN-Z&Y_ zz&Sj$i$I-x5?t+7BXr|tGV#tCW{wvHu`$4L{=O+J#NIGYb5FN$YNNnqezYCrs4eehA1EANyp&^ z3Dx?1UndCk7AaeB!FVR=kVmgEWDb3kovV)u;!(u#Bz@f z)_yHyyyXvKmw_i1Cv#`UhH>&ot&(Q^_T`v$>F|1SB0gED2*IVLFgy@SpItD=#+`nc zyw@M@G>U;j*8$LfAAp}H|D(qiHc^KpIcVED!|YE#=M7U>$t?0Uq*FXk5U0o>+*?-) z?^9;uq)VRk{jOh7xp+H{v}Tx1%D4zyGfE)OOdQU*Mq~GvDSY9V1z;w(13$Z7NB7o= zJkbyVzMrm8ZFOoh8rS!73u_FDntV7CFaq;Gi|{6j|_iV<97V< zUKyJ_C`7I@!#B6n%`Q($C2cY9;Ca(o3}~vwBQr!W(|jWD+L4cBfAo4rwuDDiMD3C9 z9>@80b)n1S2KX#`L%MUbSg(qBbQyg`e{-I5M>SKv#-g76L{@)2HZL$(dl+D)qGuwt0$jl*WWq}k@8NoZS^0@$UH?4EjJRSpp7%8 zZKm^sy->3v8$10B=;A6(+_W|Wvi?0ljb0lRuu{UQ``S>Kc9WW_dHi!fl`vnen5@_p z3)>VaHgu)YYR7CE+?WeCRaIb??~PXkx1g4>8a|&lj~|$Ei1;*1fu}k*FWCY(L0*_= zFH($)r(Zdx607)!l;4*@-w%6` zzI$8g_Zy4AY|9OlxMq(M4S%sete2FQa#_l6MnLsX( zPW}PBx3~d1p37k0V=a~-{cxIX@~ zzlT$6x}nT14G&jRT47mDO#*(Cc_HnXe(W(lcWQ)ewm;6sNBUD~6H^jTBH)M{*QI@}%0I`>;147<{6yqlcvf^eEpYQcu$H z#_}^5Bcw?0@BRo6(H?}XV$m{p9VmMV^J8KTkzEs}u{zSLAlonzZa!7wP0lyqzoId? zEG`C2w;zCXRY$Npq|DDh+W=RN+tKeM0z60!XKmJq!fLUDV6yQhb?&eEm-8oBUqRo-d`zphg82_3*^X-NTh6lsO1>sTx_uqSzqSXd z85#KS&|TaYB#+%SvvHP2EN&|tW=}ryG?STm6hAEZ%Kif}6pDX_|7LkqyBs)*no5-< z?$r|9Z7YgxCoS;7=0dz&A&LUgQ}`aFh5Q|VjN++fR43yUlw3PS+V;!R1$*nU%j_hX zHoDPlzKa-NGA$GwKDdL;<3wn9TE%YfsDDePtk>?3w0VCgShilL z8dJ(>?NDp=^KTEKe#{OU$UJh%rIOw&3!$r*3*yB=Va3Zl`Cyk@o$mpwX9$L0=p3RnIFDvNQqL z-&2D-Q~Sx3RkAdc^U=M~T8Jv^0)c7Yh$0rOKV`!myz%N16R7h5rmC4? zP2N%{vE2>3>LPYe;+Srm|yzf2({QL{?z1B|5JtBieUb6I0h7Xj+ z{$}@YREDpG-83>XigUb|(ux(apdjuKi54n2H@^>kK0Bkc<{%mCE5S9r^3+{ofb{nA zxIXn7T&8VIH%&P~H{B|Rnw>t7)iW2ae*MOVv`>Qi99!%vu0*lj!f0&qjb6C$k{Stx zvMIK4q^aN>CS3ai-|oo5sGR|nT%AI69lELRU1vDcU5}yt;=BsZZxsQp(A4;fR2eQt z<@ArZu>LD6(0#@%*RhMW{?UWKETy2p&KX}OXOZG0F-(#agLJ>WAYQ$P+_V`W?IZG# zuFGZC+O%LSR1n+rS<)q~&U^dn6JBX6fz!ID>CPiB@QlYLVykxqUzv`A#8HmfR5%a% zAFU$?i*x93yS|x>**a9WR)N+jV!XxYFQHkT1epA{20yM)t#Mgz47;zMhS8JWWS-8$ zns+gB{8wC7f5BcU94~YRp~&TA-|2}y@(7)h<_6UhR3UDM z2J9c43a74JpbnQUIcBaL97wT&j!|0 zIewn<-p|4>QQ2&FmIk!=*Wtfwo6+yyCff1$BotN1gY8cSFMc#+XDgPX(}$Tb{YeJe zS$w6>ZXbtN6MmDY!wuwMoDi7q5#^0Gy@3N|Z()<&6iAY9g^?7F8FDij%Qs!Yjq%Z7 zn_fdN_#R_p4ZCnmaxQf!>%ghuZFu^75txc4fq#ZjBw%qtBsV zwvxm&e`c)?tHGYtsyt0MZ%h|Aq?=;I`A_Qpq21?~WKlQ|AFc~S{c0X|#75Fkw{s|= za)OmO;X%CIT8ZyrF%Tm+Y1o}rWGrC`7Vp(TLC(FazzgT*QF}3De+{0G<~&p7lQ{;{ zOx~TA<+wR7gxV-}Su!&TZmH35EEIl|I~KD5F3 z1r?D=URhKFBog42K9dUXEuA^T_*Uc#^30inG0cSiv ziZ|;^plY))6!)jYkx(~m-xyA}vp?wD<{_MQ(w-FAy*B%_=?4m4Jc5gJ49VTw|Hu=y zYTCTZm^E%_2hWIRw&`RP_~mWJNqwhKE6J4bZPnoU;Wb3Cp%KapDqySe2zluFkWpN_ zozO!!OoyCd7_)!flP8?$bL_9G_TN>@HJ=m4^ zCJ~DZJ>*h_Jg@vp5O($nVScL+PPkeCO`h$HZfrJ~_MB%IZk+@EMcg^5)E-UvW8_y+ z0{$6gnd(C(G%4mQx5Ks zz~dgB%*#4)nteVG^J-3W6fc;C^B!zK=LI2n>GDR{zGfr%@NQARIF5huqp5c}E$N}oBQ z`dbY+Jn1Zb=UR&Y{kqI#>2JsRHyZHcKh6`dWtd$goJ@w5*Aca=namQ2Sa{Hs1iI%q z4p~PU)IY1ha5b)rn*Wb6wQeAZ`iH8N=F_u zm*pS9__G3%7_|qZkLThK=SFbqH-WKAU4FRHbl%L(%{2V`8;IEX9roVOqtC3?Qu~CN zMCwsBPB!7=)SsJBta?4+_Z7j#M=ju8)&hNNUQ_#;tEkPd!joc=u;ze06bdzAS)nO> z(5|Cr>!m?vcNF%{e2MFOyxBmmSKR;ZA(Xp!klX|*T-+5yGeo5z=TtPUO1HwC=81IC znsoT^{u?p;#W~5>u4Ei;J|;m;BG`B2B8>j+#8MYNZQfc&1Q#^poSVyN{LEx#w0Aad z7C#6wpYFk$f|Y zPA`troVgt$u1tobHH$D=>@+F}|Dke4X`pl<1}?Qu1icm^*lK+hE(~v=1}**MaBvND zZ>gsft(QVV>uGquaXtBTF%07>C2{)oNhF*(PFn9U5T^4Vvtr5@S};$Qx1jVmcvUWf zi>M8{@5ia{uD4jJzm~S$-(i~4T~ia%5d(upHRv_^g1qrl!r^=8I0pPeQsVFzy1%_) zM%&MTvc^Yx%h?ys6cxhFiTm+mh7QV4yG%wc%u)LJU23_5^J*Di!qzK_tdpQLshMDd zcD0Rc%&#hRy%c~qGdE+MZzlcvQJ&+1dy%3~k@zju3hveYpo5(s!JFUB4qbaslr`@& zf|ov0X2(Wc4$Dz?p8*Uzr<*O&Y-f*$_|u1hq4ZH;AfCw{Cw&p3Jo(qb5TEuA{X=z_ z+O=`~xlMsw8woouUo?CYWOy%pN*eMA@VKCu@Mhe3JiEtq&`C$OiN!r0oWu*iD} zKlt8#nwn&Ym0=el>)2FGjTPdpbFHB=4?OYe_e!`dx0oESO(I$6?T zZ+B4%o%Zn?C zboHsjCX;fKQ~ZlAoFGQO8%&{HS3^Pi#s+*{-H)O z>P<44|4wAWydCq=ujVRMSuB8M6_-ej$w??t0B|zzhjodkSh4bK@Zqw=9TA^!R_+)` zy$GcH(v|7&JuYmX&zooh`zX z5uMcnRBoo}jtgMT({aML&IFeYZA?ar9ysn?fXQb0SQ%?gMtYZ%1GlvC z!MT5^_InmDkjv#S)wxA>SKbBBv>N<%uA0O+gw%%Y%z%P{b}Bp8iJuocz)g`iD8+G$ z-Uly*`CCpwn?@3O@TZXuEB(c*hkI$~F@L-|A&-7j@WtSBB6#;x8|0QM^Cuc}JJEzm z5a4s0p0$m|gDWoL&@^LWpc6}e%(sFDj`QR@`8kdLLYWCEO>8pHm6d;ckQy&OhsPzi zkPP=D#45X*nHcQ{o?`PMiuV?);V_b(P;egXp?gZBNr-`f=d=V5!?9;~jhz;Xp!-gDwX)H*}iggsJPPW5oHQF!<&4GlEf~=t5k;$2=M~ zS2Tfm!XB9FHl1%jZicEa%o!1NLMEwQLak1H6gy%>v&SbusPkO>Qu3~Lc)k%j-W?$? ztBcuKu{Yd%>J8lx7RPbl1<_AZ@^#xzN38pKPirVF#hFk!DWM60L5)t?=( zqSLYi>6*pr+Wn+lJMk2nkKRg z2NGmK^jBA{M}IaMRZxZ6i9w-w-;od-d-dJ@gqDoKq@6X|s2 z+2uKe2!hq-g3ovkLUW{cpd3xoE3k_=iN!0i1mS=Xb&$V_p8 z=%zUsdTa`v+B^u~qmJU3SRq`QX;&MXCIO976KVVF5yHPN0mdEgY4?HIm~#FY&Ptzv zUZub3LGxPHWK$rP+3%?Nv->RjKpB}$OR~Vj>SXQfl5f zE*U6b!qE@7KTn?>ysE(Ke6|NdS{111-bKvLSLIOModm(lJ@7)#AjKIj@ZUNyI$&=O z&u)gm?7#O=V{$P)V-`s|7s^9cxgklFT?)T=(ID+rMY9Vy#;?>5`eT|OUG3jOS~n$= zX1V3iUffF7Efk@c90%prYw_-`D!4cp2MZ4ErQ2QGP($_vn8|X!dbxV)_{xSFh+jvC z2jT3!Sp%%SCdVFSJva`d6Bhre0>|~O_+57%f44{y#y=<};oA>GbvAbvSvvwoE*0d? z-#(@+;{;tS_K9rQmxr_IqWD&CGh?jKi`Qq{voqcQ!IR7e;8#{aiKQIMT{wd$UuYx0 zY#By-29ot|n{b-_W4!XB4}Nkv{LMm*@MC@z23_U4)b}#b@FbEwEqOaH6^BI=e7H!PN0qs+%(27)`777 zSRlIm>!r8nUxaaQJ7&_K0uX()wKh_H3jgeAGHrZ)42=0B^xygzn0aF&H|LVU_52So z#LWutN^tC7lYA^F%E2{KvFKoMlNhd^&J*3*0>vuR9S4qe z`MU}yZHdMe9kH0VE*PC_Lt&4K81F&FLi(To13DOCha0l9>H4^CXx%bMrgE8tt5+p3 zd~yM97h1#a{ZvSgRI0*sv$xD?!)9;}ehAw?SwYW}NyK+&AvY8HMtgcr(^B;wTBp1N zba5HPt@eeGv<}crsD$pPbNOmUkIAK#(TtTy5mirl1yPHTEV~v@*N8mAz>*~(TQfj3 zQ{;G6v;L8mj4JvXyRk0r6wawyRjV_Y#lofYux#O8@}W2e3-hZuHu_4kq!Brmy)Ir( zc?%_h<7C+>fb4r>JV&V_hHlWtuG``8 zHsRr`TaeG~Q}niGqil>UUTT^FF2Y=fJJXK6xA_s7-LMio%N6lY?|IzxXD@wZ*N9h| z*0b8>f_NDYkh^Lg_&O++NE{9$pXOYFA6dqvYWD%oak`WyT(aaDs^5ksS={VNauFSS z)Br zQzXea=ZE`aVn7aQIKgSRm6)pGf%gYIxie!4JwEL<>BO~o@Us=LlI29hPLB8TRw-7z zsiXRn=fl!d>v6iG9W+(kU{{GQ!;#F#B;`~jbqh&mqa8Eo-M_M=^S@`c0@_U+&wDGb zu6$_5>&>CQfB85&a01R!3WpPW(`pS=s>rJatKqc9Sujaa$B~j7q>Afg7q=zS+2b;> zVYM_bMLieh6+}Y2ur+ur;O1Byxx=|;C2{SuBK%GF=|8JeQ1goe6h0E+&H3{Y*Oqb| z&$L4Hbm$=OmM4H>qc=D{t%bK5PM9%29FjxyxcnE3%7qMuZJvX<2Pea=BS|#4PMV&0 zYJ*-a=HIwAWUNgXQ%M5DGTaGOf zM(FxNmnWOtM@40)U@Rj5JJtS}RZH4{#R^9tvq#u9znnolWh!c)P{M;xzcG3TWl><@ zCJCUkVYWPXu3dA6_!jtK%gjX({%#_E;ktRzb;%^I^d-3|G=bz=cwuZe=b{%ngOxL0 z;Oj0qSmJUR*F23ON)-a&xZ--Yhi$X4i7K*CURHhpcHIGnE(Tj&yL-70?Vcp?69-Kl!RYR^?zA7$q)7sp>?s zBvg<;O+yN&Kggu{=g-rpb=z?J)fxPqxj#tH^Z87_=6UAPZ6{Ef(vEMYi1G~{-Yv+?&q3YkC&e@8`IydefQZ@^QF(?_0*?pc{=|%bgED1w+xCEcWZ)`Ov{- zV-eh_xXPiq_vOM zEiVEKkR_}1-Kcqm4tQQ!iha7_RBhLL(wth#e)Y}5bZO3gRd@)jR;knEQEmPKHXNqJ zHlwg1&H)l)A&(RG*rF1DIvzas5iP!b zq(xS5=#-Xg(8KY9(?z)allSy1h{e$0K zx;rluw1qB_j?G>`=8N-2&RhWhBjUXOp1YCyqYaq5dMaON{c+}l-#xq%6pF*!O7Kgt z4yhdQLHjkwp+VG!zBc2G1>BzLvGfzNZ_fEOpxm6ClJ_wN79R-fzL_%{!>?pOeI| zVFI;VD1xVZRMEQE3#$zl!R@~%=`%GUo|l9Q@9d{>R`euG44TToXhsS>e?$l!rQ}F< zeHNo~GZcP^SHe=uskl~ZDZ9dFKkgsuMoHtT5FK3w=lruE*l;Q{ENcso0#(SF zaSf<$`$W$f+(VwtA*vPQ3N6{^sZ7g0T)F59WlCm~yYH*W$m@pcnzJ=IH}6_--~D+_CN z*2|FE@&91OQ$9TNiGZ`-&(PsXCVo(JV|O>q1=}ei{2;cL2`!tzQ=cbJ4o4g#C-a3N zBu5a(0w&P=B7ad}sVa`_H6=mwigD(HeyEzDhmkpNsQvF`s&sxKMyDv?@9o;`^hpWm z7q9?EH`Y_bUqZC!&{x`FSqTM>@6C3^braV)JK+1gTnzkYi#bkiq_TwL#L;80dH6W4 z`r<;ZIL>!WY`K}2{R*<}#CYvvw_x~`b{Jc44bc32BS_E^=ileLeirs>%w+FuDDjj5 z1>>8rr6~|TNu457&ifFhJ?5l!=6t*#S3`$aeWp843(!mIB3x!6i7xvi#rZ6b;Oa$> zu)=yWd}+l7NhUi>Xz6YyPe65VT@$4uKkftP+~GTa{2 z!#H;pyj8$45|v+K+3Z$EJN*O(Tz5gWw~lnK>Ny-x(L~8-FPZaSxLoz07^3Evgj+bL zVYFf_wg2FNZCe<8rdUEI=5oBE*Re46D+O`UL#nvWpHe?ne%y<0x+c*K2Ravl@nARD zd3)m0&f_31dJiJ}j6ta`jU>wmV@1=MgAWXbP~aFNT69*7cwg!X9G&rXD&^}7vg_!i{a zKnk;RycvX|Rq2EpZy0efWj=Pw(t88v(Q9KC>cK)FhDPbQz$HR9!`Gr##!wHWP7qF?kxeFA(9LRYzXCjUCundbOiKeU%Qr!w)Fn2avuFwJ!aFri z-0nJ=s=6!$WfNmEnwC#{%(GyB&{5hL^@nuXk+k`Xvk{KKl?2rAeqQ@dlpDavV3ac98gc9z)u=ypfF*?6!7*F-ykacu9A>VMUXDcgUL(=D%8}IM`wGPp$~iD zs75xdu#AS6eTF#a@I&IAdm7{JKE}R|xv=qT9u04k;GNhRiqg*NJfV*!@ZM$s5+aYm zV-saK{<|M~L+U9YST;_85 zJK1dN;%&}XJ)VQ+r!z@lY&(u$_e+3c(R}>%>Mr^IX%zm;n1P=? zHo)gI1$6wkHJ6bThlIy&^x&1hWU1YIIL8guX6882&;Nds@q_kc`pXFN;QSdpu{Ri5 zr8W2$PD1t*8;|`*oK-y#JR>g7!@133LCa@S}q4=srQJ+)+U~JWEjO;Z1yV zF^Z-w)PNF`r=)CS8j0VfM2}1PL!N~govpnVpH`p4n$<&e@3vHocXvU_gzGqjk#J-8 zX4Kpu%H1Oz2Q;(>AKi$CEzDKC8OmMJPTz9T)dLo1MQxN zl$#~gn`qWfG2j?Ynmd8cQGt^!m+-EI16;fCnoaXp?PMXYk`Tt6=&3FpPMTPxm*d629<=sr!q3_&oOm z^SI0&_6h2t(`E+yRQD3U)rV`_E+)eY{6n|-Yr`tRLFRgHA#|%+u>O7-% zWgU`$As1*{vKG$R;SY=4uG9JaN#OMK8Dz(uhO9Pa-iNec)Yf~A*E=qfJaQUT#ZGXp z-MRdIGXIgu9uH~{`ME*XqjJpY;Bq8o)hM?&6E#%T`GVL3br)vxmn&_8uC@B~3g_l? zvn+u2CxT#LB?Ft6&EmzbE&^@yMZ7-MWQ>&U$Na%OMp`3`d{j6}7Vx#e1Hwt2kpb<$ zF9zmW3+Tm~d9c+g3ktb&(5DxvwB_eKuzwkfF-JO}mkHsn#}ElxcM`+45Y(R$L0>fN zh08HEu*UQ;NN$)!jmjg?;JcXFcy1BLy-tHGOZMS`58ANgMJQaK;)v~wqA|^V7&i^B zVhXB)h~*K=1bxsWb%|;8n)oL?G*uHFG3LogCgCIEq#eqfqgo19sS7LKm-h zWNh6jFc}rbEY7L)Woj^V1@wW!i!h8fm4fkEvry^w1PBlgW`F2f!p~KO=*G>83dCl^ z0o~Q?p6Xll8^gy(S)q*Z_PLO>-WlHA&mmsFbeN!?QA{r3!wKC#*gY(RUsQErajXKg z=Uv1FQ^U#pVjt*S+)Fmu=7H9D8{_GD7G6)2z-bo$XsoO<_*K-Bn&w3KS9TZVBWCdB zvt+?@?Nj6k&{!&*f-8=`r=nVElrL}`pJ!)-YPTHW?iieF?Tk{#j!~%^K2)Eu#SiP^ z@$a-*ymh~uxa&Dg6Ab3kaVJeQ6HFlnAH8d=yE@r+j#J}zx{|CusKi$n=3~XtHexfj z7M3?5zL(8`@5g*mMJxy%tF-aRjzG-YT+7V<-3P)GbE)^6dzjO24NGE9v70SSz)oR3 z+HtHh(E%e=crAeG3ykpS>t$q@%?B)XzJtzV1N5BR0QKu|AzN$(`Rq~7opsZZ>;2rP zEydaJciUCSFc;>J?ILwqG&^>Um%zqyIn|0u%mt!bb+c>$?-W6B1{rW1>{4cPlVp1#h0LF|=g zK^6CWPY?dYtZ-^$iQXLNj!_O^R!U>AX7GyLo1RIfR~z7nWdoHDHo!xRhQYyU8minm3Xi53!A|+RbbfjecKO7yJwnNF zSzQCR9L<6l(-Uw%$_r0@imS~XsfUKk|1b$m!wPaAQ=J^LfX@M%Tj-U>^X_lDzT6+-Nj%yQFe)bo)!f1tpaqN*$6B_dB z1Ksj_4|8_@DEaTyFodfsO<(-#l!H zI|Wk*qj5%!Ie0CdPSPmVfQU_m6J^?FN z?kbgh%su2m zt}<^?zztL|M~;Ee44bqZ$bM&akgIDU?VGmK+5&S-$gW}kYRAKwgU9H_=;`?4&nkTW zs2xq$yWx7FT<&)c;#Ctp#^t3T>Wd}ft5Ck4rY_qDqK8xb1PyIgt(RSE*s$RPue!N<5t+1i1&Va$G|- zRK8>j<-Ubf>uo&g^qC2X2mTP@pWjHIu{|ER3P;4MpIBpDM2t zok-1fDgIG)#DAp$H0ZP`?pZN~H=!*J17{baR}gTsN-1PPg>O3TG`Tdh|$NVEWS?(m8ku;7`lakG*hNaa?SKcC%&qtZLH(bIw3%g-=sVl^{ z-=kB5is=&9zeFKRkH25&0X>^gMTb9(kp2w|XT5o&9^)0+XX*JOyp;xc*>Vd zdeq1io*5!3LT0ENd5$~(X!3{T>(Pn!nYoCS(M?8bQhO?t4hfbLe9Lj?Fu=rwx<&R5?9iyB_ii??f0iE}2|S$N{GVvmeoYM_p;AP8t}y zP6W^CDzt3+VmL*6*xIgj5D)yYV zK1$esM&Vgyu#gDyS0)?-J-blQP1}JzZkbd|Y&Q+uDL`dUJ8|!BTkMk!qKCUikY{d! z>m~b%$-@bxi!To*j^X$?e-|CkjRv{>9>n&NFh5XsnAmtr<7&`Hd~_9O81BMFT_2bV z{V;Yz`EF?aCe3I2r|?HTR3PB@L%f*oMoo{^!Ez5BRJ{2U#+j91*%m|7c5lNYd@nLS zaWXpgO~WNaQgC5KHn|yI2Vr0C)0;2s=x1yr)L}(~_#x-O7%S6=*TXh0nPZFRd$@ghgg%oVM&*1dJ7PB88^=QZ7Y^+`*%db=P z!mT=?AfYn{!>iZuBAcJVjOV8Gn${gc^o)6xvX`l)0aA|>?^xFxCd4m98f~a3o}X3; z148Od;Ho)jQ~QW?gq9Oix!EXpS`yd4sbyY%oI{lF-+|7KgJ>W-1E=-fAYPX52n`&@ zj6X-orB__nd9E!SI%1DAesc%fwaVne*)+1!Wd%0}s-Vg%_n}?uTvXd~4K*g-f%%#D zn16N+X#JhL&yO|Yc8Tqn$5&vj_+i+2D3-$55HZmo#6ZbUrU^#tUR(-D|wWQ{Z)TGxpJFE8H5GMNNjZabT7vmY8Oe zlxs?Kz-owE+_;6>szF#TIl$-`iW2wJ9Gj`gg^o&a=hhi_$Ti14+L;{z>HVF=zVRe% zDsQ6de@?Q~cC1HFqb+dV?JX10Z9oIJoPjOd2l3&la2Q?VfYo|oOy%0oDDY_x`Fq3y zSG`R|os8?Sd(Jg<+4qbJNW3BcHT@t_|1P7b#ck@m`301G9H3s02Viz=COMlX1ZuA( z`I~xQ(w)-zP`|s2%Z07R1!Ax1&4rWTO~3)nnjs=;)@Zz8$+%Q%NhJV-G+)+Oa!MZ z$04k{h*o_1NUO#jvF?2|^;I#(DGSqUbQ4a{e4mfdq8vvZM;~xZT6t`^M(CW(5H2^t zLG8lM;#-@38tqs|{%7dCyUd&_F5Ko2(=w z3MrAItaD#a2}P8U7KM_gN=rlU`P&~pAD-u&`@XK<@B8g7$R+lY_2gEgARg9AM(4!W zBq>OdAL4$N%droeFIuo2wjP*I8&5jpx6`MfX0O2Q`$i5_o#~NtDx?5OsC2s~^^Z!YLw^ZPA?NFSnagNL!d`hUU4L-J5O6^Cgz$^3$e#-i1 z{M^EGK1Lr+YoqJ$w@}H7 zRw!yvLdSqT+~;AONWJ4a6{f$*E&q#*^uOEWbGs7e21Ik-@*gxh+MAZ-pN11Zv}pU< zJM27haS+Yz2F6$#ceu)v|8_Q!_(et3Em#Vb!ovY?-lB$CRS-W^jPL9-h|Cu?IQnLo z%olUR^(7Z@ar$c1yd4QcHfLeOLS?+KB*06NaH0!2Mwg)8ox0|-t+cvsAGFLo3+>BN zz)^Xgh0|CeNjX$QOooJc!lkS6+>%W8=CBv`rMt18=@8X#UIfp$nW0MN2)LNf1R2+Q z+&E&1&u^)suX76y>XgH~eTz`vTpZhz5^>TWSEizRGu0WYWgaY^1Q%|J;Lk@VsG;3n zG>M(cPyPFuT~F)qqSaBjXJbPIYwJm|!&#d2tqk2hhr)4wA(8A!#0af;NV4VJWjt@F z;cG)Aea{}yiUM~%4VX6ZEzW^K5zteJ;>JC-hgci9ZeT=OtN^S&+oWgiGPn z5P~vodCb+B%J{eTFWSU#T@{aRcCt|p-n91wGZhDjbg+fZzx9dGfmN`x`V3V(7K73q zTVWMH0{$|^=n{OMzEp2w{D0qrb(4=ny~$GW(3^){l~dTU85UGOaSAHg>EH{^k1#kt zi`rkZf%>2e<`oLUnUBpnlQn69eCKT z=P7i{U`mHPUuA0nJQdcbt27m0lSmHMHR|)4*W^K9gaA+cR4&S9oI#D^UhtbJ#&4Q> zhopKeg3EpDurZ~K-ErbR7}rk2FJU_&c9Rg#yU$MtBBAU$-C zJC9E8f-$!SvP-=XCwu>f{L8!8+L-Bd=I?npYsXc5`hb!@GFr%U<3ez1 z!#HCf5ugm06&j5^sts`wB zeAd2XK33nW#@kD-WBLA4un@|CX^-zR4-GWoAor z5^|u+o7~WOjS4Xg>t%DV>GLxW=-}+3%P8!32}F6$t$``w{XuAJy?XeC{rMR5wZWA+I+1L21I>4h7{5Ugc{-5X*c$oV+O28pBmmZ`i( zWpjG=P6m2ZHo(R|DWv&YJbeBW1#J!i5E;z%P34e2>-5J(!JVArNCyXZeSz5#mM}G& z;+WPxGW%LP{lR%6PQ`HE!k!Tt9C{1W-!6pfKD+3d7fEP(?H0tpGpEPie4!g#%1G^x zIatr*+>OgZXr)#ZhMX_Q{d247npaQhuQhgX{oY(+HPZ&1v=Zp)6Qy8VZ$MtS43hl& zE_h1$HL(kA#?TE{=sf+6Xq(pxyS#Jg{fS43tD+@%9aKPxLmzQ3_dJ|X)rWQ5tm&hl z7zjHa*ez((nl*sXOO5C3rI_^RvRXSFz3%X;A8EF*L&+77>Vq;PEb6Xg9z9f%lg zg7W@7VCD4~nqM8|oO^%hD~?0a>|n@F5R0PqW=g!?qvAyIVLS%kucYg*9YuwOc_?wN zhzfN((TCifIcyq*2OX+dmD`D2i;>98c#NO+?WT-`DJJdKq2uY#=$6D87SGOoBJvA! z@X~EVPKBOFZYljFO9aBG`oX0*YpjyC@s7Z4vk5#Evq|K#N(G6(k_1v)-cZ$IE8Ktk zBFvJ`Vu~DZ;JlPNw&==PtQ>TsFBh&QeGPu((B;jea8hHaT#mnJ+7-{>X7YNrqsmFlx#CBvz<^?MT9HiO>qvmho}^U(8%y~U!g_f-6< zJ;$-wOl8N)aC2%#{`ngIM7ge7l)1sP4 z$`LV4FcHOHWmz!yK@l!ou@n{v^|B>1UlL906R@{>26bMnjk8)*G2SBpG|nsmBjp6x z%^rZ52MuKWLI|}z{};v-=F;9iO`gl$H1?|VMv(urh3?MH#E~U7Fr{W8&HX0|$6*Fq zZW9D^)w#G_QW0D|+Q7$PH8>WT;L7wHRM5W!jtvN+h@_6iSCvHiY*-GZu0(_ATr;BO zS85^G8b@Y*<$3~7<*=!T@O6#N@j$T_PFjA3EOx8_{*h;>qiam1J=3Y`OdTHoq%i-= zGdZ+3l%UQ{Mz~O0mZ6Hta7T_sB4lGNXw!8rs*tmsLek+KPqWwa|Li20XaxDp8yE z8&3+nCp+@&xO_sD6z7FpGiLTyEC4dKT`51g1s)3r;O+v)mcv*YGRm zdR0G!C#S%IH@hs%%Q{JrOgsddS)%GKRnipc0M*_lq(O5v6#Ms5v9ot+zdJXZwv>fk z9k~#(_6A=4v=o_^e!}mnKtpa{kZ9M4SNBTs%2YH#|MzCBFFr~tMc>hT*+($)Y7KE( zAA`?LII!1iwOpimN=@f#69ajMuK>7Dp3o{ z#Kw)QVE!s)dh1OR?oZuE)aOTH{L?0AknaQDY%ZViu!kI*D1q;am%_U^isx7xcyV2t zx_3K~{XYxfkzWx8?tMd+*r(yO&>8%Q;m@qo>0Y*fw$U#n{GOr7Lxg5Qph2e5%#IoB zAwq5i+i5Nj_cKn?rbAQc4Ec7dSd@!t!MEY}%P@>@dVr-d?%2CK0V5JW(5sy{@xJD6 zV)S`FPgZLSv!ve#dM0svq6073uuN+*%k>4sCpH5U(F6g9+@NUFOWd?|K0WHFi7V1t zh;D}pPkQyU`tv*~u;e=L-&!SkC#g6t4i!PW&x+jsip$c@;PwLR9bmg@HV;=k=aT`c2Declv&m zYl){x;>~d9z6|qss|HG3eMK&8G$A-JkzW}c2B26-cjlMFwdhDjwdXUlN$3}2y3U-Y z+sT6@*CUFa@ExKL5&ZsKhKU~^!K+!_?Dx8`@l+_l1^&dhW{)r``T%Q!AEdK})4}X}qs4&mWU^c_7CPh|>F(7hAv)g} z>UvG-H6=Ar)H6p-%@Xj`{X`kXAFP4SZ(M0tz#Q4=jR!3BF|S*ZV+$??`z>}j_9qd) zKOL;MaVJnPNtQj>+>H9Wck6g;kL!F7Uk09wHrFkbfV)i%q$@)L)6H*@J@I^EYoH5_j*H;h&JI|% zVJ-GCUy12)D-eyH0?XD!}fGQY_IO6(?bJE=X5KY`tdnYJ}pfbso!F&rticq zh$7XsuSoJ;6X%?^c?d{h5kc&5ocW5bI~xVaN0y2{kfjQZA+=g0iT68Akj)5W4Ff9hfS$aw{<7T z?s^IO=MwN|hX+hQateght4Oeu5RbaPA~Rd3@fSuU!Qrqr&O1I4UC)a`_G4MzydR5j z>5e!yr}`3f1bsmnE@L6gb;I^He#1@$wfe1hgV^I^Ts}6^56*nsMOe?fu<&9bL~gJ_ zy_t8}QRP5-AommYnBRk>us5{UDi&JKw9+-VgW;{scdBwA2|Ui7BZWP4K`wFuj0vA6 z8JhCA(t8a`EEngcueb@HC!Ztkp}E}epNh!_c4S)nUA%wU5@-IWO3iep(ykhDlCD>d z9&$^VzXiFB==u;M;R^6GLLNikQFPulL>g!fdDW9fBs;Ey@_T1eptJ&p=nkf|e~hW! zuY_AwC$be?t4S`oK<{k&^Tc|r^rCI>O%sTHv7i2~o@Pb>KL z%tPbViR`U~ocH^d6P*9Ih(0kC;Hlr0gA}C98(`Ol<6t*46zr#6rbl}g;?K#a=?AAexackQB~Q~Tv%l;F z)ffm{I+rXzl#Xk(?_!l}TXFGJ zQ(``Es!JEiPHv}~9Qx2qh$YJf9noG?pWSz615BgcB)jw@W!@|TpD{tYXL}_X-0Vbk z_n*RmX>#nYZF7k5E(zY&`;&Pe)Fwe-<~c4?Hi+{5()_B2lX+eP;Y{0b4{=ECp$i_T zqf*d0*p%|#!q9A)xpH0zJ+2)KAD7HyKBm88Yj>A`aB3bflQ@3N)oY}|%M=4+gm_oQ z72(}EQGQm}a~gbA1$u9^v+L9%=ifPSWu7oCRGo zP($8p7m+op16aF99hVEa!we@o_CFmNav(wz;|v74-l|1gjy{;35)UsdRAxkrBcmcxW` zSBzMDfVTf?BwLJ6a`((I&?xOCc5;Rwv)7Uc+X+L&`BKOk<7RGf4Bfk)5&3Hr7VnB7 z&t14Y&yQQ6AmvY=PW{4|h5yDE`9dVg*#zX)Dl(Od`(ZG6FaAEb4=0*-k|{1Na9uPxz)w9#8um#u=UDctjZStLB4tV!yk9)U^sdSW9!6|Cde;ilF#;2C<1<9dX`T$@?o zq!^0B^7^=8QW#e1GtdlEp&_xCC~AHu|B}_o=hq8pLwOgSvt1S!j%eV91+gITej-?W zJOy2)^LS5Q?1du!FQWAP6p6fjjh-r|@astotW?_v0csVn<3uhxdhEbMH}zo4ypynN zk}63%kP6zc5dMyup|gW2iWM7x>2+y%$>aK|HwkGqHNo#V znRyibcP5b>H&-l);|6*;m6#Rp$UMzEWVX)b1@Y(!hq|$C_)Baqk$ky{n(!3RQ>~K< z>?tH+ae1hI;~o2y>l>_{`w~Sgedvtihsnib|Jb3w>2M%r7e;Sz!=MTKF@IJzaR~8+ z&8sp&q?ViC`%S`$eK91(YYxEvDvWVAr5DzE!tu-^^3{4Bsdq_*Z%^ZBMuac;)K=0h z5vI_*n-ag-vv67O0{kW%N$cDA*ov8S{z)rP+ARSWCT&O3Q%q|zPf*Y1vxFV6h8?A` za3u32e)Ibe4tbk`uZ}o1PUs;<{^jIJMG=Tby<}yko&u?C4P10m2JG$$^Dm^1k+@J3 z3-N)ks1((SH+_%b(2<99w`3+Y@Bd6kW76rnpEGdGs}7`}bu2F1GY1Spv&o}H?!80EkyDgw~&X^&S2u= zGx+S{g6 z$in0l-2F3~$Uc%~@um~azry9wx~XJZEhm=oJ-hSekwd`PsDrl1!(gwgI=8gMoWd#^so`;=jKWnnYNZr zc-=tnyJs>h#-hcc%jS z8+fqcYvs{rWh6XnlEm{X)fZ=b4YS70mUQ!$L=d%9WKPYUh=u%J_-EM&k-6kVG+&6I ziFp+#WDIm{-%0SL_4wuUiMZcvZ3{PC179_^O?|>$5$F`oEqZh#Cgw3!= z&k&Q+x%bI{J&t*B-cR#t-03+J{)2@iX^tw?|I@%fv)7PyE#7!=k-$5~I+l%P*C36XOZqQy_nL)o$` zs2tu2ZO3bIq|JtWPqyJ^DXplzV+DlWHiaf7A5iR#K*^;d#M#1yQR|RJ-UUrKHqim+ z95=^ns#0)$ED5(&T7t*)AMj<97rM>x#UceOsPbEa;;B;g)L0EF1!LfruZ;!y-pBFF zHsQsYDpVqBCNF={4l-l>H*t8snO?du0Lz-I;nj>>Qc=)AL9`-%8zRW1(h zEP=hJBI%|?FGxPEjMEPLfe~#cgF-dr$vSWRZK4a?6hv^9>I?elc`o#NzQ&IMaU8Q+ z2?w~We`!q+2(5nsDwlPrPh&pg+cAZ6+-QT|$#Q(X&Jom3h>@*xjgiz?ptMV_h01G1 zIR8i!mW27EW`H7JQ}8z%W3dD~gI>bF>~3mja1uWC8RFgbdtelDQGT61hFWG|dOn|O z*vj*#4US->+dkYV#E>VOKUzddpFpKKO#2q1jy=@hA0PFezGnHl+T<(Ue~Usd49F@Xlo7_9ErfC z%_p&PFP|>-A$aPH2>O0)0~2E@+-aqRd%i3~kE8=Y2P|RdxCZnm{vccG8iKoi z^uuND@7?u&5VnM##30o_1>Az|m8=px)$H&{ z5D8k-4c=y)e`>D=`fg6bVX@C_x>ztaC*EbOKIYON|GFSX;5Afbb7%9e4B94J3tfTU zn6t0}kAC17eaHM^aJ&oL&3&Qsofw>3*k@tzvxDo|{h=k+q9~SP4kc}x=(1Om#!h_+ zqcRVu?Cy8W!~5N2@-107VmZ!kc@j&j4m*Rr&29SgiakhY^b!A>BGOY9hi-WZxY;2D zi~iNsa*b?|JevVGm1feZg8}68_8xja$q?DTM)a2(pjq=bgGi7(yx%SeUnBM5(V-*~ zIQKXdk4)m&s9(uz(Z$&1vjlaIpT()ghrlJ?1hgBtnOyBvTA7hZl`3`ukMl2nSKJJB zE0jUy*Ey1#kbqoyfmr%UknpPr5vRf!cd^5eM8s5!!vR=wh8PVqJgJ>23D%xL$90G^qyD} z1|JGxpElQ$$C`i1jx(Rg-ove+G36V1`z)O988{3^naRjFZ>CR2Kf-dOTnNs$!J(b9 zyi0{s@N~BU$m#rqS@Lnz<^6R2u24I0R_nu`D>q=f%|YrgL(!Zr+k`5A`_U)6)}rc2 zI=4Hy3;r6@Kd}&oYaT~~L!TWu?*0#^-&I8aNopwRwGN(h`~I>PM|idN8+6^w z!xv?O|ZUPJl@|LS`Sr(bIWU16;%s4245K@9-b5^iBuGQnq@1uB)|CX#deF^JQMEFCG+p)D| z6%KtcgtUrsa<(EGVl-Nb@y~Lw^ZSmDUz@Qj{~D>jtxZO~-_a%aZ{TX`M>HeyapEc- zR%(ReK!pIF7WoDXrxt_5j_b5JyNtNmn85c*-q`rd8+0d>;UxPoVyC7BD;kH0YN`+~ z*Lj50Eomc5=chpAgB6&h?gr666QHf?3oR9m#OXcqAU?4UKJ3UKW5Q+VutEho3Pm_J zju8ZA>GGauzXazem*MlpTJmhZHe7BgprUSbkos%{yUVheyjK^jxt-&zG!xM0vUVZi z1!(GXmbwkzWXrcd0G`GJ^8Sedn%x%T&KG|fk$ZD-MO-gA=;%tFRd<4a~zs zp0I4N0&l)bBbV<_B5eLCOkJ3UL+2bwRCh0as%_>fZnpTxd^t+;AT+!yI^)sHZ7J8fuV~B$O;Rt z<9##?Z*EJYDx;T(dW|%`m_vyB9|!DBYQ)xC=Cx9`ad42C3mV<;kiSX|Y8yGn)s-mJ zO*jR!6S5HvlfW}T3t#oc!_?;YDD~zKtbT{&m5?{&ot+K8c1xfh{{))!ZGphqX1MNx z4CfNQKyqsjaeg5QGCFdcdDkHTuiR{D>JnZ0>BkbDQ>`X;I!Do)Iyo4~v4_N$oS^y^ zF7W2fb<7m*qygRYsMRk;{*~@Yxc%7&0 zY^vA6>izrbgfi1WM@f<92sF`Xw=6u{`wm^KCHdo45>WAZB7Urz3y->=!Fhpw5U7}g zzc-6=j2an^J9Yv(xbOJq3>#cvOhHk#l^%%Nf_;i}K;5YN!P<9C$NHc1fm))dgFcQ^8pTLdf z-K@%ac{FubB;hM>fc6~+O!m_yf}!=qYHc~zDtO~2Cwa2sS0DYbq8?J5icrKtmTFes zBgzT8aFSUY$4@Y)J&AwlC;gM~p34!j{^4Z1l`4jeK0@j>m48OMl+>kJn`Il$glSVN z%|@c~VWW;Ft}W%*MZ=Hq(2GvuMZM5woi7UX#FLlWgZNk|52Dp6%n8*4FT=mIu$bcp zpVQ}Y8@Hh_tRaH|pzuj0^Zf2ot9*2u%vM|m|5o47qmj0rQCE<-)ZvFi0XW1tL3vu7s z3v}OlH&CxCrbCOWS-iah`5|}VlF=o0S%M2DZ7qcHd@fhY<(kiw{-&v3H_6A291?GI z2DgN7f(7lSjN?)-Y|=I(1H-NK%eKd~_{u0LlbFbzG5>@6_rmC1oDF|x)&k>b1czs| zQ;CY_r2mK_Eh=7&pL<5}_@gD{eYqHKF#QIcn^6l->N?PXd!9)Y&d1InH}s_rXkpku zB^Im#8LK2x^p=~E`A_DLy9mMe+&ZRptp-@Ra=X!%V)C2IM+NQXddrtbiE)V+rkwJ# zuu<}Y?`0Rs+K&g|w_z%k$N|29>>2nYl7SbK!||Sm5u8}}mrPZEOL=Y&xbEQ{*k=5_ zzGyn<>~;0SJMJ-%@oXW@4{*F-7qX_L1>$vQ(!xkhObY17 zJ}Ft0nG%MZV^o>#YqgWNPhqP#EBAyDm4P`dtJ>U9`{j??#UYu|w;A=#K z^XB2o3%^L)jmdB#cpj>JwneQp&av=C4_e*RxViUC^z+z=ma)glLxo)IkNd=Np0(h| z>TqVtv;r8}B79lgzvrL>~)h;2&>!bLGAA*hj?bC+h`J z*Z%wDi$**Bu&Ep8-cEofhYVO}?*i>+StzdM1#j;NK*hU!IBPA%@wC-2KHMDBuUq1x z6UsaqTu3a_o7tZ`f0Ir-E~6sc3Lb)+VBNKuR55xIdbI?g*C>`A46+8h zP2=@i@wYI~$cW6)nuPl&W^pd&<4~t^6uXktLCAap=Got5Gu$Tvdz(VpbSYNEf^a$N zc6OlbGBmt1;EC9E<3O1f>N;&B(M#L0y<`&qRVLT^HW5ULmJ$#s;P_)62AF2av6rV_ z1?}=q^6|4D#F=?P-EBv5(Kn4wTt~5%fx1(hHSR%}{TZQwd%m*6+XT)gn@P4Qn&n4U3U)4LlG$8VI+SvZD z4&)-%fWuJ{xGJz0C&+~mHTCP*X)r)?eJ`Tm0ZG1zxE^YHJc5Nf;TVu(U=g?V3GFXm zL{3gf01xRiC=vdTb000in{$V#z*GTx__{C3zY@pJC^XolCJ~8!Ne$`~+ zcZ=Ixm+$R#Y2L!drI6KD3C+GbxS-h@c3++eCTdbdp4%PUpBkY}-|A_1o)h*j|3U6* zKcN=p6L`Zio*b*~Eo~Y7NNsE6xZVFcnk^B@>@kVL!(65yg`1fj2;}kah;M;Z#R8gH zeI6V>S;6XIN{wBQVJ_zu8@;9omA_WfAm{hw^_)lW`Sd=#wLA(ZeAa|J=iMnro&wJr zAEME|6cVOt;D5F@78y$8tc=Aq8j>Ih6DAjejk!FP>b_aOq*#?FV|a!fnv@T-4KnK6 zuBTB2gJeiG7o_9AjPOW(ADL==6!)rRux^p+^>$TLAz!}^w;Li^^)!Uumyy9o0kLGR z?KW_^vJb|84&XaQZeD8{3uU$UiTLjXn7LXI7kdR;IJ|Oz&+ipT&-EX~dGs!cX!*eH zD=#n~Bpx#zsVm`p%@iheWlsHajY+`X)yMahGvUq$1m}KeQ4C5M-@N_7BbFEvfo48r}~yo*j$YsL&fCwDrtU(bOv3ur~%%% zb8(?hf0%_e`!VZ?HO`khfz8sQyrX4Ru+0*J-g`O(H(g0S^z-QF>>E{ z92CcDh>&9>d@Fj1%76ZnNry!+y*LY;0!?6X!f&?4SPJ}Bp28>M_vw#shNSWI1iV@J z7tXFkD9tYg(-jlRmV7zh=G&Ybtlbc{)Y#C4fB5X>)m#r;)34sKYn%#kjOp?9;@G#$ zl&Y;wH&-r~2PtDqm~qOH#9fS|)F}>z-BZzniDo8Rwc_s=tDxrkI#zCRI&m@Q3WkpDg!Xmt(QX0DDmf);~UyE1ReO&hRYFu*$fxX*snKMEFy)`7Obdg>JA z&xEGTB|H)ci+hjLv^9db%*2JXZ)%}Z-ukel@;$U|mw+oJ5zFd+yK(vsl-jP0*p1{Kt}c(ri;x) zht`>>V5AIEi^b^c2Ny|)Ry5vfNrRXcXF6H^7|d7yO#Xeg!7GtoXneQ{k85UP@&Sff zoEk*O8w$z1=ZZkmpk8U&DBLx>0k0=SgGKZl{x2oO77>o=;&TT|l)f|4r%ky_Mwh_=Z;Vs?x;JW!am(yh3G!=ZT8VZJYR#5ds0e*JPQ5YF{fVU2( z)2^;BlppR67%0e-^0lSMw=_|q(naJ&?=4*Zav9vayqAoFIJxK{%)c5jKzqtFXk;W; zt*sV?rSr}*L}e>XbNa!Q?|M!;vs%dR>F1s|R7F-lKLHxrmY~@5 zoj9J6g4JsisYQtdjyT2OLC)oomB4j39{FI?r6?GFtpjaS6LIlcBtaWaf_ZcV^z1XG zmPy&f`9%|~Q7fba<7Gr}`BGGjZX#3kCv$usYu?@Mp{(rB43d0f8{C<71-+gL^J`vC z;Dr?mgI1Uu>7V$H`kpXH+vS<8>fA&US+bXHj9kvK^k&e2L0L@KyG}IURT0(g{ZJs@ zOuAmD5O0=`LZ>Cj8*Wx}aB3f}*&B~fk9y*$&T){{8X()JS<-vPf}kII8e)>=P=#}S zd=}ot-hIjv(@$I29oBE4SL8G?kPd^_aTEBLJeM<7vCX8o)Pp=ONQJ%A*T75pTIQI3 z1?r^MqT|xj*ci488AgYMY~kFlwqCp;X;qkHDi2R$bsEHke{uT=7WWw>}*f11#Mbi64FrJ;Tc7!%_v2x5{)Ge_RE{x^+HMarZj@d+dlA0G^dhGVWs}F1sMTLp(22TE>&8<- zW9wORp3ALU$|k~ppG!D*-(p-HIAY--X^5(u;xRqU9_D;>qsuD{u&!h-{>uo&7jJc8 zN#ts}(_<3;dlW@jwIcFwtrB~F?>h*cyavA=k%dLAESadd9S3>+?6>&CAUF359(e5x z9Y->uTJ#lK#ydi$Lpq%D)581Dufsp3QO+Ax118eq(D3vg>%MXqd34^Iwc;m|;`&Nj zxP1Xg^VY(bU7SNp=^zbT=t&zz=70#t7;q&atnr$QWP{hv`b(Z%FUU`hZUSSjKKhoZVr zHaPVJHOl?LJQo@SIlD?c{^k-m+#bY)It7&Scn5>aZgFZ31zzO0Y0zt<1Omm~W()GJ zbNS~ID!1JXgr5Yl-Jyo0ZU=+c4je!;_A0D+BFr-~TY^_pd>MDeqqsRL1#D`Bc|4;o zQtSDf8W2}_ZYasSRZ>PxHBy1PG?P~!B52!y7}d?XMjXRd(B_v3=)T#MiM;&)WeehQ z-if#L&--2Qq-ih5ewO8}^!kFKV(}=oio4JJ7YI?Rj(qp~D&Uaxh#vF*2^-BSNL>7K zntgu*w7vC2V=?^XI4g0(uSuJ33z;2zo5tDL{<>4_45oNXxv&zLmy`p+862Ho(r1IMmw3?T_0Z1K{3Zx9Qdh1W#Z5jDX9CODyt z8OQ3FODbBD8#b1Lnuy6TUSk*3Pp&Ahf5X`Y# zit;oiFq;HZVXSdUq{{!|VUL41ZjJs+tEO)T-;fA6xG$PK@Az7O?BGWDJtNfoTJL^% ze76Gy6Er~{Nk!i6c$~8 zW&W$tf8$0f`Exq&w?j2^MSUI7{>0+(QK^d;n_E8zU?86@@2N|>c?Pe{`Rl63wp^VPBj zhwoR>SNjU^-+C1qm90xW@^*un`7$g{RDw&1IZ%+`goZU8oX7VOHa;*PU<`CiO zonyY5o+sC=xIOS;S2o|ag)IN;3Ys&m!Dc7H9iLliU1JVYGS!BNJqw2WN)f2BOqAd9 z_89S#asbJ>^XhLqsKKs_@mP8Q@t2w`%(*{KLmma2e|%xfZ_k*3s(LxN^PD$KcPgPL zuNIP|gsXJ*=J)7p6u|MfUC~2Z28ekW{#|$k1MI^&4@?fFURl&=iXTY5PeTcb22ihg zM{4Dc0DHy~(z$u$lb_90@D8HifqL8{V2=A`BB-eGTA-Rs0LHZ8O|A=ukDernCwYJk zRv5#s1Z}4*P~LI~v;X+vntyYsj!QfVe$s-g!Yr|4B#Qa2_lp!Az7E^se=(M(XTiZt z7GD_+lbcK>eBJ$kc24_5{jbUs(ZD=brCtk`XiH(&S{@zARzQ`e5lkgN*{2+{@4rK8 zRFppiCUw`~SmSFVHo2m{ReLFv^QTefe}>M(5z8(N<2G5PR7MFQWwem+ocmQuS{kB~ zqBNu^EuV%J*&~#Zk(rQL3D3D-q9`R5iZUt{iPBE^p8tS%J?Gr_b^U&4UXan)RLtbE z<+{G<;8tRTTdw}XmJL%d$@n~J*>?e?F16Edds=DdkOFSu@nBQ!c}QzW0?}!)EQonv z-7{Yr-MOC~ic_PXtGWNzryR0YHlKT@e2J9RM=F|Imzlo1J^fkdWT;F zFT!S5uKUBt@jZvq$<2-n*gB{I8^r|he6J9HneJ^^cH;wdhU?&A-FtA%PZ+N$2*Le? zJUlkL5Uiv!K>1xA^{o3&O|>n#o>Uj!?hE63g>7a_UVMRI&Fkdc*C4_V%)!TV#Cd1N zf{3!vKic^84LFJzVM2vESvT;9+DJUW7hx>B)It$#R!i_xeY(KJ?#5PdZJ5Y05%@56GlFQ`b%Z_3KI8R)92{!6 zgT|k#=+mvrIQhLi|D%K(eJbX|Id*2ET0p4T0U-}M9ytP*$^n!;mw^iwb&`|27UIQ1 zAGDpbj7qLqz|B~GV8HT!B>Iv#$n`~$sl(HFUf-LTl*7x&uf;X=&&U1bwBRRp-otdP zUM>N8kxKNxMIktTlH*RTY{mu2CeVD4Wt;w9h5Dr{xU4&pm)SEh{fI7Z+HZmpd%v^a z`e?=RlElFvZZ8eZ8%PL6y&wFpM~vFlc3&R5j6Wnp`+d!GZtt=nR`F- zEf!!&Y#zzv->S&Z+zjX4M^UL!AO8xhg_{o}>G02ujLwBcBud{1&#fHAb&8YVWZ(=u zu8rf zJnERNhi^Xx@uiy>Q@Z>C>M!b{2V0_Wl9eCvxi}XyS}vk8*Dp)A7NaLPKV@azUa(*3 zLeC_>VP^3^(x<)UjO&MbYPDc3Mm(~vTC}f>u3ON;K4{%X7i*7F_0Q8Gp*RxwLE?Pd zbLw!o$dH%}tR#nx(yG?qe9jtnXJW=sKbrpV#XHB!@Uhby_#-hJrfW!1d)cK>s^*IM zXROJoZ7*=gejZAGu0XdmB0SNIvAbNj?EyYABEL4;2SqP^Ci<6? z@N=F4dAf8X=E!AW>hv4f_-qG!dVLnxU*>!;4QF7a+@79P5yH3EpQ7_cmdZ`>;+%i6 zq%toTe)n**@Ixcap1$*BYxEGUYiTEcovv|A8{eB?7rlP8}Lm6sHH84AD4h*Kdf=huOKR(D5 z6y+0{!3DN(DD*I#IueV7>zB;@;Ye4fg;M?6=`iVtAq~0`L+zi0!<+VCRND8AXl50W z)vjf9#wE@XTN^?R9Z!(QSG3`}ZXnmoC?NTH!&Jxd88kcDpzHD+Y)qbkJx;Gt^w&{T zu;H9K^F9-EjcbfaO%(PUYS8bS74S@NJ-Kaq7c&#u$P2|9R7p?4yJGLK%Qlu~c}esC z{#wi{blQxKo(%7l zjtH_2Mex*MHKu#H66vi9#L#ISt`nIA_GLEse%}>5oU#JOzO}-NnHunVwk+g7n2*yh zPv;xln~uhI88~`Qo!_c*6*^P@lGVA-nN!U|uur3abbvXS=L->w_W7V#$8qIb=VMug zEk?iHgEC$=c+o(cJ11>J*IPgE@mL2lt>`QqI}iesJF=k1h6i6Xm7q^12L001;osAA zGp#H)@JK1e{tpURG%FU{Ps-9l4V}vDghZ?hP{z|YXVC@DSuo?hDh{8YjE@rySgrSy zc$>t-A@_k1al6}3vyW0N-Z?-&EL_BETwsrlH@D#CCBpFOS{sINOpHqDSLFNYc_5j4 z9$AGg_*G;Nk+%~B_a%R+V9aNB`Os2uH@X6@PD_ZfTM&qyj3--;PQ$L-EAibV5tQBO zPu>SO!TUBlcs>6ytqL)s4TeLqh!a&S`Yji72q2{DLMIWkO2&ep+v# zh9>E&kj}P(1&d-R%W*-Ebk(DH{TJe6pAY6up|CHS<5CV6&>^l5btHQW_l$32rurSn z%lCb&9y;pclRs17?f7EInWo0>GdY4+Ue}OLV`JFjw3}3Jm<%6#1IS}D7UCz%vu=uK zanID*{3%`B46wGCHbyp~#!3PH=Yvi}wQD~0lAR3}dL@vp*atGgD)`k}o{aeXqPLZ} z?)uYDFnoja5g$_Jtv~RE>YD^m7l}zY;o2Y0Bm05e^Y};V#Ad^vxke~F`5?rm1%Zo6 z73zG~pxX;_m<|6alC9I8!Ed2K(@O`9!8Ga;6i&N9R=ypF9Tt9|&EuS6S?TCGN1mQ~ z(gTA*&akoMFR3|y4iDCyhHZ^J;&*2)ID4yNdC@9V)n)Li`$~xQvxE;`LU8)~A(FeK z6qlrD;KZ}_#Hj5Fww+Fc=4(sw^E_8ziv+RUZUVRr)soE(%kay`Gnmm82s4^TnE?|e zOe|gjGL@Wz@W>-}r-KD_RY~EVmv>O&O*mPhT}EafXf*p;tHm4r=z@{)qR=?!j2RE+ z@{B^RfxF{%^6QZ{ti$8vMJ~m%_3Gf;*o;#k9YsR}-~~woo?;Hke7t}LS;@d5m43GI zfCG7`$!)MVC6R;OQYfk52-TB|A;rQ55}dD~h2eCVyK6NHT6be=d?iU;E6Ecaae%=& zQ}H+&6XWoO;C@*R-`o08xF=1Nyzk)O_A+)sfNoXnjbz+oY=g#!%jw0(J2A9>DUP3; z%k?TWA@mtC<-e}u0;?Y=I!BC}bFcFmzb_b2ybzPtJE0IN@i%k1(g*{8s7n##r#kMW z{dX7Qg_Q%Of#ZnRmxsYAw;{UCHxT!(d=0tNbkK8Lgm(WY!FziA6x`F;3Ln2I;v*{) zc+%w$e>>B0ZrXp4*gV8aHTY9u;mOQEmN<4L?#GDMZdRq5bEr5cQGq}+=>9f?o=drh zSsM8eqjvzpvSaY1-(_s;+{QFSdEp!3ZMbS;9hCM+5qEAr>tHsGmlv1I4oOXfCnoxI z+X{aoy{Vtf|2rMYnILw@*Hm=f_!jj&0`cz7TafNrPl|h!m>I#*~wJDR>`I7vJfki}6?K!Q8ze+Y3sF37}Y}miik8QBk0%?6oF#hO6VWBrV z$9j^_FI%|X;7ekr(#CN*TR{8T9D3B$7d0pFFiQPCG5DH8M@B=LrVcLck$Ts3WK|}< zajC*?-}A7vK!Lu!?Mou}T*8G_0+4z>hs)8^^S6Df`_Gy6IFB4Z(` zwG_p*e`?W-a(T+PGFa32fb9D;3AF^}(dpSB^(@L{Y#(%!Et}71i7^A-u48T!27iOLfB{`Ec;H&jXZ1uQG_m39htyg-Gx@rxo z8~fr(vl2A)v!?nrA&g>x5_L|LgxS4DFrKG_&BoVJyD$%bGn3G2OB~JWS^*tTtHJsH z+p2$_+?`%s1x|PCG3LqPWaHp$@Xr=NugvMNs$CQ271iNJ(W~hABLjl2sY6`oGqR%M zDv^=B3_gW@^uU>BvgR<0B}3`(<aX&ItL4Fj)JT5Gp=V_ho`?MNjpj8xH7*-cP7gO`OvmHBYZf;8PpZ>;ELRJHnT;Q*U?$e z1oO6`(BL@vli5s9vQn_+>u>7SC&WJ_5dg*OhZvnZ9Vl}%96P`GkXLr8ct&v|44ixm zA(o9eaY-Fq`aKQF(vN7+t4DUGh|mEgad>#zi#$rtqNNYgVAX1K@D)`iRgG;_C1C@6 zoOm0S8i^A5@=wI3Y$rb0UsKibG7?24Wr((<7s=oB8dqEzqsNYAL)Za1j5SmM-UR|B zLH=~7?irL2@*w=GJaRx@kpJY=98j-*%zWOI!E8xwf~cKQu*R$&4&Q$bnws~Stol&4 zy-W&H-h9LDl|7Jr`5qoIyn=ATn0|56Xg;VIXTa3__f)}Q3QiF&gSAH}zWyVCzdxRaoW~(}Gc1CR zPJTn$v<6v5z<>l)GBDg$Nuy60qf4>?KGWSy=$@sVlkFiGNg%Ut?*c6B8poEU?KBfE zVN6yOSSxZ9$_euP($witmX|>F+PPWyp;#2Kl;BHpv!M&tSD{zP2-i6EK(WdkOsanh zQ>s0<4%-%7ePj-1T}Y)TlOAJ+eJ~n6&}X(cgy9{o(-~`02BnMd(E*u@q;(_5WfKzM z7+@(?ksYycKKl(+2wLK|fejGkql`Mazu<+PDW3X%67>8>xcspIWEh%Ls{~D;97iVb zWGPNr?n@ocIhb%yT3T9mo|J75riaZNuvzdrnet*SZy6|dhb)7LZFfGvvfrTo&4TtGlgDH(*F2Uo8Q;q*LH+SAxGrptmr4tW?3s`Fx9tnL zX1?;_FW|zbFoO$;k1FhPw&#-2s+vJ<9Jgf_~q}v{Z5}x#z@D^78=)KNQo}Flor=IHHG#J`hzdOBE-29T$TfZ`rwj zD61t$x2p;Bwpq^yw^x_(>7p5CcA7HayJ?JsM+@M~)62oW1%RlWg@}SRu(h)JS{%51G}joK0`%^-(sW6x;_-68*EEO|LpTqF-nq zcfYP@0~CGn`O*TkFR;h{-Rt4d{2&~;^@2_K(oW=tHsO=75AetM0ajf6RrT&d2JM+C z4x6u5qN|hwJWt(;kWfW7etAz~A1Xk1=0yxz;>#v`$FgNVv~ZEjZ_xWWjz6{y)9_4v zv~U;TUr4v2S)%4<1L6*#5Friep9NrPi6g8t7eJ}2XX%Q53sA>yI%u*SQZvtC^YMLL zzTha8x0Zz|&Qo!Lus-9$byfw}yeCMmk4sL!;Wwn+AbN4JBdwQ)(MrH_e46Z|*;YIo)zKJw$ z(8sNZg>lY?VXhmV#@?Fzi5^udhlV-FVPxO{rk$V2WobB1A+r0X7~f2P4{lcpg-J!uc+X9NKjr>m`busJ=Y+Wo{+43AGtYf- zR%9ssI~om(Ofx94c!7sL9l(W;y>X^eJb9coOpZuDpvz59!ROHVGwA~|}2^L7g zIc1*cSwnH(Mrru=F&FELpE2G;SwwAwWlapNQ1^Q?-N?OPJvalsdVbO|J(DU8S2YZj z)x_N6C*biJQ6B5o4BRg;`>LUZj8@CSmM1Zsuj~LG3Am0W6Bc7ihAqUrxKkO$t7Cc+ zg!uX&VC@&l(p4+uP`o=7zqJmM?*{p>{MAVyWeZ8?YGquj`w1({ z9x&=@oIl`E7cO304Ci_z%vvwxlFln`lwIFRPc3~&_j+1lr*$mcJZps?=j5VQnmA0K z&UI@3He$#v4Upw>81A#rb4=eRvt`>P@O6kGdgVoc)8cGyH~yN$?0v~>)Axp_KkD&2 zxPbEo9*sE{!*uRjKttO&)~c}<=i@mJt_QZlvAOTtp;bW zi&$5iJY7tm62At>B`Y8GrJ z2TAirFvQye`%>?a%)GVmdgT_j?@Ji-VgUm|*8|8d`$kNeR7|dh@=#$)EqfflsX8r?V(^uLOp4B%rdWgbB~$oblG0_~O7! zNV#)~-t@OX)05+9eM{ZsrBw%=&t+}hl-#NEwWTyRL4lXA+G7^z5lOv&9ye3TxIlkT zu_h5CwUpJ3MVrr0;ib@2=zVWPndcMf-{k*b)MXwnNeILjnIiaCH?Zv;$UI&`OxRxGV4nKtzdQxziN7=N} zP$IVvK^z1Hor|F`ttIg=l=}(E+H=!!o;@kLb z6OY%_@*8q`#W8TZ1w-sJl1%fisf*3#;d}-m@nsH*|US_v_*>i`%s1H zf9;5Krz*Di4-ntH6tGdx!bFW9wCleWY;bEKrWf8O_6=6ldR9D&j@8ngElpJ0*$#D< zAEEQPet(Iv6I#SiRmRsyKK z?k|@KawD6rZ^ZicUAVxr1>GLq0DF;QaL|#UFX?Qc=bvGnq666N(ZSHu4xo1LG=>PB z1+#Nkv9xJB;YKj{wMG`h^2PbPDzy0QwsjD}vn8^7IN#Q+Agrt7I4o+5iK}o93N+Y5 zMr#1;TxkuDPp!j!r;pHmKdk8eRSRjv(0>@7@P?jK<`Mnsl|QH3`$cd=k1xvHE@8||eW75r8R)d_K#Pt0ITyoR>bmC@ z{r+bsoZo3ng2uZ+F6<79g%%Kx<{UCGsTfs%`J=C}0xXzWKvL%NxYv3b?2pigtE*h$ zT?n^h2r=jUV^P%T!T|YVbpiD)U*Pfa$-LwD2yvJ@M3>y`zyxi7)+XN*Pv~;}D*5vq z`*blhk8ARE*SbR$UyJQX&u0_gNbwwptwHz7Y?}Be1HZ_q^YQ6v3_VjtdmdDRXpEOmaT)lWQi*bFHaG(LJ#2`9b$CdI=>H?m$ZL9&-D_4Gc{CK(x#i zXxif*o69-AOo$I?obm==??=QvlymX+oItbDW$;@$6ds(J!4u&Lz{cqcuy=wa z??BE)${sMriKm^2LrQ^}|95X9>O37Kj($xmH!Gy$mn*y%&<%EG}d$VQ{}ChU?C$ z(sU_fonHK+zPq@yvbhtpcKZyzI8U0F+;;&t-!6qKV=)wEzTh3p5t0RyNUF#6DP-4nh;@*3950_l&qAEh2m6ql>0c3T1*thL=PS`n1?fO#;?-#Jubwl z@GG6Yt$~Qj zfabeEWR&kQUxxC~^R*BCB76s0TxOE3;#N?1a1B|Z>`I#k^2w_6-f&6Q0LGm*LRg+L zFX*H^nYptbuFLGk@fKOp$K$!r%qtD_JY50`LA&X7ElGHP*A4fLagM!BvM9Dvl0%N)#gUKO@Pu&% zOkP_BQ!<*XOh2iz*}m&xiE9ASdUcWA^pkTUc^Trl+8lVGPH?`h0@zG^%CX@HF1AaB z;94h8^3H-`6?5p;=ELX)0hp`y2wJ|4u|j(Z`f%*`cQy6EQ`v@>cpY@ws9HDj`J>9vB44?y9nJ01MBqqY9q515hv%F8 z@Wf~zPNgmk8yrk@rBX0&wK6Qi`oxDa9NB^ndNZL&PokDS_*${>M*ZySQ3z>s!VGAC5Z3nq0 z)p6o98Q7NDhCxyHsXb#%&uuTIx8|&cxuZ*f|4{_^XFs!d4jqIM&2a6W7o%hemjVHRT;Vednv3k zD~0NrK3G&z$A}3Xg2A*K#6*o?uZ}N@UAPH`U+;tDsox~-cOU7vT7!wUJ3#NbUscKI%8OYn3PN-HYF1DU}p`x!FL@fZx{frb21R4SPF^~9aQR25;R-g zV$|d>fqtAFcHT3P1VbZ=p z28A5CdC|R3WVgZ=IJJ~v-^^c0LkmMN@PH6bHoOhe!r@RSVoz&-50UayH$XN@2z_?W zqOOUBq`WDMEc_saiEnc4ckML{ofE{cLDlAZvs5_Fb{u7s8C(J=eFA!aTbGkf~(EqT**m2>KF||h#c)>I4g&r5z^2_2WY)n^+VMS>obV}x zC#xg)0|v#E)VI;IyEEuM>)Y^GMF`}U{iU};qG{#M7W#KU7+og(Vb&L)MG5sd(i1dV zb?9msGaQjh9G)M=q7}FCW%d;Qo9Qdb*KB_#P^1aUj7qU#={ZPPJx=PLN%F5n<&Y>h zab#yEk>F2;Fm382bbD1sXk!v4clklh;{c{}8A5}n7g|3*0Y{Go(WHtYqOwy1jWt(e zEE_^+m^#5BIWJ0@I+^I(2~T5 zhqdUMYtQEmi1DX2wF1mtz#Kbpm>R5nMoz@uf(tvP(QxNwn7Vh9*;e;_A|rVdogY16 zbe!MePtGm*Vu3EKJ={)DTyAHq%)-c;)_WW)WjE?>>?ZeKY=EY$05)4H7q52Ag@zVw zUXqInPUrjL`R>nP4|8D0)OLEC^VIRTmV@l^Wz_v}B&r^k#xFnh2v&qKsU2fxgIXyh ztgo8OF{VFi@(@{7QOR!MziPLnEW~^v|s@A$k5c2hvLA6;4Lp=y>5;}!yC(FqKom$9q31DP4 z1wsE;b)NACT|64NgXk~vhJVXiY2nU#vcoNsT-adF^|v2GRL5O1uWt<7L`O-H+dFpc z!)uJ>#S?_9T0%jwGkIxkfPWqv@~-bqCn|%f>?9vwh;J@I%l|@1>RFE4KDeFha;zn} zzt^B(SQm=jslew8JTW`DlQeO&C;N!myy@J1V9b4#JZjqxyz3J1V(k}DpZAr^XDee{ zR2+>(KGA%>1I-fEpmx}be4VuyChAP!iGTq9TT;UIElwaW4-1jS=992+2&V{ByS19l7wQ0aRRUadU=4}(g{BBlE*JIeW(2lBBg=PmQ*L^!z+&CMsY z7E@bO70|ZY!Q@YBCNfLbz>lUvaJKotEIeum3r+oqLK1^5#j!9?ww)$B3&N|8Cv?uO zy}06i1Ei?kW8Pd<=V|_nfzt=?(}n|o@jrjAB9qrk1zgL)S!4>2ulb7gtkI|GN+(F? z)GSQi7)>wt-Uh)i0hsnR2fs+>!53S1Z0TJ>FB(J=zmgm-`Bsl!{c5!C?JHUmCkAiH z1fWSL;pJ2nM$~;D$17E1M7(CA%AOv2F8VDV$_PWoIs&<93U1jt5p7rQ#pn|PVB42N zH?Nc>sztdZLuWrY7{s8)*mr#B`;o@qyaW@yZxT^Q?r(Pw##g>^R57{~2P*iWIZ#0k zb!^1&d5iJuJ+5QC?kkDX6oBdO9RHenLbaR}e4z!9X6B3R$tD<35JznrTX;128!Qjq z!@PXL;ITkoT%Zor+HDhzoeCs>K5b^Zc89?5GQ`Jz-cWku3fCj zzxCxf?k#1}2Q_i>_Yu0hU>*pHFJjO7jnjy-FsRPraUJ4E__bRWoE>wZ+42cG$(+Su zj~aUWbqTgiyF)$ReZ!X8EVN$hPsy)ATGo|?(GfDJsIq}^bQVW}s|NT|CJD6PHW2+2 z$I0WpDM+@25WM-29#f4)nY0x=G2L}AbJ+lBsD`sjyIg^z7VvBwv|#gY9@fYEVTkHY z`V49bU(Svv|H%hd-;c+|6M{*vTMF5FD-k@3Gx3hk66o$bO152|f{DWBpmZY%9xKKZ z!?{TH?o@`=ZXIM;!U^=6{9$Cl$tss6a*$>@4t>QOOXKilo*}p2?7h1WJ?tVO zZB{+40FDX8=ui#IFWAH(@d#=AFC_j{kw!O(-v*&PpdFM0T`@CInTqM-F* zCuVWa_U!$Zq*S*Y%=6Zwb^9N7bni9zmi~^|dMxIj5oyLa_kTofK|I_IJ`Szh*W=#F z$!PEK0LB*tL-(WtCSUG6++_>N9mzf-zCMoBam&mzPDxPG`{kqmgj!uovzSn$6pDpsQ+8OCCsZcm30OD~Qjc&xCt8ptbD; zE(;`r;YK!`>vuALD9{+sH41Y5hiySah%n+Y*<_o$oja_eeyn_@LLR?{@w#{NtBmiHU|px`Sez@9*mk) zl5CzE)OepFlhi9|!`;s?{7al1`_1w49-3jG)GS=b3rCTJci3B=MLkR-$$8@r+%t+K z(z1dk+;gKYAO4c#)ta=S=nl8Ld_t^cTiAJnYar-gF8y>|n5P%Z<&@fLn2qgM$-Am7 zBA^scN3L9F7HQOQY<3Bb2bDx5U);oo8?UKz@eSC$H@)iN!APikrp&khqYhd=x2WL! zned<69j3C%l8u{bfFrbobaI)K`@4^lVSSVT5}cNF4M)?!dy! z=YZoaR}F%A0j?)fYdwRB#g#nqBZw(=QTM z^dHvt?joiuW|CNi>*zBrom}r*hp(os#6G|Bs$C8e{9uud6>;4Ds>+SebqS?$M_DZA z0db-~Y^CV<8aH4MP6n|XHu$K%71US7?l-w=_D=*K0D*yjr_OZLv{PR~3+eUEn zzgfK2LVxmAe?I;AwHo?`+sS#=H83?`7UXvPqL(9GIS=$N+U_0=@kRzHlx_`fw^iU% za}tJH5vUDG=6>%tK)g~G+`E1hPx%a^@ouA5UxHz9@F1$z6k*_qBip$D zHBs%@1FZ_r*+YqQId*Lf=L(4?gDROY$&zEn*gYZ}j52BH@GEFyB)QzUJ{eV?53(nx zLSWBDyt?=#c>NJW>AP2`!I?LpEE#)3`-U#kz0#|2*%Vj&yj+2&zWp-J@|n!^m-=A+?kJ*I8$@?5 z(5ClF%RqSeG~MaD8YLq=;fzia%v;ArFZLb>&sQS&Abkr63jnF+9fmEsYf!Ff1vU7b zgi~5#aE4kcbrz{5cJ>qa&$YC`Fkg}F=GzV5gfy_NbF8y^@akbqjQUEt3sO%`_TwX2wyxvFtM4hE#)gIuzw3Ylb z93)QbTIq84UR2Y|Vf$wOW8R+;;~()#CbkDW;ib++tY|w+ZK?(E;hhBE?bk=_ z7QY3)%eP~eoH3ozYKNcxJBzVQH>lVtVSZgEgtS!L z7|;VZ&%n@dByo=X26`7gslWjjwEUTi$GLG?RR43_{ZbCj3|Zlyj7_BSBKLgrGsmUe zJXX!I780j&jF+>9_+ry%$Sc){hyq7+8}`BvOB8wU!=FL;TtQxqRxsnDKA+c}>x(cw zl>A!S#oh=y$W9EsfK~cA^xnud!p|DHBXwjWJSQC_pQp-yLVq%HPuD}Dh7u^8bwFW( znN)lENjmz*lkInrfcnDaV5x1-xkKA9a{e4xr0K@>vYUwb`wgU)^LV5j$w0ZT{ZvHO z5C5~!#=ilV$lXd6n0(0+u7CSTMq0D+zV{?tacU6`aol5#()%#sV+F3Y{EeF*i@`|1 zbI@N=LCTZL*QFOREk%Qj$1Hgq>%NL6$zNE9gTLvkZ+>vD ze>w>e{#q4lolO=9_hrGItO(eZVo1u3 zW2l-}1*m3k1CQCY^uEk2ta6m$+0G7uUehR;^m8h?k{f{XPN_ut{V^zN#`H-EVk(#K zSok%b+O3IXuRT6aU;MOSo(t|{o$X8UQR)+Vv@HNKLS*>MLLV{n$Kp_vJ171NXHd(7 zYGYv$ov#T>}CaAM@8Vlj9Nk2XhkplCxR z6+c=|rezwVov|p0gsOmO!f|HHy*!Y1>4D{~9W?T-AzVA+N*hHIxLti6+)F)1R1R3c zB5`rPHlqRK3b%1#s{kq+ETx^RJW-+IFjUejAmp|kgRkEs@1|wrQ5!SdS7t@dEzg86 z6?U|)WCqPDSwrXjoCDJ?>X3J5o|BaqE>Y3MX6m?Q6Iw6$PW_MUhn$^BAm;4=e}cKp z`$!P94$4uH?Ypqq^D!P7OJE93JILLQ5@ehB1ircG0d$P2pwj=9W81I2*mbm(M1Gis zPSw7UwAPHZiA=(V2q)}cdjPh^&E|(qljObQ`pvv0=P>m5AQ%+3PzB@v;Mi|&H?zAR z%#YdA%`0+f$6X`j9TDOiCJW+eVO{8WeFg4woh%cbIAU>bIwq9>7))t}!XaCz=b_uz5`~? zDLpjlTnN#O=FX)Zc{uubJ~dpEia+UI+*8n1wfssx6hDuk4aWXp^x`WM@n1DfO z5jQ7}y>)mavrNeq3tu#m(@JNMc3h#-{BZJFRv$vEq&b)Z#|rBTfMIDqD!W`HJ@em@ z(O^9uUKC`a(`wAZ_7%edMLXINB?hALEbDr#0x#kt_)q2;HF~xdE66W;Wv>y0Y>?o6 zsCr(-4hPYLH^eYNRfVq2-2rX4CKDUc1Xy$O3AY1@#-sYC6m`F_Dz=k};9OOlmlA^q z6%6p*Avx%LA45Xh7n8PFdGNR9I#7pCnAJMDz+=5vtj#TXUZwSA+$WL;%Y^0Or*#Y& z`r1#jpNr9Khb+@`BjVtu#NZ})299rcL*Aiu_~U@!WEI7vEOY_swrb|^u0TA#k8{`U zb0jCTHb9()FXLGHi1GGE_;KMbX)Vj7XYMrt;qEHMb4$q3+>2zu^$ycIU(if%&P7mk z*i3ysP36v>nv|y(iKC@X%#{0g8D#|vGQQJ`4t)rQ*dHrluC4&TFQ*ut!aqX0bUx1W zUrwV2e5r8HYwE8eh*N9gakJ|l&`l_URcqGc`R!`Zy}tsB6;IL8j!5k5w?iwB8Mq@l zllmC+LbusvI)Y*Nc6V>pux|~=VC*I_5f@qO9ar#Bdkp?qDvY{PLLigXh=)WqVCe4^ zSie;UrJ5$dpU&gpY#M`yc77r~L)l#KcsAd+bqA9m>jp#o=%5@%V2S@J-V=W$wvWUxO`k5 z>OZbQlX)SyvFHG3b~9 z@091Gibw-Z=o}?mUvvB2-1qotKmwN7zN4K*zF0h`3EHO&Lu4n{L-QFWJLV)2&r95W z=$$aT}N;amba@c&*wdP&?L)caQg=WqB&(y*I$&xIQAk!x#PtsKGI7 zKPp?b9>&+4gVGCzIGC@(Q>}Z!_8L`!$&MIYB|Vw9`Ne8t=qJSASI)T*+dj}8PDylZ ziYn|JJBKD47$PRTmSjIEfo^eWzWy~QewRThb!Fmo=$1U7w=!=jI7RB-$j>k-54%ELV$1ZwhhkC=fN>UKcLm;X!ycqFm?MB2%f?5%G>sW z?Vl`=VYD%}u@dSft>CK-pA^KYa2drMve=}G#;ok9nw@=;mMsJ<;?Dx54k?~pXe3M# z65s_oHQ=F3m#VbItubZxF>tyNjE!7(m8Mt0I=PR`l-HD;J}rP>2lQcge+GGS&6Aws zuftoc3z@i18*M$mz_;xtSSc$83KuB3b;Safr@lYw3wlDxMurm0#sm^#$Y z?Q*!x)}9r_@s%!ZN)E#vD_%i=$vK?H?>E)nx{Eyb6-VKlsd&)f1^wY>jUMI=Fm}NT za^ha$q+EH3efE;sTOfh0v6B3RW&NbHN)}a&H{z?kH)yl=DQ0tUH6F{k1e(7+>CKki zSR=oVxc~5G3fkoO$8WyEvVE0QdHMsCi9U=Q9`)g)y1kgZDVi+q`2hpYYE(d70$o*~ zpq&0`vk=AwHMh^D|9oE2YB6OL^IV4`;W=AhcyEs_2vY=R?suj z%pM`G9S(5mS`j;S)eST`P)0r+oeyDAX>@uJk6h_%CKhgTa3NC;79MJXsdlqzxmP=z zc`F9ry3K&DpGGL&$N6V>tOel-CU`DFhaA1O1#jFV#ifs~^=_Ue!%eAZ8`m5Ow z9+${+wQKN2^beV$x(_Y%jWMiEom&3>Mbx#zQSw6pb2mi}EDeH5xx-IVo@s=Bx7U%1 zJzMa(y)n*RA_k#824)lU-;jM5hPj;d1UwP?3>tGTQH!Y~RCZDZoS1PLx~x}I`)j|5 z_OI#uMw?g?a!(m}2b=KY(reIhP#sQOXr=7hzm$JW843;`NKPWg(Vz-6A(E>&;4SFT%XcW_VHioDn`44=WEY#@eY*=;!`u2-4aH zHG`XR)tw~xn_))BnkRsC+%B_#hfO%5R6{l2Y(tfzOyp^Q!1XO*5bm)MKTNl!2ZK6I z%YOOc;ki{P=UoS$&&46R%LI}Ze;6~`G1 zhgyi+tU&%{T*He#lVQVjdoK4C0RN1<@Xzj2c>6RHO}Xy20_RA*aeo(>|F$5?tG*L~ zG*OURc>(T63X$BAG7`1!2W>C1V~$SV0t*coxH)(Y_RPy9%bT}hsr+kZhVe#5g}OnkHP1&c^Gv zvhf^uZhe+?hE~~BQ;Es{NVTsXxi-axa~#Zr1J)w=Dw$7>Z*sH6h6wsK>JwG`=!A94 zCve@p8K7g74>d10WABeYL}ub9n8!GQ2sc+gD6hn8n=cRA8jINu(Pj8QL+9a-RU5`} zdqydw(6llO^$O>{o~D#Yh>EmH+7d0Z$VxKGjF5;>2+z5%CrV06lvzm{k~B1E@SZ<` z&w0+d@9X;gzTfO8M?h0r7^Z%W2eA4AQ@FW^`Mn0NTRXt<@14=bDwEs8eWY7Ixxi3-m@O!S{nU^zhObxVdxyRnCin|DtzbY8XT(9UGLEB0i{v>XMHiu(4iTdNDfjnY<8=)d^6*NWKgF^5wrm9Mj7999UlfM3-Mj3{9 z()1I#lVHF~n)Si0uO-ki7>+L@Kk=vjoz2bAl9}L-5_s925Z$%9G{Zs|_Ex??FXd+N zSh)bhEB{ctNIP&*I|)PaZR}f@o2;d=9{fGTV&Sa?IKtG>4n~7M{Amgz_fjB2s+n%$ zvS6Fx2C+Qyg2;pz;<)foV(P3SuuMy5;E_092`HuC--(mOaa`tcRw!&$wSfB2(|Co? zQq3=wXr;aw&b0KhrhC_usy&AEQ@8^3b!Ni?{y$Rw!5_{)R)ON$5cr(YNc*ZQz_;{0 z&Cd0PWu5QwkozaR|5Xnhu4~ia>m1wpQz(2;6cHFd)`y1egn*y|9&O$OflEt?%l2OU zvr`k^&n+N7t1jU8X$w$FKL#I)?jh$ZbEw2bC%VM55)H<_lH9B;n752!5}(-PJCh!I zwp9_c@{KKjkqYWx@sLV-7sBtMpXhdHCbmtt!t!iUf#M%P%SS#?QOE;t_iCc`pS(a~ zmJt4K{9-ww){HspcAi*2jE3{$W(hu2YY9G%$bjjZd}?&y0(~)3N6UQgkZg}-f}C1$ zR_*6MF#Y;~on$I5u&Uk%WflT#I=lc|Em~=RZzDb<6Y=o6Eb?mGb?Do9f*dz&<(yy1 zWS~L>g)TPXvTawHRZEW0C`q1WEa%MR^>4se+owR2$}^&t`2b9Er0J$ETlA`M0FmFD zXu%aTP+C5hCv|-Y9g-8#W7=W(r8izsC$B?udN?*p5I6scJ3%Cs3$Z@tA?P$ctt$Hv z&qyv}@x1p2Ja@hnb_8<0kAuDB?c651t22y@Z4Lvub?az<#$D!v)evJj{vWHjahM5R zsEQv{-r?<R9F_!W_t89Y4V{WuD=(z8y40r~-_}ilA$? z7s*kO5PUwh3+|}EN7{!IZpwP_yixiSp3ZVQ>jMO-H4 z*Cj9;jfP*xHo}&qbac5QE*RG($y3^O9v1%&C)0wi(VF8!lm{1ZSmQj+a+pl5gn%xc z;R{wxZ<+LsQ|Y6(fPHmtc)I#M?AkS-WY+>toTkhSt&-sFx)p*3dP?}kECH@5T>>WG zoUZ6?w_Ks0kG^Jv>je>#>0t;iG?kT7m&e37carcn6oM}E&`3NDm;Dk&x&D*5B*qbA zxqNP|>?#ymFlhOU%Z?ht9Jun62MSjzIj;Q+VpTDLMsf_=@%l4i=gnA}wWWzMX>4Tn zL@ve^w((G?+d{RU`C>W~0F9e9p~UMK-LGkcuGYi+Gr{t(qwW$|KhA>3=iB&Zz3(gr zyjJ6}Z!ejU`mY#ut`q#<4Uty|wu9E+nOxo?j|@~#!CgJe(fD#NoyiyG-ODWmRkI4F z+Gv(w!!i|~@#;V-`MwC{xY@I~>o~!*+(a0?6bkdmd*Iubzz^yOjzapF(qF*n^h}2D zPp{CFz3n8~IRGQHgvg4w4{3!Uj!3mV$J|%nNoczjyq!J~Uq1g!{HvsR_X20*B)@Tj zS3gr>=X85^gu9y<#K=OE?mt|b;SDXn574w67tEadl0JA?1Jg1BsC*;m?6~rh)Eh3t zve}iiKIjOF%39$*>!%={kpl0%_p;ZbM@aa?mo!c%7wg+wi7)RwzKghy3k%Pq^I;ca zPPsmC05O5K40W{2uvwY zAi0AFpl-whnZRK>mgCQ_ZOJ2jk%!USP8%wlb-`)II2ha<%{mFcfK^`&aYbJm>zlW!l#PyAEj>|&$o_-5vZ6~Qy)B#jDP>3Du9O_>A9`>3vLwAoPDwbvunWql8Ah;HX zqJ!aM*LJk|5rc8Ig&-4uig-H+@LAM&*8j{C&{<$dk8ydFskzp;PlwylS8U*Vdt!pj za$6|(nr!(shtrfXdm;2w4a^b^hZP3lcyrfI7@c<%BtCFijb%PKWH-d7ia9agRTtvY zz3)jy@HCX$=!3U@^N8SfDiN5xC1)1tF_BXw=n9!uve_pSUOZfk%@uqSuWCy_R{f=C zed3|b35i1@=e!FFAeYrQV#G>gykmHXmJEBNugD9O5Q`u)v~FU4ge@E?(gf|i$(Z%* z4P$M^nXXH3VW7A>L^CyT>R>eW7|p>?d(*He=P1|5nZ{+p){>)I7vP+a9{iW{k{Owj z1t0U5khu33>FtkPH&aBKjHplIY0F-u{L>qlZ6OulbNCkdQ%o`L&L60|)(!Dom!&{F ziHw!5Wi{qk&>@csa^=J|?i~HZQg_x;Y*m;Ab9^emlJ$Z$)?2~mBoBP{jk3;v`BcE2 zq*ki)HtsuSsB>MggfGz6>2t=Gi zBVn%FKRFh@7X9Gnq0!`W&qRp5Qw>%b<q?^oj zZjV4h9M}8a5CjjpGN_jzpO|D0;qVz>Jk$_Id{o2%D$k?bK}*ORcNz4Pc%)2nl3=f| zB*bYSHg7VUik;WCb1vRHP{KVUZ^s1Cv4a7(9u=OhAcKym$ikzF0ZUU^Tk7~<82n5y zXT*PWvB@z9aNLj!RJcjKS;o9l2Joy)$Q!K_fACMw`7uB$W+w14F8N$nkx6q!- zhf7iK_^##!q}bJl$-ll3c?~=&BFuxh&uQeXc_y}e7$Y_BFVOX`R&dTVan!JDA*plA zvHD#FY1m>1KRa|GpW~o`!6d;d1!E)F(CinVVpHy8D`uVA?LhX_?2O6q2OmQJdwW(gJ0!gTchlIhebT!B9O3&8h7%Co^ocWMReyWZ;PRpa)OHJq}6S%wQ2V!^C z1Y70_!Bw{v_X|cpYU_JAEZoPd(=rhHv@PpC3ji=_FX15lJ2u?WIk%hB!&; zG)(cm2)B(MQ>qTw@yQ9?nQ+Woa-C}U7s63nSH`%l4yX95;CYug*eu~mlDyW^(1Vr0 z-*^C*Uk)HQ!lZEZq1}+6aK^H)PZG~|Hqdbq*5nTNJV+!@p)%Zl{)EXyd?i?nhTA5f zZ-9hA>C`@Qdv!TU3fw@sO#zs+a?G>u^Wa3?mv&%-p#(4*cgQG)l%4(%i>{Chcr6hIEe0gejGEa2t}@Dp|j6o*tKal{IoxY z6Wdqfzl(?P!-vJButW#D($0~@LnSQVn-7Wi23Uh*s|3QQxcvXY892=K96B^^qEe{1 zh1DDGnd~^l=p}rr=2h6!n*TQAgdqc%r7wwQ^-0vjjO!h9+4Fg6-$9+r-V~LrVE5SE zfF6}6q&3ik9CXq`qi>O@Qs_-pa?innXd7;~XN46eGQ4LuOPRt+X;hg}#`A`Q1mb%w zPfWQ*dY8Vzs@>lBBU_w4{+ABrX^WwOTQu&{OeGVS%j1vYFmyh97mxCW>27rcICHjv z^ewpszcw3!hsbUG8+w{fvhOBJ8M~@If{#;(n zk(ns$x}RS7b%bg!DL_wiZU>br4NX57I`Uu*Rw-vd>5aE2TES->Yj2^N=tSadJz!~> z4!CnyAYPF+gN$xpydZNPe3qMnjdKu8%Fe}8pF3guz-fA{i+g{B2r&Cl2re2w9j_Ny z5cTf6wEaL6dHMAVS@)@(CLA@R)ipfOzP}YpXGIW|TQ|X?c`|RY?QWD>u@?(eQ;2cY z30P&D2F~tJh(fIsCQ=!ATrGz`BAc0Y-khWGh`FG9)kTz(c>ywFVesqSN$}fPiC-JX z2|6T)h^S36ZT_jrQ@X!^%su9TOIyuAjq{=0n`{Rv*|DVdY7>`H+JnQX%VGH58|ZI& zj@!ev1d-oGV96gl-n#)Y?)P#Elf}fD@~|#4duF(CmCdI(tXZ5CB{pgT7mKV z@^GmCF8|yub6hpMn%;=M0q1gsNQHk18_zz2-R|n3Tq4cO&?shCiYmb)hfI8jN{o}@ zD@L>RG|ni!MeGJo;yI=QZBAK1c$yM)A>N-IgM=yM&Kll5w&+G2PXW0mR``ia&dUz}+hx zE!AaZA$PG3v~8Y^F?EJ;=j2-Q`@j%A^GuIto__**%-Tt}v=3TC1>UyrB73J@$4wjV zu0%Kp_d2HpNVj$&5?X7+eSq zMt+ko`7vD=2fO~^I7=zs?**|mnsS+n_cI0KPR5X~xCw%a4FVu946te6D!8#=Jfv}b z&yJY1*Yktu&@N>?#w+tHa*Oqh#7LV~9AW zhLe(hqkX{<==#NjC{uMFt$f6{zHuAhZ%yT1B}-9DcLROvlZvH*(kLGqf>ZV)R_K#~^%)+u(fk!G=I z$A*#QpS5(Em>q^#FpS-O?sv0LmBewoES2L|LG{iZ+>#PTZNwXJ;I9bd^2Q5o)g3U( z;Uvd36e3@SIOf#SF?70`V7bP&2cPQalgkUrQ8*`!byn2G+fNeV=zWfHI!+0WS5@Hk z?9a@-9D8(+%fJg6nlS02Kak2)5Lz8c#Y3uDA3b$kG1-Wh^Ni~y)W4zH8_zJwQ;zcU z7Tkb`LiSw#E|HiQs^Sy--Pk#6jFtST!dn+VO>kvQ1=wfh*l^=1=b3p!jW*mP+fLY% zI|e@(i{5zldvQ6NR_RA{hiAa^M0d0apGE>ZZO}cql;fLD0WY&e%+;OE%UQb^lPi}K zhrZWzz@!YHn2g|*(qbYOr2_LepX0nS4&cx~0hi(^7+x)gnO1M`&VO!@@moc(?Fq*v zA32SyzR!Y;OamPBl84+7OL+PCEB441TRN^@foo(P=#gRp;fh-j(Ef;sr|W}~(^P!Y zlm&}S84QwE704N;;DQWAUSr)yIz4X%FHGSqslPN1x5SEsbsbEl__y|*WEyX#gPwmpUM~!(f%S6V{W{kuJ zT!!PCyQq$CCyqPji?_X%dFqLt_;B$!sxdl7lDgFdeauX{ZgmREaZIPlLJsK4?1#bU zWtJ+%N^mlu2Xx~Wanjj3R*ezm4gJtUz4a2fyl@M;XS!0w;Tjyb=nM1n?+*B9_z<^T zeu+&bom9K=IC(#AE}p8~g!R){8r~9uJ10FNJx9OOYx~yV(`*XzYmC5kk{;R!b9dw= z1?<&bv#Dp{9yBFSK-oeD$Nme3LYvd1_;WYamCc2<@&4d)+z*LVDb{E5nKj$vH5|Fv$O9Q}Sg zA3cX>!`1I;P}X6D4QWGkgT)B;e9Ojw!esCplEg8)t9a@Aauolf%sLJ}B@3)-Np@od zxVUfN%@=JcaW{aA(^+GqjVDOJ?UA)EZljv+9P5p)iIJa9qm`x%lQ3k3x8?ny=Hd`6Ul~O9EwdyC><-h=$r7lRaUL=F6Nz&lCSM;& z@FvI`<$Mi{>;2beV z(`Q{I;+>1(quCjf{b>xuJ*&v^r=fJ$(HJc9UWaX)^xy+?vx>q7Th5#GL!yFqcigdlxdFgA+`^LFg)AZsd$aIK3y zT%SFG>`J#mlg@BDmbnCWwq2v&`uxbfSsUn4{x`Y?o`Ld{dbk{8NmfUGB9~rqXWs@s z=gKQWnKU(2Ey%_Rng2o3s!;{ z=r=L)`oCQ$eEk!A!GLDVl#BO9__kd-Q{ zaHr5=%FKR4ZVX4`GR|8Zx^{p)Ce8IB&#DT(fA6Pe(noPp*m)ecBnD-6Pe-8l>Emxn z7-U^WRxVl#)_S5~EH#5~U%`W!Q@)YCvDu)$t_Jm$Ea9^TL&F7T=s7DNeDq_%I|;Bv zIE=2CP--b7z8~*}FT{Y+Iqb4~)=cgXg4vhO!qXv9{CA$quC9IntDmlh@RIR7r`{LP z*fd43`$arm^)(EdIFI zrnm4?g7cemGg~Vk9f5VaKRf!mg{;dm6=2l{xU{Q?{M6<6E1iREQr|JA#oQa4CtBhA zl{27FS`(_q#nB~3BjoSm=g8xwkf3b9O?m#Ls5YGL%ehCLKVD{L7bSw#;e~>Z5*dh# zQ-T@~A(;N_FU`4JjvMy8hS*Cl;j`*pTJqHw<7ewr%N%oZUTY@odHazr`PxRke!L}5 zfBwZK?Q2orN)12j^QmkH!6JpJJipXvuvs;g*H9Wy6zfFTNv@0OzleD3Umpz)|FzTe z=Hf)H`~l~Z(WJ+xhk}@UH?CAVNi-J=!Bf9T%-E0v`QAdrBK-i)D<}^U-2RhZk_=P1)1!sj0p$_&cV|S6KJCi0sW#u>a-^a zj$V?WB9qT@92I%Ir@Krr{`wsFzUmK^@rfr}25Z@Y?rvh8atgmbpFs7~<}|ht~ z|3Lk>|3uFMQNhF4QmjWJWm=pHK_|t9U(x-H8F?N_Vj{wk>J;JqJGbfM2Nb5iD}bJU zD-8dgLGNm5a9oD}VA2dpEJ=06g{qCi;a0MPorUT+zgnsF^X>AGZFl) z7eV9K?J$r3hiNi0zye+^Og5gvi+ZsZCiKjqDk<`)W2#6@XD;RoaV63%L8r*4o7bq1 zlr%GKO*?m%QRYp!$~j}6{l&{yLs8E1Fi$peH{SoJi(7xT;@RRPDE544vHtoVShr>x zJ$uv^&pOvpM_&y%SMNan`KlA%W-)>1onCzA;fc9-t`HYF5vC#53w7u1$LgVtaIrei z@_Jh)`L_B8Su&)|d&=c}!bt=(nib3DACw|{Oj2;q?S0@V{ecOazn(0dw;R$P?8b>} zxc|{Pd(_AXA{XBT!sfTmu-@q+?A4V=pEqZ~X>u+ZUV8&VGR-id#Ek?T(Iyw}kI?!+ zTk<1Y57d&RNsHrt_*Ar#F=3ywA?;5ov+`9IjSpogh!T#6@?l*k$r z?v6Vz9u2D9(dyqyIu_qV>k4x5dR`wpKeYj$S#v&+&|&7IT{_>By6k zzX0hshvAUA^ zOuosYyTHF0L*7`-1n*N>XsB*L+YJk`@lprr`Z)}XADsZ}(kFP}$UAy)*J4(_`WYrH z$%9;Ndpvm64lAW2Fma@qhW#BQp`wFSh+3fh<3i>`Ya=%CVk|ZC=kO2ScYzs7acJvT zP1bkz(&OL=g1Hyri~cwW2`*-|J;%e0vKmbDm&T$(j=_KN z{%GR}X~%l274!cQ^{9p1{y70M@-HyruLO)y*?(9(>;R{DTz?~712#|M{EkOVfk=BX zWBFx~Iq-Y@nho3d0+c_C;vH=Rl)bZ$z!qW5R9B%h zrY3`M*$Xn>>lrj2uOZEcroe0ymKyh~!q}#-xbb`_j4Ekhpo$2TdOE?bb;pVE-9_a3 z`}-*BzXW>TJcIBYN`r%uZI*5%xt=X>%hS*KcFT$D05d7l&sjj-tK|*Sk}D z#)Q8WLH}*)$jg@Ex;-0l62}SR2M=3b^y9i7wI#Sjo15>cSHcxjKW;{L6jKVq;2+1~ z$cUc^iW?&EwzLWC3fRX)bKjc41-I!#2XA~;<;NOotMd-oa9!>^0el)v#VJvHY3HhR z+_W)=*4`*Xofr#hY4R4VChR69^W4d0T0*XV^CpYK{n^%6&)K++L9%w>EXM)zf|DNW zNZ*4e@cVrpu29gYJNJv>J%gDr>un^ocM5RMx-3}wzM7ic3S@cJ74%8CBUb4JleI2o zw4;7K*k(+_=(kZ=x=9Gq9bGZb@g3QGa5GspScx&JGilyHHC_0FJ9AyQ4Bevw8tc9j zbr~sYsU;~`{NDrWBwYqx727Ob21I!6GkUQ_LYbdYt|yq^7fXM-DM6lwGVie1J`@?| z?qml8IREY%7<#b@RQuo3Yi@7o^)P4Datb9+-GYfz&sAp8Z)@`7)dYdg_dI&4^Cw0e z4uO&r+`V4?JH2tTj*Opv3|`OGLMQPxBrVVt=11>=HB+-l?2KEa;LkQjZJ93b@}hDo zyK@ar_RNH`113;4r4bB!+c^JH8BJTdmL#qI!k*t&%=kOH3;sHcQvIKM_&ViCihI5A zn_m?g=UKzSoyOq1C;?Zr@PQs*PRn1l^Y!ms#g57v%cP}K1)WWr_%d7=z6x#-dCxjB zJemU4iN5smD^)Pvf0gy!)prN!vmL@bhyDYw z&^G`V_Y{F&a2M#=N6@PqT`=}W6IwT{!d;qa@FwI9I^E8I_1z8h<^@aKQQ1OQNr-^< zpxkS+fZ$VhkXIdnF+0DJxY`fYYxWfg*iZ@UbtF*`s|g)VEfDf=Kijg0kDb9gam9(d z%-N+}UV6bL{2Fu@%LLCj-j@rt_N}Eo+4qUr_$fRKxd@b+Py+ibC!)wb&auY}giw!H z#Oq}o2#OK_99x*aoK@hKSOBY_z_N8l6MU9@K-A6e(AzIof<^0?Wy{m~u(qNH^N*F{ z+()qUAG1z64Ch9+(mC^^U|WSP zNjYHy5q}ftg+e__+En0i;AI@kNQI^S$3Ru;50g9ZB9y%;qW_J|#zRp{;J?JX(5e`S zI=UYiuajp`eED4r^<0kX0UYzKC>TVKEQ0N2r-9!bMAmQ3;GCat;q#Uh+&Nx?_h+FZ zUm&juU%eLNYLuai?ZTMiL*W>F(H_>6R?xm5Z%DXS^1d{QAB4s@!*bVk+Uygk5v|X#xn+FNDXNV zR|1i_Ud*Paee9R=3D`Nu3OZt55E>SNU7JEcX~qcMe8Y;FCcK||SskGBq@G$H-%*Ea zcb+4YX79DE?V3c@r=JJiwKH%~jmwfca!#H8E@J$;2yYeqrp?v?WKoxcplneask;)1 zubTaF+Kfr`d(}8W==F=lMXa0aflk2Ljb+gLs+j!JT+i(T0&)M|jc_k*jNWox1cE1< za9s<573F;R@V$ZVTd)%p*14nD5^i236Hhm=&ES7h5rs^?Grvyc5~04m#67}VuR;2-K#Q9E1AB1iUMD`%MiVF2YmRDPZ*AcC;vE$ z=>1Hj4OXhWL$*_q_p^_6*j`VT_;83aj-#RaK!DU!i<`Ayhq>3dj%vhP%Psx_s{e%Z zH?_3ll2_I+?tLAx9~uXv-Ro&bwE%P;U!xTZU(@F)%j!xl@efJSBwq6PTRfh0|qv z;qR)~^umS_P|z*|qX{QqSLP~giP6P`4~cl#EsFZNhzaB@uaHFRe6AxHN9}*?M4QnF z;*g+(`5nn1`YMSij)Y-~#w=L2>JHhlDS^19uT=s!$ zyJdH~D_`IACC)Z-#(7Oq{FKTX-1Pb?Hr~u5yYFSv(K9{t@TtovVlF1w9M8RvjO*w| zr$6{Lu8!nx-9fVBW}elw20 zpbxjEuSe04R_fcd7TcGfC)ZQ9GKV?}vGv+qVjEBnA!pKvj1tE&8$So9$b=K&N7uMM zVlYUnr4dnXcb7e8gOW@YYRNNL>vawDclTq>lJktcbU$s=hyYiciM))>yNC$a_sG{$ zLlbVl9Mw8Xg2Ej@)|+GCHz*5^E1N>~&1@o5>PfRtuI9S_^8~B!FU0gap7e|$p4`dE zrZ?2zV|fzy`^ojd>&i<=nlg{!sjY|kC7s~h`hxK9SJLg?`Y8V<27k}s_C6VJ>87fk z7!dZ6PPqSq`kYrME&nO-Ztq!69Yva$lM+H0mDOnt<{Z%=M!k=#$ZaT?BxeZ`!WGeQ0Cdg3#_ z0eob<@o$HYApfT|X$;Zt$$AA6eA7z=H#V!UlHl7KJ2 zgWhR!#qe(nF=THF(FqS>eC1yf3tkjWc=v!R%yfp5#izma;a@u8x;UQJ)aI2%%8=9B zPcX-xCsP{@M|_^FNNz?c!!b!UG-$~tO19T=N%1~5S<{fLm^aGJ_4cBK>r^_Xa*f*Q zj^KB$*CIxusKnzY*s3N)RjSsI{v30R&31-QFIDMe;W*}=l^=Mzn{sTDEzmTE{ZdT-ZYNu=zNM@+z|}PwsLqVypY!2yAKoNOfl?NHU_8V zkg{0{lnvwhzOOv#w*PowrB?~3rf9*H)|05PN*8w(#gTdA`Si0dqMG$yqO4hmett!G zEV!2*P;Z3XqCk{Tw}hURTR<<&8R9w{n0JeJ(l23>`2A5PIcUi;Z-gGxe(fDFT{9J( zzK64-wSUOiU1g}a{uy-^y~8q>Owzb5pK})u(|`P{wEER@nzHZ}=!YF7-yctaJ<;#^ zX&P_9#b7SIbg>X0D{%Ypal0|X#Q$pfUm` zV4pO2&UCUob@>R^y^)4@&l{N~iXuEayJW6MzZMkr?%~Z^9{GOy5tyCY!}@l0(GZ>@ zPh>miXRkBi=K3*Yjj|A`3+;fddmPE7UE!7so@i`4}^+oBF?bP*_i9lF`cC487C0@ttNyYJyyT;=wv$nP8N8pC0BTLE$#BC{X8p84l>hCH^N*dO zTZcpN)B4ABXStQ&!KHM1;_GCX{(3QaIXQ{*ewNS!m)AfU2b237=78=?=Ru@m0ouu~ z#J*T*!t3Ms(%zDsue*!7hE~zR5OK0}fdZXX)PRXvulZkAb(1W!AQ(G(k-aJFMSg}@ zP*1)k+m{$a?reUKLK||aw#9?( z4#|~c7*H8R7mnS7O}(qJ<5vSy)f0mGZfCguohXUf}M$}w8BK3uF9{c$sF5P^V%uAcCQWxhm8fZR$T(q z^=UAtFo4R5wxh)>H~Qh^Io!MG9JI3`a9TN$NFCQ;AC`09UcMEtE`E_o9Ed3znB{!lv2zxUPfSzGz$j)Z{cW$0+S2|CYk-TIGl z@ZwQ9``Ga{sW0dzpCUD>%;Ho?oSjYfdlsWOPZp&c=0H{C8T#&cAU3r>X5-$CgXX>x z?5YVfx7mIlRDQo8tA@>)|JuI8ZBK2UYC{>xmo?xODh5N+G#!Xv$A|X!S2$;UFqne} zmvs}Sx0zdb^L|y~OAC$pfm{nwpZv`Xd zq>nSzNjE{~+qbxmC|W+w_&}Ce4^h*le~4_980USFhLX9(*jAQ@RUdVre&SIKJU1SV zEB*sB&qSE~;3d1$)fE~gYAkKn)}vUA1D3ff(})Ep*i;i0C>PHm;b$s9p6S6) z=bV_JWCIwul8#=yqe!COK+^6ZGN^k74m6)SrP`EV{U*5~76ApYv#_}~$E9FT~APuy=fp{R3`23cnN2mY7g}vv=gdb{Dl*h4mH{Bx(rU*f_)OfBBZ-Skj zqWE6G_2bv&62$~Zd^<-Id202zTDO-dZBpX67&qaT{SkPU9ZO5fEd}Eq4Up89R5DZc zGd&&Uj*ly{Xs<^eu!f0TW^tQk!H;EJC*TqIe6qxp6At96oeyfXu7)LBT4{Re6*#$f zCp)Tm3f4>8!Sa?+SkgBQs?(KO2xwuRns9Su?k@RN={YJ&1z>x~M=EyU4C>7MOP;0* z!*(SVfj#Du=DHB@cZ$OLkkb%+S&pZfmrRe2Tp_uqcJT)vBr(gva){2?0eII(*}xCR z)JgRpy1`nwd;B__P0xj)BjS);GJsok6$HG0%fL`*GtnQr1~25N;I$A!(R(?Zxf+id zU82zad6FPT_adGPH6vFNBgwXv22^RY3O=%yHkW;&3ZZMN=OL4(DuYbgDZ7mJRjR#FEpd=^|w;qj0!_t{N^PQKeL{A-wOl)D=_f&uY zgZR4fvgoa4XeY^s40nB?YD(_^W32HWf*+6`$la| z{Bh`Z54Ga`p^4KwsU62wSbZc5Bjy=lPVFfyU%Uspq61;RU>G;H|7G8Qp2&s|pFy`L z&XAYdgmV^rCdapnlVxI8u=CJ=5F67&^FOv=^(YTB4Q?VMVX^GK{&?JNo@ljpB_bf9g~1-oZy4x91yqX_Us?N(@=?VR7^Di zT)BO&PF*SrE^_&P&S}2$gNopFe;J)Jc!_!1{+WLJx(io%@^IOI^<-zzAiOwwpLrM~ zhhtUtSoY7_QtOrnw+E5LgJ-8f`=>={QJ{nMTPk5gy&2Jttz&fzHsah_n*?Y3Bhm&IMKqn}PpC1imY{f$(zk$B)tB-U+fA~~_17#F_` z)8f-C)qZ=xBui1Kzh8=(rOqUhiu7)zdw z+E=n*u7Vz3^8QNpNl6G^n!kmM+Z~Al`9)*^UhjU1A$@+IF zQuh?LzS%+TdnHi(gb}*{FQeT~z;W{hOv`d7DA2nCy7~8s*ElYxXV`|)@v#^n97Qav zo?+L4+4$z>Nf^B#j86LlLFaq}V{RGGj+d(9`+_WQO=%0qxX(ek^d|1iG-_$c#8^BP zwZ`bnR_N1cjgv|ukc~{?d@y|W!~AL-n80NiW}m_<^D0Pemj+g%8s{){#W@y{?5^&= zsN@?4e(N7H0&Yiic;#IT48B8MqT9&jvQK1}sVv(mBu?JFsiO_QwxVv5$xFYj zM5L>0V9Vriv>2O!^1W8Hwlf#k6&bTBBEMAE zZBSPdY{?422!&^4ftv{o_jLjPZU`tOtOu=qD`-lRxIkUoA8V9uk`GU2z-ogP5cCb52uOvG!5+ElFRk9z?A|3OZgJh7xmoaDHjb<;m%xB4DR68g ziLN=V&XxZSP|x5pJG<#LOx;)rE;%(&FcwKeuQkH0tQ1TQc}Cuuy`%f*D1lw0HPyZt zK!w~gkeXT3gdY-^+15>(-6RF`&z+)ZbkuS}*hDaik7TBtIL0(yDI)g!E@Mw-KIssX z1?9hUS^ut9xNv$Ix?V7%KW6eN?Vbi%o^4p|9}khYzmd#C>!ELJI2b;5l&0Tx}whvTKdq;NYPF}?s^2A9dv6OUoX z^QVN(@8$SLM(7r{28WEb;Sa}Y?($+GV@4ynxp*n!dvBmyN@?b!IJBG1FU*W*S_M7m|%LEd>b}+scvt&l+2*K2fRFJe7 zj}c=v;QB=g#j0GuF};I*qqYn#E#Sen)8o-|O%L|n?dH5A$>j7>Wg>5)2HOkkV5`8& z^7r1A3nPXYe4AH{8L7$a@ZJQtH?fbe)|HASjqO}#%>>-|%0&956U~#@jYsoN;G`KF zQE}WP5YfIshTIoJu!ka4+vZT!fa~;}$`HFY+?}k7JPN}=Cm2+p&gw5P{EnpgSPvO(y%WWk7!%XJxYhPc+Ok zgdHtEkF))KIVVsnmi+=F`f~S zatyY*jHeu1aoyok6n43RD{|!_M4|}`*#JhseVe!Ra=F}y26BGSFhtpO(3~3tyKL&g zC{Kba7bN1BexM7IxtaU3PFhkZpa*?E05u;W6X3a zJ8~8h(zW1pUjZx?ze9>QFT^xX_O0ZejO$h3L*mgzhD?ccN~ye2+nxQF|Ir&Y6XQBAh+7|0>QO znveaD6R3fOkf7J=4U_P1F{>1lk3~732vP?Ku#Vm z27!V;@a7@W+)#q0$$trRTT}oZ{b*GxjSD$fX>MX7R9$Gq6+e!_h{yoD|Gp^SUYT<6OPV-1(l)b*CPeObL&vJ z@D`N}tHodH!gT%iB)GUc7u}?HVD8(`G<3l!tjRw>j4bqN?_mr0DLIqQH&1~Z`BRua z{~$Epki}}M2VqA{9Q}Ur1avo~!RI3da3DjIw&hz1W|?1xp8bdMg2zI}<9iTZydsV> zmZ!q`lq2jl%c<~m>p!ym_H5?ZlOWpty9Qq7CZn_H6e4nQ1vu??rq`mEvDRMdWY?Jt z2#_;@8U-mh+$PJ*KG8yM@`v&9<#Bd*67Pp3_HmTX|yQKtA%@Z=%Y88-~r>NK`NBfl%EA^3>djd~po5_%Y;3g4HIV zMBzqi;H`xr4#99BD++lx6R=yZ5*DR=11i;;3W3g|yh+`5xMO|}s!RWbZuQfoXHFHU&40o7 zGK;|3!s?IjCy@_7MLyAh)AnRWr!1J33iIwwmw*GOyJ@r5bv)tootC~n0YXe2S^c$vH2rQQ zh$K?Tks;AmPIhqbpH( zT`-p?b~prP6<&e^4~?;HC=f~o-&obF^4#8}3x5Y(L944X=&U9UHdpEvW+&VxWZD&+ zvayj^-;SptgNx~w(-mlZF9riRUeLuOV;I*Xz$_JKR5__AcvxFb?xlXfhSz_{o(U>= z*hPdY*KT7RQe0u7p(Ji>D8*r+WQ*GICrEp0BiKvV!@0mF+-)6C=mcEbKVR@=>pVL1Z87E^GlO>}_o(BRP?Rx&oc_V z|DJ?_r>dcawz(+$(q>6j%tAaRF-}k#+J^hrEyn$uVqx%D6ft=iMx!$K5tpF}^t41W zSpO*pt7SK-ekzjZvrnT{j0e___JFt;fw^hRpy0M9TImKeJ7?FU0>^v^m^~GC{V+t; zo?c=$ZVGczwUYi3zKBOhn`y8AO`1~qie3!SguR7UF!#tCy3+GFS*i6DKgVbY*2zYI z&@>mck}1X1{rhp`x+om9oehsW1ayH?E?73i(lwli^J3o?lwEe6Bq@b}OveSX%|i@c zHHJ{HCHL_mcMoLkT~5{??xKzf-Q@2qA!r~**vqwOHXd^!29LU+eH_6JU*D6~4M)JE ztpV?R3WKEOCbYaci?$r>W%c(|&~0%UMCLz9IF(R~HoE80&}M^0P;x)bD;MG&`WJ1{ z{Zbs;=7^$QY%2G_<y8 zWu1whhRV1&cOx!%uZW@(W)WYTVP;|4KYAr|9&80Fj-dQ+%Y7~>7T!+IOuan2w*Ep`_GV-Ro0F?sjxo*)#`o8Qxe%qgD zRF)5bbswLxU%Lv3t9CFlVsWUG5dx~xkpxu!;N+DnAc;t0oY4l57kO==R4mR*-d~44 z4K7e9-Akk&8iI@zcklb-F|q4eDA<3@2LlIR)AyF5^tJs3=2hY;j&U)a9Pa!}ZYht! zaElS7XrBbHhwmAI4L6Sw$nxAia=rChZM46C4#xG2lDUS$f>KvAd{MuEo!e+kB*Jy^ zcIs!cus9bVU+zNvRg1`#U|$F+4yV}0U~fF&@dx?o+Q=R}HAJ5T+$SF{7oZ8#XL0z{ zCN^WX3f?MwPN!x_!>({m?2J>#&1aGUHr=Ev(__*7V-0EOeUA4|J44q35n})BDCG2W zeS5proMU_!o?M`aTF)4|bdeM8&0oro8&0HCY+FFF$`fkDZou>xCt)aDS`ZwViiX!E zaHa5VM(<23s5w_qZ=I)P#Y`g%S*pl$w%h`jBgfd=9IO9`A0gTG=VA46DM;yGPyY3A zz012%2vJ$|vV0ZlE+5CsTwef^GbhvEk!J8;0*gOSb#eJ$QwTl~fTDI`kmb1@T;c+V z-xlsZSS|^VuL{Ebss+qQ(`9UR)2Hz^Kf$hZ3D(qoXZ^3PN6BM07VGw&pj|z87{;TW zzfR;6N!0mDMXxM|Igj{cd$62#PQqBW1XzcRaGbKJ=GE7v1Q!76;~S!=t~K zgUcHm?Cgn#o1Z2MK0Ccbk$~&?tV##YOcLU4zST=_>571U@d!~qe~p$5XOcs*Az<@e zoOipj7DD5e;*0`KK()@YP3E(jXUrz0YB(EgY!era6* zPmE{rG%Y64OG6j%yL=3sG|fWup)pobDU~Rjse+Z^WfYk<6&@J`gSPucwottm2ma;I z`ldJ{by5Iwe(Q0=t8zLn_&M|NLLHawQ^C-c?KHgJkl1;};!lYSkUlq!j8)m7L`5O> zsCq-ju6>{@Bs@8%=sBXo^^o#AbRn}yiuY#&=a02IOO`8K<9wu3F(xh(>^?rlnAjNH zUU~s|(>xK+KjkMUsnDwUS~y&M52K~G!PvKT=(?>6w*?0>o4LG<>TX*erxwB=UD?Ec z(|`C+HvwF|2sq3{Fs=)RQR5{zZCgK`+i(t=wy$IrKE$BZPIaEBDIdVJnu@*DgVNKU zq-6nt!xy+ahJr*|dZdvVdy|WsW7c8BWff4G+Cb6|OX01DFX&!NDS-pW+qjf}5fa{i zx7huK^QrAmfUKSRIHfU$?mpCkgWuI~v_}}m{drD;mK|bKe-vid>C)=9}G-Ai8kVcOlN@-j&+pKqsOAL%S9ZQ>x~z*Cyb}pG9J=moe-R1S4I`w zWWnO!Ddc|;&}lQqft7MLDBscJml}1jxw0(ou8afiq(dOQv6prCEvC&cP3gJSM$}4k z7q;tVvKeFT&>gUdXVKGV;d-hb?JT44#-x0bxpN`1W;%G+YBwhSXlFJKs={n}Q)+wR zH0Z6ZLf)rZ_{psUJ+1GF;hGNe^FbSNV3slqDmOulL^|#X&w=Ylgay)5yZC3rsxamK za}a?-x?@iRD<#BYuX{2ZSNNS4+{>juWa9BL=fw$d=p&<%rKq{L9mn5(L`o+X;Fwtp zZ5Y&`ip3i6@>U^MFEpkfJVVfbgmc_|HU#x8vmrd`32ca*f&W@s!C&1H3d`=oZx=Bl zGtW>kLAZ<<{&hhoB}KA#ULiM!=k`nn51@9!dRlhT7K{A4se_mQ%oIKHNupZk3hx0l|B zo6_|`=fix;pHU2(Oy<&eCsOH^S%F|xqyZYPvk?Y-Vb1*1gNCghVMTqF`IQRfLccyW0VmHH4)PYIpYHbgVp#eAP>b0 zv(R^D3|fWzK;Yp9Qu*yZ7QU$^&V8ChZ-ba1c!Ge+zjK2JE7y{ZulNvhSri*371;&T zw?fmONZcQ7MwNb!u_DW41j0`_k0$3Txma=(yKgCQIbKux`Y_k;_g_oyUgUCl!)M{S z|26!}eLr>BQagV*+;%U5%pzV#G-^UH#P@xAb{*&MCax&7}@IxL=( z4*L)5P|>}2+4sLr5*@EWGA-&P2%8x~c7H2-@WTRJ?s$-tz3XJ~=u?O*+mA+_Pw{wX zAf!7U!?p<-bVt}ucsw+VdG+Qn+iR8z@eX@1`qE~otjNIKd%|JueMwB}-b1g{8G-oa zdyKl!R@f&w1h@8DV4=iLDz!xv9oHL!esBfxt`%jey%8Q;vqDg3?14YI?2g<#3z9tN zAZB)+g)t_D{)=2kvjZ;U^2Kh@?6Z!U6qv>?HEo53^G{<;SPr|pDV9VGD1f)fzQ=Mh!sa@UV{$Z$F7YdFc}H_UWag3M%JJft%d z|LuE1%;dRQeRu_{y7HKX$dOx6lr4uQwMR%sc@Z9$n~9tD8Peum<JVVmv zJjm*br(*V*iGsAjP`o(UYw>G9j(es?;O5zCsw^soYDG&pPmZSGMg*U6YZS(m6&z2k zz#Tjs8sRr+kg1Yx9G}|}soi2c>?grb_&Nhbrxw63iD>vwsEXdHbAnw>p|n`<28eMp z&OyHf>VHm^HAr1gO>c!@Mr=AP9TiaXaVK!mt86&3aw~g9iJ-C?$L+}Rl0oK6(it54hrqO$ft*wdq^IA954R5C zZ(V=j$?D*RAb%n}DS+#p1>vn%x2dDaY>?KNg@e;gktvTNBKzjS3x^wAuTlbMo$DqC zR-4l89t$u|QCKi~Jq1p0or(1NIFjy@3jWF8*n$0`5dQWO96Np*if$Kx{^K4n7%Zf} z{hCPBObOg#U5_J!BXmXBQv7>Ci)U4?0{6c3GPaXyv2juzD@oEZK5!kjRBG}r`nf=| z>?4}!R)M|e3~2LUEn024L=-!RNlTy${`f2;C>tn;>&;hLk7@sRho2|GP8%)KY{YR# zsE)w&`Y>#hj)y73^{5fp${c}bjK4w(IkhAd&+Tc(OWk}t_)i5cY*)cQdCS0L^<^Sq ztA&w`PFQ{}4z(($bFQ~3>@4?gx~46OJvL7s7jfAUUxl6g|2weNOgE9xnCDdN{27p4 z!Eq<6Z!*U;+Nnrd8P($}fQ#X3FcP^+vy_ryk!J~2w_-7a%hWx&RUfv0mkL~eHg zVtJpr-Jyt=o<1Pai&NpN{bAVfG>sX47m3Brn;`mcEZoXyfVVCoEbrJ+Iz3MeCZ7?< z`K{G-F0mrhn-gLAiJdT$;}NW0=1q?czaZzQCZV?Y0^0cO7|u1-MDHkdP&}*%7uKfH z2pLUOT*rAVj!q&sraUA~v1>8$PX+h6Ve~~d$IIaIKYfZ%&{3=pGh9F6m`)3E>aT~! zsjneF#gB@Pt%srY_Snif+QTk5gIavS z-x_4p|HDU#l~@w@iV5#(#W>&hGmuCRA`7z>j-sWB2kN`O$G#bJQ9iAaF*+^|?hm72-wIKSz|&V@gul7D|!3@Db2Zyo#VdY%v=80 za^e`sE?6mW{_}!N=h%IlC6-gmFdcZ{QASQZ5r>`wuc5j^41BVE!NJ6XjxItjLzIp> zt*M0WPlrtl%z(W4NHtBjW5)D&_R&s9dM!kY7htrTSe6MuaaJo+u zk61DX{I`R`HRM~&I`XP?0^C(P3YuK!CL{Y4tFx7lOaF9&QW?d>_;pOZ?`w2Y z*#ovK-@sk(1oCWP0+EV5OLNCo(I5ZBpwoFGclTM3RawEfb6+8-J^Bl|S!br|3S+9CM_9R!Q^H zw{zZY$1v1eSxD^tBUyW{jYG?jp(5K1?^4$3oGzWKdm-=(4SwXy>-kE@x$!I({*k==p{}VYMml7P5n} zGo_TiKF>}+*F@}Xr>0f;3H^Sn1H&9*<{Zn z2^2qG4-+p680je~m_%Mc?ut|xc{3G5xWM^;(qA!N4vBi@0vHx?gTaHl8NKm*x4$mP3MSzk224;$RE~v zyaF+km-yh|K3vpLLElWY0o{r@nC+uMH+L=J_@MLQUtAwa3!6#GOq%Jd=|kXI{g#>k z`YGmr(%>DnUQLuI51?qcEj(?y0~(nn&?&P7Y#irO=a9er)YZ#a`zepO{$>+~SqSKu zVHgw`ErlaPp0M#yIJ(5NP>s(scrkBJLz<(Cz^HvbmXAK9=?4oK`8%^Q+~O%4*7c6+ zp1DgF4lPB8nmjanUJQG*#>m%CQgB)%ik^!T5zH9QBUwA;sioTpe~s%;GG;yx?kLTG zv`1+u5i~%gI^Oc{zq(2jOC@o|Zgc2OFoK?MXYrroY;ca|GBmSe8Q-id;__M!--N_s z^Q$?uwO2}u#@X!>~4^QkIGg! zBxnSgW;tjN-%JXVPUD(+^6*Y?DLme`9FjP0`RbL+X+y9$6nklr9_g1zG(;e4)oe8K zQ$m4?5bsQH13s?oN2hzioYO}EbtZMu%zxkT_UU76WnKzjaP1D&$mHe&2QpyWz1Q?& z{X)UAPw6Pr9Sd{Zm%_syD@;=1<`aKLqDt=FlFH&q;*ri1`?F zqLSv_4g&K<;~`6}fh}za1ZOWV=2yyT=#P9%1_~Y_v425UOkaz?Ic9d`z#sl3n}x`~ zxQYz@-AMAvG_fx)oVu8QgByOc1s~;lIJQU(!-iT=msB4M?`dXen|1}$E6VBRFcYxq zXb0__L{wy-=K4^AWWS>fzRk ze3%|3ihF*XrMpDC*@M-dXl?ZbO3I=z$K)v!fLSHoa^rw*Ax#2{|(J96`tE~xI866o4mK*DTcUh9iK>UfFAOiIwk#A0Q^ zgdhGeYsU`!dU`pP*dzw`cm8CGcb0N@PikntYYOk~LU%9=6U9#fqOimLG6qd_AyXPO z1WP_8p%Zt8j+6gDe5{*5!TuW2Z3zL12fMNPo3vn9#D-lQ-iDbX|Cn-PMQX2<0vl}m zz|1`#&qM^07qW-J!KWFmS7*R%e;GmQ(h*GDe}yD@%|Pi*<9Qi!ahRnbL9aCC5NbP( znE7498iQtNKb*s^`x*~d=Q}W8AC%CZorlOSK^Vg$58bY2cTOm2kZHUOGkEr3l6wg!jeE~rTwTuHWy^zstvTjudDC-O9pOxRFfKcM zhK`rX02%eam?5miF2A$@e+h)(kQ<*ojMv7FmbGxVq=xFu^~9vn>Actt-K1r48w6+u zL-T@du=7YW^L;tT!AkaqUd2Kjw_qHv@qI1GjcTBA>{;^HdmL}x&I6F$J;omV6APoc zKZ(!eJM`}QLinh^7{||(0GrDHKyEqbc>DW^u8ZYZt#22At^GT~-kL^rsvi;y>tv=T zI+<7&OdAz<r5 zC+(ni?n8J{5Kb@nk4Kfol9<<9PbYZtpn50*n;jy_DWAVEQhAvilD6R7>N)%|UIohB zE+!@`PtbIqrzA3G1Jq7YXCsznkrQTKq%$Qa2$6K@TA`JFaz+v2I<`f&vsIh28z+cqe*)F%CJm*T^p zf7!P3EDAP0^gpLCSR7bOA6@=PQq4azVgEIv{#r?hYAd8k@0Q{tr&x4aQBTumRFO*! zt0A<+nr7a+gNxoirn=jAW0v$yjte2phTJPAQ=UyHg--`r@dNXj{3|Jpn;MT536e!; zIYWHB-Iz=|?~mF+N^ru){HpVE0~GDx^18PQV27eJ1nqsvh@K6ETS4+Lt5iTf9*%*7 z_6KS14G+jB>SWkQK(BiEqS2ZWNHY${byud7hY5=4qqq!)%jLPe@Hn2029KMUayiA& zW}b=^&ZZQ9=wN z?$R64fl#P6pUjs{1*86U=0-M`(~qdY2maM$!M&?Y?D+*aGGUAqTmD8f+1EIdmJhq- zqaoGo6lN9`v9(*u@NY;BvA?naHS8{;!7*jFJXW} z1lL32n}7F?#;aea(r<(5OrP&}5}g~$8jYoc{EEL8VM?>;*tT(SVVyEMKQ}`e2|rNk ze@m86J_J|Sex+5CnT)=84zkTHjMc|jHZ}JO=VfAuSDYmVjQ@bIe=Boq&0Z$xsx!$G z(S-!Aqux?8iRYTS6aD#`u;-UBtb5yr60ar5vOF_#SLp@J4)%eB-gjVO7(*0XW#}xf zm+;g72HLvUVA-P%suiCK_v~6ZRwbox0{r1g>pN=hE5%bS8Y1;K??SJ~BQjReg29u$ z@Qm+eNS28O(PGXG3_f7F<`5osmV;y8#MryrGoV?|j7}@B#mvM*u;-O7TBJpz-6B3{ zCig?~jzw5#6^6p1wNQ3s39rRG1_yV}!MFQW>5+}jaMak3O&trytCqdE{pn`Tm#M>> zYgI$n-l@TlXSkf-sT_Kji6`FWD(u{^r>ODEEcB|Khw^T3$YJvmYCI#9_=MSF7&V5c z?e_Fdc{d%5OQLP!l7i=cJ$O&w6aI5iV%)uk>6;V#xHEDp8f!H&G~gF*U9%1z7@WWz zFW#cNV>s9chGW);5{~;b0j6%R#L=;MVw>$kEF6YtaLZm4I%NTdyfUybDX~z>=ponaH&kjAplAMEBX4VPUIy~v%-FVVIYm92_QH2d$ zXF}uWCww0&gP(nOQzNlmG{#nwtog`KvO|j1{9T|lnc4lMlAFm#eN zsC%W5j_Lihawv=M;}K3yM@*p8(*{UcVE~uOh{Rf*8T3d!Vub2A$QqnMM$b#4{QOGl zTs@WS%>|gFbcv1SSpLKL0$jd(JH0$tjARc~64`UpXqJgKxL!43&REO@nXHL;Al?YP z1IO`J$H#Gg3hsQjE)HI&Xu@yW0fiws=zZ%8wl;bY-AgrC#mxZ&)WpHKfRCXSo+uJr ziIpftYHx<3hc3sW^}bJS*a&KTPFS$`sU*9pllu|u26s0HN9K41O`+{Iipa_1w`w{le zD5P_9O2NHci?sin!gGw}6Wz1xVMoBgJfH$@>jO0dHGUHAF zd^=Kvomu6yYZbRvRB(IA*ohb-dycs32cm4|6SU0NfZB$C=;75!654OlgpF_TqZxrs z7ad_)Kn^NiE`@*Gy75&q9xs@E!53$%(f^Y@*?eGxUiWh&e(I+o(&RANDL%-}-ITGy z_ZDe8;!2#0$W*C2nU!wW>`*8nrGb%12DX4pKogDvHPjKKmJ)Wlnn3jOzjvcr( zNtR4sy8@msdw?(c?!cZR2{@Fgg%M9)6S;r&w7jN=#Ba~1Pd01dza={8)7nB@1MEQR z=0ddnDhYaruhSxEfGE{ZD6c+hrf<=M~GjuJDq&+J`Jgy5@ z-}7l#a0gb_4!ua3UZlWp(rYZS+WYycrmE1azk5<7GmX_>5%mNsloPj|V z=WyArBOHrb-(pxj5N3^vVe;Nt7&wpccDp)blMLP?|8QecDSJN6F6OnAZv4NL2UH}3zf5B zSeNR^o44vD+5ayCiNtFBlvj+chqB?$Pamo(?}p*t=JdA13NEvMpKb`diOVtV5ao5Hb zDQL9V8y-H-z`f@TI0s=r+gS96#&nvXAX$xUbtTk&Ml(#^bCm3kb|YyDV|d{45PdXj zKd!n_NRq|^sEBqyjd`#b7w@X01rZWFvmG9IfJ}tV%E8RpnMZKnsWWgSqnjL0`aw>f znS?Q3L$Hu%N0+*@@ZtIeJh6HcYI}MRzQ`hwtJ%BwikmL<`Ynf*Fk(D1+uZeeH99CMp;~bPZQXnv*LkX9ie(JBKdS&94QS9Scclc+QWm1kJUv`u5luXL zM`?vvBD3$N0f;Wjf&6!8%oR1{EWS8sVR8C&fo)?KHMG%0R+I;?SBv0eHF>BxHpG^k ziK0&}!~`p@m}2MZqxfQ&2Z0Yli1g45&NX=zhoY*9kv)OmM&)qYp$3*d@q^}7DcG@Y z71AIZ!TgF8h>{9N>!Wu`m%D<%^pCQjxU?CcOq>S3O8Y^g^d$OyZH5PP7V-6F{-8g4 zG_Y{ec%JYRb6P)-^WYsSf>}nJQJxoyJh|V@$nFBj-P%rHIG(}p?^-z5)ew#tM8f5n zpGiuF3}m=-Gp3!nsFg>_g7foHs#zA+>(}7&34!$Uen+}vz7}_HDJFQmDhkpEIO8Y( zFf49NAmLYhSkJmSFnq@vm6hj`&2B!#)1?}#w>9I+gvo+~4(Tvi!WzCM+{WSk^WfL7 zX|Pte8H-NV(Kk}PFoos1o7TF}6SW9-M?N4IcJ{!sZOS-)?J~0OLNRRL2DFOtQzD*0!)`F2@==Vu%YC8{qiQW^gLUkXUM7gJYU3 zep$4aJ^eZk6h;|nSlI<9AB-}p6(SA6v&Zw!+J-|@5Xb5av<91#-So)%P1kQ!UJ z(iasADPJ*~q_7*gJXj#8k5_>#jkS;yYbeO}&=#=aPsm@>bqMpMLH^qqvrb_zguJ{! z#RPE}y;+a3e_TkfJ-S5pFVKXS(-*;pB3rZ*noC&Lop-O&8|T<}(5#YZ+&*qAW`s_~ ztqUau3$2B?_4EZX$eBWzWDllp&oX$wuLZn?dPqlp670IEAdsFPNj{V);WZmA=&NjJ zH-zLd!EG5Jy+jqf_x)r|ekVib)*Ou6wHkVQ6fih%6HZGF!9{`?x^LDQ7(8(T?1QDT zKI1TnGmT&+Ov*7wK@UD;pM|I4Sr{_Lu@5bj1ba)0S*73H+$8q_U-8Q`(w68?WHxo- zZPdpPE#V;9rwBLQ#uIk-Ct^uX;e+Kf5xKtUc_x5R1AQzM#L{1M4|8aWF0FZ}$NP0@ zA#VS|IYa#oOUq!m$k2mOArlGL2GM@Xk65SPNfRCsaSjOd{x4a{I zEw=^FQh&}}v!1Us|2&;}DjC~xj$re{WK@d147t+@Tr`g|EC|v&eMtmHL1T zpL3_Jm#1g<9EH&%rvdlP#qYuaSj+i5BeM*^p!o>08MXMNz72fXP8c|C2pjtSp*UMs zAQ`FxCzqc=|Id8-KItZ$H&x;o)Ze%q!%BGN77I$`6bx$J!p~2V&`xO^sB9wSrD6>E z`fMk*>1L6_f=sx!=@<=eZX#~Vg>n_S~^sg7s2e6 zn)v5?8@uUaCtfR7!M<&BuDsJ|xH7SComW|_0xT^`qT{*wTFfcDb3;1IFu7 z&yyh!PphEN<2%Gd;Uw&qy8zb8BD|0C&cv%Q3O*NPLB}~H$u$j7wJr?y-|>ghQ;Tq7 z^hM%yC8*?SFNa6etomJr0 z;Z9$Dv9iO;p$^afu@fesJ__(0-t#Nc>4ghm##r|^#+ur8q|C7dg>U) zb*hBq;mvY+W{qm9;P}pFwwK$-9DL^kk2BkFj($D~8eInSdt%Y&i8L)gV<1>Run5x3 z%Q5$3I&KQIaj->%{r`AG~EN2j3I+VvW=j zx+N@>x%bi;2l$h)k)Q;-R<}x)jl=nkGSwnT=JaXznB`gs015suj zUA8w8hwQ}!lY|<;Ca|2X3V)2B-=4wTJCeMlE32V=*p-9^zkm#}TC%AB3mWxpWp`+- z2fNqDQKk77IhHC#W-C7cPq$2X#TJmw;S^>&sgZr5Q5*yO6JM|532uJVPiMT;g=QBpkHCztjq2G!e@{0$6lnb^a3G0mcF z-Z>=5GM7zx>;$*b7heAK0#-5 z9yF(-8~oKe>Y%pV0oyCb39d{yg*kVBF+a-FnZLP>WTt}(#6P_ZKmTyOt=AP6Rem!u zs8Niaxqp~a@%^lZxesZa*@B)w_YiBDL~#51nC?yDn&rD3x&6X8&@5U2@gpahhd+zR zTuV_dQ)>&OFKfX{_$^T{zXtwmgwf-L0{s$|g-%mffOhXnJjJ^U9#={@&z>DK=OdT< z3sOh>IiFyI=N~eldjYrmXu`%{tI5Zw-{`IwZVlSmg^RHqM)bDQ;B8`fM<|&zyX=6L zUo!SbcK`Is~>~XLTys= zu8irja6#V`e;5FNlnR{!ebN$S)x9M8_PQj=*sBO9ZsbvY^Obyk^GZf~@B)!su!CB@ zXtcQKr3#E_9T_U#3Hdh@m{-{^$+*4t^u&chx>`#{U`eWJ;TmPKwBD0sPDm!>Pz`pb zzhj(vWkhrLRs61r&^B4{&wl|6aZ1B2D7h{%r<*lm)7QfJiwWW^y`@-E)DE5Q2i+}Z2k39xax z3~zZxWWDzwjm~Hwn*v@#xA_5#tqzCA<5LBD9bHGu zNLN@DxX)>#0o?a|A#OENuR+MX@Q>`;>kYGP_#i2N5j%tiQEl5SoHy$=Ezrm%ty24F zzvw9}JZz5B%(?Z@%buJz9)d-R9ZalNG%R&bz}7A6@#mUg5L^ER{dWH%BFBr623z8u z?HQb}n45b{k>{MAFxm=P zos`@SUXAwJWi(yvIhiGUpJdCA1NotRR5i$^Z82*|xq2Y#uU3RJ2CwKh?OxnAs~P<4 zQXn};ixJ9pff&CYZjT;;DP9k0<;!|xt!wL!W|%9#XjniK}7-`n8&3qMHH)?tV&~gm76AQFM?Rr2byYFeBv*k^gQ7EmJryS)>K`w~)u2 zZgF$iJWQY5$im|T;yi~PH6(j^Aje{QMEc<-9ofa;_ z&!#8WV(hGPEcsQ->bN|Go7L?!bLD)-qjnygsg2;XE%CJVdnVax6ioTK7wDD9I8v09 zi?)5f)bD*vzr#9+{fqSF`JDXw!|WO`gQZOk*#>H`8`>doQlP(yvV>O zA$*iPKnKQA=G9*n-hM?5h$_Diae{O*d@`GKsp#Rk>YF&U>kjQXa~n~{m?wNB3I(6X zQ_YZ3cB)?|BVoB2`nyVX)k^2DXdEvzqTx z=)5{VCcMZBUL0d^efTUidXoqr)>p!fX~D#$teL;)gC$%_&j;y(8(_0u6^13o!Hx7p z?)mt^9JZK?|CTR_u)iUK9w6^ zjrT=9l1&TO(y7IrBzBG;>RYJ5PTd;*)@)~3@>+u89VPTDu48Q0vM6yw6SWJM(91hi z1z|)IR~m|g%VZNwShoRcB!AJR4O?)3aw$&K7iLc^ECM`GNrx+^ATRd2`6sKzIM2@o z)&}&E{4)teQ}+ZhR7YRp%4K!0m)-_>DPJ{jqdn5N&!}Pjva7@Jap@zEkA92}}|* zVdEC+I~t8|dq1*d*}s+G(r|-L!-qM@}_Vx z2Blh}($E?BV|kdg-by2r1__kClHr9(u7!)1mY|$u4(AetSt&PNH1^4}$Z6NX_tK-( z>X$K??UUnuzwicG{%kx@dK#l0W?@r$2WkAxxjUx-&f=aqovu4@#{Dr)4M-(FYJ|wq zizb-v>_qG)We|}Szi_8{;W#)9q{@#E;Hgw~`g$JOEF37Hql%}i~v=Zg;(F6R@GCz8}NF&3t{ z%OS7dh?^bC@+_}#UYA>b%+I3n*!opfU|o@mEaQu+8z{BxNu{2ngxR{ChXSgEZ3%Vo zbY=zF6f#WDOwS~Z0o`QDmyMul%<&bL$m z)z7(1@?zKFo6oK!_i=IkX8{Fr@$y-G;YJxbhZy`>dKunG&cM%4eu7y`F7&n;^0j(+ zkhifMG~-fW*XK>Rch+|Zy4yjf$nB=eXE{Hl123vPEg2@5h};iAH9h+LM$K6vK=&229r zlygl;uhPS!HbpoGKhXYI0B&4#iu>l+w1!y73n7uDd}jG-^oRjZWCCCB!FZ zrhv2B6UL%^20B-3kxRzg>FQ^tct>giFQNPi>rpg|{P6Lh!b98)!elwwyDtkLTwe|I zk31t&b$7uTVJ`b|@dMnS_W~Ea*vLL^xkK0M31Ii(Y^Oc!eGCp zoxP^G9IvhVjPp1jv-=JcA}(Trig6O~ahC@g-5n#_qLW~aPX-*={RHjq%*6RNdq{Np z7%A)wz|V$fYV7OXa7p}1GSsCDA`0Tj%x)z*HPZZmsk`B6~D*Am7g$c!np;UV(xIOKIB+f&4I_w>%3yoIvM)@npaJIFF8x#CT_F7cl}algWPnGJ5{3DwY{G;j>37^t^{Qe!rLp ziBBV8P@)Fi&b@`R4(;?%&^KCfX9wOEHm`Te%>~_=b1}L%3yuCh#0zUbQm^tkSZ}o! z-LkV;iB;a{U=)DkKPpIVzYU%!?jarV-CWK=n^Z7*yk@yesK|9+i_AVkZ+r-?#x_*@ zcOE7V$dmd#!N7j<#<==0;&s#rV@|KahEKB~Zoe2jF>*u4Rz%mm=0vm^Sy7WE5Xzpz zH4~)i{2SuDd&w1y;!ZD&P`(JC&W^!Z|F>XJ^9SE{Ws$Wn)A9YJLHc!TCS0CnNSszq zV!i%kfV!gubp8BQccC=`->NRdvSVowDl7wkcJGDQjVEw+W-JYF5k|>bh44l`99G8) zl7TPYH1_aRk`S|>ZR*HlU5q23N5}-mKYqvmZrmVl1B&1j=R%V-X5#JBni!kpg;Ajj zkRnk6gM)=Yj^9M-hBo?HYZlDwpTRSV7kV`4b^%Vl)QkaNonWU`Esa_mL!&&mV5#T}*xc+5f8Kw<`QE;G z)#M(mQ5EM6TNE;mv+q)afh3&SoIp2z4d*h(YtV|Z!}4=+@cmn#rHIC4{sysq*eP;| zh%8DX+0!;b=>1?;Tc-u@ZF&Iu=1QGJKv-C9CN}Oge%!Fl) zkQMSB)^)@%3gV$KBL9`Kuvm&K=BR@2k~>ttUjYNTPO+EVae&LYpee_3a-=fJTA2wj z%5moFon}L?-W|3?U>mwjTaHm5TyeSBZ%aGFHteY%#^@to$nssrpsmnF_YgJwy~T-r z<})AmIbOgC=a$0J%ppeWZzY*KT>kyekb z6(wZuj`Of03)$XTEIN-%^F99tqDp8~{iR1QiTKC=JUXGv$=|K?c8InDYyb=*Lh&#|FB_+#6nbr`R908dslvE95}swW}F4-o%L)#KGrS@{#yS?3Ev#YXh^nj7%&hB}P8 zr_m)%7I-k>3b|o3g_JF{w7jGs&!gSbA$5-+s79_O35uJMBX8r-zb112;D1oN+lOr6 zpM)#Jioj6-$>mjntl+?AJl{S{-nUJLWs@e6u}Xisb9y|i-x7cmHin>AZ48)5+n~27st!!MA#Hz2s%|lP<`AKXJ>P6 zrNx3gk|BgfG5u8Vco*|i&=jO{i^<)1(msYplcscp&KMp zN!#lBaR_UImqTX@P#? z61XoUh5FX2@pgvygK@)cva(YaSGLrm=2!&Nc4LdAz}Ofv<>Y zU~xI;kQIAE1f(r!*c>ICGfkFfx6=%2KS*KQ_iZ?%G>{5Q`e5vBL2h<%9CclnLB#8g zjEDXl8lUJ*ZMon3`Fkd>Uw^Ug&jf5#KaFxfD{)nZ6K;C_2Ew?V&=$>Pc&fjPFMtQp zP;?GH^7)4kU-Zy>rT?%iEeys>syRmbI$UV(Ogne(gusmFWRvY)>~V39H(CUdhoHZEZIb@MMD0t6=?n54YMj=qxj7yc#IbbMbV3RF=;b#SR?|sIz)5##dBOgFM@UI_)H>f z_R!^K-FP=an99mj0Z!YAN+%~`hNKZ+yfgruUVO4#I^4sMN7G3}XD_+)bqnhr>`G_* zo=1yuL7u`NJ=l7n4wE#6aYO%h_wOs8Ybudwz^9evF- zknM1tRtoO3dq(5*#~F-0w$!=nP6TbiYI@AcnryG)p3Q@qbg;k%Og3m^=PNa$WgEpT zm0e6k`I4;N+&XsNgmt_SQ-Dd^mf@;3y4br@2Z)dZylBuPyOVa4$KJAV^4lRiF#Ld? zm0t^88x(n(mu^~gb_sH4-%r9i+fvQxm*8>T5eR55q<<_%FvYXKUe)^yWR3}dS)dT_ z`rH8g*qn{;CGO$1#vwF}ljR@ir7-391gO0*i=+u9(YF=phUapyHyq`L#$%s8Hk{AIdrX9*tP zsKN9{sq@RUL?O689>Y2e$q{$Xl~)ynrVZ|BzpDU_^;i@4>=Yuhavz%OSHU0STjX7^ z2fexbNv4{KX0Hmie%={2lBl8$Gm$@1H-8jAGw?<4FimEnK(X~$11B>76GwP5YBBQ#mG0QWAt1tljc zSt0qW#Ck>x?pKlJz2Vr|9yd?m)@1^y)G-N`ITm7jiV=DWAEAZscc7keHEp`F8iF(< zNlacHu>aXX+^7nC_a@--_!PQKDkqmZ=krEfB2gqkjI3EuK(eZ|@v~$lS>d+=bKjr9 z`z{S6HPr=}z5$eZl14OEaQ@;zlapKW3e6YiX`m9sNA5Q!5<|eL#TC0Pv z-zL-rSKJ|I>&4*M)>(L^XbH!=|IBC}oC%4SHcE9igWg{;DaBr@;K2aZAVkiIcs zsaKW*h7^Rrio30t-CYE0;VOoGolM(mt;vtb)$CELQ&=WF86^KM!#Ry&yvCzJpgb*r zHh-AK|K>&LyC9i=oj|pVnQ!4yG9^=|sUwB6uVh zZHs?U-4-dF#LX~uYSWnu3Y=$PXB*hZ`$J~zI*7+TnCGqw<&`f;mP{1>*l-_??XsYL zMR0KDlajlp7|?A6?b2yD&oF`RJoA9Gx{AZ~ ziiH@xs|hRfe_>DaV^j`~sn_um!8Zj{cyc}WiS+AcI<5FB>dL*QhUNiG?K1;R*6x78 z#9~}>&=;riwj*!%ck~`y1kc`QF*N}>cx>kxqL-0J97|&A<5kD#=>slYw|fvjf97VE zvZi$C@oMs-$*4Yb_Xbk$R(pM_Dd)GpHidpDZGpeqiZDMd9OZltf)`ch&!5wc4RD#B zwVsO;)(moc5=mMUG>Kd>Gin@QdggCxDR>3C?*4}Hi#M=C&Ya9r z4FuzZ^GJw~2G!;+VVc$PS)o_O~C$+Job`G_QpF{_3e;@M{|U zm~H``^S)5=_BY&2JrEv_gwx)vY!aS%k@g5x!HDG$YdL9%{XPYdU06jvjERsxGhET& zRT9>2UW>ody`VE~E{v+lz{;meya$Ov%*gu;Y8mz#vLe-?`D6=o+D;G5rs3pkej zjL%15&}u z4n3hYBi!FJ@jA)*TZbYG!-?CD$He+_1PvW!P%`Q<@l8L&!Z&y9j(G-G--e?R?>w}& z?!&`VCZTm;1I)@Z#x;F6KsqrH-mm&iGp6YA|D}DWIabZ&WrGqq!ex*T#@LeZK?1Le z^5F!TO1AIcKvYk6P-jhfRJp&NKWVx?P7c|EuS>(RB{K}Vwp}MXvs)~`=L)jxKYXs| z@BBdIZvKM$_D(4I<_se#6L>vOZ{gSF-CP&S77W#CGY_S79k_)kBZ-t_lC zr&c98`n?Au&Mn9Bgnu+aPMD`_mx)d`8;Nc58-({j4i{~JgCEpM;NV2^Kq~G%FtfCE)H88ewqchZuxKyrOA~=UC?Yj#1T5j_9s^ov7L_ zB5wn(!v;VI zr9Z5PutSK;KdN&atrs^a5p{*^uxp@ceTEE_UL)6|v(Z??4fp)1U_AQMff3T+W{Wy# zr?{Rh|%%>|QiScLlo3Ss`KVm5=ngwlgS7|?kboQ}_YepAqBo<@RHI~>K z+y>>RUO4b$6WqHS#eRMAg6Y4sl#U;1q?0QiGX5eXq~>iZC+7>jc8<`92VE6qnbi6PL-(Qdf-zr=H&$(8M;GBc0c)iwU6HC ze*q1nM0m7H9Y@VxQlS`1JUB1$Xmv4owaDNi_cXTTE1x`WeZswGrEx=LEKGG#;LVYF zNKU0nqx#7lE@S=Ca_IFfkd(~A@A!fI7ZM7^ALHqq8*?$k>N@)@u8@^{ZHuX!62Zqu z0TTo)QAXJgTrZ7bpldkn4V9+a-aqNI-F)mGVwkO}BRH+b5Z`?>Wv$CB`Ps?EXzXc= z#)n3j&E;=!@d^hNEsD2XJ+c%=U&UeaoN!2T=CY`AtLZTJ+dg(D21`|t2pNVl4Wof@ zYETTacQ}CLLVG;fmWf5TIJZ~GTC`i854s&YVD5AW5XkO@shO@+de%qkD<{DJ?Nx}W zy_8(Fjv!(yPJmXH4F7oMdraYOuPUwm?0~>2x-+nx+4^5U?$H^oUz}pY#6NhBH+zFX z&Bq_|EjGcghp&kIhzF{lnnp_Ze1e9tID#6zG(9vAY>$kRyzDgUxuBXFiX4Z}-l{0U zyFq(ryU}mv49LE&#Na(Y;fdBs^ls<4p9&=)aD-zZY@3dQlh?vStu(T9)hCh|@RnTo z7LQ|+y8sz3(`~>phx=uSv6M2}f1b>GuJnbdcx4#;mjI!hL+QPM2MVqGPMv?IQmSVP zotnq-^jaxYJ;PGM`A(k77r^8b+hJUCJN?Mrhu@2|lbV<^WSukAv*#xrXek3W(-Ac#io8WX&7b3@H^7!xjm{;nd^w^9nRIW4x$HzDETf{ig zIFQF!kP_Ja&lmS>cn)sdj%cUE2lCdYhT7JO}jrDv_UUTOmUd14lrNeb{T zwEiNG#CF1tY8`s#SQcuYm*LI;2Q=ygQor!zJx@duHG3yY{G3xjaAjB^YyQ*w3c-IiK!L`xC>%kY=X>Na?Amr#mAuZ zVJuOol*4mtf71Og{OO&KT!yoe>x6N+2CX zsyC&;e-{Nn%5ex3TpID`{Zn*W$Zwi;bvCx;ZUimY8uGaNGu?5l0N&-u@I<(ohOvqr zTRvwo<~))+DNMHcH^PktI)D70!Na2U{o;+ zeu?ZL;ZsC8)};;g`|Lo~{bX?aRAZbC;@DnSK;8``Lq*g~j-6OU3T4A!!J+5mtbGM0 zJEzm^Pz^?D)nX8vJrM%jo{-D?V_COtW<>7YRdnj*@*sUWSW!0R{((NNK-z);wMJ$7Hu{Y>YCd_vvA>_tuO*koe6{J(e;a1`(`8AM&($CJq;y^VJ zmTQ1c?*H2MEfQU75-?_Q7tyOai#(U@4zIoT6+Lz?a{^5Z|f# z{3Tb0y9qcXQU#nsXEWSPz#|Q}t>}kiZi+n5;yL8(?j)$|;Gv3V5-cN9{F+`rZqK?3 zTK{B2)T{!k7(2gyrl%;;d?AMh|4oM#A1+~H`(Lhd+7o$j@yp=^o8g*Wk-k=UJrkkeubuM zV!Xr!rL=8?2WF{L=)q{fF?dO)TwTdj1vimqTWxq2<%NESCi9(6a$SO|3e+AlfuFD4 zVE>_LsA@Tj!>8)u*s*hP#=rvP+^^!z^-rmk`gu%g7=?BlJ@DVsf|AWcL{WM@>Ie_e z^%lkOY+5pv@YzdzXN6&E(>KzR8$`8x`e;*E90nx0!G%yh?yotD@A_1EAB`f2)|>UP zJF$oi+W{TBuL1UFZ&~VWnTWgJ$nocF*$?6S#@K`li_zEkK9w_%1kX)($fb*l?AD*L zur0_BWokCC&H>4=3`9`gwi?YpXA!HoWDpbEOz+Z1#An@7_;BJl7p|r)@MMSKN7M9rtM#gs_UDy}PxEDj7y!|hhw+^6U6v;sltpx(zGdbI*x*AhH}$qIg`S?Zf?N#0${LCthvbjWaMC^)SBw}z zpwI-k>g!LVN0LxfgLBl?iQwVwiy@U`{5VL-@p!k?K+kOv$=6?xLQx?|-8V22*Ji^% za*JzpVdz;nq-l_NxN86<)_f0`5LU( zeTPLfkYt4g;+%u^XpBnWA{vX?73mN-<*w!5kUsKcMl${#*GFE&B|3M@InuY&3P$T* z<7Ftrqgj`+==xLU`C?NdI`SJ>7jBn#bTYK&&w;CtjzC0MB$)JPK)|3SwDwD)GdG)l zpP&Zb+sko%+dsNi={lENmBrb`L$vcN$JPD(n(k$uV}VmDxRV#sTy&YJVCsS*?7}B)3hdh!MBw<}-3p>z{S6y|m>DrfQ40q&mv;U4uK5#TQ!s9;W2pP`yjoEO_!nLLW; z&JLJ@R&%}(t&I=ZZ7c8LBrS71+j#)Xjt0}9hG?>Fa30EEJw-xfI3<@7$0w5PB2Np~(f^4)9qs)>%bu=dmQBcl4!$l# z$VO4Wz+5L;~h;aiIH$2Fi z4++Dd@=W+RO9Faol5l!r5=^jNj2$bV(_X2qc(D95HQo7^YGwUq6-{ST_YZxz)WMH> zaxTTZB92FS^e`kVFQK6?pMv1C5cZ8)5uO^lY&l)J1&ppI0kJv+w<@>7n0^tRs@;uo zY8$zG6~~UyY`iVC1TZjSh zz-Y9y8HTcqe9P-U194{BNvPC~AUbK&@mb+xken^UyC9nbnwt_aetIFA%FZN-jcqVq zHHptmzt45Xm3b*sZ)4iuXsV!Z0^Z&d{MVP8!6VUtdGD`*GZki%jHK73AeR<{$TqhviYMF|5V6r zxbE%6=&NVrT}yE!K0C2cC#UlEfRCLuH}r-sreNPwOltrQ7?@`d4xephV6 zmNS+pza|HLmI^^keg=GWK7zBPa*48aJeJFBsQ-14VDN-(^qr$Wx9^w_LOatS=HWd2 z)n$Q2<*oFlcNWxyPA2w=KhXT#WR9b}&yv<I&#gSvUa|fkEnp&6~ zTn|D&?vkL`eRQ9mC6!3HNOxTfgML3nOiQ(cbyL@nf%{@GbxAzil{ODFu1Vs~(LlV; zaYiS$yI@qgKCD-NjBcr`LG$$^&RHi76>Tm!E8{xNNnVP(=7rFGerol-V`8NBWhp9F zaeWcpWfs#CVyKnwd6GUa5N^eJk@pJ8$gV9Q20Pcl*Sq^cEw%yvTXq>nk^nbw@4#zX z+vz8_(-=27jLex>#9T7jN1V8>M}~to`czxttFjWJsk0dp7RSKr8>#T#+#BxxTaQXp z{}IW=SGZw~1)6m~#HaBRq~XAO^3lJsZW-5cz57cY0?$^H52yE#yULOvRGPoF2%;dY8c-?-Jm* znYh)y6jI0fF=O&OD*AUDHT#)FQmPwp&AT;hY+x9!`mq-xIX;!`G%aw+&4)dvg_g~2 z$8fWWGwcY>2V1fQJMUQHicE$xJMjJZTMjJV;)*HWx~#mQetB}f`5d>usE-Y z$agQH#l|8$^Y7YtnI6VxWgpp@IRy|jXCFF^++@R+T0u!dJd?$7Ae~QWpqY6RJ$>mL zc{(qH9#|F%o6?U^h5g?#E87!<*rlXjJOYkJUc@NvW{?;$W3@_}U_4w4)3sdT^x{ku z7>EL+!!KZVnk=s&F_PJO_bQf@Y{+g~|_a$s9D|2eeJ#{b?JA z6VuA+5X|CR7WOjBTF*ex@=7?}@|C=hnhTd^RiMVca#%gQj91YTM}{{=v3?PrkY(0L zbq2z@SyeG+z1d50g6^=F_bb40hZ^{AbPo8&sZ$ajhQ4>rcpInX5WfTG7>{IQtX7rg zD}9!Ws-Fx(S;)yaEn?cVtk!dE}vslgp`>YIldX*dYr8kfr zK5qE4!<>8mGePq0Gg9^FH2&Bej&*%KOy#Q<$Tk&4-IqQP&E;$Mw$;;X+ZxfOO&>>u zve-kPCtwDDC1Y&YhC0k$@?WGF92E zteH~=R*Pj)-(A)atSExvdQ15sTvobpvLFgJ)w`Oem6y{|E6)2~xd9S9`E>MBH`a3BD-$JG!1vM;IMD0G z8n2s9^+tLjD03pXf2cu?=3u<=_%w=}DpIr4?UrBW7J#m^7RHt~vo! zmT7im?3gudc`QI{SMX2>wb1+Pabo!09T)vj!WYP~7M`!cb&?g-*1U!-XMTds=QgHh z!3_BE`vlf+S_Hk;VIratvm8kC64Rec)N1UVZHk zj+NSxLtZaWg-5Tp;iDxvr21_yeGzCxo^Fr;YcW0ao)`dIJ0HQm!BnVq5QI}^>7@Na z1$ArS@~Ov)Kyvs428q9;`nwN7LWVe8j6TKp2ungWt9xX<-~tR=TEnItOoZw3vS_sJ zHs@=L58P;@5Vx`7Ec#84t?Yya6FaA3X>L|j5JCh;pa1w2LTnMWx4XH}g3s7yD zO5w>A&e?hgZk^puw{LQS6>bYqC_wIu2gVm!-*Us(M`hUk>{6(;ZP zWEo2*u3u4zm0|;y$7DaF) z*MS_mDklSeyQX5j-X4C=GIMl_7UlKpHjv|2yut5~I>h!J1NnFbXdizTU+&vc zeEAvp`XU9oZ|1;^^#e?8vl$$;eTa5nW6+&*qD56q;{Osn2T!&}!v~EH@?w1#`R&W2 zPbSRAXqmm>+jZ6Q!R|kpZ7Rr@b<3w3i)P~zHB(q!whL+^U8z2AG3Q}*#+Lg^AbR8u zDYrpLUSYthoLA@HP1{T490o8?03+Hqf#^H;nf<>_Cjy<#f!Z0sP+ zt8Yi43&!l5h&w2}C6)xf>t(7A-=PECcguOtLA0L~%2;XqV;sh}!=D2KjB(RXZvQ5O zor`lJ>KhB6okY-zWBFDYIz~J^@_)*RIa682DGB+QP zNsLFs&qkOLABs8~hj6Y!3JniHdbcQ?ZgSVdCAEQQfB!i$r;=!WE}t!Jm`0qqZ|x60 z-1}QG7B+wMg0XT9$ZsvfnIEUps(Z#{O~Pr^R2`u=mn$=$TEeJjR5abO(+Dnp_=E-G zvUHBy5-|Pqm3a2#ad%>6cu1~6RYD40YW5`#{~nOdRtZ$IUxK+7c$Zq;`a{O-hj974 zORWCdDx&dkGc?!_!oiwfl+iwniFK3eqqL4=$a5ETF#QCRw7W^fx(FOxjckMv)v2jiFu zob}{7D7fyTP5Gb6#q-uUwR;Ob3pHcE+k`?@bR>vnAM4h5Q)aBgUdJC4Po z=V4!PXxNS7{XWc>Eze=SY!wKk#nS}-?fQQ8VVte@9km?eXi(T2nut|2_%`R+wsrj-gA2Chyv_=X96HE!ui0iI&$tfvaiZG<~FpDs(qvu9hOa zsZGT%-^!`dZ&$K+`gZ6!<^sQ-{3Pvug6`>Pd|aXfhPSe5^fqx$(`Srg!~u^E zFNDk)GikwIX>_yU_Ve*e@uE%$b@|SAIab{js zE!y7yLBEZdk-Yd+8WXY~ZaLP`oOjDW|J@qgUOR+ijxVXF%YOWHd?CxnCE_r(~kL@B$Tg5g~^TJc0Y=3|(keMnBaypoozIZ(I6#RzQzqr045!e%}as zMMD9qXU5-K3Op(9d=g%Mn|un9<|h~L;aE12Fv>5pe03)VqJFJm zgF+-xYh5p79$Cm`3#XBucS3k>ehpK$RD`c{#ff^xf9J>D@pX5x;rtg@s`tN@{ zf#F}QcerfHJx}e_gUN>DTu!$4yF6a%9frJ_Ng%DBTL0WK1&3HZMBFssZCY!Kld9ia zdjBxRdV62G?)?MM;j81ei%!s9JBdgv%_eW#Hj;XKZ`hKM14bWjuwAuNne)#mGuK{@ z6}9ok-K+HA$n-kc|Imxe4Djf8uJqX0xQ9%iIm;qC_Xw=*xy0JrJitPJC*idYQ~CHH zSi%NlQPy|xiL9pY0?WuZtrv_1H)}CGB!s2wb3v7k!>rRB8~vL#F?1-ROXM`b%q#^4 zEOTf}>2EN$Q3lzpR!U|pA?pjb;x7?p>KEgM%qDU8XGuYGXd=YYNC0^Qp6R{Qu;x@2 zz4E%08F$-CSBJf#D^p|PM8HJ!RWg7A5j9|{g~|Mblc>5>A(8rh8_nY{k%hli`F4#8 zmW|4NTn=1?r}AhC)DCB(1IK~Yc@<7N;=T~)vM@+13x*4l=do5|3cD!g9CYOIXo;FU zjMo>C_B(JBhutDM5Rdm^nmu%093-BeTh}j`= z5d@caa$NvPv^cBG-x>Ck{H*gO?~b<6{^VPr;Qs~VTm)cT{4^@ta=Sr|N%+R;8TbXB z#y?}m_+sG;Zr3#hmhTIM$c>SxVr~LfnOw6zZU>oXaGm6}on-Uwb<=Uj`Q%-dCwYD^ zmiim!5g%}+;c-&z9!EWtiv--UJCC>uO+z>$1M5ViATIYh?d*&Nn8kyJu1BzLi!XGR z9S3*WZ*z4Tox(?A6dL-j~y&x<8Ph^4Hb3zKI;Y*j1%JtolAhoZz+&zTaR}~ zo|DI`OKH;NjnurXm+luUqdQ_%@XxD3sy1Z!|nrHA^l`1HP|5w=FXFF;rmme6_hZA^GN^TI5Zi6nOcd58d4RjlCp%!zv z?48YhR>mlT>P}X{(vb{CNhn@7^lBYzS5$yMyz=QIP`|wlV_bl+df^`H8~1qWVlhI%LbHm1>@g= zEs#}{1iV8Lq*q#)w`iaZOr8BfY2Pb6)D=v;7bnoCZ;wMeM_M?Z&aqBQ)0j_o3!!OU zDYgH5k~E6S@sgI=;9LE(DDG^Gw*M{X@AU1Uf(Aac{!Jk<{bEa(9b5xm_bx!eA4UG@ z#g|y4mpbf$QY+5yF^A(x=1>Qr23Y-X6^RkeL1mxSm|d4jlNYUoD+iTvAj+J%xO|wE z+;)zNMLO8*RJ|_nf)j@ zMU7tSo`mNvMA9Y|ITU(xiyo4?K>EMtVbP0H=nwcpAC@Z8`f~~(USJI-)6=Qnfg~zy z!*PGr&eG*2!PrY@@f!|(fgBMfNLzON&Lmj?~wPxb+ANy zGd1uoAOgARu&L)D3PxL@_3ixnRqn>%p?(UtpXQOXHn&l-C!ITQE1`B#CW+4=>S3>jEr697o3ykH@)6`J|?7SO-9htJc&4m}p)A{T8W9R&E zsl*IeEB^x>YwyEyUOt()Jv&-{9VSM^Y~_ix+xg9$CzBgAYr5qXj$<67Dz+<}7rF z$`iRTm=FmQmuvH9M?1mdkxcaJ&&0C#eYo=J>pJa;tKm7vg{`%cCX!-T;MO?Dh_huO0QG};2EQXGkJ2=nfb9gc$$`@anMN6Z&*~q<( z{B&zq(6$xC^t^7|`ne0IE1P1kaVyH)yuplnG^5?e84z=#j=r0}1($7GPF{qU;4Z5s zsy4KXitmtwd-4jr()bQ0?_dpcqd}1W>zgInck(pkAMK%WsnPW7x|7(%ITqGMJY%rd z3>J!-;++L^QSWao)^@`&G8v5%&Ed}~G5Ef|mHhX`9%9dD)UR8Y zO%B_ygYAB2F)m;`Obj$5*G3xYj!tJ{n-mD5MGA0l&T2?IejWuj93YqT0?~BgeRgod zQ?3`-Mf0OJK|-TDm^~A~rz+(nM^2Tg?Ya!o22M~l!}GZwKv!Ex&?r@ADD-c=0y~d_IHw^z5gBtq=wy{0Fv zQt7~%9q2olMlOz?;^jAz5R8WHk9+BWX zLlgVlxVsFSPFH20U~a$q3iah?OtQfgSgv;#kJNE&Mb6*EiOBG5WdSrajAQpMe?kpa zJs@3X4c%@Rj&EkZCmXgVlGvO-xNVmcl0svu+7M1ge~!iJo(<&d+5t5C<-t5}4a4R* zKK|`Up$oDeu+!>plF)<4(OESczwcMZB~z+7ud)RDZ-*f%zcGTd`}mwgRSs_WchI#V z*I+cp7DU3tsmUZKoHueF?*;`BzZn zbEW#(&rh6Sa_V$U|FR!Vx=Z2stR9@$SVc3ousE!oQ>vs$6)5iG`#bKdykCcp0m0NcK`ZXyd1cT^*ADn2GLt_!+)M0-BN_?A+OGFo-FlHfY z6@|lxrP1K>wV2B|OY%4Vh_H7amJoV-T7vcbjVRJL5m&@a=HHk}p}jB}Pkzx82r3%s z!Sj9Wq3^!*O`jxVBCMgUlOE&Qq>~`^Iu?(g4Pbs&T4I9BXJQfZn(Pyc#-(qKV25@e zbNu8ah)7!lze*hGmvmhaKT!rf>p>Woe~8=ta!wfj3ivX|9B=Wm=wZE7vaI+Rkveh= z12Bu}{A~&5+1YezL?q)K#<~5xqJSTKoCKMS5iWNWICUlQ{9LxB=VI?^v-7$oU6q#t)I)254N80sO2CS zWp+?K*DhA&>k{m|(*@2RazdTJ5&ZBypIyQ>1OG`N#w_qA0Sb%JF7!3iurGl*ekFk} z`@^R*`+QjWOJ3Z0NZ{;_Qo42R6B_-W5n$JQoTxVuJ>HxkX0mFyimV_#%Gb%pdl7<# zUl`cG-3|+Vipa9$Ff>`_Le@>4PsP5}vdQHfQ0jRnnd_?o2eqDJZO#j%?vv^7$BlwN zYbm*HBZX<&BEsq@74F?E7RNo%quM7Q)6{qVKOO5GuHA*um-xVi0=<6wV($1mE2D0OeVko=g)CWrijCBBdFNOCA$ z)a->GYxJ z+@5xmyeulcy+iL2EQjY z_oPr(P{->JmWA=l6u?9;5&nhpQHrlARG#7qQLoPsxwabA(DX;0aW0JcL1kQXdL_hd zv16L1iJ(|fo#33Y4#ZV7p_5=ajxQ`k)*y#zSbdESTss0}n>SrLwI467^TOM@tDsN9 zfhalpqIT{j{9DjRI*;|k6W?waC=4Qet5zCcTFNon%80qeb!-cBfeW*BxI0`le9=|M z)S|b96^VyMbEe`pcQ;)2dzdFXArsb0jD^CoZ|G1YBOK3pA+KbvfMVYzQ2kk-J@laq zPbJR6%lt|#6bqo&9#4WOri@gYS(37Vr}Sq{Bt9N(MX}lLkni__fFck1-2JZHJ&I8< zO`>UmO`y7JD?OvW7-F?|!%n#w%(6pa(0$T`pSdrS=1}4e7Tow zGibs9_dcfeiaBxK5r-~v;>3ALCdP`DFvId3r&Hw*m^?`Vw%&ounMpI9UlP#MPzyZy z1%&kN1|)uPDKU#3^O+Hzyy!ztwq1a}yEgoX7g8WqFNb;E*hs(qj$~%_L^Hpqjzf!r zoz(q<0(z8eCeuBO$nO&@t=m`#245@jrrdq%EzwGhWWSMyU*hQNKZYNW$;17h3vv2} z-@Lt-^-$~UL+~6efN%SnaJ;V?OkYwD`!uBZhf}Oz%fecfS9GPTHHWUC>CJ$3~NrTJf}bfg`>QiXkTFlF>%fhqa;X?r3JUR;bQSyOXa<@u{!8cwGqh(u(>BiQs8=tb zKV?s$-->K_9+{4=*OEYgr!4AAtK!z74_rr6gCBb?A4+8@`iJ@1KCy_Smp18Oq3lE$ ztGE>VEd1#BsV307ErSmIw-H9I^XaeQ)4Z1n+GMX?JleWXA$t$s-wN5`{`&xN)?~RS*gMJ=7+4X=L=2X#< z)^)i1Og&HU&0pT*2cyu856G8qO3>6j5!LJ8U~0*Fw#=mf9KT#f?Ft9%OjQM!@1O9W zo+{C4jzdxD{m8Q^fkTJVL8p{+9*mLYhX$=hq2W#VQ1+T^Ycs|C@IB<8mM;6}oePyu zpN%;u_%J<*FD&WE#+i> zfF1p*^l7)eus6mCL**aQSiLdK_=^~^!?JeA1TS$y|r_eq{9zOJ)OiXgzA)jtJ=usK z5{781W+8Z<52J;a>cW}d?!)7CnWXhrJDFcIN(P+`u}@|WUmmXDiv#XLr+6tmZ>Yl8 zbIhQt)~Rwm>?!c*Ml`a+QRp1%By7pkrd}ND(P_RWuv_jT--mOssvaSSHExhWm2o&W zECtLb@TqaZA-Y6^n-#~E0jvFh1V#9xr*Ac!U#kRH8%?0ya34wSP==x{U-6WsA+faz z$Nh~QBQaH7hc5b?kr2IYc}-*&)Y&jq*@>j3jpv{3EqAG+FV1N|g%M<8^& zOFBkZ(Q3N~(3}|qQqA*GK6(-kh3H_u$sVv8bS8^fNfck=g3)4;Fn3B3xi|cUNz@92 z%I7usi7Wc4aGBvAy9~^lC4!Ut&7nOg43a-t!SKp4!D$znbkz2V(iQx66lYw>=*`u5dYv{q?B$4E`i1D47( zPDsUy?pJJn1JJ~4~SI}767(?^ic{*B`V0lOb@sp~A4U;P1+8Q3reZat- zac7W~y-hpsnUWfAhHCIMoDPY2LBCc!?$F49@YXcC&1f-RQPyN;yH&yclNYdSvm{mC z|AHP;M^5|=3jC|BV%ij>8(erWqc6dDMseH z*BHK@%gSAsN0oOmjK=0wkXY>n%RF~L!s{}O)E1}Zn_t2s>3AyJl?k~OD*UBItH3Sd z2<&vppiVO?$s#5kUcJ0Q>Mm*^uVn(>c@zi{T-Ru>Z3i!?qz)mi53LL%QOaa0m+?~* z{&h*hy{geT*0qRit;&FZBSw6=z+Srk^-R)LT+WQWy9A0?%E0=iPGoh-4`LgV2q*UU zF?Wv3lYzQqdPyMzQ?3=UO9r~>&GCu&E?5<#U+0nj+s1g&u@c`{2*}3*b76Z@H*No$ zj?afS@_v83O1F#5!bBfaP;7n3V@AGHJxgP}pO%G(%q8>15u2pt0J1aB-3!|IWW3D z0=kbm3vBuh(F-y`G%7lYXdjydUtAfCcco;_$3e(DY7d&Hk5ji$8NTUI2FRJt1rsj@ z8NGb;az6!{X$dG6eVBZD6~*px8wckemN16Ta-ppwiY<`w!q`SNk`o|LSJq#KT%HNB z%t^#8S(mZhJ)FcW>}HC#i-XV7`^dX~maejB0>x-qyjSs-9I0&w#b9U3moVe^TUjvU z+E3s})D$qy*unbs*D?lCY3#3whcIPkBo>HC5GfNOSj=f5*0U}^oQo&c{#{ISTZ(D= zd0$!}dKFoVMfBI|6$qFIzsl`FU(p;`V;@+*UK@4~D1hr%3w)C~AC0?a;P|OB!tm3k zjC@1`i9V2k4ilqE{oW5W{sEUk+IRzomz*W*4D#`2$y(U(ID@=j8wu0LyvL_^K4D_v z9X9?7lD^F;WV)0B9Q-T+V?~`Hb7&W_+YkqGA9UEoXYS$=%T$u!{+oVScLpTbdNLzS zftN5AD0_Ao##iv_IcVuS+OFv5^Ox(yk_`9xujx>#gDT$|=}&e<%4k?uwfp>#8sB?-`P?0A4r4x36GhPpKg#Ey#(U46R=K`YJF2IEq`XDEkin1XEY+5M; z@8B}&uWZBj^^VXa_lO?%`2(?&#D(f|g{1VS99n+U7J83v$4lRr((flEP|QmJ8-9j> zyVNr(nPp11S02MZ3GYF_a{)XWSPCz84&diY-puOR5-5>$iYy*~0fLF?^J zFg%h2hPkX$3Rrc?#;ZGja0oL(`rHIngZP>Ue za(HC{#~0GtN8itkMHe<1_xy<`)4J?|LrCKT=SrrH_nsK;?kDXr;&|=K23V$kkHjD4 zI*bjWbURu)(;VIc%E&)R_`j{}H%5ih~_(6Y!{96}?Pgl>N zriAm|8j7OPB}*K)wSqiriej^${mv&7&bT2d8MSB3gyZ-35Vh@_ zX$|*TT&J%EM>j{prN3?D`*9g)@6EP9)&3ZYia(LZtsBX~g%43#ybom+^NE8)AGIy~ zO8UdPP|WhQjibsz?tarD5)ri_jQ-!e-rvqFKiKHRyLvU8);1M_k_DoT#*00_Wymf zt8+(~9|y(>*BYwexjqF*f9Z#n^Sy|+NjueiHGyr-`9aUGI08RHs-a~|F5zG$z`w4W7QQ3@Y#E%n6(Q=9Qk^ICYUG8wFo=F)vX(qNCow??IhdqMxGBqX~f zW5-fi{)EZN#0ieUsNNltKc*66k9OeR4ZrF2>E2Y((Lobl)G)I38F;;I6+K&Q!RL)~ z`73oUFS*f)WaMPxmSyr#U0p1YzI_L_FK~mG597)C7nSs|volRum`0xE7hrwWW7;+l zhN=<6C^<2k>@ie>((@^>I!&KHA$bf=HTHnvzd>-+eJn&w+CpPI;z740iyHpmX4k8- z$X0K2u9+eZw4Gpf{gE<$s$XHC$m?A@yijmXRa4q{j&^bRexm;@R(iG zD360ZHnjAf2N65wDE!jp5jiyJ+!J#4o{T7#@occ0qvGOKX58Yw=jeJRZ##5Rf5W;mX6+u@f zk-he54_>gd2fOG#cK=!(n8Rf-leYEHL5>Ie-u5JbWewTd69OrYiu8lJJ3abbOgLSC zGC#oaHMke$qSpNcJi8>5oH&!tyqe9DW7VQya5@^>qm*F2ye%Z$*nlIton$oiH617W zAN{gljQ?YJ68~RFAinkt#FIz(D3irGK$mgM%d?GGQ?!me>TDrRoGU=r<`o_KvyCrp zZ!cUS)5KW#&xSur|Izv9zOp(M)A8HHOrpHUKsaf|M0~HmnZ(u#={nb?aAm6o&Iv1n zj(}Xef6blE*AtTcZ!)O#4R8Ei@B(?$PQc1qq#1%VT+O?R_or9E#L{x&K7TQet5e0= z*RhPN#||2ITT~c3BrqE>&TyWH(T(mWKKfdPNFChBbX z7Lrtha9+Or|;RJVNG)JFX#I*=3H@BAHcwQ28r4p#j6qC6Ks<1 zhR0{sVBPL5sQz_2c4>v;6yN`NDc(N?7aT=lTf}5+dF4gjCVP@%vrxP|Ef(Eh@8_6~ zN9pCDTWnZiCkdzuh8T-;R7#;0cG-;Zvd^AoQn#BRrzP0JO}xaKx#1M4Afox!T6L)@>eOw;&56x6pziusGVAXPfnxS>T^t?+!(O4 z%!Be_RY=xUfNdYbFq9HJq_7_H0+-`d{y6+WuG6%s_X&t2$48Qd1at0ww<8*@I($KN zQWR!(RntZ?dOy zS;9t+Q>RQAF$NEvnSy)Vtc3sA&n&-L50w@?LhUDKFiy&vUguaL4fph5f1Q(%WhXFbs=(Eyb*sc{tZ}&{avgJu+XnZ))7guM_ z8Qa6yg3Y8a$b}}Kh=%WS#~3~Cd+dXu2^g%%#C_|kL1*@H+z~tmoX>h->RpaO|0#`} zaB}0mAD%<<*?Ayo_Z;7!RfTuE&eD(DMCieTb7|qF(;)b4%HMDznXGKm##=isQIFKU z;QUAtoeeh8Q~679@4$T;l5zmOQe)|IV+okEZ7MTeRTC|L6OgF8&71dq30ovZ(E7zH zbUK_5UinAy>$h)kbySCbe*1&%@6E+jiCiq-vl}j@XOqKIz2IM%v9QI^8I4jmkT|Os zWbvWdeErWND8Kb7y7`FmZ!Uh#_&c;=&P5|Z%a!BMQ9Vr5ZHKWeWFj`LwxTBgE`wI+ zBWAv5Gh7>fO>0N>g<}^*kgbbe(UF}Ef-FsICh~wN?81Y`9ruw?!g_!H0ZqE4*mf2&f#$%n-F=k~|KszU|j z<}zaYa-7tF=Y>qsJ zm2Y>W^7<8Q%kE2XM%SA>RY=8y-P*WSAPZ5S1;jkr6Eu|Vaf#n=5-gtzrrdcRHG37u z?`)?xO|DV1wD0VcRi0$iHb1C{Itll!K0>dqG#(VQg(Fkml9^{Yzt)&y7=0@PeAeoy>=VqnDuRS(wi1T(ZaC*y> zHgfF$#}}A58%>;lrI1O!l>yNwb2(0n1*2deO=-$Kp1n*X>Dyoc4kHVwt*8b}TfK@% zsg`ivR69C4?2KP)_@L`~2ImaigQXAaVDGoX_&tfsSBtbzw#FNNj0B@vd;;C2l?dsnX3Ie&lg>`Qm z=>AF(a=3s)S(_+c--Myspo+#MZhmjxe!r@Y!l(0lxf#^Id=jE0j1;<)# zR;e+NoMI^e-hJ^weef$I2v;yo#P{CfQ(NOY@Bx){+%fY z!|^Z4HQy>s&7I5j*2Y4c{}AcQPJ#AuGVrvrn@k*$gGo5b25g>+BB`?c-xb{1u;v`| z$ESc7Jg%FJu6cq}n`Nn0*#kVfGm$QCOsC#QxNb#yI#GMx3?6^WF{*HcTsm)zDr@WL z#qmpU*M%C|{@R4jU7!n&2`lh|;th8Aq&_)Xc^$;pRKW622^ieLF}t!E+E|pxE|ypi zCUN4zwZ7}nF-8*tV|yW4KOL9;4x&je)1mXW7SygXLK@P>n12t&hE=|}PfQ2;GczF8 z)}C6#4lXF>A5LJSBI74Dv( z2MNo@!Luuo@b2IhEIlEH`D0|TtwNRFHtHbK50~N2wHZ{KTj;dUy@YC&Do{8O2L-=F zpzL)ZI7KDkQEsmCbNX(ku!h3vjJu$-#{vhqJ(-JFHA#6CfEOJqP+6bLA$DaEVem>6 zb*~V#id}{Ik{_Aw_#|w1K1$MNX+zc=j*Aw_eg6g3;p5`BjnnEaAZ{=Y9xMOhu?{Oy zuCR(xR(XVdld74Mi=(itri?sYHwzm|3h|%YCDuqTgk2!L)(+t zl6RuQV4E0}`pIS7)i^Ks-e@eAZa`0(PVIP!B>C77jt9Udti-B3SKw)OBN=|!B6WVxSx9!+x{*`I2BjzKGTTIvpOIFJQjWUxS9<_={_yDju%+lwa6xcO z0-3pgB4EgOA@t~WlM73;*{eVE$(Rl$zC_I(Tv<|rWd@$O*>DX1vSJ2#Ha`T9N0s;>+njMmg9HiP>PEHh7r-JrF_?BQl=Kf7!NR6Fpt5la9%Euj{@9JoVTW+EcYZ=m z79YfSju&B}J(n-*Pk=9r+rby(iNvQAlsu=3PN9#eh#hD0CiC&&)}!ERR7?JIK8d{p zy(G@Rf@YulO=Gua(q9+m!#hky^E*xut=&q-T@`_mqz;&`KS+wVi1B@bXQA)eu~aep z2!^nKk9dw{IAc4C=*hyNh6rl-E|is$D`Ypyig6u@2r|#) z5w&y(#ORbM9GCeP4OWasr(t!les7G4$1>qW_bjYyf6HFJ(o93vx{ng*lfu_Qg`VA>__}d|a7Dpay4K?o?khe@{1s2*JZ2hR zZux?z6?1Vwp_8ofx*e zTt2so>m;3_HWda$<5RXni@KTnHPt#Eg?B#eJK7q0b` zlUbVDBqFI3?6&5U(i>6OZ#@}KDV39)HMad-ySAv`&Nx+mGU1Zy}qKG8L071;qXLV)_fUAZkq$PR^Bu ztkGLo&2{R>&ANaUGt9_=hgnek^%+x?IF=DDFUB?{21U*Xday|YzXSe|2s7X{qm`%e`=O}EF5t9|hA#uyMx3ZTb7q~h9D*-Z695jydd zC_GS1WKXXOXZ$jI;f|#ld|Y*tuGAOh+r=2;_S*O0_ox>68zOK=T>>0*lg8_>PSZt( zC$O_boJ8kolQN&@?A351jxn&C?7XA_A3is7d%-b8?x`cLRn2E7&6y1&H%4fSS01}_ z&uaQJ#g5Al9AWm$t;5(!hw#(U^OzFxo263v!Y7K zjf&&2CNdJdh80MYi4Mtp=!@U)q|-&G{?TCNP}piEqzjzZqTkRyT(x~Gz8R4hE(<=5 z7EBcOG+Drb*5?q(%@7tZzfnC8U0Vl0WFd&D{RWA|~|`Y{*X zn||{W!fY`+{SZ6p`b~EE4l#Nrc^!^j=mwMQO3Ch*>&gDT19VPz7e1~|W))YvA+ur$ zZpfMs&swVNcMVJc1!Z}3-7b$F<9Y=-(mQzu#qKzHQ7Nqxs6w{)SHbl+wWRK(CZ=t% zfbr}7VABScW|+8x?C-rOqaee7sC5~2ss>>^FO&>ju_N(wKI5phx-eGn2lzy%!aT)A z`1W-r+O7J|luOIvw4dwnlt&bH%P0`OjvXx)y+(Eg8KcaByL69JGkC8}K;_jBNbIf$ z2$N2;4`aFKd|wCDw;jiVeJM0@rX9+M=u&N?I+{G;9=_;qCK%HM>8EZ}$MRM>&GZ;V zt{j60tk#irHR+5W;{tos%IE_>CEQeT7pR#JhRKQw(52vx_9fz zv#=8&P+17_hF+xczA10P>i_7Hxv`)grNZCbIROHT!*DkB!n_JOXbN~lXH=JSb4N{5 z6qJM&7hZBk`r9DA^aJ(Nt}(S{4fJFBU;|S}>P8Q>Jzx58K8s z$Md{GaxydpHAS=Or&H0Ow<7^`?i_<%W>ayIL_axgp@|QUe8e-x+I+r13M)@drZxM2 z(xXe7$X<=HpcXDh3YFxs^Wj;VAS{BqJKAV?Se{zHj-zJxro+kdU0mOw7}oDz21UJ2 zFk}BQFgbY}RK^!$@f#KT&CCpFr^V%=sl)4DIt#~TbtegVdFCNDD z^F>6aj_aii7vr`GTk+lUKEdtF=gDN7{~#!{3SRKy*pK@Rc+;P8{l*<-beXOsT2ugT zy(uCz)t!ksDRGc!@tIxDbA#;9DnWXKv29?bL@O)bfBXL6o>tiZmPTN$dZ|C;! z=UEs^8jHUby6Hr7b6irrlzu(4o!Xe4#Rw@;bXluI9(G+PS2YKj?W-RVi<;-O%Tr2N zRn*P=sZ<8F_oC?7U4jdY>gn^P`@o9x0jLSyklT~YL8(!KKk%{%<1n6co`1vIyO)7C zu8dkL>_e5pV&Z;06RK;=sLH8-sBFKRKF*U8goebEttUo#%Rjf0vNT(q=PgP_f5oF( zM-Ai@y@!Fsd}hLKFElv10Q)pek#DAeX`^W{Vm_Z)e}tm?mDl*F`V}3krGd6{Ed;ZA z452y41!kz1!vaYyVP5H5oHpwzX}K=}lb__mPL+eW!d(m=k9;Mr+`GK^O0Ex7d4S`L zgrm>CIB>4Xr>pLV(0jxEjR$s}Ceo=4oKa&LbE#|ad+{JqA~vuQ@^S6%b?ANG4#i5I zG8Tml_DEg8sKfP4c-%xVoq7p3vzy?c@nx!`^pKhTWESIh*bs)?cTo%BKlsJ*DX-uC z#<)ub)9fuCOrOyu>~c&Z`_CD`Y}Hrf&ZXmU#Aq(g(5a%&k52=KF%voWaw19fAn@%6pe^@ zPE1?e;c`&`Ob~s|?Y-;q_6Ckkm7zd|8X|DuDL3Prl#E9b7h<995N&m{B+-Kd^umLB zlnHtbT9bd^0dr0G;2#fS`um7gqdSTDJr<-E$HV-!0dU!18yOBr!X-^&Fk#7J*g8js z>qod^=i^$Q+Y)EPSwy zJt|@X3pHCo`F#=RW;DWxGdD<^O9)lpWskPfmAJKLIbPjY4=pngDW_d+>|L~E zM&Mv8*YFKi!Rf{218#>DE(nW|8m`OJxXtHl%&mri$GYx_11N#(D?zncq*untZq$! z9dTZ`a}MVpTc=J%L)U{{!b2*{v7;NuY^4d@vpM3@iPmFM2{)a=y_-X6Vzd*M{uc)d zWtPmY7dOD8I}UlmPW0^gLLYB>0>&y*LcuF@R$oC(XzQN=jYp%gr?`y>Uo(8uggkO} zsTl2fI@-`#)r0f(oKbn@Eyg$37O`5CHY;*j_kniExH699g*?amO}6-DO(=OZZVPD6 z`a%-)YoXR=E~;lOCIeX(=={+@7_sj(y8e~{hiOm911EiY>+dWW8=t~#lKFr;r-brO z?s))So!^^YueYGZUz90?LprgfL6k}CT)>Z}_?43rDure`T} zX^6s4V@3F)yPL_bdJ%qYyBi&}SqQghi=t?UHT-^=i3@vfl3e{ToN~7h77UGn;!}Ik zMyVVo_EUK0uZHbQH__2WGLR~~Pi2Zu!;Z#s!M(qHZ2a<>RyLcH+uuwe`Bo&(ewc&{ zV&oyFwV1tf07&M!prku)1|32!k`Bh z{(eYLG~OaAyS|Z}KuKn9Z5~`zkVE&Qr@3ciJ+2bp1#ZSE(6m`Vd*$}P>GdI?I1mOR zic!|>BALympgQR6!t02ch9=Av=hyD>;_UEV; zb>BFS{9(;7@lyhQQhkRQC;p)~<{iS<|IOyf=!GzU&zO@h(ydgG%;0-%FR)M8fG_wg z6>+qMw<@l9NZ8GMZgqz2)@17OqY|%P+{^rR;#?ShJ0ak=3LbIrguOej5Mgr<9RFlY z4PK7Y;O0`&v*kH+drTgh|A`_c&yIqg-36j~b3E9HYYYEnaZaj?Vs_zCMGQ3G01Kow zv7y@v9$zjavD&`Ebqy3(iUvZG;{oS;hd^9W${PSVa&j-71%g^U<{#^mnx=)>jMh9fqkvD|G; zc8r0^8Ar(bc}sA_p^b+B&0q~?90qeb1AW-(aLiK=R~#qsi=0NPVZ**VG8HSQHlV7c zG+&i9g@{*i5WX@GX1D5LaOz8<^Ryi{!C;zP$>=M`h7OI}=(MS&p&$njTba zVVma-QU{!ZOpXfN-;l_80tM_8M#$~BBGJTJftT&Sj;(ok9r17nR`lM69lw9`;u13< zed1XD@UI+XABw~8Qvq;7Q4#Fz#tA0frC5_vf-i4g$JPz~WN^JN*U?!?yyL5I>l=BT zaQ6l!#p-zJ#%&bo_7O~eRlqov0N} zANfJ_KTqcKg&}O&g)A~4o`_<s;?k5%tpwh@q~4=H(0#yU7apRqP;I zw@bl!yGVRh7_)|_D;DKPUeqb4cGfw{X+%qr@NDA zr!5dVVJZEfy8&yqmr)aL1|L=uNOKNvLtPVVK~wEt%rrFQ+fJT{0oxzi8&8y@Il38~ zAACAE#LM8^fg}!^m{&#oRdmsw-gDGT;^_kUnEKc3!m?nFgBSE{Wc2^%IpL+d^h>~330Cvz;kW$!KF zu8Sf^a0wMm63d1&C&vpjUOVGCXC)HS0r$penWT1L(ENyu04OCAKo9;az4==6&8|PyDPsar$ z8IgZYi-S9HU6SdEU!SkYU#^7Bfn2wGm|1_t= zUdaqnT(Svmos+@Xs+l#K=ZaDs586yo6ZZsON3)kTn7wErGnEMiy|ErdXlOuATwX_} zcaQKMM|rdK-C9hK^`q{A6Zsc?MKEqlIK+A#B%MPPwpmWb0kMnN_#>INgq*|e2VcM| zjz>N(Lt1#|UM_5wUWkrPc}%6>BygLXhoN;0Y|xv5GYZBNBNuskWB+FOgEn-ZXe#sK zX&ru@!|^1AgKS6sG#Yv1Eq1@wXH&H2Ky8Ht9+I^Mi>NME@>d60H{t{3mu*RqHP=O0 zRS$VRk(lGygD*XF$QoHE*bq;l^@J>4rqa~{0Ol;__+!TC&z zzLPY;JF<4d2AC`-gAMCAu6Swys=^iw+xM3GEsn=4GZvt})LC-HVI$`PKL-;PjQG#P zAAoF*8lAgV12gUqLGjjW%u@MAGVaR~{Hd^zhA7Q|E(`yazv{o9Q% z%_>1<+I;MF%foUr4X7P-f>Rw@cscw4{9{XTcY+IklgeovH?@>cuWHpx=4kIwS5N}40;*FpC*s1fI>B3!WY2_^|`ipr%tjf}1@OK~Rb)~|5|FF0RA1 zpS?jU7Um>R}d&f#`pk49<5sl%ALSb<-) zYb|W+7pK{4Hq+hLo9Og`c^n&kfCdofJ7`ro>yrJ=E)^q|*MU;rLmo;fg%EFe;x6s_R z3J$p6W5?Isz*xH@bXAE4>Mi3k1_nydJ{Uk>b3MM!-Zfa|rb#-~mf^K?j`;3%6?({B zN9WvIxc~eI`dIxc_2orV(K*qL4quWpXgADv_A$1G`VIrI%}9xi~uidUE=5s8~=lRbV-fd9tt zLRy^-{){1Hyv~5oo7-XA-oLbL;4Zd3JwgvYDj+Ys>N%%yFKG3DXGp#iq{;)vtbfe# za`)rGRg;DGSHH0K#`A?Arv8TKmsfzDiUO(KG(osCX&OW-5L&yro;aUB0Nyu@aO*KY z{G)XodmQta-bK2o5HJh#S4-@_?xC4~L}aA-tHxeeM1JMDHq|LS2#N za6_y8mP7yu)&Qqd1;+N_!b4lBiH58qa;+ zB9aiY$_SDCL?I>Gnwm(YlBR}~R8-G>UZJd}%oZwAq%_R(d;aday56^*=N{*r@8<){ zZ#7_m*Z+fBfs=7;MiRDq zxZu;#w`B9_X0z!EJ#=!^Ta>WbgqH>^xH--==A`f<+&1cjQ|5)!okfmhHO~?AK1{%e z2k&upcNv~mdmg6Fx)0rQ)$~ZZ09m@nkk+q_0IxPtp7wngZXQbrM`NY&ILC>cDexbc z>2+aJ#%j>hJCPdOT*S-;FTp@2mvqdT#ecUb1d9yrL*^9&_<0GjkeSQs_#I+Ip0W5t zPzT;D7^U+@RIu(;HJnX4NAfiiiP_p!aK$x}>rsWn4nNMZb}@(8XMLfI*AGI-acibO zYZ?@AypEkszVzTaj<3H!9x|uQs`QNshUYcfyoV$D@ZXiyOw$TSP}D1<@c0glXnisp zef)u*fNjj$DM`#Vk2v`7oXaN3=tKX9y-+&75;UuG;L77=OuwuKZ`BuZ{=OE(6GHsZqjYhX%zF+Fze zAO_#o0NE7-NJgTuMOc8>`}rhX9P^>wd@&4m_z7``Tg~5Q?Db~!X;DS>q}Qm<7QyO{iZ?Cz$|)bhbq(NcZSBV=6ciWdE{O~CA7bs3fp9( zVC;k{U&2kDo0ZeXUrq@^)-g_ZZClCQ6Z)))OZ)akB;wg>v*#t)EQ*cpP3(zBm zaA|5c2w!j~A8apy-~7WM6FdnOt?gl=e=S+DbSHEFnG3T2T_Tn{JL$q(`@rs&z5g?SxhwLSHN0kns+S{iW0g8G_7UJ7o{6iQLP6`fBHS$PBO+shP^dq~ z{@9#Pd4(#xecvN!)$UWcMP8lfuKewoPgGJX$Y30bh_-W{rBk_qZca~a9j zaJbg92W>XyLg1%4&?DABW{)vu5yx&pjJG5H=)DY0MjNP4&s8dz_mRLoeNI}{@6|Mdv6C7v+L;m3KibT(OA4FYKiiX z+~8~LbJ|chz&@&93CRJy+_~x+kqy2xU#*l0FrrRWj)x(Q3Ro`ztnc zIr7STF{b_fH)!aK*>Kl%E#$sEN>iyNUGex5l;5jm3fV|_yZ;jX6)#QyWr~6o+lk*U ztOjolSK8ANhdSR@@H16INw;>SpbF)<7mm3m9RiEh4M#>xiiW!j#QL* zpXQN8DGqpN%3BQSTTWf)XyU`aEJW(<2Spiq-Y%P6zR+9NK#g1iS_D#Qc2h zQj3Se;c5ua)B*$N4p4Px(fz`D{A^=@Ce?W)`=ScNTj{|H*#+QA#mi(Cmx)(;Ue5$H z3t;|JdvI27Cq3HocwlxDE^xm{jx?Erd1f*e#fU-Glqa;oeiEwuu!R{~*O^*16;Si@ z;#h5m@jUd>g&~vhaa}0-SS%(*Hojd7z}2;K0@lZe%CfcHL}hy3yv z*5telPhCR`&o5Jk)KP|gc~dO zz^vO-IlrMX?YW-Kth-%Ar4BuTaCIbnHDy!xd(l`Z%=K5avWf2Ne73k(m}elBNhU0< z#E|$qH0o0t>#S1~s$m8Y)A^!ZS>9|bjGaWjT z0KV6+LGYP1xc$;JoXLa}`>o=<3#ScWAaxzEgY}$0^@-VG|0QJls2*CD?V!_4IbC zPtzQTrJ)enk&_1=Qxd>+mmah>RzbaF6r4($f`6ntNdC)ux;0P_n|>anhkI)1&r7E; zQ2rVi{cZ+1r8!K;!&|u1K$2Vw3^x-SnGG>ZF40A649JB*SrTgz3PWY}u$JSH{pG(U zIbM(P`12!nn&vOY z>-u;F=XvK+AMP{0-}#G-$lR@Df}gW1e_tS0i(bMPl||6Ly8*x+3?KfOF+h0j+v zF$LdSVb%0XARL28cH>@VEx#RqE%T$t%Jf;AFC3r3dp`8U>_jQM6cF?n#QXzm>87J1 z5OirRZWo^ey{&4vWF!z`)ia^oS{H=x$ieHO8?bI`I`X8~l0zviOszyB^VwS*ZDb?4 z+*=V$92y`7e=l+_#u6&FCiQMmpPVG%aJjnyrCQ>(d-74RgBZ3 zsBPQyKML?W=t-{#_?2XX4|m&PBga#ZD=r|DUlmgsr(${{|06CLlH+BHT*P%% z9E)V@d6GFj4!_KLM1OPnh80T#;CHkLG)T+yXU8gocWVHhG;bz9C-;k4{~u*i`?wl! zOY`Wp#|bpN&w!qAegk?cTy3t~l+LZ5&WsIYKo++T5A1l!?R(bj6YhQ^(e;?N40aGX zs{k;zK1t*H2Z+g7IeXP~GQE0il>PSb5I$2j=NXPi(0iJ%$=1CSdBN{@fpBOMh}bLv zEq@1?>8-}kkh={Nc3Q#8HCxRJq)tMIY#FX{ug1Hp3_z-o+Oa^S-n{PuhiMl4Dsa<@wH^ta>C zW~k52VfB#(0uvER^?=uChjnd1=#@8>#nEq=v^yIlE!?O_XFeJp{zQdcKhX`2E#SUW zfb3itMzSBpv&#PQM1+^mxX$3udE=VzLUh?NWz=T#9<*A&<#CDVeY0L zqL3QJBo*58M2ilhQqfadWFdjinR*&6umsk9+e@bZoC_=03e)h#(P+Cq09y`(5(}68 zaDCJmKgSlpj<|H3cGrf^dLj;6`WmQssT9#}I7h$#7UtCqcwqh5X;8ROMpNsGQC8qM zRJUy+ng&wD>_-tyHSZxz%N=qwh|mO>gbtSXL0!K1N`|S2rTYgtQ3g)%jhl$ zBOk@xaK$1|>iIp93iz>%vQ{=5dGi5Vpex88;Mhfb1|>-I&urG_VhUPXy@ZqM$LKVk zClqn_i}!P`!SSsR&_6MsTt9aQ>as`ZrOofmJ}=@y@$Xi)&cX|v*BD?$W*K^|xk;23 z=wa?qJ6^C#XD4JP(i>PsgOdWlfIW==-o0eoUc@mM25hOUkP)tRT#1Fv&#Ci95h#=s zArbp0($hWDuqoNqEa8bPJQ%RUk`YBPRLkxsag02^5n0V7zxFL>F3{?tE5_XLcQf{0D{TGlOIK9=ibA zM$$w+rU6=&77|~lwWNJ7ABx@E>As#%F!QK1@A<ZQYI7PHf4U2GDbMWBOgCJ$=LIo47yu4k z>tTKIT{!JJP8Ys#hQtd`SVxOkG9dYyNll5RzJ3P$=NqFi>(2?4&3gdrT_nNv#7b~& zS;Ll_yJ6h3;~2bI06tdTM0?2vP;qA!G+DP1d!G=b-&<+!Ss92gctS^3y(C}Eg5cd( zf4seIJACE;CHK#mLxx=-#{F1MmmZz~a$j%J1?Kg{|9K9btYb(v&dM`^PpR-=yCa<^ z=nQe$4BS{O1kcxbLCTQ=tS)+lu?&~4QvQYsBNKU!!x~iSbSYhZcMs#^bpfnWufeO8 z`S{&h56)FzX1lwCp{3>nU323yt<#-grhOua+L^gS@7G5dRk{GeuX@9Yt)i9VuiwC( z8!;qUvjUBi#2|TAJcLi&2$rThVS9E5j(Q054hx*2gT>D(U6kiQjeLh$o5L0?Kj}eY z)^(xs(j>5zl7^iTf9Y|*98zX*7LL4KLVIHT;9SBb`ggS`?|`T=Ua;6t4J(9cw)8QS z?z#)%-iPtj@6RBwtwmZYw~_09^Wnm*SkPSR3X6Wf%MC0a5*oFW7}&9Yx@!Qf0)Rs4j!l5 zr!>P|Y6Oj2o{^ChN9>vLhQ?Y%z=!?7j z!o0gzgCN8?p02QPz&h>caLmh`UQ)`WN7pK&HS32uA9dIil|gbjZYyL6+#pw%+(iD= zVX&;30(J6&ykBF%$PcoB##<{$-`rIAru~p!)160UCa=T&Pj^E=M;s{^%YvAj5g3s> z#MaM=#-ma>`1H0pB%K<;fXxee@0w+?*&u?r8l{l&y;|Vbp}{}##)968&&OLYxN{+Y z6I`p@1U@TIqeN*Ri{3_T1*yx z5#h(TEQQT7VUVKd9sT`bqYdKyk*Uvn9GRbRZ5ErsxT zDp|mJ6*WZWLioLOw*J#@5EQ-ucR6PChlx(89`^=xOV4BL!Z@Ps;fZP+4xmY0Ic?94 zLzS*(^vI)(l}HVAd{757=Pc%o&ICxV6=o0Uc)+xedhp#shhbVBG4!h>N*rBS=Tm!$1K)**7@K#om3GU8d1uW7Kvleu z^Ny!+9_P#0GAR@#KSjfj5K4r;AHoxN-0^74Thenpjo6<gRoxxDRndrgFSbPuy0KOm3NV5eA3?12h|_p`oecOz8+)1MsU`FJ{PFSt!5AGlHN6UpdZSx1g5 z-^8O_zKJ&&kF|YcBv#J|YP1W8Qj9Dbh}?qo#AtHc*a4Hb6_7@WcyQm8#d&It_|~fK z%;K?Mu+v`#uGh`u2Mjtx=gefjyLW}^u{JpHm2ujf!c~tW-Mg}Pf+s?+9_Rvb!UXI zl1-td8~VX=(2<;TbmU0RwRrlE2mJbH4$9^dq+-?;OmvFCq(E`JGBXW-ox2S0*0@)S z<`>Wff-{+~Z$q*4@Otn{&4OjmoWN7a2JhTI3wodDp~qff$UQp>qX`xGLdOeVw(g}u zX$71EcryKdiF3te8^Y|CAQY(z!>>F1vHsOP40pfAr2Ov2O8atZznO==?uO*qtMec% z+DKa#pMp1{twcy66m>@$iH)Wv`B3l-)32O_zwZLjUhoC|yYCH1Bwm2e2oR&a4GUkW zVR(TsYd~K>YX2ni>Qoe}Ja!@v#AVpVh)J--#Rz8IZ#ETQ5{ZvCzM>1$x50>)Ka@(8 z;PQXJ$;!$??v&HxWiQ z8oy6Hi|eLKGZC_vU=x>>mf+a6tY;(rwrVq)jD>>9ltXwjVi�acocFCF&T@twZvY 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
w`QMjsOzYDsKqBPUF!QvN9EfN8M?66--HKF z7}7jFl|f;{St)ho4{AmXjq>1+U&@iK@TH$ki59c4lUP2|07FTan~6EH7dN@Va1*^GG4is%-hB4-0Xi9hZ3{JpvwMSyRI8W zbHW&LIUf;b=Jc;I<=w9NlUI$iWA9iA6IUX&jn`pPprLS#Sc9 zLel7(p&<^aVd(i*{1{h=<5iRJVWvKM4i{m{hYVUbB~fj_G9tx}qvkARh%$l8BL>iQ zuK^vMvJtWJJ+73bV#tvR+}|2csU(nPEA46dM;=@Q6#O!#4wI7gSW~``uGfokXnqt& zT2-O)<~;TtwFSA`CZWOWmC)Bn6iwQb7}_z9&3(3kdZ%%vIg@esXDf@(SHm{k2w{a0 z@Oe~%)rm2P_-iTmJnw?rk=fMK9mi8+thlv0iIKGn@M)urQ4^nwMJHuEHo%3WB!!|N zKAex66|`~-VqWiC*fx0xTkqR*e@h2qn$!3|MU7SU>#%s25ha@!aL$x=T#u1+*EAb` zbm+#(qXTIiwE{&J6RDrOfJ^=Z9NOoLuh#BdUuMkSE<@NnwM~StvSe663Z=I`;g^-J z$Z?y?z*m}dbRNyEv%RTn6vhu$Q&C#BOZg(+kog8OjxZ$FCT_vmE)5d8p! zk~PXR8zhwHm!sAFqA=Nh04WIO!-MJ^tDOql$f@)=JD2TE+NkS@!%y>4xjO8jD7s)r zxpgV#YPBIU*pJBz<}>OqPhR)eXmpTfaK!i4kSgr4c8L``E^b6Y>stg>sk1X=8n3o> z;?bJB;&X}xRrBVfk9!}{@A6Du+Fgaq?^9S^s><76mvPn&CnhhND0-xpEDDHau|^x# z-<2}@zv+lO>`B)G_;utu^lgI3&RB18dvB&XTQThfS zlgD$bg_DS{^T9xgI{jgX*c)ST^^Gl8?|UHD*B^jw_iS1k|E|m|tx#5HXmi%_&)5<@ ziw;&YWF@Ub-il;+%oszxqf0T_F7&5dzcY(2hw?O zGPRxuirQi3h>f=qi@wW2O|~0H-5N@rThn>%U?z(dnOtJAf?><;cp*QFDM`zaU1-Q1 z;r)gAfLJ~-OXtyX7Ay(ZpsFg7W_kiU^R_nz>ZgheTBXn{Z-ajQQPJPT5WWjGAnCh) zOw&oDai<9q?)PG?EFUAS+_ox+X+1q0pC+Q(Sq~evWdpdj_{_MX-tiT)%F&Qu0Wbx(z-w?lPflQySMl zjiO1@DD;zR@mcOQ80O!GS9vD)rSHU~lA+>b%_ZgJ1YltLGnBh`;){w3&BG-0J*E!xMgMVrlVT0Bgm39Ga7aqXDONEe)(cl@=1WwxH zic3%3;k$V?WcqHbyV;7ydJ9Hu@u#qQ2i2x0u=P&;=H|!tIU_{&ibxu)RIpBa5jzSp z82!5!_rE#}ozzu$8<-{9Z>ZBt%US3&tjC&PeQ2Zq9HQ?Agp9XmQ0;YLIH*FDx&Oew zbEk69iSy8U`3wUcbMUm)fiLxgzO_S*@zd>i{LfO6E1S)CZw7K|`d~VDKfz4bd0eVF zftCgz;a6bF)2GAeAbZCED%&H4xaXFQl-)Pllb zC;Tpc!MTMax%SIrk+{DIDnWJ#?Iowylr?CW9Ej~NblGz-m7bDaaJ5q5Z?|@es25Lh e=ad>A>^R+MlYb9^-**dXYAKpeICA$UC;T65(s}Rz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..284d0cb503acc920dedf41646707701819c61337 GIT binary patch literal 5425 zcmc&&J8u&~5YC=`@nt|@Em0I9gwWAhq6i=)(jZ|)G$BodkkTw0-`HOHyyy7#f^h`} zP*6aLsPZo&(NNJ*@(ZA$rKW(rhfNe7LP)bY=`5f2?D=N)o5#07z)$bW&H#0E#b9dI z-?ZR4gi;RLRnf)j)eWfjDt<84wwfYJa7*K948iS#T?3X5c(T?nT+9W zjkY4@w%{Z(#BF8_DKo>2rB1uacvzKyH1zNHag6ZP17GP;X27j|KB9ED@JQGh%K9iU z#vy7Gp1D&zZlD=GM5U{?y?F47@t6|Pmv<3ySxeQ#yf_rUf&7S$G7rkbXWst zaR9eXiBwh|i!@i1WU7vT%DHFOe%^Vs)upV-HtlJXJwKzNO^U*iOqW5l`gop=pNTc{ zF~i`FBfOs54r_O_nBV;Gqs5)em4@KwVKrcU8N8roZ{OaF)$Q+Gnw_8V6<7`$yji_9 Te`EI|6mW`l_Urm>uX*+dCDR!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4563573203536ddb3d191686b2ea99fce42746bf GIT binary patch literal 10822 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
w`QMjsOzYDsKqBPUF!QvN9EfN8M?66--HKF z7}7jFl|f;{St)ho4{AmXjq>1+U&@iK@TH$ki59c4lUP2|07FTan~6EH7dN@Va1*^GG4is%-hB4-0Xi9hZ3{JpvwMSyRI8W zbHW&LIUf;b=Jc;I<=w9NlUI$iWA9iA6IUX&jn`pPprLS#Sc9 zLel7(p&<^aVd(i*{1{h=<5iRJVWvKM4i{m{hYVUbB~fj_G9tx}qvkARh%$l8BL>iQ zuK^vMvJtWJJ+73bV#tvR+}|2csU(nPEA46dM;=@Q6#O!#4wI7gSW~``uGfokXnqt& zT2-O)<~;TtwFSA`CZWOWmC)Bn6iwQb7}_z9&3(3kdZ%%vIg@esXDf@(SHm{k2w{a0 z@Oe~%)rm2P_-iTmJnw?rk=fMK9mi8+thlv0iIKGn@M)urQ4^nwMJHuEHo%3WB!!|N zKAex66|`~-VqWiC*fx0xTkqR*e@h2qn$!3|MU7SU>#%s25ha@!aL$x=T#u1+*EAb` zbm+#(qXTIiwE{&J6RDrOfJ^=Z9NOoLuh#BdUuMkSE<@NnwM~StvSe663Z=I`;g^-J z$Z?y?z*m}dbRNyEv%RTn6vhu$Q&C#BOZg(+kog8OjxZ$FCT_vmE)5d8p! zk~PXR8zhwHm!sAFqA=Nh04WIO!-MJ^tDOql$f@)=JD2TE+NkS@!%y>4xjO8jD7s)r zxpgV#YPBIU*pJBz<}>OqPhR)eXmpTfaK!i4kSgr4c8L``E^b6Y>stg>sk1X=8n3o> z;?bJB;&X}xRrBVfk9!}{@A6Du+Fgaq?^9S^s><76mvPn&CnhhND0-xpEDDHau|^x# z-<2}@zv+lO>`B)G_;utu^lgI3&RB18dvB&XTQThfS zlgD$bg_DS{^T9xgI{jgX*c)ST^^Gl8?|UHD*B^jw_iS1k|E|m|tx#5HXmi%_&)5<@ ziw;&YWF@Ub-il;+%oszxqf0T_F7&5dzcY(2hw?O zGPRxuirQi3h>f=qi@wW2O|~0H-5N@rThn>%U?z(dnOtJAf?><;cp*QFDM`zaU1-Q1 z;r)gAfLJ~-OXtyX7Ay(ZpsFg7W_kiU^R_nz>ZgheTBXn{Z-ajQQPJPT5WWjGAnCh) zOw&oDai<9q?)PG?EFUAS+_ox+X+1q0pC+Q(Sq~evWdpdj_{_MX-tiT)%F&Qu0Wbx(z-w?lPflQySMl zjiO1@DD;zR@mcOQ80O!GS9vD)rSHU~lA+>b%_ZgJ1YltLGnBh`;){w3&BG-0J*E!xMgMVrlVT0Bgm39Ga7aqXDONEe)(cl@=1WwxH zic3%3;k$V?WcqHbyV;7ydJ9Hu@u#qQ2i2x0u=P&;=H|!tIU_{&ibxu)RIpBa5jzSp z82!5!_rE#}ozzu$8<-{9Z>ZBt%US3&tjC&PeQ2Zq9HQ?Agp9XmQ0;YLIH*FDx&Oew zbEk69iSy8U`3wUcbMUm)fiLxgzO_S*@zd>i{LfO6E1S)CZw7K|`d~VDKfz4bd0eVF zftCgz;a6bF)2GAeAbZCED%&H4xaXFQl-)Pllb zC;Tpc!MTMax%SIrk+{DIDnWJ#?Iowylr?CW9Ej~NblGz-m7bDaaJ5q5Z?|@es25Lh e=ad>A>^R+MlYb9^-**dXYAKpeICA$UC;T65(s}Rz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..0d076cff7f2123d6971d75304ed7c7c04051cb90 GIT binary patch literal 250 zcmXwz&5FV>6on`K(afdjkP&8P>q-O{>dvKZix1!?wC0jttckR#`Z&IuFJhw3;&S0T zaL&iM$jV}WK%-_3TerG1C?O?t>Kyc3(P;Glf}|@alG?WI_-~84aCFAp>YNT(Q)R8n zeKh@sjI^;0N-_$szi?xbho23qZtuvNaol#t8;ivxj7d}1p;B%)YOWS)DSawmW3uv- xl4$qywh;r!I1?Nq9{WpoqklgEzd?GUGyOF>|-5$4IjD*Lka)@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_0.pb new file mode 100644 index 000000000..16567c328 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cbae584764819adb426ea7c0e0563ff6feb23ab9 GIT binary patch literal 38 dcmd;J7GQT`D@iO$Pc8A1;9`IP7AVaOr2%9%17!dJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6b2ee34cc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BweightJ(м>u?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/output_0.pb new file mode 100644 index 000000000..810d9d387 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJШ|¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..443b922688078456801398bf7977533f1bb4d028 GIT binary patch literal 5353 zcmdT|KX21O6z@59;y$XjIuLaBMkIy+V(8eaVksSn5U2u9*Z3tl#XhI@xuhL{4ZZ?Q zT@V8c10$cJ6B|N&26oPN5}=ey49^Hlv2qvZe((Q#Kl?sk+LOHz>hPMu%&ebWg=hTn z4i2PI2e_RKw$%tDHB6FlJIOLpJS21!Ma5!gGwg)d!y6*YWAOylU}(h9-i1;ECu6BY z3`IZJJ);ucOSJv#5vEDtZx-LBHtmbx9mpuhcFSk0%{E&&W-dJCkLUzQG@gUc3j9O< zfC67mF#8j9Yn_$QCk&cKrUNuUCIjzLXgBwFC4R7YPiOl%;t|3N#`_eIRYa+QPEr)g z2HWHu^Fra-j}FwKd@Ue+L}$|?OGV{KVGhR_290jM2VYn{nkfp+P6en97<21p;BLyy zv=_lK$y)1}Iq<=O`rx6ayr3y)vCKw+x3!Hqd|_XjtGb*sJI~Zz%Jl7A2uJr}C7-X=jCxn5WDvRX#EJ z2k0~d?`%f5-P;-zzBYhluAajHF>jy|ze;9H3y6=W^l>K)1FsvY9>QnKASxQY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cbae584764819adb426ea7c0e0563ff6feb23ab9 GIT binary patch literal 38 dcmd;J7GQT`D@iO$Pc8A1;9`IP7AVaOr2%9%17!dJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6b2ee34cc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BweightJ(м>u?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..810d9d387 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJШ|¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..114b63bd6a64a4ca093b7e8b19c39d9965420014 GIT binary patch literal 267 zcmZWk%L>9U5VSU}aS@f^K|w?cf+!w*T|DZw^aH$qW)pp7Lh>}k<=6dyXAOcUw^HqbdlS_)G-ch6n%}A#5Jm^H2CR*GuRB0%Vn2Cc@ zJT#+G3#u37*S!`>2IPc^d^j!}SmRh`nO%>g4WIHEpYsJ@##R!4+_&T6EDNAd9oB_1 wbqzcNzkuy6N4CRnIM#zMt*~}6`B%1n@d2puB}VD(>hOMs`9KU;T9=!R7h``tBme*a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b5b9d5aedb188cc9af7678789f3b1571ae2aa2bf GIT binary patch literal 129627 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
=PvxVm@s~7IFCvmyz<*{zE3C=x&IbJ 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 ZgZ%l$&sTiOo+z7Y!y4BV{G)e9{U3usWjg=> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ea11374d508125c2dd95d7f5f744ea7a2b7f7c1d GIT binary patch literal 51866 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_2.pb new file mode 100644 index 000000000..9bcb44d18 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJ³ ‰=µà?Ë@?£oÊ>id> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d7af6c150 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJËpý¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e454fb6070b49268687023dc357587cd4177f5e5 GIT binary patch literal 3037 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

=PvxVm@s~7IFCvmyz<*{zE3C=x&IbJ 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 ZgZ%l$&sTiOo+z7Y!y4BV{G)e9{U3usWjg=> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ea11374d508125c2dd95d7f5f744ea7a2b7f7c1d GIT binary patch literal 51866 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..9bcb44d18 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJ³ ‰=µà?Ë@?£oÊ>id> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d7af6c150 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJËpý¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/model.onnx new file mode 100644 index 000000000..0b2373cd6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/model.onnx @@ -0,0 +1,30 @@ + backend-test:ñ +F +input +targetloss"NegativeLogLikelihoodLoss* + reduction"none (test_nllloss_NCd1d2d3d4d5_none_no_weightZ+ +input" +  + + + + + + +Z( +target + + + + + + +b& +loss + + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b5b9d5aedb188cc9af7678789f3b1571ae2aa2bf GIT binary patch literal 129627 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

=PvxVm@s~7IFCvmyz<*{zE3C=x&IbJ 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 ZgZ%l$&sTiOo+z7Y!y4BV{G)e9{U3usWjg=> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ea11374d508125c2dd95d7f5f744ea7a2b7f7c1d GIT binary patch literal 51866 zcmbWzyKR+G6ogU0JRDLJAzct4a^wPNf__25EBU0+z5;^rJoowU^V9RkzyCixKRv(y z{OQZbmv29Re1G}+>-W>!H~;>C+(}+ArFr z+!oMS6yCTjxJ9xr$fHJT{`6Z&T=}m<4*JZOXu719(}qT-8<+wq(izstnOY> z9(pH~=i~0vad+i#Iehu<%Hfc%?=IxaLwd3A!u8x~59dRDXs2A?yZJbjgL3ZKFY=4+ zyFUJ-j*ldVG5O-KpQcT{*jU=uqAcl!wjX zcGewx@^X6iae29NdiUh)@#*$2v~Neh+)j0O7us_Nt~}ixckS?Td(G3K9&VRzj}G~I z&^eIW!x3f^6Z%3aG`M8{S!s_Mj*=bK+&fV(u?aAAvm+M14 zc{;9NkPsUQb+bi2@dp&o3GZWp(YcdvOI%G+_5e{p@N=RNvR4wr}C z0p+0{ABT42y+a=I<>_{C{iXAvJsi5XxO>gHtB1QIUoLOAz2ldUoiL-@9}@`+AU% z%jp;8>3Y?@N6xN%d2{ycv{xUuyY}qZm8awSklq{}dWW1oU5*dEN1k46&Mw_P9p~HU zSLf4<{Nj42zIVv!^OvqC5A}S99L|@A?#M&Bo*g|p4(a-OcI#J{Z{I#2>dWKq=+X7~ zdU8cR_R(5d3$_4SiiqRcl7M(%fag1Ew`tS%RxSr>pi+0l=B^QdAfV@xV)Sm zAD7d|>(lk+SI%8Md1yx;=hN*hzd78Fo_E;e!}@mUcB<>!ZLWE~yuLft_1lwcPi~+zwSy<&5?-R9}dRd?6B?9g$(K7Q@X!)uoh_1yCwI_@3#%G04cuzGjP z-GlmaczyT!9dtc@^>R6P`Otm7Jmlkg-ob}`Uo5$sf-dWVU z?%9*GgZm!buADxkH*W{pfpkdk4!t?|p`1SCs&4$D!TzK6mQdgM7QVeLKxJ zr?1Cvuf87aJ-VIt>F(+4$#JuR87?^bTmhyt;dG-FwvcuI|(A z^NYRHeEr4$_x;}Eu6?@ifO781<9blOeOw>f(X+F3JMwaRP>wIZ?#l7Iqi=Wl`tp#j zkK1t{=eJMq&eG-VxC7g3UXR}Q=@;$m^XcVwduQ>rBhR<%9k9NfcdeWr)Pr<8-eV8v zL%u#FiuE*D>+lO*?tK;o=mv4`+ zU+g{o_T=dH>5yL3v+o^p`f@mwZ=Y@lhw{bV!R2uGAstrN?|bCMyx_rNj59M%sdVKq^IsKwM zY!8R-;r6@-hjLI3x+{;n(;O~e?oP40e0TWv`1Hm54mrEsTY7VL<-LQB>(SlEp`0F+ zhje%K`LKKP`cR&4Pal`Z<>_{Ces{|4(e>=m<@mT9-gofn_HaJ51Lcc+=v~dZLzi=p zUzC?~r<~qC9ooaaV{v!%?6=3aqbCpR+u`fkE3agyGov$Nhy zw}b0JK9uV{KGbg>@9!ZG<)D1`>E5G{>*MXy_2j!NM{f>?a(d8xId|!>K5iG%?UdV- z_YTO{lY?^n-jSo*)8m&f-41NdzW4AU-#xr}`;d>fPnYA<-NE~w<;%lId+y77mpgPh z=uUI`usIy+*}>)9zV`L)%dNh=oL=*C{G$GPU-#tg=rxBI_3ZHJkS^Cd^yYo9{POMd zVf%LIdhWyao7aPO^{eyg-K#I>9rfFnbH9G|?&<3_PuHtY_ih~O>-AoHxSk!TU(|!{ zmD}Ota**#1-Mfl%P+ty*_HaGAcj?p1+mo}47whBpaqqx;Po56xy=#wOY~EcteY$(q z?a1MBdi?Io@#P_1u6;heXs2jT-@9@7>fP_o>dV=K_UhyHaeX-)Hitv+EVl>wxPASi z-%TFM@gX1DcNaE~^YxbQK9qNtZm&CZc^t~y!TEH3+&kpyde!;#m7_y>_n|#pPS5+G z-0JDq$L&CStH<{qIouAcU)~&U5B4r@56Z*l=+HfV9Ln+W;`%+Sdk@{t;!AJO`?^mr z+V!1$x_x_cbSTfagD+o>k3)BH*u0#3a*!?u>Aque_w>s3+~ec*>2meGM~?6Q()rLn z)a!nAc_yGbm$%K6#31&!`E}CKD}sHp5Hw>Y`*W{ul@RV?Ld9Lck#Q! zmxp$s9BzkRv;*~U{p$Q;_w^Ub`|jSM%kkmm%eij{*O!C7OI}WI>3S>2*N1dH? z`EvG~v)}KkUfx|k{o?LCN%w-KERpe8|_w`PFfIMZO)rJ>Mb6$DuxyTU-zJ z9&yl5ZtyF+&emvhGsY+et_;dXHTx?>;e z>*4x#={U3l>H2n|9X`~vvvTsywa+j19q!N}9lETlih8j7`gFP8tuN6Oc`zMcBGT{#@ucNfz2?BRSmY+tT=cjTZv?0fayg>twYv|nFOu09=l z7Y^;?cA#E49eR(P-Ew*NZ zbSTfq`QBaK`=C7Do_#v5N5}2R75RG5JNZ!GzMNjMdA^=qd(HFddUp7bE^n7lw*&Q{ zT+v=p&t7}(>&fBm)1kgyI;`G(es|=ccR+b}igxw!mE+qj^6l|)zJ1(#@%nT-knRrb zo;=ip?m@YtJRR>ndeQq}dvyD_9eH|DP9KN*e0@IjI~3)M-Q&Aw$9{dfygfafFK>sB zL-}&~?#R1~%R#yweEIfZ^LqB6oSyHHr#DxwXSaOq$=lPzA-y}-`{bb=Jsi^4yX5T2 z=~efBJ}yVM%g3Rd9;8Eg?~;RbIas~C@3QBvJidH8uzByH!|v(J7v<&pK3vWnx;=d; z2le%uTl(tByD#S+bVm--p}qF-_He!(*!RdoKHmFwp}d?s%eUK{zCC?;J}w94 zE+6-PIsT(uzdgDgTn_rK#r2z8x*XqKI?i_&`d!MKwAFkyK9FI?cm*Wmk;Ii-G_3}PV@Ek?bo*>S6|N^d7KaR zacEzk-W@(2m&fhN@!f~b;ZV*l&bJTcE|iCMp?zG=ci`^O+oKot>2~z_&^uO6uRd-^ z&K@1op}u#@;ZWYb9+WHc?c&g0{oa$KLp%C(dFWkodUQP;$`|$Z+_`jq^K^G{*gM`s zm$OTUd|aQdN0+0^@vHOOlY@LausW^>-NB)q`Z!#>`hI^{-95fNyuQ91?mc>Re4(B@ zkgn$*q{~Bh@uEI-2ioOByLeF_%G>h}KCG_?^&nl(JMiZCdPRB2$Dw`irsGf_(!IkD zAKJs^moCSLdVKfG<=1=cEVKvZ+`D$$YaaJbXdk)@t_S(JoIBf!c$4=z{Te*1KJeL1=uC*6IzKGc)L^7utu-)BR3-oKJ^z=-rU+-FW@#d_C`Qmyb6mZx>eAhuzVG z%{A{`?m#`hJzNgj<;z1kD2MAqzP|TBx;)ggD~HP!?dt2%p&dSMuev>bIY^hIL;Lmh z+=F_!K3qF|D2LmlB-~rbevCz_UyweuP@g-bbGKpyzkKGLpfXy(xG>i z+wrc|=gZqE^6j{*59Rdb^yK(-NY{gWCufBWGZtvKGayZn3bb0TA{N69Or^m0(x4Zo6@^+yd-*?cPp@vz21{| zw1Dn%#AIg>6p}Qjw?c&Yz>9{?d-yK{Y_I-As9JJ4ee0S)O?;c)X zU(P+cJRQ>YihQUC>E2c3%h#v7i?`SBz~%Mny<<;KPo6Hvr`wa4!=W7CPO*7+=+KT` zIeT=nA>V!dh0WPrdHe1)k3%_k@b1u|zFhm>N0+A;?fd~uPd5Po literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..503a1db44846c66e5be70a0e2d851b390703f464 GIT binary patch literal 25944 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b5b9d5aedb188cc9af7678789f3b1571ae2aa2bf GIT binary patch literal 129627 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

=PvxVm@s~7IFCvmyz<*{zE3C=x&IbJ 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 mR{5tP+^4+^`);y`nXF2*1+#FD{=Y2fgn*!j0Yl literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f77b9aa23cf6cd80c01cdc032530f3dbf548c7e GIT binary patch literal 129623 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 W;_oNEWN%bVwPlTa3jWbMrTz~&7h`__ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..181fd66da164806ef9ea68f993f539ff6e6dce4f GIT binary patch literal 51861 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%0A=*{ur>UpOeE|2r+(0yF4 zC|A8)&Rs}v-d#D|?}6*%cIfhu51X?i5Bm-|D2GFLpnKh`j;~(t$-7&Wch{~Q&Zpbu z(_!;;s0W*;y92!!?;ai2$KA76?mnzAMf*%I(nIk%xBi=J|Bo9?tI$E)V-YJ5UbV=R>|bbjWuPudgrX9$lUe>3T&z z)Pr>ID)Qy))7{0}>v!Pt`t;thC#NS*m*dmz$;;tTj&G;fygPJg$F7_`I;<~e2bYI> z(0zG2)Z;hr9^~WKj=Vd1?&;Iz`FL~PlcU4cTfVz|@9K_w^yXKudH3jg_UMrBzW&1I c?5@0h_nOC{oI7}T=uls-eea{o(~EZg0vIPW?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..cb79a6e2e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJ³ ‰=µà?Ë@?£oÊ>id> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..2d53399ff --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJXÒ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5f4a11acb8a25b933f6596b96642f86d80484b97 GIT binary patch literal 129630 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�CFmUnXDQB@!v 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 W;_oNEWN%bVwPlTa3jWbMrTz~&7h`__ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..181fd66da164806ef9ea68f993f539ff6e6dce4f GIT binary patch literal 51861 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%0A=*{ur>UpOeE|2r+(0yF4 zC|A8)&Rs}v-d#D|?}6*%cIfhu51X?i5Bm-|D2GFLpnKh`j;~(t$-7&Wch{~Q&Zpbu z(_!;;s0W*;y92!!?;ai2$KA76?mnzAMf*%I(nIk%xBi=J|Bo9?tI$E)V-YJ5UbV=R>|bbjWuPudgrX9$lUe>3T&z z)Pr>ID)Qy))7{0}>v!Pt`t;thC#NS*m*dmz$;;tTj&G;fygPJg$F7_`I;<~e2bYI> z(0zG2)Z;hr9^~WKj=Vd1?&;Iz`FL~PlcU4cTfVz|@9K_w^yXKudH3jg_UMrBzW&1I c?5@0h_nOC{oI7}T=uls-eea{o(~EZg0vIPW?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..73961bf608660ba8ad87e40207b1a02d938f045a GIT binary patch literal 25941 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

k(Q^xkeqKP5LVy2@PJ2VGY9*RcHe z0J;X`kW%=LdrE$v>ec zUIrzyNx7H+TO9)Y9GPCPAfmT@qj&Hd5_LRSJlGqR(^*`Q_~B$+NVcz zEHa(huR}=qGZORsa%MG|<0~~Xi}_}po~I$|PGpgs70LYV-?{O&7RNyeY_SeQEiafZ zVN$bt9GABl`=OH@UWbNUyE@+Y{U{pOVngO%J^8Rti3eU z8?5=#^E&~~5ok#-Vf$uT>+bH{{wA~14GE||_$2e?R;Zmd#PeY-1>fS)kN86Mwnolf z$)PSefGvIXDgEmcVud%Y$Mu+=W5XD^%h2iXbe5(|jr_j!-4m+0u_}n;R|{$9mdU<; zUW`BIPQx#9Pch1g2aZv=>@a7y>=~x9uH3ACh_A&54vw~_Fg=a+(KWJvYltfcZ!vag z2{BhAF}6zO+A!HS)MN3M`NY$5PiV)GMi&0C=8m~5J@>vs@2_ywf6d{U^#5jS*5cw) zg1Xee?LvI{aLbKmADMYNpUI66s$xs#XMW6dVplIC!um?jKXv|=&ky1~-g(v0eRL<0FuR5?QeSy*Eob;Kxrd{~Lc@J81AKk%n z@9a$xz6RQiK3qik;5PDP4rWdDW172H^321L9r`jieARE%h3 zJjf(OY6eEc4|O6>ey_!uH!5P(G;?O?HSxX8hr!B;oIfUO>OdFa6BR(5)C2qcVafWi z8g9SP6tUVd#L#_ZZhMH^YsQz9ksm3!$cdM9HEY4orJ25il*EeF7g0&cBTHs@_s43Z^`d~T zMG^xIucO~6L-MY~^2?+Idf7+vB-#uAyQz#UYQmm3b{*#c}kDVa{Eo2?-^QG77V)C*%bbs?ORdOe2b-nB%D9*kX4ux{snV3N{uh##l3Up<*X0wy21xv~+ielyoEA zjYvy>dwt7)T+0P6?!CWr-gob3Z=lJ!x}Y)(_YXC}@wh!s9FZr>kPe^Wi8#O+&{xS1 z`U_1U5`3|pS-?O;CDHRw7xZJ2@dyR@wl4tE#dYX7=mlxJJUn9`#gM%r2s>Jg*@JR0 zFI-7@`LZ+MVkWNa^1!qUacI!4$C5KL;)SQQ2qtU0V3~wi)y^H}YBsdZ66k5zP+y3I z?k8z+jasyEv7~rYPrgP+Qq-z4->%(-u_~!JcIrteG z)GP;&Erczzv!4C3Fe`w%gNY+{`TT(Sw?^m`{=_f(gh>NZvB0YvE0~SF86N|~2x+1F z`US$7i!&iVc=cs7UU`1zxm}6&4iofyQN~Q4F*Hu*k$;PZU$z@mlYc>xKINW@T=+Z1 zp>5_D%#wJInQFcGp<9SGFKnPWiF0Oe8@5L$BhRoEij#7&YlRQ)kymz^=8asL9O$KX zqvk>day-j1X>$YjhkR@pR0P$;H2k&nHBQX!#=y0%Fllb1CiMnJ=5DwYX@)V&%i&VT z*Ql1~#qMxCU@qC|eF27tJcQ2KaOUE_qV8=Ho=evw^gB5h`8Z6@8X~s#nB&N~3{2S) zN57^E_f&20J)FpHs8oc)3P>vuX4cP%{EYSs>7dN(K!CB z8aEr533?NPUuk?#)ui^%89D0oF;O}!U>TQEQ*1@{s6x|xH& zS&ZXXp2EM{6-km+2vcOXP9hj%H@CumX9Prx7e3Wykx5U(s5^YtP0bJzWrnTY^dHGu z3|C@?DlQT-Z`rxvS%|O_bBwv_kAEM_h<(`|s2rb$(%uMEGb8Twj($jN4#M|Ji$u$> zXpbVpVqOWO4TUhd9)N&#M)-C^Qebo`4(+u-+R;*cEH;OcYBm=2<<1q=3*FN;i2UBh zEK4QMO(#2dtCq}$H>zvph23>m$dJ+BI4A`U&WY%vJ}&il6KX&EUG_x%RW}%QMd8#U8-$bN3z?=Y2I_~x;8GdvPfLh> zcA4lmwglHUD~JyA97?>q-W=tfy!j_I*f(Gn;s7nxK$vSVd#L*pMuT5MS=kwRiJiz{ zCUE8q32|*^J2d;}z;;j*_NhB!YL74elZnQFqHF~IFogy^hu;T-W^H#_s!s@d2SIZ;HZa zX;-v1{6zM;I5e9T;n|80m^{7~cI(M9O-{k37Ip{JFq2ze3++mFR()mui~Nb*rDW{z zv%|lezR>e>!p^ilVkGaWr&~>7^-w}2?ahL$P77uzq{A<>1qZ|{1OyEd-SUa-sL6+B zRxMJNkx9_>fZF({xc`jVue~WSUDARF(LQJ~sl}zJQmpTmeKxqDG{Y9E!w)t8c&fFUJ{(;vUG-)s zOcQQ$N0$#Y$K_4(V#CB%oZFHDb#lB%Ih%O5IN`fh0Hz~ zW%$y{&%yX4s4_pWcDoC{$;k-yt?kG)se|_7a&&=yi3zj7(SE3k$j8itayT-Zx_)XF zGWeX!uKkJN{nEnWdMM@}amG{L>6@0yiw>Q5gf&({waO9`x-#h>_Y+~G6EJ*73LZ1J zqUmK16KzNI{A3>BNI$XsSvYP#OvA4k=s}a5mP)*5lRy1@UPHnXlg+kZ>&*l0)2}q0P+v5GN%0wZnCx6XMV2V~tk~ z7S%c6&4L1iMzhDN54*Plqfv0G0J792PSEcuU>{s-U^^VW6oiTuJ4J3XXL`&M2d5@L zxR#)Ny{yoRl@w0D4H4hYS76^_d7<3L7N2g*h^;G<5S{q}-nX2XkMcuwJUa$>ep++Z z8oh^%jbb~ps6YL3Er#k3W(x-v!>}d*1&_+mHjtT-Kb)~BsSGc8W@oG?E2Trve~Ksk zNBE+?#0G1_!HsfA-;H5N}c_8X)&AUkM$#-)#u4Z*H+`o1NPc%w!lQKK>U^(2dfTtCh*RhlKT-a zQ|sx|B*I>*1{*l<%PcIz(OWf`&zrmwYrhex%CmHXhw~SHy##sLc&);c#zu*zuAie7re1s`8#r?9r2rbBwlF* zqWX6kA=zq+-*V#c^r1Chmo9wbS+KCU8QSBdgkGO!{$EN$;$R@`KC*MhDGEz13t)XT z21{pqK{?|cVh`kzsgx4`vP0(fZZ}AEdZ79YxwJo-d)H0I@IShsaq&F{y(CXf9{%75 zcWSB8_{zL(2zT0yDb8|pS6pMT zJW5`y%jksu`w9f@F2kM}S%M;4cEB)$c9%Yrp;sd=WS3!+ zNgJZe1K|_gj%9z#ihCvv7OxAnX18-78(Relk<>VtpeGW#_ zmkaX9=4UVs$D=y1fVqSD{rd@nn=N>Lx&!yL$N+HHRy$;Y4dsqV`s+R_j+60u83WB} zE!cE59fk?)%UjV7{qyZe-q4OZf6fTWt$ZJ<(X*o%nh7#O)%7cO=oRBE=dr-Z4-g-# zvF}PaHf_t~nVOA57L6FPQBLfN=h;>44{cF}7pZADS1cjwcS?)6z5b9oVuJ67OR&eA zT2Q|>xN7F1V23q)UfJTt>VqSs=4*ydHKeb%W z)OnbcFDY`jk*{r55ThoiWB;yF%#94egOLfi|2YEpx62F13>P%c&%t4`FKblHVCUY3 zEMq>)*9;INmyd$g9_+*j#HDaolc@=-ziMRn0;E_kp6s%pX7c@cuS;g(q3Gc%yi1m}3pi z6!HMST#z*`14ZAuu{0|PDO18Rh??ya??h%i((v|89WI_tWbdaDqARFL<;5cR&m?TO z%s}PxJgnL14BZFR07H#ncFP^}wY*^bM-*PGCPE=eL5y{ob|X8mi~`&W%j{%p(o z{Um#1i==(oc$sDg1Fs6WlqO;s{YY;<^J5IV>80hu%*+Xz9o$)J46$@a9wJoxi6QgZ z>A8{Y!$BJauJ^cunjzrg%GSqeF zVN7NOJ~lMqKuR$7?Qz74X&u-dM$KN)oY~7Xs66+^T03iOsqV%4v~aAJWsWm32|k+| zFk@XH>;tnfm$UIn>Jc^$F8E`jKPGJRM&hkt%x$s4kb9+2A%Bz66^{J&UohtPepA&) z^e;8Xa5@*U*lW@$@{7eZ#@|Hu(Ij8>QagptFv8&E}i2X96V1|rH*jJ24%nc07ZNWn69+=&c5!}%EA)Nd)`xue@8gFx#RRI_PROy;X^R{qIuue{xrki56e-X@)5FWwXjx;#rfy*VqwNd%)HQx zIqN;~k$PW7W+)OLGaI}^R$Ts^iR-WWi6^&>(L|s4vO_E;{A5?Hkqb`$vPOe!6`V?o zapEp}3#Ydt#k3gKtGkeDLN;>7ceqPZ$7PNsbzn7`qYI%t{0ID~D`+0<#ecW_F!OjK z-WxQd{M;bnlFU1=%bJ};UQliH1q{qFah;^t$lYh@jt+Ln7DD$V^M4Dguzt=bh&nRm zaTT!iD#V7P=2)>I32=3XVOanUEsDTw4`!T-!ttWF0Tz$L;4z~Eh8LsocexD=T*+W+ z@HN>$pX-i<=zG%_8zd6o#y-r!Db84MhFy8Bb?_d>j=_V`>=v!SD^+GIH5$<%od~n^ zaCEt{pM|{R{y;yhEpI|es3`_py5Pt42&Dg~Ai^rk(R7&p-}U#{ESn9Ls4|pX@mLG5xUZVao2zjGw6XSkzu1XgjhK-NXh~-RW2AvUPD|cfxt7DN)_QNZs z9&we?*tk6tAuaYeb-n<)im7PezMvzRo!VQ7N3lLQN6um6?mXOhBq?O|%@J|33;p;S zIz5X(`H>_vFe5*bou)EQrg)(lg;Zq+_(jWz4jFT-W}iv$@?=cOp=V9qt)BxsQ9T0T zKaG85x}g}SV2JX$k?=hm4GC?YP1VdP>zCqkWDaImI>Xk_9}(nzHq);kCm)WY4KkdX zZP78u3z}q|CJk&v>|$Br&cC~s7eQkvwfp`u;&*D!wN1?!I-r^RBImHjIr!`oh`(#t z32a&plLbL|L!C&;fDD(8J@&a31Z@B=Z_&Fop*B^VP=c9g|2VQEBk)!u$ zv@R2IddyZYNW=&Od7;(QjoXpZVt-98?z}OA+Ug42)@{Kw_Y@3MV3(jQ&qi_)q!gib z%NfPPm>~go`p(aICEZV$sypLHMIzLgJBUe@5eFCBV$wA-pHmy~OQr-%se851lc_vL zUnIX6LB*L!364PRqC70=9}WA__E1k{*VCAIxIOVfZ=p9@$ri-Z^S(EdpV2zr|mCC)rvX{Fm7kpPaFO-(?`Syb`RHoMKkC4tWeJ7N%X$SH2iabtf@6~2g5x% zKbNDTwHgCwx2*_A3-aYSIf>*xQpK zcEtUaq43YNfy;6am@tDhedH%R7UX}GJ8?517-eKxK7C;~SQxqU^WB&zLnd542SMYq zk(1BWajMNonv}o{J04sYvk|D%xIk;{tsnm)DJW$#Y$OLl*q6h2m32C9~-X z%w$Ll)e+LdoZfl%gd(iW2*w`@!I;9ISABd2s>ZWNa8N1l@(9$EqpC6u#c(}e#D8HI za%vG4s3;1(o$LZ%>5LPnz2Tuou1&Q7uTD|Vybz0s-4-aaNyD)RKKP?60M{*&uw~9G z99bBK>TTrWIp5jX#^Dw-WGZR}kSUTDokxOTbvOvi$kHxf^oE|dEwrk0uvNDUx?ZmM zD(eYR?gqb=rEvKqBceu`;eHi&5l8y5UcJznn1qSO;m|6Q5svBphOacl%<$LwSrUQ$5sOjcN(?JI`|M??qO%KMc47OPVlP~0Uc4nI^Bg^}#~qJB23y_Q`oGGfvJ?%hKp zsM9z?=S(o!xF0aunvR}`5NP!cLhs95TtDN6Tf;(e!!;U@voo>oybm;I+F;V)TKpC3 zg38W%Ebg{N1o0Rw*Y9FS0eK-PuN+1!nY+hcu6kn%F{mL?&5fK8?g&ILqa56 zVz)(S0gQVj#M^nXSeWz?(}ROBSEm4G!Tg;8%wz4eCtJk1)Zj}ahR2dwx>$;FH`&Yc ztQm2$sr!)i@}a+1d?^!}TU^;?ABLUvr5K&d-|diJhnp_s_AKmia#p12cRhKyG z^d0q^g0Ptxk^J;XM2;XwFu#x3IGb}I^P?(vzF|xcdpr*3qsEN7hy+!qnMkdo}^33I5QS6^S2*O7QDQ9wy)Y zj6Xw4k;1N9zm@**FKxt4^7r~T*r`<)$qp-5=-Fq(&8rQo$GPIYSsRvDrJ}hj9$kDN qTQ?da@)Y}RnemT$&3^nP@yt)QVA!fSTsYN((_|vYq*5bcUjBcwD0o=_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..41778db51927f257a082eab072f40fd46021fa49 GIT binary patch literal 1631 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 W;_oNEWN%bVwPlTa3jWbMrTz~&7h`__ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..181fd66da164806ef9ea68f993f539ff6e6dce4f GIT binary patch literal 51861 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%0A=*{ur>UpOeE|2r+(0yF4 zC|A8)&Rs}v-d#D|?}6*%cIfhu51X?i5Bm-|D2GFLpnKh`j;~(t$-7&Wch{~Q&Zpbu z(_!;;s0W*;y92!!?;ai2$KA76?mnzAMf*%I(nIk%xBi=J|Bo9?tI$E)V-YJ5UbV=R>|bbjWuPudgrX9$lUe>3T&z z)Pr>ID)Qy))7{0}>v!Pt`t;thC#NS*m*dmz$;;tTj&G;fygPJg$F7_`I;<~e2bYI> z(0zG2)Z;hr9^~WKj=Vd1?&;Iz`FL~PlcU4cTfVz|@9K_w^yXKudH3jg_UMrBzW&1I c?5@0h_nOC{oI7}T=uls-eea{o(~EZg0vIPW?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..73961bf608660ba8ad87e40207b1a02d938f045a GIT binary patch literal 25941 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

k(Q^xkeqKP5LVy2@PJ2VGY9*RcHe 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/model.onnx new file mode 100644 index 000000000..02a48e081 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/model.onnx @@ -0,0 +1,39 @@ + backend-test:– +B +x +yzlog_prob"SoftmaxCrossEntropyLoss* + reduction"none -test_sce_NCd1d2d3d4d5_none_no_weight_log_probZ' +x" +  + + + + + + +Z# +y + + + + + + +b# +z + + + + + + +b. +log_prob" +  + + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f77b9aa23cf6cd80c01cdc032530f3dbf548c7e GIT binary patch literal 129623 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 W;_oNEWN%bVwPlTa3jWbMrTz~&7h`__ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..181fd66da164806ef9ea68f993f539ff6e6dce4f GIT binary patch literal 51861 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%0A=*{ur>UpOeE|2r+(0yF4 zC|A8)&Rs}v-d#D|?}6*%cIfhu51X?i5Bm-|D2GFLpnKh`j;~(t$-7&Wch{~Q&Zpbu z(_!;;s0W*;y92!!?;ai2$KA76?mnzAMf*%I(nIk%xBi=J|Bo9?tI$E)V-YJ5UbV=R>|bbjWuPudgrX9$lUe>3T&z z)Pr>ID)Qy))7{0}>v!Pt`t;thC#NS*m*dmz$;;tTj&G;fygPJg$F7_`I;<~e2bYI> z(0zG2)Z;hr9^~WKj=Vd1?&;Iz`FL~PlcU4cTfVz|@9K_w^yXKudH3jg_UMrBzW&1I c?5@0h_nOC{oI7}T=uls-eea{o(~EZg0vIPW?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..73961bf608660ba8ad87e40207b1a02d938f045a GIT binary patch literal 25941 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

k(Q^xkeqKP5LVy2@PJ2VGY9*RcHe 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5f4a11acb8a25b933f6596b96642f86d80484b97 GIT binary patch literal 129630 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�CFmUnXDQB@!v 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f77b9aa23cf6cd80c01cdc032530f3dbf548c7e GIT binary patch literal 129623 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 W;_oNEWN%bVwPlTa3jWbMrTz~&7h`__ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..181fd66da164806ef9ea68f993f539ff6e6dce4f GIT binary patch literal 51861 zcmbWzJ8o1_6hu)>8*s>&2$>NXlVH9e;gxKubXta>T;FqFzdhc*{`>#s?eX^d{o9Y1 zUq65UdAxl3|L^lVzP=+J)_;$EqT`SEKj`*wIl4S_50}%YLq4=$v`fb!-44BX=yH9R z9jL#sIoz&0?O!>*_rmVb<@q@D4tejxi+Xf@y1sjhubv(I?dx@4o)6oXbEi2zU9LMg z-+S7#S8QKz>HMO*-r)`|Pq$w#-#vLd{PyWk&+bRj9lLgL?~-#D()FtA7wzluyC+v& zUSEzbPcNrKzP?>LZ$kgo48)>q9x*eZ8WbyLfwaeRuRA9opfq zo$kunfp(yMz8!jVc42#TJA6BQC|6$(Ht&6O+@9V-xpkM{UAkR;IXdordN`Eh+kV@^r|@?aA|T@1)~J zJ5XPb?k>OBJYSEGch|f0_;fwIIs1Bidi&j}-@aWryLRYM-VT(9&Ea;|9eeU}diHU7 zxpI2<bV%2e=fi7XP9Iix zufF^8c<<`dyTiA$P@iu{pAY%CoOih!S|#rE{uv!~yld~@>k<=nF;r`H@^57&o!_TGp7_zx?WU>H2iL(0idCY>sXhw~u$Pc^t~yahHE_eW>R>`cMv+hu#6@p&lQHcI3T7 z9`fbsc5wZr^PxQ)y0^G{&AF?GyCYvNZ@0bXaXs8V-Cnu<Cij)cA*>&_4v3QI@H7EeGgsE4!@`mo5$@z zJ9_TI=IHWvad|piclfY5++BR#qeJh(_1&v3?;e!HVfXCT*N3a;KHrXA{pN7Ke)am- zzPt8tXdjoOY29zIXMWd~@=!_vm_d=#byLbUpiekdMph7v<@C)xAf~ zu6%iO_UyD*AGf>q?AVp3Cu_4s;nMLy))>kb|2 zK{}*+7ag}xcfY(BZ$}T8hw^gtzK2hTcJ1gxKCTDpkPfR~ciPim=)3Gf zJ4JbWd_7pdze9KQ?CHzF>fJ53r;p1)K9uV{x*U}A9dvoRd-AxvoE{&S)5q)6_2pO2 zT|IedM<3_Y?JU1J+>V}i*yF?ccIbAh>)UOvdA_{9JJt2ulWR|Ip&s9Tcgp46(WC3} zp`5*9bGY5+>CIJl*SqY{alSr&?aRY!mk;&a^By|x9r()Ap*yg8cgx*_`f_-E_xc@l zJ%06aId}QceZD;8<9gn~hjw7|IJ9d|59iy*_37=kuP3h$o0nU=deDCJcKGg8=hK_R z?aSeO@1f)N%e$io<#BhQUA}yEKIGeh`h8b*eJEdSulJkB<%-@})VuE4le2^S9^9^+ zKBPBq2ik#jNbe54IrpKQKIG%xYY(qahxYB!+bh?D?%JX273Jve+R?}5+N&-vhj$-$ z$4*hdDCds7>g~zV<*R#_eH>QTUwiUU-aF{}?%?vUx*a;C+jFOSeRt@%9(2d999bK`EbPw9+f3{SySRNj%{Qm7$8WE`9_&53 zo%ZSO>FdeUp}f94l+%~zLw%@MPH(R|?jH0GXurI=dve`-*7vUN)9v$%z0-XC#XtIf z?{U{Y-FHAa_vCRsDBnJ=5AEpLS-Ks0IXx)HmtS|~_}$UByL^3lNY}^hxR3MOr*~)R za(3K-?KQ7Q@B8$N_VxMna=X2=_}Y=@+w~4uU(UN$P7mrqx*hMahw~v{A1^k~r|Uy{ z?|Sd*)8*`R7jLe4dvr**gFn0HyY#!u?=HRQZuR!d-Ph+=@2p}a_ z9^M?k`*e4p{^IM7eSQ1TUUT;N&<>PqpAY5i;0xuTeH_xEdw9RI_vG!>x5F>WyCaYD zAsx!wZI14pdboUZxV#+B?+z}97x~@sJ@W3#;rftYE^imNPuHuC+lTGZyH8*Hd}tTf z!|j*L=|g$E-=k-bFVF8zb-X)tXxANBU(Q{-bf_;!m$zGNuX%gL?stbzcegvsr+W|H zUAq0|>3YyR^dTM6_3T4Bly}z-)Z^>%^%vLU>(lK+IlI;I_Pfis$Ja0Ro_>3Bbo+Ej zFY4L%4mo`}9Ll#(w}V6ZV(;K`xciU}tLyhYa{Tt`eYf7qyVE{hue*Gx?;dOqw<`zj zKzTl{59#gky;IH}AAi=@vs>ibgLLIme0zNQ;(dpl-R>>DIlJ=SLC5vz?&DBS56VNjyZU_CJ$Zd7 z&$p+K%j5ENJ2<~P<@V@$cIa|^Tn_I$_;hvnxyLWc%ehldZ=VkB z;oh;hJ9_rpk`&-n@Ot$J?jN@#*g1eb4gc;j=yW<-N-tx*T+;Iepk14)t;O zR-Z1XPlwgLd+GM%x>MhK_B;b^YrH3ZC*~#zC2t# zx}LqI+jCDI(&g;na_;fm7RYzE^(v_W7`VJ9ItwVf)SN zLA(0Z`SkA9m-CML?aR4ezk2ud^_r*a)u($m4)yhVuRUDP4%9E|LHEk-@NqfFcZcp> zMLDQ1heLa~9^Je2>E-Ro*~N?Xar?M;;JqhLhxFdH$1gVTuADyIz3O)4a5+7G_vQHV zkS^CgpI)?6w5RXgxP0~QcW3qG>_L0=@%p&F91feqp?8+sgM8e+e$nqH59Rof5AC}P zo5%TjOLrg2yGys%9lAUYhu*VL z&pYIL#~vNZw@=rD&2`6nn#YU!dXV0G?aRxR`wn~14j<>+gLM1t>GN?peJIE89b67} z7w512>bN_0==Pv@!j-efFW0Bz&^$y*d@^*@HtIyZN z<=uz$=K0=ZhhCJk!>^9p!}aj?<>iXLL#{ja^yHi4S8ra`to*TdnZ^X<9o zUDfSYZ*S$?yYlweJL)&b_YUYj^bSaec5!IW9Xig}hjQ)}e=Ue4*M_DxV<9Z4&R>dkmKV}AIdGR2YV0K$6?=P2kJq( zp7#}3e%-YP<)A$%=Pu5tdoNzJ5Bc4pyMxQQV+S^`2jy@(IDg%-5B2qMeYe*R2`R3Z^7yAx(=#UQGU7YToeE0a(aXl!H`%b6_>FYgwXcyYSo3l%oFUr}0 z?a4v8?$P}od^!&4P!I3D`rawWhkSeP%HvSJeR3a5XJ{`6%SG_xOP#*TZ`tCwGTn^f=uP0ZZ4!sM9_HjE9Y-!2_i?>@gfa?m@VygNm^`uNK6?H2j=_&DD_?!9<@x*bS&2X;>$>OuFQTv48m z_a43IeXu>cecX;by(p)TLw&wJANn1N^2P4)-LqrAK3(3P9?qAy!^fd~xqNrz-Noe~ z-44Edd$4&udr(f#cgWM5E7!AIzV_tp>EV#xo$Gz_(2gDs>FZr`_T==cdp{qSqub@< zP)-lhp}cp=LAo5QUfy@vb5|Z;z8%=S_t0VY^yQ24a(y2z=MLSTK9qy{dd)3;_2k`` za}T;B2kFpWdw6>|-wy112P!{%@(XBX$&hjJInL%YyEF6TRNcj)cWi~4js`h4geE2mc?n$*kJvzQn&mBnDa}Uzxp}Tld zAG!nW@}XV4s1N1sc?TcX*MoYHuIC+ib9}v`JmllhzIW4cs1NDhVTTXx;qptD<3l~Z z`{nZMJ$4q_gL3X&yX`fPdndFH-Gy@Y?eK9q*uCm}Xs35@_lo+E-+MTJ-Q(MX&38|( zy7$xN+~JqY^Yw7(U63ws7xK&9qvLk;aK5{^J{{MCd|b|*a{KbQo#yFs-Q~mjxO?3% zcZZJa+oQ|T%e`y$>$i`??%;M{^WG~D`)<0tz3O^UUXJb^e8`uFy{8Z5+Q;q7+0)0H z(}!}fd$@c#9rm95LU;9Wd%g#kt8Tx2y1c#|T@Lcyh5CAOIF!fjLOs}Axx3Ilw99W_ z&OIoP7wtehuzl}X`Q^*IZ&x0dgLFB1cjW5pt-M~*j^Du!edXo&@{le^$Gwy8K3yN` z$>I92eK}~)jy%7}hy1l8_pEPE&v!t+Jvr~^SJ$s@M-R$D`|^;FuRGQC+|$S9%jxoV zpgh0%a`_AG!{+IJCqB-nLpte-dU<%)Lo_2|$JAGcTCp1vHU%h93z`g-m`JzO8I9X^!9 z?a^`f=mC`ad|qm9m1*dE?@=<}f*E(ht*yUOi&*Xr}-?G*WT z+|`G2`f_@5d^)7-K|Yj&y-SC7pdIhg=NH$Ge*LA}m0$1hp89sLo%ZDQ-FF9dDKMH;2RS(d~E#l!xx(dbnP9 z>*H77J!rRg>_Isk>Os1^_dtH{m)q0hSLfSZesy`fP>%0A=*{ur>UpOeE|2r+(0yF4 zC|A8)&Rs}v-d#D|?}6*%cIfhu51X?i5Bm-|D2GFLpnKh`j;~(t$-7&Wch{~Q&Zpbu z(_!;;s0W*;y92!!?;ai2$KA76?mnzAMf*%I(nIk%xBi=J|Bo9?tI$E)V-YJ5UbV=R>|bbjWuPudgrX9$lUe>3T&z z)Pr>ID)Qy))7{0}>v!Pt`t;thC#NS*m*dmz$;;tTj&G;fygPJg$F7_`I;<~e2bYI> z(0zG2)Z;hr9^~WKj=Vd1?&;Iz`FL~PlcU4cTfVz|@9K_w^yXKudH3jg_UMrBzW&1I c?5@0h_nOC{oI7}T=uls-eea{o(~EZg0vIPW?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..73961bf608660ba8ad87e40207b1a02d938f045a GIT binary patch literal 25941 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

k(Q^xkeqKP5LVy2@PJ2VGY9*RcHe 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5f4a11acb8a25b933f6596b96642f86d80484b97 GIT binary patch literal 129630 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�CFmUnXDQB@!v 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 à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean/test_data_set_0/output_0.pb new file mode 100644 index 000000000..9109ee682 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJuÛÇ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b141f93b5e35390da086459b0f0681da5b79ffd7 GIT binary patch literal 158 zcmdQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cd3dd54a5b93f253a108e3cb7a976f79bb38e27b GIT binary patch literal 59 hcmd;J=3o+FcVevcGGJza02s{#<+DI(7$3@I002oy0dW8T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..8e8ae88b8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJë¦Ø? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..10227b3213909c9f6443db72d96a9bc1e1402df0 GIT binary patch literal 1273 zcmb_cv2MaJ5RF4AQIU1tY7pbw5uax<$-R^d(PLT4lU-jP zgW^jdW;BQ?VL>|#Xr2%j(lD5B*er`U8!bsf+rDFYoQaIE%)Nr@maI3_#a5+hc5F?1 z|61sP40uFX3efjdL>>oyz8DQ0D7H_lxOFf{9*Il+fOL34DuN!<xD%zK2%?{{vc$z7ms~10{Xm{gA7*gUkhJhtb|?4e5ep(U!`qezcQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cd3dd54a5b93f253a108e3cb7a976f79bb38e27b GIT binary patch literal 59 hcmd;J=3o+FcVevcGGJza02s{#<+DI(7$3@I002oy0dW8T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..8e8ae88b8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJë¦Ø? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b4a2c3818e3223ecae92e1fa9eea4e8cc390c1e2 GIT binary patch literal 209 zcmdh=+@bgBgffftV>u7-T6Q7Y_%!5C>F(DT$j4=nOV47NBZ|Bsng) MgRq(4#3aBE0DZ46*Z=?k literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cd3dd54a5b93f253a108e3cb7a976f79bb38e27b GIT binary patch literal 59 hcmd;J=3o+FcVevcGGJza02s{#<+DI(7$3@I002oy0dW8T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..8e8ae88b8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJë¦Ø? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6756c5d312d24ce8837ee9bd48dfb76b403a1ba1 GIT binary patch literal 140 zcmV;70CWEc0|*5O0uTX02yAa>UvP47VoG?fme#+Py~V%VuFtk z)8xNQBd@>be4)QhH1NN1s;Ix>0OP*`OvS&!Ik3O|bOOLs#tp!hwFSUyAiTc}XR5y? uSGT|IK#;!-QN_QCa?-zkv&X-!VE(`Hvf01nD*M0ou(H2hxXQmgi1xq7*-o+m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e115091f988705c8fa59a1bc85497df950ef9316 GIT binary patch literal 1537 zcmb`HKTiTN7{=*wNO>Vbs)@QdbiBmLjfr@es6hrXhB(+1uHr>#FV{kV&2K{d0y_Gc zT>J>yJ5d*-OD}1zX`A=Yli&MbOlku@ycaS$FhZN=YZYeXtfy|xgwMlNX?-kBs***= zZdvw(>7if~!6iG4*jSBNlBxj{^MuPtMC^7dhbC6CcgGWP*rqsCQX4K!un(mfA5TR< zaIsNt)(VC9uMe$|5041Y9318*Cl31Pvu@a?YlpOQnR2NUrA1H& zKN0DqRcLuFt7{paoR!=TouJWY9X0BmQ^a|YW`Nkufxt&#efeXdZE(EknfdM6`_Km#LE r0}mJND%s^-Z)I6Gp@z!@uP?ko70{AwfNx(H2K(^c_-_%8yhi;4DIzOv literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cd3dd54a5b93f253a108e3cb7a976f79bb38e27b GIT binary patch literal 59 hcmd;J=3o+FcVevcGGJza02s{#<+DI(7$3@I002oy0dW8T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..8e8ae88b8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJë¦Ø? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_3d_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6756c5d312d24ce8837ee9bd48dfb76b403a1ba1 GIT binary patch literal 140 zcmV;70CWEc0|*5O0uTX02yAa>UvP47VoG?fme#+Py~V%VuFtk z)8xNQBd@>be4)QhH1NN1s;Ix>0OP*`OvS&!Ik3O|bOOLs#tp!hwFSUyAiTc}XR5y? uSGT|IK#;!-QN_QCa?-zkv&X-!VE(`Hvf01nD*M0ou(H2hxXQmgi1xq7*-o+m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a67ed2139cb7be7c928668d5e3a36556d986a27b GIT binary patch literal 1220 zcmb_cK~BOz6z!B^hYt}l8lxK*T{dy$ju=B|-56vcE(n`upaWE3rs=e#a0D-)%U-~f zcqnbF#*J~&agxbQet!OcdGF<6Oj=VqTQTlm#7xHB*9JV2>yenp8=5+ikn)DdkqCE# z{Oc7ho}4jn!zlMy8dB~v-AjpM z6P}fzxlUzC$KF6JMt2qz&!;QwCKxmggNB^m{%<&^z6K2b1yJ_yi`puKfAWD6PxTb7pw!HTVer4W7*81^wV zBIYM$I#@=L8X2mQlizb>a#RR)2rY~V1|8S(Tc5OxEdUss#3+i>CZIhz03+|x`g*7R E0r4)nJOBUy literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..9109ee682 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJuÛÇ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c411b32f6cf804aa4a8fa6d059b053f03ef7ae3c GIT binary patch literal 194 zcmdQY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..9109ee682 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJuÛÇ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJ@(HXIbpEX?UOQAFq+B=5AoK0rjBRF4m zYUNz+{cE8$vf&W{T7ap*q`7ScUE1~=u5-gxS_(WPFyqolW)0sh-o{L*NGk4Cz>au4 zt>@}iJ;Bm}Co{=5{OyU*r7bz^T)U7SpQQ3iV6#Q24y-k@;1zA(^i2?QwSCjGY_rz? z1#l&;w9qJ`K7;+A1 zNzlqYZ1W-0;hZP&TH%;a!jY6gs)gP@6k{IDGQD%{R1nuFPfq@k$h*CiJG)TEh+wdA lKG}u4N*WFTV~5!3W3L2gMRveWta800_^$N#&vUC<`2cum8vpQY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..9109ee682 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJuÛÇ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_log_prob_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJ8!a;c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2705ae530535f4031235029f0bf3287e8cb8a427 GIT binary patch literal 33 Ycmd;J7GQT`tn`v#Vt@b^D9sF|0V40Up558eG=f0XQfbbFta!V|AB58t z%rviFr4>phe#3M5K_1-hNhOOFmXT>b#?>n?); literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5e4604b7651342c714edff29f40e58b8266cca68 GIT binary patch literal 59 fcmd;J=3o+FcVevcGGJnW0A?r+448LBRpX&$WwwWHXDw4cJ%nI8a& zh5upzCls+E24l&xWn1=rSI0L9Xn4)Xw^;$`(C4 zW#tj3$H->LC6kIhpqNYz6M~(j42z7*6jOFHmt!N8987tJC*3GWl+=bx6CXn3p5M(e zra`^kJPm8LkMBlS#D^yWqyWe7)1ISxhOD1-qvj>*vM_id;PhsfI=e}-! z20z1m)~R*8j`g_-&rYRx6KBW_Sx-#{7ZH@h7lm;Pd|n8>@2!XjZ^RiM>$m8oGdwEo z6(qlzKeCKFG^~O#YE+*M-U<9eISwta)H)>HTK@ARA6;T?Zw9iUWEmawal(zbN4wM$ zw|FO}N~L8Y#=EeYV>++mF7nG*T#rOH^8^2YiC}2`xApdAnpJF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5e4604b7651342c714edff29f40e58b8266cca68 GIT binary patch literal 59 fcmd;J=3o+FcVevcGGJnW0A?r+7f4xZO}S< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5e4604b7651342c714edff29f40e58b8266cca68 GIT binary patch literal 59 fcmd;J=3o+FcVevcGGJnW0A?r+UvP47VoG?fme#+Py~V%VuFtk z)8xNQBd@>be4)QhH1NN1s;Ix>0OP*`OvS&!Ik3O|bOOLs#tp!hwFSUyAiTc}XR5y? uSGT|IK#;!-QN_QCa?-zkv&X-!VE(`Hvf01nD*M0ou(H2hxXQmgi1xq7*-o+m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..8d2e890b3b7a5272ea832e1e86f2cf92bac7f853 GIT binary patch literal 1767 zcmcIl!D<^Z5Vh9pTA6GcqZHCya@gZS=pnb9OxHaG+#KqbgybM(?_@1(OUp`5*SYo| zayIlg`UCB$^oLsQ)=4j=5U>P;gd{ZcX5Jf7%A&ED%ur>=7L7gq@f? z)W*D3w$#OH=$5>`!_5Tw0)^sA^G_)AspV4glZ?-G&WloyIaY;G8D{)usU}uxHJXY7 zPX;kfwK7&Hn;b#sR?L@}Fxu{QPoq}r*TW!d62eykqyk@ou#ekDc*)PxLEL?hriKdN z3HWj0CGtTU?|dkQGKDsn>_J#yx#+k0LEqJ)3*Y>J8Km1M+9e??W-JEPu5= z^C5NTfzkPe+&DKT3% z4LuI)A7D+|$v#9fSGq(lUCXZ;m9f`P{3xytY6dgtQNkh!XxmxGS#Y&q$Mpgt+GTWe b5R7+$+_7g6y4$Vs5j^JUUoX4~dV9YCuGojl literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_3d_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5e4604b7651342c714edff29f40e58b8266cca68 GIT binary patch literal 59 fcmd;J=3o+FcVevcGGJnW0A?r+UvP47VoG?fme#+Py~V%VuFtk z)8xNQBd@>be4)QhH1NN1s;Ix>0OP*`OvS&!Ik3O|bOOLs#tp!hwFSUyAiTc}XR5y? uSGT|IK#;!-QN_QCa?-zkv&X-!VE(`Hvf01nD*M0ou(H2hxXQmgi1xq7*-o+m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7c1ac1a089004a160db82ae00fc0b8d5ddb6b11d GIT binary patch literal 200 zcmXYry$ZrG6h=*2ZM+sNu~3+QG4*1VR)Er8ha~ zCej3xL)eHZsn`k*atgvGsF8VTSh7%{ciHT+FYTI# z-0Z{CtK#^r-j5&cmosH<4BK`Du~{}tz<`IIz5u-ab+Z#lL>!{$y+Zo+Tn|zM@xCPNyel4 z+ZZjgA|m>A9;%zeY_&w`QL}EBI)M6~7n!%9W<_%;hYv@vQ0m2*%TD~=6vgGva*@!z zmh+wAv=(niqRbt?m`@-*{v!7LBhgqt1<7MSoy#NQ`m6yN5kc^e3SmjtL8J~o#<{dg z%wG#cw$F@+lZA5BtiWt~D(Ze1KlbhR#36H0CzX#+b_k7I>lD{r_uuyn-8H*T)v?mi<2QzQB6 zR|#}vJ;VD$AMo(RE3~@ZflcSn71~yvdqE2VUBalSIfl)#0X%9Q$A!LUQQmtT@pBSO zl2lysP%=C|gyN52PR~qWWpzG%BL`p)b3$b>u|HQ&c~mrql5U9Dyh7HD#j@m_ng4mM zMwQ56ohcYw8`U&4J{6K`2S5B;Pn%t0X5|Qq&U_}iYomB6_95EG;;D6H^ZWh^K7L^* zi|476zuAkkQybZRX+1h}WwbQph8k zEP$J~3d>zZV!ZG-oNsSKLsAs&1w-)sJr45l>pIQFL!xV5!@trVA~D;Wo9goUKO+27 A!2kdN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6e79fac541761ac3f89e0a21a5e1479df599be7c GIT binary patch literal 350 zcmZ9_xe>r139J(WS>5?44BM`~*SJ!AGMxXtz@AE~J^>D`n{yJuTh_`eANOtoX#fBK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..51ae4ed35 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJhë×? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b631668302bfc5ee67c4b1901237d31f4dfdfad2 GIT binary patch literal 1498 zcmcJPy-ve06ouObl|lRni6H|+Bqo@cDpI!6fij>jmT4}n1+}BtEuoLX)R`B6 z5sAlQ04IRh5QB+ymB@DNbB{isFr=+3KDt4f9vIZ-__YZO+8?NEGv!5+E3HqZ$yIjW zv!AS7!t@B)6uD$lu{#vwiD5#pqm*HhahYPuu4i&&gpz{^&+xDtg^7~daB1Q_Xw3QT z3}YJB+re?GR(t<`$ddT*NPraJ_{4epiB>OiE_J3f z#%thbm`^*kj@Pk12k_)ndN*-~%q8oo@!%|i^7Tn!+ytK<`IZ;=v1XhR4@g^xPR9 zmG%mf-^?Fc#vK|~!5B5F%LZ=*{-GU*mRD*Wl5Q>kxseYpv9>z{xu;|i?euZXjhLey z>WLe?6%(b>G7;kqSj{n=RdE;jWh^d9Jzj^F7)zBS6E+Zwid?$?xAYwDmUwK!Mo4HI mys&PoVau}>47W;26xv}xTVIpa#8nf>g06sX|EisM?X?fzr6F4Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..52d38167bc0d59b82354c62692fce9e6debe4ba4 GIT binary patch literal 856 zcmV~$3ry5?00;1R9FLB({+xLeI&2g#@o*qd?|$E}NX0|ClsL>3+QG4*1VR)Er8ha~ zCej3xL)eHZsn`k*atgvGsF8VTSh7%{ciHT+FYTI# z-0Z{CtK#^r-j5&cmosH<4BK`Du~{}tz<`IIz5u-ab+Z#lL>!{$y+Zo+Tn|zM@xCPNyel4 z+ZZjgA|m>A9;%zeY_&w`QL}EBI)M6~7n!%9W<_%;hYv@vQ0m2*%TD~=6vgGva*@!z zmh+wAv=(niqRbt?m`@-*{v!7LBhgqt1<7MSoy#NQ`m6yN5kc^e3SmjtL8J~o#<{dg z%wG#cw$F@+lZA5BtiWt~D(Ze1KlbhR#36H0CzX#+b_k7I>lD{r_uuyn-8H*T)v?mi<2QzQB6 zR|#}vJ;VD$AMo(RE3~@ZflcSn71~yvdqE2VUBalSIfl)#0X%9Q$A!LUQQmtT@pBSO zl2lysP%=C|gyN52PR~qWWpzG%BL`p)b3$b>u|HQ&c~mrql5U9Dyh7HD#j@m_ng4mM zMwQ56ohcYw8`U&4J{6K`2S5B;Pn%t0X5|Qq&U_}iYomB6_95EG;;D6H^ZWh^K7L^* zi|476zuAkkQybZRX+1h}WwbQph8k zEP$J~3d>zZV!ZG-oNsSKLsAs&1w-)sJr45l>pIQFL!xV5!@trVA~D;Wo9goUKO+27 A!2kdN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6e79fac541761ac3f89e0a21a5e1479df599be7c GIT binary patch literal 350 zcmZ9_xe>r139J(WS>5?44BM`~*SJ!AGMxXtz@AE~J^>D`n{yJuTh_`eANOtoX#fBK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..51ae4ed35 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJhë×? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..08b334c8dabf14c6d431b76758a2cf97b36c3bca GIT binary patch literal 255 zcmZ{ey9xp^5JgRV#c{zUiVAjHSO|7jmWrL7g|N-AkGKXkk!-}(ukrKz46~wk76*p8 z%-q8m_u?oy2$fE)$nE?|U<;%Ga^vLA*->YBHaZRl8@;oqs8|}E=PPB6KHt`EoOHpH znbJm}RH-P2^g-yP2Q4GgOJb!~LG2_W^&nL~E*mgU1eP0A8m~fTdy7)yEX8kEIC28K u4?RY>50q6Mbq94c!$GOW!DmhGeZqGTx4{WFpysYBaR5K{f1eiA@4NsSD?14Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..52d38167bc0d59b82354c62692fce9e6debe4ba4 GIT binary patch literal 856 zcmV~$3ry5?00;1R9FLB({+xLeI&2g#@o*qd?|$E}NX0|ClsL>3+QG4*1VR)Er8ha~ zCej3xL)eHZsn`k*atgvGsF8VTSh7%{ciHT+FYTI# z-0Z{CtK#^r-j5&cmosH<4BK`Du~{}tz<`IIz5u-ab+Z#lL>!{$y+Zo+Tn|zM@xCPNyel4 z+ZZjgA|m>A9;%zeY_&w`QL}EBI)M6~7n!%9W<_%;hYv@vQ0m2*%TD~=6vgGva*@!z zmh+wAv=(niqRbt?m`@-*{v!7LBhgqt1<7MSoy#NQ`m6yN5kc^e3SmjtL8J~o#<{dg z%wG#cw$F@+lZA5BtiWt~D(Ze1KlbhR#36H0CzX#+b_k7I>lD{r_uuyn-8H*T)v?mi<2QzQB6 zR|#}vJ;VD$AMo(RE3~@ZflcSn71~yvdqE2VUBalSIfl)#0X%9Q$A!LUQQmtT@pBSO zl2lysP%=C|gyN52PR~qWWpzG%BL`p)b3$b>u|HQ&c~mrql5U9Dyh7HD#j@m_ng4mM zMwQ56ohcYw8`U&4J{6K`2S5B;Pn%t0X5|Qq&U_}iYomB6_95EG;;D6H^ZWh^K7L^* zi|476zuAkkQybZRX+1h}WwbQph8k zEP$J~3d>zZV!ZG-oNsSKLsAs&1w-)sJr45l>pIQFL!xV5!@trVA~D;Wo9goUKO+27 A!2kdN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6e79fac541761ac3f89e0a21a5e1479df599be7c GIT binary patch literal 350 zcmZ9_xe>r139J(WS>5?44BM`~*SJ!AGMxXtz@AE~J^>D`n{yJuTh_`eANOtoX#fBK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..51ae4ed35 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJhë×? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..9d79cec66d106b1d2ff00bd44702a5fbb7517267 GIT binary patch literal 863 zcmWNQTTGi}06<$hXseFY5SA^PIrlP^EgQHQw+FLq0~HmPjp&Sa(+<n#TCdsi6R zUrk-Wj%uqL{o8Zgd8UJ_#sOA7=;Pw5Qk=Xkv6&-r`JXP@elSy$qGu|9n#g@_u4kJ# zd?AQ(P)|~FKkk?XI)B^b*2+9HuPm}G4fBF+iVS-zrk~chPk>dkT$JpwFkC-LSzbS% zJGZD1%ZwDtggm8_f|70GRI*HrwR?E+n2me;*U3IsiT1B>aqyFR{Pp+9kT=sN-6d&b zfZ5yI#f^LyC!cH(mf%HREfWsm<;+emGr=vMtLz}lF-`iNA$CVDppIQ)_Rksg>5X*F zP4V)wi37<`aADwh)&fsC(`SWC*4I&QuICHd{?!g`u!Cr=nt#s-Q zoL0J!G&PjIIm)gp9wI~hbj3|{BTc+?I9z-xm9aNg&%c2>y7nnVe36mkX+HAwc0^&A zc+Yl?ceYwd)=G@lJJ_j`iC0%GB;^hg728Ca$H;@S8)%};tTnH5K7EPrv?gXgS|qM^ zf{2?D!XFdF8LtoxwJqd~`kBvkG4fv%X$f$lS0na3@1rE}kR!_j{NkP??m-PPwY^A3 z`Y6b>;Ip=K;HsO#kWY~pE;{ToG2U^P*Fz6p_Ot`glli{heM)KovB;E@NXO;4)F di=`;Y`TGiy@N1-a_fi*$SNy~lo7ik?h!3cWxf4o>XSrCKLX?%63am@1bIirXTF;y^dNP+K zJ{@tI8Eu`^E`0>OOSxQQ%4m0xob)@L@4p(^k{GTDkQzb-!rty1;h8wiMm%|qwt)&? z2!wGFB=S+l58hN#+tOG}k036wS`9nHXy|j1z)cu1qip{~I}>A5OkQzlx}PLY4t6|)d98$a%a+T$*QysjMGz8Th_tlvhfs`9%O9;T zLP*_vV05`FsGPpcQ9I=}@HvPUy*D5mMy~jSQ!J!Ym*}U)YJp2NHzse2e|iiD73S-< zp!2x-0k))@-hsXqa&hIs`F&NN< e^>>Ty!t@Zx6}ttoKh>FX`2AjgyXko}IQjv5x`<~0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..52d38167bc0d59b82354c62692fce9e6debe4ba4 GIT binary patch literal 856 zcmV~$3ry5?00;1R9FLB({+xLeI&2g#@o*qd?|$E}NX0|ClsL>3+QG4*1VR)Er8ha~ zCej3xL)eHZsn`k*atgvGsF8VTSh7%{ciHT+FYTI# z-0Z{CtK#^r-j5&cmosH<4BK`Du~{}tz<`IIz5u-ab+Z#lL>!{$y+Zo+Tn|zM@xCPNyel4 z+ZZjgA|m>A9;%zeY_&w`QL}EBI)M6~7n!%9W<_%;hYv@vQ0m2*%TD~=6vgGva*@!z zmh+wAv=(niqRbt?m`@-*{v!7LBhgqt1<7MSoy#NQ`m6yN5kc^e3SmjtL8J~o#<{dg z%wG#cw$F@+lZA5BtiWt~D(Ze1KlbhR#36H0CzX#+b_k7I>lD{r_uuyn-8H*T)v?mi<2QzQB6 zR|#}vJ;VD$AMo(RE3~@ZflcSn71~yvdqE2VUBalSIfl)#0X%9Q$A!LUQQmtT@pBSO zl2lysP%=C|gyN52PR~qWWpzG%BL`p)b3$b>u|HQ&c~mrql5U9Dyh7HD#j@m_ng4mM zMwQ56ohcYw8`U&4J{6K`2S5B;Pn%t0X5|Qq&U_}iYomB6_95EG;;D6H^ZWh^K7L^* zi|476zuAkkQybZRX+1h}WwbQph8k zEP$J~3d>zZV!ZG-oNsSKLsAs&1w-)sJr45l>pIQFL!xV5!@trVA~D;Wo9goUKO+27 A!2kdN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6e79fac541761ac3f89e0a21a5e1479df599be7c GIT binary patch literal 350 zcmZ9_xe>r139J(WS>5?44BM`~*SJ!AGMxXtz@AE~J^>D`n{yJuTh_`eANOtoX#fBK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..51ae4ed35 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJhë×? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_4d_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..9d79cec66d106b1d2ff00bd44702a5fbb7517267 GIT binary patch literal 863 zcmWNQTTGi}06<$hXseFY5SA^PIrlP^EgQHQw+FLq0~HmPjp&Sa(+<n#TCdsi6R zUrk-Wj%uqL{o8Zgd8UJ_#sOA7=;Pw5Qk=Xkv6&-r`JXP@elSy$qGu|9n#g@_u4kJ# zd?AQ(P)|~FKkk?XI)B^b*2+9HuPm}G4fBF+iVS-zrk~chPk>dkT$JpwFkC-LSzbS% zJGZD1%ZwDtggm8_f|70GRI*HrwR?E+n2me;*U3IsiT1B>aqyFR{Pp+9kT=sN-6d&b zfZ5yI#f^LyC!cH(mf%HREfWsm<;+emGr=vMtLz}lF-`iNA$CVDppIQ)_Rksg>5X*F zP4V)wi37<`aADwh)&fsC(`SWC*4I&QuICHd{?!g`u!Cr=nt#s-Q zoL0J!G&PjIIm)gp9wI~hbj3|{BTc+?I9z-xm9aNg&%c2>y7nnVe36mkX+HAwc0^&A zc+Yl?ceYwd)=G@lJJ_j`iC0%GB;^hg728Ca$H;@S8)%};tTnH5K7EPrv?gXgS|qM^ zf{2?D!XFdF8LtoxwJqd~`kBvkG4fv%X$f$lS0na3@1rE}kR!_j{NkP??m-PPwY^A3 z`Y6b>;Ip=K;HsO#kWY~pE;{ToG2U^P*Fz6p_Ot`glli{heM)KovB;E@NXO;4)F di=`;Y`TGiy@N1-a_fi*$SNy~lo7ik??cv{G#AQb+F;y; zFvEP-tM!7O^R@{u{zUf^KY*O`fu4+xA}E(H;NmufqL5}iSdakTh#wff3$bHAFjT55 zB>pn|%(3jtr;59%QT-@*C*ZpgUp7}deG%mQkTv0B2g3>``sg@D%G dY+Q6p9RQRzSy&!kwt+mbB?#TE+Fr2I{RB2t5v%|J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2705ae530535f4031235029f0bf3287e8cb8a427 GIT binary patch literal 33 Ycmd;J7GQT`tn`v#Vt@b^D9sF|0V47awdfy3cm zz7J#Kr%85WBHtLM&GwDp45$Xw5cDGWE(=;InTCs#yqGen_eyGg5Jt(WIocWp;PXOA z#V8j!tCvoToM;Xs#qvjHxD=sRvP87VCF_nrb;fA7P$B7)@#1PI=kyDT14}0p@G&A7 k9PHZk<7wvufbo!c-I$KS+6}<7SG{xvKhOWqoim$$0O$}o0RR91 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2705ae530535f4031235029f0bf3287e8cb8a427 GIT binary patch literal 33 Ycmd;J7GQT`tn`v#Vt@b^D9sF|0V4~;>Iar(*siAKsZEPTqiqhEE0RQcG3-}{y=Yh zK)!+>fFu6|-YspV9x7FGELpZJdpvLEy+#sr9B!ou-q=b!R!LGbw8}ZAeAGNR0R3PD*zy{*` z&$*vO+t-CqCf5ezE`&K2^IoGD^j!Vh@U#IK{lqh^Mtq>N;Y9@1@{_Oe4uqnV=0mV1 z0lW~;6ng)WjXYDR#!(aLUrqVyG~vC3HEp9-Em8Opz{a3?Z$+KCcV)O%{897NyO>>g zMrZF%8PW3;m6dh{YyX0CUjbP$avy!X#7tPZM0YfhcQ}(%t<%cS<3rdkFkRF(9fg&t zuSqjLfR4QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_no_weight_ii_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2705ae530535f4031235029f0bf3287e8cb8a427 GIT binary patch literal 33 Ycmd;J7GQT`tn`v#Vt@b^D9sF|0V4ueHiEwcirKXf7mt^MWDY4|HCgv?*WEK(unG#=|oEi@ji7!vhOwTBZ5(XM6 z#K*;LKud(UxHvf2g;+p>Ac1nQ03%p{HHn*xu}X-Iiv_5S!HG$L F9{?ThCT{=$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a5cf9d94f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJÖÈ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6d88520344d3546231c6ba41e22105a882277b56 GIT binary patch literal 1345 zcmb_cF;4<96sE`Fl?M@09dyv)#!H;sn22`_CP<<<5SB~f3S5BpycRfE{2PueIym^7 z{3qHwHEt|-O`0}e+P<&f_uj*p)JJqYXFRx4Osdv9z!T~8#Y8P>;>JSC4p*^=wq3pT z(<8ndGk?h__ctt@&XmuRi1L61{$$0+DipjwqY=CIZ0rgy73Ipggvy#OR?H!|+_YNt zQt9h&pgl6-1p!K+n6Sjn$9~}VT+g;1m`uL`ZwQKbumDz`YgZp*%4H-Za~fbqEMB%t zZKJIGG3CP7O?&g!0VTBLhBAUZa0QklVaQXG}A@4+(p( zb2GmxSvJ{~tTx~iL2=~s%b9V@pP^dL|GIh3UpD$ZKwCf?f_Cox*G!|`aLyLt zOo$-uO3o=%V-~Ek-ea3-YuckSxj5LYh9{}3$56+JU@&l5&&sf&;}HOiEn=o%3T!d} UWk6+A1GFPYVCrk78>89y1_yBHWB>pF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a5cf9d94f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJÖÈ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1290d74cc65a2fa8281aa9914a11cd13084acfe2 GIT binary patch literal 198 zcmW;F%L>9U5Cu@D4~=87k_vU*Wx*eCskn0?xa%hL5o?ep(nk9Dn*M>mXxhbv%Ym6o z2=%fwe{)$JHE;Ck2Y5&55PF1`!VrZI_0(0`U24@dSE+0D>2IdS0eYg8s^(0{f_I0- z2v)qub54I9oga4}RS(*#H0l literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a8a859fc9af951a74ae2670020060246c076e6e7 GIT binary patch literal 33 Xcmd;J7GQT`tn`v#fC3gM%?zahBG>^) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/output_0.pb new file mode 100644 index 000000000..840b42e6b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJßùÍ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e633efa107a752db7c0b0b7d1a75f25d063d3271 GIT binary patch literal 209 zcmXX=y$ZrG81zf4#?PYVQ>ZvP3Qlg0ikpMr)+N+7Y7i4?BmH@rK8H_d3JwRy-EnuE zQ*cevr_|ZT%EIoxfM8>lmS-0s2np?O8be0kR=4DgXcg literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..3dedbc0d549182ecf62388d620c6ce5153c4e5e2 GIT binary patch literal 59 gcmd;J=3o+FcVevcGGJtY0A?u71f^Nf_)snb07&QoZvX%Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c06a8d20c3cd7be7c114138384e359b92398a08 GIT binary patch literal 29 jcmd;J6<~B?EcX&Qd&b9Z*36keENOrC%o$q-1_pZohJOjr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d2f7b9753 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJAéä? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..851e3b035574b582bc0526e9a5d0ff53be8dbcc2 GIT binary patch literal 1465 zcmb`H!A|2a5QghCrDht@${;OVID}gyPTV+Eq#RasLE0jLda+D1v=-EkVwVOUWlt62 z1=!<0*1iBZ0mKb)a3m{{GqV5r_03Nyi>}1v2359i(b&Vs4lLQpNMGBzDAPh4bF6Hk z^ZTLuIJ4>FErE>wmYzh0<`m0FEvBFBS4OjE6l70M>N(7F@1 z3rrYo_S%P0qw(_bkQE8xi2y0V=jH6Dk4`T6X*!78ztL1J!CwOYj`gN+kjCrhg-|Bf z29qv?ITrJNqaXC0w{3X#Cwh?j0pyYo^>p+rhU)bOT+)G1l+tVmD-ysz;s=KJi`bbT z7;4ou5?>j9;aK+NQ_Wr6swWEm6Y$-LFPm$fzKC`|s7tnBy})cyM_C+JdAB0XWD_DeRk}bfUD%b|Zngrp_l;N_|EPFi y(4&M!5YVPuEw_U4rjx@qAfjzX-+u(-ZY2%IcJSr5+u literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..3dedbc0d549182ecf62388d620c6ce5153c4e5e2 GIT binary patch literal 59 gcmd;J=3o+FcVevcGGJtY0A?u71f^Nf_)snb07&QoZvX%Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c06a8d20c3cd7be7c114138384e359b92398a08 GIT binary patch literal 29 jcmd;J6<~B?EcX&Qd&b9Z*36keENOrC%o$q-1_pZohJOjr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d2f7b9753 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJAéä? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f9b7d9d6ad84d29a1a03537f5e91c611ea69e0f4 GIT binary patch literal 260 zcmZvXKX1Y?5XE~=THGTl=z^3^3}K7J)U6|^8(X(5R{oe^LF~wJMc~u$1^XT9NTpMU zC!O9s-TNKq6qQAFl)7F!*}L~|z#L&fxFDPfuEbBK5uG(#xcwqtmdJg}y;RtFc7%l@y~R&Qdi8CzKLzwYV4M zi3cFUIR}c6@xbfRi{-J$q8E(#g!u1*<+BkKk^6KwCd(;$>?aJp@lY=D?}7hLZrFVG E1GhRmA^-pY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..3dedbc0d549182ecf62388d620c6ce5153c4e5e2 GIT binary patch literal 59 gcmd;J=3o+FcVevcGGJtY0A?u71f^Nf_)snb07&QoZvX%Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c06a8d20c3cd7be7c114138384e359b92398a08 GIT binary patch literal 29 jcmd;J6<~B?EcX&Qd&b9Z*36keENOrC%o$q-1_pZohJOjr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d2f7b9753 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJAéä? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6756c5d312d24ce8837ee9bd48dfb76b403a1ba1 GIT binary patch literal 140 zcmV;70CWEc0|*5O0uTX02yAa>UvP47VoG?fme#+Py~V%VuFtk z)8xNQBd@>be4)QhH1NN1s;Ix>0OP*`OvS&!Ik3O|bOOLs#tp!hwFSUyAiTc}XR5y? uSGT|IK#;!-QN_QCa?-zkv&X-!VE(`Hvf01nD*M0ou(H2hxXQmgi1xq7*-o+m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..55f1bd5f21496117f6c37186cd5fcfc444deafb3 GIT binary patch literal 1739 zcmcIkv2NQi5H)4FW-e-NFa?q>88iy*lr57{xkCXrL!80z!qV17CSsFU4j4wXaR%>@^E~2_uiwFMKdwKL6yC+Xzcmd=kSTJtFgYeD^aDT zHs+nOr7kujx8-#VH*@4G6pG)W%omnR$ysvLS>lo>$RF&snvKP3OpOe zG}X#jp=@#rom;V7W5Q^=-#w37tzQox*^&^x5g--p1qHkGTHAzQq{Fy-iKZ?Reh}D0 ze*c(13S|myFzG>9V7VH!2EoAfzYE{@P{uIzOsfeW>3sYlhWhu1ugM{VqLSt$ z*pdK#63-Ocy~rk>Db&=_5b3F*d~}-d-ol2qai@_ed=6l5rFkDkgWS6^+$jF3dEs5m zE#V z)Nxq*`j)hlBZy?KbctL#FRxCVEd=cK|JeWZxaKQ^J|!%IfVSQ0xD`x~94__(BHCqi lcM(i`HBtcTqQg3Jb_nF2J%i94v}UL9w`-53d>iz8zX4i>b!Gqn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb26b51b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..3dedbc0d549182ecf62388d620c6ce5153c4e5e2 GIT binary patch literal 59 gcmd;J=3o+FcVevcGGJtY0A?u71f^Nf_)snb07&QoZvX%Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c06a8d20c3cd7be7c114138384e359b92398a08 GIT binary patch literal 29 jcmd;J6<~B?EcX&Qd&b9Z*36keENOrC%o$q-1_pZohJOjr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d2f7b9753 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJAéä? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_3d_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6756c5d312d24ce8837ee9bd48dfb76b403a1ba1 GIT binary patch literal 140 zcmV;70CWEc0|*5O0uTX02yAa>UvP47VoG?fme#+Py~V%VuFtk z)8xNQBd@>be4)QhH1NN1s;Ix>0OP*`OvS&!Ik3O|bOOLs#tp!hwFSUyAiTc}XR5y? uSGT|IK#;!-QN_QCa?-zkv&X-!VE(`Hvf01nD*M0ou(H2hxXQmgi1xq7*-o+m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..863b6a784006218eb091a047f28f8d030e661273 GIT binary patch literal 217 zcmXYru?oUK5JcTGnsW^p)}W$YO2N*`Qn9lT?9v=DIrWg-NpfQJYy1|!%nMpP7-pE= z;hchFnq8&N7gknw^#R-?)Cf<62f-^IAI!-XX}u{;Rc*B`&F#5!az4aBowX^YP&$|O zguQ{yBkYwjzh_n%9eagL^&8qWZBC0SlcI6NL#p$|3Z=v{PiF2LjWFUsAu`@}bR5j# kCu6sR2t)2u@DG2%pjn5=UCV14$3DV~y68EhwPxYq3n)A3+QG4*1VR)Er8ha~ zCej3xL)eHZsn`k*atgvGsF8VTSh7%{ciHT+FYTI# z-0Z{CtK#^r-j5&cmosH<4BK`Du~{}tz<`IIz5u-ab+Z#lL>!{$y+Zo+Tn|zM@xCPNyel4 z+ZZjgA|m>A9;%zeY_&w`QL}EBI)M6~7n!%9W<_%;hYv@vQ0m2*%TD~=6vgGva*@!z zmh+wAv=(niqRbt?m`@-*{v!7LBhgqt1<7MSoy#NQ`m6yN5kc^e3SmjtL8J~o#<{dg z%wG#cw$F@+lZA5BtiWt~D(Ze1KlbhR#36H0CzX#+b_k7I>lD{r_uuyn-8H*T)v?mi<2QzQB6 zR|#}vJ;VD$AMo(RE3~@ZflcSn71~yvdqE2VUBalSIfl)#0X%9Q$A!LUQQmtT@pBSO zl2lysP%=C|gyN52PR~qWWpzG%BL`p)b3$b>u|HQ&c~mrql5U9Dyh7HD#j@m_ng4mM zMwQ56ohcYw8`U&4J{6K`2S5B;Pn%t0X5|Qq&U_}iYomB6_95EG;;D6H^ZWh^K7L^* zi|476zuAkkQybZRX+1h}WwbQph8k zEP$J~3d>zZV!ZG-oNsSKLsAs&1w-)sJr45l>pIQFL!xV5!@trVA~D;Wo9goUKO+27 A!2kdN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6e79fac541761ac3f89e0a21a5e1479df599be7c GIT binary patch literal 350 zcmZ9_xe>r139J(WS>5?44BM`~*SJ!AGMxXtz@AE~J^>D`n{yJuTh_`eANOtoX#fBK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c06a8d20c3cd7be7c114138384e359b92398a08 GIT binary patch literal 29 jcmd;J6<~B?EcX&Qd&b9Z*36keENOrC%o$q-1_pZohJOjr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..83911ce44 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ¼+Ü? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..32e211cf7e6bdbab7d78ac7dc6d2f9520577f84c GIT binary patch literal 1473 zcmb`HF;C+#7>4UKCE;tOR;D^QAu)t45)({J6)6L{QY3m3h{ZC^M{7atD0bVxPhsl7 zbQ_HKv-ktx1Ws(|21ojo$d2vzd-eDYL)yCL<6D&Jo9BVUcl}V#;pja%_Z>qbbjDzaNE(lG<=-;vHx# z_}v_18rD0(VXIbq`}dF)@!^R8DZu67^u$Fcmu#5yqu?BM*%G`EaJQ{9h5aO2|DAKG zGo>+ZgP&nO>(zQ*&w3lcvpdoK#0?;qY@jBi(+JAf2XJu{d|n8><*kSZe~B9yJ`bX2 zZeXZXS4ezk_=RQJl}{CSQKPz1@JhgSBd%<&bh;wi+Wd9r9-ZN9w*_(!WJ$?G^mB+4 zZo~rZ=s?`!otP?>mQfdXVLiumUPW2tmwC4$^>_nXVj@+JOxUn1Do*L{f5hU|cFDsJ z=!S%LzzgfP8n!%J!PTafL@9K_fVMs-KPK9xP=L^`^2-(1O&||+4SYLLJMud1cZr-3 AJpcdz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..52d38167bc0d59b82354c62692fce9e6debe4ba4 GIT binary patch literal 856 zcmV~$3ry5?00;1R9FLB({+xLeI&2g#@o*qd?|$E}NX0|ClsL>3+QG4*1VR)Er8ha~ zCej3xL)eHZsn`k*atgvGsF8VTSh7%{ciHT+FYTI# z-0Z{CtK#^r-j5&cmosH<4BK`Du~{}tz<`IIz5u-ab+Z#lL>!{$y+Zo+Tn|zM@xCPNyel4 z+ZZjgA|m>A9;%zeY_&w`QL}EBI)M6~7n!%9W<_%;hYv@vQ0m2*%TD~=6vgGva*@!z zmh+wAv=(niqRbt?m`@-*{v!7LBhgqt1<7MSoy#NQ`m6yN5kc^e3SmjtL8J~o#<{dg z%wG#cw$F@+lZA5BtiWt~D(Ze1KlbhR#36H0CzX#+b_k7I>lD{r_uuyn-8H*T)v?mi<2QzQB6 zR|#}vJ;VD$AMo(RE3~@ZflcSn71~yvdqE2VUBalSIfl)#0X%9Q$A!LUQQmtT@pBSO zl2lysP%=C|gyN52PR~qWWpzG%BL`p)b3$b>u|HQ&c~mrql5U9Dyh7HD#j@m_ng4mM zMwQ56ohcYw8`U&4J{6K`2S5B;Pn%t0X5|Qq&U_}iYomB6_95EG;;D6H^ZWh^K7L^* zi|476zuAkkQybZRX+1h}WwbQph8k zEP$J~3d>zZV!ZG-oNsSKLsAs&1w-)sJr45l>pIQFL!xV5!@trVA~D;Wo9goUKO+27 A!2kdN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6e79fac541761ac3f89e0a21a5e1479df599be7c GIT binary patch literal 350 zcmZ9_xe>r139J(WS>5?44BM`~*SJ!AGMxXtz@AE~J^>D`n{yJuTh_`eANOtoX#fBK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c06a8d20c3cd7be7c114138384e359b92398a08 GIT binary patch literal 29 jcmd;J6<~B?EcX&Qd&b9Z*36keENOrC%o$q-1_pZohJOjr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..83911ce44 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ¼+Ü? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..19aab8e99894bc65304957ac1338718dfc83d5d2 GIT binary patch literal 272 zcmZ{fKX1Y?5XEbg7ITe6bRa-tOE;u$ojMk=v31L0<&Oy##Eu+Sgnk;nCR@)c?Z)t= z(|dY%zY_xEA}SHy1X*mvBUOrINvsC#CDXms-oWO8y3+QG4*1VR)Er8ha~ zCej3xL)eHZsn`k*atgvGsF8VTSh7%{ciHT+FYTI# z-0Z{CtK#^r-j5&cmosH<4BK`Du~{}tz<`IIz5u-ab+Z#lL>!{$y+Zo+Tn|zM@xCPNyel4 z+ZZjgA|m>A9;%zeY_&w`QL}EBI)M6~7n!%9W<_%;hYv@vQ0m2*%TD~=6vgGva*@!z zmh+wAv=(niqRbt?m`@-*{v!7LBhgqt1<7MSoy#NQ`m6yN5kc^e3SmjtL8J~o#<{dg z%wG#cw$F@+lZA5BtiWt~D(Ze1KlbhR#36H0CzX#+b_k7I>lD{r_uuyn-8H*T)v?mi<2QzQB6 zR|#}vJ;VD$AMo(RE3~@ZflcSn71~yvdqE2VUBalSIfl)#0X%9Q$A!LUQQmtT@pBSO zl2lysP%=C|gyN52PR~qWWpzG%BL`p)b3$b>u|HQ&c~mrql5U9Dyh7HD#j@m_ng4mM zMwQ56ohcYw8`U&4J{6K`2S5B;Pn%t0X5|Qq&U_}iYomB6_95EG;;D6H^ZWh^K7L^* zi|476zuAkkQybZRX+1h}WwbQph8k zEP$J~3d>zZV!ZG-oNsSKLsAs&1w-)sJr45l>pIQFL!xV5!@trVA~D;Wo9goUKO+27 A!2kdN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6e79fac541761ac3f89e0a21a5e1479df599be7c GIT binary patch literal 350 zcmZ9_xe>r139J(WS>5?44BM`~*SJ!AGMxXtz@AE~J^>D`n{yJuTh_`eANOtoX#fBK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c06a8d20c3cd7be7c114138384e359b92398a08 GIT binary patch literal 29 jcmd;J6<~B?EcX&Qd&b9Z*36keENOrC%o$q-1_pZohJOjr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..83911ce44 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ¼+Ü? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..9d79cec66d106b1d2ff00bd44702a5fbb7517267 GIT binary patch literal 863 zcmWNQTTGi}06<$hXseFY5SA^PIrlP^EgQHQw+FLq0~HmPjp&Sa(+<n#TCdsi6R zUrk-Wj%uqL{o8Zgd8UJ_#sOA7=;Pw5Qk=Xkv6&-r`JXP@elSy$qGu|9n#g@_u4kJ# zd?AQ(P)|~FKkk?XI)B^b*2+9HuPm}G4fBF+iVS-zrk~chPk>dkT$JpwFkC-LSzbS% zJGZD1%ZwDtggm8_f|70GRI*HrwR?E+n2me;*U3IsiT1B>aqyFR{Pp+9kT=sN-6d&b zfZ5yI#f^LyC!cH(mf%HREfWsm<;+emGr=vMtLz}lF-`iNA$CVDppIQ)_Rksg>5X*F zP4V)wi37<`aADwh)&fsC(`SWC*4I&QuICHd{?!g`u!Cr=nt#s-Q zoL0J!G&PjIIm)gp9wI~hbj3|{BTc+?I9z-xm9aNg&%c2>y7nnVe36mkX+HAwc0^&A zc+Yl?ceYwd)=G@lJJ_j`iC0%GB;^hg728Ca$H;@S8)%};tTnH5K7EPrv?gXgS|qM^ zf{2?D!XFdF8LtoxwJqd~`kBvkG4fv%X$f$lS0na3@1rE}kR!_j{NkP??m-PPwY^A3 z`Y6b>;Ip=K;HsO#kWY~pE;{ToG2U^P*Fz6p_Ot`glli{heM)KovB;E@NXO;4)F di=`;Y`TGiy@N1-a_fi*$SNy~lo7ik?dSZacL=0b0O80x2Hf-M#lHW!7*g;L@}Di$Uad10mkt6b_7Q*pl1Gpmdq&t;D9 zhnyxxmsV;Uzk$xBT&yr=wB3&myRFubUk}-k5WW*273>5BJMmiEL>wnW9-UxW7YX+S zc97pc=3&D3P7A5a+>{viAk48?4qAg?;QAlI-44naCZ1_E5hIh0KXa&Gk9>{yA(WLW zUj`czzytA2q3w-q;+aBC9SxEGHIy$-6W&|c(3W=^iNZ|)J1fomC>rG6mElJ5N6mBZ zVs_~nU2L6_(@!aCtLz%S`4^nK3dkDB6(iUD)iGw$s!MdMBXxlbH8&=$Ej>Pfy#mu! z3+QG4*1VR)Er8ha~ zCej3xL)eHZsn`k*atgvGsF8VTSh7%{ciHT+FYTI# z-0Z{CtK#^r-j5&cmosH<4BK`Du~{}tz<`IIz5u-ab+Z#lL>!{$y+Zo+Tn|zM@xCPNyel4 z+ZZjgA|m>A9;%zeY_&w`QL}EBI)M6~7n!%9W<_%;hYv@vQ0m2*%TD~=6vgGva*@!z zmh+wAv=(niqRbt?m`@-*{v!7LBhgqt1<7MSoy#NQ`m6yN5kc^e3SmjtL8J~o#<{dg z%wG#cw$F@+lZA5BtiWt~D(Ze1KlbhR#36H0CzX#+b_k7I>lD{r_uuyn-8H*T)v?mi<2QzQB6 zR|#}vJ;VD$AMo(RE3~@ZflcSn71~yvdqE2VUBalSIfl)#0X%9Q$A!LUQQmtT@pBSO zl2lysP%=C|gyN52PR~qWWpzG%BL`p)b3$b>u|HQ&c~mrql5U9Dyh7HD#j@m_ng4mM zMwQ56ohcYw8`U&4J{6K`2S5B;Pn%t0X5|Qq&U_}iYomB6_95EG;;D6H^ZWh^K7L^* zi|476zuAkkQybZRX+1h}WwbQph8k zEP$J~3d>zZV!ZG-oNsSKLsAs&1w-)sJr45l>pIQFL!xV5!@trVA~D;Wo9goUKO+27 A!2kdN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6e79fac541761ac3f89e0a21a5e1479df599be7c GIT binary patch literal 350 zcmZ9_xe>r139J(WS>5?44BM`~*SJ!AGMxXtz@AE~J^>D`n{yJuTh_`eANOtoX#fBK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c06a8d20c3cd7be7c114138384e359b92398a08 GIT binary patch literal 29 jcmd;J6<~B?EcX&Qd&b9Z*36keENOrC%o$q-1_pZohJOjr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..83911ce44 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ¼+Ü? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_4d_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..9d79cec66d106b1d2ff00bd44702a5fbb7517267 GIT binary patch literal 863 zcmWNQTTGi}06<$hXseFY5SA^PIrlP^EgQHQw+FLq0~HmPjp&Sa(+<n#TCdsi6R zUrk-Wj%uqL{o8Zgd8UJ_#sOA7=;Pw5Qk=Xkv6&-r`JXP@elSy$qGu|9n#g@_u4kJ# zd?AQ(P)|~FKkk?XI)B^b*2+9HuPm}G4fBF+iVS-zrk~chPk>dkT$JpwFkC-LSzbS% zJGZD1%ZwDtggm8_f|70GRI*HrwR?E+n2me;*U3IsiT1B>aqyFR{Pp+9kT=sN-6d&b zfZ5yI#f^LyC!cH(mf%HREfWsm<;+emGr=vMtLz}lF-`iNA$CVDppIQ)_Rksg>5X*F zP4V)wi37<`aADwh)&fsC(`SWC*4I&QuICHd{?!g`u!Cr=nt#s-Q zoL0J!G&PjIIm)gp9wI~hbj3|{BTc+?I9z-xm9aNg&%c2>y7nnVe36mkX+HAwc0^&A zc+Yl?ceYwd)=G@lJJ_j`iC0%GB;^hg728Ca$H;@S8)%};tTnH5K7EPrv?gXgS|qM^ zf{2?D!XFdF8LtoxwJqd~`kBvkG4fv%X$f$lS0na3@1rE}kR!_j{NkP??m-PPwY^A3 z`Y6b>;Ip=K;HsO#kWY~pE;{ToG2U^P*Fz6p_Ot`glli{heM)KovB;E@NXO;4)F di=`;Y`TGiy@N1-a_fi*$SNy~lo7ik?f29S`)iorp3mv@wUu7COJ{yI)={ z;bw?@f#sD4T3Ub0%)5m@wK{Ywfp# z;Qf1$1&QF104c%S&FtvkHC*u1v=_I|&{W01GXYO$`r+0~0D3fc0Ne7}Fi%B== zhFzy;3!XgD?WG>oZQDOPR<&XR2BudusZue!eqZAuu0kT%@c jyzDq041m%Wiz=`J<~2ZSpn0_dQY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a8a859fc9af951a74ae2670020060246c076e6e7 GIT binary patch literal 33 Xcmd;J7GQT`tn`v#fC3gM%?zahBG>^) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..840b42e6b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJßùÍ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..236ba3608a3be0cfceff0f4eeb8da659876a3d52 GIT binary patch literal 245 zcmZ9Gy$ZrG5P-efYCMZdDkx6kSnvfL6*o7xE}=iM1~rj1($=Txlld&Bf({M`#|L-c zM+o(kIK6P0tqm{C<^>obR0uUfN#RM!RpsoiRkE5L)ydrAYNu6E?4{A_ULWil2Iz}i zD$SXY8L#G@2Apt;1I@EXYJ`$2_r_z{K$k9C2`f_0TEa>$^0Q$=u&*TwteuX~CqM~0 qq-)2E#QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a8a859fc9af951a74ae2670020060246c076e6e7 GIT binary patch literal 33 Xcmd;J7GQT`tn`v#fC3gM%?zahBG>^) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..840b42e6b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJßùÍ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJ1QzAV5LT){9KUCIyj>DIqES`wz1*-heqOnK!FDl z=Do6&F4rTs<;^GDOpz~8D852j%q*9Z&vn7eN>4b}rBFHM{CugVR%$h#i4xxq6Pjsd ztWY+61Kmq8Ut-E=XQy`*2f@Sdhipg$-wBW!{I|e9`D1m;kF#OY`;4Zc2X_Q~7x&!l zFiW<+R6?0j8%+BUl~^qX!5|#CnfKtJe(_`X{Or{iCUWda6>}) zL3|44@i_L?r(jwJt!(~w5#OBl{Z6h`Xwq$c2sa`8A5wnD-}da+0dD+Henr1_b+s9t zKSp3eKjf&av}@RSc9lB^$QsCsk*nm@F&4tgOLXW+Uf^8Lw9cE9PWND|!hG50ZxS_8 zy&;`+7h+i`T_Kk)q3iv?8HXMGbE2Q^Hqv|vF(r&bNIPzI&-$(*20&?#MGe>hs}>+F b(4A}pxneIMa=!(W*YIaf&r7`vcltj8Q8i_E literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a8a859fc9af951a74ae2670020060246c076e6e7 GIT binary patch literal 33 Xcmd;J7GQT`tn`v#fC3gM%?zahBG>^) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..840b42e6b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJßùÍ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_ii_log_prob_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJnN$#aO|`Sjoj$F2q?Tr5Cs3`tU4aMz(5<-{bw4**guGCcqQ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a5cf9d94f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJÖÈ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJ*kTHbk*Kz#igrSQ6jCGD|bgWG;D6O@`+I6vwLy!v^?bo$5nxM?82W&gAiy ziw&H~qpZCY$^Xb7S&cg+tQ2EVD~Ao92z)_14k<6Ib*OYp`TIo14hPZ(W_14MZ2>(? zP@2?i;Kt?X*d#zUKvs-wgCBjI2$No;MSJNC=jl|bq%hv_0QPcBmZhr(e&N15Qe{V< z^W)KeA-M0*q=ZrMXw~l8sAUr~07~o3FTes=l>jM$THFA#W#7QJ-zxD>_(#UaP=CC3 F>ji&8OeO#T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a5cf9d94f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJÖÈ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_mean_weight_log_prob_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJQY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0eb5d2430 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ ¢ž»?_tõ?^¦? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5cec3cb1d8b09f4495c46852cc3fbc93edd1079f GIT binary patch literal 1224 zcmb_cK~KUk7^P!m<&%i1#^}Yvj!QgwBgPOmF9tb?2f}43tiS}?W$nn|C-?{SxWC}< z@JDGkG+vB{%_dEom*(rsdoK@T(wflelJVeDF{wIlO?Vu#-UbhS{XGVq$$WUqfzGjnNY5NLpg^7QOcc(K}L4YD0 zcB2S4yd(Grx)mfV*i=ZGmh30-Nrk}cL4dXd?dSG*k;}u8LE@h-+N?yoEvorEsO{T1K0I#jNADy02o`u%)yBUb_Ia;K+ia8e*z5v ByH@}J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0eb5d2430 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ ¢ž»?_tõ?^¦? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/model.onnx new file mode 100644 index 000000000..036b29831 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/model.onnx @@ -0,0 +1,21 @@ + backend-test:¯ +B +x +yzlog_prob"SoftmaxCrossEntropyLoss* + reduction"none test_sce_none_log_probZ +x +  + +Z +y + + +b +z + + +b +log_prob +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0eb5d2430 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ ¢ž»?_tõ?^¦? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJGF(QLF5FDDq6}SNHZX5` z|AyY3sELCPv`N$ErF}oX_q`8eQt7k7gp1%zbEWGqWl-d@BZqp%mR>BCY6>08Xw^!t zG<`zVfKwp_r&BqiQ7rqEFC!)b9?;=j40I?(XUrmg?mO6%LTM(ndjf?8o6fmQaK2Wo zS8}=cuZ1?qhDQWw38n&*=B^cVY1{Li;w@KcDe#QIj7uY#`JPj{iHTXNL7aUeZDN#&NoX3J0=S{r1+E84y3+aTn6_oiprX087V z;7-C-6WCE6UBB_0W$ZUxA}R{<9~)GK%};-V=04F3*7@K#XOj2dgs`wAZ}2eoc<$`z5SFsdr-lMV6bpL h*@a#;4F`a6k=UuRpBUDe0c{P(@Llci-xpS``T@XV94Y_+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0eb5d2430 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ ¢ž»?_tõ?^¦? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_log_prob_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJQY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cc4d3052e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ qUƒ?¼èÜ?Ù•? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2a41e42ffba054de55c23fc06b0f674d5dc68138 GIT binary patch literal 1365 zcmb_cJx{|h5UtZhb&rZxh5?oi86z>Vb*e~UK&3;=P<4si#%-gvb`-mx6TgG08;tw{ z{tQ0^oB)EUOKi!q^<>>Wzk7EWliG-m=Zr^Jib>Ua2S~|XUrf}JZv9k9dCOHQl3hn% z!|X{Y$1LQ6vv9-W=}gIxZ4=5P7KM`)AFEjK{){H_GVxZJ3; zYNgWW??MM;!!rW31w(mBP>}y1?D~OQ=`opo1YQvsiD-gX;JekwlyaE}$-Fw)2}_sl zQrl{49V_r+glgayw!k3lh-v@9h3xotlXn6(-Ny35Iv@+)P~md_Pa@aOCe;CzN%Q#Z8lGjvJ%t)Z1cQakdOO3qPDlVSt`Iu|GhmYg RCQY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cc4d3052e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ qUƒ?¼èÜ?Ù•? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/model.onnx new file mode 100644 index 000000000..3b29ead5e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/model.onnx @@ -0,0 +1,26 @@ + backend-test:Ë +E +x +y +wzlog_prob"SoftmaxCrossEntropyLoss* + reduction"none test_sce_none_weights_log_probZ +x +  + +Z +y + + +Z +w + + +b +z + + +b +log_prob +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cc4d3052e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ qUƒ?¼èÜ?Ù•? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJP5CdW`k)lLL*1hK*pL-}}wXW!0qKvl*hJhsiS9fcr((A`VX2gek0%QWN39v&~6P@v+s2NmGQ0Jq;BLTOioic4k!NO@K zq)wH_unvBT*;S*|@ETU@Dm=I)-;CTD=Zv>hzkL`${&_cJxCp+OBzn!85f7e-JCn?t zv9>#t6zmJD{B{B7*6S`cD?Axgimihe0{=0POW6y)E*)=W|Ju!-%hj}%86D1pE}#c7 zN|Tr=+&SGL+XcuJ$e59vVEqXD!X(#d(N=Pa!(^aToab=33JV#=qatGiKM&&>DYLCV z#&c&S_uUfIC}9*lTDEVcQ@5QN0Hsyt=U@(u3xE_rrE7tkZ$P=b0iTlmEVt(^*WUmR C$W*TY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2186ff73f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJfff?333?ÍÌL?fff?fff? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cc4d3052e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ qUƒ?¼èÜ?Ù•? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_none_weights_log_prob_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJQY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum/test_data_set_0/output_0.pb new file mode 100644 index 000000000..2f20e8e5b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ˜ä•@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a79a7c970005636976fe35719f07fb19d1bb0c6f GIT binary patch literal 1204 zcmbtUK}*9h7+u=VX5WSz8G>Fs^jPrZZ6Zut55nBRc^JEtY|XYZmy{+Q-F|_8KyS)^ zj{i#2s(29(Z6G9kgztNK@9{7uttp+Y7!S`BldAXHfQVd<#9Xau<|RVP8?F)&ZwLAs zH4Sh_ROR(9od#zgS<7c5g zvfv2;%Andfa#0TLI2d}qW8X8G!-f|GRT@=5;d@TwA)#ExLNd1vR?L!hzt%VUnj;&Y zs{r%8vSN;dfmn?09LSF^JGf1-Xcoz1V~-4YLuG~gZcVPr3RfU2QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..2f20e8e5b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ˜ä•@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..822b4099f7ebf9f1e9cae05229be228cc16ffce3 GIT binary patch literal 192 zcmdrj#a^Waj57F&CHSE?{I95(SwRU!0s84-|-p84@K7 zG+Bs`i-&_zh=YrXgBgffqxeB~adB~QunVz(1e3VAfHt#nu>e&uBuR0>-GHvsiAjJT E04|U$zyJUM literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..2f20e8e5b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ˜ä•@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJHN)*Z8@ z*%hjWoT|l~&g7UTsT@$gN|=avL`MrT)Ug!32}}5S=;1&LrJ2xv6G}@qTX3J?V!hm| z778Cf18tEDPYBQoEafHPp7VHGNBTwxL*S|;px0x zXgh7gV;NqoKn;VvCGbEya@@Q1AX~oF^sj^Z78=L|BzX4iIUc@_xX`g)!=s(pfYtZq&8@=V6n?+?|K){KuYCfIs1?Bg literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6251a1cdb8d5f655406beff874d0b8f495b4e18b GIT binary patch literal 33 Ycmd;J7GQT`tn`v#WPkt`D9sF|0V41LNdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..2f20e8e5b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ˜ä•@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_sum_log_prob_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJ@ZKfCPj%LHgp0fr_KVL0W~l1UMLlc(|B2n1PrDh*^_>5|!8_oR|bS0b}77 A?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_selu/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_selu/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_selu/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_selu/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_selu/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b26ac2857 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_selu/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +ByJðZY©@©™?îê;@0 ×@I³@Ú|oÀ¿j6@Þ¾W¿Þ¢¿z«?<@Ý>:œ‹@†@äº>ˆqª?†!€?}n@+sŽ¿žop?%‹\À– ±ÀRýú?Åø%@:/IÀ~åÙ@ (“Àö‘ >¶ƒ¿•%“@ö@Ïÿí>ä6‘?jõaÀƒ¥À«á¿ë&ð>?7l@`Ûf@ã ö¿8\È¿émyÀ|—‘ÀÞ$ÀBF»@XTÀ›6À%‰À5G@XÅ™ÀÄ,“¿ú*cÀ’”?d˜À. +…À¼*¾½z¤?EWL>fLh?æ]4À½¦é¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_selu_default/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_selu_default/model.onnx new file mode 100644 index 000000000..1ad23583a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_selu_default/model.onnx @@ -0,0 +1,13 @@ + backend-test:S + +xy"Selutest_selu_defaultZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_selu_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_selu_default/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_selu_default/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_selu_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_selu_default/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4773aecba --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_selu_default/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJð7?í?¥D×>V¡ƒ?E°@Ù*û?YŒ¿å?<Þ|¾<Ž0¾˜âÜ>£ú>¹•Ã?´L?Žé>»Çî>Ê€³>4ðÈ?ïõ¦¾æj¨>î>¿˜„Ï¿ZÏ/?ýƒh?1Ík¿¡@Ðz¬¿ûíD=¹©™¾ $Î?Å?ñµ&>˜oË>Tk„¿¦ýÁ¿É?¿ú7(>"v¥?.µ¡?Nˆ¿áÕ꾂,’¿¦¤ª¿å.¸¿ü-@Y¶3¿©¦¿¾ ¿!Q?Ê:´¿ª¬¾¾ …¿>#Ð>4¿qµH½Êlæ>V"=¬·¢>ÝfS¿kí¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_selu_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_selu_example/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d5a7950e0ecd2d467dff0b6035664c0c601ec55c GIT binary patch literal 123 zcmd;J7UD@tOwLZtOVKS!EiSQ2<@ZKfCPjDLHgp0fr{f(D-v@Ha#ExCK}K+Kad0pSv2ZbQFed>8Dv<@8m;^Wh DBVier literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_selu_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_selu_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_selu_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_selu_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2db88161fa620d9ee3ba81c34d62cfe87bbe2416 GIT binary patch literal 21 Zcmd;J7GQK@tn}jfwY%s50~k0s001%}1eO2* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/model.onnx new file mode 100644 index 000000000..c6986f962 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/model.onnx @@ -0,0 +1,14 @@ + backend-test:œ +3 +sequence +tensoroutput_sequence"SequenceInserttest_sequence_insert_at_backZ +sequence" + +Z +tensor + + +b +output_sequence" + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f50d4505ec9c5211c53f975af13cd6a2c350fe2f GIT binary patch literal 108 zcmd<$C{8UbP0dSA6=0N7<6seB_flYFfB+^a%?zbkptO`62QyHe1S^!!2Bq0y@?soJ NKzRWUD4!Eb0|4n)1>OJv literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c8ecf619dbfb8eb9503f3a9fd2f184a918eb52e GIT binary patch literal 38 dcmd;J7GQT`D@n~O&M)$k;9`IPZYa$Ir2%I!1Bn0t literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_back/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..92fc868f2ad20ff4ed2aac6f8cc17dd3070c6b5c GIT binary patch literal 147 zcmd<$&o3=0C@qOEPAx1=%}Y)dV3bnhU=d*VQeb3&046BS45eA1w3HkNGfxY6pA#ky)yDOJv literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ea9b4f34417ff2659424f3e53d7dad65b33bbdd3 GIT binary patch literal 38 bcmd;J7GQT`D@n~O&M)$k`1c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..5da53eb74c554593afd9523fea81f41e0e7bfb83 GIT binary patch literal 24 Zcmd;J6kvDaD9A6)EXmBz^WtED0suY#1Tp{s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_insert_at_front/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..680e29e09f6bada6de0b2850e1646490d7d1dc38 GIT binary patch literal 147 zcmd<$&o3=0C@qOEPAx1=%}Y)dV3d;MU>0EalKA%@6)-@7lo|&MP+ox%%4dSo%ut#I crVeTjE0oU$rP*QfVjN6Ba|Ae`d`>700BoZfpa1{> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/model.onnx new file mode 100644 index 000000000..736b81c5b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/model.onnx @@ -0,0 +1,28 @@ + backend-test:÷ +ˆ +x0 +x1y0" SequenceMap*m +body2b + +in0 +in1out0"Add seq_map_bodyZ +in0 +  +NZ +in1 +  +Nb +out0 +  +N )test_sequence_map_add_1_sequence_1_tensorZ +x0" + +  +NZ +x1 +  +Nb +y0" + +  +NB \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/input_0.pb new file mode 100644 index 000000000..fd31b6465 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/input_0.pb @@ -0,0 +1,5 @@ + +x0. +J(  ?¦7?³N?w} ?HéØ>QY%?n à>. +J(~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?. +J(»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/input_1.pb new file mode 100644 index 000000000..497228ce0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ + +Bx1J(Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5cd6cbb0d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor/test_data_set_0/output_0.pb @@ -0,0 +1,6 @@ + +y0. +J(ö8P?j¥¾?|Ї?-Ž?ˆâ>V»¡?\†?PÁ? +&ô?€Zˆ?. +J(44‡?ë̦?у?e<¿?žö·=wk4?Vß!?ûй?`gÜ?r¢Æ?. +J(S Ÿ?ëdÉ?Èéj?Óª¬?‘Z >œ÷ ?eA?šâÇ?ª˜»?ˆYŒ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d0fcda83bc2d9e336d39917258640e6e3e2b7ef9 GIT binary patch literal 2581 zcmcguF;4415M@ma&U^x75fZgaOJA}n=>Sn60u5axv~s))ScF*vCrdUb(JZM)M1#2 z;-5&T0dYx@P)ZSeh5|Z*sU8V6PC}GQiqi}u6KfQ+d16emnM9OvsL)+5kMtCtne(kV zxMlpT4AzJrX_T(Bt1&ep8m|lXbvVqFXRo$B#vWLUsN6ArQ3n-0D}-MtsV)?UI5rwzc6yQY%?n à>. +J(~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?. +J(»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..497228ce0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/test_data_set_0/input_1.pb @@ -0,0 +1,2 @@ + +Bx1J(Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5cd6cbb0d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_1_sequence_1_tensor_expanded/test_data_set_0/output_0.pb @@ -0,0 +1,6 @@ + +y0. +J(ö8P?j¥¾?|Ї?-Ž?ˆâ>V»¡?\†?PÁ? +&ô?€Zˆ?. +J(44‡?ë̦?у?e<¿?žö·=wk4?Vß!?ûй?`gÜ?r¢Æ?. +J(S Ÿ?ëdÉ?Èéj?Óª¬?‘Z >œ÷ ?eA?šâÇ?ª˜»?ˆYŒ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/model.onnx new file mode 100644 index 000000000..5282022fa --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/model.onnx @@ -0,0 +1,29 @@ + backend-test:ó +ˆ +x0 +x1y0" SequenceMap*m +body2b + +in0 +in1out0"Add seq_map_bodyZ +in0 +  +NZ +in1 +  +Nb +out0 +  +N !test_sequence_map_add_2_sequencesZ +x0" + +  +NZ +x1" + +  +Nb +y0" + +  +NB \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/input_0.pb new file mode 100644 index 000000000..16846836d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/input_0.pb @@ -0,0 +1,3 @@ + +x0JS¢[?}åX?ß¡?®ÍÄ>uV˜>ÞKh= +J›™‹>J†ô>JêO?‘¿õ>É> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/input_1.pb new file mode 100644 index 000000000..8a6f6cc39 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/input_1.pb @@ -0,0 +1,4 @@ + +x1JB V?1¿¬>˜î%?(м>u?¸> +J +¾^?JÁ|ò>}M?>? Ë-? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/output_0.pb new file mode 100644 index 000000000..19c75ae41 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ + +y0JÊÕØ?‹¢—?<È¢?ë«@?­™ ?ËI> +JlE’?J¤†s?dyÎ?æ€?L,‰? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..8a4026c321efe504790a212a2534649d316e8158 GIT binary patch literal 2500 zcmdT`y-ve05XNZ(=}~@agv6XN5>nc+8x)30z`|AutRyxN(K;z{5ZM@b2iCp-8w2ma z%zN+v4A@m&3SAJyNQ}AI_kH)>ceWh|*TW#XWSnjbmWlSm1{7f3_&7Lb!<_Mm9R?{; zzeqL-kb#T@l#dXxJCHW zzLIgHgj3h)Bs>!V7hVJG>!6=A&t9*22#ruxQn*7n(!9zjJ((@sSBkMgDhhW+gY2tM zuMRd9Mas4$4NKB^Tm$nR0MlZ_Ur33q!gs3&Ns@YRb*P33En2U2ct&udH7=u(eF;ER za-wWRVvbJ@rkA#Hoi1fu#G;UXctUC_%Wc?4MX_L4QId0kJHM?d=DrI$$&S#}oBx7( z^9%JC1Z43c1WHW-O+0|t+!a`cnuD+n6^xF;3ov|S;z@1c p&=iuk&RlULWJ~*a-+!_6HplO*uOf}Z&AIfUTwVBc;azLJ@eU-+pd$bP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..16846836d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/input_0.pb @@ -0,0 +1,3 @@ + +x0JS¢[?}åX?ß¡?®ÍÄ>uV˜>ÞKh= +J›™‹>J†ô>JêO?‘¿õ>É> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..8a6f6cc39 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/input_1.pb @@ -0,0 +1,4 @@ + +x1JB V?1¿¬>˜î%?(м>u?¸> +J +¾^?JÁ|ò>}M?>? Ë-? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..19c75ae41 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_add_2_sequences_expanded/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ + +y0JÊÕØ?‹¢—?<È¢?ë«@?­™ ?ËI> +JlE’?J¤†s?dyÎ?æ€?L,‰? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/model.onnx new file mode 100644 index 000000000..445c55ccc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/model.onnx @@ -0,0 +1,26 @@ + backend-test:ß +| +in_seqshapes" SequenceMap*] +body2R + +xshape"Shape seq_map_bodyZ +x + +H +W +Cb +shape + + +  test_sequence_map_extract_shapesZ# +in_seq" + + +H +W +Cb +shapes" + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1d9ade7c084d00c16e31ab45596f385295e07af0 GIT binary patch literal 17452 zcmeI(u?d4v5C-5#OgOAWQoSOzv$#a66gHx`VEQazDWuF2ic1KO?-scGzv^$Uy7$9t zeou9gzGJlUjB8zVpYdV{5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5;&>;%%kiAPk&H{sf37f&Dp1PBlyK!Cu>0_j)o RUF&wVt))Eq80#|?*Z^SN3gG|% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..705f76b57919d2f8fa31596e236076e50ffb0472 GIT binary patch literal 106 ucmd;LE6zwPNG%p%l#=6M7GU?1&|rW7IVjBxrD5_SP(Bw9d6+mWnmhoo^#xV{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..dd35b3d16acdde0772daed4feacc42841feadc0a GIT binary patch literal 2230 zcmcguOHRWu5XB`a>8N~ageY6HA`%i}$%?N860BGtRY1sRpb^Cmjf1F!#DW8`WJxc; zo-1$@4!{Ah+on{k5X5XOc@n=jGw*q1$D!504=<5N%Mw$$_FRKID97AO@tU3;;&p~R z!~;L^^k*II1-vU2!CTq(LltcL38reB_&mbMJI{D1W5K=A<1tUNk@E_ug`7?0zw9Hw zkj=F*xTmLita#Q?@Q68Ef~V5w(yf7gSCU`KLPh(kDVEp{MaCsv|6^6R4041G zsZxI=@MlQ6okRXo$eu}fO()}d0!G^6pt|M06N900N|*iEGRkS!G$5h-YimL(m`cGVo0l@ xZN8V*CAM@=It}BL?CRx6FIzz!27~=O-DYW~_6c%mMic-5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1d9ade7c084d00c16e31ab45596f385295e07af0 GIT binary patch literal 17452 zcmeI(u?d4v5C-5#OgOAWQoSOzv$#a66gHx`VEQazDWuF2ic1KO?-scGzv^$Uy7$9t zeou9gzGJlUjB8zVpYdV{5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5;&>;%%kiAPk&H{sf37f&Dp1PBlyK!Cu>0_j)o RUF&wVt))Eq80#|?*Z^SN3gG|% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_extract_shapes_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..705f76b57919d2f8fa31596e236076e50ffb0472 GIT binary patch literal 106 ucmd;LE6zwPNG%p%l#=6M7GU?1&|rW7IVjBxrD5_SP(Bw9d6+mWnmhoo^#xV{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/model.onnx new file mode 100644 index 000000000..200e1a5c9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/model.onnx @@ -0,0 +1,20 @@ + backend-test:à +n +xy" SequenceMap*Y +body2N + +in0out0"Identity seq_map_bodyZ +in0 +  +Nb +out0 +  +M %test_sequence_map_identity_1_sequenceZ +x" + +  +Nb +y" + +  +NB \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/test_data_set_0/input_0.pb new file mode 100644 index 000000000..8c9410d4f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/test_data_set_0/input_0.pb @@ -0,0 +1,5 @@ + +x. +J(  ?¦7?³N?w} ?HéØ>QY%?n à>. +J(~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?. +J(»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f7ae38018 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence/test_data_set_0/output_0.pb @@ -0,0 +1,5 @@ + +y. +J(  ?¦7?³N?w} ?HéØ>QY%?n à>. +J(~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?. +J(»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/model.onnx new file mode 100644 index 000000000..65bb2f2a6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/model.onnx @@ -0,0 +1,36 @@ + backend-test:Å +º +x0 +x1y0y1" SequenceMap*š +body2Ž + +in0out0"Identity + +in1out1"Identity seq_map_bodyZ +in0 +  +NZ +in1 +  +Mb +out0 +  +Nb +out1 +  +M .test_sequence_map_identity_1_sequence_1_tensorZ +x0" + +  +NZ +x1 +  +Mb +y0" + +  +Nb +y1" + +  +MB \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/input_0.pb new file mode 100644 index 000000000..e212b2b78 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/input_0.pb @@ -0,0 +1,3 @@ + +x0JÍ!X?S¢[?}åX?ß¡?®ÍÄ>uV˜>* J$š²v?rRÄ>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<Ju?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/input_1.pb new file mode 100644 index 000000000..92a7bbb92 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +Bx1JGì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f80a82295 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ + +y0JÍ!X?S¢[?}åX?ß¡?®ÍÄ>uV˜>* J$š²v?rRÄ>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<Ju?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/output_1.pb new file mode 100644 index 000000000..fb519d2dd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor/test_data_set_0/output_1.pb @@ -0,0 +1,2 @@ + +y1JGì>ÃÐG?JGì>ÃÐG?JGì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f4eb2c04695bbbcd7cf8d2b4af8ce61ac04ba565 GIT binary patch literal 3662 zcmcgvyKdA#6x}gv@Lm$gP838z<MpJQCsM_Cc5ucgA!49~Ysta*nb8@V5YR>teIQ_T>mdyiJeFD~9U<+}3#?+}p z{bT<0Sjr-}+=po*v-;7;efUY>ZEMQGW4Y33+#qq2NS-4-wS}b<=zB+-v8JQ-y_tg} zT5H>DuEaW(6)O6C&~9@KeQ0+)RJy4|&vrIA3j0mCF9Zf}gT83n7{qe=tivs57=bYx zo^eNI_~uv%q0vc)5QbOZO0FCFCfC=Oiz6(>+62L#fNT^2nJobs|EqxXpc}~RQMNp{ zJTPy<)VoC|OJyYw?Mum^&NS+KE2x_k(!2gH+=iJ)s0%kJIk5+CJluzmk_v3ToasjN zuV˜>* J$š²v?rRÄ>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<Ju?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..92a7bbb92 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +Bx1JGì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f80a82295 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ + +y0JÍ!X?S¢[?}åX?ß¡?®ÍÄ>uV˜>* J$š²v?rRÄ>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<Ju?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..fb519d2dd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_1_tensor_expanded/test_data_set_0/output_1.pb @@ -0,0 +1,2 @@ + +y1JGì>ÃÐG?JGì>ÃÐG?JGì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2dd21122dda4d0efcb1b41e382bbd227037d148f GIT binary patch literal 2305 zcmchZzfQw25XS40KzePVwLoId7ztDuy8%K_sbyj7V&#u1QBx;04r(Mu23`WG5-ShD z#zXKHyaEe0s@sT8h$Le!)_r&1{m!ys;D%$nW6Hb(PGjEvY{LVf8K&3tE}_h&13Mz} z4~Z86G7%Bqqm27JB}c0`okceDs7G!R=5jw|B%8x$QIbg_vIUfx+v-T4vJt=SR^Sm~ zR|N~wc0=Zw##zW>ZZmGRLBF?ygj#y5W+603nkeH5;ZfdYgjoYR(l|PacxpD4(7F7y z8lZbTjp)88r7BAKYC<{FfHI7SvTVgDHMM>iM%G&$G$-`ZLg$6`7aQ^b2&=a=*hC*`2I37WBmE5mV- zqf#p_#cD!~7b&*j0`Hhjs6)*_SceUa22KDaTrqgjqmvY=rf^zoa*lL?)ZyPAAH!Yw Sdimwol_R3*TJ*HqYJUTJabhw6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..8c9410d4f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/test_data_set_0/input_0.pb @@ -0,0 +1,5 @@ + +x. +J(  ?¦7?³N?w} ?HéØ>QY%?n à>. +J(~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?. +J(»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f7ae38018 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_1_sequence_expanded/test_data_set_0/output_0.pb @@ -0,0 +1,5 @@ + +y. +J(  ?¦7?³N?w} ?HéØ>QY%?n à>. +J(~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?. +J(»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/model.onnx new file mode 100644 index 000000000..50d882e4f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/model.onnx @@ -0,0 +1,37 @@ + backend-test:Á +º +x0 +x1y0y1" SequenceMap*š +body2Ž + +in0out0"Identity + +in1out1"Identity seq_map_bodyZ +in0 +  +NZ +in1 +  +Mb +out0 +  +Nb +out1 +  +M &test_sequence_map_identity_2_sequencesZ +x0" + +  +NZ +x1" + +  +Mb +y0" + +  +Nb +y1" + +  +MB \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/input_0.pb new file mode 100644 index 000000000..e212b2b78 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/input_0.pb @@ -0,0 +1,3 @@ + +x0JÍ!X?S¢[?}åX?ß¡?®ÍÄ>uV˜>* J$š²v?rRÄ>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<Ju?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/input_1.pb new file mode 100644 index 000000000..c903c9f12 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/input_1.pb @@ -0,0 +1,3 @@ + +x1JGì>ÃÐG?&J ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>J ¢v +>Ïõ¥>^D> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f80a82295 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ + +y0JÍ!X?S¢[?}åX?ß¡?®ÍÄ>uV˜>* J$š²v?rRÄ>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<Ju?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0c0f023f1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences/test_data_set_0/output_1.pb @@ -0,0 +1,3 @@ + +y1JGì>ÃÐG?&J ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>J ¢v +>Ïõ¥>^D> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d44df3bd21b1aab4c471e088da42318e326f0ee6 GIT binary patch literal 3522 zcmdT{J#W-77(S;L$i1|*eWjC-*fK^!#2s$~gv3d`F5Pai^5N2mJ0~!4BL*7_^p7-(dIJW2EejFtqxJX|}UdqY0=kN)fn-DL~ z`NxWjgwLXa=})X&7uZr&vXl#%$(o&P>LuehMI=(5vWrS2GRp;PPLheDYRsahTX5k& zHA7ChcrPy}1NclZHAP$CNiI^~dy|V&MnVS1;9f_IiU;n|C?MpH3>A-Cf|s51$eR*` zT06chWbGdqq__Gt*atV2b-|x0E>168=pS>rA45;(fL?q6y{)osr0p7_Q-|uI{_r%< zi{K~1FwWEZf#(<^D3p#NDDwAI8H0-foDQ=`v6c~zMu+`0uiWJtSXNE-~lI#yGv z^-w8=?$os!_!V6p_|0iyDoTE(6JuW}+Nn^~wosJ)Rwx`dgS6Sx=Ax&~<`E3N$2gcT ztoqvgeKgugp;cDV)+xe6{{WuA$Rp^&9+ETru-cPt*jc=UKK{D67B{}O3THCkZu87O t?kYlU+}Ry*Cj)%>mv^E0cy*oHv4}3y9gJ9&)yb_rdR5*X{n|M?egMM)Co2E| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..e212b2b78 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/input_0.pb @@ -0,0 +1,3 @@ + +x0JÍ!X?S¢[?}åX?ß¡?®ÍÄ>uV˜>* J$š²v?rRÄ>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<Ju?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/input_1.pb new file mode 100644 index 000000000..c903c9f12 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/input_1.pb @@ -0,0 +1,3 @@ + +x1JGì>ÃÐG?&J ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>J ¢v +>Ïõ¥>^D> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f80a82295 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ + +y0JÍ!X?S¢[?}åX?ß¡?®ÍÄ>uV˜>* J$š²v?rRÄ>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<Ju?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..0c0f023f1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sequence_map_identity_2_sequences_expanded/test_data_set_0/output_1.pb @@ -0,0 +1,3 @@ + +y1JGì>ÃÐG?&J ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>J ¢v +>Ïõ¥>^D> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_shape/model.onnx new file mode 100644 index 000000000..2ced58874 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape/model.onnx @@ -0,0 +1,13 @@ + backend-test:E + +xy"Shape +test_shapeZ +x + + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a659f383d501fc91218317d6cea01391be187a3 GIT binary patch literal 33 Ycmd;J7GQT`tn`v#W`F<|D9s9`0V6O0O#lD@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/model.onnx new file mode 100644 index 000000000..9df1fba38 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/model.onnx @@ -0,0 +1,15 @@ + backend-test:Z + +xy"Shape* + +end + test_shape_clip_endZ +x + + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_end/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a659f383d501fc91218317d6cea01391be187a3 GIT binary patch literal 33 Ycmd;J7GQT`tn`v#W`F<|D9s9`0V6O0O#lD@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/model.onnx new file mode 100644 index 000000000..6276b367d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/model.onnx @@ -0,0 +1,13 @@ + backend-test:g +$ +xy"Shape* +startöÿÿÿÿÿÿÿÿ test_shape_clip_startZ +x + + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_clip_start/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a659f383d501fc91218317d6cea01391be187a3 GIT binary patch literal 33 Ycmd;J7GQT`tn`v#W`F<|D9s9`0V6O0O#lD@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/model.onnx new file mode 100644 index 000000000..62bb41ca6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/model.onnx @@ -0,0 +1,14 @@ + backend-test:W + +xy"Shape* + +end test_shape_end_1Z +x + + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_end_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e1731c0aaa6b98e110edd43349db47db918e6aaf GIT binary patch literal 17 Tcmd;J6kvB^tn}hwW`F“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_end_negative_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_end_negative_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9fe08acfb086f7cafddd7c09833553189186a700 GIT binary patch literal 25 Wcmd;J5@2^?tn?CKW`F<|C=CD@C;>kJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_shape_example/model.onnx new file mode 100644 index 000000000..b8f5874c0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:I + +xy"Shapetest_shape_exampleZ +x +  + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9a18aeeb9b9f8631811af432db90c04fb5d6450e GIT binary patch literal 35 kcmd;J;$RkFbYiUVl3-wHuxDUkZ~!78ZUEv1KzzUf08BasV*mgE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..460c22080fbaf26ec0136543c02cc3dd51015bbe GIT binary patch literal 25 Wcmd;J5@2^?tn?CKVt@c“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2f337159bf5bdb080630209bf25cc9d3b2b04b16 GIT binary patch literal 25 Wcmd;J5@2^?tn?CKVSoTuC=CD@KmkDj literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/model.onnx new file mode 100644 index 000000000..9929f60d2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/model.onnx @@ -0,0 +1,15 @@ + backend-test:m +' +xy"Shape* + +end * +start test_shape_start_1_end_2Z +x + + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d2b96782f64c932a5822cc194a6828eb2f2259b3 GIT binary patch literal 17 Tcmd;J6kvB^tn}hwVSoSt4d4MY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/model.onnx new file mode 100644 index 000000000..c7db7f4ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/model.onnx @@ -0,0 +1,14 @@ + backend-test: +0 +xy"Shape* +endÿÿÿÿÿÿÿÿÿ * +start !test_shape_start_1_end_negative_1Z +x + + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_1_end_negative_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d2b96782f64c932a5822cc194a6828eb2f2259b3 GIT binary patch literal 17 Tcmd;J6kvB^tn}hwVSoSt4d4MY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/model.onnx new file mode 100644 index 000000000..512f6d72b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/model.onnx @@ -0,0 +1,13 @@ + backend-test:m +$ +xy"Shape* +startÿÿÿÿÿÿÿÿÿ test_shape_start_negative_1Z +x + + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shape_start_negative_1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..149ec66017367d7d174baab1081495aa5d3d11fc GIT binary patch literal 17 Tcmd;J6kvB^tn}hwWq<$x4d?+h literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shrink_hard/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_shrink_hard/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3a4f933eff59dca45f452e16776edb31de8f7713 GIT binary patch literal 107 zcmd;J5#mWoOwLZtOVKS!EiSPN<&x)OtPoKV84Ko zQH!68H77AQDFr4VBmmMFUkp|qU!0#-62%WPf{TlTgHecui;06Z2`EsBEa1c>zy$z_ Cq8jZ0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_shrink_soft/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_shrink_soft/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..79ecbb47a483fd600057d4a544c8996802a72c56 GIT binary patch literal 29 gcmd;J6<~B?tnd“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sigmoid/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sigmoid/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..498ddbf2715009d81fdcb56e020d1d86a873abd8 GIT binary patch literal 254 zcmV(tKikyhKG5G2Kfd0WJ}c{! zJwInCKSCZfKgA-YKK2D@Kj7a%K9lVNKQ$caKB0+HKO`PdKbPeRKLzU-KSfBDK7vX3 zJv`~tK5P65KTjM+KgHQZKWGTgKIfR(K9=2tKA}`cKJHZ=KF}gyKMo|oK5ov)KEaG* zK1F3OKZgh^J{jNSKBst;J{olxKcN7?KDv`|K9*$sK5YOSKWjk*KSDMWKZtCxK2{Ra EK1BgzDgXcg literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/model.onnx new file mode 100644 index 000000000..685eb24b7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:I + +xy"Sigmoidtest_sigmoid_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sigmoid_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..82f3b77551153e68f6d78b8a5a5d9fef26d30452 GIT binary patch literal 21 ccmd;J7GQK@tn}j9xT({Qfq}t(g_^ZJ050eR-~a#s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sign/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sign/model.onnx new file mode 100644 index 000000000..8ff938610 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sign/model.onnx @@ -0,0 +1,11 @@ + backend-test:; + +xy"Sign test_signZ +x + + + b +y + + + B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sign/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sign/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..edc96c8d698e7a5835dbdce8e70de321b893d0ec GIT binary patch literal 53 ucmdw8)!-mz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_defaults/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_defaults/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..17423bca0281e7ec2c630932193d4014318561d0 GIT binary patch literal 37 mcmd;Jí&•>í&•>í&•>Ù·?Ù·?Ù·?Ù·?íL?íL?íL?íL? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..450d4b03f6a4ec2a34a8aeca3347ce7d67c2dffd GIT binary patch literal 227 zcmd;J7vf1uOwLZtOVKS!EiSP-!^ow>#TdcG7|z8Q#Kq_~~R8K0rV9OUPxCB(&@ zk(rW`nipT3S(Pfmx`2^MND-tB$j>dvNsTYc%Zo41EXjz^%*!mvOw5T-%1kVd5(gS6 zB*Z1a!6?MT#l*n~#LOTJk_bnWV1-EpVUb{s5(YVmkBbLr6bIBOt|Un=kQ33=gKS`R IViMp30KS|h*Z=?k literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_simple_rnn_with_initial_bias/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9cb9bf0ac34f11b9f5aad7933812673878f5f792 GIT binary patch literal 49 vcmd;J“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sin/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sin/test_data_set_0/output_0.pb new file mode 100644 index 000000000..29e4a9110 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sin/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðý;{?ÒtÇ>]mT?™¤H?RÏt?ç7T¿_?P?f¾]Ó½v^Ì>·ý>˜C~?mŽ0?v“ø=tÞÛ>L°§>=??‡œP¾a¯>§A¿!¿ª?*¿B?Ï-¿¦øC?LD~¿Š\;=>¾¥Ð?¯~?3>Œ ½>¶’F¿mÈj¿#®¾*s>OMq?uÒn?ÏcÁ¾«n˜¾4à]¿u}¿†§}¿z½m?”Êù¾E0Ù¾.*s¿ •3?#ÿà4X¾çÎG¿O0Á>sNú¾ÀÂl¿˜Öæ¼F©Ô>x ˆ=Õƒ˜>µ¶¿`­µ¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sin_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sin_example/model.onnx new file mode 100644 index 000000000..89af4cae8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sin_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:A + +xy"Sintest_sin_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sin_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sin_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sin_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sin_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..be8a83c2a7d9f0ac53c6212eb6731ef749f999b6 GIT binary patch literal 21 Zcmd;J7GQK@tn}hpk`=z60SJJ!Jpe6&1or>{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sinh/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sinh/model.onnx new file mode 100644 index 000000000..7536ba127 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sinh/model.onnx @@ -0,0 +1,13 @@ + backend-test:K + +xy"Sinh test_sinhZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sinh/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sinh/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sinh/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sinh/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sinh/test_data_set_0/output_0.pb new file mode 100644 index 000000000..335d9cf7f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sinh/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJð%E5@hdÒ>ˆB’?̹”@Ñ,J@ìù‘¿6ÀŒ? •¾ÄÓ½ù.Ø>ß>˜‡@//V?FÎù=EËê>w®>†b@S¾ì¢>é7v¿HÌÀa3?Šçy?6ìO¿Ô-™@‹À~;=,Ì@¾uH @W¹@DM>cDÆ>Ò)¿ª‰cÀ¿µ¾"Á >0RÈ?^ÃÁ?¢N˾³%¾`2 ¿¡Où¿ru*À‹\@g1¿†‰ç¾Ý¸Í¿…´[?úWÀ6~[¾\‚¿ÍË>‡¿¼¿>ææ¼Ûâ>çSˆ=å<>V-¿ÅÒ½¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sinh_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sinh_example/model.onnx new file mode 100644 index 000000000..db291c42e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sinh_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:C + +xy"Sinhtest_sinh_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sinh_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sinh_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sinh_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sinh_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4cb4991cd5992bca838f90a833a45ec48356e349 GIT binary patch literal 21 Zcmd;J7GQK@tn}jfmosfY0}udddjK{v1}y*p literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_size/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_size/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..11c8ac69c3db235f7d50c78534a5b49b03e3f529 GIT binary patch literal 85 zcmd;J7UD@tOwLZtOVKS!EiSRL=i=dFtPo“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_size/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_size/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2355ec3529179531024828ca7269a594b283081a GIT binary patch literal 15 RcmWe&cVevc;;>? lAO(C}JRFQd99&EsOhC+>#LdN6Da6Lb!oe=Y;KU@r2>|tZ5|sb| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_size_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_size_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9a18aeeb9b9f8631811af432db90c04fb5d6450e GIT binary patch literal 35 kcmd;J;$RkFbYiUVl3-wHuxDUkZ~!78ZUEv1KzzUf08BasV*mgE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_size_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_size_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6ca8cb761aa3c909f02f6081b80a8cc57bc0b28b GIT binary patch literal 15 RcmWe&cVevc;$UNd000eE0W1Ij literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_slice/model.onnx new file mode 100644 index 000000000..8c9a0407e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_slice/model.onnx @@ -0,0 +1,36 @@ + backend-test:» +( +x +starts +ends +axes +stepsy"Slice +test_sliceZ +x + + + + +Z +starts + + +Z +ends + + +Z +axes + + +Z +steps + + +b +y + + + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dbead81fac93bc25d2638a80c43bafa64dd3d94f GIT binary patch literal 4014 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..fcc1054b6d583a54b94e8285ea6483119b0003f8 GIT binary patch literal 30 Xcmd;J5@2^?D=tYaDk=67U_b)^Nzemj literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..f5957cc580744c9c1fae2283a75031c5146665fe GIT binary patch literal 28 Zcmd;J5@2^?NzF?s_7Y%bfB-Hi4FEFU0(k%c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..a067b9907ec2e8caada970410e64d1978a7eb4ec GIT binary patch literal 28 Ycmd;J5@2^?NvudM_7Y%#0!Ane05bFfbN~PV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/input_4.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a16805e8a2969e2266ed93cd75b6f7543b91cb6 GIT binary patch literal 29 Zcmd;J5@2^?EiOqdDE1OyWPkt|4FEpK0`vd? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ab9861515 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_slice/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ + +ByJØxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l?ÙºÀ>*¹Œ¿­²˜>Ç©?3Ï1¿Ì9¾rÌÞ¾­´ì?‚,?ÖžÐ>8E¿< +?¡,¿Â`=ÏÆ"¿»*-?u›?ELU¾dÁÊ>qé‹¿‡á¾¿ó÷à>u¬*>l‘"?r…@hÉq?¸®i¿dúŽ?§o¨¿ÑTì¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/model.onnx new file mode 100644 index 000000000..37579effb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/model.onnx @@ -0,0 +1,25 @@ + backend-test:’ + +x +starts +endsy"Slicetest_slice_default_axesZ +x + + + + +Z +starts + + +Z +ends + + +b +y + + + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dbead81fac93bc25d2638a80c43bafa64dd3d94f GIT binary patch literal 4014 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d407e4590787473264d87d4298171ddf711e5bf5 GIT binary patch literal 38 acmd;J7GQT`D=tYaDk=7oU_b-RP(A=<{R43T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..8235cfa62f0fd22fae44fd73164576da8d7765de GIT binary patch literal 36 bcmd;J7GQT`NzF?s_L2}`fB-Hi%>tzXNl5~i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_axes/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3bc16d58b2dbddbd11e6fcfee66be4c7c9ac9027 GIT binary patch literal 814 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d407e4590787473264d87d4298171ddf711e5bf5 GIT binary patch literal 38 acmd;J7GQT`D=tYaDk=7oU_b-RP(A=<{R43T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..8235cfa62f0fd22fae44fd73164576da8d7765de GIT binary patch literal 36 bcmd;J7GQT`NzF?s_L2}`fB-Hi%>tzXNl5~i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..f0febb06e034fd53cd6bdf0f9ded31f63cd3a92c GIT binary patch literal 36 acmd;J7GQT`NvudM_L5+L0!Ap!1f>B-j{<)H literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_default_steps/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3bc16d58b2dbddbd11e6fcfee66be4c7c9ac9027 GIT binary patch literal 814 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..f6355e9ab2cc56fdcdac2ece673899277b39b68c GIT binary patch literal 22 Ycmd;J6kvB^D=tYaDk=8jU}S&*04`GlT>t<8 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..e69ecf6bff7a0bb2ef41dca7974ce2ba674ed3db GIT binary patch literal 20 Xcmd;J6kvB^NzF?s_TqTK%m4-eCHMnQ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..31799432830506cff63208274e24952586e34bda GIT binary patch literal 20 Wcmd;J6kvB^NvudM_Tpelr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_end_out_of_bounds/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..de6ff73b88ee41bcfef766dc20dcab13a3c1f628 GIT binary patch literal 3614 zcmWNTX&{zq8$h!!+1FMh$yl>gBJXowZ-k^UNFfS|7AYn2nTjNoK`2=Y86gppEYE$t ziR@cSt3nAWw4wc*-{=21M^r&nOjJmQ&z$e*hQvif%fs-u$szFmxq$lb>}6+7?-R`v z@+5az4S4pN1JB?qGuQkT@px23elQ69ijH*mhHN5~?}qw2m-5a!{Rw5Z9&q{>gM}8d z+yc!STpwV@s9p!U$fyB6$=5+#kqS9==?-~s>4R+CPdu}voPM0IO0>hWAa&#-RM_96 z0Zr-jhjBD&+^s|zzo*Dw@fDIn`O(UDfL?UZ#!NA5Seep^7aqIPzwDlo&@DyX*#6-isa)reg%+#n*yOoQ9Ron+p zYIsDu`Yc{APa^_Ng|MQ_5Zg`X)1dYj^!m+r5V=qn`Yv@7llhj&kq`&j99^v6!OwKv zQ^Q(qJqXT_2g{9{>CQW?f&bUELw8Py^+>qwrh!a#&lu30*{C zYfwjKqZCg^S{2sFbYS4Nc$B=hnVI9vU_?YCxP1W3+l1J-qEbWuvA^pGhM|Bt$S=3sv%h7eFe<=HZ>3 zLo~Bp1dgFzhRnK)ouMJ*~kGXx&b6y@Z~uqLY&d)F?4INda?qI@V;Fb_K& zwy=VaXHd_6Eva5C40%eG%u(ITls($SblA5Otsq05i~BclsA(cx!9P)4r<;s_R+k+dI!9;rhO;l~pRvDIo1nd_1Nz6GB?9t0(L_B3 z8(&|hM-DBan)_wAjNeL(J$ex8tN~p0({S{YCHTc&z(IX&Uj6EYAbe*4hX&q|EerKg zYu^KS+Ykf#YNJ$D$pByN%D_zCAiWcpKo?in&~Han$&dL8FeX$%iuMWN&9QOhul`Jf zQoqoSE)`JfGy2`%!dfht_rOqc1SLPUM z1aASkpyQNVyMfVr{DYX^PzM9?7EE~IME#w-AjbU(X4~8&+U_#Eh`~sdGgD!R^aBjs z5RS^eb*MCb9~^Zw$&{%qd=T78`M=zx*`u9Uxi^*m`N14VvfUwD`W!sHT?>!7Zg7k5 z7TF%<0AJh>GPjN~RI=U zBt8c~v4kRglN9E?_4>)wuMwj0dw5Lf-h=ScMV}W)WpTtHj(7=A(&ZkNxbv_lXx7IQ z`}9z}t)D{7F`* z-fru$MSh5F+RDeBm71b^UQ6)Y6gQGWOM7-nxFDvbgyEt70or`Sl%(CBgL%FSxLL1) zkrlH=UZ@-|ss04%l;Go4%ooQS>hZMp#wzqmegQd&#~|!U0jzlAg^j_9(D&&lc^+m7 zR~t@3Wu8B3ai7q6z1yJZix#i$<{gkpmjs2CW^8@C7a4zW5}R}?s7l{iIKM0(CjZgp z_V`|4-=EjSzB~amvX4ZEpv$a4rvmDH>&C3&X3U>Bk4CBa(4_ARy}wFf>{JmBfB%k$ zzG~u-*h;e5`8WBzG#VDhCy_?!mq0)I&;;C#T1JmBJJ|;t--i(0lRoI)83=zi-2{iL z%DfmO4=CO&&9h1BAPLQxVBH(VJZry#_g^UD&goNh$E7vYpuwJ+iVw0;>2Bmqc{)lw z2%+9C^#D^1G@QJm+xg?5q-7~@&*}>h)UX7*|Hy}IJ7wO>By}l*6$XB=r&0XjtRp8mr*jg@+~?fD>G|T*MSGWGTgMS zp>d2IK2}da;T6L4u4oe6e()8GCNxoEI0?UfTo0TPN!&X#MMX3{>3Q+j#CW8c@_#nx z{jD??nAQQ}(Y1r#x)X=di*6DvoqD2CFh!qDcu-blKS~c6Qz0p3v|K;Lb|*c+{QKif z&L8#kw9rc|?9NAxu?3)M;S198BJ=~Ni@<7MvbCXrsAlAW(=ZQXboHR*{9US+=S#zQ z>2$q3kN*CYiI%JxIWqVV*l}OhDXy~S!AE^OetwGeygotpCbE>zb(EHcc9L!Udy%n@ zAenO!x?C#o=LTCo&@8$DQtPed>k#k2SwaBq^&8I zHM&!PZ`)ZqARmN_n)jn=aSrAekC1zRH!~B#!&Jab1G@*YPHJf!$XU+eO@HB$=8Czv zXw3&~m-vdyi+AJVrXA!Aw2=8;2axJTf|L3!c;41Zw09}v?7IZW@>&afq&$I7N)xy2 zUd4+zD#Eoe?8Gw>a;%!?Jg)oNLej%`2x9Dbcp>f;8gCcH8(C){)4Gh>1lZzK)duo3 zJPuX{i*iS60%01ZS-FWEC_cB9)C8}@hjPmy#M}rcN>XUc=R&x)uZz8&z6r0f@2Oa8 zB-kC2#3}iE^lUCa&bV;MThB&1Biex*RD95)Z9gh6yA1ww9U#X=3ADHKVbvoCEPls_ z{CUx+cK;8qTZJ^Q-&+QZ_vN8@`9rq+eK?-2JCC0~B%#lh0Z>^kN~ML?q11XQ&`s3h zs5zSei5SDL2Qx^awIf6n>A<`{R$v8Nuow;sOg4bJUko7@~7rf_|%QLf5)<` zuTaoFECd!;7lHPzYbdPyndk`2Bawk3(B%D?*h-e*n`AAvSHK*wHn<_f^Om zc1QUoyRe>@#(2Mo#n6B!G$GU($BuN7nmND8f~3B>cgl}3$@vXy{+B3jRa*v9Q4#RJ zKut90o+RrHUx4YPHX7SJ0$B?;oUc^JQOY!~8}j9FWP@C=X^S#e{m1kCt`d)L1>|M0 z6gMfn6qHW!qy6T5qH1v*uHX2^A=&@1z;$9C33)=Sjw@==e46!qiu?+`O!PMglN1-0 zE}RX8jY*>1GR1DPxZ9E%g|3B*g5p>?4jAGs%!FmVq&GI+$Gp)l8X_WwsVd!^O?Aoe zJI{bv#1(UzO4^vKPyER-^+#6P7p!GkKR?>C}7+O!)8rd#VD#J5d<#_r;Mn z%Qs=^^=0VQ`hjru_rtR26*QFZ77DY!p~uP{>l_h@+m8W63t`ul3&=MW z47Dmnu*Ui?blqNoe#0lhO+RkrJ|1wn0@CS) zP+{&!f?k*~d+HRq88PwHY9xxZ-qDaibcv4YX1-qZ}L7&(Jt1T5y zvZXy>i=Z8b=qqvKYp>u*ty=m};{fb_e}Q~G>I|xUzo`3)i)?}add`XdX83{zaPy-r zJPy#rGSN^N{I!cjb(Mj~n>k!RnJhXZ+)X8oJTOvNo<2&uOQ&US6DKhR8n?8XI<1R= z@p%W(iPulk9(B>x2TXzMPzL4t8C14wkc26&CLi-R;+&)-BwZwhbo%rXMJ-!8Ji=q% LzCMRFZdLUE9bf8& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/model.onnx new file mode 100644 index 000000000..f0d9bb4fb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/model.onnx @@ -0,0 +1,34 @@ + backend-test:¿ +( +x +starts +ends +axes +stepsy"Slicetest_slice_negZ +x + + + + +Z +starts + + +Z +ends + + +Z +axes + + +Z +steps + + +b +y + + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dbead81fac93bc25d2638a80c43bafa64dd3d94f GIT binary patch literal 4014 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6993ea4ef8684028431b55fee9b8819467a6c302 GIT binary patch literal 22 Xcmd;J6kvB^D=tYaDk=8jV1NPuE=vPk literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_2.pb new file mode 100644 index 000000000..9f204f888 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BendsJÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..31799432830506cff63208274e24952586e34bda GIT binary patch literal 20 Wcmd;J6kvB^NvudM_Tpelr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6512db50db96272596bc110e3519397d74142dd0 GIT binary patch literal 3614 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5ad173903f99ad789988b633e385b0911270a432 GIT binary patch literal 38 dcmd;J7GQT`D=tYaDk=7o5Mh7-E-1|cr2%M#1CRg! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..1cefc061b8e7ba2c83b763557c3910313841a5c4 GIT binary patch literal 36 Ycmd;J7GQT`NzF?s_L5*g1B_5U07kI_b^rhX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..f0febb06e034fd53cd6bdf0f9ded31f63cd3a92c GIT binary patch literal 36 acmd;J7GQT`NvudM_L5+L0!Ap!1f>B-j{<)H literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_4.pb new file mode 100644 index 000000000..b9a2bbfad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/input_4.pb @@ -0,0 +1 @@ +BstepsJÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/output_0.pb new file mode 100644 index 000000000..fe91b5eac --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_slice_neg_steps/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +ByJȺZ·¾åçÀ=ëp¿Š#¹¾´òK?€ÝÈ?Ö î½³¯·?U»Ÿ¾˜Ý>æp¾Ì"‡¾RÝξ¼RÅ¿ðC¿!Tu=n›]?¥ž>wb=™ +¿?@S=­°ú<¼<6I×?xT¿bÞ‰¿,ô>C§?N[¾Íï<ùq›>"T8?"Ò@¬ì¿Ns ¿«½í¾Ú|Š?ImK¿(¿aA?öõÀ>#Š?è¯Æ?6 ”½Yè¾^­î>SåÀ¿XĨ>à6¾Ûî]¾<ç ¿ å‘¿¿é?Gì?rÄ!¿®É#ÀÛÌ£¿Èœ?Åß?ô#†?PrŸ½Ö¤¿Ó\?µ¤h¿‘€>½ K¿Éâ½Ððv¿Ošx¿dt^?Ü?¦x>Ø@Z? ’?;=*[À­b¿·)ʾé³>úv >á/*ÀèóE?ÞÂÛ½áâ’¾÷w½>t<?¤›’>.*1¿½yÇ=¤µ=˳»¿ñ0Š?Éý“¿øø +¿Ö-½- Â>Y«?+ÑR?+ ?-Ä$¿MF¢>»Å¿ÑTì¾dúŽ?ÏÆ"¿¡,¿½l?÷º¾ÑÍ>h—ä? ¾?Okî>²ÄT=Ìñì> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/model.onnx new file mode 100644 index 000000000..d01aa2a18 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/model.onnx @@ -0,0 +1,30 @@ + backend-test:­ +! +x +starts +ends +axesy"Slicetest_slice_negative_axesZ +x + + + + +Z +starts + + +Z +ends + + +Z +axes + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dbead81fac93bc25d2638a80c43bafa64dd3d94f GIT binary patch literal 4014 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d407e4590787473264d87d4298171ddf711e5bf5 GIT binary patch literal 38 acmd;J7GQT`D=tYaDk=7oU_b-RP(A=<{R43T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..8235cfa62f0fd22fae44fd73164576da8d7765de GIT binary patch literal 36 bcmd;J7GQT`NzF?s_L2}`fB-Hi%>tzXNl5~i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..0a4bfd11f5bda9db22565ce638bf1e86edb4b1d1 GIT binary patch literal 36 Zcmd;J7GQT`NvudM_L5+Lf`9)}0RYa|5^Dee literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_negative_axes/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3bc16d58b2dbddbd11e6fcfee66be4c7c9ac9027 GIT binary patch literal 814 zcmV~$2~1OW7yxiu5NaJq3xb9tN)*u;tcp8=@Bclqied*17>R_TRG3`a1j7V|Bh*fX zjiV?OL`F9o(5Mwbx&`;X?@1~!FigrMLX7diC`TCEq=q@S{eH3lnOr9Elf+7j<1L;; zxxRdM=BOa57P*{w3p@KSM~j+sJE<0HE5=P1xvPlW|?{xez!aY;3-ba)QGZuH{? zql_7UqV;1fd6Zqoo|Zux)}{!>8(UG^)6af(NkqvN2h5sP&}2JH z^~U?SepM8OHE)Ja?-+WUS1P#sXA*ZbnvPbODJ6Ilz4*MD{#h9SSf-+a`URZywXs71 z6{svI!QU~SGBE^=oUtZKGGiFgr(nJgi%R=`VcNigJ9MxBn8q+7iNrtb^b zcWQuB?s5~OuIEtl8aw3rq{BDmO2J(Dg64mWXCa~Af^zPAn6q8LrGo~TPQQoQ%d{Z1 zo*{YXLm@0mhOB&wNpe12(3e12MdQhq5=Ta-A^Bq1R#0S-nX9xf&h5g_IQ yV%8`TnE66nTpS$iLM%X0#wa0(ZRlbkyHUi1VJ<<^oCLJ163s3KkX=qp0$c#t9WCzw literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dbead81fac93bc25d2638a80c43bafa64dd3d94f GIT binary patch literal 4014 zcmWNUXFS*Y8;2u1d!`{tLUtv^_jCX3lyD-2C`y#1NaXJvkxELE87brl8QJsuxqpew zjD~hbSxpTpb@cD?`_c8f9$c@tkgSl15Wggk8BgfOtRnL-95{==Nwl+*(P^5JXcc_1BI{jsM3e|2`p`_1KFj48usOB^dH?vCN-r@|v_un85s=E( z!lqrkOwSz^Y|zw(;0zhCwB1Vg-0C2QC(h#OA&OtV4U*s@O>!VX1p-gb=lHfChT4*S zxM$`(To1^{KBsrowCOC{YxfLH^9hC}IAU0KJ6rQa12fiK00ZM#G#$K%Uo-~kqS;wG zJ~ItOEC{6RDj4Z!mr+Z7JBSM&M~Q|O+#!_)o2_z)59PF35?1zYf#5(9j*H9<@Zo1^-;!YZ@2zv-jw_&G zU>WTH-i^uDt&M3PP0)HvJdvK;&W7{s1ONRwq{G$*!n;3EMA3WQrt=vRT zrb%-8<+Rz}+9P;MwTvFw@t(5L)1=?11ta4l8IHL!dCB!BRTJ~^R(250wywqlNx$g# z?;?1D?;&abFA*>OvIfgd2svSV+!XSZJhssW8Qo=Q=+jA`NC{EV&@}qR@Cw~@x*yXc z65*3xEaVzFU}r@GM(z2-w^s(Wc1RJvh-wO$4yC2bus*W`@0%`ySgkay zp*$#@KOegtwy}JVzoE9hDXCj50J-v2%rUL2ls(qU+_mo_8iD#;XSW$}sBa}4z7;64 zvW?bt{vuBXpI8lL z9h6JcgpgNn>Cd)8WIT&dDMKHOe3ntk2_YKw#Ou=&{C>?P?E#=tj06P4nw0gfQxP# zj(@QPpEIdAq^rqoTDuSgZVlq_;3(O)P!}~0Jb*XNF`%n5PL<{L@YUW7yv!Y4(3D5{Vtofyeg$MYta^fxW)_tXc$y4-hj}pjt z8vy^(5aZ0agYa6Sgxm=^-ssk$N^Yz-r!^WKbf@eYTI_WJ#Z%&m3-b@E1#biCzzE7| z*vM!<{zc4gs)C+KJI23sq`r=x5aad)vuy4VO*ctyxSU<(EuXd@{qaEH}uKxCl>c8{jd=6}(IpvHIb86tS>? zxd*CA=+0rR=BXw-qa9$%?J!gQ4@1S8>`+X-4xI*Vfn#xn4od~lp7s|IVyp{yp0gw` zREp@wH$mjW=OFskABsffU`9-U`^NJ>rfEGtjoZ&!I-QFJkB-Oj`LE3zZT`X%Gr_v zOM7-{I3K1Zg<;T(LE3h69Z9R5gSp-dIGL}4krm#A+)!z5Lep{5Ey}~KP!z$Ns&Ta8 z<{I=&dwHj$n!8uxZZpMs&ai%gY$&WzrOQ@2Tu zsVF;t>p8IK51?WrWpr-0EUujC#mu5M%=?gn2FZEQs_PB+XG>w?WFe0H{E0z7)NxpN zHQDO)n|xh%3KqsCkQRvnpr3csc-)5?29Gc+aW}TS43;@d8R_5En(S=TkZ_fih`OrNB?uB@ke&GvMi$PgQy?n=&9-B79gSB%wK-&jibH9Y%+~Ad)s+f&AhMXt`mS?M--qdH3Ej*-M(}Y5oB$=*>g5i3Ol;?hO($ zg7lL~4}rDbWP5WyQO?K(#}O{ZXlX-9%5AEW>rKPB>2!k(m;U~887*03a&+h+uy4It z$Jna+2cLB@B4v{GDE>hFF0hoxWt^6Uc9R{ve#lrylFM_pK&NyGtX@#Z`iqsqS)XX= z6pX-qBN=F*dYNieo&dvnNo;wuB952df#o9?$(3kX?vPgw@mk6cQ~W-pkTXg;ThFit zxAO5#7fT0a0&!8>L0ngqjd?|5kRIP^RogGATuL6F57Y~`9rm$b!19-&MaofH% z+{j~s9CQ6{JR2#^s(8%jxS1A^KAs?mvEyQD>?<_fDTFsO&%$NvGHT<$2`6hdlBeOZ zaQ90s%6v)3^`kbpXz@7^4?aXz2Mck=>jPjKC0OYX*-&(GJE;#|jSr=DAjHf7Ka?cV z_OAtS<3JBvoW2=vujG79?kj0DFfydQ$lV=V_Afy$C1y;T6-H(|jzW5Fz?cC_1 zh~M<~c!>%BCO@?Bv?S5v^>p3F5j^refaOijq41>_bN)WVuDwP<^9VnfUta{8)i+Q; z>nm9~cRq;<5QJ8*$7GXO363Ueu=nSh;ZN1gtW={n3jV$hnImo}vve;uanl&DmuE24 z{|Su`bwZo$N;s@(1M1#>Z2IOlIx}zxCXV)y`Z>SJf`tCYcM6X&!D*B=`%4J7t1Jic z=t%fqfI8~+ek2?8U&6YNnrLYA2&BwiQBl6pMEE4&voKH zlTQYM#W@M#r67Nj7wxy^5oPlTD84ykLbA@Yz;R?A@q56Tl`g18^JwPtNirLJmFR8_ zCP~gLUHCl|Y!ieyWpce_ajzvc2sMREd?Hx&7BIw1fQhwT&i%JC5yjQZ=@a8(%+rp> zu*?B^)AkNVNimjErrB1<2 z?o}5$sc4Sze?C=TO#paZ5Wsu=v1C+dGnN)FN6(H=grj>9mY-ThLwTxEfc*`9R&Ln1 zr3J<2sd2Wv=%x}28gODt2OsM+5}_e8@?OLhdF>|vPVr;UwN&Jp42A}!LRfG87rN}M zK%bEl;3_zmJIRxYafKn^TIa=fshp;sxs_z}&?4$#oQH>;uYp8*0aTc6A%QQAnEj1% zoQ#+_YBd&3Z8GbLwNoQZ40J-y?r56!B9n-C-^8sASE=RVZTMo~IF2)q!1n$|bW{++ z7>5S3>`w>koTiD@B|Xlmw`uJEjz*K1g>j^!vFL z8%&`dRDRwBkNwrLOehqFX7`flo-%MBox|~w%%tB0da0O!J4Ok}&_`*v>9k}maTJ!N zvCHbHqeTq7oqq@&xi3iCqaM2U&^q8altH;}29@d=B4KiC$>%&?PGR9@zyuOI_t~K=ktNyQI literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cd22222d0c9f0ad17a264162fb29b51e5d74c1a1 GIT binary patch literal 22 Zcmd;J6kvB^D=tYaDk=8jc)`p71^_jn1V;b> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..e69ecf6bff7a0bb2ef41dca7974ce2ba674ed3db GIT binary patch literal 20 Xcmd;J6kvB^NzF?s_TqTK%m4-eCHMnQ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..31799432830506cff63208274e24952586e34bda GIT binary patch literal 20 Wcmd;J6kvB^NvudM_Tpelr literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_slice_start_out_of_bounds/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f3f730287a12235781a34f9a662e0ba29a157d01 GIT binary patch literal 13 Ucmd-O;b7ok6<~B?tn^|400r;?NdN!< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6ae888a4397cb361310a9558893bf8254514129f GIT binary patch literal 123 zcmd;J7vf1uOwLZtOVKS!EiSQ2<&xoItPoLMH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/test_data_set_0/output_0.pb new file mode 100644 index 000000000..dd6206503 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðÔÀŠ>óQJ>¨:>/Ø?¥º>eE >˜ž¹>\ ƒ>/ýÒ=i¸Y>âw>°ñ?ò·¯>‹ÎÆ=‘XÇ> W®>óùþ>oÂT>&”>Éê>¬³?¬W‚>¸Šf>Ÿè=o ?ß ?KH>Õ‡>iQÜ>)é?Йz>Ð3O>«vÇ>Á~?…µ>Ô’>FÛÃ>/?)’Ÿ>ÀȆ>«¯>­? ?þ¿?ûJÂ>ôa¿=¸ñ:>B=û>‡õ>Nïî>õ¢2>a?rQ>bш>ÛN>ꋃ> ¦¿>«ô=GGÌ>x.> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1092330ae7c6c47610a2ddd64580dbbcf7d39f1b GIT binary patch literal 834 zcmbVKO-sZu5H)Sr#&N|G4|?#FV?j_)vL|u%=w*8mFClGGC~MO~l9K&5d-pf^-%LO~ zEkb&jVLq67k9mW0vaETtl}g+gsm<#17&hdt8d}qH$3ltepM<+kvs)(J$d!Lxi;a=QGQ}5slMdO9BcwJ{|R@wen zGanw3DfV1}{ybeh0fKfkeeNc5{og~sUxp_oP+&xskl@r?=50~?#_mw#DJjmr0RUMe AAOHXW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..dd6206503 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_0_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðÔÀŠ>óQJ>¨:>/Ø?¥º>eE >˜ž¹>\ ƒ>/ýÒ=i¸Y>âw>°ñ?ò·¯>‹ÎÆ=‘XÇ> W®>óùþ>oÂT>&”>Éê>¬³?¬W‚>¸Šf>Ÿè=o ?ß ?KH>Õ‡>iQÜ>)é?Йz>Ð3O>«vÇ>Á~?…µ>Ô’>FÛÃ>/?)’Ÿ>ÀȆ>«¯>­? ?þ¿?ûJÂ>ôa¿=¸ñ:>B=û>‡õ>Nïî>õ¢2>a?rQ>bш>ÛN>ꋃ> ¦¿>«ô=GGÌ>x.> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/model.onnx new file mode 100644 index 000000000..6b0e9ec2c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/model.onnx @@ -0,0 +1,14 @@ + backend-test:e + +xy"Softmax* +axis test_softmax_axis_1Z +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d61d8aa11 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJð¬F?uî=Çl½> 9?á` ?è^v>­£N>e¡%>n‘®=‚Þ>p*Ö=K«>÷]˜>âѱ= C>/q>˜²>É.>T×=òZJ>þò(?|¾z>P(‚>G0 >\†?QCa>¬ˆ>*>>#p™>›…„>Kµu=_>>z;…>~)ð>ô´¬=‚ v=ã,ß> }¶>ç8Ã=·¥=è5®>Ð>ü?“gÑ>Êž>n9=>&°>æ)P>›ƒ•>¶ÿk>|{•>†!>|o>éâA>õ9D>Èc;># ×=”s>oà=‰> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/model.onnx new file mode 100644 index 000000000..c1ae59472 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/model.onnx @@ -0,0 +1,29 @@ + backend-test:« +R1Softmax_test_softmax_axis_1_expanded_functionaxes"Constant* +value*:  +f +x8Softmax_test_softmax_axis_1_expanded_functionX_ReduceMax" ReduceMax* +axes@ * +keepdims  +v +x +8Softmax_test_softmax_axis_1_expanded_functionX_ReduceMax2Softmax_test_softmax_axis_1_expanded_functionX_Sub"Sub +m +2Softmax_test_softmax_axis_1_expanded_functionX_Sub2Softmax_test_softmax_axis_1_expanded_functionX_Exp"Exp +½ +2Softmax_test_softmax_axis_1_expanded_functionX_Exp +1Softmax_test_softmax_axis_1_expanded_functionaxes8Softmax_test_softmax_axis_1_expanded_functionX_ReduceSum" ReduceSum* +keepdims  +v +2Softmax_test_softmax_axis_1_expanded_functionX_Exp +8Softmax_test_softmax_axis_1_expanded_functionX_ReduceSumy"Divtest_softmax_axis_1_expandedZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d61d8aa11 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_1_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJð¬F?uî=Çl½> 9?á` ?è^v>­£N>e¡%>n‘®=‚Þ>p*Ö=K«>÷]˜>âѱ= C>/q>˜²>É.>T×=òZJ>þò(?|¾z>P(‚>G0 >\†?QCa>¬ˆ>*>>#p™>›…„>Kµu=_>>z;…>~)ð>ô´¬=‚ v=ã,ß> }¶>ç8Ã=·¥=è5®>Ð>ü?“gÑ>Êž>n9=>&°>æ)P>›ƒ•>¶ÿk>|{•>†!>|o>éâA>õ9D>Èc;># ×=”s>oà=‰> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/model.onnx new file mode 100644 index 000000000..26164ecd2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/model.onnx @@ -0,0 +1,14 @@ + backend-test:e + +xy"Softmax* +axis test_softmax_axis_2Z +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26c97e69912bb639267ea26c1f9e2ce10c2e5d02 GIT binary patch literal 254 zcmVDBK9n_zJ&rV=JsaDYK67@DKEy<>J@VPvJsnduKHNJ8 zKPOz%J)79xJ“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_axis_2_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26c97e69912bb639267ea26c1f9e2ce10c2e5d02 GIT binary patch literal 254 zcmVDBK9n_zJ&rV=JsaDYK67@DKEy<>J@VPvJsnduKHNJ8 zKPOz%J)79xJ“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26c97e69912bb639267ea26c1f9e2ce10c2e5d02 GIT binary patch literal 254 zcmVDBK9n_zJ&rV=JsaDYK67@DKEy<>J@VPvJsnduKHNJ8 zKPOz%J)79xJSoftmax_test_softmax_default_axis_expanded_functionX_ReduceMax" ReduceMax* +axes@ÿÿÿÿÿÿÿÿÿ * +keepdims  +‚ +x +>Softmax_test_softmax_default_axis_expanded_functionX_ReduceMax8Softmax_test_softmax_default_axis_expanded_functionX_Sub"Sub +y +8Softmax_test_softmax_default_axis_expanded_functionX_Sub8Softmax_test_softmax_default_axis_expanded_functionX_Exp"Exp +Ï +8Softmax_test_softmax_default_axis_expanded_functionX_Exp +7Softmax_test_softmax_default_axis_expanded_functionaxes>Softmax_test_softmax_default_axis_expanded_functionX_ReduceSum" ReduceSum* +keepdims  +‚ +8Softmax_test_softmax_default_axis_expanded_functionX_Exp +>Softmax_test_softmax_default_axis_expanded_functionX_ReduceSumy"Div"test_softmax_default_axis_expandedZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_default_axis_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26c97e69912bb639267ea26c1f9e2ce10c2e5d02 GIT binary patch literal 254 zcmVDBK9n_zJ&rV=JsaDYK67@DKEy<>J@VPvJsnduKHNJ8 zKPOz%J)79xJ;M*? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_example_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softmax_example_expanded/model.onnx new file mode 100644 index 000000000..225b45fb2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_example_expanded/model.onnx @@ -0,0 +1,28 @@ + backend-test:Á +\2Softmax_test_softmax_example_expanded_functionaxes"Constant* +value*: +ÿÿÿÿÿÿÿÿÿ  +p +x9Softmax_test_softmax_example_expanded_functionX_ReduceMax" ReduceMax* +axes@ÿÿÿÿÿÿÿÿÿ * +keepdims  +x +x +9Softmax_test_softmax_example_expanded_functionX_ReduceMax3Softmax_test_softmax_example_expanded_functionX_Sub"Sub +o +3Softmax_test_softmax_example_expanded_functionX_Sub3Softmax_test_softmax_example_expanded_functionX_Exp"Exp +À +3Softmax_test_softmax_example_expanded_functionX_Exp +2Softmax_test_softmax_example_expanded_functionaxes9Softmax_test_softmax_example_expanded_functionX_ReduceSum" ReduceSum* +keepdims  +x +3Softmax_test_softmax_example_expanded_functionX_Exp +9Softmax_test_softmax_example_expanded_functionX_ReduceSumy"Divtest_softmax_example_expandedZ +x +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_example_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_example_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a00f7191aa129fe41d6a7aba60fd7f1e50b03bf1 GIT binary patch literal 23 acmd;J;M*? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number/model.onnx new file mode 100644 index 000000000..108e775d9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number/model.onnx @@ -0,0 +1,11 @@ + backend-test:V + +xy"Softmaxtest_softmax_large_numberZ +x +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..559a11acd68c820eba42b56b3286069d7fdc10c1 GIT binary patch literal 43 ocmd;J;$RVAbYiUVQeXgs274go07MQ94l-^GE‘×$?âO=¹x²=j‘r>‘×$? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number_expanded/model.onnx new file mode 100644 index 000000000..db3d34d31 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number_expanded/model.onnx @@ -0,0 +1,28 @@ + backend-test:ÿ +a7Softmax_test_softmax_large_number_expanded_functionaxes"Constant* +value*: +ÿÿÿÿÿÿÿÿÿ  +u +x>Softmax_test_softmax_large_number_expanded_functionX_ReduceMax" ReduceMax* +axes@ÿÿÿÿÿÿÿÿÿ * +keepdims  +‚ +x +>Softmax_test_softmax_large_number_expanded_functionX_ReduceMax8Softmax_test_softmax_large_number_expanded_functionX_Sub"Sub +y +8Softmax_test_softmax_large_number_expanded_functionX_Sub8Softmax_test_softmax_large_number_expanded_functionX_Exp"Exp +Ï +8Softmax_test_softmax_large_number_expanded_functionX_Exp +7Softmax_test_softmax_large_number_expanded_functionaxes>Softmax_test_softmax_large_number_expanded_functionX_ReduceSum" ReduceSum* +keepdims  +‚ +8Softmax_test_softmax_large_number_expanded_functionX_Exp +>Softmax_test_softmax_large_number_expanded_functionX_ReduceSumy"Div"test_softmax_large_number_expandedZ +x +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_large_number_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..559a11acd68c820eba42b56b3286069d7fdc10c1 GIT binary patch literal 43 ocmd;J;$RVAbYiUVQeXgs274go07MQ94l-^GE‘×$?âO=¹x²=j‘r>‘×$? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/model.onnx new file mode 100644 index 000000000..87881ea15 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/model.onnx @@ -0,0 +1,14 @@ + backend-test:u +% +xy"Softmax* +axisÿÿÿÿÿÿÿÿÿ test_softmax_negative_axisZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26c97e69912bb639267ea26c1f9e2ce10c2e5d02 GIT binary patch literal 254 zcmVDBK9n_zJ&rV=JsaDYK67@DKEy<>J@VPvJsnduKHNJ8 zKPOz%J)79xJ“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softmax_negative_axis_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26c97e69912bb639267ea26c1f9e2ce10c2e5d02 GIT binary patch literal 254 zcmVDBK9n_zJ&rV=JsaDYK67@DKEy<>J@VPvJsnduKHNJ8 zKPOz%J)79xJ“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softplus/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softplus/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..279b05d94214a826a732ff5453eac3da6de2ac3d GIT binary patch literal 254 zcmVK1qm~ zJ%&YzKj)>JKTTf8KHQEMK(OvsKB-99KYVKmy+IKKJeZK3S`P zK78wwKLqeOJ`|}JKfqV7KGwQtKU1afKKLAoJ|EpJKTH{JKlvFtKOq!bKlIhvKG-t{ EKj8&u)&Kwi literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softplus_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softplus_example/model.onnx new file mode 100644 index 000000000..070aeb04d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softplus_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:K + +xy"Softplustest_softplus_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softplus_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softplus_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softplus_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softplus_example/test_data_set_0/output_0.pb new file mode 100644 index 000000000..38457adfc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softplus_example/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ Õc >r1?õ¨? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softsign/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softsign/model.onnx new file mode 100644 index 000000000..8153b1eee --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softsign/model.onnx @@ -0,0 +1,13 @@ + backend-test:S + +xy"Softsign test_softsignZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softsign/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softsign/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softsign/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softsign/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softsign/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a3f7ba64c8dda53994f2e61315a9b411f82d15af GIT binary patch literal 254 zcmVNiKHFmLKHwbMzUZ_uKQXcwzs)%_JzsPozTWH_KT%W|KPzDgKB#?+K4r-8zV00= zzdk2~zD0BjK7BV0KN`aeKj!g{zErbqzM}{Ozcx1(zolm(zdt@HKU>+XzU23tz6f0o zzZCS}KHU!yYKAan^zEzqEzi*1*yf=!OK0tPVJ$cP-K4ZAXzGO*= Ez6|$sp#T5? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softsign_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_softsign_example/model.onnx new file mode 100644 index 000000000..ad246c571 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_softsign_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:K + +xy"Softsigntest_softsign_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softsign_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softsign_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_softsign_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_softsign_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bc3568ade007e42c935580121b0069d0378e31f7 GIT binary patch literal 21 Ycmd;J7GQK@tn}hxU|`q}#2{b~02yKeEdT%j literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/model.onnx new file mode 100644 index 000000000..756c871f0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/model.onnx @@ -0,0 +1,16 @@ + backend-test:u +& +xy" SpaceToDepth* + blocksize test_spacetodepthZ +x + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..31fb558538c43b650460dd0bcea743ffb54c8ba8 GIT binary patch literal 592 zcmV~$eJs>*90%~|?mD?sKWA(w*3@~7jmX*kzMpsL;hbc#PEXPpTE)=&qx)mGA z^QNXpYwJR-T>0aQS#>29D^K&(n2oe%RT;v zzZP*(YWP~y@bXF#T5A&^QqNO&zZzpPzu4HPO^CF+)91lF4A%=$oj5>)`DO}>+=HtX zb2MGbfm>+gQ+<4q*s%fWi#{l9%tLQ^7_zxedhmLje%D7}#bRJF?ZKG0gutA0kah?K z^u^dh3Cb6g^@oG5YJxaXF~(Q=*}G{iC5I`u|0ouHwLw_Vh{B^fSby{yud0{Ym)@V5|B$07-&MF{*Vhi*HA&a{!q-d9m`&=PCA zRZnFB4%Xgxo7D0F>OO8_!@I*_mvHc#G*g{Jh^cfNQ{~BUbmlY)yzfxvNHBy;B2wz2 z;SyRyrFANLrtm~<=UqN4>Hsc}HmXjPh2kPzqeoFZ{v{cpu$GX-D8srcFUXDVFrCp; z>TEu4E_^3uIRqKE6|I^Ea?|d|2WLAiSL(2@&jTl|I@mPf*!3_5_LNnad36ruqnlw~ zJw$c9H{4XsydblQ{G5UyEvuo}ZN8{BkI-}LS~7GtkaCVg?oKZ(i)08<27vwa$K=!~ Sd6Z_rJ-mzBg2u^9tH*x@4d{*l literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_spacetodepth/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ea1db0c8befc792bd7773acfa744a4c152871814 GIT binary patch literal 592 zcmV~$eJs>*90%}lcb(j+pEI@-YwA44M&#^%-_N`Ba89yVrzdF_Hc=w&isDvBw_+o4 z9yT>ST3Z)t<;ovd%&IG?Sb3VK#%!c@%WAasdWoIIVzGl9{YAir5*GXRtEtKMCA+8RZr0P zN`9$+(IM&yFL=J?IAGb z9iVs9TJnhugvR!Rnm4DQ%9slLEdswM6K7I-s5NUf{H*C{txH6AzZ&6DyD?qHAR2R!v>3W=46^stWS4L-JA_ab$nZ?z zg`DX9I9?tGk)#XJK*~qUY8%q@3fhERrGUs~kGx2G$(B#QY~s zG?igvM`li;uJbN`d9+b=k*-nNY$2HCAX+sIWKUg%iqTCl^FGjbHcO70PD}#40J=UgxBvhE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..547a3af79b1d635a7dd6b96010fefe6fed3a1e08 GIT binary patch literal 37 mcmd;J6JT^=&CDw(E%B0IU}&&sU|?_nA|P%6;sro_zySb%^9L9J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d8ae6a55e724b2cc7ce6b76069980e85c6338e0c GIT binary patch literal 24 fcmd;J5@2-V$S*A^C@qOM^x|M(Xs~BsU~m8cKpq76 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..69df4a67a9a0885f94442e19da12f083dc7108b3 GIT binary patch literal 24 fcmd;J5@2-V$S*A^C@qOM^5S4%aByH?Xm9`kKduEj literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_1d/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..645225b0b35d13151568c5408d75159200c798b2 GIT binary patch literal 24 fcmd;J5@2-V$S*A^C@qOM_Tpe*Sm40GaKHfoLU{$- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/model.onnx new file mode 100644 index 000000000..0e5365f68 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/model.onnx @@ -0,0 +1,16 @@ + backend-test: +/ +inputoutput_1output_2"Split* +axis test_split_equal_parts_2dZ +input +  + +b +output_1 +  + +b +output_2 +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8708fe5cdcd82b8410c81fcbeb871d00155c1f05 GIT binary patch literal 63 zcmd;J;$RbCbYjiSD=01TGGJh6uxDUkZ~!78ZUEv1Kzsm*9{@3fBLjl~5Gw$&0T4Sl F0svV33O@h< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fef1d0db23f58c4f948b38c3548c1c2f0932bb60 GIT binary patch literal 42 scmd;J;$RkFbmGV_Eh#81i8u6;U|?vlXJBA(03slM0K^QA3=9H}0H$9DMF0Q* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_2d/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..66077a27023edcab3f53782b7125d7add48cfe8c GIT binary patch literal 42 scmd;J;$RkFbmGV_Eh#81i8u0+U|?u)U|?7P#0P*_!I6Q%0EitN0kYT#2mk;8 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/model.onnx new file mode 100644 index 000000000..3cee40bd1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/model.onnx @@ -0,0 +1,19 @@ + backend-test:° +, +inputoutput_1output_2output_3"Split#test_split_equal_parts_default_axisZ +input + + +b +output_1 + + +b +output_2 + + +b +output_3 + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..547a3af79b1d635a7dd6b96010fefe6fed3a1e08 GIT binary patch literal 37 mcmd;J6JT^=&CDw(E%B0IU}&&sU|?_nA|P%6;sro_zySb%^9L9J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d8ae6a55e724b2cc7ce6b76069980e85c6338e0c GIT binary patch literal 24 fcmd;J5@2-V$S*A^C@qOM^x|M(Xs~BsU~m8cKpq76 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..69df4a67a9a0885f94442e19da12f083dc7108b3 GIT binary patch literal 24 fcmd;J5@2-V$S*A^C@qOM^5S4%aByH?Xm9`kKduEj literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_equal_parts_default_axis/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..645225b0b35d13151568c5408d75159200c798b2 GIT binary patch literal 24 fcmd;J5@2-V$S*A^C@qOM_Tpe*Sm40GaKHfoLU{$- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d87fab03f2abc92c9e887c9d2c04401d508f4135 GIT binary patch literal 199 zcmd;J7vf1uOwLZtOVKS!EiSRzz{q9B#hRH{P+G#pT3nEmSt7)dUs?j>#v8&}MoO%~ zASo?wE|$cK%wh?K1&mBWG9Uxu!FuA$5{ohulX6ny3lfV;isKDaqJ*KQ3UP69a4-t7 ka4~VPfdnCTfCSmWf=o$bTnHNxijl>QkPKmQViMp50Pt@xqyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..547a3af79b1d635a7dd6b96010fefe6fed3a1e08 GIT binary patch literal 37 mcmd;J6JT^=&CDw(E%B0IU}&&sU|?_nA|P%6;sro_zySb%^9L9J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cbfc1ff6b2476b1e756c287b1707d17411dd511f GIT binary patch literal 29 acmd;J5@2^?EiTB(Eb$UxVt@b^C=CEUvI6x0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d8ae6a55e724b2cc7ce6b76069980e85c6338e0c GIT binary patch literal 24 fcmd;J5@2-V$S*A^C@qOM^x|M(Xs~BsU~m8cKpq76 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_1d/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7debf1d8295992eeafb18708a827d8a710a97eb1 GIT binary patch literal 32 kcmd;J5ny!U$S*A^C@qOM@)BTRaByH?XaM2`KzzUf0C5BdBme*a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/model.onnx new file mode 100644 index 000000000..7b4ba520f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/model.onnx @@ -0,0 +1,21 @@ + backend-test:¼ +6 +input +splitoutput_1output_2"Split* +axis test_split_variable_parts_2dZ +input +  + +Z +split + + +b +output_1 +  + +b +output_2 +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8708fe5cdcd82b8410c81fcbeb871d00155c1f05 GIT binary patch literal 63 zcmd;J;$RbCbYjiSD=01TGGJh6uxDUkZ~!78ZUEv1Kzsm*9{@3fBLjl~5Gw$&0T4Sl F0svV33O@h< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cbfc1ff6b2476b1e756c287b1707d17411dd511f GIT binary patch literal 29 acmd;J5@2^?EiTB(Eb$UxVt@b^C=CEUvI6x0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6316dcd25b35da7a42d126a07d9277fdea0b2673 GIT binary patch literal 34 ncmd;J;$RYBbmGV_Eh#81i8u5TU|?vlXJBA(U|@Iv#0-uAaC-)8 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_2d/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7c0f7af5f1e0633d1a022455483bcfc8ac483683 GIT binary patch literal 50 xcmd;J;$RVAbmGV_Eh#81i8u06U|?`?U|?tf;sro_0Eh(~85k6R*Z_zf90Bqq2;u+$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/model.onnx new file mode 100644 index 000000000..12e3bd0f3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/model.onnx @@ -0,0 +1,20 @@ + backend-test:­ +) +input +splitoutput_1output_2"Split&test_split_variable_parts_default_axisZ +input + + +Z +split + + +b +output_1 + + +b +output_2 + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..547a3af79b1d635a7dd6b96010fefe6fed3a1e08 GIT binary patch literal 37 mcmd;J6JT^=&CDw(E%B0IU}&&sU|?_nA|P%6;sro_zySb%^9L9J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cbfc1ff6b2476b1e756c287b1707d17411dd511f GIT binary patch literal 29 acmd;J5@2^?EiTB(Eb$UxVt@b^C=CEUvI6x0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d8ae6a55e724b2cc7ce6b76069980e85c6338e0c GIT binary patch literal 24 fcmd;J5@2-V$S*A^C@qOM^x|M(Xs~BsU~m8cKpq76 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_variable_parts_default_axis/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7debf1d8295992eeafb18708a827d8a710a97eb1 GIT binary patch literal 32 kcmd;J5ny!U$S*A^C@qOM@)BTRaByH?XaM2`KzzUf0C5BdBme*a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..346c8f9b39a4021e859cc69f949c12bad3cfa5b2 GIT binary patch literal 219 zcmd;J7vf1uOwLZtOVKS!EiSP-!pLRJ#hRH{P+G#pT3nEmSt7)dUs?j>#v8&}MsSv~ z5^FG6ku*qmJXk|~RccXwd~s$~DuiDgB@8uDh>MGZgHecui;05)BnUAdB*+dHWKI&} XLfD3+7)jg+*$^agV`OnBCIMam>9IAI literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..16d4ac7a398ab96299391c7d2fa5fefc962aeae7 GIT binary patch literal 13 Ucmd;J5MXp-&CDw(E%9Oi01prX+W-In literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ff7ae248158693f1966427135f66b3fbf411114a GIT binary patch literal 37 Wcmd;J7GQT`EiTB(Eb)?HzySbO)&lqd literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..14aa56f56b63a9f129eb665f27be7c5e25d52b1a GIT binary patch literal 16 Xcmd;J5MXrT$S*A^C@qOM^kM)28?^)P literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2f700936b76f6cde4cd35d91c538ad0008444a54 GIT binary patch literal 16 Xcmd;J5MXrT$S*A^C@qOM@?ro08@L1T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_split_zero_size_splits/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..f45e84e61dcfeb8d00bdd20a5b3d89d0c7f2a72a GIT binary patch literal 16 Xcmd;J5MXrT$S*A^C@qOM_F@148@mJX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sqrt/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sqrt/model.onnx new file mode 100644 index 000000000..59b5f4b0a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sqrt/model.onnx @@ -0,0 +1,13 @@ + backend-test:K + +xy"Sqrt test_sqrtZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sqrt/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sqrt/test_data_set_0/input_0.pb new file mode 100644 index 000000000..c3a1c952e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sqrt/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z?ÿ8s?bý>hdÓ=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R>iJ >¦Z?/d#@ŒS'?±K]?‡þ=?©C@¨(º?Hm;= ­?>2Ä?ó¼?Šª>…žÁ>íEc?½Šý?‹!²>ò >*z?•ç™?³OÆ>mÇš>ü6†?&õ?gÚ?³ù?‘x?FKà>™[ ?œ G?4”Î?—ØY>L=e?Æ> Ä?õ—?kÞæ.:ˆ=™Ýš>ïb"?6¹¹> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sqrt/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sqrt/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..292f9e1796e40ee317e4098cc2d2d5d0347870cb GIT binary patch literal 254 zcmVyKX;h2J{OKEKa}7TKPYvaKS${2J^(!rKbn?oKlg;p zKd$#qKO+QgKb(qOKTX%bKS5oZKiUghKKX;)K9hK!KWr$QKUs>&K2U8PKb19cKky~A zKhFOaKPq#|KEwHqKOb9+KetjJKMcVPKM)dwKhuYpKld`HKOV=jKO4d}KW=a-KdwZN zKcu>0KRcYFKU^p5J|IAHKVCc^KmPVMKe7~yKbPk#K4gn0Kd}siJ|N2sKeyvcKLsxu EKQbg_ivR!s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/model.onnx new file mode 100644 index 000000000..8236f8c45 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:C + +xy"Sqrttest_sqrt_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a9e7f45d264e52a60ae59fa7e0e8d1ac0c097778 GIT binary patch literal 21 acmd;J7GQK@tnlJtU}&%hVh08W0Y?BHH3I$s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sqrt_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1b32d5d7420ab29b1d5add5669908677c0c5b7e9 GIT binary patch literal 21 acmd;J7GQK@tn}hxU}&&sU|?_nA_o8)qXMn~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_squeeze/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_squeeze/model.onnx new file mode 100644 index 000000000..26798f82e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_squeeze/model.onnx @@ -0,0 +1,19 @@ + backend-test:o + +x +axesy"Squeeze test_squeezeZ +x + + + + +Z +axes + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/input_0.pb new file mode 100644 index 000000000..09d5a14a4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ec9874a7b23bdc41efa2b3dcca6d1c221235b1a3 GIT binary patch literal 20 Vcmd;J6kvB^NvudM_TpfG0stQQ0%`yN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad67ee7f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_squeeze/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/model.onnx new file mode 100644 index 000000000..e148d48ca --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/model.onnx @@ -0,0 +1,19 @@ + backend-test:} + +x +axesy"Squeezetest_squeeze_negative_axesZ +x + + + + +Z +axes + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/input_0.pb new file mode 100644 index 000000000..55c2bdcf0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/input_1.pb new file mode 100644 index 000000000..2f4bbd39a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BaxesJþÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ed4b2d0f6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_squeeze_negative_axes/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/model.onnx new file mode 100644 index 000000000..07c9b4e37 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/model.onnx @@ -0,0 +1,14 @@ + backend-test:Å +j +xy"StringNormalizer* +case_change_action"LOWER * +is_case_sensitive * + stopwordsJmonday 5test_strnormalizer_export_monday_casesensintive_lowerZ +x + + +b +y + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/test_data_set_0/input_0.pb new file mode 100644 index 000000000..179b510f5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +2monday2tuesday2 wednesday2thursdayBx \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cdc27a745 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_lower/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +2tuesday2 wednesday2thursdayBy \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_nochangecase/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_nochangecase/model.onnx new file mode 100644 index 000000000..fa9c6e29d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_strnormalizer_export_monday_casesensintive_nochangecase/model.onnx @@ -0,0 +1,13 @@ + backend-test:¬ +J +xy"StringNormalizer* +is_case_sensitive * + stopwordsJmonday “Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1424d7297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sub/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad0a46bf4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sub/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJðÔï@a|B?w\å?5æ}@>VØ?ÄS¿k#%@>8¿(ØM?b¡·>¤Å¿£©?̸Á¾Ò¡­?*=³]‚?"Z@{T¿>ç?ßi¿½¤±¿$}¾,Ì>½HK?ŒH?”jVÀÖ‘¿ Ýí»D &@´nÔ>=á?æ"X¿¸KŒ¿ F=ÀšK4¿~Û ¿"œ?¦_¿)¥¿}L4¿¡;À€ü“½<ß¾¢;{??Ù)?³mÀCÔV¿h1Ã?–[bÀ•¼Ø¿iÕ0À€æ¿Rj³>üÍEÀ­“u>?¿¾Õwa¿;ê>žËŸ¿,y¤¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/model.onnx new file mode 100644 index 000000000..4cf126e7c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/model.onnx @@ -0,0 +1,18 @@ + backend-test:c + +x +yz"Subtest_sub_bcastZ +x + + + +Z +y + + +b +z + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/input_1.pb new file mode 100644 index 000000000..dcbe531c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub_bcast/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d037b77fc25219fd64f63459f8028dedb503a973 GIT binary patch literal 254 zcmV|p4zPMXtzPJ}ZKX%NTKEAIDKLCqTzQg8>KjtOcK9tOkKU~F&KWIn_ EzdEjTQ~&?~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sub_example/model.onnx new file mode 100644 index 000000000..8071c8ca5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sub_example/model.onnx @@ -0,0 +1,16 @@ + backend-test:U + +x +yz"Subtest_sub_exampleZ +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..62e4e87e30c2908b48e0e912c49f073faf7953fd GIT binary patch literal 21 acmd;J7GQK@tnlJtU}&&sU|?_nA_o8)lme{) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ce0065b3858cb75c730fdc1dcb23c7f5d1e287bf GIT binary patch literal 21 acmd;J7GQK@tn}hxU~q6?01^xg4fX&Ts{*b7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e2d77723862c9fd7bc43d71add487f8d7d7f3238 GIT binary patch literal 21 Ycmd;J7GQK@tn%VvU|=`^#30}R02zA%FaQ7m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/model.onnx new file mode 100644 index 000000000..fefec3b64 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/model.onnx @@ -0,0 +1,19 @@ + backend-test:k + +x +yz"Subtest_sub_uint8Z +x + + + +Z +y + + + +b +z + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/input_0.pb new file mode 100644 index 000000000..869287523 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<      \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7066e13c275b1e8536ccefa34f6f3c369c566d9f GIT binary patch literal 73 zcmV~$u>pVp2m>%nK?+?w$jQ-<{N6-Vs;+qOy?16Aa~@!kt0pvw(R#4argOa^Mbl=Z JJ!9mS{R4->0{Q>| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/output_0.pb new file mode 100644 index 000000000..75d09ba75 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sub_uint8/test_data_set_0/output_0.pb @@ -0,0 +1,8 @@ +BzJ< +   +   +     + +  +    + \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sum_example/model.onnx new file mode 100644 index 000000000..9423e1eb0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sum_example/model.onnx @@ -0,0 +1,21 @@ + backend-test:‘ +% +data_0 +data_1 +data_2result"Sumtest_sum_exampleZ +data_0 + + +Z +data_1 + + +Z +data_2 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..20406f1dc46bcce42b98bda21f213d959289ec04 GIT binary patch literal 26 ccmd;J7GQK@OGzwAj5qM&VPJ4@V1NJz066*sqyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e6c4d118d7b1a92baa67e80234bbf349e722a062 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qY+VPI&mXJBw}0MZTsKR^WJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..81b00338e8b588fc3aa50a8c73b212882e08cc19 GIT binary patch literal 26 dcmd;J7GQK@OGzwAj5qS)VPIfzU|=`^#sEFo1ttIh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sum_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..17070ed435a979166ca70669b37114cbb576ac67 GIT binary patch literal 26 hcmd;J7GQK@D@rXc%_;HXVPH7mz`!8j$iU#>2mnWt1uOsn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/model.onnx new file mode 100644 index 000000000..ce89e7112 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/model.onnx @@ -0,0 +1,11 @@ + backend-test:W + +data_0result"Sumtest_sum_one_inputZ +data_0 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..20406f1dc46bcce42b98bda21f213d959289ec04 GIT binary patch literal 26 ccmd;J7GQK@OGzwAj5qM&VPJ4@V1NJz066*sqyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sum_one_input/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf4d7ffcfdacdd20cddceab74a940cc9ab131001 GIT binary patch literal 26 ccmd;J7GQK@D@rXc%_;HXVPJ4@V1NJz06=U68UO$Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/model.onnx new file mode 100644 index 000000000..29e94ea74 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/model.onnx @@ -0,0 +1,16 @@ + backend-test:v + +data_0 +data_1result"Sumtest_sum_two_inputsZ +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..20406f1dc46bcce42b98bda21f213d959289ec04 GIT binary patch literal 26 ccmd;J7GQK@OGzwAj5qM&VPJ4@V1NJz066*sqyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e6c4d118d7b1a92baa67e80234bbf349e722a062 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qY+VPI&mXJBw}0MZTsKR^WJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sum_two_inputs/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f7b367cec73b94695a38507aa064887bb0a31670 GIT binary patch literal 26 fcmd;J7GQK@D@rXc%_;HXVPI%*U|?_n;sXu“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tan/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tan/test_data_set_0/output_0.pb new file mode 100644 index 000000000..e1a4ad5cf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_tan/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðR„£À¥Ø>±R¾?=ˆ¡¿úJQÀf¹½¿Ä³?-/¾k%Ô½FåÞ>€‡>ª°A[Òs?pmú=Þuó>5z±>&PAzU¾Á½¥>sê’¿…ã*?üD?!–?ïÄj¿äI˜¿¥ÌÁÌŽ;=]òA¾‡TÒAñ0AÂò>ÄhË>´P¿P@@!¯¹¾6k!>†¢4@êÈ%@¨ÜоD¬Ÿ¾ëeÞ¿ ŸÒÀÔÂê@¸> À7¿Öï¾RmBÀŸû{?Y~¹Ap1]¾˜ÎŸ¿Ì›Ð>pw¿ÔŸÀîæ¼òÇé>´mˆ=˜ÄŸ>xZ<¿~R¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tan_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_tan_example/model.onnx new file mode 100644 index 000000000..ff7d2e6f3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_tan_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:A + +xy"Tantest_tan_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tan_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tan_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8a9445744b63f66e76c3ef4fce746606ffc6f47e GIT binary patch literal 21 Ycmd;J7GQK@tnlJtU})IS00s^A03TBWEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tan_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tan_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..92f2324117e92e34bf4c44b855be55129b6826ea GIT binary patch literal 21 Zcmd;J7GQK@tn}hhjy%4f0SJJ!Jpd`h1hW7D literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tanh/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_tanh/model.onnx new file mode 100644 index 000000000..3fe77ec1e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_tanh/model.onnx @@ -0,0 +1,13 @@ + backend-test:K + +xy"Tanh test_tanhZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tanh/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tanh/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_tanh/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tanh/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tanh/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..827ec7a1fb77e8e4a689f174711cf035bb68e589 GIT binary patch literal 254 zcmVDuwCX6^?1oL7{J=MD z-tb!Ljor?0k8pO)CZ2aYwdbYz)OI%T*xQxt p+?HEzbp2f@|Gx_b9zU*p{RvBGoKl722xrr;|sD(2~ z21LpmHa=o)q&ld;5nvcW0x4v{am&tkUAN`hxTgmjwe+Y00SXxq?<(#?F76sFo3B$8 t-}6eidd>Gn3nMEXF0e7egNI>aPil>0!K|FXGdJw#q(t25v?4~YFc1yBK^}h)DLH;PS zTkzs>zW3hDJQie0SyX$e#hsPCefp;GLx5~DvR$OB`bE@hSy|JmFWKeSkhaB<@4BMp zjnq5)Hm3uj`4wC^-tX0cSLR*Y`NUyoSNgww24QQ2T+r3?K!P!yXur}&dz@f6kT}1A z*$FEx=*DoQIr4x literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_only_bigrams_skip0/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_only_bigrams_skip0/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26da97aeb545695c72b32d1a75b8279360f8e49c GIT binary patch literal 57 mcmd9o4+e4*-ll9;4 fu*I%-hxat31z>EJO@Xqc@?bpzGJ@!tUY-8}_v%qa literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_levelempty/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_levelempty/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26da97aeb545695c72b32d1a75b8279360f8e49c GIT binary patch literal 57 mcmd2iAhB17vRFy%6sw6{B?c8fONV?QJ`}Ml zu`u56y?1wy1$kPP^+sxOW948U_7r{ykk_277TL0S7R`&St?AXb?28M?x^la~5J(~;2P98Mh{Hfqaj^P%lLa@g6G{%@Z_*cl-gbon%rU`nUjuk_IYk1!lbQe499 zfRz?vwOND-OU|oQFVJT1{Z(0r4Ptq-V#!mse3e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_skip5/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tfidfvectorizer_tf_onlybigrams_skip5/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26da97aeb545695c72b32d1a75b8279360f8e49c GIT binary patch literal 57 mcmdm1n)(xmnF$=>e6PnBwHzdn350Vhcdeb zp~v~X_h#m?AWy5ZUP~?Rt?cddfx<5V@{yC}JX2fjR2C%;(l5j%z`-cQ!^OnG48$xz%$fw0sKh4W#3aB4 E0CzwfjQ{`u literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..785eddacc67ecc5a5f21694b97b12e331fdd8b32 GIT binary patch literal 254 ocmd;J=3wDq6<~B?tn~W8$bbY+XYo5AajC*w=`2WfGbwQx031jJ?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/model.onnx new file mode 100644 index 000000000..9ff869e13 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/model.onnx @@ -0,0 +1,13 @@ + backend-test:i + +xy"ThresholdedRelutest_thresholdedrelu_defaultZ +x + + + +b +y + + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_default/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..199a6a13895ab1fdbaa73238767bc104d455ac38 GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8SaIf|Jp&Y+&f<4a;du||!^C0qBGp|Oa(`_1V~D}jgXopc lf)2=h8KWcipN03})T323*M92rnONnSHvhybj%+?5HUQg~6}kWb literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_example/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..0f669d7e06e205cd74355b5da27fc7bcd8a844b0 GIT binary patch literal 128 zcmd;J5#mWoOwLZtOVKS!EiSRj;?m$^tPo2fjR2H9Fk(gVMlN!YjGKY(cgM(3sg^P)UH3=wCi7ep6 HB)|m#3N{}) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..13c6863dca3910b8274da1bd1d112c0c4fc2258d GIT binary patch literal 29 icmd;J6<~B?tnd literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_thresholdedrelu_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1734d481ce09c690f91f7dd32c23d63dc2bd4b98 GIT binary patch literal 29 Xcmd;J6<~B?tn?CLKm%vb@HhYfBD4b@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tile/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_tile/model.onnx new file mode 100644 index 000000000..1c48fb69b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_tile/model.onnx @@ -0,0 +1,21 @@ + backend-test:g + +x +yz"Tile test_tileZ +x + + + + +Z +y + + +b +z + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/input_0.pb new file mode 100644 index 000000000..7a5f0f874 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJà  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..33f6604a92a9882160219807764a3d50b0153eea GIT binary patch literal 41 bcmd;J5ny*>tn^Y~XMg}UD9r+;nV>WPFL(i6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/output_0.pb new file mode 100644 index 000000000..dc79fc5ec --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_tile/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ + +BzJ€ì  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?  ?¦7?³N?w} ?HéØ>  ?¦7?³N?w} ?HéØ>QY%?n à>QY%?n à>~®J?¨e?^k?çól?Z{‘=~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?»†z?¨•L?Gì>ÃÐG?Ý9ò=»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>k¸>§Âß>õ—2?ü®v=9±*?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=ìÈ">] â=7(?Õ >ãLI>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=??ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤GÔ>Ã_ƒ=ÚE1?Ë ?±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤¶%?•¸¤Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1?b…-?|>Š>­5b…-?|>Š>­5 ???ƒod>\çs? ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/model.onnx new file mode 100644 index 000000000..ae4be32da --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/model.onnx @@ -0,0 +1,16 @@ + backend-test:c + +x +yz"Tiletest_tile_precomputedZ +x +  + +Z +y + + +b +z +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..188fd6ddef5fe097f2f2d192becdab2c5a031c87 GIT binary patch literal 27 bcmd;J;$RYBbYiUV5?}y>274go07MP|A%+6F literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d57e6d6e9ce5cde07d0a49ddd9bea234cc5e58c6 GIT binary patch literal 25 Vcmd;J5@2^?tn?CKVt@b`4FDJj0XzTz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tile_precomputed/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..449a9c05ca8860111a80cfa8d782dfd6618fad75 GIT binary patch literal 75 jcmd;J;b0M9bYiUXa$o?1274qLDCPjf3@{qV#4Qg16|@I! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_top_k/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_top_k/model.onnx new file mode 100644 index 000000000..79731ef9f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_top_k/model.onnx @@ -0,0 +1,22 @@ + backend-test:“ +* +x +kvaluesindices"TopK* +axis  +test_top_kZ +x +  + +Z +k + + +b +values +  + +b +indices +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_top_k/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_top_k/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3a5dd6da89853cbf0ca66e6832f5172a89c16141 GIT binary patch literal 59 xcmd;J=3o(EbYiUVGGG9M274go07O9C0K^M`_y7<;0AdD51_l8jRsdoHM*!aJ2mt^9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_top_k/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_top_k/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1e2082fc759a47d6c8467253c0b030d630e71f9e GIT binary patch literal 17 Tcmd;J6kvB^%=Y47W`Fi#;c?C>^L%f&s+m)y`A9nU@})0#Oqs4%8|n#3jJND8$3X#K8>2EI`Z}#SJu2h>eQ{ ZD8T^Ylz=&$LJUbjEtS}`I57$E001{k9GU“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2c1bf8de7e70a638b5684037c0b9744847dac05e GIT binary patch literal 11 ScmWe&bYd*>Vqsu#um=DL%mI`D literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/input_2.pb new file mode 100644 index 000000000..f66a23b9b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/input_2.pb @@ -0,0 +1 @@ + BtJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dcbd20d5a98f65c2e145df9c856bf792a6abd72e GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8$bcO*fP|C&O6|``xx5d=)@Ts62hkvKz~HAHgasj)M1%Hc zdM&VLT^4mfKSlXqPq4ZJNT&Ut?Ew%C1PvfUVXggs5Df#Z^A3W{Y(T;=DTdAd$3SY4 Z9nU@})0#Os6lA4xSno|-b4m3hYh)aNjQHY0&iGvx4S%8=| hiW_LK5E~Z@P=W!(DFJghg&2~6S}L(=abgnS0RRX2AMOAE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..b5d0231aeb9e53e6bb1eb225454c021a8ca3f764 GIT binary patch literal 11 ScmWe&bYd*>Vqsulum=DLOaW8? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_2.pb new file mode 100644 index 000000000..f66a23b9b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/input_2.pb @@ -0,0 +1 @@ + BtJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..579996a550b74168c164e6309cfea8d1b9df0ad0 GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8SaBxNA>*Ns{p7x1_NTM@9T0QUAUf&qtbG|N!TUgL zjfTl~i&U)~;w~SuKVVR42NHt;Cecg#GQAY+S(n|~ub;B`Ku_>;dyriFzrA2{R%loq z0Pz*p?%yY4“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..b5d0231aeb9e53e6bb1eb225454c021a8ca3f764 GIT binary patch literal 11 ScmWe&bYd*>Vqsulum=DLOaW8? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/input_2.pb new file mode 100644 index 000000000..f66a23b9b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/input_2.pb @@ -0,0 +1 @@ + BtJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_default_mask/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..579996a550b74168c164e6309cfea8d1b9df0ad0 GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8SaBxNA>*Ns{p7x1_NTM@9T0QUAUf&qtbG|N!TUgL zjfTl~i&U)~;w~SuKVVR42NHt;Cecg#GQAY+S(n|~ub;B`Ku_>;dyriFzrA2{R%loq z0Pz*p?%yY4“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2c1bf8de7e70a638b5684037c0b9744847dac05e GIT binary patch literal 11 ScmWe&bYd*>Vqsu#um=DL%mI`D literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/input_2.pb new file mode 100644 index 000000000..f66a23b9b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/input_2.pb @@ -0,0 +1 @@ + BtJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_mask/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dcbd20d5a98f65c2e145df9c856bf792a6abd72e GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8$bcO*fP|C&O6|``xx5d=)@Ts62hkvKz~HAHgasj)M1%Hc zdM&VLT^4mfKSlXqPq4ZJNT&Ut?Ew%C1PvfUVXggs5Df#Z^A3W{Y(T;=DTdAd$3SY4 Z!mjDN&5Dym<2Qv_} k05NM6H_&V$HZB&R1Otdu0_JcEF(d)CRASTO#3aB20LVrmO#lD@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a1b82ab9d8ad8103c8a4c54c02f02bbd3f6cda67 GIT binary patch literal 11 QcmWe&bYd*>VqpLR00<2M6#xJL literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_2.pb new file mode 100644 index 000000000..f66a23b9b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/input_2.pb @@ -0,0 +1 @@ + BtJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad67ee7f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6731f32062d827e420cf8c5b97e63e3afc29c9e2 GIT binary patch literal 202 zcmd;J7vf1uOwLZtOVKS!EiSRz%*dt6#aO|`Sj5FxBE(oJ#8{=o?oyOrkY8G&#m&W1 zoSK>KE9+VF*7eSFFig5q9(p7wJ1NnD6u3nKR!3HI6F!lXqu1^mjDN& z5Dym<2Qv_}05NM6H_#3tHZB&R1Otdu0_JcEF(d)CRASQtlBfbpaH5*!#3aB202~7) A!2kdN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a1b82ab9d8ad8103c8a4c54c02f02bbd3f6cda67 GIT binary patch literal 11 QcmWe&bYd*>VqpLR00<2M6#xJL literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_2.pb new file mode 100644 index 000000000..f66a23b9b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/input_2.pb @@ -0,0 +1 @@ + BtJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ad67ee7f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/output_1.pb new file mode 100644 index 000000000..de98527e0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_training_dropout_zero_ratio_mask/test_data_set_0/output_1.pb @@ -0,0 +1 @@ + BzJ< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_0/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1b0e50c6d3a8523c06c70ffdbafa9434a25eaa95 GIT binary patch literal 168 zcmd;J7UD@tOwLZtOVKS!EiSQ|$jGI~#gdX(k|@MgQk0liT##R!nxe!R0%L3ObFmbp z7UeoHI50XeEns99QUqy?hbxXx%*lxdsVFT;EXmBzD~>mal7bp3#3jJND8$3X#K8o_ U%s|YNq`-w_kq{OYPD}!v0RB5E!TQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_0/test_data_set_0/output_0.pb new file mode 100644 index 000000000..36a37a6fe --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_0/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +B +transposedJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_1/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..0648cd5e35a9b82b4b32316ffac3e6787d6f0b63 GIT binary patch literal 168 zcmd;J7UD@tOwLZtOVKS!EiSQ|$jGI~#gdX(k|@MgQk0liT##R!nxe!R0%L3ObFmbp z7UeoHI50UdE?{IAQUqy?hbxXx%*lxdsVFT;EXmBzD~>mel7bp3#3jJND8$3X#K8o_ X%s|YNq`-w_kr1j17LY0@CILQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..6c4bed4b5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_1/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +B +transposedJ`  ?HéØ>š²v?¦7?QY%?rRÄ>³N?n à>~®J?w} ?Ùp²=¹^?ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7971bc3f0ad6205c5e16990b2c63ac50f210a3a3 GIT binary patch literal 168 zcmd;J7UD@tOwLZtOVKS!EiSQ|$jGI~#gdX(k|@MgQk0liT##R!nxe!R0%L3ObFmbp z7UeoHIxsjeEns99QUqy?hbxXx%*lxdsVFT;EXmBzD~>mcl7bp3#3jJND8$3X#K8o_ Z%s|YNq`-w_kq|-!NEW1u#feFP69E3lDZ~H( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/test_data_set_0/output_0.pb new file mode 100644 index 000000000..931c9d04d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_2/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +B +transposedJ`  ?¦7?³N?w} ?^k?çól?Z{‘=Ùp²=HéØ>QY%?n à>~®J?¨e?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..05e7a313a0ae35c6a946340f93e9a34ab59486d1 GIT binary patch literal 168 zcmd;J7UD@tOwLZtOVKS!EiSQ|$jGI~#gdX(k|@MgQk0liT##R!nxe!R0%L3ObFmbp z7UeoHIxsmfEMR08QUqy?hbxXx%*lxdsVFT;EXmBzD~>mgl7bp3#3jJND8$3X#K8o_ Y%s|YNq`-w_kq|-!SQezxiAjJH0RI*##Q*>R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/test_data_set_0/output_0.pb new file mode 100644 index 000000000..fcc0cd0dc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_3/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +B +transposedJ`  ?^k?¦7?çól?³N?Z{‘=w} ?Ùp²=HéØ> ¡¥H5G?¨•L?~®J?Gì>¨e?ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..36e66e8b59b520a6333cc40b3d9b1db8d0c4c634 GIT binary patch literal 168 zcmd;J7UD@tOwLZtOVKS!EiSQ|$jGI~#gdX(k|@MgQk0liT##R!nxe!R0%L3ObFmbp z7UeoHIWRadE?{IAQUqy?hbxXx%*lxdsVFT;EXmBzD~>mbl7bp3#3jJND8$3X#K8o_ X%s|YNq`-w_kq|-!3rv+0lK>|G|5+)< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c17d014b8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_4/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +B +transposedJ`  ?HéØ>š²v?^k? ¡¥<»†z?¦7?QY%?rRÄ>çól?“&U?¨•L?³N?n à>~®J?Z{‘=H5G?Gì>w} ?mfl7bp3#3jJND8$3X#K8o_ Y%s|YNq`-w_kq|-!3seP@6O#ZZ0RN&X#{d8T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_5/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_5/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_5/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_5/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_5/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cb9b3bab2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_all_permutations_5/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +B +transposedJ`  ?^k?HéØ> ¡¥<š²v?»†z?¦7?çól?QY%?“&U?rRÄ>¨•L?³N?Z{‘=n à>H5G?~®J?Gì>w} ?Ùp²=QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_transpose_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_transpose_default/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cb9b3bab2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_transpose_default/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +B +transposedJ`  ?^k?HéØ> ¡¥<š²v?»†z?¦7?çól?QY%?“&U?rRÄ>¨•L?³N?Z{‘=n à>H5G?~®J?Gì>w} ?Ùp²==@H@*-~bxO#l*o3#Ed}9ngo=n#3tdyB)|s%hmjb+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tril_one_row_neg/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tril_one_row_neg/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..cfa55bc2e94b36fae013e4b38058c2c5a6371012 GIT binary patch literal 133 zcmd;J=3wMt6<~K_tnjK}Wk3bYP%eyShw?em#9{iFpyDi08m68N%I83%8KHat<7WZ= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tril_one_row_neg/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tril_one_row_neg/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..acfbd93d2eec2af64197370c5bdcefa5f49488f0 GIT binary patch literal 133 fcmd;J=3wMt6<~K_tn{j2Wgrf45~qxTok(>6+0p^b literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tril_out_neg/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_tril_out_neg/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..ac7cec8729172d25cc57553fc1f41f165ac6fc2f GIT binary patch literal 128 zcmd;J7vf1uOwLZtOVKS!EiSRj;*#THtl(nI7GkVaVht(E%qi94;bJWN@X#v;( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tril_out_pos/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_tril_out_pos/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..597b9d910973c67e191ba853857fdc27d75fa6c7 GIT binary patch literal 128 zcmd;J7vf1uOwLZtOVKS!EiSRj;*#THtl(nI7GkVaVht(E%qi94;bJW0^ScfH2shd^RY}fkrc;$-~scXqbAK FIsisl0xkdm literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tril_square/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_tril_square/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d724d3227614675aa028fa0b5c6ec3dec6d9177b GIT binary patch literal 119 zcmd;J7vf1uOwLZtOVKS!EiSQ2eb7vd7&0Gh9P? D8~_3k literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tril_square_neg/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_tril_square_neg/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5cf2e1c6677650cbf024ebfd0cbfb40cd9280991 GIT binary patch literal 139 zcmd;J7vf1uOwLZtOVKS!EiSPt<&xuKtl(nI7GkVaVht(E%qi94;bJWw8`Cb|R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tril_square_neg/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tril_square_neg/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1568e16ad70924ef2fbcc76b641bd3f6fa95187d GIT binary patch literal 158 zcmd;J;$Y@r7GQT`tniw^$jX2Un4w%4%?{;rqKU)wF+s&ypfpT98Jpcdz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tril_zero/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_tril_zero/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a86e8a1db9aaf6dab302c01115863a9290a17f4e GIT binary patch literal 15 RcmWe&cVf);;$UNd000cU0UiJV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_tril_zero/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_tril_zero/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8e360928f26fd7fc456cc94b7feba6c0aa745334 GIT binary patch literal 13 Ucmd;J=3wAp6<~K_tn^|400l?^J^%m! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_triu/model.onnx new file mode 100644 index 000000000..705506d86 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_triu/model.onnx @@ -0,0 +1,11 @@ + backend-test:D + +xy"Trilu test_triuZ +x +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_triu/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a6f69b05f97cf95881085bc68d165a31d7401f77 GIT binary patch literal 172 zcmd;J;b0YDcVevYTENK4fC`wQTo}y`<#VEm!}Kvh#aW;eJ_lfXfvs{;T+ CK>`v0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_neg/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_triu_neg/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3d805bec0319756ce4a9151c92b8a8b53922437a GIT binary patch literal 110 zcmd;J7vf1uOwLZtOVKS!EiSQ&;1b|stl(nI7GkVaVht(E%qbP(1$Z}F>4ezNDCVm3s8_D380T}=Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_one_row/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_triu_one_row/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0744d8e87928d66696cd937b00008b05cd6dfb18 GIT binary patch literal 133 vcmd;J=3wMt6<~K_tn{j2Km*KBK8$9^AJLLojb9u9UP4lX7R79eJg;s$AD<6;2{G9&?2RHCbJViMp30Jtm`@c;k- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_out_neg_out/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_triu_out_neg_out/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a6f69b05f97cf95881085bc68d165a31d7401f77 GIT binary patch literal 172 zcmd;J;b0YDcVevYTENK4fC`wQTo}y`<#VEm!}Kvh#aW;$Z}F>4ezNE;g$3s8_D38N@X#v;( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_pos/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_triu_pos/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2b32b6bd8abc33c75bb3532a77c14b4609bf7d88 GIT binary patch literal 110 zcmd;J7vf1uOwLZtOVKS!EiSQ&;1b|stl(nI7GkVaVht(E%qbP(1$Z}F>4ezNDCVm3s8_D38`*=@nmCNh1ZA*5X_$I8m;xxx0i_wy#9>^R FJ^&q<0tx^C literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_square_neg/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_triu_square_neg/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..822c69a789a5ee462a09a76ee822f8eddfd700e0 GIT binary patch literal 125 zcmd;J7vf1uOwLZtOVKS!EiSQ2=Mvyztl(nI7GkVaVht(E%qbNT0m;Od6lIpi7Z;W$ y7Ny4LrKU%T1Jwx$aS3n$jo@P9U;<)h5RT#o>1N|%0ZK3=0aaCEQ{}`Yzy|<2J{G?K literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_square_neg/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_triu_square_neg/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1568e16ad70924ef2fbcc76b641bd3f6fa95187d GIT binary patch literal 158 zcmd;J;$Y@r7GQT`tniw^$jX2Un4w%4%?{;rqKU)wF+s&ypfpT980^S5vp{K>dNwGZ1C3^c@?jKA HJ&XnbBB%l( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_zero/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_triu_zero/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..8e9762aed1769214d789a8afca8ee561323b51a5 GIT binary patch literal 111 zcmd;J7vf1uOwLZtOVKS!EiSQ&w8kCqej literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_zero/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_triu_zero/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c30a05280b593bfb6c378059775729ed4708a1ef GIT binary patch literal 11 Scmd;J;9wPCcVevYVgLXHw*fK$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_zero/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_triu_zero/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a86e8a1db9aaf6dab302c01115863a9290a17f4e GIT binary patch literal 15 RcmWe&cVf);;$UNd000cU0UiJV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_triu_zero/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_triu_zero/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1975dd0e46f5898a7c20343238904929f79dad9d GIT binary patch literal 11 Scmd;J;9wPCcVevcVgLXHx&bo) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6fa2028d71076dccd24442d2c6ab564968c3ba63 GIT binary patch literal 235 zcmd;J72-)sOwLZtOVKS!EiSRT!pLRM#TX&P7%9Y_nU|88oLVfzpP5&dT2!1G4-;TZ z&M(a?DOO?&&C4t-P1WM%Vk^!sDoIU|U|7J&B%};7DZUge7oV435)YA#FV8H=$S*C4 zPprr+j^YQ|!o|hG!6?MS#l*pu1Qduw5@1OZ<$}8aq>de|jwMN!3&TAKX|^O0E~x9k MW&&*57OinHKQec1rMkvh;rCFdf0FDX+z5oCK literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_unique_not_sorted_without_axis/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..03a9fb8afa141d6b00c8fca8656d4787d024e8bb GIT binary patch literal 71 qcmd;J6JU4Z&&(@JEhOU^IND=GF;U}S&*CNvr*4gi8919$)c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e8a2a5aba5671db2da0939b0f4bfe585b5c8ced4 GIT binary patch literal 249 zcmd;J72-)sOwLZtOVKS!EiSQo#K`5t#TX&P7%9Y_nU|88oLVfzpP5&dT2!1G4-;TZ z&M(a?DOO?&&C4t-P1WM&Vo9vXES6wcz{sS<%f(ilUsRHsBEbmc3dw+sjV}c&jE6|X zmuHq_#DjE134`q7pF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d679fa0bac045f702df973d32310e3246a90bf39 GIT binary patch literal 31 bcmd;J5@2^?&&*57OinHK5@3J=CMXR6Q3eC1 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..ae8834e205cb2d4e39a5a1f20ad4764bac2f0e3f GIT binary patch literal 47 jcmd;J7GQVc&&(@JEhK0D}g51_l^raDcEu5->3k4G{+b(hdi| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis_3d/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_axis_3d/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..73c400b427ba5d0c12a438abd44d0696eb9d6b09 GIT binary patch literal 39 ccmd;J7GQT`&&*57OinHKl3-*&1x!#b0B1#Wp)E? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/model.onnx new file mode 100644 index 000000000..248e95902 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/model.onnx @@ -0,0 +1,25 @@ + backend-test:ô +U +XYindicesinverse_indicescounts"Unique* +axisÿÿÿÿÿÿÿÿÿ * +sorted %test_unique_sorted_with_negative_axisZ +X +  + +b +Y +  + +b +indices + + +b +inverse_indices + + +b +counts + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f33ae1108ae68de78c119f5e72edb22aa9bf566f GIT binary patch literal 47 hcmd;J=3o|JbYhI~Qej|duxEe+WHy5X1A_w?0{~uA1MdI; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d06b0dcf500769e9bfaa18979efca86196ce2cff GIT binary patch literal 35 dcmd;J=3o+FbYhJ3l3)OX273hU-~ePh001{K17iRH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..51a5f2848137097d6ce35bb1cbc19af32aa72089 GIT binary patch literal 31 Zcmd;J5@2^?&&*57OinHK5@2LN1prY71El}} literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_unique_sorted_with_negative_axis/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..21d3dd96c3456cc8b398eceeb5a8cfab4c106bb7 GIT binary patch literal 47 hcmd;J7GQVc&&(@JEh&&*57OinHKQeb321OU^IND=GF;U}As(MktNW2LOUA19$)c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/model.onnx new file mode 100644 index 000000000..8a9a742e7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/model.onnx @@ -0,0 +1,19 @@ + backend-test:z + +x +axesy" Unsqueezetest_unsqueeze_axis_0Z +x + + + +Z +axes + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ec9874a7b23bdc41efa2b3dcca6d1c221235b1a3 GIT binary patch literal 20 Vcmd;J6kvB^NvudM_TpfG0stQQ0%`yN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5cfc6bead --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_0/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/model.onnx new file mode 100644 index 000000000..8802e0411 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/model.onnx @@ -0,0 +1,19 @@ + backend-test:z + +x +axesy" Unsqueezetest_unsqueeze_axis_1Z +x + + + +Z +axes + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..31799432830506cff63208274e24952586e34bda GIT binary patch literal 20 Wcmd;J6kvB^NvudM_Tpe“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/model.onnx new file mode 100644 index 000000000..2a9858109 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/model.onnx @@ -0,0 +1,19 @@ + backend-test:z + +x +axesy" Unsqueezetest_unsqueeze_axis_2Z +x + + + +Z +axes + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e8256ea4dee5836050a3f38e60689bcd2ff89ba2 GIT binary patch literal 20 Wcmd;J6kvB^NvudM_Tpe-fB*m=2?A^Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4e331e4bd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_2/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/model.onnx new file mode 100644 index 000000000..13437cae7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/model.onnx @@ -0,0 +1,15 @@ + backend-test:m + +xy" Unsqueeze* +axes@ test_unsqueeze_axis_3Z +x + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5b5348d4f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_axis_3/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/model.onnx new file mode 100644 index 000000000..3ac7c8d94 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/model.onnx @@ -0,0 +1,21 @@ + backend-test:‰ + +x +axesy" Unsqueezetest_unsqueeze_negative_axesZ +x + + + + +Z +axes + + +b +y + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/input_0.pb new file mode 100644 index 000000000..55c2bdcf0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/input_1.pb new file mode 100644 index 000000000..2f4bbd39a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BaxesJþÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4ef93c72b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_negative_axes/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/model.onnx new file mode 100644 index 000000000..4602f2246 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/model.onnx @@ -0,0 +1,21 @@ + backend-test:† + +x +axesy" Unsqueezetest_unsqueeze_three_axesZ +x + + + +Z +axes + + +b# +y + + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7fff38d7375acbfd1fe832924bad93e92880f46a GIT binary patch literal 36 bcmd;J7GQT`NvudM_L5*?fB+UK%?hOfNCyIk literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/output_0.pb new file mode 100644 index 000000000..6c8b8816a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_three_axes/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/model.onnx new file mode 100644 index 000000000..9c9e4100e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/model.onnx @@ -0,0 +1,20 @@ + backend-test:€ + +x +axesy" Unsqueezetest_unsqueeze_two_axesZ +x + + + +Z +axes + + +b +y + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..bcf4f4e739c8a7f560d5344708abc2b260ac4ed9 GIT binary patch literal 28 Zcmd;J5@2^?NvudM_7Y%ZfB+UK4FEG70(bxb literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0f34445df --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_two_axes/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/model.onnx new file mode 100644 index 000000000..9b5f8bc12 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/model.onnx @@ -0,0 +1,21 @@ + backend-test:‰ + +x +axesy" Unsqueezetest_unsqueeze_unsorted_axesZ +x + + + +Z +axes + + +b# +y + + + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_unsqueeze_unsorted_axes/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..b22e7e7720a513ef200332de6efbbfc166685a2f GIT binary patch literal 36 bcmd;J7GQT`NvudM_L5*_fB+UK%><“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b049f2209454ad7c4a5c6ea903682612ade5aa49 GIT binary patch literal 174 zcmd;J5#mWoOwLZtOVKS!EiSQ|%E+a|#TdcGR-BxelUgjq7^%b&T2P#rTac5gCB(&& zo1c=Z#GaR$SOiqPfRR~96r?S_6sja1Dib9QG(<>@ON4__NPvrpgAt0EfHYH-2;6us bE)Jjy7N96g5>QJd7A+u2HYXM?1_4e0+^ZsS literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b41f51bede6ead3f8a69cbf9971163bae3a56572 GIT binary patch literal 31 jcmd;Jn+a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_upsample_nearest/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..617f1279225147a7ed73f6cb00d503e82c74289d GIT binary patch literal 111 zcmd;J4Uut#792L=Wh#wG3mR0G2eKsF4+#6UDmtib^Q{FDy< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_where_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_where_example/model.onnx new file mode 100644 index 000000000..94e449818 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_where_example/model.onnx @@ -0,0 +1,21 @@ + backend-test: + + condition +x +yz"Wheretest_where_exampleZ + condition +   + +Z +x +  + +Z +y +  + +b +z +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..deccba9827a10ce758c4bc18bdfdfcef4bcf6fe0 GIT binary patch literal 23 ecmd;J;$RZsbmC0T&r8WH$;{95Vqs)pWCQ>+!32>2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2f5057bfebc610a309370954e2ba53bd72dbd438 GIT binary patch literal 27 fcmd;J;$RYBbYiUV5@29xuxDUkZ~!78Zg2nqD8d7J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..02ce320aac9a21a12a8aaa00f6bfd56d1c4b25f5 GIT binary patch literal 27 gcmd;J;$RYBbYiUZ5@28uaAaU$0OAJ@3=9Vx04Ep&?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_where_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..13d0f8899115629439cd1ecba69efa8912945f36 GIT binary patch literal 27 gcmd;J;$RYBbYiUX5@29xuxDUkaAaU`Z~(F$04VVTeE+!32>2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_where_long_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_where_long_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..567dbebbab85ed94490442223264a35ae442e77b GIT binary patch literal 43 dcmd;J;$RYBcVevYQeb3&046BS45eA1GypG?0b2k7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_where_long_example/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_where_long_example/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..e4d7a0cbcf6a7140bdb43976c93dc4598a8847f2 GIT binary patch literal 43 dcmd;J;$RYBcVevcQs88O01hb44yD9F literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_xor2d/model.onnx new file mode 100644 index 000000000..e17f63dfb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_xor2d/model.onnx @@ -0,0 +1,17 @@ + backend-test:_ + +x +yxor"Xor +test_xor2dZ +x +   + +Z +y +   + +b +xor +   + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d9541774b1b6eb6fca5913ce404acbc7b8bfaf00 GIT binary patch literal 23 acmd;J=3o)vbYiUV;$Z{<21W)3AO!#vI{`}o literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor2d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor2d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2f37772a3d53eb91534d1067016b0849ddbc0188 GIT binary patch literal 23 acmd;J=3o)vbYiUZ;$Z{<21W)3APE2zNdZd$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2ede816292e13e03a52bdea2ae7654529d8fbc88 GIT binary patch literal 25 Xcmd;J=3o)vbYiZ^FY@AHKmbMnBbWjv literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor3d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_xor3d/model.onnx new file mode 100644 index 000000000..ce915d7b4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_xor3d/model.onnx @@ -0,0 +1,20 @@ + backend-test:k + +x +yxor"Xor +test_xor3dZ +x +  + + +Z +y +  + + +b +xor +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor3d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..402cb458fef2a00e0a948f85be2d86f6c4af72f4 GIT binary patch literal 73 scmd;J=3wDq72tGYtnjj7WB@`SU|;}IKoUqJW2hKN5ULQY2*hRp0Ah;)m;e9( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor3d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor3d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..825b4f452aedebedb58afce7049b99d4664b65a9 GIT binary patch literal 73 ycmd;J=3wDq72tGYtn{*BWMpJuU}OMNPypru2_OKAgIGY!02Ts?fH)vMjEn$ek^!dx literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor3d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5aaed12726799becf6db783112f9095c017d9e43 GIT binary patch literal 75 tcmd;J=3wDq72tGYuE;O)vSDCk03sk{1Tvr`gbS7c3&CZf5+FWEF#w%g0)hYl literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor4d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_xor4d/model.onnx new file mode 100644 index 000000000..c4ab09c45 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_xor4d/model.onnx @@ -0,0 +1,23 @@ + backend-test:w + +x +yxor"Xor +test_xor4dZ +x +  + + + +Z +y +  + + + +b +xor +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor4d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor4d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3c2fb94d859345b8155ce8046769d8923e74ddf8 GIT binary patch literal 376 zcmX|*%MrsM3`9{9XOx?3@-Y>;k`1q+@1TxhD&OB2|NW zr1L#W^g`PP2QDIB%-kx8Dw;v-82}zqLqAi79ON=M`O_d5b#I>rTRYxNb< Y5GDdiV2R)nR@UTeGg>>zm6;>LKAvF$-~a#s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor4d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor4d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4b38cb45462a62f1552bc170397d18603d41c448 GIT binary patch literal 378 zcmY+8!4ZHU3c!Jjqxv>9i7S+Zrw-T^9(2}$lY5-F#ZV4e ze@SZ7p0g^x(8G~d1WB&o4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v1d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v1d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1500686f9682b83e63e4ba1557429c3dd431dc27 GIT binary patch literal 14 Tcmd;J72tGYtn^}K00Kq;3Ty#0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v1d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast3v1d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..191b7b0ef6d808181ac66d67587d78c8bfe54af9 GIT binary patch literal 75 tcmd;J=3wDq72tGYuE;O)vS9=Q1_mHv0JDG`2m*@vA7p##4>`z+T+Shx1&g07O{d;9(gic>6Bw5Dc z;lN!?!2_vQv8+cC4VG%`wn$l+cZb&0VTkEX@CI9FioIa!2$bg$Re<~>QN{!n)dmm} c0Mz4?6X;>hPoNZj$q;UT8E-L4=vd7Wf16JN-2eap literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v2d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v2d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d7cba2c1a18ae46eb63d8ff7a8295379f7cd10e2 GIT binary patch literal 41 icmd;Jc0cZ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/model.onnx new file mode 100644 index 000000000..77dbcb6b5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/model.onnx @@ -0,0 +1,21 @@ + backend-test:{ + +x +yxor"Xortest_xor_bcast4v3dZ +x +  + + + +Z +y +  + + +b +xor +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..70f33b925df1f7d5dbbf82dcbf8404e6008fd10f GIT binary patch literal 376 zcmX|*$q|4s48$$Ih literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v3d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..854b39a4896d7e8c81f91f76dbf3059b27762bec GIT binary patch literal 378 zcmYk0OA>%E2t!+cgFDaU(#tsG$|HLWNdl;~v_M{{jW*eA%eL<0eO|{i^wv68>$oEL z=STgKL&P>3A}R{-loDFVpmLDHsfCoAhxd>HSCQ%z0^`h-xDnqZ04NIKA(L-r1I+*c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v4d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v4d/model.onnx new file mode 100644 index 000000000..4e30fd1e5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v4d/model.onnx @@ -0,0 +1,22 @@ + backend-test: + +x +yxor"Xortest_xor_bcast4v4dZ +x +  + + + +Z +y +  + + + +b +xor +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v4d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_xor_bcast4v4d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..024a3481cd47fb9cbd00d45c46a206d2320deb56 GIT binary patch literal 39 jcmd;JrLAo{_H%yk=lZ5nYVoV3_P(+N zBM3>?;qr9N5Zg0+fH@>mxMY+|6NnKG#}Q6SoN_qPbCcvRL4l30;i?7+N$ zk)6w*i_uVs(MXBgu`IPHF+DXPKR-uHl#3@jwJ0w&C%!l%u^`of$$=55R!fkJr64h- z*nt58K|%st?8PNTnJGZyAd0wTxEPIu7>$+KgRxjABmj1uZdPWAZfZqAeo;x3ILLuQ eTml@7LOfhd985sW48&|nKnY_k63k9a0&Dò™ù>ïQ?¿·fÓ? £Õ>×Ku=@f"=7 Ê>[¶y?þÙrÀ³p“¾A˘¾k>‘Þ¢?{.r>7˜ @¦|Ñ¿ØE‹¾^¡¢?ÕȾ† ¼=Í?ÐòÌ¿ßNd=¼Íྥ¿2Zš>IÑÃ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..03fd37f59 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +JH¾—=Ÿñ¼^ ¿a4> +íÞ>{ç>›Lt>ÿY^>gl´¿ú–¾V9C?»›?Nt¿Òúà>’N·>YÐE¿Â5¿¾¯> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d_stride/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d_stride/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a61f1446020d0dd680c1e8a685109f07b0bb27e6 GIT binary patch literal 234 zcmd;J7Gf``EXglQ&X8g@&@;BW%*Z9j#b_YJXsE;)npa#{nwnabs>RL4l30;i?7+N$ zk)6w*i_uVs(MXBgu`IPHF+DXPKR-uHl#3@jwJ0w&C%!l%u^`of$$=55R!fkJr64h- z*nt58K|%st?8PNTnJGZyAd0wTxEPIu7>$+KgRxjABmj1uZdPWAZfZqAeo;x3ILLuQ eTml@7LOfhd985sW48&|nKnY_k63k9a0&DL1`q*CkO2rxQ$G0ZdOxXw2S0dgY(C%F5kA8@bU&%GbiMrlBfjS^ z+;Xgdggg)#~-@dUW3BOC);lC*^ zp1kOKF23fRk3W4?n7>1dTt1+|R=xme1wJm`a6hgRg})r(fIrAPtv_0rOFv|Z20!Y8 JmOt@&3qa=jM^*p; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d_stride/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d_stride/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0fbcdcd1d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool1d_stride/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +JH}à?‡œÂ>X ?¦,á½}”¿£}+¿îÇ€¾ð¸Å¾™?§Íø¾Sd¿›ó>)ˆù¾@³"½p9J½r—?ß)?f¼Ö? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c78cd2ff44b75d0539d38ff5b961f6a1fa6e641f GIT binary patch literal 180 zcmd;J7Gf``EXglQ&X8g@&@;B0%gE)=#b_YJXsE>PSe9Cpn4TJtpP!>8%EgnNT9lWX z6JMN>Sdi+#V0*izG+^vlEj58vxdOB6I)% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7dcb965a27fee03d347f1c405ffe2912a083b47e GIT binary patch literal 877 zcmV~$4N%i{7yw`$wKfTvfaDq_*f`S6F z4cYXP!BCC_`D%jskw@mf9kb?1UJD5Yujdg7L|!7HNGMsUc_<8V z#L}VUI&5pa02{28*gkX_`J5tDVZcY1IGoMKS2ZhX#kd$Mlv!vxW5trZQaJW) z5~|H6x_3o~?(}4|K^h(lZUrCj5jqp@LglcVS@UZ_*N{BOgqAcPmC+f)o_24uAG#ZDfAn0!Hr|fL8(~J=_Pm4r8t@jmmo|fVGzdEe zZ$p~V0C{Q;#QIrq_JzjYZ=NT4CxcZUg!e1vsQO_W>8o$T58hfzuP%Z>-<^1BGL`aw zd4>toqmUcp1JcdJx3s@bS^0SwZUL+kFlH!yz!F@9p&4q73$3!9xY$X5b`_~gd_AoD z^CzJBDh`E5ui?O9#!g+|!L}CU*rt=-LGSt+l8ss6rH`K0W#oWW*NqZKB;BAcmaG1a zw!U1X1;Yrx$x+GqUtN#GuSWREg#oU!w+45A+(+@7W}rc)1+S?vRlt2Ut>9|;RPlaD zEq1c(pNBAAJAtY@&Cp!@AAV7wp|X=H*yC41na49RrgASUY`2iUTV(&YqaPj4-}$9_ z;|I%+_u2ff6jSn&gzk&xAUGqC|6^Y^h1`^(uzUmQ*2`$pWaI`fgpygb3o_FpXm%zA z7k75!jB78B?>J6J+9ojU%Q-4@s#s;z6hH7@6-}LRvkx;GsdV8ii|l=u*2x#K{)rS4 slkE7YRY`R}eM;K0At?7Nr|si2?E9#*P}unm*M7-h3tnSnF?XBjf1wwoHvj+t literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fd330e36e4a4db008c5c6311b1e3fe4d2971b4fc GIT binary patch literal 229 zcmVL0|)~U0ZP~b!2f=}PW-Jt2))Zbh+y`-R4{5jC|e4@TF)E5EXAe0 z0BOHHIYmA{KqC%3%uqK!=E4WQHwPHL;V*GafHSPT*gko^^8fa}-AQb}(vQzQ zU?iTr9@)V@gyWFEr;xusl9|OmG-nvUz`+i`jN#nAmQ1fceS3~R@`;Z=V?#7Q!1^9O zs9dZ*b`!R~0EVtUUJ(PoPnj3Lisj@!PY!QCJD8?EAO4R%6}==r?NFP)a0URq^YJyl fN6TA2CjHI6+$ht&9bR}omY=;oK`X+(Z1n`cEXZqe literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d_stride/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d_stride/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c78cd2ff44b75d0539d38ff5b961f6a1fa6e641f GIT binary patch literal 180 zcmd;J7Gf``EXglQ&X8g@&@;B0%gE)=#b_YJXsE>PSe9Cpn4TJtpP!>8%EgnNT9lWX z6JMN>Sdi+#V0*izG+^vlEj58vxdOB6I)% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d_stride/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool2d_stride/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0240b9e6f2f866dc3d41fb69cb961d320c63d3cb GIT binary patch literal 877 zcmV~$4N%i{90y>x(Ok02byBE@6k=*JIxtq3Zols^&bxL3Lz#CFoY4gY9b$Gt9P&O8 zIdDt}1RPFuB^K8m2qGI;$J56g*i{3dZ1uCMH*``#Y3Z~-X0`V;)KJn-SmF|71a43b(q*s(MR-cKkb zU1~Ks&;PAyO1aHzMt5NRh&OLpQS#-;!A{%L0vw7ug3A>t{59>Tq&Ir9`Kl1u^m-w7 zU@Mc)oPf4-jEhwHY~fKdNz^`cU|=M_11zK}cjHL|+4Zyb_3#u^eWXzfmA zF+wmlzP*Rmxl}B-eVtG~pN?xqVN~Pys#g2DNbn7?T5V%D%de4d zpp%<=6;wGm$HRQ|l#!Z8w<_=OychYjHDf*hA}Nkk*%qv798pgu*1=m`Po*sf)h~6q z<1@3F)?4!((-(|9;mHn6^k`_?fDP?Ui(H%)3ZEBJN(_x9WqmbZ_>#(g_<%l{G9Y5s zOxl$PWi0&_9q@^oa5E=@}Hh z>!$rNWjlhW!=Wpjz>=y8b2-Bfoxz<-i*vcx(_%d9E<}+{Ec9niVeRbK{PsyJJFe0p zBFIa-;SC)&hi;@RcbiDrFv_m`x#9EZVfLr9R@0QMfqaX3bK9AOr|y3-_Kbzna#;~7Q2%|{>?z!{dAgcxPy-`is*l2L0|)~U0ZP~b*zz5|^OFsONvZM3Y@UurRhfO8&mqDlQ1V f|MVWdKKy3B4o+J>stAiePU`x;z|!wNf-03how07Z literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c63e3f7b65f4532720079812a191be9b4f4e6f8e GIT binary patch literal 196 zcmd;J7Gf``EXglQ&X8g@&@;AL%g7bZ#b_YJXsE>PSe9Cpn4TJtpP!>8&c&0RT9lWX z6JMN>Sdi+#1cD0~*|kKuSPBwTiX9jb5F{+b#a>)el$nxR3|A^70JcXrE3-s5wW1)u ps3b}rWR(<`1P7y#2p1Cv6A&{4F$)YQ0TmcxQ2N1KCo}ubLSWK zBcx6XqM5lYj(n#XQNwXHeRMsFF1y;mTC5@UxMH*{2!hcLLh2YW$F}WSEPE3R0dhT1 zk{@Uz?ZA9c1ouU6fZ{kY3OAjgF|)p+TPUGh&jC0*t`)m4JuE#^w-=IXTREql$C%CA z6xw{^9NCI$I4e2|smtO>@U{Y?1f3w1*)h|nVPz9kr=ZiWjqNr&i?>4;fuA~xP3b&G zDq%kNEJ+`P@3-*P8THsZIvxBItthrBk{;P~Fw^NSQXOdo%d%9$>Vip-mY|{P_W6_& za{(r7l#|8&dK$sEV$dBED8HP;U8(tl^~kb8{c#68+L1}|&qL_Y*&LSOGLAxfj&Smp zF513am#VIh$Dn_MK@@Zg?5*G9bTT0C>$51dZy2fE10iETi*5n-bhlK6`?myB0i6L8 z_X(^}9$)tTF*WGiP|%MK;Vj2Ak>7O*`;>gqaw>?}?))q%@*RF9NwpL-WP&{8UO{7}0`k&*QK#7jC-xYlsZTOZ zO&f_1`r}}H>>!HD^&;ibXp}^CvlG8dsL(-|(rgj}b0 zT!%iei=#XEuN7^)jYJKRjfJ3mmQ2}#?fkc^yQtQC8abAG(dRTXsYgiyc)YNMg=R@4 zZ+Qw`zedu1Po9hv3n4|>08LAlL1SAU287qs`A?5Iu|`A(6iP@xrBAUvi0fTz*vyNO za7Qt^eB>)9ezE)pWLkRQaBB&awn`v7-vau(3eiS3jo(ne77kma(bC{hO8X(44sAQY zw7q5U-O4OxHIwI0{<<49sg2}oYKn_+3B-vj2~R#|lY)=X_+TL=Km(=Di{YCyzcBk+ zFXEotl6h1eJgc3H`dcfpE>S_if5o>)7PG8x0gzFW!n8plP^*Z5d&fBG&2>wtpx6|e zqZdNUmLzby9_}!+p0l${|P##rsH>WPf4QHxzsDM z#tq&wI&FNFU0LdY_C*@5*y0_{`F=Arm3r`Zb)uQyjhUqVco(iXUIwc-*RUV2!}PGd zperuGLcI*|{%lO5i{`Y9X(WwTVqx&aH4y)>6q_6hzqlZZU14$JG)Bpeg literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..106cb6812a543ed6cc545b600a4d9c0821bfab1b GIT binary patch literal 207 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d1cd503a6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +JÀŠbÒ½ç#?G ÷=?}‘‚¾\´? ا>nÒJ=T0r>à^°>'’‡>µÄ=ÿ5¾å5¿Æ=ç¾Êš>9Z>ÀÅ¾ÊØé½rl¿`­¾än½ s¾˜›+¾|ˆr=/f ¿Ç~¾ÊR÷¾¸º¾»(š¾’Ô<÷Ñ[¾:¾>_w€>a¸2¾ ‡Æ=–ž°>âù6?Lï¡>êõ>b¾l•¾Ïô·>Á»%¿#X~=ïù>н,…< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7a7de259ec2b358e44f3e197c90151445c65adaa GIT binary patch literal 196 zcmd;J7Gf``EXglQ&X8g@&@;AL%g7bZ#b_YJXsE>PSe9Cpn4TJtpP!>8&c&0RT9lWX z6JMN>Sdi+#41x<7*|kKuSPBwTiX9jb5F{+b#a>)el$nxR?7#?uKrtZ!usyn2nI*cZ t6$SZ4B~kJqtE9LjI2eUQxR^MYfS4JGSztH`sK5}50+2#5c487>0{{_IBj5l4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1e043b4ce7d7105207fe46d5b59af29a4d1e788c GIT binary patch literal 1551 zcmWmBiCc_$902f`8C~>jX463=S;^UmarFMaZ*-_e>}FSGMRci9qeY2QQ_dnv2TG$< zM3QIF%=`O}D;cR!l-Lk?v|Xf)(zd(L=TG?PjMU-j@c;M22)DS=)gi8+6BB2 zDgmsvlVfX2KG>y?QTugyz zn0_!DcY9of*n~nnTA{~AXWS#@nF-i-_aU&8lw_%GBH8>_K|3e%urI&?2jgT!7`vAI zrCURehhN919cqq0RsoIVsd$CDig!9hmPp&G7)=b)!}2)&vc2f zo~*bG(A_fzmRM=ALBWrhC3zKS!_Q(Cr@ByPM-7fRJR9sv#$!ZkAM}{MrUITfPRm<_ zFZ|@RAxFa;GkQV1^^D2zkQRm;Od|c)N)T?f(Afd*V0E;RL>3uRRYMf=qSf{l0TD>G z4-khB=9n_Lm>KjB#J!aiZ&_ZX8BWPmw$6>D4X?$m+bub_n+Bvq%a6Dhrh&<(w_I+= z8vA#jPZAn3gKRi$16$h+!FcBz`_V^7z)ib_n3bzQ;j0Y#a=jWvpX~91Za%T-Z-M}k zEf%_1fT>d(d@pW-fsOki|A~wqjWSH2~OoCpSu)b@Tf^}CZ(N!oR zaohmM+!=>$iUzXLEDOSPDv0@>$?8q|Z^@Y=5vceMkP;mWqrVwL(+LA8-KVDFEeGHk zu?G1@9SjykK>5&k)+9rpb#>3DwU^Grvz4#$#i&0jw9MzzLjehx)))prqHzdYS zS5;YtlV83%LyUztEj*XXed=kaDsEtS(m>_em4BUlx=5>Dys zvQO%hL3Q>j2t3X3Wo{DoRX9U?b2om-8URtL3mJ-Sq>Vl^vCPVty_8u+_gLS+?-6{~ z@XZ(ek`@A;lGmtz-iC5h?=$5^KH%-kQ8!gLewE(?qv|ZkJU9)$m)SwMb|n1#TQ9Aa zE+C0|S)|GADwQNlK~qo+As&&iOCll8nFT1(8w=az*;re%9O07#grtsVYa6PV;)W%l z_utp5bc%tt!BjTviILit>>N=UktsRA3L?R0bmWnVPe` zvfH@Z@Hs@d+yG;}kr-wBhRXB~GS1t4NJP#|5I00)pV&Y>+RFzg3qCSl5>t#{L{MDs zPUp2NX;eZ6)NR;L(%U*1{o%7T%=8&4xjIZv4}PTD^(yjQ+C-(HKJ>0)GfIQzszPqR zrUnbPfo|1FNK)9L^^{I}e*R)uwZ;p!tht8IM6teB4&S|f|yxXK;f#uQ%QWr!to_nS^W@-E8Q{vPhFB9a2;aF zbLyR*f;A`OaJ4!H;(1;$uj~jq9J-(?(!LD+hvJ|@Qid;OQtE%toOl|xL*Mfj5?`by zOwaF7SL_7ycG=-J{tFDQkB7>dRve1jLklNA1~;vRSb6a?)(vv-(X$#}?NHOYL_>8# lP87atHXxEQ19X|V4O;tJ$Uh_Fn6KZ~fs4F^erwo@{{m&5^_Tzv literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f0a24db0d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_AvgPool3d_stride1_pad0_gpu_input/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +JÀe8н­L¼½Æ;A¾Âp½\3†>g}%>q–A>S„ >?“¾Ça*<á; +¾_–¾ò(ͽ˜Añ<»Ú>¾ŽC¾5Õ?¡;¾>¿þì>Í.¼>œñ¸>Û–>…Bš> Vp>G\•>$uŽ>ë–£>‡m +>oÈ‹>®w»>qþÚ>YU>\@ÿnq¤½ùïZ½Ç£;œïŠ=Pἂjd<²Æ?ò¨<>ÀN>ko= Ò>Æé=r [>-íQ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm1d_3d_input_eval/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm1d_3d_input_eval/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..72e5c03fcdd46876535fce70ef3697ce0aaab2c8 GIT binary patch literal 378 zcmd;J7Gf``EXglQ&X8g@&@;Ar%)}MT#c06AXvoEA#KmaL#b_eLXsRUSlvt9S;g?^O zo0yYXl~|IQpQk0r#hzMFoSBoKC%WdSy7>Y|MlC)r_RQk=lGNf73C0DCOj<%*9J%?q zsd*)(xuR)lY4$)hLIPmhbh9!`bW^@=(lQ!}aVZZ`l(#H6uO+eBO_UJfD9OzjgAua(9Mj;+9CJq)LW(8vAD1KlN i2yt<7042bJAORzE0b_Il6J&uTpy8(240mD@U;_Y8V?NdZ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm1d_3d_input_eval/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm1d_3d_input_eval/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7e3810638a4134fe649429c7608a17d9003fb7f3 GIT binary patch literal 251 zcmVhPZ$8D4ZoeK7T)vy5d%x7F{k|N^Q9o4fOTXzeLcjE3DnA8A zx;?pHjX&bR^grje{J#zA5Wt?&#J+d{XucF0Y(5~e2tOq&sK4$3Aih>c2tUszE50L{ zct7u{89(FLTR)wl*glvr)V|S)mcJZ(EI-Pbjy@YO48ZFrä>ã\¾aX?¡ÝݾŒ…>£“¯<5?b„#¾Q=Ë€·<±¸Ó=rH¸< U·½’©¼E±µ¾s'7¾¾y—>yÚñ¾ñPæ¾Ê>•š–=®šd?©âÅ?šæÖ½"vö½D_§¼VJ²¼ópµ<R=óØò¾øg½`ÊD>}úʽÕi?=¶>œ¿1?ü%¯>²Ž«¾g€½-¬=Ú†r<wW¾ß~¼é[æ=Jhe½ ½D= !2¿UÔ¾=Ôá÷¿ WU> e"?‚¸<&p=Ó¬½c„›<}:ˆ;‚(Þ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c48391d44391d65021f7b5bd530ef622ff61329e GIT binary patch literal 354 zcmd;J7Gf``EXglQ&X8g@&@;9=&BPVU#c06AXvoEA#KmaL#b_eLXsRUSlvt9S;g?^O zo0yYXl~|IQpQk0r#hzMFoSBoKC%WdSy7>Y|MlC)r_RQk=lGNf73C0DCOj<%*9J%?q zsd*)(xuR)lY4$)hLIPmhbh9!`bW<$#dPYc$ON0YxF&7gD6A&{4F&hX+@dLdn#Kpw{lw<)( afCP-t1&q-JOppbVfEJkIvcQQ+fDHiB`8XE< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1797472e1499a52e0bc9891184553a12d6d9d1ed GIT binary patch literal 877 zcmV~$4=|Kz8~|WTcD7TE**%N7qO6$Vw$`3<%J=>@%33v-b}}7f+;y(z5TUxXMrHZz zY|^Cdiar}1GqoH^66t$?TbG!**s0+I3t>Dd64eE5B+;6vn^5yR~qg^f1`{j*JVMc zy$((FE)26-s65g~m9~>53CHd*qa{-wP!@a&ha@-P=#ol0k$wS{ORk4 z5S)+loJA_jyg;>nn37m+D{ZqiVAnPo37QOs$343tG{zlWQ!Jd%Gf~%@8F*#bfH@xF z5SZv@9eVDAv-V>&!tXAPc$iA`+d0rxeWHbuJNPSCf(Hi)Jka_=D$@+oGi9_J=P^qE z6AVAG!}1Moz{;Iad%7O`?}nnIs}|Vyd!)K_fYim_gu0D$(CfDvJ6GPulnDc>3r@oS zVQDei_fmMeLWvb2vG7gnJ_tEv>8OZh=r-!2E znAmgKbbopUCfyr?XII_ehwwx&b)JUIu?(#FaRu%UIR%wg4u4UL$kyZD5ET#&TO6aH zPo3u3iFUYB^F4kLt7+lMKWX3I7;K-{V9ghq_;BVdXoFn1Y%PJdNkG@!6wfxBiM4DL oH&>h^<}punk$5~BX`s%kaq83@22XtiNxoi;9edtE-&ia287GRQ`2YX_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c39a86ec2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_eval/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +JàLý+¿³ÙU¾ˆÈ0?óËÅ?B"—½!Oå¾û¢§> ±J¿"W1?uâ-¿ªxŒ=ä>?»K’?8 ñ=Þ},?™gk¿Ç‡»¿Èz¾2ÆÛ?FdD><‚Ž=ûѦ>&)?çX¾808¾’¾g•›¿½¿Ê©/?òpY¿ ì?’³q¿°ê¤¾ ŠB=/„½ûø¤?n.¾> 8–¾´«ˆ¿"úMºÕRè>:þ3¿m’¸¾Ph½-Ô ¿Ê`ʽüÞà=  >CK?Sÿ¬¾!ºÉ>Ö–—>/Ï:=¾L¾=_‚¿…Yo>×¼£>O¿«+¿ %¾=ã…«¾=tú=‹”?õà¿Ðšq={º#?ý ×>Í_¿¸#T½=_lô>&y?2„7> 0ξKÍ•¼C^=ä¿*km?”Íd>‘p„:øµ¹¾×oH¿úG4>ár>Á)—=•˜7¿íLò>•—<ß‘ ¾}JŠ>u»>| ¾â$?€Ýo?÷Kû> ã¾í;¿ÉÕ¾N¿?ƒzÓ½Ãsç¾MgQ¾@0°¾G‚?™÷C?hû¹¾e9¿Ags>8v@¿ùú‰Ž?Žy(?sX?U}¿—F¿Ûè¾ùU¾½ +1¾ÿ˜1¿ÀÃ?³d¿?óˆŒ>Êb€¾Cq¿‰ð=O×ò>+@&?_Õ¿¾_6E?-Y¾hÈ­?Ô` ¿6æû>È÷¼¿_Êܾîg<¾Úò޾Õ(!>ôÄd?49¼¾Õ2Ž¿¬è>¿ë† ?wåÞ> ¹F?ÿؾ‹¿_n?Qbr?Δ>ñ#†?¶U:¿‹¯Â¾à5?0Dd>„n>4¬T?b§‰?˜¿¾IRZ¿F©¿Æü"?ñ€ÿ;\4¯>´Î¾“Oá>SU ?~ój½à.ê½`4?Äëç=(æ?ÁSƒ?¡E?&¿»d¾ø¤‰=ä²¾¨¼!¿Ëq?µñ@>*—>ùØ>½Îª¾Üõk¾&!Õ>†é¾³SL=ž§X>ÃÆŠ>U ?Zp*½G?£`¢¾"=•½Ž˜¾ç<¾mb—¾ï³®¾&Hß>êƒ>¿õ’Ž>ÉÕ¾*½1fì=9 ¿ +·á=í­H¾7ž”¾„·Ê½§Ú#¾0b¹>E…=¶0¾¾ñ6:?‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_momentum_eval/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_momentum_eval/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..ac74d9e43d78a362a284930ae3a5d82ae6cf7a0f GIT binary patch literal 354 zcmd;J7Gf``EXglQ&X8g@&@;9=&BPVU#c06AXvoEA#KmaL#b_eLXsRUSlvt9S;g?^O zo0yYXl~|IQpQk0r#hzMFoSBoKCz>zRY_))qQHzg@J+nBzB(=Cif^h*Ola>${M{a&@ zYF(?d>CXJKMvA zjl6gmkN`~B7`w0uNVvfshNGl`o)Hq`65#+^%*DjP1jNih%m%_y{6KFCadB|~C0Rfc aAORzE0b_Il6J&uTparJ5EO25HU;_X~M>akH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_momentum_eval/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_momentum_eval/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..aef7a400b22cb49c63eaf916b077861f807e468e GIT binary patch literal 877 zcmV~$3rrLQ7yw{Fh3nvW6~trXwQDv&);SlH-2a~gQBH-ZiL%;EK?6guoy4P6h@c!4 za5n=vz1VR&(gutSQ1Jf$ggSQ|>5ivz92t)(PKuDg0jGVRz*(?S;39DGa*{uC={qrp zo@x`7S8XtcWyWJT`mn0-Kd29=VauPrXg15q+wdG}I--nmr(I>;V=}sIbK|o|5>crN zl_kU-C*eXU@44&`|0E7$!7U|93`t!3)dh|YS7Ov3S`_cu%|&*- zD~X+2J@9C!yHSv*p&|KtkFH&QTd|~pSFJZmQCTPbbij{Nztizb>Nu`1srbiV0$?Uo z4OJEemtRW5?$6es^mq&euZ&T(#RhThrLZ!w4F0~=FnE3x2Gj}oMumhQ{Zt7z@=ctb zGsP|fJrqAMQ^RO6251)H?twK{*k9wewIOWoh%}rW&t&wg;+b;{Pp7uxd)JWCgX|Dd zzaN{55^>AkcBw`+hY2uJ83hH9Lm8pb2j8w^ibx;Mu^w<@)eK6~8D|=*u`74PkTz68wew9VnV8|Jyb8emV(w2XE(6VZH9~WDfq`jLgc<@Cn|6P;Hl8{E| z3%hN2Q=A7+%5L!TxB@)A9rTuR1~qkgIGIP>*QS%s*>voAeOelvy_F{p22oLL1$sm? zbr&{(>*^~gG<9*O*9G(yxzR3x2~P|nls$3d&QCgM`+^l*!~EgQ!{>N@Q$21k)$qjU p+aRI2ob>Di!RwuTZ0r<0i#HpBO=N&yg|cbSR?Zlo#14;q{2y?)xcUG9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_momentum_eval/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm2d_momentum_eval/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6c4c1458ec5ade423abe80e2ba5ebf9eaa7bc7f1 GIT binary patch literal 877 zcmV~$c~I147yw}I7UEnTKqSW4l{F+wh=CD*@9PMN3$8Q)#i~G@DJ%i`2Y6(F5nD*H zJHRG}9EJ$E!szVE;rG4EAWWs;!J!$l1d2KXF*xFQko7zwE0MLxPGsk589i<1kXM9X zCdTo)n`)9gzXAQNr+8;mDWvcAB>90@Y#6`8It(RXb^9`{-B^WJahO^ERm}&aqad1V zM?c49b~?I)8*`flr^Qt4s}ZB=@&vcC_aWmmH}rfa!!2H8+<){lG(3o)q=0Gm$E|*b zJr3yn$+vv!!bS?(RL=^A?(kNvJ^EF(vtO5L`HHSW==Ghzw>4%cUu*^0OgMk3&ZhNw z?o>HE202r=C_f>K_e-zzy^(obQF(s>`kwE(OZn$Q#*=9_v6N4nZ#3gnmy%Rl9}0V( zDnUCEO#2o0*$u~@#6kD#2B_4DF($)?nn!lS(Ka1P zM0$E2a0tv;$4j~pgED*IqMM06G~VVu|23fyYR!(!Zldt&c={ko3u|U zvG+Up^?46GceGqcS#LmDaW_T`4gxybY%>R+MX#-4D4TJkmn9<8L-|i!e|MfO<|J}M zN+tX+T}a7bYtqx$-rnkG&9VPe$<_@E+XX5KD^v3#{cIF{hd-R`i?QkF?S`$=UTDp=ka*vy7_Xu|_Yt zXqJF-)`G4FMN;vDcy#w~VAmwuc$dXN+}qJk7RO>B#A%r;QX@&)`96kdy@b=rseG;| z6B}Fqg>+{F->kU@OMB~hyvte0m0se*r`q_sq*}7mi_v8=o9>e*J<=G3l}sHvhbB^J zls6T`<-$tL3Fh)?AaHXTx!ntfgBkrispSGTc!c0`xrVO!6bcb(g*5w0FW8pZ(1dD% z4F!ITyVhvAx+)t?^#gDz{{)37(s28CV{9@(hjX=JI5R%ZfBE?bzACQ~wj6&fL@RqS y>t+_p{Zu4Zia@br7q^d|7F;JPXvi^?D@RVUsoyp1@S9OAv?-$&MLSkUhT;DM%cfQU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_eval/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_eval/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4e4dcd4653599269c9f9c0533e6133c20e65198c GIT binary patch literal 362 zcmd;J7Gf``EXglQ&X8g@&@;BW%)}MT#c06AXvoEA#KmaL#b_eLXsRUSlvt9S;g?^O zo0yYXl~|IQpQk0r#hzMFoSBoKC%WdSy7>Y|MlC)r_RQk=lGNf73C0DCOj<%*9J%?q zsd*)(xuR)lY4$)hLIPmhbh9!`bW<$$dPYc!OM-(@NQ8@tg9(V4ftUq`qxgYd72@LJ04e|p bGJ^z+&;^Xq1x%0yl7N<&;oMF+|T$~wD46OdR_konT+&eRxAu0G4$*Zo1q%Xgr zRNqc%-NT1g4+RQMBy`EEX?VOngV?2r&?lk;eaj@^ z9+?c1+;GU3*+WA|0gc|vpvSN~n#Ep#^x|Wz()U-mo!2eDJlRBuTWkgIS9i!oJ+!?5v^dg2=?}CAlf#~%iu%5D z4$BUS@#->d__4~L__`Khne-l|of0b5uA|4hv=oJY(`P>lENrMuP(?#l+#r1>3=Ac5KrmMZ!RI;3c2PQp1&-muD`{j3*OP>IkCFu2 z!!W%zhZNjz#*4MxRG2u(bU(VpsuN4;7?IEoTeU$oAwrD;7tBl*GVVj~NPt%art?|C z(@=r&g#t8w)JBKQ~L=C&4L@O4GoqXFqzKLbl{X z9(mAdL*2IMK|NOkZN~(p(nDYQa^8GY3C=?2f@_%iq>dPSjMRS}vcx;Cn&A2HX9zYe zf-0+p)L!!-mL6|}9X01!tvNHe;flR5=sV8DMco&={IS^G|f=&h*RR81v&b13AA0sN^1xP?{ zr=@(|y&AJ7-jcYcY1}4`0$Rr7fM>G+CG(Dw1dS7*&kv*VizgXoegl#H9SaJJBQ#XJ z1O%!hVC`9rbwYn~Fvbx+U0#C2@@(i2GNpz5Rj?Og;2yUG4_M~IS-v$4JZI_DpWE4# z)6LkT{ecRLS{N^H6|vlu&HAPF(V+82$mab*4O%t0ZCm%CdfW;NdzJ7g(h(f|WZ3xGuR`7>CG1QpgRkx7 z5V>_ZgfF@co75~x&1@z6G`rb9il5_}$om+kvldSViqU>t3d-4$XwfQTV!zME_}gia zTUHBK76;O?JtDL|=0yGqu>o=XpOBE~f8Fh7$6yQ5Tl>vtVuy bFg~jdqbzrk$(d64tT+$yxC?l2_5=1mg9+}Z literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_eval/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_eval/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a3dba04f17decc2ba538001dbe7e2bac13541f1a GIT binary patch literal 1551 zcmWl{3p5pI9sqE0(^agSEhTD-^k5=+cYXi=ordm-BEW?8Qy#^b++vc% z$}>dH&UAYiOqcupKa!&9A&+*gnXxq2=CUe5|Z-8Cxrb+E$jeT{IUj@aqg zS}@+ErmIv>)2h8(qax?^E1e-uZl}_6_6PGhy^?5@?Doo>9g`6GCj3| zIsK9e2I^?;*5uUlJBS3ebv0aE}jK``Y$$|Si&A33t~f|>3loPpzMHDw(+O0 zXo5YUQ$6WWil2e}>i`Itvlu??&f+E3p49WZBZXh7gdoQh-BRaP(0FJeXonAJI+Q%6 zBa=SL8lc29C%T+%#(z6uz_)bz(e>HO;NJ^9u;-qZ4n6FGOLN`}_bBJa%b985RuIgR z9Lq3-F%kF45%hNrMw^vfq^&G!ur!Or{Dc6uQvZr3Yt-PU4#BI=7x35C)o`Y+8N23r z;NGpic(}??5zL;T@4*uCkhti~y*I#rmUfYkvP>La;|Y8U(X{uPc-7yEeSendnvJ|@ z?al#A*i(+XzqJvSj%}by)e5`R9C1tbj$2(>#n&9I#npqU7#J$gU#1$or>>!4*m1fy z`X|f{NTF+yKf_eTB^*1DKt(x`5Iho2##8;&5|vLYGWuZV^66AsABytS9`ID?Sxnq~ z{JymvhC0=}Hta)?1vazwT1PmMYRX<-VPcNtEg0O{g7bzNSlO};y5D^tmOHysxGWRu zN=jIO@5g9TKdMu!=81L-TQqt!LQO9(@C)%P>4DxECQg0_8F2|`TG0Hi!X5LE(7b3TENDN1DtnEvBY=IaOK|%+Coyxm8e?P3DX9uE|I;v3 z{!%DLH)i5nFDumlt&TRk{=lEL32`-hhfm-y{Ex}t}Iry|$jX8bM!pz)KQNQ9O#;MC8FYFDKMHUEY<62O1D~bs{ zATDN{#M63v@uQ=IB6?#kPA=@kn~7V5I@(zL*K-Ia!Zq~d6JI>uaR?J$m#x+8@@AK{ zgJ6*rD)Qv+@WlY9@o^7KT4aMZ+dsfO{S7$d=z|pzZqPrz9^~Ue+-Uj^VK?-#a65aO zoa~K7p;CquTklcflm)A{n=U%SM!+h_87GYeSH~L))yq=0$37p-m4FKy%ZWWV#XGyb znSb?dzVE9R_~OR}l>NAjHx~XA68{L)xy`JhRhHK5*%D(>6w(VbdQ33c#0Ba?4hzo( x{?u6+&Tc+&1+97k^bID1ROyEC3AG?iP>S;hdfCzg<{09>7>gQgMQFJ%{~tQLzRY_))qQHzg@J+nBzB(=Cif^h*Ola>${M{a&@ zYF1Jh?=%!W_NAUx_D#XRb0aO4I bWCjTsp$izJ3z#4aBmpfk#b=2VlK>k4PSrRj literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_momentum_eval/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_momentum_eval/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..48d2edc59a54729d19417d89c11f16231a43014c GIT binary patch literal 1551 zcmWlXeK?hO7=TYc8bisE(k5RCjcHlgk@tCCPD+~+8ncY1v?3PfvO1N%DO_#kRMR<% zq-bM(h;rWFb0Q{{?=-2C3$3V3B_}DZUH5{O#+B7qZE3HnOjy*JA#fOzz#`@#@~0t)z{eMf<9{sAA4;a@7A-xYq80OOmGw z;UO(-p~i%&ofqNmkQ~@qWz5%=eoLD_JV6dVHmI1n5(iF}p^Lmi5ehbdT} zn#C%v5Z$>uotM~^q3e-296jKVmaXUEaETG$lyAx^lMaHW$PDZU##4~-6|CNJ64zL- zrHuD_r;;qpq1aNI>hI{ZuDdr5^J4;GT<_3u>PoXrWNbr7$;gbHH?E$)dTotD+? z>;f@pu5Mb$%txY8DT-KmLk6 zvKwBV7j4mPXbDtQDyhG#kh(j*!R2Sqk+WqXb`3btMfG_|iQ#FwUo2jZ&L;ElziDr0 z4RSR=MW6hFpSe4cY*H7M9>^CuJZoT*DvRETu7KOc=PYGW2@Jac^$k5jheb;%uAqb- zv3RnnQ-WRCYO);8WAo-;fXDy~+W6^On6>;qIS1~?oIjid^YG`icvK^VS6TD58_KcP z`3Q<;xbZ`S8VHPTqh6^Iwaep4-mSo-iB9-t!YGv8@)9bO>>w*dq|R}kLX~F@;*TE} zvn?s!)GYWrcClJ!S*OT~e9By4fF#dvo-+SK1HGZAU+c${a(-^6*w&|kFjV6pSJI%%U z3fOO4%S@7u)$%9yv}t?-x;O=3*25k!o4pP7O_K1#OtIIdFXpq_d1Cdh2N|gAR}WsR zwljAJ73wybqQCGJSk^01-W5dlK_4)?)~Ps0sR8Xr1GvF79Cs-j(abYfc;sM)Q71;I zf!CmEO*)oO@n+e6=eZ^CqG{PtF~v48<{aWilWT9{Uz^GxH_(8+9X4l{BOdB5|NHn; zQybbeg}iUYXp^H)NevRr8J1J0c>q~qE2f&4f^TFSlQi$82ZnVxcaIfmH+X}+%$z^x zuz-?e&*;_Q&H37R6;Qh;o9~UdH(^+Kk$0UuwV5>O=}T7l;t`WZ`_Qp;2kNMQiZ={@ zBXLt6)Bbb|x#KUv+qnU3XNd>JTt804;!8iFrO|zq zu`d_J$1c!|dJm{<3h_z|tK|k?^{Wn8t)fOrHI($fMOH56l1@g@>=A3a*I0@fF$r)& kB*n43EQ}8f!ti8EmfxL#WuN|oz12%0N@oSL*nA5A1H7U0lmGw# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_momentum_eval/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_BatchNorm3d_momentum_eval/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7d83957a8615064c1a318a23ed1280875936027a GIT binary patch literal 1551 zcmWmEk3ZCR9KiAOn+Gn{b-9H?nc8N{epKA&{TW(yX#JS{h^c9$Un;wtYUKAhH9tklH&Pd@LSb^2d`aYu9pv^`jii<_NU?}S#CUJodq4xhQYmcd-1h%GT!%W z3ue!oNS*KGqkg+Lx2`|I9Hz~sGm}s96Tip7a~oR>@n|HvvLHy%+{MxW3tT6Q0>A2u z*i+z6gWBiODH>nQ*=GRpgKEsIaHG$ndvLRpo}~6FYlr?^t~cN`p0?&t8rd|1=Tvun7>nDi$tZ72|oAJTkqk zA0$Z;f~sXe@N~Qm@&__}Iy^*X)Wt%UPlw)gYbAL!91hz0NcLyP8_=eefackV-soQ| zIHhrdfRT5Yr{4~&e5(<TNujF({k3{Tu;CZ;bkj(ZP>??&U{m5^*EXJgmTvdmAlFesCt|NHN=rH8&{OH5Zn z(o`9J6jMhp-5p0SmmG56kO^es8d7eTO0#6|@xb3s5yQh;Jo$P$Z1geV!J9+nr`M#j zMUp*Kxib*Et9s$}t`Pp(4RhKg4P_(qjY+bFl&TkxL-XNmK35+^i@KLnYnLvxxv++M zMasD0LNZmQO{7!5%ZJBXhL~aV0jO@=i|>x*@SEmoG|JM7TZhMSh22t8k(dM4Gg9bT z^AKLN!hy$CIO2PMTqo<@JTOp%xF_&cnxWm#?WZip*(JA_W`Q2hot=wMUO6btROZ8l z99QBd!bFVxLg8b}ca# z#qy8JvT@x`GkW8^48>hKG(H~3%4*x$_ALdlEo`EYcqfBK*F}c34ZPtq;?~a=cQKiu`GAIa@CBqNvGl`j`r}`4@&a$@p$km*ML~Qj~z-hXO_LE zvHHtOqEu&s?ek!H#FTjWYgrO=t~i5Ft6EvP>nqT?%M|i?0cm*V3cg#X!57~NUQc#B z5%%~CnDf{Z$|F)qNzyDe+iOh(Q*&zWRx}v%)~~?8hr1v4JGL?%PE#j z3D*f%)F>2wIDl81b3rW2hQ({GAjW1j#M*z4EhZw`b>c%luSU$qhiv!aFMs_WJF4nTdoYGWL1_lO)1&oYB0${^+vocF` tQ!5Jci%O!TLFS8biEscVxtKVZfS4JGSwJ`mC~1gAk{c+=?!+X(1_1mg9^C){ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConstantPad2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConstantPad2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..57c22a7ed3c77d5a6366df9349639d8356d28b05 GIT binary patch literal 397 zcmV;80doEb0tf>L1PBBW0ZM=aYcd4Cf6>`G`8z|u44uF~kSr}f{w)5!%I;*pwPZj) zCA0-U#v-0R;2H_Q@17Gtqw0&lKPcTlI`S~RFhdYP9pf`UW>!c)v<}L>kP!4gOQV9n zqxnQXlV({y<2D>Wjg%X|#nGoe(LxWuqktGc#BZ6uiw&edptYU883dKTV??aH;i|4Z zUmMdtCsT^Q@(bKQ){;X$etBuXjVHv2uYHXN3MrI5@+zpApkYOl4mz}u3%HAx!^OkwO zYe<7W4DNzIZ`yD@x=7x=VZ@a`Lg#G1C-DNkoSqCn%D&gVU(*7=ug~Vbg8B}OQUx`cYn%1F9z^EvSW-r)>cZr rLFLWA%(K%z)=?Hdy%}-8GTO_&ZFZ49dqh6J$Gx0C23rR|8CD%Xich%E literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConstantPad2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConstantPad2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4ba361f50d200c66a6df6e5e7204ea9d8caeb7aa GIT binary patch literal 1861 zcmd;J;$Y_B=3p0K^xDD4z`)=@3!H7lvcLY~O{<^Q&ii@h9 z7Up5Uh40kf2?AeG!o_=W)BeRjUF;{PMcO?!lR=T|og%&e=*8uB7oGU`FK&=Pkvoz< zbALDQ68i;P=kAkanYw?dh7B%vC%dfK^KjKV+j!~AcIv@hDE|AzeaHUVBxk$2%FO+J z+vHH>j7}=OXIU$_-3!ad z%k9hSPuc6UeXvFL$EM^S+iPK7dmW#i-G65DWfZ?(3ly{4D_OYT=+^0dxn&bkil Y_8;Fn$DS>k-Ci|z*#c06AXvoEAB*bW}#NwQvSEePv#hH?slUS0O zpI7X_xPXyei-(Ify(qu5Kmy2P(h}z4$xbcGOU;Qd&PXgsbzlZ5;pJi}NK7eqU~pgn zarwB|i%W_!Q&J%&2nm3#)y>K*(M_!=$S*3<`p3w@%E7|HEWqf*Xz2BUal^_5d+uc< z?2EduXSc`wlkK+Y>-H+BUAEbw9==cEv%Rf@>N)F_?YwpgBL23k{H^z0IB~-ESU#hj zwo~7}OKZ37Jy*eI_u`ViZC7mnz9on4_Aa>Ev1ft1*`9w)!TWY7@Y^o3<=QtvaI)P2 z|DJt6TzA@j=-athAnEBIvm>ed40NvU*}>#%$8n0w_R^hxJG(|rI}SlU+XFnVcCX@l z?VR42>|3xP&hDLS(7r2sJogWlJH-{bFG?I3GeSaK0vwD&JX}m1OhC*6#9SZ=LnH}Ss04EqKPVQt bxHy11Kq^_2fGUlVRDz5EspfEE5?})WNZ+km literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f8b50b029127ba361f892bbc6e087bd42d734bbc GIT binary patch literal 331 zcmV-R0kr-I0tf^M3J?KGzyeHX9X}rs5kSsEBEK7X2ES9VzdqVM6u*QtAv|l_bw6QJ z?Y>0MGG{4sO^}dP42R~#^&p&ct6+bCfGCz#J3qD|%!oIV7`Mr-^p+8z5Jii;g$Uej$ z8oo`>);`zOmA*U@@xL`%b3bD)D!+V~F2BlUp+8gyJHOEoI6r!PzrU{eiNBN~$h{#Q z@W0{=jz80~r$6b@oW9(NqrU)8Pe8iF7ryeHg+Bxei@&X#w!fJ#pT1+ZiNB3m<~~zx zu|HMdF26POgS{^?8@~_e06@cFp}tTS1V8@8i$5pGWWSI{qCW%prayYAtUfE4Ge02f dr@z{G+CPf|*gc5J7Qeqbxj#zb)V{Cuw>?K=o<;xw literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26464d71a4824a7c114d4a3edef5b2579a7e1e70 GIT binary patch literal 331 zcmV-R0kr-I0tf{N2oM2Ezyfgr8@__M@x9;j^1ZTrc|Oqb_dN+0B|c}?@xCdhlfEdc z@jZf|wLR7_Y(BODhrQv0#=iK;Tfa5|Pd={txW1z%r$1I#8@~WVt2)43nm-&*y1kl^ zEWff_Up{b-0KXvgRz0(Qxxc1*EI*E=6Td=v>%P&m(LO9EPrqovrM)Q4nZ2%W55HXr zHNF9X2*36)n!frEGQP65NIp2G?7mzt0l%)yh(4Hnj=sN4r#;^9r9Qpt{J!U4);{mN z5WT%0eZJHmem)IY!anryz`fKqroY*D$38Y-kiY&;SHFhlM?V7RM!(yY#Xq(|us+Z> zm%QRQnm?+@IltJU+djmX&A-U&Wj~6`lD|r-#=bzeb-z-5K)(vlaK1zsUcLU*4nAi% dC%-4X+rGe2QNIIP^}b{Mnm)!Ye7+huK|deWsxbfn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..15e7716b6dd67e3987a878a9a05bea1b98cd151f GIT binary patch literal 525 zcmd;J7Gf``EXglQ&X8g@&@;CB#>|z*#c06AXvoEAB*bW}#NwQvSEePv#hH?slUS0O zpI7X_w1AOai-(Ify(qu5K!R}rBa@ae7f*I-QC@0Jd~rr%L8=2YNC__&OF?2vu>*qx z1BlDV#a>)el$nxR>;TlmE+hc9RyQlNL^rjfAitmMTrD+db)vjC$LqoLOaMw8?o z+XX4{c1JR$>^e-UZ5RBmvYT|^?cNOYGkXsxw(ongIngfSS)*M>TF1V1FVyXt*e2`? znRs~bBm>EP44Hbi2IhzNmaNLME9jVG8;}~kFH1Ji&f)A`>p6NwcKYEx`ySnxV7Ej0 zimie7lD#axKKs&MJlK2mhts|cnZmtox3ugWa&-497=5-W5Swf_;p{P+OEt1~5!d4E zUMO$14Vo3ak4I^R?Sk`qHYtC%?G1S0zt6;+&#vP}xm{6u>b_rxCfRAGaO_L*7qoLY z&SB#w^lh)^OT&FOhZybHFLUm@bgq0~L!N;3j82BVAG#jyogmt4qb1A13i7*=mxzGp zHruXwv-hs$6xk=xVzDpaW1(%7I51{}gt!Da7=?Jam^he#m<5QrKoW*X60A@O<|uwp dEOK#i0Cj*=vL*pl8Y8I$839tw=ENkx1^^8nrknr( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/test_data_set_0/input_0.pb new file mode 100644 index 000000000..9f0198ef6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ + +JÀZY>´ú¼–0a¾i§¿áËN¾3˜±?[ëS¾Ý{ù?c¨¾ô¾¦a?L"Ž> ÿ?â6?ëÚ?~Az?R瀿öy ¿3Ë/>w@¡Î¿®´ë>™Ì¾¿pÆ‘¾%Ú>ò–¾3¢=|Áí¾ªÀ—£?}$¿‰ ¦?€¿æ«;¾ò”­¿š^¥¾L[?sŒ>jI >ÉN.¿5öó;‹£(¿sd¾ýbz?O?¿zÀ£ß¿f•’>ã€>-½ûÏæ>™"¹>«&ú>œþš¿eœ/>(v¼µ?g¼GXó¿=i¿]+Ö?VÃ?2ƒ-¿®ƒ¾ÙŠ0¾§ûI>NÇ6?îX,¾¶Û§?èMŽÒ¾Hλ?9©e¾à¢ ¿æ“þ>€¾g<¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_dilated/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8e8c8eeb7101bdfa1bc6fa9555f21665de0e9582 GIT binary patch literal 251 zcmVV?W$s!ag2AKR+~gjz8$>q`#%kZ9Win%sv*W+&vi1 zRlhihFuwrUBfh|eA3uByX}>SZO}}*iH@{CtB)+Dznm!TJC%y|d48AEuK0aNnr9HNwAwQBS#y#dh0KR-!b-!?G7(D4+ zA3qZ|%)dbJMLVyA5BR&`~`#uI+a=$^6 z3cp-Dw7u$@r@mT~uD{9}@V$(M$-N*+z`uy@kiJfFA3tbE*}j9>6u)XZS-omu>ptvd Ba?k(( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_groups/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_groups/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c94c0546047add2a816d7f5464964edebf198d22 GIT binary patch literal 433 zcmd;J7Gf``EXglQ&X8g@&@;B0#mtq)#c06AXvoEAB*bW}#NwQvSEePv#hH?slUS0O zpI7X_xPXyei-(Ify(qu5K!RxjBa@ae7f*I-QC@0Jd~rr%L8=2YNC__&OF?2vu>*qx z1BlDV#a>)el$nwWF+oTGY^`oqW{GZUML~X1iPk(u4mJ)Z4rT#HCq_fB35*I;1NZh# zTfTSB%T~J^Eg}0@s{QvxaIUbesFSiY@Di|_Ab5FC)5$iw3=U)4h^ZfK88{5=N<22& zK5@Qfdty`I-l9;2edWI=?3)|exi4ObY2O>B3${(uee5dMdfC>^>$TJRl(BEarVo3T zO#N>Au3F8`!TOL*S4r1iht(7I-H3{{^OIMxlUUDhw_u+5o?n&Sd$klf*g$SG@{;H< zRkmFqrDylzUeaEPx`2HQ!aa814>IhF5(kE!kPw#u2cr-V7ZV2)5VHU=8%V+sNrDY3 g$sENG3TZAb4xkRO$|RslVFb3bBImcO-zTEA!Rp}s`_3cp>F=e|5Z%)B+XjK6Pvwm+idxxb)$oIhid7r&-o zsXWk{U%xQxIX~hBx4x8VEx#so4M4l|^}ancYrcq306>;pbH5xifIq2NJU^^I=fBa~ z*gjF{qrYEWX+IKI5WfP~P(QXnT)!o73_!<6pgn_??7l{6mOrVIO25uXr#%Z(h`$~I FDnGrfUi$z5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_groups/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_groups/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3ca22800a39dadb066ea96f24f6556434fe93034 GIT binary patch literal 203 zcmV;+05tyy0tf~O1P}pAzyUPUK0jE>IluBXCBNon<35s}o4$SR!#=q6jy^nHE57J4 z3%{!TFTcX!a=xJMjy%e9`o3u1UOwTp48O=te?Ec_4?glY7eBO+R6f$Z)jl9l&AxEz z&pnGVP`)@!D!y|z*#c06AXvoEAB*bW}#NwQvSEePv#hH?slUS0O zpI7X_xPXyei-(Ify(qu5Kmy2P(h}z4$xbcGOU;Qd&PXgsbzlZ5;pJi}NK65$hv?wr zVlOT!%1lXxm>?towpKSQvqU$wq9DJhMC%_T2P+2)2eSa96QiNm2S$l@Yuk)p-FAv{ zdHc3BeBNuFBDc@MwBNSj$_kqoS7U8`at_+cn60x_`z&j>!f{CF1)hcb9$xiRJo3Q7UJx7I=6D|81BxoUX`n{@89?B zd#_xo+&3}4ecypK!L|$b#qZT&TxM(VopawFmo~c%&nN8DlI36p`Q6A%cK`qY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1921dc0c9c23698dff83c7cccbd87390945d640b GIT binary patch literal 331 zcmV-R0kr-I0tf^M3J?KGzygD(UB7+*eZItP4L=)`gFh2ssJ}%ie7zO2n!hz?A-^r5 zdcJ#bl)u-2@vg1uZBLBEY9 zS3g{Nu0M?213>2xKEF70mp&m_3qEsIXun$ISHHZ(xjy{#w!ak?ct5{k9Y1#$@IHV& zDnDxu3_mWhSHGA!k-ld?9Y3{n<-3YCgS{>4Mn6Pcb3ZR@d^=v>UA|ZbmcMFBAijO` zjXqaL_r4zA3_r?`NIoFT62DR2LB2B8kUb%ij=yS~b-wAJtG>^&qQ8X&96%iVxW6MW d4nI0(WxucP0KnrLh(0$sM!$s)T|dS%gTL+2n9l$J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a01d23daa1ad72cb961066475dc7663b65d5c8c0 GIT binary patch literal 411 zcmV;M0c8FN0tf{N3J?KGkONQp7Cv0dyT0Vkp*_A7;6C_~s=m_}LqCY>B|p$*hP}Xe z^Sj28oxWv)UOqA^4Zg`_0lo>;X+8iMB)c9{0Kc1B4nH6dD7#bs;=b{tEj~knF21rz^S*T`OFzJh zH@mZhy}l0^HNVUc!9LPMrag4Zk-nzBkG_b^YEf4upm)#sJ_@3kvu4gC%r~kem`(y(>?8T z;l8!Z+dlC0BRss`qdpE?4nC}-xV~V;TfO*sx4i_K@;(Zm7C$viIzQ!jRKArMkv+Zv zem*P_S-n?Nr@n~wUA|L3wLLaH!9H7v9Y06>);?8CHox@03q7t4j=s3Z*geuQF+Wu9 z5WgjdAU|Cd7Qe;IJwGVwgugoGXFp=SX1^4Vl|INt6u$>@Ccm==>^`jUW4-7|m_JnF F>b=js!V&-g literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/model.onnx new file mode 100644 index 000000000..a4952d6ca --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/model.onnx @@ -0,0 +1,31 @@ +pytorch0.3: +f +0 +1 +23"Conv* + dilations@ * +group * + kernel_shape@ * +pads@@ * +strides@ torch-jit-export*ÎB1JÀúF>,ÐȽó +¾Òûz¾:¶I> ÉP<¼!î=¿¢½b=N¾ðÓ¼Œç€> Œ‘>}†?¾/9J¾à2'½¯Œ¾ +’>ð7®<°£²¼®£°½#%=x1h=h±T=¨š)="¹><Ôú=œ¾R¾§¾pMH½š>’&>€Û—;@ ê¼xNÇ=G½š¶%>46>äW^>ÛY!¾s){¾¾í[¾ Õ =Ì‚–=6\à½èab>Àù…=²!ˆ>*B2JHá$>´Æu>!!¾ˆ'0½Z +0 + + + +Z +1 + + + +Z +2 + + +b +3 + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..3ca9bc7a1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +JË—?B̟ܿÀ¶µ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..8d22eed62 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad1size1/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J¨÷‚¾ˆ˜7½I¼È¾\Øe= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6cad9021469967ec6f615e1e98f9e43d90bc2a76 GIT binary patch literal 685 zcmYk4Ur1A77{+(b&T*%&si!4aS|LIPbL!?IbUWY2n3ij;wTe&{v}s#zHQm^j6~*$Qk0g^z_?{+vh6J-3qvt<|E!7}Gn zpVuFh_lY@{V>p(l^pwijDK>rEPabdRh+*)N(Dbtq^&NVJ6BC8P^2-Lul#0me+!_wE zP1E_5}fafTg6wn-<9wt2?W2m+m f?0+mÛ>|1 Àtï)¿wæ¿ø‹Ž¿)1¾à;ß¿w ¿>Õ–?r³Ù¾)‰)?½ž¾Å§^?}"¥¿§ŽÊ¿Üi’¾Ã”G?Ëe?;j?ú¾Î*®?Â슾xÆ^?‰µ5¾ +ìà¼ä÷®¾Æbξ[“>2–[?¸êˆ?ú!&?&v–¿j*‰?8~?ýW?ñÜÐ?Ê?\à¡?QÕn>\n<ªf뾊 q¿íú5??ÙϾ…&E¿Žýw¿®¹2=~Ó¾w­Ç¿€Fš?æ™?ðÕ=òO—¾¬«¿L‚ì>‹5>R€¤¿{È?/}8¾àñ½5tÊ? gç=èT6?ÚZ›¿Î±E¿“¾×’Ú;€«¾võ>JÇ>ÕǾñ$ù>‘ê¿êb“?‘!¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..86801f6e85b0d3ea9f4bafb9f6f6490ab34314c5 GIT binary patch literal 411 zcmV;M0c8FN0tf{N3J?KGkOSN9lp7uAio~Rg}w^T>OPfrm_F_?hQ2mhw!X(O z6+Rp~T|Rb94n7bOH$JMZn?A;ojJ^a3h`j(?=RI*h2R;}Vg}z7*4Lw#2e!mtDg+8Lh z&pwUY%D(gqI6qcn8b2~B6FvdnTt2+smp!hPKfg%|p1y=x!aa`In7)=9pgscc_dN~i zV!oz5Z$9tn>b^o8l0DC1;yzC3w!Tnyti6@8QNMuLHoxXmg+JuXs6KD@c0XnxU%wwk FtUariy<`9Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f4c699d5e45fa19f25362eab8a0729ce68ff7f60 GIT binary patch literal 601 zcmd;J7Gf``EXglQ&X8g@&@;9=#KM)v#c06AXvoEAB*bW}#NwQvSEePv#hH?slUS0O zpI7X_xPXyei-(Ify(qu5Kmy2P(h}z4$xbcGOU;Qd&PXgsbzlW4;pJi}NK7eqU~*sr zarwB|i%W_!Q&J%&2nm3#)y>K*(M_!=$S*3*Gp0)(srj82S(UI&}|KHtqI|y$?!b?3P3Y*eRS~-qW)E``)xeA$AO#m+x6nzs2Uj zv_G~Y)=G9UyS~}(5GvXG;%dfT9fO#CB_{;!cG#`i>&7p-ucKeq)?spjZNasJd*&2n z?p+blx#z>wV7s7XUb|h3+x8xraCvWm&WybcE*dr$yfyb+m~+ThgeS?)LvW`p<1&_g z`%c>1b+pv(6?x@qmos&`ZAoGI-hB-__6o#bw!Ojo%(k8F%if@?3Hx@M3-4>bX}2#U zLwj$+OdH#pDeU`#f~4$vv;+4UTu<2Bzx?LjD>uH_+PqNMw`9gMTLZl=TgTHO`yARN z_ZYkovSDc7uxHI17rPG+lWm@(QBW==atqxu7dmCoRhKJ!7RBq zrP|o;7mMP)C)(|{Z=MU-X-RUhfWp$qOMs(X(N6A#x!uB!4|_B0j@d?u17lf8h)aNj wQHY0&iGvY{SwJ*M!VpOUBnZN+QT(73!NtV^)BzSu0;)7dQVBQ0iAjJB0OP~WasU7T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..4582b0478 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +JÁv7¿å¿ðZ¿>ƒ´? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..3db772df5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_pad2size1/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +JVrA¾ÄK·>Xe@¾lü]= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3b3b3345c345c9cab8c84a80584b6d816830e4e0 GIT binary patch literal 525 zcmd;J7Gf``EXglQ&X8g@&@;CB#>|z*#c06AXvoEAB*bW}#NwQvSEePv#hH?slUS0O zpI7X_xPXyei-(Ify(qu5Kmy2P(h}z4$xbcGOU;Qd&PXgsbzlZ5;pJi}NK7eqU~pgn zarwB|i%W_!Q&Ni^n1FmC0kE~YS(zoesTBqJMI~DQ7&%xuSU8vk7@Zgmy*@CyWlh@0 zblP=aiWQ69p;v1AG+xW@-S)G`?#tI7wmA!*>4h0F{rd-S&_Z(n!umED{Lcer(H8~8=D_(wkk`-?D$yY_FZXG zvs<^SYhPJbhh0J(!ybpV9X1ChpRqkt@z=J>S;=l%fUn*EnN|BNxGMLZ2#B>~P+e-< zD3Q63Atlsq*_Bg!=VOc2!y5IaX_TbV*mgE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..805c053fb33b2114c3bc2d9b03797a464d9e0689 GIT binary patch literal 331 zcmV-R0kr-I0tf^M3J?KGzyg8N_&lM;r@!11OuhlGi$4&O7Cs&^;ywuWy}c_F4?U3w z13wVLGrv1(+`qcd=DxJsy*^0+r9K`?n7?H2OFjjBAwGUDGQdw*AU{H!(>~5*>A&6F z9X}o_zQ2!Fy1&Ihb-ysyDZmOZyuaa{$3HQ@Q9r;5 z#=Hm9gua2Em_A-b06*3TQon!jSU<~Bwm(B=&p&19ZNHH+;l9@VJioHA(>^6R3%qEw z`Mw}Qg}==G)4$%M)V)Lc;J&_EJ--3-xW2pw6TeFZ9=#}Q$vzG@d%w&v96#;%&OT_6 zmOp6^vOnWxZoj{tWxtN6@V@>|IzItd^}TtPu)bw>2ESCD0l#FvzrLS%fxZm>)W2ZR dTD_rT!9OH$)<2L#M!zw_`9Hqi^*>q_h`rahpq2mt literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/test_data_set_0/output_0.pb new file mode 100644 index 000000000..1c4d08eee --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv1d_stride/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J Dö>dg¾B45?,îl=Ž‚>}¾Œ?2J?qp<¿ÆU¿èy¾Üº1¿~?žHv¿âi³¾Š’¾`èÓ¾RA¾â¥T¿)¾ª¿ât">t»õ¾ÆN?¸"½d>et?äÿ>(»^>hPb=†Pn?fæ¿64Õ>¢á.¿ãá?]¿Ò+\¿HR$¿ä¼0ù6¾0®‡¼h„D½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..8d726ddb328eb890fa833a5ca08829b22e04943a GIT binary patch literal 593 zcmd;J7Gf``EXglQ&X8g@&@;B$#lls<#c06AXvoEAB*bW}#NwQvSEePz#hH?slUS0O zpI7X_=)kyukzI?2i#5F{zqCLC$YatH<>JXsEy_#Hi7(DbEJ$@=c3=W2669hjNK7eq zV1Pi7kN_8ZaY<2TN-E4GApx)hbh9!`bWbWg)4y+f;g0J*wQt+^-q-fE zbKv`8{eH9gKJ)C{edpNZ_MOpp->1YUv~STH{(UQ^Ke35g#Jn$&k;Tp-`~BXUQ(60L zWc2stsEgaOAM>^gm6W!VS*N}4OSJRe;zL|^W^(;|J)Vp1oA^_9UqeU4Zt>V4yOVRI z?N&Eu*ooN9+Iu)wbDzc1DSLx;JnSY!U)&>9w81uKS*7g)2j;zZcue*!yRg!B1>cIj z1vSU_?3@#6R~NZ;@8qf9_8wTPz4yzBEqfEpb@uoylik~~KX6~%ZTEeLHa)O)SyQn$ zbdro+!XgQq=Vc*wQdQ4v{eO7bHKyt83z==QPxq~!-Pb8bb{pr^VZ&$^NN*Slr%6#g~Yf-I2eTlxR^MYfS4JG*@2i9Bx#5w$pV!GDPW4? g2c-foE)JkhkOWH-P_;3VYLHPN304s8#3aB50ObI|YybcN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..796ab0d212f3d32c5ee8a99141ae0e6c1fae47cd GIT binary patch literal 853 zcmV~$4N%i{7y#fo1QwE@Fm)_YW2B>qEJzA`Qz+)#|~6;3j93wwsPTkHLR{_WbcjJ&FO$dYpLGGkTfSzALOe$O36~8u~!rj<211 zm78*@-MgQLQ?}wooM~A}g?Vz^bTk5WEB4UNSsvRO0?^g=CSNN)0tb(o@n64~$sY@` zbm|Ti&7EgP;Yk{JSVycf85*2Da6#tatNv4CSbsQ4_&MCG{gq{H$)V8qGqJQ+>0W

+#I61CWbhGOzc0WCCK)`mbStI$I%ZS+zy{;iV^pUV|0#+^tG|;_ zdjRz9Hkc9qjnbobP)$a$ZC?<^{M_q$C*>{{ZhS&x1Gmr+7f+R`d01h53i97lVZ_8? z8UHpd3u}fP%Mu)GZDIRge-|}9?cl5Q;v?Zlc-ZVgne}77DR%{J|J{HNX9xMqs@Sp9 ziL|!7o)_h0U|UHw&j02h8q`y^28t*W*h9#pha|&J-2f*h~Aird(+n8kG^ODWvaVO!4C$uOlDvM@g4EbibfcyFZxM_#!`%Uw>?xn)ScUCeMoK-Z-| z@te;!QRvqP@RL>HNcp26ihhe9+IWex=QUxlybS~o+v6bZKS}2|w8ON(j@Ca@ XX|ZJx^xp=^^j!z+s_|lMgp~dViZ+oA literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..aaced42abe0a530056f533a4862dd9853e734b7a GIT binary patch literal 653 zcmV;80&@Kb0tf^M1qcKX0ZM=cW*ol0cEOszKR*D!?oh11*f%*pa!y1(mSbSPHizrJ zF786U9?HhJ+r?sOtQD4K}AW+e;1998DNRau%o=v#fi zj$?toGRd~RxiKWZ^IQzRo6gETPjzrUEPD4oqN1ff7Ol>{bmxY@*%dZEhA!>C!=(;B zFw+~oajzV|7&4bW%Q&|^!GAYDnxK(B%Xch49HYQKm6J?AUIE~}TVj8|vzKK*TWlLY zO1vCDIny4$VI~v4mc*65o(*e1d4e-O4%37_dfu!)DGw;VObp{b7SiUuZmeSbv1MEG027`Mf~tF1jhUW|o4 zHIPBRMcj41sN#n{XKswXTOdro#=bbeDzu3|a_W-42>-Xg-0>d2SmZOk^nE`*Kvu@Q zoJ|V9-cl_+B7@#OBtsRyQq#u1*b=6_$TK=WOsej^Ryg@S%c_7r)(nz9qzf89OPp*z zQp3SM+ueV@3Q>{2G&=S^(ResMp8aA!ui+WLT0Drpip+~YL|2(UFlzfg7&iSr_xnyi zsBrAQoC^%UDtMwjjtZr|G}^|#pgd*0H@kGdY(_S}__ZZJaqA?%M3lI^ULxGSrt*@$ zA?1TVmY8KfENEmuigcj9%ur;%UE7tvZ9+mn%c6ijfcgSIYUZ&%h*P;d!g*Uh_|?a} nmSw@d9SH(I=#FVWwGBxYEFD{Mq)v#1G57&NRc2HOF?2v zu>%7Hf`kOP*o#YwGE-7vCJ70E9iW?)S)!X-QIKC$qP2jLgN1{UgPDU_fYFK3&}#zY zxj3eMlUs%N1-zTTmydtHZ4{5jzJRauY^9qI?0vzwbFYe|kZnWZa~r*d=WTzy=iBGd z?`~Tsa@f|PGJCg&{Z1RH*Gp^{Sl{1!;34*G!)$kL*Fjsp2~B$o{gv$|JT%^`@$8?CmLvxY z$ZbYm0*#wl>=^7Lc6*3x?Bh*Svx|}jhMI6x!Bmq?$BdLZN1(tMT5?})Wk!^Qx literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..040d7b61b6e9e5e897d4f67a583591ea02526e52 GIT binary patch literal 1165 zcmV~$3pCYt902e4BxVZi$wZTCX+k zrJ^{F9v+4J|9!96B3n3wq79Wa97HnG_W9^&>S*f-bOiG>e3E7txmExyE9dsr_;6JR zywP%ZA4^%KkKPJ*KGZmjeh-wB`0Z1CH1>%1JgF>UkZ;5iG!d_6x#_2Qr_Dx`SToAG?;Up)e^^KNeKcXio=(>B zE&&Sl&*OzOW2vC_Hcc$^q;o~HxY}KPAPmf9s+Q>`ZGd z)iA%in2vpQ2$yc2;>Cu>EYEzLUtgJyDC=g5Y)2{_IfYAvJ5h401NL}ms0++^YET7W zv4)UZ7EiH;SR)vd^ssTCEC{e z*Mqf&3wG#=z^nONdKTTz^@^;>D!UX)QiWubT20Ci9iZKI8WXznDN|U668)K6{xU;m zvLRd*qbkSF(Ri#A|Hkg7+2d!{(e$J5N^+l>N%P-Gm=lYj_>7(C^d=C$7(C~?eeKtn z)Hb5hDbQ9ID7)#uz;N7g*LSNVj!2Ge|3^T_ZK{xUe4%RRmD=mQn6c!&Y=j&SX0`n~{l!7aQ7dh{4eZ zY0POgyTa1ymR+KE>kH#*k7}w9} zu&M>kZ8~xIsTanTo8ezC!trFX67E)ky0)xzfM3n`l63st$_1N~vdg z5C>;r*kmXeC2pn8+Ej{(D54uy-Z;m1gbY^NQCi3~@Nn*cOTYHh#d8T6dIib;f$s=5d)CEvHzYvlP>x3)Gc6mSe+1UEJSN z#pk)^fm>`O=FiF`jfi$|oVHW~w*^xn)sk*JM1`ez0@u0YuTR73fZ;i;ntCtg9 z<^IhqD*g`1YD?&htp$-m4%>Eq0y3AHlHvrxk_EP8v}+WvKMsXTyHb=@A?Rx7!rY*9 yEH>X*npk@m;u<#MaO6dnSN03%*IWrlJinx0_X=raMk;nY1Yypk8?Cwag#8cw4>8pM literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a37070713e8328a6e535e1e91da22e28de92b5ac GIT binary patch literal 525 zcmV+o0`mO`0tf^M1PBBW0ZM=bh-!;I>_1jM_J*#$e>xXF@4#Zd*vPFu-rI^j{b~)r zcPoWHi#R$z?hXaND3r53O!3pc`y5q1g%f4IVxz`A%Zlwi&ojWixeW=uaAhgHxHUn( z^BWPqHD24jV2Sj*uNQ*8o4e+{`Wg4UjzsP~U-%uq>g{K~cTf}n=JRsLqb3~I8zBv!3GS}C2riYxKGP(If@2GnLg zmP+!pS=ZZ{%6G%&+HpsLM1 zr7;~o{(`nXCQT7OXnuITE9MNp{OaL8^ye47DFi1zD8T1FoTtFP4g?QBwx^OlP$`u> z`0(JqVMH!HxQYlqp6vxbyyx`3D0dvb(5_xQO1Zy2V!^1sr$OGnN0f5EpdyvN2ug{* zyvX7`Lj}mbqW8)^Toenxz<$U(tDV2T_QRe&JM@gc&lsmZ;=}~M24vAbG+VwtenTQZ z3i}2>%Mq46juIw5&|@gPI?vTUFWg~1*PRkSPL!=aZh|I1+Q#WVdJ)1tb|0`lj12)k P7cXxxYEFD{Mq)v#1G57&NRc2HOF?1^ zSPx8}02h04Nl|7>D$FDy0k8vfvocF`Q!5Jci%PT>FmkYPFmf<+Fbgm`F&cVJV3hcJ zZBO6(S+*aFnfFRZZ`#Xs>xeCXI;WlLPG!3gKUv#L_t^HWlkVLsXdqx$;~=s3$NIlE z55#ZS#F_8d8yC93_FZ_x-c4F}Y#p{NwK*1Qw3mVP!QQkqfqg!|x%R%B^TSr6`Gw8h zAG~(ciYxZch;H4>W>>nm;1=_qq>yR0IlEbH8H9Xoj-O(;TOqVyYmGUv>a4pysF2n3whTN;^UetM@A2jzGiMLA&K3De=iKGTZ38Cl~QHu>^J2EUG zFxwu`^Dbg$GOq}8r>7{N?}@JJMTi-81pB*eh?y{D64@Ir{(DCLboL@ryEx2F*btld#oYDv<~L{MRt!KAx9Q9imQK#PDT()zdrw^}V%waHfFitZYC zEbncX-#AWfYWtXx%rO*Zw6r^DhhetsOR9UP9)yL9kmT$Ml_vSfK$F*8&!(CfyaG7^BwyfAgQ1h?SyCxewz;PCD6i1lt5B4^01hyTB_Bsf$qqn3TI z;ENxM@t|@ysoav;X_=S=*p r{Z}aWT~r>$ao`o7C!e^^z?yj$wQn`0ONt&$?L_RWxe7YERm%SW3x7Co literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_padded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_padded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b1f7a357c39f8faeda91873db48b0f2067384fe4 GIT binary patch literal 1165 zcmWN@e^|_S00;2uE|uqOo_b`@QIc}`Q4XOW-_IwK9&5#H7x`9-vpu9*Qc8+LNQF>2 zNv?_2ly1-JnsuM|*J@gdnv*6gPEJ7X0rJnRMSOFKY&m({~| z{u(Ct{EQmsRO(Z?GCXU143%UTGl{n86NCO@9dl=*js8Yjrc)T!6p)sCB6!th<7Cb` z+L~4k$53BpbSv@S9B~cZwVgD1-WZgAZ&*{nx6RLwMP!A{?Lh$)=;#)k7TB$qnyYg8qT@%XjzX` zh@Uk9Pq+3m4<8N@7DM#aTbW=oS_fpe9pIXdw-HW!k=}Wc1+QeMfaP+L5IKG=`)RK; zK3p2Y&Ved2J7@$Q!8Jscx{_(^-Z8_V8!hvGhKyzfyBowa?}l}xIO`mvj~lRfv4JJ- zu%W8cbwnMJkFJd=L?P!%{O=pd&^MKkh1&@>uX2gE%Uw=ozXi!Tljx?e6G_Mg5vt8E z^}Xla5kAn*%(Ws!CmdlbEGG+n7E^?9_c?eI{Vy4EtVizhBkY1#J6&|MiJaE;K;yX% zvoG4A+ev`}o4bvhts|LuwVNP~2to0VrPME7gi{OEZ0!kOdXTEgnZ`U;U7yeVR_sUJ zsI!n_*-W^jR^abn$F{-8Y|o+pFUzEv18&UY|LjKpzNw?PM`myQ|Nb&yoE6-@7A(0k(pCn+h#EprT=I!_6= z+rCIKWUw3WcG3Z@6%_nS&Nbv8_9`zGbz@;f(OtphvD5Xl@;1YsKZdrWp6GGnX;M}N z#IAap?^6g1(}bU8pG47w{ppBt&tYy*{8N$KsY3!zoY5Z7$bhpkLN)S7nAZ}1@E<1BG` zWgjyoX*fx_igp}yMypE~E|og7beT7fZIKX@Q~`UL52DMPNK2Q2on5kz#U{)F7hl5^ z&Cj_~^B|X>SfKwRcn0$fy@r1IR*bq763c9cn|Wur%I#_3j~5}f<^-xY+T(}&W;Su} xlg5ggN31hMLmsqv(2v5*DE`hD8JogLR@GVd{(Bj=Hx%NvEyEP;Wn{Rz;6J2UPC5Vp literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_strided/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_strided/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1124f00a859c3210a122902ad84f13c4602d636c GIT binary patch literal 449 zcmd;J7Gf``EXglQ&X8g@&@;AL#mrT}#c06AXvoEAB*bW}#NwQvSEePz#hH?slUS0O zpI7X_=)kyukzI?2i#5F{zqCMtWdS3TmM9lbc4|>xYEFD{Mq)v#1G57&NRc2HOF?2v zu>%7Hf`kOP*o#YwGE-8E9he-LfFeQyU5 zz+RvA`nC)S$IP!?`nSn1JCAE}C9Ii5wv`n<- zx;!qPL|QMq-}k?gC5y7FG<9|Itkj}AqXa`1YQ^LJf z8FW$aM#=3*x%nZbaMPydrxkL+oqn)tUrxK!X8?moN2iHZ@`A(}Q z)H`iNS$`nCoV|iNBKmNyG;k{HbWq0-nWOyevXz5@7mdYeKG{_*(6g1 zp>1mpnVe~+)v0^%b#M@V9l9UoT@GkprKYq_S9I7kh{jr1YWS>&98@PU5vyQuAf4`1 zkKnuPRm^oT4Lxt1hL>-BAl+O@i8kHXQlN&7{wvAv>RF9;xeIhzccIMr0xS9|g_<9S zQmah~nqIMl%zhhY-n|@^j(&6`oWpj98b~U$Ve+9tHuzVf=H8)aD39%66ZZVoE_n0WLfqE)paYuGO zbyMe;P*(n9H&UAr?stxSa-g(&M zRZexI$7oUi0Orm}pcL~$(rfO(a77TV(WWxRYXQIJy+2uP*0RoO0bM-L!$jhUMrqWs sDOVa%+_i-Kv*TfntOYn#1(WZ}V?VAR13o|~ZBRd^iMo79pSKkL2N?x2J^%m! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_strided/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_strided/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ccd62e862 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_strided/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J€4“š½ó‰¾¹ ½‡~¾ll¸=Œ`ƒ½±HÄ=XÚÞ0†Q<´¬ç< ×Y?´ ²>:¸û=•Ð^¾r¢ú=|;’><ž‚¾~!¾¡é~>È6 ¿G&>oÞ·>ô?ʳ彘û$<þ(¿‹P=޲½>†#ª>z2#¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_with_multiplier/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_with_multiplier/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..964382aac2dba96a25389a5284e4fc8c49fa7652 GIT binary patch literal 609 zcmd;J7Gf``EXglQ&X8g@&@;9=#lls<#c06AXvoEAB*bW}#NwQvSEePz#hH?slUS0O zpI7X_=)kyukzI?2i#5F{zqCMtWdS3TmM9lbc4|>xYEFD{Mq)v#1G57&NRc2HOF?2v zu>%7Hf`kOP*o#YwGE-7vCJ70E9iW?)S)!X-QIKC$qP2mEgM)*SgPDU_fYFK3&}#vc zr?0r(Z=>mZD^ry00uA`=9#kaTMm9*<3Cy^)S8cQ0zGI2v`xd-#vz?`J)b{3g4m&a7 zEqlLRT(dW)uGV(-@#A|>U--Y*!fXAW8OKiSVK}K|Rnw!p_t&Mbwk6ZK_i4|1wzuK+ zLR*0kxwgkve6S4&5#6()+jdWE2&df~Wfj}kpO)->mi*Fo%{fn7iA$UImPv5#vwkCB zSK?-8>z00aufTNvJs->>_9!P@*}F%{z*aBo=-$_J9_`giklmNnwZZmi8n>MbGuyrg zCExbeWn9{OD*u{oMBAr58dJCJY2doIXTs4ETVY$ieWyNg?OV`dX1k+Rai4>PgiXPt zt$UdgU)pLd+HAW(F32`!Tk2l5lnb_dq-t$B-kjaTHR+u#qosmfLV1_1mL>-WD6EXU z6!JI8?R%N2Xs4UVZ^y7OXV0`fmV1{na@n15SY+$-NZK|^8W_VuVq78|j6wojOdL!= z%mT!0APkZ;M3UqH3NivQGYCiVgHi<-7cg#wKsq>*fU1p=RD+BH=>SQxI57#Z0RXO$ B#{d8T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_with_multiplier/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_depthwise_with_multiplier/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5b8e465623cc1966ffd5e7c77800d403f7d22a74 GIT binary patch literal 1165 zcmV~$4LH!@;u&JncRt}E^p!N z$sK#)P7%%A>hAYF+X}g>(92}EE!I<3i}U{UGW&d3CM;8y8OzN2y}(oKHwrFxI!egj z7sJRu?G&PgiP1id(pSRs;)o z+aPUJ3=cXt3iH~&(yV!1#Q0jO7+;T-+9S1k2I2&$^t(X3b%0x^0&r*2ICE@;D^UYW z8$Ox}w;iw2P;5w}kf0{G#3^PQ{<<{Xuz1PhSL;;LB4k*b{V4 zlRJ2v>=+8Aj!YlXZscQDz7M#0tU^VpoSdC~4pk9+A>Y^z)t|a*o_el?q|lGRc1s_| z?7Ij!1TjrZ3$HJs;%qNQX)#YZsoA(mpv7*(96f3{LTi?|1Gi0p ziK;3x^L_#LY%oAkd8sf3fD)`;nEry zz!2h6+sk|s$AB@W*N-EhjPDf%RTvi2gq#+&Y-cRyac&Tq^)s;f(*kGO%HV70w{EJ8;Qmlx+Isuw9+Gzchm6kPMO{1&>$-mJenC3cw)H)e! z`gHI^$N-Z)=!8vE1w`@sttKjSHOzidiI&DO+Ir>;QC$-udq6_$&($LDE^|u|8xeT*_&IuKsdd#LXb64%Gt z3QZzW@cm7KTbJ>`Gt@+TfB7QlefDeQL z-))E8>`hR5HPp{sVn(Aj%OJ?<5i{pyf&9U8tl$;ExIB^gmTn+(g^@V#rH5~xG@-v{ z8aCueVX2&t>AFff&3TJCC5tgfl!eZEN~E$$!Q{eb;_%@J=}a%D0b44-qppUWBr0t8 ztB2y|aq7f-hg~yjrffO_YINUXwOR&KBm*b)EilpPLidk)3tz3U1<$I_F|coq_L=)p z@HYBTun7ZIqK+yvAA(goM<_8~hd|L)Oz8@yH>1sA&oT$pP9K2&%R&_S3z+9=@i-i> rMA6d$M($RNtKX>z-#i;Rt4@_?|=1_S&x_{&A7Zot%pKsdpb=z5>HQF za`KGMEatkZ}nq%*i4y2KTbbWjgc-!THnSUklXf~WQ zK3uYqh*cRSBaM-HANx>*7>K}(hc^{CP?VyZ1iWZam*|F{-%3HE#rCtpAZLlO;`fcrSnkRC&8hi zQj*ZhXWY>mIfe_UIr|xL(H)@@dnqUal7Kngjl`o6@Tn)QUerUw>wO3-ipWfdG3d`X z!em4;j!lGMU8e+#7p&;h<1%p8zfg*og+XUw0t`)R;KWEf{y3;6kCvs-4XXc$w>n?- z#!5#94sODY0fAs&7>wnuk6}7H4?>TLh1{SD=%wSZdG0h?)O{#iZ?y$&rXDFTyjsm9 z`dKjiYqK!g;*7U1=AxU^eS)DJ7#k2^j$s$0*;a?zi7IG#SA+fPT;THstkfn4%IdR- zU!n=SYkMu|e@Ii+s6GbWyC!JP^M!M_Zh((?93-m@uy;uf9WCcU0T01UEP}_8nMC+J i1Qwk$akwiLJ<|$^cy%T`i4MWBh6i{~si5MRN%B9yoCwbV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_dilated/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_dilated/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..21e16f256749c9a586345561ddb087572a0ae38f GIT binary patch literal 513 zcmd;J7Gf``EXglQ&X8g@&@;Ar#mrT}#c06AXvoEAB*bW}#NwQvSEePz#hH?slUS0O zpI7X_xYEFD{Mq)v#1G57&NRc2HOF?2v zu>&Inf`kOP*o#YwGE-7vCJ70E9iW?)S)!X-QIKC$qV|*2C<3#Gx9*rg0Zdh7q z05_t>VS;ktRyz-iU1emfZ!wxz<<-1Q*P|7^=J06K62Jvrr0dKfSRbg3%hgU}Oe^4K ziHN9pnmEY4taIed%LcX>QJ1An+vX}^vn&Od2|T2GZ+*rWPGU?hIuD2P%ShVFi(oco zPeY2kP@yWHN}u|mSyY9DHFpi#2#=Gfo=((hs>Yh9M))8y1Q)~!pjwh8d2W1+xC>gK zWZwXUg=WFqU^WN*%yH>jiv| ztcRS{Vp<^g6DsSg@xJ8N(#8)#SR`v8Z>==od;5DT$8~|pR2HwW>2LgzdJYSwyW>6C zSNigRD(nr6MZ-2Oyc)`dZ(>D!GDDs5Oe}$>l!rJ=Egp}ah=mDTT~IOQqK)Prs=KWZ z8jfUA6kU^C?F;#xR@`gCq_T}r{w9gm z*6B-|N8=zyDViLqE1;vCwP4n~1%3G1nDC zVjx@0C-ON(&=*-pCTbH+a z+}U=}+N%R4en>x5KE_$>Kqy)h00zm<(Dv6mc(*!-Y6XnYf9$+L+%XqiS0Fg)pM$Qf z$r?sz3W=+>0BdU#2^_V;&mV`Fu<{e&7ga_p=atizb`MBp-(hCoZ-5mQE1)N@oLFe* zLS{x3W@v_?-Trban~oBfl}CU{N+hlaxnRo=MOEh@YUO?tr)ONJ{~ET^3iq!t(!U2c zbX_1({<^4YItMw)ESOlj6lu;q=-%3ZqJ$@;!E%B=&C~$VC6=jhA@~M4(X!NeYfc*ZUy+y&V#Ss*3c2@Oa8ApNKbFZ1=Eq+a1U*)0%)mufcV2b$tkzA5}skSqD2#lwWMon!`EUlOag6Sw=W z2g!b*9@ip}D^?(>Zf$h$nG$Gm$|SeHh%j|pAal6;Jglmcm->#1N#&^&w3%W-+H)(y zHPoSk-@@r-b46ThEr7K5)krQ3(O5wsu8CKY@{)~e4qrS-p2cR9+r@n7UG@Q$d(PlE z{}Y|5|Bcz;#348P<4Mnb8(MnV68vS>(5X2F?cVj&B2x@ao%b2rSt3k~szon34asBU zT9B`e#Y=h;+S_UcBR`ii7q~H0S7|w(=%|B-kp?x1{kdQilEFyIworrBNhHT89r%Sj znv|5s%&8b<*kkL+O(Q*NVVR8dc&>rG+!zpUwnHo5beh;SOfC<7!;4)4a1cHxX536V z?`$P0dgKh*ML7_k+JUo!Ss+^6OijL6lg5Q7(KTc~ZqIlGA%nkSjG>CucEL)rLu-&s zcFsg%DFc-@3GglI!E;AA$$cA5Pb>16HxI0ltv^XEljrkxoeagMy97&Y2XMV>GrH9U zga2Rz9%x7gl{`~Wn_~}Y^VGrbO9r_cv8;G c6)tUdgOuS>@Qt_vJt>zUTBDoZQ8$MF0H*Z$$N&HU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_dilated/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_dilated/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..be46da40619267f629ef75fec486c08262c76ac9 GIT binary patch literal 157 zcmV;O0Al|L0tf;K0|)~U0ZNbo9-m7-a6bUQ9D*J`I&(=r3}rjLh-@UkdQU*VQnn92 zU{_2$=vxYEFD{Mq)v#1G58Am|aVdi=`kj zrPzT10zpCoTuBb&RXN1DZ-cswT?CWfz8Tr?Y!8HH?lqRb zvNwT2)@H%N3A@iOU%L0g4WWJi*X-K6)6Z$&n(Qfi8)hur^Gm3EZ^*uHwrsal_H{9_ z+T92+v@4q3zju?Fs+~ceik-{fj=cvqdfFD8u-L~v?ZMs}xplTWk}P&NcE;F#u(7gZ zx+Jl$VP2cfw`baR1}tCqoY?)(wnb!t?dLh}`{Mp}@4X@KYWJ_<$=;UC>9#KdeC<>p z8t>z{wcqyN`b&FvxNoy{us5@d3v;*o!M)w)%6j{~Us8kiF6nw|dq;KAUM)oqHc(g@ zc}Z+xV6@fP`C^ZWaP{5-KkYpxk8apLaObg!k_N`CkQkQ;2cwVx7ZV2)5VHU=8xXUC rBn^=yL4qI!%pf|7ACwxnxHy11!8($Fs*RCUgH(cafFxO*m;~4W-j&7L literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0d40425466ae7fb2f5758ac82c66b8ef2038b206 GIT binary patch literal 973 zcmV~$4LHe8vXKVEJ?|UQZaV&MMl$VxsHZ=Dbr8-5DrzAt0 z*PZj|)WtJmk3I7E|GuYTGI^+B@t`HEXWS!<+&s=cAFdJCm}|;4u`~?Ta1<*}=qp>r zTRy$`D&_~w{`(O<@=OA+Ps|dnGK&dryMtM(CmnhlGdK~hBll}hLd8veN4k_J{4{(s ztLDdGl))f5wr-*M=|c|Y*BZcE@eu5J-$UO_oDK&tBo-I$aBcea(- zG~U5d?Q=4AVV!LsXkw3tcVSwU6?`>xfE3#nWAr;ys>oI1)xmke#?X08TOFmX_ex+& z*@+iLvtYbp1{1Ny$h#Jg`oynkL!vZ5^qB*U?@lF=R<6)2a1zRHm0`?_1DNDii0GaH zan@%bSDe5m?|lfugi@Sy>85jayNQv&1=z+eGR5OSM8AT0+UJOGw{0iCCG|j#P)z1(q2km^%a6hws8u4_{0+eoQywzXAEdEhupo<7EA9_^(fi zqA*wFGI|VZmQjbFYjB551fr$w(A8^;l6z;-)2Ikr`##7r zNmyv!M8tY0w3wJ=*Ej~kD7(#AF!793Ug6>Ggfj4P_ou;EMmln&DfGDd0Ws_~XNpv7 z@Q=-PGCFx5QP-+Gw`T%$M0^8fPpp^`xCqAVb@{UC)mqoy?@Q7 zFGkXc!C%;m`yJrnAsMC)aXO@KYOEER;5JS?gvIi4g)N0wr)ubzYidBlAE|G;7w}8U z@tC6+pIGq0?lcd&G%a*)ypMY9^1=`16{K!#6VrL*G@kMQf^`0?qid38X8HSkFxK%w z9vuPR5D2Q$91_4ugO{HDG-b;rEYY|_-1JLO&3mKBFArywDp)vJjJn?|Nl;lbn$-9S zk7o10g_}p~Lwj-Nu^YCn^6+F~3%%@Z56&OQVKg(2we8(>>!ONk+U#*SbeVZxQAaz2 zmS{+T4&^%@&=;PLLdU=;l60el2zm>7`yy80e})a=o&W#< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c1539b0cf8931a9fcce4cebdb1d43f6f62d0eba1 GIT binary patch literal 781 zcmV~$eN4<@8~|`B=NHk5t|&rRa&u{SQ_nq|@*iiS$)^7(MnIT2^W*@&&ePKg41Cxmmk*379i1EqZr z$)%iV;&nc!d0^oKV#&8gqfA1-Ra-!oHAt?ezXCnVnYo}~!$_-ml}6mNG4ImS8%q- z4*H6UglQYiLX_nzta|j5f9dH0iu^K&>+A-V9W^~svM)45BmYV zhHSKz+rrI`GWaD5p!_}$)-tyQbPxYEFD{Mq)v#1G58Am|aVdi=`kj zrPzT10zpCoTnDr0x=RQukB8DI8@D(>F9 z;$Mv|hq8^WO3M%1&HFa*EfUq=w`bO~y%~o>ZJ${C+VQ-eWP3nMVYkGDXM2M#w(pfz z(%LuYXy)D(tIpd#2zj~NZi}fM$L9;SKA$Jq-ucL6dqP=z--(Hpw(M+o_x`!F!}fHY z`o4~@zIFxcVr?@rj_xh^&}j4T%8@BAdP*kv2qWZ4Q4E1iCfVNkAB+lKm zebEqRTRzEh-<9ird(U)<@9pjo-Ip=*(B2nf2oq_-wmEV6~0h-Ojxm zZqBuxAQflBt|zsRnt<81SuZZ^RrqvbcS^Il-GVJkZAzze?GxA{wO31#gAEi` zMqUyU;!|y3ZQCa3;+NC literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups_thnn/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups_thnn/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f1b2fde5046c26029b2376205da5af7664e6d3e0 GIT binary patch literal 973 zcmV~$4LHQbS$P_Dz!4Amm~ha?T(=~o9sps85|3<{5{R(y;9K)Ye+Avua zMzpRyv@I`Q=$WXa$zuiRCYZ&gk*mO;(n0=(L}np@13NZ3kPwxZuxdiYEMD(r&rKTW zfaFI|K8PV=FC9ka*i#6tgs*d7piDMMPX}BlKU`d)q0MR(R|Y{*#4Hrm%|p0-Gb#H| zN5;LlM3-a6Sk$!Qf+!CD-L(adUdp5S8TV+lc#@`fS_#V@Ekb!#Em*7$pt$uK$%%MQ z3x8ds&Fl;Ya)mH-;31jz-U6K+N#Mc6Va4leT0bR)^P-)Mm_G|9MSMt0Yl6UATrfnx zr0x#OG`9D1h!>`_J!X5+b;V8->$yaJDax|^rcMTw@yDXYW>Ib?3;2>Oj*H*Z8{^c zTcCPr0SKaNAo)%SJkOJYipp`_yc-QGa;oeM2J0$IaFnYc{K89c#2N@ST7a>sSu*(O z4AlB_*on*AAd1^VL-M!6hOvySt!6=xVUB4DSf_*9(|FQB2F|`B%rltSJJo-Q%Nm469?&S2+m%iezz>q?wJX`F)Jp1N*PHxI}CU8U6_-v zns9Kp35itL;w!%|F>3b_>SQB8cV`#+d*Wxfs!)>c#zXMVo-S&`tfM}~8wD;e?x;Ie eV9whN+zn3%&UJ&@!?)SY_QRm6n5VpjQRaU)zuSHQ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups_thnn/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_groups_thnn/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..25c8320ae421ea090f27494dc080c24e73abb144 GIT binary patch literal 781 zcmV+o1M>U`0tf~O1PBBW0ZM=dI~-F!NcavvlJ{gk=9@FU?zWb_WV>U&o|EvtPh=Or z&&tTYZ@??Q{$~U~kSv70g;r8N09ZJ_cA(fjtUm)j=outERR{gO6M4`+Ur3q0`VYoE z2({5YMAVGEeoz%YX6_rlcqsL~pg@tnaN~EqI!&s+_B7YM{0P##guoX+cJ2hf5C_k` zxm8fV{*TkW&S=yUA$a z#`+(=2L_)%@+AzuH>=aWL~hSLEY8S2qAI07NDLQ0?JO`p?>PZInqO8vNBFG1^o=P# zu&7Wzhqe5^{s`HQNl2kS7)fTn5Yn2xH5U!PXp$?wyRpqa%?`i5gxVFp^pByw9IB7JeW&q0 zWC|s{ce2PnT-T#Mi0oazbT7%hN@|lnIA4>zpA-bXTqvEsNcK*@N4FTi;zjqq00|bp zTFhC!WE^C_gz~VwOwW@&R`gc~cp0O+MV0$Rxn%#AxWXfT`nhw+%y4 zu~q($lzm*{|7?9XOW19n6lnKj`=7lNO_l9de1E-XEZgvZ=neH>-7uhpQp}{uyub`cS`*iCccINwjA5ph+O5DBIhBJ8IC51V*2g>93 z9NwX@Pvt4gzS1-iyBXIW+Ps|LX!p4@)^5TVxjj36-QGJv<=Ng_^V@CR*x%Vkz5czI zA;x}B%1Qy-fHR7Fyl*J%lboEhucPO!O-!!9z6<@^_V^eS?v0WL#+i^9mk0-=kN_7G o2NMu812G#Avw|cIktA85k{|_4NkB;>BuS7?kODAvViI5j0LZnukN^Mx literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_no_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_no_bias/test_data_set_0/input_0.pb new file mode 100644 index 000000000..cfdddd441 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_no_bias/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ +JÐ1{e¿öŠ©¿I(¾¬¶¿šÌ?ç2˜?É‚À¿îºR¿žd`> S#¾EÍ?†ù­>£)s>)ÿ‰>ï쀿CöI¿& W@|?kLA@†ÂÁ>„1Ö¿SÄ>k˜ú¾ã?Š–½àd&À +#?Ÿ:w¿×£·¿žDµ¿RìN¿Ÿ_{¿<,7?«u7?ómW?üX˜¿Á+ô?5ò¿NÂ^?ͪ?Û @_H?ºY”>3<§?‹Š'?Ä:U¾Õ½‡¾Üx?\Ö?AÛ¹¿85‡¿‹7ù>ô?«J½m\»?¬›¿wÖ¾IÌ¿‰šÀ?ïIÞ>É2|?ßøó>lä¿¡à?Êžr ø=¯Ú2¿¤VF>˜Ï>Úå)À@áå¿°òì?´œ ¿â±Õ?Ó›‰¿—µ8¾Ýû™? 'p?uÔ>­à“¿ºPh=†wc¿þú½D–%¿åÉJ¿®ÝÌ¿5IU=(—d>¡¥B¿Å/ì>þ)s¿Bç>;ú»¿1¼É¿LÛ¿ìA1?Èp™>ÿ}?>+ˆ ¿þ@7Õ>ä>>@†¶V?” _¾˜Û´¾$ì‚?Åû@–Δ¿Èž?…Vy¿k¨\<ÑÀ$þ¾Þÿ2Àf¡Ú¾¾°¢¾+>·€?aØó>ÜQ¿Œ¯@ƒêX; Z?5ƒÑ>ÃUR>Q)î¿QÀ¾¦J?èK> À¸‰>ˆƒ{?åu½×Ÿ:=0ZN¿ýë]>íãÍ?OÿÉ>ôü¤¼iC›>®7= ¾|?Œ8°¿ó¾ª¾Í6?T©1?«¿¿:M;>ýX’>ƒŽ‚?›Ó¾BåÏ¿Áµ–>ŸF¸¾Ö1»¾î)ÿYê¿?øì¾»?²»ì?{¡«¾±Ýâ?«…a?Gäý¿µEQ=Íc‡>˜0?nX@?­ÿJ=UIY?4q:¾MŒ·>äÉ’¿>ú ?ótÔ¿¶¿ÎžK?qžt¾ó׿Õù? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_no_bias/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_no_bias/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..81e66f3f2f5152b07bc3742d2119edf0fb5be520 GIT binary patch literal 525 zcmV+o0`mO`0tf^M1PBBW0ZM=biMjN?@g@U5?;cM+Fkx>#TWjV%a0IwM1&V<`(K0JO zq$9*WM5!#lxNOEMC(4kBY~1WXtV>r*5yvWl;I-3h7PztI!}hbta>6p2Iii=>oFfbo>?rtz*Pyq z5suA1OT^Z`(dPocRK_sBbs8%_^(GR(zc2B=5m7q7O?L!8q*Z>rUlJ`p4Pgwu=%W@t zZnw`q1l0+?VTC|HSw>+$NR?E+aXKD9PApJ9f;-#3dwYgIwD;k@hQ>?2hCUC!0DW)0 z+FXRcyaqMCDBeuJyP2Q9o2`I9pj4~7@)a9DmJK$(%=&IU_(CVY_?_rJ+)%$hAW^5j zq9>`om4%YNLIxYZO3Z7%^|oC;jNN@bAq027yEq{~I<-E(D1xZIZmsFQOvzh5WMNvp0mhTQ(%yqVH<+ovFAtJG z$|;vVd=iPi_b9BsHl^ae;CNuavaFFldxh&hadqatL2W8O@;K-|p+A#8#YGc8o2LLj Pp&4qw=vZUC5JDus{QdBl literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_padding/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_padding/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..40a5574c622dace25ef29b681c9ee89c5e81ef96 GIT binary patch literal 737 zcmYk4Ye-XJ7{@!8xp`Q$9n4EJoi1_=lwFj(?0q}fg|IN}TcWtxmYWWD+?E)bj=&7R zctI$&%)-bEij+jL^S%z$N+}IO$uKVw1R|kfC4{UUsgQ^Nhll^~|M0-`$S79IU-h{? zmmG&EeVQqITEg%Qp=SsKLl{}YluVy+S61s-Cer3~S$$4-rI#Z(qKA;`iPvG}?Ht8XBBW$!-fG*;{L3jAsn_Rm+U#DAA#a3gG^%0UL^En%r~{H<&xBThYFyrT{ldq1fX`a7$4VcrcEULK$Ud7DrKuN(wCx zcaXoeI49+|5`Jana6?1mhpT=-#Xx9(JC5@F>%dBlA%EI)#0@yXkK42DqFlXy6no`HLApBCER z(70$U9#;)&;g^#P9+Dh`p=dQ^W9LClMX#{XpN?IYZbV`YR-QBB;e?yO@mYg1*FOsC zGhG4QOa~Zt&ww~n4&4DmZfVlc25YN6#8U zpmbRPri)2XE>Fg|;1?)g8UnMc$*|WFjVx15f$d=qE8h{&ll>Iw;$*aVJ7b<=7;ut9kf>L97R+!sxn=(4o%=_LW5T2>PE1+lR$M?}Qjo(xJM=i8xA=tUD zIhdfh6rR}mBL;UYL&vZJ3nPDl&rI2=Ss~$cysZ>eoAz>NBP66ea4|)dDa0dwkFv!a zDVA1#jwkZlX*|G4wIzI~!k9op(J1!aPR1TZ1Il|YqSMX8mLdlTNlPGX&og& zAJYYHD^=H3QpqVL$)g0c?ciYyPJ9>ptyRqJUB#t$EbQ^+2Fz8Mxbls^X*_=6*lKv6 ziwuj$z)UeF#pNMg{hG_IEyL`4d^8UI|2Jh~qLBm~bC-~(UQWJCDkk71q35M_^e}pW z<#w5=!%$E5?qqh$_8K?+oQcVtQJP=7zrb(bP!soaE>o*>u&MSk8s=VM(kc_Xk#i2s zojTI$^!QdnJ3aLQ;n+kt?u z{tYGhO@{eNThQ+7r-G%uuzU3}G(9XZ}h_K+nty-Z>HDvgD_%G!Qu5El3S^uyfZSiif+PvX2Uw09n)G@9a{z) zV8FhcRCz``(|m^xB^gLO;lhNche#%T5jUpIz}BqIcv-}E9!-nK&@2wG{csx7i@jWX uog7XsY==W(L)cWalkVTG#EN+@6%PAh#Nlb!P?1C0VihzMJOn<^#r^|g4W!Nh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_padding/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_padding/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..25cda76699b9c3b20a4735e5f24e0bd9bf232736 GIT binary patch literal 301 zcmV+|0n+{m0tf^M0|)~U0ZO0(yQH(e4;+!cfOqS>P=YzUwC6BCc;11$FrAq^jf^Y5 zsv}80=I!=AtrQi$MIv*)=J1C;fVl5I?5#CEer2e=#EF(YPF6iW3(A(gW|)9H>FqT> zgdOs}A>V_)^fV5=f~96Zr_zGHVAIgPTyUnoM&yUSX1zo|YFA3Xc3IxOmSO)s?8*~A zBa4YY9$?x&5GC3^_6gfPFgMjaWPruK*%uik zYGJlMcxmoFnCl9^U}f$*HuI}LorlmqSQKA9mAL@F#HHfA?tI+5+Ni-jF#jb#j`a1u za)$yx*R5;6I9TvL*ob95riUdz0_x+w=K#w-A|;l-)%ZcaOxZa-X*nsrS5scT*<6$t literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_strided/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv2d_strided/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..688189ee975522a4c3f22c28288c7f66afb01979 GIT binary patch literal 737 zcmYk4e@IhN6vy}Ww)VQt++Nevv}yK7PRw7}biR9iSWsA*MNwH)GnYxkaosQq^!2tm0!W=+z@syr_+I%uj{F5s#oa1w z@T8M-$_!Ndz8&sMi-A+2kGO-^ZwM~lf=fsm8ED&#CMg0Z;C3uglp3_9J{-RE6G~1B zT*St8qB1P9 z_;<I5_R|18aFy97eN0WlNNkZ@p?99D>B(RoobSGkrWzw!ANirncpZfK zT|n=>O|Zj14^*-(I9#(HX9VSt^I8Nx4mo6c4MFEiW)hR=1feVJ@or}+-8NKA@BIes zMZW>OeJu=?f7g>__fgU)c4~fHGlFuL7E&owU?$@Oy(ML^{8$P^NPmE?JwxawSqtkr zH$aI088Dbx$a-;-qVpJxug|0tZ`Jrj7lShuY&@Hx0>_8;RA|@13`ml2 zvrG?{*JeU?k}t|T@@Ynx1}uXE)H5UkjtBh=x$}?E^WYSS>6+l*70!gVcV}Q5< zJ?iJkCw=>A(C!^5v0np|-xiYcW4F*n_loi(sxhMfUt;t)1wGMru(+5Nw$2B_@|!$7i~99a4Y~}-z9i6UrP_yogzmC)!;CjO%(cm+V)*7HtaT&ElDdu zDA6=YjzkejZ~!~D^fi7s0RNaGvGULqlr|MZRizDfE&m?6J~Kj5pAcfzxv(=e2r7yk zP^_}il= vJ@h^ZWG2kloQBQHMohgqPP=cobBy>MITT<(5B2}Z-YsIÞô¾bÀ?›Ó#?Z³ç¾¾oõ¾¢ãº¾žù@¾”ÿ¨>rÝL>†–¥?øQ>j +è¾`pû¾8ÄN¼I:1¿Áè?|Îì>ØW?œ{ª=~¤Ã?Xˆ+?@´;X +t?Ï\ ¿jµŸ?J×|>ç÷Y¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4ed69108ec331391d36fbfe5cf33eba416e63ea0 GIT binary patch literal 1481 zcmYk6dsNH`6vyW`GijQNHiNWODs+bE!P3m{+9D(*YPW}MBTWxsrfGVJ!}Qo*CrOVf zNs_h|rMx;d{VvtXL_`mfG>A^GU7>8OL$quQXQwn+v@gt_P)8x5$<<+N1WH8V zVuQ(w&Yi{92@y*63HSJh1??0I?dkRmd!`zj!Dfng`iI%mzJ|K3&(;i+N`n1`UoYzG zeR;)lcd*n_7$p`-q}&WG7L&zb(I>^!BUTgE&N8h|=j-6>`39V-Nzz5R5c_UNWwtAEd@bq%41Ht@)E;QV`gHb2Ux?;d>WTx17cY zJ~uGk-I}`Z-arbPk@8n5aigFKb6}iY6waz8zI4hjt|n8qlT^u7=_um`27nivq28ValfI{uU;6T zD+Mc`7RpK*hQsSk;8^S(=!;AwnODb1gO7ZqwL93^4R*tcZ4|g}>7kPH#8i-c4#n5) zg`$Mhm~m_>l+|nFfT9(po#%19*aGW<-7srO5$4D1p{y^Q=a|q){&iT1R(9ucET#cy z>q7afLZ(1h_ZCWG5(aNOhN&qX4q(`K64w(sc$+AOs0?GW&TT2O+AHz!!cyq!a->36 z7eK*0KkzkIg2}-m+#d51v^G_PS+xq%RY&=kBG*9ig_BfycQwfLJQUX=IOx)=iB&Uy zgu2{#KId=>@+MxQO&0^?`7JnpI}eYRi~zG{m~53z@E;V%VFWoFjK-`nK$VA5j~k@U zfnoA#Sv7q6lm*AVnsI}}8_XvvNYSB4ysjGyvQ_UCQ_Z%+I<4gpVCN5cPMc6RmO`m^ zDRE}BAB6Dkf`hOPLfez^a>z+&4mHKR`MEeSdIj9;Ip`TEph%rYvQ==2Kffv)Ll!>5 ziwj!d`@I9mPFn`~`wPg1{^@A(gEdyZhKr_M10NV7t&JM+Nz`Vnxl#_T z+Q>I>qGM8`0$1!P0-EzmJLAy`?0?vgUIlH?zatO3=-HH#!vl@E7qK8y2=s%-7|~OL zAI8k!V{9&E5I2pITEt?hBp2RCo8seB&%k4G84S61<98L+c+SlYr5zpAUSSKSIhEjo zw0XdYN`awT8Kht6sSUP#jdFzx-2RjUsuh=^oRJ2}**V~2n21xWrUQ}H47=$73_6Nl>4uL)9vE(^NcZlTP2kz{Dy~xH{&;EdU?LB!i3|8Evww>J! z-o}&esc*J;6H`T!ZAk%xA+IiV**5n2Ckm)zMVf)R7 Pnp6+e`HNQ5^``s-OAdfo literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..31459d9f3d2db6b7a398b46ac8e3d5f7a97a1d15 GIT binary patch literal 1455 zcmWN<3pmwx7y#hNE#z91G9#BfwM-1*{Jzu0qKitbw7Hcg8WP$uZ02y>i55<#5T{4x zno{xqeSh>M*>TrUl1rqLODJizJ?|?gDYyK8QgYHN5_|F#)Giugn4TruBB{Wp9@d2$ zHY>Rt!?kRL)ooB<!P|_8?@}fVW~pZIihOT<)Jk5j%vM0t?WTbVmJ25gJ5JlMRXc zaX2xaMCf+X$7+g@k$VNIUx#22&jvFho#3tDd${ST%JtpQK!UcGfS1t}-P(1MNquF9 z`A_3W*4@2mJYRwZCL_c<;u?5-#lShfD>!UFMGf5dW3XinWY_(SHii}G(ag8KA#Dm? zY%YX}K0)<}0Ql*BG)%n_)0r}2uRcgqiiXKa32%~rs~2N=rI0qW4#Hd#h;wZQ1cnu1 z2FZurhck&%>@J$A@RSPQ+u*g}i(ouf1<$`E@BNvGfEHC^@3neqA7It z|A<45o^+3V4QeHw2Y+rKXXfQ9b}(cZEw5B_a84ey!}{q`a}za}OoEm!U;{nPxk_!t zw6Qys>h##bPvhF4d%YUlyhXT_6au4FO7LjelCAFsSCHFs9ZjwB;Zxf)8otAr3cM$2 zj)W?dNp68BZ;sHTFVdI_S2y@PP)T|`4k54Gh;UV-L0LQnZzocz==e^$+tUwrc`0!- z;|=i4WCcQ;2Rgfs)8OcASZz?lFFodh~|HTSvwECx@};>`VphhnudJNUbLLKLz3Jk!7N%xr{!EA?aeCU zYm`g<=7Q-Ki|>fYu>b>k#Uwy1#cqAD1YFmH*x|k&hAbV>|HMwnYn#RX_Y-(Jycmtv z574RdI!sAV!qmtKPCvJoBxg`O8BhdXG{6IyoHe&b=8(5TC%_iG#u`RZ60RK{?x|+Wu@9YX& z{%YsiN)LDc1RGOFi}A@O#^IN}x_UN0ayoSTp@ zG9wLDDa87=5Tgp>NUWwKBkDQ=27>d1wKCzB%@#s*ohi6X_mSl6R?;q70m`jiL{G>^ z`xWKb^6yJ@3v|KUxM{M{P(ZCi^MDsC4YS_LehgYwmw}- zki*J7p`AZXwJ}JpH4h2uLLI?S$H#3N1ikC z+|hT*Fzde&xjVRMJEVy*85UIMw^>l*PZ8k(JqXG2B!@^B>mCIQ+(1g5x8TOsz z09CKf!c_GyAZ(HGh!2Y}()XGeT zLZJ)lj=vyU?WH*XJ_Np;=p>B{MP+m}``sFzSet$Q|M zEjvvUmlDA3N(C6*OGKx61=!U*LHi>QKtX&3wA&}waee&Y>YP4)b4deZH>KkR@dtV~ z?=Ez@dBe!1B5)x3jKbvO&~xltc)>Zzg0!aDX_t^gICtkI`A93JrQ z(UFf|5OI$(wlfRFbNy3#>gXAa>ujdJ=M$KRucOKE)jJ^3Q%IgSX@OW(mYWhfh7!ti s#L=;b*8h3{#Xk&DE2_p8_Nao2OfLQvS_}(|9_VRK!Psm7T8DMWe~NU^S䯾ô‹Þ¾±•˜=œ­¿„5Ó>Jˆè¾ãÔÈ=rÏ@¿ƒÏ'?½³W?t@Ÿ½¼·?:µ>ƒ³S?´Ѿ“Ú‰>PŽV>'CÀ=j¿Ó¹?¤œ¬¿Ì‚Ͼ¤#‹>2Ǿ^Þ¿‡…Y¾h]g?–#­¾0œ>€o¤¾|hY¾F™<>±æ¾r‡L?l0{?j’ç¾n?j‹¢¿»I6?Ìþí>Ú¿>é¿*ÏŽ¿Íâ?. T¿qQ^!…?¬ê=‰{ɾ~›h¿ê¾'\? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..71b989918f02cd7c5b8049a9f4044c890bcc3f99 GIT binary patch literal 713 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated_strided/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated_strided/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3ffa618081e3df95a2bb08906786f9e466a2a0d8 GIT binary patch literal 713 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated_strided/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_dilated_strided/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..66cd9ff46f710ed7fe5a033264fb28dcfbf988fb GIT binary patch literal 271 zcmV+q0r36^0tf^M0tf;K0uTX8fC4H8vpzm2dcORyMm~hhI6k^1sXitBFFzrb#=ZuZ zx;{tVlD;gDsJ_6%Qa-P_ygo>TT0ibXK0gBdwmul3oxiT6slL!-13h4amOL1yguMWE zeml^fCcZ8RcfSW?#Xdo(6TiJK_&zKthrNxujy_PXu06%uDLxVu=sqB?w7!cV3cpzM zh`#Go2S2OQHjzP|Qsc*Fnz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_groups/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_groups/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..51925558be8966b785786db2528ac664e432b0e8 GIT binary patch literal 1633 zcmYjSc}&!25Zwb|{kbBpTq>7{N0A$a!tWajDB^`n3yR1stcW1svLdLpi-N2Yk&59| zKtK@0ir~?(-@ppkR8+biAx7nhpb@l!S3Rp`jY-YR%OsQcUgnR$oD18Fk2p$p+ClEL7rFD{q|n!3o9Q3-Gv` zIeMrK;mXtsP@XM>@0TvY-KX}TT;)g&UR;E+#(GxV*aXgRU2yoXS_rs$0M=Q!&<`gw za7*wO)O(#x8`4V1U|kE=cS!L3GYZ+;J#Z}Bn1pqOqQB)r;Tizcqf3EN_`$WpcSQJ6jFr-0Y@3h?^2!|C(yj#It;3`&BpkE{c7gpugwZ#FSTQ#U z{p0ni-$gm-jzqzL$5dRyJp)6B3TeQk7I3%N0S;#QWMcpe!R|`%ljXpwqWdJ-buI0G zcntR2=po}Ct)Kgp}-NSK^`-X-6Q;KnJm=>B@M#H+N^(6Lu3ko}$X>mJ?t963# zwpd6Y*vY?^2mxezS;3BVb5G`oJ)r=1ui)p}$`p3#v!<8^r zol177r=j;=CtQ}!p+as4UQ0NE5w|l?ZlKGW7*N80&)ihwX5}lO${Yj)YVHzR-8ilg<5xxI*A?W*M(Q|S2XRV88v$DhYoYzQ}=W({BwCZ z1oWJMM*BH5>rN%KEiHn)&P(jJvKkbgd`-H&JmLPOmn8GO3AWbFgr7I=!K##B!GExZ z-W`gBAssc5#`{AW$B#IuZd21)hWN_t5FSx$V_%yEw7!}Q?`_3kv+OmQw{jn-tQNDJ z1NLq`H$owAks*nEnZtIyIfvfP99+;*3O>(kp=o^>_|goh@O;2_PFG;h0ynI@TY{^q z%ZXdhQD_Pd2A7X~j29uawt9f-cn~QasDpQA1)!)~j-TIEgHxFouIW9Grl(bC5n+MG z2|PU7`I%Tqa+T_>)9EgQ&(zy`3ut+cQazvhEcMO6;o<$z^Kd65NE?V-M;5vaS;1&c zE|jg?37fq*FfbX|EMFDW4@SV!t+Vk?WFYP9rReTt1{v1v=zci>ec$9jWNMevB}|3G z{-!wbk^<#T{nUOe2UcrKA^&E}_--$QGM}YbkY)&*kNoRQm&Xp`MX+A=$E zqQ`#Nmed4OX4&968#}T#M2;(*9O1V`-@#nhc9c2xQ~w#ARIh|b21+8>sRyg!kW2|< zF1c)8(Q$fsupHl7$moN8c3{%1A|+4w&~3tp!9*o+f}Rj{Ss*P638Nz)#4y^Nju#%; z!v@Ph2xl^IyP_Fhq^<_}^_|KQX%MKV7n0{~<)G@%Q}%^6pq9mJ!pU2y%ulkE_Oa zw-V!Q^6;_c4@B~;3h%WTVnLxkT=-=T9Extlu}@-BVN*<-YYH(Uu^5L!i?Ge84a#)p zL+H6GI<2o1RJV;-t>o*pL0U^n20X#qRSSL^+lRZ8c)&64W_79x;b^!O-W1J&>-P_$ z^(=w5<~BO5FisQq6RB-1NGf(=a_UFrygzrN?DvCoz4`c67tLUd1zeFn!xQkvsr8i; tG*u&T{6?VtRm2~!U$}mX<|8nSU_3$N)ZQ@eaQ?=jiTu{Z^XBPk{|ARtv?%}p literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_groups/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_groups/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dade2b9602d65f605a404c9729044617f3962877 GIT binary patch literal 2575 zcmWO6i9eKi7yxi1$3$|JmeeYg6p?Dvn)mlil99^MAt@;pYO%?=i`>eUyWHATjtH@A znfLchl*EW~buD6x4XNlZ?S8)h!PHj# zk7ZD!)lF`SfJ&PuU~hIl8qa&lq#W?Yujgh`(dtRe3gA*3@t^hUe$s*T#gf>c6G1nfYXHF) zGnT)6Cyozjk(_{+^g?tFd!RcSqA&kV$_i63tfzyB53K<~nKiRfxgX>l(#V^-c}XjBdCzyCPf`S|pf_;y2?=^ip_8Pi z=F=m39_TvcMNjI5n{HSsi3{DUsDKpEp5T43eAteZwCUhCjvX_U9EoC)BD5O4AVmp! zP&qM3T-Yt(8L|>=Hb{tCKfYxbhlD`Uj1my~Y0w>(*J-zt7a^INID9n=EetKNGhsRY zE|$SP^Hga^-+HL+xl0p|*&FisD1GGO2OWH7MFCey}uXqpj6RBU^IY`>a`XZ+@XT`x=4 z2ZkfRyC1c69Vyk_Lu?OqgQMbCsyibFr{*=&&vm=;w2UJ$|5i^QDKyd*o~>x`@e0ii zmxq7<;n4=eYUWP0K6&!~4$1cEA!Rl%sY6>HT=MyyJ^acD2d(YVbkTf_+oXgd$s{;; z=^sqrCnPx&ncxvJ7l-d1!N+a`U>ZX(^JFjd#sADogbSIna1MW&#Y`MXF~OEPF+T3J zg@dWvz@~l~TO;`-meX!cUd|@rD91i>-p1^V(QlUWdk~4Pc`C9l0Q7 zh$A{-nCDVU-N)L{_uMWjIOXVQ&kwI`TM7>2v;nYZpA_-J#N3OCi}TjgjiAgn%(~7`VCtf{er{9lRME zoSu?X#lAQh`pn8tot!C za}bK*DfP81f~aG=(IX}T3TwFNAHD?A110&6yav*{%7oTxgdq20D=#BX1)YA}2DxJ^ zG1ux8y*66`zEyo8FS)D8rN~%PP-_oyClIKh(_>*f3S_sg=j1CRKPoDaM6Lapai&E5gfeq&JTtaW)JDch?K#TwW|#>BoUO zE~3GsS4e|;9SyJy#2K#F=un^zo#~X1oW^SEw0b#ag{+09zznLSE-m`@{xLaZwFbvD zUQmD21z0XIA7-88l4h3{aC{&H8*3{JG;qP&o@b~1!+CgsNm?4}pVMDx)vq`QAB^*{d? z6(2Fdf?yMHoA4$->D^=3^vT15SCzD=(U^ZBLl*xnP{WaCKsC2lwz`KJ|N4e0c99Sz zDHSnk3Q?ey6%5?TyI|jR5>i#)QLpn=ykAQS!QF8VPW{mc<7xw7^=CZl9Bl;g{9Y^% zT?9XUu!f4fW=3|7I?Fjy$m|ob#LM9z>~bt2jg`qLYi|N?dN0;*T)vcdbjS_${CQL$ zWJpYH1ez;U;7_s?QGwFQY2b=3;=p7UY5H`LwY=3w zHtBDn6@}-S>MwPqP25aotL?#?daXjI4PWU(yJGU_%4ra|C$ho&Por9k43uTWL&UZ{ z%%GbIN(+ZcEs$~XW@1(oDm0+o)E*>AN2X^~InC{vvyt-D7 z)ORGnM_om#xG)3jRQyQMMm|w)dyGawS9ob(=JU;Sj)S110&HDJ$ycp#c3QyV8>1_5 w*VmQZ>YR)_hDOo6GzWA2H9)a*i7+3Q;h=E‡·S?wXt¾Æó>`ôž:éêA¾®Ë¾G³s?³)|¾º´¾-®Æ=@¡>ƒ|>?h£>÷à>0œ¾Ö!d>Š•U=Gë¿>jµ´>ß*¦>zq;¾—‰¾îÒ¹¾T¶¿Ì*]<ÝaÍ>e >Ö¬û½ÞÏ>*yº¾‡ý?òý¿=•ÿå¾beK>ˆd5¾ ?QGÒ¾¢¼G¿&l¾ÞÍæ=‚„0> ‡<4éÖ>⯖¼7¡´>‡ÙB¾ÌÄ=¾$ˆÚ½ü­D<a¿„Y¾è3†>cð?7/”¾¼•á=èCÁ=s.¾ú >>X‚‡>î£q¾}·¼>™©¾Êe>ÒîS¾ùš¤¾{‡¾>¾?»Í¾Ð×¼q{ =äs>ÐmY½>à =ô0üÌݺ½MeÎ=p Ø>¨¨Ó=+'c¾·o%¿Œ«L½­Ñß½(¢?6Ó>¦MоÓ9ƒ>¶Cð>2²û=«¬‡=^ð¾–fx¾ÂÓ>(ÁW?¥¤J¾ ™“>Ù¶1>ˆ†&¿D)Ó=›ÙH¿Q÷¼Ä+¿€7´¹pl>ûKv½¬)ÿ=ÞÜ龬Yf¾ŽûB>©ð¾> iï¾òDH> ³¤>¶Gä>h镽/”Ñ=èÆf¾t+M½¯™=}£ë¾#?Ľ§Ýù¾”Ó(¿_æR¾²Š>Üèg>—î¾H~?ÃľÉÔ¿©@ϽìK¿%Z”>‹`ñ=Xª#¾Vóf=Eƒî>÷3!?Ngc=1j?½.> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c67303441b38ef6f9144841f7f13b223a21f69fd GIT binary patch literal 1434 zcmYk6eN5AL5XSo^l=@aXnFyIhT!vQAf~;!$J6Ex*_y#k&iAWG?5m0QgFu@lTQ6`%m zLIHWvX2&QxFlo633F%fE2w3Kd@o^C6c#F-GL zQGXldFkUePGdPoWhH6xykz1p~L!v^Z3@KB}vSRieR#b>GT1xvMYn#WhjgHYoC__JN zem;bEwBq4&RD3GwbkHNc!H#Ib`hPYE4DNSg046R7bgvXn7Ipwm0HL;dm7}TDX19T z4e8N+D0nKssskKKQ^!SOdk#;kp5b78F=20}sG#tvXxJb`ZP@_vk$VyLpT#(H{4S|E z6_+IMp$hlKqZ@xB8iR5nxI&MxQXQ^RIw&hws$@Q6y|y*ad@+?Wy|wHf$1QpfRu#-CK+}&*mAtYNe>E zo(R0UH4kk5GGe!ZkE2uW5R3L9(7KNPriC2js*^||FA;S!U7*Rb3{xtVu6j4u($<2nDD>bNZashs5y1}o3iNM! zNt!bDl7wp+VuxWFDoP5md-Xw}naafBvGdT+?G7Yfi3jHsagy)?8n$vCkdK=eqh8vD zv|+iyh9QJJrUCej93bvBRKKvCvbmj)+R3Ao?h+GMUaN)vub1J-+-&?ccNWt2?-iRI z+X*Fez=Fpr>}QQpuiR!($Mi>W$yh!qtUdz)B_8m1Y!+mnP9~pDwBYQ{6L4|qGotx} z3p?Vrz)!|HGv-hM-; zs*lo7^C6*XGnhx}aO-6YzS&Jjr?_(9_8RfWLxVt@BOr=^S~N-0iF4H*Ea#--wlE9Y z^aJM=rG%FKBD;7urU+(MdP-+=IzbLb?m0KIa)q(@W^ zHT44|=DT#F7+MNZK6;6JQZo!1I8=J1>Z9^<9C=ZO8OCm`rc79~W=Jep zGy$Bq*h?a1`IN##0I%7DU|{Trshg`IH2WdQrj=5%W0P>!oJu@smcg0S1t4;=0ss2X zNvBsaDfDZAf#ynxhg_&nJPtdbr@-34cB)kR1Z$KfVp_0H>=}3s!`oYMZTl#tzJ3{h zY0QHkin4M0fD4o!Sr5tDjnpdFOCWUm83Xv^|B>g&abVMV(>V+_W8BPt%^J@MR>0$b bfVF7_{sUQxalrF`fOTMntoh#F46e;T2Uc#N literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e5e14f43c71dda5576be9f98ccb91919a556399e GIT binary patch literal 1455 zcmWN<2{_bw7yw`+*J9Gcu&u4e(WV@`k|@mY8#yZ46iSMkL@KjP?6w`UL@hbWgmg*M z&?=%PtN8za-?$1PO*%YziWQ}>D`Iu-KJTlet~2d_8akRYI6j4XRf-&ZojaEpt{9~; z5mqQpk>cJtQNW&YhW#e5kfR?1CVDkwGH$-ocn=?cQ}4iAk_Mum{g_I=0KT5#hIS?1 zXgb(QR)1m0;OqppUHlW=1rv}SPr{0SWZ2kljvj-Bq+_ikgy@_DpDRu{RdAV%gb$#N z(MfC#Dxv!fr$cnHKUURG5J_z4Xove8_X}Go;`f1(s~w3|ne-VejQlu!P?Y z*Mp2O?8mp~7P^Y#+17UV#^msN2Gs^wmUnr8!jj-NoC_;~=Rm z6ofCF;l^$iNf%2n$dJ;?)FOCtSOL^nMV~No81?9)UYa|Jwy!nT+nr@v`8nA8AQ=Wr zM8uG23md$opa%>+r&dow@1@ZX{RJ2my&QQjSr|IVQOdJIQOwaq&%pg~eqI`F;je`s zxeu^MK8dF*v|!XW3lnZGVRZ`ROiaolt_KET!AJm1<6Q(3SuL=NA)4=}rtB}yhxO5$AxRL9{k%SOb<3cQ z!VO?~B9V10+eT$MVu)~5$Dd2pg`*Rm=p*?R%7(L{dc;au#0HXOd5xrb)pb(rzX!vE z76>apYb!rpZ$Nh=D@cg0V|`!QkiFJPOiaQqh{$0Co>$88VXPnCE1nS4w_0Fi?Q~2( zYAO`>?7*Z)F3Rpe5%g;+7~aYu=8dqK)^!{MXL=JtSLYI^!MB3mEjc)H-(V*aZ<2bHBHE!WdNPNLqwFVi*9ONv{od6@_s&2qi85U z@)%z{`=rJ|S z*6-;i;RX%#?-@S`%sd|n%Cc5LS7aLISEi6gIgk2T#8adEE^2TLsGi{%P0T36m%Hq+ zB`g^mc^V|QcpP~LG%$5t1M~D|Fm?`bV5D@mz%Mcx=Ed;vPxE9reOwNFPa!tn(MQ!+ z9Gn%_h$B-qkh#qaE1XO5rFbK_Wt5T*mmK<0%K)kamV@qZ=E{yjQ|4ijt%?skcy1%txoxV8~l& zjqWXexSq%0X`6X)$mk#_3hY2-_7}0NI0d~2MoC-O>>8$zVxn;p^%osLtCJ^)PLVz| sl_paA#d9ER$uMp*ufz6WIc~EpWkvS&Wa8KeGyAC+*DXr{?MHg}9|o1jX8-^I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/test_data_set_0/output_0.pb new file mode 100644 index 000000000..421613c06 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_no_bias/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +J€¦¿Öy¬¾›åÜ=´Ij=  +?ÔÜq¾¹«=üÎ3>´M⾂kÙ>¦¯½¨¾¾æ¿H…¿ø=.?uľV³+>ž·ª=šˆÝ¾rÀ¸>æU>}vv½Ñ ¿½:>Ö5>À!?1¾‡¾ÜÛ;=¸Ù?û.¾Êòp¿È~b¾|5K¿p£‰?9Ó>ªN}¾¤8#?ˆà¿¾>IºÐ>)Ⱦ¿â<~ïÆ½“NH?Ú)M=UF<{Ò×¼0Á?; S?ôÀ½þ¢–¾DŸØ=P]?nÊÔ=ò¨>·÷)¿Ü|H¼7B“¾:W@?]Gµ¾«z?cp¬¿Ò^>h/ľ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..8f23c1a2ff1c3442aa66a3f4b8c6d6b6beefbae8 GIT binary patch literal 713 zcmd;J7Gf``EXglQ&X8g@&@;B$#L890#c06AXvoEAB*bW}#NwQvSEePx#hH?slUS0O zpI7X_2!ab3*|m7MSksI0OA91`JSHu1E}rbvqP*0c_~MMjf>Z}45Cka`YB5}?kO0^zx>=bex~UZf`9&pKlbAVJIG8z@Kv00uiP6xjfm!^O z%)UGSWo^%#yJP!_huv<|Y6ZK5PewLB|LgAykI>s^5E*IHnP9xHL&IX9#$U(1a##KB z7?{iVG<;&+^W?`F+Z&a~ZHs=VaPMOX*R^tSV6n@%b;ss{n2ha$>La`J z68Y?QC{5fOVDE2xOkT=v(sF0Je~Ya5CG<_VU82{pmqSFxwo6mqE+FE{o*I8gJN8L# z`#u=E**)0aZmZIhxc7SURk`9n6kOW+Z6O#ZN0BVHb(*OVf literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c9d07bb262268a71e7e79eb35524aeaa210afce GIT binary patch literal 3015 zcmWlTX*iW@8$iv3Bo!&AsAMXn!T3J+ma$|^L_&ke7%J*CkXaK7nJOGaL_*1apL>TS zl?FRWQ6e3cLK@KUo$p$|*0ugD2_Xq#3DN%}E4coKf`PLu>Xr-flvfDxBGe@5aEb`W zP^*G|YCMn4N1ZXys0vH+)JWI-Ic!y_3sDwMAOn?R%z>5>YF-#X2j?S^`L+o*cTKRP z`sVane+T39G!-J2YSKtAch=~kC%j8L4}DMTK(u8B#O#d%vkwha{=fi6zN&^qHw82> zUPf%fJJCy59PdZ($6NIeNPEz28qb(PZFwrvB^h*&^)B>fM8PLB7xY?EX~fSU7*Jlo z`!|D2=0~@ai3hguWBeG+`z^+ch?xg|=S(3f+mZD8NOKe<3fTO#b-cJO(piX3J9oTdXI-^m{5GE@_DfPBGTa$wDBeR)l~@v^u0@^>-N(p#J&+YT z4}xqzg1KlIow4N!<@9_cmetP)@6im*sPqQ8i09b;uON0cJVGDQ#q{TcIXvajf55Y# z*Q7c4Fix+S~8UgZv62o4pst6yD<&Z4ca*po@+3XTmjs1)NTA zK`iu6G@9W4gj(4b+;I;%&XG4&cukIF^B(#_Nsc+lJ`%vBFn>05fd#jB@dxz0;6hdh zC6K${7ekWi7pna0H}O(aMO?O%?U~?VSePI-%)LaP#tSmIj1loT5>2B++<#}jxScyv--QyKGhC1-50?AvTM*AZcLKe z6tVf*aZDLK4M`@M7=1dB`7|*O!AxH_%TD<@?P3*p_Ss8?l0 z=N6RHjU#%nvet^(6rV;E{&B<&z44%u_!tU5Rl=vJdsIKFnPfhB3pRO|@U=$}(_<7v zcZ$vfImdZ$sZI!YZnR_f?|6ipA(6CPxrj4%2@|`}THx|cu=dGoy3Oz{2>+@^2g}tc zCzZ-xcW)vdP3>t71PkLA8(JnRaQ zvavx$sZ%B=v_zn3Wgm3xvVfgt3LyUIBq`PuVFPt-px)*IS(NPy>i1J{>3M&4G;cZU zeLNl__>SPxHV$!mcm~(KbU=>+HLl>PBr@JM3zW>h!iJJ_xCx}Or??q(9IP?9 zbpuT9{;y~BLrdW!+Nf*~me0Gm%@=jBE9g87Zx#ZHf)eaGF^?y-VhN?{)x>+_bvU@f z5hZT=;?N>_`sG#vE($w~AvNKM_bbt^bduh>Ttpk5ak)8m?lj>@C_Zi+F;Ph_!9{WT zD3aQYA)5$QDDWUv<_RR|STJs|mV@^OQ;hwaNjU17&)z+p#JZI3hnU%pbU4}{LXYnQ zyYVdiHeSny4g^!!e+9$ zV+7y-_NI5sI?1K$HDrh7Pr6JrnMUe$pyLxK&=&8&=&(0XdGIrtHYg6Rj%s*Zcpu}` z6oRne23c90hqKxnU|w(r)*Oxpfu{lV=20Ce)BFHXSxV}+eSn13^4JXNOz+1Vs1{%k zvDa2{e0(y%>F-Xm(q|XswW#6U&MVxS!i%uAnu9)kb962nAY!lAU}oE89ASs)ReKI< z$=;{3#h>XqjVoAme1iGyCk55TPfTjHvrzt$Jv>`j11S$YU}iuTdZh}Ww4EqV+%g2y z%M92F)3rpWMhc>DBJS@?Mr)NAe6n}~B;IGiwW3N$4%mi!_st>0vT~es&nRk`$3@ln zDD?ct0yJcFi#h-Igzq6ZFmYT+?$%$Zg)oGKpAKOq)aVwqldq>~xX~qQy z8bJD4I8D?H!BsMDbbDMgNS`|fk;@`5+u|tGT~WyXunr0j4z)%p7E2CwJ<{YuV9I*TE zRiL~n2Us75l?>PflTJgJ1%g=O8i-mS>cGWa3ROeBP?BFkJ@2(bd+;#k7yYC<w||AME?+C7^w)89r^?Mi17T;`xAHvUiUK(epJxAACYH^@Q-R?;$wf zWk1HVZ&A@Go;oZKfpfp&!F^PMCqDZtK31(}UnJbX9rY!su5$+u-4?^!@js~WsatHY zQyTOp%{D%1ro=I*>o>Majlw7wOYEK+<4$~A4n=wT;6F~74(@3x>t2r8;m(x5n3C5j zmB7(ZL*tYStbar#!;S_9O;>;v?zZ88LO|x{`vg9^#ebGzfR4$_A=uBRnVhiehP=J&* zg0Mi!6Z?f_V1b}32x{chD<1FJZuetYw)Qn`JRLzD!5{0}YjEGUO4L=G59z!KP#nrd z+ax}1{P~#1@3*0*vlF4fIR!KdFW`_DGN;8?vg%d3FjR61nWw2(l%`E>|E$H?G8zzm zJqMPjZzm6hpTWWB1sHMj7)f*F(#wHLOiup<3^!@ucTF+g%u2Mc!Do}!$X(Wqu^vv?QaoBOdpnRB$$Cj26}w`;$aiKyUZ19YFJ*Rf z+rTsB9Hx1_!ad3ZjmI+a|N17Zqu ziL!Yr_9b5?O_#+`@$GYRs7M;RJU=s~-EFXz6@?LR1L`zvh;fOPaO83v4yw#24{yAJ i^%X@h9C#WTej*C`wv#%|6XfN$KK8xgT@pBcmHi**F7e>qCeI%o8V3c1HjJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride_padding/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride_padding/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d4b4021f528b3ab16128fc3718055f303f757e4d GIT binary patch literal 713 zcmd;J7Gf``EXglQ&X8g@&@;B$#L890#c06AXvoEAB*bW}#NwQvSEePx#hH?slUS0O zpI7X_2!ab3*|m7MSksI0OA91`JSHu1E}rbvqP*0c_~MMjf>Z}45Cka`%s-pN#t++cq~(I}WqVy(>>`+pBbb z&fb*o!ggYz9eeL2{;_R2dVOz`qP(5gaVEQ(|GRA2vRU@+nCEJ1(8#~HEYWXY`@)ZV z-#`Ai_fN?NTkZ`{_Ew2%+HJ8l+9$C=*lyY0M|*eOzp}Sr(mETJpJsM5zE{}(xXfs%AB-JXQ%y-SRK*~&cEu+=Jmzc*ozqn$^=={*_t z>ui6>*4hTR-?nvl*15aK@Sm+6qlleGtcTsdx%&Hjx~%MSZvL_T?6hvLN77-NQ;tmg zM5;OVIZO%I=dfPKx zjo7=&PG+A<_NKkJo;B}fSURk`9n6m@bgf%uY-KYye>c?iv69 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride_padding/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride_padding/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..664147e8c643b45d5dc30e62c8da71f255cb91cb GIT binary patch literal 3015 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride_padding/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Conv3d_stride_padding/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..db2ecc8b2c700f6b9bc3a2caa8211e13c076d984 GIT binary patch literal 879 zcmWl{4^Y!(7y#fQgLY#4St&cELhuN1Cqrc1;lB5`ahwc7Zov-0Bh+vPA%Y%fYLWzN z!r@I|Txyiiv_zuaTtHO&-ftE#(aRJU=#27oZEUF3I(I@~UH3eKWdgn+_dG|tN zv;q=rUZmuUAF%bKyvnN9{yX=v}$R_luow_v3B z3>^v2p^Aon$mccDz&9s|(Zgp|?@Xce)+*eeGlvJVcxNB<Lnq&=(1yr;uKNxkCCiom_vT+_$##1?! zvX^Q%4if!zKXr)x`1wE@%PLJ_wxrYG_&62w)CO#PPYuGP7g%w%i1W-W!KgixOPhAX zMEM-t*k6I|idk#iO&zqyN6QM@uaTqY?BrSPY8-ku6xOyxaMuMIuKV!6(D&`n+-Hp{ zsL|-)*UW7AYR&@tB*pOQtbqIDjsr`cKS#H?*AkaY$nm1SN8X)il(ugW)PKHzVj(W?2vPs`fu3CWjBxIWphj-n?!$ZH^v5EMaz{nD64Q; zv)^tdg$>CNQc(|Xy@iTTzYifN1z-wv)4kiD&~E)6JiqG!HQ#cP;<-eSSB#-o@G9<> z~Zvt>w|3RM}!eohN}E8}(t#iY|PtIYITwLRK$pLSAManAbPpK=BY*4HT6} z_+YcI1ApFGv~-5!g7Iqz=XbF#-2`=BFk$nGH#xOLz-(a>60^67NOQF;W8Da*r)fdG zU_p~dj!&ZoVb5PH;jAx%E4&!XwLBMu5|iKBmNkY4sT}&_USfgm0$lz$nTrXnq@tRe zkn)L(Z1SF=Ge-lc@mXM;wQ{PWDywKA1nu`HIN^?+EXUwNTcH8f0WnuUlnaf2KOtqQ zOCWdd*!;_=0VCdc3wbrMvbqaK`0|nh7IjyweLZ2^fdns(ECuj(`lR*Xuo*k*YS8&Z zGYIED#6MGl$dPLiEcG=NJoB^>m@#8#)KwCBKNhAYd&omo23;~H(L`PczTTd}{Rg91 BvdaJf literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..63a9e92b6c921792d4aecfe0d721473687951395 GIT binary patch literal 772 zcmYk4dq`7J9LGJoQ?FOeIo~svmWa*QHebVg&uNrcshFmj31-s`oys=1t7!Cxm`I59 zu&0!%A!eDPp$O$U*h?WWM2S+eB>yo{G$}H$=uQ&+IaZy?W-;3g3Mu2FH&*C)quFHB0xjqO&I&ii zvBYYwviJ)xk-~>@D>qn8hKfR4sm@~1Qd-I$@?-Xxt9VNlUue2USE~AR>8Pi`=KzJiPNK89R)}Bvp4#!ll};+&ZWq zJ=xd`XCjGQxdzA5=eUK? z9#;9HpQF1&VX5*B?ilamk}{sbE6E)C8|g!C`^BTWtF>$ltsy5|1If3(4Q$d3!6pMo z=5M-_pRYpDz3XzkGJ76|QW(h(6mC%J%Xrg3 zDq%!45TFE{1)S`rYL{s@#Qy_SzK8v88HN^`c2Qg;q+@rb?W635w}9JWk;LgABo+lR literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..cc0efbf7c0b7f77553dd1ef28b626a489dc07e21 GIT binary patch literal 517 zcmV+g0{Z<30SE&K2M7ib0ZRA-klN5c!VDxoOMv`8xD^M$=4>TD8`L~LSNHh6lM;?U z%6o*rh{^iBPRRGY=L2THt_k%%<%HZnyaxzAQM;2rK2?vu$8@s4<@K#UlO-KLf+99Q zcXOG)T3Am%JV39%4B-|)Bm2j`)rw}ntH@|S8lRm%W9>pd)lmGuKhk$Tn#{AmP$7H2 zUJH}FyyVKhOve^IgUx$A{DM=zHrXz}Ap*)joWzJebMc}*Fj)@00V0yWByF`mgHabi z6DF8H8VbWd`3XqBoAh+OMTjWB%-fGYOQnoHP6e#LQnZ)9wJG$!a~lgj>(kLcF&LA- zNrg7Q_FIR&?FF~KE>iG1|IA1~X+X9<{(9~{QxjRgWb~}RG}d{&+bF_5Fhv4AEA1*j zj^pUQH9$;1Psq!^IR+Cy&P|!VY;UK&DZCXw7CR$|S+_Lm#LdX`5&L|Itxb!?b zy?Tmd#g64R?kXhY7KWLr5j9#NYh=;$rSJ>me H)|(~1d(iqn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1638dbe4d860694380bedf7023d8f26040d9f30b GIT binary patch literal 3853 zcmWO5`8$?r8^Cc}vQ^4fczH@nLWmOgb>5OGNm5j5qM8&FiAD&?mL)QeC^52R4V94a z+}HU?jW$~=Dl%nDNGZ+O=AD1wdmNu1zEYx65>kp%a`K|KVH$N&8uZ1(7I1HSM50FP z(D2U?PTF!A+dcLgk~iuI7Y`HyIDe#$vTL9y`Y8kV^I<@@hI#VL0j{#M*#yZ`aJYVn zuyyS=`nd1}t8JkS<(|*ryZ1I&oqiq4Xf<)EH-+>SFM&JePMRlL>AbIjVA&E&EVuar zT_J+4JQcX*lSI4>DA=w(25Y8T(Bq~8`B`fPyEoSZ!p^lZf|EapNb_R0^@T1JpH={u zylCi=^QZn3tARgZz^>)F!ntKn(RUFg-y#y=RNf+ZWt>SLx;cWA`B^yLTS$_;tKi?H zIVcsQAyi9U&fZm9h{tz@m2jfgiTs8=x7Pv+#6Ub*hvotRFf?rg@*6=AUC-HK8h_v zqv_iqr*BMj_1}`=qdQP>Pa3rLnlZ`mrC6t#a1wHU4H$W5kyW$QSf9|}V1DQtQ2f9r zuKf$yL)T)#HL;AYTNwa*cA8>RiYJu5F$eWV2bjvtK#8Yi#ICIw`evPjIqMdnVSGN> zl{*6TlRjG=yM_kc3L$!@qoK;X0WD-h@ms+i;H=cZGQynblw6}?S_9O6^Ia+;w?NQf z-3D=53P8H&vM+B}kTai6U~xbR=}PSektWUBSd*nJ+GLS3izMg}%LUipeXJv#pVh`e7Z_4R1U%PrA2V!LnS7*JOWU7L*xxMamKDYA?BqM z>l*wJ9VULJ-S3hdDDJg>3CWfcti!YdlhV@-1Do{7=Q&e^d=+66v<&E#leSQO<0exX zeU5aTTM1wCk3s%sKPd3#L$mWmS`oPinzCHcXQ>&9w(x}tQb#cS8Z>(ChI3+Pz;3@7 zOv>bt4X-~C3BBM!S_$%LniL+vBFP73r zs)p<%$5L#Zs{&?g?6KLT98Y;XCbwT#6ZJF8aCN8xYL%za(fKl%81^>}tWH7QL}e&w z{Q+_86M9c)9=4V*pwD9GLf4V)bZWYs-q6&-J1Bw~;YRpLa|r9^1fn8u1H@WbavqWv zsQcXud&3*hheUJXIep}?p(}M7MC`7b6bz>K&?rAkbTa*f%3CSr-&DZyGCMj24V;s9 z2wJ-Rjjc9;*zEWORchVn&7T&rW0}iQWwVeTPfbP9>_OxLN6|#H6dbMssnVArdizeJ zVV)K)5nSa;JDWjf{}@EeThkEb>zs6DEgp$?C!MyL)ZwcubGgtI#&{znTx?KrMnGJxzJn;}KZ<oJ1Kd%U_t^+ zA`u$xbGb5!gN*X8N%VB?My!`TjGg7z$R()?YCo@@W|$M~ubaTo!61C#kx9lcu0RL z{8|TnaS&TxWz&GkT*^CLNHu!KF!Zq~)Xr=r@25P-=+>X$-Pr_E7O@#5omKIB&vlGn zHHB3dMz~)GW$5tv7wA}?k7p9Y>0c@(ct+wG@l4Rc1;HXDFg29X`*{+lYp;^Z3%}yJ z$Xirg^BL``pN;#CWQ7ij`P2k%V1iBpv-G45EeX(3az?#R5`btGOozq6dP8VR)9%-~!jl=Qtt7!h#8WOhs zJ>wbEr;xc+!QU@2>Y-LsmzYz5$6V#@mkp`~Oq4xU^Q{J5USedvO`U=;g z*3Nn~$n&HUpJEtBL=?NV%^4Awg4!m@G{XCEka52jMYXGL(_QkRxa+)kHlGaunZLEE|HyB+#9Wi82VS8ODs`MkjWce!YK^h!_4KuC63OK?5LF!tm$%2^ z@N8As6?ua0TrA2SxnD_VtS_K>z$BIUnt&x`OKE!*h2F~qeCoC4${UJ zY9yjzv^IiDq(A2}ov+XmB~b`IbcY)ErJ#+zD0ASI6Ea&?UPKRzBRmMZ$m_R0Ufo|frww*N!Rxy*s7!iL6G}B~v12nDVV~q41*!%Asw1f~4dsxJ@Zxm(y5BcDRDoXvFo#+w$�%Z09J#W zp!J9tnklN^Po(ooWxZqzK>Op;PFL%+;8H&wB;Mm7* z`hL9@x7lkL&2H>u&I!JA#ye9;ov5Z@*-2Bn;+HXWP){RYZYkhYSPIQ*k0#vcH1S=f z4nY~?T+qY=+R(EMTMRytujL`Qb*?VidcG8nYKx+jaVy;=WltY>O_I!6@i6;33%@H{ z;Yh|lD7<3>-@1fEc8VhbR2%=em4Lw#?X=D+mu8!Ns0mREM<0bc=Gc$DP?ow|@UdD7 zziRMlNoF7QvR4F2wNg-6B976hNwz0O6W#u7d^g(~YfB{1zM%p~)`k(Id^?;O$|A27 z)(h=*%-LA+N!-Yk&}zqC+TC=VQRH35`>VuhFv`Q{VOciPWjSkb;yWHt-;X_S&GG4e z4dK4}Iy5e>!c^ONcwnZKX|)#R^z@r>`Hfnv%M~ZDo6e(TCLdpT*J6rm4cvFM!fM9| zCVTxuf!%2XoY^mp(ZeaU;LmIP2;PDh9)fxp9$emIva`))xi1-LC8LE!@Ry#!V7Neut=kf8w$3hVO>)gl~akW z<8Qc!t(}vkCVV>!S! zw0zG1Bz;G5DAA|G>Y$ z1KZZwL6PQMbpIHE;nV5JtyqBzm35H6Ql7h@kKvR{IPTb#L&{9@QNf5$rH4*I z+%r#9WIobq^X;gkyo6Xz|3+mB`f<6?N?2bXg(0u?eaU? z_j}@()uzJTj{Z1$;WQU-!V^MBI_j;7!H0$&IR4-l`mcdD%q_o5hgV<2-ts``n6wc_ z;e6ak`1F2iF%CbgK%eWK+|}v#*q-J`MGl?^d+S#ueMKjIvCy7|Z%;*?#jf}wdIND! z(iUz`lgGN}JfTMDc`QDjgsvsCgqOcvg+9|Dl+(8-t#K>4O{fH4BF%*3F;>{%orBxv zE5ftkC~D*Fg&Py9aWsW8%|U5c-LnwqWh;ZH(os+V2Vu9{ZmLrnj|o2%smXLOy*cLk zpAm$yu`T#qzL2h1t^gYAx-hiz1zkE2gY_*R@N0Axa>F__A@?m!o{6CjWCHnj+PK=@ zzsP~AXWZm{M_kyQ4U7H^#xj$Os4V-MOspNlF*L<*I|bPCbhgk<*#RfluYfQATtJWG z(bO#aEcaY`AAa|Kg4K;`Bs5qHc}-E+uEtoCUw5 Xb6F8~7AQfs?EqtVuY&RUY)k(Sme_8m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d_no_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ConvTranspose2d_no_bias/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..00dd7926526ee4ad743f15e8a270f2c69745a579 GIT binary patch literal 725 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Õ??ˆ ?(t?Å7½[ Ë¿ï!>ѾvæÀ\œ—¿—m?§Ñœ>xHô¿ýx¾öD!¿é †¿Üþ¿5Fƒ¾~¿¦è¾`ä¿¡?äxU?鸾ñu½éÖŽ¼ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ELU/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ELU/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a0c07ed9b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ELU/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +JxUÑ?£­.>uÕ??ˆ ?(t?ˆû²½õ˜Ë¿ï!>r ‰¾±&è¿È¯±¿—m?§Ñœ>vÚ¿#YܾÑCš¿BF±¿æ€B>b¿w,¦¿ D\¿y—ç¾ïJ¡¿wá÷¾BâR¿¡?äxU?Íù¾åÒí½õ™ ½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding/model.onnx new file mode 100644 index 000000000..c34571d98 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding/model.onnx @@ -0,0 +1,17 @@ +pytorch0.3:¥ + +1 +02"Gathertorch-jit-export*;B1J0è®>OªÇ¾ÌÀø—?4Bõ?˜µÀ>ÀôL¿ÉVX?¿ÞÙ>`è?j––¾½>Z +0 +  + +Z +1 +  + +b +2 + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9ad425683c5be433d50765dda5bc657a6dd0c52e GIT binary patch literal 40 Wcmd;JOªÇ¾ÌÀø—?4Bõ?˜µÀ>è®>OªÇ¾ÌÀø—?4Bõ?˜µÀ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding_sparse/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding_sparse/model.onnx new file mode 100644 index 000000000..c1b34d50d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Embedding_sparse/model.onnx @@ -0,0 +1,17 @@ +pytorch0.3:¥ + +1 +02"Gathertorch-jit-export*;B1J0"K™¿ŠÜ忌®©?E7?ˆ+;¿ç® ¿¯Ôf?È~@§Eó>¨…¾Ág¾Éã]61Kl4d?3J!bGbh%ViiA~1uwr06tX{1ynQ|g)d#@LID$UM&l^9gYL~xuJKery iQMo^HqN_iBXehri9Sc8xW&6K4CPzL-r)59PQ1`rpyf=6N literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..24506727b161bcae9d94287573a528279294ee43 GIT binary patch literal 68 zcmV-K0K5MP1qcHW0ZKgdtPno7VRgQxn+CtZH448DCCI%~uN}SYfs{WF%%?tOyp_H8 a2+chJPy9Y}32?ukySTomqs2ZMns>jqDIWF! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/model.onnx new file mode 100644 index 000000000..5c09745a7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/model.onnx @@ -0,0 +1,19 @@ +pytorch0.3:„ + +012"Split* +axis  + +23"Sigmoid + +1 +34"Multorch-jit-exportZ +0 + + + +b +4 + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fb60a4ef2adbcbe9494178f37cc1f241103aeadb GIT binary patch literal 851 zcmV~$4NR1E7yxig@1sNQT$|9iyNY}dRPpG~qRB9gNNJ<-~_VbBCze8m-_&!Gu zl(VzXKA@o)HNN3$#j*V+Jl<=7_aps`zcg-VH~)=?fNwdelPeI$KjN@t{Tj^C*TR$K z5K?~?Ltzis7*F-g^S8cCG}=2(P`zRhbkR>^*N*04sOtc$I_zM2iv?EiN*(F9A~+{Bu{(82h~8g78zUq* zw(Tr`ucjZYwi&wK*w5ZsG*J{+i@sjFcv#y&&3`tCp42RMIb%J=jrT)VuomLgKk(^I zn}}vcM4PgW^41;0aBeG>g(IEnQ^Ac{4NEDk!%Hj3tgEkyL62K;z>DPmPJ_o;4~(T% zQ;Gg?c2ObCG2KN>=(D%D=#3EyR42{B+dWzK#JG{xuGhc$2a@$>EX`f!yYsUt*RzP1%+DYoO^YVe3UUt)(bN;7 zrLJ6xuCmg|2QFO&Q; z=Gg8#cVT*i3gqcdvaia=oZ`QjuO$nAI&EgJnrome9LaZDllM8Q7P?RxXR4FAH}x0bNGBBkm3^_!EBBb WEh!hVB*sk(?|n)O?g~boME?T-WTr0w literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_GLU_dim/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e867885872539c2ead1ea449b88fb6946b1b0fa9 GIT binary patch literal 431 zcmV;g0Z{%31qcHO2M_^DqyvP{{5^}JJiZ2l=exMIhdtAM3qIIVl|DFpNWUed;l9v8 zCcm%*2tMPS=|0J!cD@g4_`e^z#6CDV4?j!bN(43A3n2zi@q%Guf9P5IzP$}j6K?5%ReWz5Wmew={+ykiab+C?LI=_48BvMG`$^G z@;$y$SUwB*x4uIa7rzIzo;_YR8a`+h^gi^+IzOCtgg#4ik3DUq`#dw9p1y{`QN6#T zO}^%b*FCs94?lnK(7srJJ3aOZ>b=tX&pvnG>%G5KKD}n;X+KRY9={4;oIb)Oaz4$8 zPQRmrvb>5_m_9{6-ac&KF+M<+(muALct82QQ@^u~B)_SsEWZqLwZ5C3KEEkFg1)|i zLO=b76TiztzCHF?6~6|n!#}|DcD^HrTt9_Gr93#Sh`)#Wc|L|y@;-qHL_eZ=l)hY` z=00qM=Dx+32EQJ@TfQ|@eZQJpvc5;niaw9)89ixM2ftBv-99IXyT0)lo<2m)AHK-u ZT)*5}#69Dy_dWd#X+AARr9LtOLOqDU&-DNR literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU/model.onnx new file mode 100644 index 000000000..f76bccbce --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU/model.onnx @@ -0,0 +1,15 @@ +pytorch0.3:h +" +01" LeakyRelu* +alpha +×#< torch-jit-exportZ +0 + + + +b +1 + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf6130901533272460c492ac0b58fcf4467d9efc GIT binary patch literal 130 zcmV-|0Db=m0|){L1rPyBcv2|HKL4ghzfx(0zmMTPzD?fsKEGJKYtPpzM@JYKb&TuKSz7Azka9%zjpwizX4IOKmBU>zV=-(KUt;AKh@O@K1#xh kKdUB(zimqJz8L)CyeFþ»’|)¼< óºMÞõ>›»üúl»^íM?¡¦°?y¨”?Ž’´º¢J!?œf ?Õtd¼«»·…K¼Q°?Ëüž»ö]0?Y¥Ë?ÕÕ >JŠ?Kþ,¼;É™».E‘º^š—?}k˜¼¾i©>Ó¤‹?ëo<¼ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2179d51a6b896ed730bb8146889a3d199fcfb924 GIT binary patch literal 126 zcmd;J7Gf``EXglQ&X8g@&@;Bm;8NmZG!SAmRO0kWP0X$gO3f+N;^$&b%qhr76lGvw zuwTH)C?o*Zp_`RiqMKS#kY7|1B@WUh#3jJND8$3X#K8>2OhC+<1e7quCgH>+zy<)Z C#udB( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/test_data_set_0/input_0.pb new file mode 100644 index 000000000..709beb57a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ +Jx;EÈ¿ÍM¿ýÆø¾"Vù;Ù ¿ã>‡? +t ¾sêv?DÉ’?Ž59>ö– =G‡?M1ÀˆT­?!eþ??XÙ=ŠdS¿ØZÞ?w>©?Bæ…?Ä󳿺uá¿Dw>T:ˆ>mÍx? Q?¯'?žÈž!~&¿=q¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/test_data_set_0/output_0.pb new file mode 100644 index 000000000..668054235 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_LeakyReLU_with_negval/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +Jx;EH¿ÍM‘¾ýÆx¾"Vù;Ù ¾ã>‡? +t ½sêv?DÉ’?Ž59>ö– =G‡?M1ƒ¿ˆT­?!eþ??XÙ=ŠdÓ¾ØZÞ?w>©?Bæ…?Äó3¿ºua¿Dw>T:ˆ>mÍx? Q?¯'?žÈE¾!~¦¾=q†¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..cb2d07eb66559c9bb450903b19ef5190f43f419f GIT binary patch literal 585 zcmd;J7Gf``EXglQ&X8g@&@;B$#KINA#c06AXvoEAB*bW}#NwWso2$jo#hRE?kdY|L zz|dg7fRRy)kBcQKwFJQz;Nnaw%1=y5PAo2wU|hh+q{Yj{R#KFhSL_7l3JHKM(ap*% z(M_!=$S*3W@l!NDcK=)`E~b%3d4?-APoIX1g)_9^@PUZvY*oSSL8bmML)?bIw-?Y1{$?_*hOw~uRij@=!Z&$dZFr|+E>)U@wc z%fx+Ve@pE;ju_dN{MWQgC}g)~wV7>K^Yfx@%+6W1(+-&1W$NkftIb=uukKueU4g}N z+XE_BY!Xh$+P+v>vv*(DhP@2iOZPea$gnk-@M2HYq++{=?Uwr{c>b`>FPgJYY1_1Y z>#_{(oGSh78bZ6RJ!Hde#a(9EeTit==cC!Pmt|)0zBPNA_GXI8?yGtH+V+CNS6c zrID9{u;ygDg6$7&*o2wvic)y(KIcrbn`ahbXSr;aovPjpyC`8`3=8pb@o+E-ad0tl oumCX^NYD^T5G27B#ScmaTwEMLl^|6dNkCP`NUFesPD}!90A`õ?Óz?áaŠ?|B¹»[Â=Ådb¿‰Ê˽I0?DB¨¾žG…¿£J>ÆKÏ¿>,ó? D=?¢¿Ç°Ô¾ÖëÆU=ºR?b™3?Å ¾¾ +U”¿, Œ¿`žà>ù}?/)+?ª{›¿o—?CU>>Þ‚†¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8b63e1639a26e0780291a33723c3ef5541e602d3 GIT binary patch literal 137 zcmV;40CxWf1PBNa0ZM=YVLu=~XWqg;ves5VK=}YXE_LWXGcDadmk_EyI+m?Js>Y5! zNK;NeY;GRCIP_f^lCzh}1Se;N2xYq@pmsmXJEJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear_no_bias/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear_no_bias/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..0eec363c799ae97bc0bfab4f7b8061196475eb72 GIT binary patch literal 492 zcmd;J7Gf``EXglQ&X8g@&@;BW%FLy}#b_wRXr#m$Qk0liT##R!s>RF2Qjl7d>%i#1 zuz-=BOOT7vfQ!*ch|ySy%{Q^cw=_pc0BnYCR%VHAYDGbQQHjf7>qOx-6MJJ;^o?)m%P zWe3@<3#_y&NHg45uqb1%$=V0DTM{horho6U`_ZYek7;eKUBf?J+aJr7_j&xVvfCKB z(2gM{W?#q!)qVFWPwe$i(%Y9+5VCK^TM4@;VPKdG@p18RFbZ*SF>$Z}F&9YC5J?au T!IcCQG)58xspN2C5?})W8qK^t literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear_no_bias/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear_no_bias/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ee643bfb7f02b79b360a67279b88d2f831a23c5 GIT binary patch literal 169 zcmV;a09OA91PBTc0ZO0&10xDQ`oK@W0J@7mZhYW9&hgbg9Ew>5 z@Nqi5MZ%1~ahj;V%YCuGM_OS&grmQ|3DR7?b+AXjSG|3{Kz$iNMUG^Cw`YZ%K9$xXj$n#sj2I;fD+PW1! XA=nK-i8x!oD*MR4eh>Y>UG@dOt%p#W literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear_no_bias/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Linear_no_bias/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..27e6172cbba4a682b387e24cbc60b91f8ca33c09 GIT binary patch literal 137 zcmV;40CxWf1PBNa0ZM=YEDN_j7G3VWyWtBzg7r|oYk;1<5DQ>F$TPIQ`6Ayw(s($( z>Q7O=mYPGqux3)fL0p7BGR%&@VX&dUKp^M5Kv3Siis4|tI=5dx+`E!JxW)~=0MdH8 rT>lGNQyUD5b_oL!wo+=OM9oqD1q?CK>KQ+=v4 zCLHo2vqovC^VCtshX>64Ssra0)zSfJ8+*P>g#ydJOl#MPp~glUbMOUK&vINV&Lfv^ zLttwYK;aD;Dccs)LxUTQ279rQBQX>)&C0s%)EM)l9q%28$h&`p9g1$qWWn_6w@^}r zOrk8aft5el*HCUqWH0 zBMDa@rWqb}#;`}T@tp5Z%$A&qsrFY;abO7kI9CAu-V#jj@}Y43b+9#5(vxs0eX07y zE)M9BOQ|3W&oP^q5L4Qdu=aQ)?A{YX;?Ad}pFRxhWAcb)W}!$}Du2Dj3B-8?WC?ta zJ7yA8nv+3V<4q?!OvqVUS;qehuu9m-!dH#3zSZkkk6=5d6<+|4?S)tt_p98q_$*|U zrITiglqI^W>1EO!O2|IXPjEYiqD?LEIB7ja+&>Pv+m2$EQxkAvz_|~!*gU)lvw!!I zhsN2PMC0}**SOB`Tkk%z^2)t9r#+U&`&7K6&<&af?xOkcC|dDRPrDn+xEUr0rfyarij8P;g-Ly4-8&WuFU#C!GVyXg#VSTdDv guj3T*HwC2Jcn~GG)TGe5Qo_2a0Kj1oam!1?Yu2RmGd46EDAz)#0|J@50Ub_7IRlrYq15RyU_dAgUUkh8 zF~{Lh6CD(qTv1(D9_jlFI5Ie|D`9<5KxxQ9N0bBz>gn?@Jkt46SxBJa{JeOZksH$& z(QQ=n?f603cIs&wJ5F1biP*CaJa>*E6z;=5IUjYmh1VNC7NtMe(3l%T?N2g74msHV z-x~ZivGiTd!_a3Xb7wXgT`7#tv!On)my!>IIK5iOP`V6TSU7{F;Z*u_@g-U5ns|c; zd-t#*=v8h`y-ewEX`K4Uh{O;?-~l5_pN<-N82W2g&M%DNvd@eyS%J1VnZSF^OdJ*P zbnal%T!wSg`=|q+<%`?1qR(H)h`*7UVGWu;l?at98OWBftmgniqT!XD_@KA z%~cGAr%-lI;LFwZ96F*wGN+o)0z(^b}jej$lTg`J3jf5nF4 zJc4~H(tNpmms3Q`{}$XmE6FtLDSv(eF$KHW->zr7-9?_)!kKkd#7$LDdf9|)+Y+2f z@x(+sNfBe!zIm7Ub$I{R8Cn8a$GI#b#WX8|=q$Pk00a?7}wd1+IhZ7IAxSQNm_diERbhkJ$ zt4BI*X1UWtTxU7{4FdaIT7Fsl4yAFy=x#P}UE|?GVip6xFT&K7%&nX{s{TGfz9^yM kuTu=YbQGbYNi+zxq_-;wdix{^nF2}1R7&cj@O_lcBiF97ng9R* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f13f33f0ad6f1ca9b4e7743c43f3080ae378f49e GIT binary patch literal 160 zcmd;J7Gf``EXglQ&X8g@&@;B`WaM(@Vl)t9G*n{uO{@sW&(F~k=HkgtEy_#Hi7(Db zEJ$@=S-{Ay#mmJ~keE{Jz~I0D;_`8^7nc-erlb~wrG*5*X6j~TmguHd6yz6`M2Ulp g72*=$U=-rvV&Y%|VlE(NNdih3Vv%5UViI5j0L-l)YybcN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3e9a9c10ce4f94d1006011199d05810d80f44080 GIT binary patch literal 331 zcmV-R0kr-I0tgBS1P}pAzyfw^Mm{Jc7Cojt1HY4Pq`%fIlE1g;c)m30A-~F?zrVaF zg}y;%+df3?1;1ef3O|7n&^|SS!o9dP0Kh+B;JpzyYd#mA0zY)dp1-RV2tV}MHouC# zP(QW;JHOtIoxiphFTS;U9=}a0fj_)z*FE%Qmpy&RFFpx77(kD}-aic&6u)9oa6V+N z^FGSVfIpO89=|gH6+n7$*gjAz6+o$B*}jKN{y&Jfm%g(uo4-yp4?pekAwSvr^1evl zs6H5rioe?R);=3(P`?F+D!+K*3%_=FbU#TDWIvgP=D*V|;ym!=JiQlQ%fEmbEI&#X ztG*0HGr)2dX+1nrVm|^cZoU+·èx¾a +?Ð>«?оP?M*? ;@ÊÌ€?P+@‡Lþ?íñ!?ÚõÖ>vxt?€,?”vÂ>¡?»? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f13f33f0ad6f1ca9b4e7743c43f3080ae378f49e GIT binary patch literal 160 zcmd;J7Gf``EXglQ&X8g@&@;B`WaM(@Vl)t9G*n{uO{@sW&(F~k=HkgtEy_#Hi7(Db zEJ$@=S-{Ay#mmJ~keE{Jz~I0D;_`8^7nc-erlb~wrG*5*X6j~TmguHd6yz6`M2Ulp g72*=$U=-rvV&Y%|VlE(NNdih3Vv%5UViI5j0L-l)YybcN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/test_data_set_0/input_0.pb new file mode 100644 index 000000000..4f1303d76 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/test_data_set_0/input_0.pb @@ -0,0 +1,4 @@ + +JÀ>@ó?Sðé¾ÐƒÇ?ódm»Á)!??2C¿ÿ–;¼°}ê¾ + Þ¾£²!>RÉn=$‹’¾tnS? 0¨?2n>?y¿XWÿ>IÒB?– ¯¾lN¾5ßô>ù¤?îÖ?¡¿¿¹ž)¿ÓÆ¿½7è¿U%5=/¥ë>4Ð =ZWÙ¾Œ±]¾ME±¾<¿glÕ? +e·½¦}@ÒÀоY*’=È`¿ß—¤¿/Zš¿j ?që>#~9?éÕ›¼@.¢¿|?E>~O¿Ï3\¿¹Ð»¾üËÀq<²>®Ç«>Ûî¾ö9š¿ b¿KFì¿MñŒ?+}À£ÿÏ?$¼>t5?.d¾N"@í„~¾¿$–¿œ¡=¿¹n?ƒb@5‹¿jõÉ¿;Á}¾—4¾\âí¿‡ðç¿Úò‰¾_–@QÌü¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/test_data_set_0/output_0.pb new file mode 100644 index 000000000..1a55ea308 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ + +JP>@ó?Á)!?£²!> 0¨?IÒB?ù¤?U%5=/¥ë>glÕ?¦}@j ?#~9?|?E>q<²>MñŒ?£ÿÏ?N"@ƒb@—4¾_–@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/model.onnx new file mode 100644 index 000000000..55d8627be --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/model.onnx @@ -0,0 +1,19 @@ +model:• +V +XY"MaxPool* + dilations@ + * + kernel_shape@È * +pads@d@d * +strides@ + graphZ +X + + + +à¶ b +Y + + + +½ªB \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..404980a16e857da7c44ba11c727479035bb5360a GIT binary patch literal 880014 zcmWKXcRZGF7{z5pgpx?1lrnx<$$al~kc?!N85L40vPFodG_z3o}BU>r{#*X6a7>2!=$WtsIK(No_Is~W8t+}4ku?)kBO zS{;H8SBuSix^rd1evxzBndk5hTEDyTZbJrTsbv`HXvKnzDy*_h;J#89Sys6=>xXT^ zhS*U2m~MvW%|X2TLy;ZiEIFpmO{{cnhT4bm;8SaM{S(X`n)5Kcwi~PZ`tjz89@yx- z6v@|%WZnywq1~@)G!7@Pjqb-^vFCAVR1Z9#WsUoKwLB4UH@$-JsxV&~0~xOOgz zAD1R^{fgW0uBws2Glk2GHlVQOp3qm)lbtPDFXkWkD%@vQAm~;ygCf3R{F?zHHfDP&~ZDxsWm=EXiN=OQ{LrlYR@nh(1QB*#HXOlYdmeK`T2TxUY`|$ws z)B4llfey|pWU_EauGnYM8y>;tFw%-=$QUQ;D5Uel8#Csgv}5TmGwuvCVZlX9*{4J0 zFnl%}kE|cU*=sCoIvB9_OfFw88oi@w zbLT7e9!+KFc16~|+9td9)0N}0P1)vPPnsKjM^;CFap_G8yO^jjLA5W2oL_}h(?NVT zERTOWhlr?@9hmd!KeYa=#@xluw6}dpruF993whkt94Lluvq9s;9k{90B5O78z&9xwT=L3@tFE=-p_Fi)U;%TrNa*oKYq&v1G}l{j6P#@k1S zx)iiNaPIF7EDl`-^ex1*P+yvlk)wI7Hy#}x<#gldC;WH2 z5W($ic)4^k>&g{Seqs^oU;Dsg)gnyIUWSo}SK-063@SKH6gTfC(|+4Qr0iZT3ZCD= zkQHh)zYxQ@io3+%Hg3Ywd=mnnWQhw-sdTxSBkShXhCi!Lz+?Md7ytW@;b>it$`kDw zWMq%5weQfez72!#2XW2SY!1v%{71_gpgaHA=1q(QuU(M`e$aWzHJPD<6J~_+bl> zxYCYqGMuSk8O9F&W^^g2Ktt_Q9O?cS5f_&u(7ihc=w`FBu@&lNs%VV5Al!GJ7B!!j zLv5(1OsjhbjvSf+PtOfv`dF!UuM4MD>?hf>=zi=vS;o>rJ+^mwjickV8LR8Z&^CT^?MShi%^9kZ`sy|8@8(R`1m1&6Qu<3D2IvKS6qk${oO zIc#`4fDfAmlOqy1vm$^S_X+ORHR09;d(cBIfMRJR>*UO#_;eiJZSO;yci*9?K7@Al z+hG&&61BTVu-nhUtZ}}GhsJ8$Y-r8xt3z1)a1vKVMRD&rTN=ME;GAzm=<~q_`_<;k z%Kx*YeU3hNWuAfZd>gE3?8pv=f6*ZH5!bdS7maT#24@{We1H`v?cRl=F269vIf=i< z?#4>_jtuZq$M**o?2@p3q&Y#b6z4UY%#f5`O40zA4U5C6a(NJ^g`Px-^FA18cHjoR z{g`86#=ifQ=MCzA=wp)k;hoGm4K!dEwTq-*|G~gk@LCkr-Zz*8N6sD>LV% z>-SKWrp(CjWSG}F!eX{HV%=3`bBawk;9DYXSG%y=<4DZ9`XAnQ4uX1%GBaw7+3)Na zx~}<%LW?7q`YNBn&rJ}twl9x4$MJM{BbNS1^{d6U$pPY795;_sZM7wA;XQ0 zi%dA;#3igqC_%q>-+k5_KowpP_?_1GqbSZ{@G2-*5qnT3FAPaV}XV2U?MwpFfnua%* zH6O;12NM~iKY&NRZ-U|d8{&JyF*I7-74s)|6gNf#|Kioyb%PI&z2Aa)&KF#+uPMR2 zbY-^gHDVjJbllsff}elX@nYNvZjX<^+bL$$x!j5KUo3G+zdD+?@ApB}NvY1gist%W zE<9A^0PEi4sMt@BVwDar{8tLM4Iz9ww@9kH#(YwvLW8$m`KM|rl)bcgr>i4hF%8F7 z>4;ZP!%(Vp0vlIEaMUJGeja}pO#?;=9Rqoe8>ECC6Y{8Xb0^xKcm$`i5u9as0;4M^ zHtSU*-#3oe9=?I1f)zVV@kWE=2;Q3Ci`QRy%FZ+{lKrW)gKXDhd^-@vQBli8&Z1Nd ze)a$-;v={yff#8p6ZV&12t&(QKK-0c@2Uoj4%>p;?H6NRI9L-JK!b)B5m-DH9xf^H zOx5PsLrd@})r@2Jgi-aO5UJmNu;u-J9PO#hx|pvR@y3v)uVT3TzX{w?kjuOnKemjz zkIg;KqwMN1L{BQ9$-ZRX8(0jBtP6NMH<9`w;~4I|0dp-$tve0a+uo4sw@ui4*%b5} zXeIVPu%*4|hs*Q((_~H`j$3uX4I35&q7MrFWgIvHv(X=oezRKg!uTubn{wDI*7dNUo25|A)CEp#@?U}f%FoGfSU(iOS6n)Gi#hK;t^sY^&<%AWYpz@Sh zdBU0=Wl7v)n!^_n^F`H@^T?=J0*#$(;nHA$mOnoctmDZ32Dx;TbEDJdaoo7xgde3@ zYQ@hC4tj}c+ht5|I4Dle z{wrQS`GysTD-osPPmN<0`0tr1&lZ0~Z^c+fZFT0WiuR~DE8~`3Nlc${LN;RQa3)_E z&NY)q!f>)HM;E#yL_UCTBO*C(SuAWGW^mW^MmSI12zt&2|AjImtS!s_8-RqzshC}F ziW2!W_P(@Vs9PFx*07mav1Fb&S`*9Y!QW(iS8ov$6yjN@n?+sAU+_Ql3oG9I#?aL( zL~VdKCl~uL;*2hL-EWflDG$f}>Lm!+v>2`qp+uq%?RSnBQH9#PRP_&C2I+8}|8_*0 z%*DTI4JN(~!j!gcI5a??kHZJ!PjxWO&e$>f-+YXz$>+VLgD7lH;CiMp-@j}X4PDPb zM`s|fxD^Y(ul?9DV=)T;>9OScDO7!L$CdY^SX-#X2h#^o!^sT`bG@-#=@^#fTd-eF zE~{pn(e;W7-|X0pv|wFkXK7$#N_!e>TtijQvrw#%!+*`sF}Q;(2Ue=`m(?KNcCesl z#eR`uZO@2D?!2%yLi#4sspT}8R^Fqb^R+Xt{oX38ZJ8&O9p@k_rUx!b{jBHyndsBb z4q?60kZXSgmtXzHkh8hGvT`sNoY@PFm&ft;_dseNnLvd*Bk_J$2QFLjPBzCa4WsJr z$!0%wK>H=PVSDwHu-U7H4-vazK2DJb98Za9M@G}A-U|oQuQ+{mvt;_|1K9P#nit(t zdH!%T#~(Y6vl~_k4>@mET=imk=RKf;DmPmX;@|c!h5unYF8Wz08YTU!kT#H0r%Yr= zB||oAr?ZD`stDN`jn*ZnMX!O@bm?isVDGWiG@gtN4V^jrMkH199oSB7y=WVj#=yXi z?Dp*$+MYCHyWMvDu09hxw%kVK-lv#y(~r+fyK}0=LAV55k|q8$=D{mPo9K)92~NwtV9L4<#Mu35UYJ z(9Lt8>Fy0eXKOB>SUFDJsS>lLGblPzgZ*EnIeb$rPt4hYF>PnUKViD4J|g{g zNV4d%C5S1S%`ovE1e3rx9@*l?p`VS>vRRj7fA-?m^hTl7u@h_FDDc3l<5;zAArwq^ zVUW#a>^z*qx1|p-zV-<0UcJFjKPS51@Q^JV63QDL#tJvj2+{q|SejV1BDOM>YpNCb zRsT8iq*`c`P>JStJ8-d=BhRmMXW`TWT6ao7P00?7zN^hn6O#F~X*_-V8^QDB4VX@L zrh!^ptbgpr`$m)b=i?=zVHCifIuR^rzJ=D+3Y;Z9W0sZ%2Td5lmtkL^;;|CHY(~&` zTpm4zjx>in7hECD1tB)j`Y@3prNel0#uV88?81dfmMAh#VQlqq9y}6&{YO$6)Z2bT9wKIb z06(P37@%rF)#uJsRey}@`>jNCd^~sjNMf&6Ip*dKhj-Q_I>f2r%9sG&{xp=!OI~Ao zg#%TU^>Mc0F-}F)qR*=qxV7nzjuV$S*Ti+?Y^%K(q~OTz&W`xAl5{ob0>5uP#P!}Q zF-5x1Vz{;(DidxbXNS z4qhsO-DGuM|D+^qDwvP#AJ5^x(-eluUcTN_^uxY#khuqyM=ISN$!c}>urg|`EMjierI&g=F9<2->V1sEOyC=TD zft*cPcSVye=hTIKdOGsTA0Rqq6t1pp&#yZlh;i9bTs>$r{I`u|@u36a)99UI-P%F) znAMKieN?DfSGda<6iiwNu~7Cgt4|RsG`F^<54Z-;JT+$+HQ~VxvtdJQifqcSZy^y$=?F)THA$B@XO6o~{*X)NLm(^bWg0X~#!l z^I|aHoSwi5q3zfuIRX#loO$ciOyS%|5iR9msLt+z+$%|(n4u_kSvYV=j3E@GTcPm7 zhPS@^$hPUVrOT5n8ttBoG?|@j>Y$70-#UT=Z7Zu&fovh{| zFZMBBJ-C36$_kj%F$YdY?_sCB5?3TGt1+k}HO2|HJ~)ZjX9u9dNt@%W+S2Dv2{fM? z;AQG9Y;?(FefCBS-_=K)wyZ|WqCV8L2w~B!Xs*pl#k2imxh!HIJ{}HcnXx*Z=dQr> z0XER?s6%VL#hBasGkjM!$=3S*6U8Iz;ND{x23M%kXG}6jO#6tr-zU-DeZN=`(w+Uk zb))SsHEuAHaiy&TCtph82HkNS+dGVBF57X-;{N>kawLzGy_AXiwJt4rnS4@t0#)N{ zh2vHoUS229zTE|11ejuPL_R;g?CbpO^c=JeE=2d+dDND4fsIyQ(e9uRTR(g8`uu13 zy}1I%(2LvV$gu9B72}QTMAOuG>h}!5f=%^Ms;HEm9s3RUvUB*&A)g|_M3`@@#(C*E zOXp=EJ93+7^1pHf8eC+z04o z+>X4YMPJ~@pg_)LxP*Wbt6f%6aFO@%G1{Ir;V{##%)0^D ztojSr05fV1F`)D6PMjFCPUdJ`0sk)_;PWAuy<6hwdcQXVrw?M^dT-kIP-Dk)72?^p ztFrOMzp?L@3xCY&BFYBIi|kJMe6Ml|XDw1Wu%Zavr+1@zc>u%y45NwXakK_0Fs7$D zlXP}rq~~}Bj5Ow%5_wKf%H~v;9K6Ztj@iljT(vlaaeW$bt0to8~HIw^^{n>IFa{W*zkPyQgL^|K#u5W!}KG` z+&MUui-*s~B28z^+%XN^=4P?+TPQY%m?D3bC2M;{F)81Y)oG*o=RqiQT*vb6qs16g zE0{PvfgbM{!|OkRVdMR27v{^jc@Ob)us@$o?aqj)9i-kfLN=qZ8dZiVRNrzE>hFg# zev3JaPr5PZU#V!AS1ooP^q`eeB$~gErNZpv2yfnvM`PW1qvj~e=l9`#pH-N*ET4y@ z`&W5uE+$6)=hFIKFxIie*q2!In{y3L>ON@Pvn|8*D-14WY%hrk;Rzr zgH??Kw-_f<>FY;KZoH4og_=xApNsNK>v5t(XFdvwWWO3y?s1z7w|(;B%V0+qzm##w z@-pWwSKRn7tAOD~W{mP%jn9d8%wFFhbPmN*@p3LUgop8d(m=dApNE}V4)~o{kCSV= zQ0rq92lQSd#=WY?v`NWyU*t}&PCvxT4f;Ieu?g=VMzZ%9aCk2xKAvaH=5eaLGx;1^ zG%n(`)dQCvN4=?)7tX?cA#|8=R&+}5#_{qK`Q58rtjc@@$GS|c*w}&_A-jbA>JF@3 z_*XbtODrtR1anLSIIsLNHgr&6*8@5D5EjFuXA}9|x(T*p2QYhwDW^Ct#EGe$g{7+s z#uT>`cRzJzuw#J7%tl1h@L6tIOnax0}mCL>o5~F@tIiM zD4?cv1M@~0VUbn=GETTK+jbJySu4>}YmLlkq9OM!YQo{B>*%mmonP@72~#2aem;R( z8=s@UK^J5|-UI*fahx8p0VjGsz(3h)Swhwhe1Fjns&=`o2^fI@n;z`A- zJL6izeyEro!rGG2@ctRaUC9y?P$%`D{=$jY`67LBN4jsF0nxu5KfU+_TlJNq*>5}k z%7<`vz+7Z}{SSHb^yzz{3p*G6L&TFMC?2#2HVr3G9UmdOrtQWyi{T>V!8pz_YC_Jw z0h}^7pHt$T=-SW`;jMEq{G=nDzCQ;KCt!}^cO+gJ#cpf!`FHdw%zQnHH{a~SF3Y1h z?l^$TdiI#n+X0&Ep5aXQ34F4z88w4WxLi}$XGpLfgWE{6!{vq8m+VK)Cu107@fD~wOoNsRd`Zms!?tx5f< zysSSvydRD9YF8EsWA-n5iXBfh*}g*v=l;He2fy=p+F}eAcAX){tda50gpH!Hcofy5 z-iu!gjtbk0ZmbVkC{Di8=ekW=Ecl$jy=tx;IX)O?KWj4ADaU2nW;GUA9zj~DDk~Q@ zAfbE_T;m^N{^Gfq-9ciPM;<|0bCs~FmHOosX+B)M7sJ~r3boS%IH|v+RnrT_(ZF6} zw3Zozua)4a_EWK8_b^sm*#l>1ec6U2!3u-lLec*yrYzPJ-wv(C?Di5j-;zhosMn~S zGao~Hc;JXZ0KEeYIr3UEA8Up~EjgAc7Zf;2e>J+SvSOKc4E+Z0g7&2$YtPa8lV_w^$A{u(?DevJ8UQ&1=0nTK!vg%!|lj^lp(dR%)Ng*gT1F+C`dQ+p)SEB^(SOv_}8%0B$NlSu!Zc{u)en%J7S zA2EXsx#j*d)Lby)@wzD1R~oS8M+kmR2tiiCF_bu-!A)Nik(u=osadT^ST>BVab3A^ z$3UtZE3+Xrg1dI~;=c^8X?T(uFN_5DEb_UVo+Rv{Bj#k|J^Il z|NTOo*Vg3f?@CzsTa}9E>X9{7k14x{&|*mhZ`bU>=|oF@$a{)*8=i@>Re|WdGlL^% zx0gJXG}@d~W^CvM++3N%xV1x|yuVde_8^@{Gc;&CdKN~%`z~_L+^M1Iz?bJF&UP`1 ze}bd%vnqw}m#49Z%{8$;D1kQC+DtYy6vq2YWW^th`QwcuW2e6oS(_I?p-&+uDh5GE z@ha+1TG8%Eca%nTrH-2`XYZ&)%V5dls8i>;rf2v(`VbD9rE-_L#4WP=VrXLlLoZ!K zr^W=9-5Aaro!W?o2@g^7sssPtPGsX|^6e89s!DYsd1)Ze8ct;Cg%#Lu63BM*e9*k( zhLF>f=dC7XYQLR<=+xt|zOfU}U3_^jIZ&uws6gVb5U5=8;qALXX@EV)j2DdR=77zn zHnf}-&Y3?Okl|G)hCMfB?P3L9wbCIEKEjCrA1=(lfRK{en03y8cS0@MCN7VkS4MJ# z?-*)_wkIE|a7){@xR`DQo1$c-wseKL?s^384S}3TFY!Y@7PiODSfX1Xdfh&YJ4+q; zE2tYyZb?G9mjlmA@2KT*C)!*~rQ*G|*cZD5OC_$tDQ|Fn0y#^X?c6?xu7*#0-5Ac?r*T}rKv`T0*Tla+*JN_K zRS-+x$YLz=xI|$RCw8cS&v(f~-`o!)C*4AESu>6phkY*(V!eDQLlh6;{zQ8Qty5?Jiwb=F;tz(8Z6oSEN6PN~nIZ1>?L(Eg$!r|0 z1)pV_n3C}t|9myMbACG8=|u7Ed~Htr+mR)Ok$gJ65^>KBx$@K`p4`+ji`8h+GqS4`XjtpzBptqRVzXk>vgDft{7W{hE%nhPkA&iBl2Q~vxnj^n08=G0Eh92X$DdJLAl-p)_4%f{{r!Vt2M9^_nB;SJ(%T)L6M^PU2!_quX%?g8v` zKLE=*U1lwPfD0O#;)0~dxBX1xX}i9x9`FRyb{oq6*<`ctit`9<{)>wjTX0sok1?(8 zLM@~YO4GWs{p%=>>bC=ddX4y(y;v4*7|2DEFO^WTPJH$9WbN=UCjU`jos}hv-uiNl zYobfaKnE_C`-Az>QE9@yS^z^PGiB^Px;$9mMjQgXms3lJbAAqWjD>_&)O;I&YW{%y&e% z$z~MpX~COlJLYb=g_ip9)UnJ*sz*b8vHb05XqkM9rt0*fp&Qj|#@Jo#8%dJ~)8tgg9FUBQw`xtlR_Hw2KCG?6d|k zrTOr8G33=@=}hqLOCMPzx;?jI`K*3W`0!Wuwvz@oPwmV3QlI$PZvY(!b>rhpof*_+ zFqiz7#$e?~IDf&A!{;^O{An%GVd^NFB%Q&Yy}^9!X2wM`Y=zOztqA_!Rr0Gcm@Vn* zpJV0eHm@%?IcMLy1coKQQ4J`TY>mRR5&- z4c<1Va(DV*`o*X+(AQqrhU&8Fw5d2?8-(^V|6=r+9E@HXPDAhh49G3Ry8jjcZFDig zPvR@F2cYaZl!ZUGLqq)+Cg~qS$+RIHZ#kKHkAk_xE|CA$s`Ag}Z=!vI1utI?6yNOZ zc*lQ;tbeE?-$3GAiTyfR zWM&^cC9I`)p6)%4e#Sbi8!q*b`VaW`FP+T}!KkmEz`}@0Fgt%rrfC|9c{g==cI#{0 zxICD_cddEbzYEs}DzUez14~;?7%g!z3ujYmMMmOl?kGGn8%@Q?UC8{g1?!^Liw_wW z#L8KJF-hY0N7wmNcUezPxII-?CN~?l<0Oqev>(Rl1YxaSE;s)jNT*%yv=}p%(L>kZ zb@M;*uThtQ6B-a*r*Qh*D314vR6^3K^wM8hshMmg;`$Q*Xc zR4@w*D^_Ciu0UQ2ievKUSk?|6Ox<8pUaME)oK5PO^m8rN+-gL5XbjtqoQf5}!OSn} z$&0q`+!}ra!^Rr(sox>IZyU`Yf2W}JVmz1jFyrQo8BkqOjH=^-R6Pa~ZF#`C2$kJj z;k8Id7&wr1#*GpmvgOE{L=LW0rvDBbCP!X_ty6EFeW!txp;Ix!suVNOo8ImL{HbHc z*+#3d(%e@3H)t}ApH#`@K90cCyiU-Yk;*eYHO2uR@8|KCq$(z4*D4ccnQ7ldw z$yruosM0He=hyg(x4C*W8r~bm`|m*h^DQjXIVwJBpA!bH_&wT;zcz*8MMpjE zvcC^?`E<&=SK)-8sW@_VE>y=1K*tl_obfpXXJdLJ^XXW={uNL2TLm0nH<3eET5`Tr z^O{yPi1m-``RCh4jLmUjl)DeMKJw-KqCvg($WV-p5va7RxiuJQ4U0(7WYfS?9z;P7y+Ua9k#urR6>PP+I zkqnd0uHJGNIIlN*o(N@E-Ojwx=*-FA$J5FEDz-e)hTZx=k#g$ znoKYB!jckw4oOPofpl-y`W51mUI$jay^e@UnrygI1+8OpYdCa z@JC7jS2~*T<)&zK_s(QZkFD@?T#BF~XVwH=K)j^Av-$^fjignM^c+fs;KewpbpzXH zx0U=yIa*p3aG{?8`|MNU_%p5y$&&oWM>E8PmM{3+eFU!l?8w9GV)?xFuk4I%ICnhg z#|O4PoISf2YbymxQmrVHvS9z2Z-dREkGN)S%c2{zAeWWIgw+`wezYfC&bnb}@-)%D zPKWu4m+^R`7yq{TftzXoAG87;T77J z-3?CSm18eXZyzt4E&0J{HeyO{5AJEsCJuQ%Ys+mW0%`U=7?M^R;K1N3r&@nA?ao{U%` z&46vGs$#{@4vp|VD0#VQr}1e@1pBn!l7*a=v`e}_@3oq;Z~yLG|L;A{O}Zd{FHB_X zFDpKc^rPj5o-|I7^l7u?cWpi{R&-&&hbUIp_TbT- z#V)_D+=abEDb8Jy=TvV^z88b(q7)7f{ci}iJ_)6Ug-D3$!*v!e*pNAnBW}j>W!heB zPu~Sw=|8rc}uJ2h~Xt4z2 zo*%|1lU%&syFixuZ2?ZbEXB>`-8jrVQnqTXyUT>79^CxAfK8j!*zT+&Pe^<$B0QUy z)9zual|Jp%RoIebOVh&FuyYWc>1@JHmLnKHdX3CxR2N)roCk$lYFyWtPS28bR$hwX zo!W3}Ts$Uu?_GIbs-aHb0_Z<5h;g%h=`7`DcT^U^zbp`Ihv{(O*KRy^){g5Anls?y zdEu&~NSm4Zybv-5{cQ5k+>}Mf4iQM7F`n1V)p+m5AP(+f%ulyHQQ9EogD&=C`Q9t& zmpGZDe%teip_cGEFqq9QcSV0=Oa7~B#>bV1aAj{BEPFnb_B!{l@lO~}T=zn#l!sj1 zeY;@BaXgxPNH%>%}PewGN>>PThTrG47V^(zi*-oV(Ivwjw>7oLQXw7_(1@qev~0&y~UX z8;sy<^i*{2R*Jr6=LBwhFe+ds{^@1W%R|z2uw(lgA~$>h4_Gu|SVSS#-Va4xrx2bT zb4hGmS|uL8%!Ej|jNG3ZGS~82_(}O%kE*_GjNXBS_G4IWki@QmI}z2j58Jjoiz$-c z-T2*w8N~y6&O>6vR+;Rte+wg`X%7h1cEybpt%dvmp z0(4eshiugVSPgjzEBim9o6B^VbR}QixFR~PjOL8PU$NRIh!sl)BYkc<_g2|(=}}ic zOzFe;pWbPxOKS#5t6Sud;ME9-f&?_&~l79*?{4L^I6l$hYyChL;r>uo z{p~{QQcI4jEEhi=dZGN-QPi2MaA))|9?zR6;{N6%^K%Cd>Y~d|3kJexM@Mv!G9=}e zO)^6%4>Uo+Tx8eyu>aOHE?m7|#M%v{hTbY%yC_>9VN31KhXYL^*+M4%=o1Z4v z-pm%8ey@T2dl7~FS)MY_HrVm!p?m1K#+Ese zqowS%3j2F?rA)CwoSC*8haB5*daqex@$*_JNKE`>@Mf^toZln7FqC>CacU)1|)oR%lM$hE7Iu%pTbRB_&2|j)-Tr_={mK zkFol}M~u1I4S{u6M9b>^=uthEiFJ>}rHfKlbzYvB-sK67Hs^@Uz!Cg#rUCw&ULnuB zAGhSI^T$!i|Nfjo-NssRV?q`mH3Y*$%0dQ78RbL!wc?hxfutqd6i@6!294*VypH097l#eyp`+5+D{+Qb!IN-$=0D)#st0` zN_M_pfopDF)H`|`i#9yNyNgFL>QyTq?hU1`sUf~S`;X(&I`a71&lqz=krQVOfa|HL zLixlb{;40yIPcxKdsy0`Iv9_HWJMmzc!Om#PUFj@Oqy&p;`wFK>{mXCihssG0@3^27yhsRIBvntmF?Ud#lG6tt~KGrjM}N z99E}0G2nm~7dyyti(ep@hbJ(_;yoUpOXkC^(q2c`QLHNO3kyke|NFZ}^!#E$!<~9a zx*>-%T#Cn@*Pwa22(q!uP&~K`odUF2zQl-Te?MWCR|>~W&tlTW7TFJbsXmP~qgDGf zChNs8YTtBZI@O`gvYVJQUR8{kLLN^x=KP^+vFOxcnXAODZj^0CmuhF(yWAWE#gssK z`6$d8)sHz*foLAF4Z*7C5nJ6A%VrBMN{+{w|L)_fPO+3viDaCMCPEJ@@#9<#=pU4J zsJ;wfxQ{z5LeHb6dy6<8G>prK+{E~%%|z4=N6BB`g?ow3QckoJhqst=!~iXtz5R>)ABV-}X&n%_*puFa!{}lyWvx$v z_7?tl)jo%|A(N1{XD=?69)V5dCiqO~gk_H-`RC>{JbCd9i&Z7WN#(3BHZEzE{;H?x`ia8wK&i)ClhRl|#7)W*oV~ z6&Kcwgx}9Kc#z)>`<-^M|qUBNiuENC&Vhoq_XX(PW)Ea(%Wxa1 zFytqgyIj&A#|~k=VciBaa|X_x{ff+CK4QcMH7S2khL!g&V!riEoV3+MA9ls79xa#{ z=)vP*!)dy%8>6*{vki23qEO09%yq`d)-*cjZpY^lLwMzk8`BntF-7{ub!s*v{b45W zX65jLaxPonwm>hl8+Of?JV5t$+%fhCyjH96v8pnSO!9fl@|AGv9L>O*E?ls(N%m0k z$d(#AW4VJZkJP`zsc~Jnubmpc47iEFANri+wjICPenjLTbqVV`@X@gp^tZf*Q%*}T z(QF3pNwd|4RYX$7bBw!_%iq@{n7nTox4Ee!*zZ27>c%ks-BLKK*~{ElO1ZXTYjm+U z;=#)2hzU84&U01?i?`8qv44lY)}9=)x-Zpv1o3Tp@wVJkEWYean-9JDUD=+hb&B+1 zCQP1bQ?PtjM`wL>{hg4br;&a$E+MQX$S7GtNOUQe05NSO^ zSpE0CS0m8Z4jRxl+j>C0V`jg5+61yGqh_J zw7U(JIYvxJ;mO|6eSHDyk{|g^FV7|UcQ|jx#qh$Z30SwlfFmW&V31ISvGdZYG9`u+ z2Dvh0stZiME<*4L4Hnh3L$(g(`6u02vh_BOJZixr-|xtn6wCrY4T;(Qz`{gB zI+aGVb73O74>^Omm8WsF{d&o}wG#o85~%JnLR>);+J95#=HoqK_C$_Fc86qMlAU-( z+Q(RbT%I$xwP5QDV=k2Zq`&{IL&>)oD91!oBYYVmf)sA>KB?ryvNU9gg9K%PhRsQ5Wr2j^LUlS*+MB&FhZJeD7$)iRsrMXC!gne92et zChf)Oc4hs+J6Jo@gpdBwk&s+eE zy;N`aN_j7fvR>R%pT>9PJvrR-wOBIy4-TwsM*h`esD2*C|Dwu7z%@CJ>FbOR?oP5t z28Q(68pgCWTd<dR9Q&HauNxzzETRL;^x9x>S~eNF9_`$Y;-$ex zn9_sAuRe>u5#VPIqb#^D7wqz8>(?R3boS@|ZXtYMGnh$x6oulQR&h5vn~&4Fu{631 zjkAVx`B*7GKP4I(8XY*1^KkCYLHrz)%j?4q;bE;Ge=CM^x{s8-n)F)qsQHDl*`4rV zRXchu>c;5_uMyS3pOd9M!O4@y^S4)L{+!!|vG+ak;B*trr2Kd4;T|kBJqO?76%rd> zfO&eJe0R%}Zt9DmB%P7VsuTDaC1u}s zcI8D^D?VuO5a*VAp}taA7~hVh+j|?VYwyo9yDBj1>l^4awrAs(9;|v3$li_vrCQ-a z>owLqTkpVgL4~jjcq3XbWKd)}@#kf2?r`?U&ukfbHIET3FN|pP^_4g$`L^2%YSFjv zJ-m8@+6Oskaww2_Tw|(&S zdk@x?97cF{7`4Mym>Qj=r&wZ z)s-LGe@EW|qoDV`D@H7{V4Uh!ysUqP`N_qoi|NLOQ_bjjJ&fpMO1pK62vh9I(H4DZ zkY$A5yTVx(HXRnD4q>|8cBo6=?ty;SaQmMvHUIQxWpF(l4^`sg(h!+tvkjf5?GfeI zUnAUmB2V5|ACLjJZ4uPoodMr9sK5-(wGYX$C3xPh$&F}#@Agpd!fQSRN9In&PI z!sM>>Ea=ZYPh6$ke+dqKPvf-up_0BI!Nu_wE~Q0sNIIG&)VT~dd_B1F!4lzgTa^_< zuR*u@AU3>SfF1q1V()hyp8F65fM@Hdv3JizSa>^IoW&$>&b>` zU^p#`iK;2Q*yPCNy&^@Cvf}?7orgn@@888+DvC-)(G*3}5K(=ub2K!ShD4}Tk|u4W z$Vzs|rtGg($lhD_O7_g&BYQm8@A(HZy6@}0-sgSJ>rj#XK$Kk@!LMy}aV|~nD`iGz z+`M$G*zp@xwawYPZ!Fh#zJ)l$m3T4WASykUp_fC6_-f_JrM)g;gnt~4oibpuQZV0y z88gD&kNZ#d|(0Nf^JvDhDi!8 z(&^0-+(h@>3e2$Z;8N}8JTvjT$obrn5t$>nue2D>DlUwS9l^OXoN4MMb-3mOI7VNO zR)3_&T3hD6`k!>KTpP?)`!s12rA&kAnoOXgUpi=__ipTanD?7o->X+w@Hn}MN1z33$W^5vfdL(Wt!V&(VIJUn+j)OYBz%z8Jvf6wC4x~@z)J_gaobMRtu z0~{CYi%zAsqWxI8Z@j(+39Iw?bAh3t{3m++Jc(UL`!cp-4Cn7Jgj0804!WSigzs)V z{5G3;!~MB*_$j;$31On!ShOs+=HUk;gz|9}{{CvhH=FNbU$q`jNNz-{V>UeT+nZ-6 zp2ihn3M=Dh@T%6~?L`HmUjClH`Wdley3~;e>&V@wE&7cuNAiRlnCRLWzf=Nga?FVJ zzhgM9;jTC&pZhDCMm$u$K%wwWWxK}a=r}i>Z_Ll&aEJ>J{&ocun2TbcSk+*g`^lbK`shmHaJPP9ST4O#8^M?P(CPL9Al7+W&S^Uh43D=k4_e*DF zY_><ADc+yFQB|@kDI({U}tWxBTYI+4$L}4)*VjMak_V?hPG}lDiJH9@&&JlflT> z3&gM-UA8ovfY)2Ia5$)$NZe9_O{bQj`d}=7=BIPv(YENYIg_~i5Zjv#WWk|iu5=yE zf5T)R)OR@JQertdp|!|V^OgQ*Uyjx7%85Jo;ZdKysCxPk2b1GrZQhx8|3q-ebwfq_ z;^QJZZVz-Xdos-VDo$JbFf%8gN78dywBB3T+Kk}{jU9M(rz!iMzJwOd4cWmpneXl> z@nLc^b~ce-jnGAyt=W~nl3B58;Q)@9@4+FrSK;YvZxqc-;YEcOYxMnC{mz+d({12f zV=HcXw8h@z0l3;p@(Iem3iawu1k8DZc2AW#Nn4pu4YH}c_6ar}9Ee)2j`*;w z6Am1EkI6e#I7a5Z+I0S?SoS!Qcjo5ud{6|_mIrgMmt-WgRp$Hdo>VC-;11i6aV~R>VlM=J2c63FTB)$SXN&9S zC97uae4#EqD+zOo6mxF2=besTth%=i`&_D!Dd(PUpXI)%gB`jYF~+9?smJWH;EK!f za{ft&&!Iq0daTaMVOcyjs~O)Ple&5{cm96bk*<Z?9Whby;6yu`4|eC0dGbDW>@uoHJwe{(epr00 zl{k@NM?1+}dHp4aM%rfFX>Q5#2op|grzHMMm5i6(Jw(XoQKG@pfrsknh>=78h@%H` z-1-Olvd!LO3SG%VP_wN=-$ox;)+X}w!Un|$eO*-OcVvcIJ~LX4;Ed196)#qdqQMd) zW`<6{vjZLF8EwO|UxOHJu?69qEVyo!u6QUlq}3}sGWU@Kn$<^g{G|x$hs1NRoTFE) zhkU-TAaMUECXJ5g$n*Ea(qZ8Y3h~E_y&0^TeqDIkFUO%rAMsoIHb<$3Vc*ZLoLq7Z z))5YL-~UpazetvJRKuIqEm`_wwPH(JKeTIF1IuTHH0DrjoE*j{Qg_&xDtR-{PvVJY zIL~$6DR%eI(9tT%Ep+aqpd5_+jAvtyPCtNJ+5xT6K8p5KC> zYt?v8=C8EeL-=h*H{W;{B`SJb!G`4grpzf@Bcyg{@#D;!zTlrC2-a`zybNdp! z^!<#Tmxi&)zfHm>@1VH4NQ;**n(+MCk-RayQbZdMWx(%je)d$SmSlSzS!&DW+>2V< zCd@v!OEk7n;^BV}#iApXqV(4Zj8}{lFBZwWO5l8W9<0Xterk*u*^(OL2BR)+A{I;U z?3r`bLch&CELk{$i*?^1(y=vXIzK?3Q7=9pVa>qL{it3gwY1W7o||k3tDRq=D3>10 zb@p6tDz!Pa4BCY#xMlT45oQ;}bEmJPU%_v&@tZ2+^3UT~;V_}LY%l&D9Kz%))@+E* zV9T5V*mzQUopvmCpA+;GtlIPc`^^15-q>%xK(cU#bN06swCm7`v(a1_jZvj@-2}Xg zR)*FM>3@jPV9dAsn00+Pe{~+tknZ16vFNSXXVr^83c~qr&s)6y?8LE-`Mk4zo=6^1 zjGTL0&`R9JwKcb4H1RPeck*Y|4oj#$59Q1QxUveJy8+;!z*&gXB#)G9;bycHWp$eqi!Yf^I`h7MyuXC)WrtnNn7#&s-W!>#MMrQL-OhIGU2 z+z|Z5Cwwb8gY21x(yQRf1@c>AUzsmiUCR)&OnR7(pA)TY6XlsE?>JpQqgG~Ct|ru= z%jgQxw5kJnuRrgto+DIs1-kZ6W>Ll?q^d5(#n^E6niY$Z|Jrc>^fL-u>%FKmb>PZ3 zx$M}Z8zax>Qs>+@adAL3+M5rck3hYQZ3f+Xzus z5{+>Rj(%vw&kN*yu9L(oE>S$Rush9HjK^>F+h|;&#bq-uiHP5x+^OTvV;$lVy3vR6 zn@7D0BCy#>5qLvW`p{c3CB8LPOh?0ZKo6d29LPD3j$)04 zKc9V{E>1O&j_%>KH5iY6fr~L?!*qOhC6DclOnFM(glF}$@%%^%5B#&_xQc&b#U^#>8>wS zE78>}kF(#UGJTjUR!oxbL(ob57-+~ANlo}g`neZb+pxoyu8cW%1CE`uxxvbddRwJ` z@#Zz@3H$-aGBt`8`Ltgi%c316xD(xk7PgwGsJnpPa#lFvmBxeKo?>liZ+Q>f1Y@cF zy`R#O1B2y`M9zqVn)Ttd=vg9ZrZUHWZBCU>df0zW8#ZMsoc?ecqH`6nuyo|-%LS6{ zlc~7*wFWEFo(c5^2j;kyqo<{+e5OY8#R^xJ2NY3r_;PfUKK)f?hY_f6#)gf<>6jA9 zd3UEFp(vcaqXu&96g}4c)?sn49yGf!4sVy1Vr7B>XRGD9$4d`pgpCWED}tGI$AwRg zlsG?Zh%|{k1SD%N&d44+P5oe2SR-2|bf(S)mh6{4`B zEkm8Zh>86N$=#LY*zM{mk|tV-9l_R^R^FP!>jU{WU3$L1d2n_71{jtFQ@gxQynJTK zRh5Op`te`I;k>nQ@>q%jomV(LUi#i-F5B8HcjO;v6?%eXlK;uRcCe^g=$Bo#tsW<=akY|(TBDCJW9-B2oIVT{6 zmoAu5z<|vj%@8dnHsE?U9jxxzoG-QhNquoNyWjiIeQioUlhSPX=FBRwAj5<)amjpM zdk}w*1@c;-2+sYv3&-y)MRNaWR``c;&J4-YJFdp318l@h_XX%Ae_lbjybHX|Vt=2x zC~18Rd81NjnKBiX7k!WjTOO7;lvg1m*mS)So}d0M9$A~P_U&C<^?8F{FD2{c+f5{2 zSb$BAau)29gu)gBST@jw%U3#6$Mg!e2esr6nWbBjyBPByW+36_dgw2==bApB(LcXE zr>^zke5u<#JF*!U4BGP52Z70#*5FlpD+(P|s!6~1)5Uo#`aKs5XB*&H??4Wg8hzI6 zRNl-=$X)6>xxv)@=EtnlUs0&H18zGL*_fA2&F3i$VjI4_rr@oL z-DrHN;7*O!DB01RJyTzbh*m9mPjVmfZXAN|revywS;`!b6P=qsmD)`d$E$Z|uFOK8 zc5lQ64`b=&v%;*%)5v*ljRezuqWe)>*2+APTB#bf_4kVG7WTY5&p0PPfE>m_cw3Oebkf7KflAyp^b`~Yv0BG z+z#TJ*;ou4x(J6?#IVPHOZJ+36wg!Q`LU(+ylj7kIc9<%mv{;L>^Z1y*o3xM@?dXw zRk3281KI@JQv2CxzF*vvdUKT7cU(Qf_f5q858Z|DoG^^`-2s<9#x!WE;N(lUu<^4M zxBqO*(xW=uG>rJ#F`DaItU#@*WUM)+a=(@IOJDM2il3>}Iw~t|0k=%%*2V zGqrOjTKQ~%t=v}>hF%ex6Weh@j@)~@cgM;#y>T$epC>c?8D^)8?e794gCmYPMc1(C zZ4IhA4CDD;kKi$25l$z$VeQ#l;^d`g(9rBm({8Qs7GybA(;7d3!38eP4B>wf=gk2`N44V2DcmA4jlzt~FUq3Cq z2qDy4vt3+U;=?y}&Rpb?$Z1PWToX{@pz#4ZN*%nPd%pD*^J_wPGM>ZQ!D8^_?E zOM77V#HEtH?C z$`qwb(>N-qkZYvJI<9{x9Pf0Z_uGy*GOZEEuNYGG(m|{_Van!lQG@tyV=ap9CPZFM(bk7qvf=bO;c z;-Vsp2Vpqn3A8O*W8%)II2Im*r$aj9#Jy)w_M45tbL37sdOYHttKrhoihj3#VY^Ex zbu*OldYul+V%2yvWf%=|HEDP%U*=9WW0L;?u|#RT*q-|dEhQJLm(1TPwuB13iEhbjHJ41l&HomPfS!en8<3AkD|setSpe;+FWoCW z$KmI-Y#u+5$5CU;a3D7b>lZ={>~6=N;}@X(!(S|ve}-6HEgI&Ipvm;F*!s8$x4&41 z^5XeCpm!eO*!;Dv6SOcb*v8^*2+Cn8w=`|C2?Tv zZqdc`CE}E)VabPdj-IK+eZ5^d=CCux*Mr!wc`DkxbA(5(3L8>KaP8`Jj<}w{Rs9X& z>E53^b6()o{SU|)*o8l(4ybxsfr$qnA!Vz4BK=13aLhi%9oG~_i8Q84Pt2nwof-7G z4YyYsBYLeNl$ZTPMP3YV&oO7}N)@hdaAChz#rS*cH(J-sz!S;F3wd`Ji_WIvLyp`< zrdadfc_lPqc02vn_x8k9Frc04e7F zbewY(Hzm8Xr<*=4b(MJ5b1RB3L}KPZC0^>hO|&}{z=}~GOm@|w>EDTHaUv6&*O;?z z#SL+|M-_Z}IKlY+72IAs5B@qTobQmqz2myzwWA6={PdW)_LOj0e-T$wYEU~@vb0TZ z;=_qTDvrd#pkF*Puh88d+{yD~cly}qB>g@GuFi#Jf4aHPV zzC9qlEWPr1+arvcdwucYsTrGP+)*4clfJKLLp&aL3fE5F#Y?+XjvciHcPp)VudD=- z7e>17bWP*K7u(TliY1h5%27(&@g2e9*v82pI@56&f4j0;hQMA9Wqz(cr}8H^q|AHNr7U=BDGL z`Lp{_{tXT1%nQMCWJyGE^8)U9J`2LTDI0x~ICQ@<4^DNIJDSxfi25zH!8`D4l0|72 zljr;>F1qT=NoQ7IbsiUPUo>sUY8mhh31{xNrP#e+mzDi%5vlO!y%j@P zxKoGbsnWAFbe^dHVX1I>`V_xilzFFM12PtBadu5HX5ARY3s!@$_o1=OSUf=gp6R?i zq$!H-OYVqS4-l>gL!gjA`cKz$L@V z@%o&tV#C?3sEch&mo@6#>%2z91cq=%sW+9BooLpQEb3bfy+eYxx5n^tfgU&Hg)m6f z4snwQvEqz5hfG?Feb%b93JGGxPi>x4`GQ%J8F@;h1jE{EajD%hMb35$)<_=l5~~n) z9oPb2^R=mIDOsm76EI@?6~zEsnKOCj!Z+%Yqtf94Ds=RD5Ulk%Y&g? zJh)?{ybmM`$!gSuzOgIATXkXU`H5V=!JOynqIqb=bFkKgM-{e`x0l4X7NJa9y8xbD zy=m6hlxqgez`niuEFF`{iV6FnJyUvZc4xso0XTI0pE&eVdW$`lW0vU~Q7O6IGtOB^BwacL%tT3pHiy{ve9)S2b{TQK zsm%AZkUQ&=MX0MeD<-TYf9w)6D?c9QIxSf6s0(`T_2;>b$MMv~h8-mXbj&X`$r3Q) zn~R-MFvo|hj|!am@?P|qWyq^KTVd3*JBp-c)_3YMc}E>3xmv^6P_N3J)spvRT8cT+ z8~D1gSa>#d!Pz)pmXFqF?CK0oDUmz16v=!$-kihJza#u_7pUL#Wa=_KcA7Svy`-0@ z!&xVyPZRoj@OT!`S00ad~7xxv!wsIcexYCCFgRgzJcPvv_(*_ zwc*xUGcj>V4g-ct&eet9eEl$h7D}g4SGi5R+%Mmo51A~eUWv3~>5*B{-0hZDm~fSO zB45wX@F-gklfRNZ8vY!=!sg-ajS~oSuSf4&VRC*2jSDy8R|F&vevRV8Q&XP5D*d6m zj9Hl`^8;u8h>FE+aHmI0+RB`2sHrBSH6))TaR_H0-;K_HZQwL1mA~^kvLY;=H%Cg{ z`ji!?T<*#*TT>Ym@5YF0XHiy^%*M2K-1|8cEkDnOcfQO&mPrcX&R)>16=LmiU4}iD zyQ}-o^fuS#)~)B!sz!(L>Fx3Qa3=l>Z_b>kP>wEdM60^n7$ffv8POw{JvEo7KPNCU za*Jg8H;BcW zjh$oor7%qLo(IwIehf9Fo_KG*+!KjNuIsQB;R}9Z_5qpO?cP(dtj#4XIB*pmf4ow7 z^|%Amd!7tf@7pY%mQ|+Zb z!w*RZ`vW(&9Dfz_Po~K|Ks<}(EYdNcH@gnoh6{(1c&pEGR4gdN*H63f>$!p{lF?K4 z;=HSowKbBy_-?vy*vl+&d?b!KR8Il)SG3R+S)aR^3yg?Lp zFN>0SyHkp_7D}=|VGzd3yGHf(sfwENqqt-@j^9r?@w>M%idv7MtqA9sRqt^&{XAZW zdm?J69W8b>6@ApC|J6MQquqxxGWRAde2#n!N`FX7vn`(hi~XSN(ug7Pb+dKtI;KGBRa1Cg5BdH z;n6Ky?mEKw*y|L`7GA)2gXMS;>c9o}OJI0rDwNwLqV!5TTGZde>w;ZSk~_hB(L3=f z*o&GM;?O%Z2I`%|IXz^s?Dj}v$@-pbXTC)Q-ICrV^R>Ry0a1U6+aZs@;546YI-2; zUNsgp1hcu9GnBp>(|_G%amwC{M_i)e5FdyUUrn*W&ISL@NS4})Ul^5Sz}2dg&`L7< zJl-6}M9DSWr=&~gr|mFiup?c^Z-ZUl9hsj?=KU_F9I;4&jDc(Ajn$QfiLRVEwjH_W-6xDpm+Z{H-kkKjfa{7YMNGLm>aFg>uK#h-U^AGi zgY6j^@C(WF%ozOh36A$KM#4c`{&SjxUeWilHo=!g+7(zmW&oack<7YhDbTd^!7sUM zI~k_Ok^6^p-Qy9|H!9+6sndJE9z+Mr1$g+$kVi(z9wXll^xuC7!b2hNDr@0-MVVbE zc+$@_ot;BIikAJxaoxy4>^)I~-NUCVCU-n6ybG2=bACAn7mriqym8{vv$B_@(|!DY z)`eeuKI6{$&7x?~GHkc3N8tuD>UK3}|NMTml=E-+SYJNrX)H6grDEnuf7G{nD*Ph7 z`9|BGmqSAEUR$!TqPo%H&KUGQT_(TYKJ3|NPb863vxN$s| zf8zDnZ<`OV1?|MY1!am|3tJ+kK7zGRZRzTD9cy1`QthN8)?CS9%9Qr}IqsPVjyZ-U z_a%oXY^EZ9Z*TFsuRAx~h@k4l9|#(3#+E~xQESIn7@p{X8`Dzh9bwAiyBdsN)i ze49Un6P2%`b;@L%%I?723I}eK{LL+v|9h^+qSIfwANaHd`@W6glK1XJ^fo*m(UTv0 zPR6cv>dgFl6a6phh{%?eir=!IY0SZcSUIYQrY_e|zjqXm&+W|}lMQ&$(GdS+zUN^N zJ)D`wWfEEmihpW9dUDzPL3W2jjdMUiJVtH3Q*m zIv&ZAh5psBQus=?LFKAS_Z}lc`7Sa9$;*Eu^~VHpqs9?2YMI>pUU2-j!^legg4a@; zytJtVdexv+RJGXgv>R@^KgXVV9cY&JL!t-9QD?VgO@1!KziMZ`T-Ac=2R%7)unLA0 z7>dwGzWkRzl*`>Zv-`L*m~Xv@pfxcZP&P;W?w2J!71BdGu0Z;H(($!bTiLnf%*-Jw za5c=qmlqd=wY*C_v7cqRg(Kid}sEiF#LA~8aK$y*kopRY%0Pvf8yS4 zL%vedXOjGP>MkFGszJwb{)P?@N?q^K6IZIOQc$5`CgS~CA$5B+8}={5kR#2QkTRG~ znyr!kVJ-}R8?dgO8k@*&9`%|-;^VD*IMvHS&e(0~mHY)e|8|z&;uk2*D8notXBJ)$ z;k(%r;I|@;OKbX5b5C1b%Cx0w#XU5CF&9@CNx#*_FZeoh8TJ!yeJiZ zEDy#Y&1~-4xmiR@4d2aq8svEmaTF_p&!Fe-uZq@N zi?M8OHd}U+T5nB%b&UYU= zjxl1}G;OwHI)`pjp~cfq%r=&D)z{&ohxDNA>7h>7%t%_@u;SLW3C!=^mV-Y1Z^mqo z?l;wt{ZRHY&5h!;ZB8O~T@eG@sne|W3S2RgY{z07TE;q~Re2AZTz1ChOS6l^1S(5e8k4p`X4dPEG2M!Rp~6c0di*7+%7WJrVS;u%lAlWbu8} zOYvrt4Z82~V3}mbz5Umkr)!*P>-RscVF^~PaAtB#>4AAUmUX%r9Dm|2&TQ?+TjLwy z8Zd@GbYw@^>)Gf#d|4_ZC`;N6BIc6{XrTMJ7*(#yh3^L) zlDuRG99~nc7$Y-CZ$7Ms$>Yx$Y-Gt9U-qNf_$pLg=*!0jNAXPR2$?|vJi%e^wz<00 z@XMe<$w?S}ix%eH_bUu~pApVqy3kA8nIVR19Piv6ODl$O%^r5IUCtX&j<6w#n^DTQ|Y;Qe$DYs{12gwy((3G9m ze}`^WGz`||ae97|+~1ACoF}P5Ye5zE+f~CNWIaM9+w}2sD@-_b74dRkT=MrRLgu&O zfd9z1VHs#NZ$nYnOR{6vAn0^Ix$82*u{8;}Vm1M}wOMqLx`%1rNM1eiR`f|9frZvB zxn_16vmco8^adl|KX(ED6^h(CR*%S)Ca#GAHkpYlksl6CTC_7fmKsP z7sJs^bhY8lpZBrl&r?k9{tjj;UfdQIN_`(WOFRXmJ==1!cMxt5yedx0d(;GLEuP(V zU)@WyF^5~ATlr?OZE&_Yawrddg9QDqc?h=qEPhlQak5NAK6L&gyk#!r z=V4FYI#a;dAbH2m3}NbbD_VO`g=-&Ox=Rmq-Pz@^_K4%W1;K2SP>RnFeEIfg3g0%< z;-`8u_VsSTajUlD^n@e0+3zA&obEy$pKIduF;h+mlkC#9(Hs+dL_`Fqu(b0}QSh-3 z+g>c7QEq|s{*;IpCGB9+AlYGa1&5w!PJb~|@pQj4%`2XxlX)BTm_3+}_UR&aP9;XJ zi=+PAKuj>`u9&c0j|S3Ld&K7`uC$nr2R-bC;pi^>p>YG9Z^&m%OTHiNS0LEKpEfC# zVrF;-??$#{*sbo!U>G9T|5H<-qkKf+E@HZ(0OO5R$uT1teRK9|4hY?hrTp$iV zaN@zAIheP>mhJ2R6G?S)_ggxO^P0cIpnlRDH)W&(_xP*6 zPH0b_hf~9gMU1gEZRPK$p~QttZoiN@xNzLgvtrxddOTR`#Ja*>oVqQYJsje3Ap9U2 z_V<*$y*;=&d$;Qz$wu^l(tuL$)(kjQjY&Uc-|5Q&zW&dVBS+mqE68(GJq6nPo}qPg z6f^yY@%F5RFk0Q2hf4S2M0O#+CoICWhD-wGFn!@hHJPKcZ+l0)nCim|{ct0d6A&}M7WdaBFj}F@#uHUI-6c`xAS@Z#d=zsgMf0!LLo8h-dvLzF zP=7AqFr+yT?F;70Tg7;xy#soW`or!-B6{4-Wq{R5F-7l``63;6Rpq0$yoK0LUIa@vy z(nFQAU>Gm7kPPNCefT1w17K1Dr|Pau?(E8yZ*O4ANge*XatHq7Owcz(U3|+vg|#wY zmZB-2HzyamrJcpHJDbJ&xhq`1)lWxkpN)ulatVj>4r8hOE~Wm}fKO~X-^)yD!12YH zXds#C$`vA^@tOE2`^NT8$>D|<1GuYr0JFBZVMTtT?A!Z9 zRT#PHI_BxFL4K(nbroZINU0Ck1V{79$7USAr7g1u%*3@r8!`DnTl~H1z;oqZv?$qy z&DW;lU>{G}v#W;mcP;U}ZyUM|?96~6Zfx!9OQ*$`aqWZ;f;%~Kg#3Apy$q<-B!PX* zr8m(HY^pI^H2vw#``vwU``9}1!M-KU{Dbg*s+R15E<)Ra?btVK5I?4xpgO!C2TiQO zuU_{2^PpV#8vjJ>`Fiw>9mBg_Wmn1f1L$fSt@wNHiu<*NeH450r%Mg99>0=a;rkX# ze$BUojm~IfCV?})p8YdM)p?_XfNN>W!TQ6|J-kh`R zNX0d4z8evbJGYQW{{MSVcH%LQBFnEMHI~b~X!bo=q(1;Hty{ zA6s)-2VMLK_2CPZ4AG{43od%9#;;rDT-+$TGI!{+=0$%V&E6$842`7Qj@gJYie|80 zrR;0-!k5hLqR9d|tA}`tgQbna^Y>R2>z85F9m;%O3Y+gXW{c@p@N3NiJkHOghRmF1 zu8!fkYrT-$Z2)im>_}r*D-LgdPMEy<53AemL1f$E2)%U;b8f4nX5V?qiS0;#6GPE^ z-eSDm(1B}gFTt&{7f)<4vrmK^Ar=E#6G7qw1f-NF+n=AG2hiK-&;*atq?X_*FRkXAldorOIAeB^u|L z^XXmL!)7y1lwBDr=bVGM|G*8g@*8KE{t@R5-YRC6$Q)@_2Nv{LB}zK2!!pA)P@d+^ zE#u>5*NZNCo*c~H`%6S^ydm!oc#fX;;!y7^@baV<0td>D*3~YE+}xhF8z;c{r_`hZ zBI)@rS9VskrDpfme6~w|3$87PUXi8jL-*xOvphOHsz;TI%+Q_i#k$-7U^()=*#Gh^ zP9_ZIi;5_A{k0YU^%x`8%-2Sjw)rwIK8}07sWPC-LzLbL#k;LxJQ=7YTDxno=$0lL z=dQ*2mrF$JJ8hwmjEtVEZFuU;7U7q9N=%Sv%l#N**%#@~=6B06(eNT-%iTouXnQ^{ zn1eNq9&FY`k3$}WaPsrk$m;Bm8GB_rv8Y_n;6nH5}ONY$Y0XrXec#Gb+Z~ zi7}B`6^jkmm;kk+#STVgRzctDplY?t8qM`-U3bUc~L=__gB*XGp4zE5Q zjF}!Xk3TR^_RPJ-pqn#rZSx0sBsNp5k-q6Dhm8nZb01B;(>dH?A}m*U)38EvwYQzZ zxZmd7)o}&fGQrz);8`(@|B?se^Nht}wS&wn?VW;Uj-yerup6gnNT%MysTeZ4J=dt% zvr6(VKYPZ>{*9*0*^lepHeEzO_h;J!<>xO=f2V|w;Pz{?SCXPsAx zxXUu59()O&w`T~uvjcJAwK`v|9Zu&Bg^XUP&o?sfGBZ7uZqmawc1{=e(9sj;Uwy@B zFD)((OvJm~cC-omBp&K~5f2X@!)&)Wbg*cN0LhRZyIpGGa&EEOEPYgwQZsyW4D;qm z-&1Hd4{MnTuQOU)U#?7(4KgDm`GxAC&eX1cj;2$pM3XVTOf*`Hn(UTbXXnI~y3a*d z$1}oal#!{nFy#i3?w)1(NK zPpY#l){i&Be6U?l{{9D_lezJBTpIj9Ox&;-CnspbD{?bVbp0l5_ef7_pa(avS|NMc zilA#@#BLWx^Xhu(yVeiqgPwDR|Mo`M)>~6)aWfoTB4_>URv2cHLxY)er*cVVhmW6A zsI-gWq}*>9s56??p&Kw(XPxLUrZdjuO+uc%F{Ag~5+%C3F+lRCHKq;WlXYf7e7l0v zo*^`QWy_d+$!J=>LquJVV83-usb%#KhyM+wNm+YEuOG?$6*x_i^1N7R+Dp!Ivg}mK zmLAXBooOYk(U{}JMRn=?Z@@A1;&hB&uB)iYiD2@hS!k&0hA#t+SbKIDl{bDt@UKG{ z{V|=ZWj?_5r}Q#Wdg4Dw)`p&BtNuHHnC2$z*((Nd@f|p)w-2umnt^Ro3S~~i6Qbz= zyua^+{Oa~7Gm)8tPL9}WyBpOdsT?%Cg>c!?8g);7X<=E77b}byD$mGk`bQPYlDm4e zxHs>%&BpQw`Av`Z5#J^mi1gKJnBt_tspoQJ2b;|0j^BNnm)!!MgR zw`H+M$qmJg?FGy%(&yl^DR{WohL6nxImLXl%*ExuRtS%@LCLZre9P+3J-wdJFrw_;amU;da@hs}$-(5X%d$BMV&{&Gi{#~nfc zOG^CY{~jsx1xuA?i*k1h9?^d5ZWy9LmjP|4=d8y*>U(f@iVC|qmx#xA%y{kWARcL= zfQFtf&F0&3`iDWB{qvTXrrMU>>pm;KEB!D^ z9+yrNOtBqxq*Oi% zmi>UzyL=kq|VmWM|*fHPhmI#cVg-eI!UT(%M@$QKW|2`+Q^X)k? zLkp)rs`9C~JyV_)aZ=wRu9bZ(g-^ode5lE8o!?{Ch$V=LYmZFLQCxCbMgE;4ap&Dz z)ZZS=HO;=FX4`WpYv^#upG~M)S|t`uPUPBQ(-mot+E6*=62gy|&}RP%F=OXlOnMw4 zITEAk=XY2*$bK~;a{wC0{E@Zc1nTRHq+c!-TeXwv@~H{Gsf4gaeW2)a`4Fb882x_~ zoo77O?H`8CtU{DBN>)@N3dMb$XCh=pltNS#ijdL}+B=nohBURbwKbH6wubi8UQ!y` zRR8P$_WAVU`P}aN_q(p|_dJgS=50dgqqYuvo=8^nm52DVEP!jwy?8o(GB?fjL2=k; zoVnKs73sqnRX7fQeO_Ux>On<#(hx4M>jTplG5q&d4~ZrHxld-vEOLYB`EM9pr%Ytx z)=bW*wdda4YiIf7`w^5>nr^@ z8m=lv)=fXgCQRnNc5|RQ(~8sT`*N3-7Ly(fWT{F&{z>=8gW;C+u2ba<`D}Dwk;8|x znjk%8EJiKuMuX2PRLIEdYA$zqw53a>(t(!2?Rz3?jEr(V4;MSN|NcHri_SKdw9km;^RW8)6 z@5JA$`iQyf?ZtsBlVO&$MGpI)Bff{FNRT;;-tVDBh?38f^o`vZsWeYC8*h)?NV(Tv zv>6pA9oX_u5QpdKF){gvXeHTB3tIF>E6L03yi6bEVH@E%TEPWIapL~#kxYInxw&(9 zV9qkhV3xd_E_&{qIj|jX>5pUOy*>;u^`ypWH8^jG=W=J61*+N)zmvB`Mq-`Ny_F2@ z*Li3dHHLqS8ZoN>0!&hTgU!}Pao*FO)x*ohkYDnhv*icg&e`j}a&S-DPIwE=B`dIB z?hal=6l0{@V|Zyl5(Dn6hmYPan45Xh%t_8lG<9gLTnF1NM^M+o5?hZx#;ML}JU;Ls zf*wj9Xh{)%?3{yvD_q(Bq7pw9Z$%(Fz;4nN@n_FL)K@Gu+2ruW7NsumUGL6v#l~$-KfF#(y=fru$4USAey;G z(51$TN0;?y_6|S%jM{<dd-W3;zWn94mQkGm<*cR>Il*Z7(PqoMdLs z*oQCWeMvb+GM3~OYVBEjc2QCw*RWRfov}mU`+aBzyYSTfnZoRt-2FDjQ0e<<6#8gW z`$a33Eq1}1Fm*0dJ%m#~mgB=7FJ2!I#=r6oqn&dQejV3CfAT3vBM$NV3gGT60Xt{^TKF0 zp7tJ1rROekuQ6K@@#`l}tK`6TpexgtMZnxhLv(M@;*`p9T#?_Llm6=RbYYHWJBFM}<) zfBHFGn&A!2*oor8rqxh&nap{?|8PO>S$`T9Bj9pNjy<3*>L*xm+^wEmm+}IiR-A#u zQX4ob6=74b8`WpXS>eLHXghy22e1E#spm3z=wBvPCr%W3cRKUSgf*BrWiI|c4-m~y zN>0?AVbs$E4bM3;U*@c}lfw8wp1-|qW{LZgA7a7cuSlBs5*{WgEWH07>yw&7V_P(J zZhMOiYso_OnT$ij)DbB6%Gs0Vp>gd`ys}EAQc$*-()=}o1`eZzm7C;222jUlnaqEV zlINKi{9SPwTlRF8%nzB7dRv26>*X$Fk||r{`|XOF!bL8Ggm@=dDTI`ZL=cI3Ax!2Q;_h+0FCYf36wx>>UbHfae7{?xb)@KMe z^-$&R>IvMpc_`KWtizLO`KUKIgz2(>;%{#z z9ZbCx+U;}EIy`|(YqC8O9}nS+R<=~mT8*O_1Noq$5i>7FG4p$GR#iy<&L?g5+It<5 zMqRn*cPSd$pTd*-UgAoM9jB>ZLMQ26GulvwK58l`T|NOz#b+$Mcu*89sDw)S2^?x7 z*#;-S$m?kgbJFMFRmK>G{W*Z!@w&WwH=dtIBw)mkbdGKBEAP8j&@A|YZ69*P@3%Xl zG^4fH;%tbPQQ>@5Hk^AFcB139xe5oi7E}Mpj;8z_&Mh9uJ0CM?n$w;^S^cHsR}w!Y zyGQ(8EcRB)-1lA`QLGb$msx7e=x>IkNo(*l&y(ke%K7x`GHmRV!L#}8XkI*y2h7Hz zWlfaO*d{YWmexp^-9$RjJ}JHiw&il!J!tyG5M!nUvxSd0pC&EFd9@5W1rO!Vlx`gQ z%wIY+b9tsBh~_O{D~#TL5mz6{eMa9pI0nB!N`?{d(*DMA|!L;lJAhx+Z37r*BxJd&Gz)QDp!E9%TflOk;Cox$pa zC{}LmLr8q)(f%p%qZqPjpTF7i{ilDRx-m_EIuHX*N?Ol zz0@D0a=}!Ld>?=_vC?NbH4mB93VP0*k3OA7^61d@=y2nJV%8_gy?y)_GhYnngm?{} z*`bN>v&}h6`Un=tF6HK&Fqz}86&g|I{M{xKL*@<^uB&A3N#_qD+Uav=`e$LjPm_Ny z&BTARe0irzjibIAQe{Ch?C*8pYok|)H(RObC^NpTo{r?jMlX!HEshAe4WTSCwj`fetVXU)Mct&Jd%fQL_gIY+^Q~f zl73D&G$qR8)AmlRyRXWRYp%oM$ysb%`dsM0Q59C@A^d%5DeCT~uuS$vwWqY^#wq6%!+0$wxG}0rZ}7s!DH_&_*?M@q3VNh`e76P*VBvR zOe)ZSWe|scZa~|fE*z%59P8B|p^bYZPOY+}=VoONP&8qYRWsVxm~d;b22E3+i%SpJ zBB_TP11Il<-E(WE^*M#p8M_ddAZJ5L`Oxp^%W%1?$=)1C-;MShZYaHqy}TX_Fc`p#OJdmLxC-_BKjMtuG~p*_deOQ~@G0bm_&(c!+vFZ=@k9mt3~P^{ z(eivcU-HAsx^UWda~{s0jSuk~5&zJS)@iAj)@d9I9zcZM8_#SNSLqAt$InXzf~`|v zyQ>*(Z%J;raxw1MKShhRp)#u;#=bW7NU2n2L&i#+$xdY6_(Dvr@S)zcE;QN`h*7zH zSyP;bKRF8M{#4LU@*AqO>~Xd95&Ey1ik8MX;>~Y+HcAiEJ-sMJ&8wf-X0up?7zB~m z8NdIUz%w|EhM3c0UUV5jou!(JA+Ykh!(aGy5_7oey2G7=OlR@Raif zIF-wDT+>u;ZJLkhkN3pj9kIAl+d@1sNkp5%WmvUIO_8|Um?joSa89x&tgV%~DEcop zU7tkd`+r5y>mhu0WV-n4FL~$g3OH|-cjak^P<3lCzjvEN^-}ryIUd44r=EnHi`jfa>X35)^yf_V0vF&{nr!tEc1!*OjUl}Ir0GzbJPR=ihE$()PO%|+E;<=|isD~-+{JYM*kFK* z?c#Yf<*+c@JA}bg2U6ovJRELCu+Q%TM4q(c*MsTYw9%HIIy>Q1{UOX#3WZ+pT~G?y zEmFcZqi$XXvF?eOW&a&pNBZJGaf}Gwh2p8j_|z@o=`0a2!wvJM zWMfP zD`j!Oi64^3asT|M;=gTwpnA_8lXUvvkW+t-_AqDCDpTRMp(&?#`-2h66S!iNFV_^c zW1Y%s51%flgsOD+h1Z|L9oacpx^NONWTe z(SP@)-MGp8+Dp2()l7JGk1yxROz)dk*>o$=XGmZu46mrMNcXPjv8Ymv6+7krH(dNU zBWKAfKe07n1gl-!Gv(a~1lmQ)3`IL6y~)R$IhMRTxDSW_JB2OVMo@jK2h01LvohU@ z=AE-8Yw5aJRMC`%8*^FV=c1S?vrzZaQ<)fVPYt*3lC7jp%k_qMs#A`nCwDR6T`jbC zeG+%RnKIq!E`}${EK9R9=w+RQpnsmU=`k+ys zgU9L%gyzaMC|e@gzuV{Hp3G)i2TSHjcQqc>2!+K?d1ts5$MBM_j9xd4K6#SizHhk9 zkfpI=`)i~=w&Apx6WF@miHeqcF>-=3YGQxm+fysHo>z!7lKmWgEfsH1%z%T|5Z)R$ z0gIkgiJ`7OoVTJ671ttJXX(ST&gb#7Y8~t>ZCQQlq>5^*0D=5wJL-;Isw#C}a+c$@jx+6`t_oPX$sW{%T6LLO|;=$h`lC_<|CHgy{-9L`1O|RkWJ`*Ob z*FoaTFYvlE0BUtI&o;w_whs5ONwEoQPUrG+u$+Zl%!X07Sf0ImAAh>d#X^C69Zpu5Ir8J;)t%hjUB&t|T@2|3}=ymoTtjEW4%%pF)BEMU|j_UE|=?8dV zIaPc}oC?=71K}(gl!`kW(fjjtVLNXO?n5;S`t8BWA5F1BeG&3is-*XQEKj$a zCyF{-@{v;q)aJ`~=kq`+|8fx5EfUx}#-DPm!LAkm;mOsnqTH(=V>WiBTT&PnE5bSA zL05h=Qt)`e2=;BWOfs9pcv7C%_qL?PsQ=7}o+|y|u_g<>><1#;B!ER@ z4&z#o6+St4mUU?tKGreeX?dPbb2y6hmNM6J`vBf{tHY;xvU?l56|L{~V8_ri_+_>j z&m@CN&S zjxp|b8k$H;iR2ZVY+jE!tH|vU&y$URaQH?$#lQTUiiS?I3$MEbY5KMBQIU+npaR9s zQAQkNJf62RGvH()vmY4~(WO`wJUof#(>ma0``LJ1DZBj-pCifgi(-A(B4qSYaMssS ze6e|rJ?$cxqVfq|eLG0@?_FW$nI!jwFEQ%ADUGi-q0LX(Sx>WJ!JuDI)&BwIRp$|P z-5c%!0h}rKOFg8o`O_a4w%Ry`GbTBRb3Pj|?$ciMu0Me*J`04~tZW3{@sXaSH?ofn z^zeF$uiHY{CF(Y83wtwM+ll9k+^m%8hBiswjuz1aXQ2Q^MEj&HB`qXqRZaI!G z!)7WD?~!wzQ;V>)-BHXc@e*pAhfybf95WYda%_*WbRXdvN-u=_aUW^HoE;q>&l4}Jf9a5rmT2uBi2@nkje5n;PhQBw`6L9%1xwALqy5qj$_7O9Ve7OyNV|L@! zxC%^KxCvDjUFkJCoOX#lxwU!#f9_I4(9*tejtpkVxIUt?Zwxo2%k$bXcdT30AirCk zsq7cVaGx3I5-^;zuiNm{Ivchd-G*b2n~CzT3EcfGl@T99#QP9;Vc?n}ly2O>3?Df& zbLa}sz;m$i|0TK(_MpkFt~l8sJKw|Y`C+XpCtuOyv8$3hlj)1!6E0!owLWy7+mv%9 z&-9>b6xS3cbMc1+{)y7yq@{X1GSE%@ZLiDFm+@4+ybG@`y79Y`C4YO5 z;ptiF<343hr*-`m?dR@C8-B$fuVUd5XU18}vgt8@l*p33@%Ard{>|Np$4d;TDYLz& z@44~d@nq_2KSYyDnvBzT!91-exZkxaOZx~85ZZL@eOx-oFGv^TR(QSHkD)qSkY=UM z>;6B*os$84kg7n-F7`NoRAwLF6d-h96l;%4UrkUG>FN`#ZU0a>B&(v(U;@J)8u0z7 zT;7)RS+n&k5pz^mBh0$6?eQCm zY~!{v<2;$Gn?$lx^H;c)+MGYk4WJ#Y!+~KfA@2 zUE$nvxn!~TW5cvuuHLpzF}GT<(!NeM4hHka`cp`3w4>F@Y(8;)f+G(epsRGD9q5^Y z6!(#gmVQ20n>8ZQ#uwkaAHZs(kx0^*Ec+NeF@9bj?i;MaVPj-xy}Or)_}w6xqk+N0s43oa=$I90MsT?27X`UW0F>$1hHBxZy;3*F0J=&(|QonF30Ma>!P*PSNP7rIF& zf)Q?6*y7R0NNR73h5j-tC8&7=OprL+szRqAk1ohy?sWl*o)R5I_a zXtykl(@*!J!>?krJJg#luZ5z&wma7!{C}?WG;}YXMs9n_M;z3SE4{8`&ddU=kMD@Y zx3a@9&YvyuO^h|~jr@|eI4tKbwUR{|BfqP+{bUc!b{)>}w&*yj0;BeKVpOC8i>78X zwL>&~y0@Wzr@qj6?#21rtQcM`KdYxbq3*U5-JZvAM|p3)S=~jHUvJBQzV1vrqDBKV z$)b657H!OfIXJpn(KER>{qqOEseBXIIufiW2jFCSYu=E%hb@aBk@eq|Lu8 zmiteGZ`UQ_#Fj~%AlbCm(zmHOZWz}|)`o@Q@FMGinzI2tO(wWK6CAn@qQJWSslWWcm;Kj>{cw% zSEq{67u>zK3q>E}87)1MNoOLNDLcM)78k@%4P~a!8N)97$MN$F0}jX!pvhk)wzXOc zwZmFe894!s&pu+(`ce4XxnAZv3Q*gAvB%_9s`6Yj9o}v-KeXpCuJqI8wCN$#`Ip6C zDH$B1`y9s>=89WudNK9d4*d1;q4q~Z>g*^+z5jT^LSSsUWdG!zLGTb;He238azzLnj_xxk)UF z9?g^IyGy6MCw~pr<>jl1h}7-R0fTmkQxjXzs(d;2N@vpqT#)r}5br5=t|(kH3m z#Hs7MG1Fx{v;6ntRO~r?sZHn5mmQ%aGvJ$Vy%&)h!{MDX6H4Jjc(daX4x z*Hj~;<9qSr(tfNmY{n5jIlT1i780BHN0giebdPXnh<`P* zB)_xA+EKh)n#;q{#@sY#D!xV+!Zy-`Yr<5#$8o&+Rfn@LjOUbB=5R6} zh(k}Sv31NK-rh4CHXzh8o_&nP{~FO!W>F{m#89Y<7 zxcpQ(HXAit7r{n*jR;>5i_o3laJa84zH9q2 zdaWkUevam4d3P9QP%p-)EcIx=Sf2AbYoj);2lwyShW7UN81ZB&cGO7bUN;k#f6S)x z(GY5?kD+#lUM!#4i92$0d1#`C++plSc8m{?2Fmx0r8j@wJ0@%fUPAdxU)HQn#FRho ztgh^j%kBZxF8`?Lu{B-vUa!yAjm`Kba18gC2QegDkLO!U=JMTWG#nm;?bXjHqmkqTr0alTWu+ojmXpLfL;G-(YCd8B@W(! zdh0WS3TNT7@jmpO;h``{jDv;l2a$iFCu@G4g>85>N?Is$W6*PPaat0dEo#d4t9@Bq z=&V?>*hy^cGefccLIgXt20q<%W@@*aV%>~VF{{%WtpBw}_&#!w@9%?nkoW^PKX>Kz zJ$upm@>vX!EU)2bL&fc05!BJWCj4_dGx+Hr?7icS^Sk?UWL1P%|75vXIa%_3GY8PM zrx`kB_vfKrO z9XV-bAPnQ%26NF<#m!dCRq@A`fTWL$~IA7#QM_^qc7%SV|HtrCF#@D=N9aBZ-_3_v+&_mos@xa(I(xF?k8m9UW;O3k_b0*NI<`c@w z*C^`x$t>;a72@Mm>A+oOz^u)|4AuAK)6_sd%*v$wUp4Nji)YmRfn0UMmO1m(#JPkY ziVD}?X!R-&aW2~svGEO7x-UcG^24ZYZOxBsBV-@_DfGPKdAmZoRG!9iv!$Gg{v6I` z>UV)bCiwfZ7hBmkz{n(tvCq1(Fw>mx@=NhNIFrLG)p%cWRCe?m#a8Khcsap~J?^~{ zOXXw9Ff)|(pB|x$3plb&=Eu59ALa6&Xc5z%?NU#onfHBRR;3H?VXI;PauAMw(qiqn zdJLL1k;%yqWKPPIKh$iP>bnHbzMg{Tb9rvxroj6jmTb2D8~$546jxq`qw@7ytXP-G z9W_eWS0BP&Fy`tG?=U_whzlm9adYVoK>Wss!-g;{9L=+%cH!1XfAn}ZK^*$iSF&54 zW0UzWL|a5~(3k!+o27*7PO0p#w$vkPiZk^uv=!s+KBD|fIwz+|w$sDcI5XfX?#6b) zNckKJ%Rh{y`=hwY&zy!o1pCeWEIzjmXVZn*w31o;@YZ(F(QM1%YwklFk*xlOKM}LG z6EE6W(e~jlp)dblXFRnT(5yWZ6R(e80~N{*Eo#?4sbVgbr*b zccS}cm!{>OOxy|T!14piycRYE-9II=qK_X3?v}e;_+jNbuOs{*`vz6uj(8N%yx9A8-FiSA8oxNn2> zBX={UbD|R0>qIg3;T~KLUxA`WBRO>Gcpeb1;CI%R1wQ}J0rzK|(H%TrcMPk}wo-(a zrn9utjpd#CaCE;HxZU{`N_JB+La$={YQeMe+>*O7jj!@IV%EWCm{B6{M(v*Cm%QWF z8b{G&?G+5Oh{UYF;h5QSlFUFze(and7$N&fh#tXC5uRLZ^Hq_NeFg`H??j>GMAfWu zgQ7f(s~d{(bxsI3O`J%}GYv?!PGuj-+MhQ*o^`iUIIqEkO3mLwrArOegCu9cX%?O| z@#hnrV|Y-V$-In7ux}x~ooh<*V(A66QadNi@5xzhl_{#bb>@7F8kDY2WBlVuv|E`% z{VR!3pK}N56AWR#OqE8G!K^*afM((C*rPZGTP!>{Zu=mP3|fSDGye*YAHx{3dN>bF z-Xzv7ZN;iLPW*kL5wXkNDBRsyktpYdXFtI1qI8p7%izItR?-L7N%Db|sc9m69|IrY z{=LmYFCl{)OU85Ae)*fflg6>}-*BXU0N%Yxpu?P3=wmBg_IdL$YRMF=lzYjGlO=n4 z+I{i3o4uStWT5J?E_vOZ2jfCGV_g&8a!RJ5Q7}{Ic_7&Aj@&68#}}zSezJ8CBSSRl z=XwWI&iuogC3SFXri05Wx6#vCW{duK@psF6Sjz(*)ka04T2E%4WRIw2f+2ou?8Are z1G)3%0AZ_KDK>3t%4+xh$eDLm5ji7)OC;AT^yeJZt6s&vd9n*%RRq7Qmyy5g6?&Iy zbBT&Nw_BDguIB0RtXewy-Vb8Y2tCH{aG|kH4pmK~+2w6V5oN2!E4NRH@Qy>d_uN^0 zQc|L6XqB*7qfpe27=vlWUbGt-L)FvrK62Cu!*sHseSbZ&w-4dD?MF~ML}rqG;`m@{ zBJVx+W^|V4nKZ3I^pwAKw;fuHkq(~TW#4f&SUUMS8nJx0 zKTXcNGSvGtZh5^BGf(`&moqLbKjw;S(o#^U1A#`mug!`1H<63>97?SJCIh|Uv%U~@!1grDar$3@_go2l!Sn$&C{dj#}&!d@b zHfuJdFvYkR_FR(O$Jd$I)Z2qmLD?vaPGJ4QII8I{^oZ$Y$sZltVuxuw(V)r76NXq| zaUa$9Y^7Vqg8jc97Y$8Li$;6NBk?{b*7VtkMX&a`H{MicncGXzh|jPLIbv>J%) z`34x>(*)X!<8h*oI$s{2OheZ}c(OB&onx25qI(L@F8PGWN3YOOF%A37?&CrmTSlx| zCNs2>dHzbW6;g_@@5X3Rf76|%^+RZVx>m7k{sP6C%Y_)SHH2OJ8A@hb9WvhL!E$y# zmili+b^2`)vS<=bv_2x%$AxP$mLRsvYm|g#VT8tTnqIZyu6@$Ua@?HfZ%Q_C2N%{! z&hjq@eervm%(wRzR5@6IjQd-~ecA0S(OrYxDY=;aItZ_S-uK9h%3{6r4?P=p7Z*~q zkSO^q^YykgR%lTTc7H_4?&Xe_IKHl7&FLDo|?bPj<)h3%0>v!Q> zhs6l+lg@SRqj(eD1{=P05aHV!gl?O^X!fxeHDgj0dM^X{dcaO`#-hw9c8`DK(Bn%;N}0&p2Q7G|aFX~Gyc|x={n&kF8mIJ{ zE2gQ+=dBXB>M!xhhx(u2gTqimyA6Q01usYJYWHyYIPI87aW#(+6=ah z8ZG>9%N;|)GMK2CGHsr^WS+Ied7;mhzib${_z9+eeWwVNe~ZKGN6<4t{{Q^<5BVvs zd|I~%8xSL0HQz3&X$vthhAP5N0@ zwc%Oh$)2#a^m%4;?fH0CN9t4Gz=2l7zT-5r@l9(ezs-^EQnLsuH#}GT>G@LT8GCbi z(?0S}WKAQ*6dh= zcD<_bG}#XjZMs(OK~#`}|@N7&jF{PmO6Fw_qpFW6>u%%1kym>GB(> z8}3E-9y!uEj5FsMH!U$5)DrlOx$hGm2=hi>W$4g|o+N zOpG$duZF;O-HCK4mF#KjBWl zt_MWBF0u40d50>mwltUf?d2C`hs;`XuIHH2X0Dfj?;){&!W2cXudR3`p&1u-&!G2v zJHv27?Bdf>Y=n1tFx9$x@^S3~QMb^7CB?(IZ}B_y zSe?wzYI!1Z(M0BZwLporJoDU^{)+Fd*zdpPa8|mEl(%z{U-%qHPy0||mdNIFx^lp_ zAZ%-ujQp2c{OV_qoyR(Gc#G?z*{}*|x9JLvYe(^=?M}qB?L_T$zKm+skz2R6h1M!V z9=bghV>Y&;no0~UFQ;T-IaGAvyjErjvyIrr*+}KsbBwF#(MrRt!S^6ofraUB>GvAsW$J2#D?CZJ-MF}nV z9~L0FcQWO)1v_S4K%dj6>3km?Hk2QXJIkF#E9wpK;HL{^u!&K}81E+Rd(c^wpDIAm ztXTB;;f`9Hp4?k9RqRWY-K5K#q4LO(t>p}P>P~+exBrgEEj)PTqz3Dg2QbRTfaPng zY0@W%8k#>5u*QJ@ek8N%kK{d$9K$Jjd+_&_A-gsj@oH=N-#cU>Zmqx@j|__B-HL8A z7DC<11HLb|qVQfzx;MXtpi@`GrzZc9Gus&E|Jm@#xc2y=h>-kP>7_$p56@e`JD$hsDKf%bqGh1)U#x#%jI5)047T>>tE>~2z zVs1OGn_Y-n{}ymh(`DHb3u+ie$T{?T#YE!)T(iTFA;Hq~A!qJC7al~fE}f{hEKtt5 zmf>3eK-4zK47ud=9vo@ML66>JcB@6mX3XfNp@hrv(3v8V+H&T}eSGw@#UrqjVjpqq@Zb>iPE!s6(*82R=V7QGwEm^l!eBT}K18;wV2KZxgtS0Yuq zQOBiQ@rUHSmrCYZRl!rtE3u@<3~koyt;brmQFNQ<#EKz7l7nNbC@6XiE7=M0d8bSF zN>%o9>&VQ1hmbw?HTFyP%gkf*5qv!#E5|zWYyB|BJTa9WjQNW1iw5#u{cE&)E9a^= zldw~=>=v7N@k!|tJUANyL#d2IWDYCyw;(pmjYAjDmOBZ1p7~%Ps_G)?yDC9;jk0)n z#4T7)`-AxRZcP981DZD-Me@dDD19d9zQ-r9%faDX=9R_y!(shhU275$ zcWMs*9vjMvf78U#6^AjcXEf_1v(CkT0vomdVdOAl?yi@w68Wsi9A6|nkBt%rvyFIo zxi_=r_w@c6dzcjHpfvm|`fQdRs(nT@x?;&+vtsGJ?hU+3{duxgJDv#CVXd5Dwwaoa z8Rwd_ecm%<8gGZ+R(D((8IP6WEIMeti_KN=C+wB$LwLc6)r%Ras{-;cd5@`6gBys%h=ZSPK#{deV#brC9EcZ#>N zqdw$Jf2uq5MTg@F4E(uSSe>dyvSi%4Ka6L5R-Vwi-T{leM)A;wZq!>cnZK@IhvSrO z_&IuzBJ{81+ilk4ZF$#NIZc!LAun;Yu>+=da$t?ic<4JXb5GgdoujnJvT9!wwriA~ z;@zWZ(aC`6^*KCPzYyOg(7|}|02-`XERb4WTRNG?0!zfy| z3&x0@Gq5eln31=}V%~Sjhe=nZN?|#adm3@Wl)lVc9LK`dDl_)2`J= zI8=Gk_s2E#KK5PYRKF9uKXsOOUrW5)n#?wt7TCGrpLlb#2e-+7N@(xxqVQ)re}~p1 zFmM8U#!ljq@vTJBj@$S(*OqE|WXZ0DVrxTF8vX3dQ$0!~Q+0%*uyae!sWDhZO{{>TM#kmN%e!TrXO`C=pGsOjjJfe*npQ5^?ByCN)-s zaYxxC+|8@N&^_b%U)(2Aw|oFYCoaP5Yv0jFX#~w4>=G~j8gY8s7~UB;o?Di-=I{$% z7+qwzAIRv$lVZ0K$)IoJ6Eu-d;F%)dnOlFbtM^y|sM z?5#q| z^Ipk*S;<8>YP`pa=RRzk)DHYl?lfjy!ri8=Y1GgZre=cs_1a4BNE&U9wV+;sCa2X} zdenFgMc5Q~o^1XU_r|zm^=@~5mA$0&kxwxG5(RI&QzMZdvhzoJ7uNleN51UfO*^jp+_tA9G zAB9G!GrAQ9acBN0o>`E@0V^`aXY&w#6^rnr+YM}dy-OJW>Q2)MtKjlBQIwRVGUb^y z#rYIIPHV>5ZUY(FB^!z+LveCMT#xdZ8*r<1Fk5Cm!=lXLY+vvmI>&WItJtmLQ0_aA z5&LI}HXW9T?!o(U`AR-08EVgp-{WHCKCvKC`eij-n0>4VVvEOOW{3s zcgH7Vk!2|kd=KQI)Vb*LHI+|Qrr^idNbKIE#_jT*nRI!DjQzJ`LS-f9I~CzqMF~7q z3(?J~HLZS{@lS0LQd(Id<(D$InHp0o;u=clq;T6IduGlYPX`};8n63<3*|XXk>~mr zifXh7j^)IA?by_{9lI|yq1~wwjE?OiUA2$le)1i>8wcZGKwpl_&7|X6*`J^4i4&RM zv8gl$z1KJ*H?IY^U)P|0n?R%-wS@XaWh7;}@%7VW?mp30@=H^gc49g%|FmX(=u&7r zbb;^qWDJq{=Pi%JX|8nzr`z8XseiIrJ!Ju|NJjqK`kUA|ttX?G|HU=UBZ`IHrBCj8 zGFLtt#Jv24=$EO%FD-gdrJ)Lm|71VryCDtU=3|%KwYS!_Vioi`Q5ExO!mhFP5~c;{&&tQ0lS z@2QOHpm@%<5pMR``r|$-mHMvUJF)fIM7p9^7-3ZGJn@$1eCYL%)`aV3De}}|N61= zrn}-eT*^rA~Yqp;=#}Fk}EzP3&*}tD5oz~1b&y^PM2uL zxVO0;(=Y0*$gyI*K1NxLMp{@4F?pL)^rJokNF=Xo68uZ&6;JA6AC!TjBHrNkD) zlI`$wmJ6Qp{DHe<0(X>KKuf%eE);RD`;CvZdx`NpEGQD-i+_ac_-kaxGc5b;4Zf*N{Cr2gtx8v zwDrSNL09v999uaX*Sqcsj!GV(eJ9^B$0@f+QL%`{E%Tr^Z`?_7&JH@Uj_=!4lOdRU znI=nopp!f!wJ_=%wfbh^>>r+wGI4;*tUT-!*+u_-;pf;|og(+ehKTFM(V&pNO z^P|8s0aZFsC{co&?k4)4@`HM>-Y1EXc$8kF=kMbXXy^_Pxj^*kyVKFrqp+O!2{!tkCF2Q?m?8Ja{MDS!ohvKt z&ivU)D-RoUXHF71-w%M5Ru`#c`oj!o~@ev#?Qan6P^fyW)R< zYJ1gikayw24kTew{at}fw*-8S9uXwpxy=eLYp}1D%h}73d03WejiNaj=r!Zq#Ccu_ zYI`bBmEw1tqy}n!k&EuJTA1c!Ny)cbs7PZ31s+~QjY&iLk~D;6 zr_iQ13fLFIbIh_o$Z6$x-UZ>kvQ2z%y&_zo)HFynb=gqa?}}+#oX92Hn|a=JMXg*5 zjgx*x_FMSuDM}R^H_2k<_;J*tFoY%T9gmK0QxUCvjT}ylL_q5|TJ5KSHe5CpObb)48bceQ57fqk`fk3^n#! znPj9qwyp>6c9@gpF&#YM8O?EX^++wLiXz&z`L0x*q(pdE$A|kHR5Q_Q8G`PLL_UMh zLFDy(cpT)tq6mMCI5-g;zfa}9CrO;&+k&nSMNCu;#muA>JmWXP1hdTdUYa&f70Z=jT1wR!WlCMwxYqh`#%aau1DT zrl-`YFhC89dH=klK^n&%ZKjHg`8cs`kS^R8;P^!qRKJZuMu-)x%ftX357g!@B)s!S zi$yPeafzd}E7|Z}d6XJY24N28T1lsjp!ve46mi#wD(5pyh+RtS-tnADhZ0hRuF>2U zTdZvVLnlv<$1q`cnmJbkHf$u~|5Jp+V+$O1^uwRm@^rgEjVd12(W2ZJ+=n2IY0q*o z-QpKrAC^Q{?yjPbzVSFT?~t~#Qeg^jweseMlgW#(G2Z-Q_1^Ku*(g&if6{B6{x>WUv07s!9kE*8JM7f5pU z&=FQ5;GqR`&eP;Rf?iV@xRiVq9BNg?-_5yrcfEwh#I2`otw-3~SU2cb#9;={bol6n zLhH8>cV>y$f9;TixtuvRmMdVvdl6g_UPq&}Ef6C)g?EEOu|{42KJR1k&@&eAiU-JO zwi*O2li?UM1%Dl-Q4l7Mi&KZ=sxWuQsd}SOcPRc#n~b&gCn@shP`;lZB$akPKiV2b zH+9C**#!wWXq1F@o->@Y`X?Rp;okbDcO;Ukh*Ni?Ay8|e+pV_985M(zQTn)dp7Z?% zIw*@fHiaG=Ame2^#yb=-i_?}E9&C@6tQBN!`j9-%+-5<``)K$0gG@w-y9PtIlCaoz z`r90W|0YidTP%iCdyi3$cq7&2@Mn^Zs}aL^jmZP(E{fy1$A7 z=YFJq0|wni3#nw!BWm_o%XWul;nRR9KGrOvPY*R||E0Th&VL3?HCjnJ;_ex$u1HQG|Q8!-YBXukwQ(15*6*Mqo!w*k@c6)0|s0$ zdE{Zbx7HGiidyLF)T`{rH6fIo@WTz|KAQGJ3sswU3BHwb-@%yKlsvMI&H9y3m$(!8 z@R5Twd|nT`v#6KetXfKYvIR&xpb7X%;$~bO1)R>uzN#=*`8WsFO@}EVG#ph;pVzi+u?t70mPUR+??=1?QohPZ3{FGtN6gEJp?bYCHq! zVM+@+T#;vbnc`w!Qncf7+RNXEC$ikp#(Jsr!#Y-?)5$(E8(KU=1ybv5>EuU64DVBd z(B8M?BAU(`POYZ0xG>rtJ%<*aZKi9=dSvrz0tpU&5+rf|l)}j@xGIiC@)}LVD2lGS7tY@k2N<}QV!3mwR8WE zlyDje)fS>^rYXWMr$CtVM>T$h(nqx<{KrgibyO@GC05hE)!F!^&_qL9%+WQ<8|5y0 z=*5fUly--^(Cu9y;QNyW@}kH;nuf08De%|xg6R%RnAeLy#&9NX?^R-Ye2(3`_$SHW zIn^!-;O^(`V zi`gtZU8F(9&u`KB884|WTaKUa*Rrq!+ept(9=nS&QM!Qlv$)GKsFa^MZce2IuKrl7 zqKqvkCGpfU5HtQu|GuRw?n7vks2r7i(}3!pHbLNJevdg3#D0(c$*w%+jK4%#o~znO z9>-m=5j!A5h==Pj$I!<%lAo`WB4N*}|<|L07r{fASK`7+W7-N3&6^ zd#Ke^+rPE)d2nxF4~js14x=+gTj{_OA-whtCH;A>IDSU~ zcI{f&9krU~^sFGyN!+XZLk<+DMiaV(o#SXDhX=9!hz8 zt-9lVQXmgbG5-(LkzE}!VXGce zXARw{yXr2T?>Isq9w$TiR2JHj`5B43YDRA~K;+{2*ciEnWZf>%l}}xiu9HaYMmiR) zx=Qh<0cPci<73;XU)KP6b{A=>ivi}tmR9$+lg=}F8q;fz#zn#y-N3!Z$1*PR9D%_Fekmm{p@ zrTBT+o8+Ps5Sh@xUe4ol^1*0oHLoOL(`Te!Ium)TRnQmDeWF>Ul zwmy*Jf6m9G^%rP)%@?ZW_cqhkgY<%&p~z=Mky~F;1<(KL-W;%Y8VQ-D3i!oy2cBu>zfb z(MGK4zCVJdyrBsjTS)PbKJLV8py`bP9`|!^`U+d@pjCAB;98#Hbi&RK&SvNsBFKny zfM(?$auQlcgCWc4H}7Oh>pi6@Jp+QlwJ~`AY(JH*;{PvZ5~$r2f!8m8GKJ_od^zri z4Js*knK_&!*YSI-e->(?G-enklsuw< zd%PJ^)zd*Tq_Xwv%pnR2l{I1Nzo_O z;Wj)C{UREWxnPasZ(q{_+Z~j?#+7dL2-y3_Z^*dzKIxuP;m%`s!Dgw8w8Al+wC_bi z{|vuRhPqHb=PLxhnoANShxs>^@tHh08^A*qO$BNL-qSL+4{??cI%Z#WfAu;bUO^0oeQ3gkE0b zJknC`w-HT6PT+6$NTQVH1PEb)PrhKoLhg#_c|nz02|{VESQ4_2rZw@slMlZ) z-q}bh+;`u0&H}&wi6V8B9l3>Ze=g6tN4Toe-FNDcz5kjPPuocTpEHmtHG$X*p7%96 zN<$AclW?LF-$n3D)8hy@f3~4T=l3%$&U?Rm=@w0mUQE$%RVgK^ld6ZAVVc+~l3zWB z&hyW1$2873tsahV``44hIX8T^-bafj=|U+)9%Dq@(f$5EiV9VO(`;S59N`Q3LR;L| z{79K+1yIw>#X`Satd7f|;2U;uY#yL({%-izY)&J-MWH|HA9c$Y(SL3Y^h0|t8ukyz z3)?|T7*xWAJUxg!ay%Oi0>asg%b zRkC$Cb~HQt5VN|IjuZLI*rT5lxg*4ZW?cNttRCmV@6bQeoMej6x~=x*&61?P)Bp|N6v2Nr+#mWq z4R#fw*!N@(D{Ga&V23y*c8|u}c@uHXe-6g;-Lqx42^Mo#cKD|Xc3NT&dt14idKUE3 zqDanUh&RINp))AM*cRUp&4b9XcDftDS!EZ#kk7jvw0cq7i*fU!OYDNJ#uu+uELXRaL?eQ)ooT_+c`orQ))cQDpdaH+`{X-aDWOmT# zvmaRR?NVfc==;yl!7nxCOcy-Oa@&7)@U(yOEumF3hKuS=yX0CDSsZ0;gmIP9Co zp4|9A`N0wxHe3z$amn=R*fX*TzAX^7lBEAQTjA#30^U>1#g1}goKxFK$7DKL@{+ey zT>g&Kci17tMjeGQRyectAtluu5}4nN!uq9`sB;O<+uR{S033$4v@@LI2coew>6L0SS*)|_Lyn`d7OIA23n7~4t}5brS``cuc_ z#d_YY8kE5PiY|JyMHp|&_0W^<%wCjh;n$2vSZhvz_XaI!$`+6UX;Qk)77D+1h;+-R zlLOCUzxA>tU$3DEzNCg3N@9j$HlVl{S^78Qd#(3nht?UrbfSu}2q|X~T zuSzZx9wG|ZQ_0W!sS0rWo{k2okNp2-61gtlKtA;oS9c0PI@$)i$S-ZX24578DDBo()N_~lp!mIVFmDoH=!g6u3(f>yOf7>>Hf$@zao0HR!wJXzf)+aN zl#B5T9dSfE7?qFz(hS8EDhg2|wF4@s6LUe(iFC+^da)h8Pid@UAx0+srK{h0=3!?d z^oA#3URDa4&jj&auqfS4lt!@j8m9AeCYr`Bp~x!&Y`tv-{q7+Y$vb!7)~K?V8hqb# zaTHs>hO-cV$qG9EY0=dJ?)4G5!4~oU*uDM@6btTTZ|b!_c&LkJ*QoNI(@jC(yCxdo zosTOIW3gKN3u$l;W6xh%^cnr4ee?H|=Fo?fHaP@|<_?_0&kf-rjdN$v~y%)*X| z;CbgpnjJogv;zy^>S2MQHxw}`@GyloYQsTV9SyUNk$bQ(GA8K3+gJxtUkuRX8iX7^ z>z&xYgBCxprZme1^khpSUQHUsjL(+Q5tj&@$Z&+Q%x4-Hy_UYquVasIdO(D8J@!tM zrSR2a2nbwCwbATsiVg1Uw4kHAb5M5lBh`#fr$<@|Xi|uW_3p_u zeQyI@+Y(20c`0OgDFg*-FX$t8G`$#brC3QtWU9!MegpBY1%Br@v-U!`T?SMY}< z`98PMw~W-hgW0o7XX(qjpL9o_vqILd6a?(`qMZkw(3zXU9kwGdp;Q9*YK)=qbQHbX z9)!+QJ!ICggxxq6h`9?>a5_kmkLY>F&RYbtf9hg?4rfmV{h%s$A-YwO%vr{JX_M+w zYUwparDrJ(y_${Lm!xRRb1fKtAA&ABYwD`JB*Jycr2^g~wB)4TT2?RF$R z&*gS!8^W1eq$Xtee5h{$_YgH@qvMzWjulfVkmq!!`ht}Gh5G8{9-FVPTt&fR?I%%4Z`?9bcN z^t6wkQ*Or6HSLY`U+sDtx4DYUqX%fs>jVs{t)=X#57_Ys2ib_7CH$Q3#p+Jv!fm!U zl$rw3wk(5=z4yWkp6PC_K6Tn~UQ&jCFueL$rL z*HfI8Iqt6G`H03QT4`BMQdS92(_2m@=acY6Y$mkh{b9b}0{uf>5PB&BYO3o=I@||; ziic5>jvuDY;ckj|ekAXwhat5(6temOnY;~#pVc{1ydR3+{wnx-EdxTD`jDKskesc; z5L~r^9&orD*Jx;b-M%aGb7}tBOXxXS?*z706oZ|n`daR)9 zD;H4R2F?n$QiW#!efp5|l&W|R_fA6>J&n6a6GX;g-{O82d?yuKXVtP+vtRT@H<>#l z6d+Z}Sq+xXxE{v${V!DLq%7|xm?prMH;I*CV!?$F+ zU4^`LHq+5WH^c=_ps`zRvB&xc)qRPfxf;2!YrRMRxLY>I`z))~vm*=5!z7TIiSvna z7&>4}r9%Qy&w06~YC+h~eZk=k_E^cg`Ui%Ep*({7%8qHn_nIi{4v?fizft(!8-xCZ zWwd;q2qx_cNB5}3f`@*W1?s-H*;w!%+l6Ab^^OqUnVaC(rUUl9`=(>cu!+nvTN^`; zE0dJV1T2fNhhnuYXADk&{R>^JUGkYtR-OgQvO(<_KCc_=22bOmn8fD};s3&Msb>hP zbLqoN{c=)1bU9@*n@Esk7~&@zoX|PAy?`&ribmy?&%vd7KLONWmw> zg(Ny=<8TZ2)0!)?qJk$>k->M70?u{o6hfP!B96}2q@EQsNWYk8%`O~c`={okS=HEf zS(gzmo*jj_3|)4M`%ZOd_ObcHWHI<=5(*5(5&38qUYHaKexJ2K-l!-{mDxgHUJTNM z&hK=22Y0h=iG@MqX!?}vh2`qc1u@~jiH&JzJy+IJz?n>#yWOSXD&lNdX);Zs^p+^!xQ|mIbfhSi8ElnW8-0ls!`>G_fVUItiv7tuPKFRW7=eu1AM|OKH_D>I5dX)) z{x z=nGNYUa1YSXI>~eC`+%e?k6kXVc5FD7?HdeCf^l=MfcuQr`Bb`)xi>)$GZ}d>bkI0 z%*O}~Z!%9Dh9NZ;IB&`s5nQ_1v0)tIL}&4S!X{eXm(M)PvJovjk!g>g21||e6g<%t zKJA=|a%mi&%TI;f%5yaOz7++}3a8R4E7WWX#Hjo8(Q(<7+Sknzq)MjXhG#Vsyjj9I z`waJb@|mLjds5&W*7i(qTr3!d!IeDA?mri%{%vG4?*a|P$Wds6hhWE^I)Rs20Lu3& zVujTx`j)(icE3MLmA$|0kLjqwi*sTkc_t<7;YeKT`v2XHJ66}dXX2cX_`qN%o$N`& zVzFfQwdXah8Zn7>*Lso0S>B%u;eMbVU8L~5i<7wuLOpn{?X?emzo`p}C1a`Tj|@!s z`PpA11gW!T(D}m+bngjg!nzFz`idg)tmPA}8rMjhZ%;yMSPgA{bAZ-y{_i_wWB6R1 z!&KU$Df>&NV99P7{NO}Oq#|y~1NJ*?6KQq#wPUB+HXggnruEcR;XdPu^QVDp^0B# z#4+vTXIe12g6)p=7YH&9P^B@PraZ8qmU&Vb`F8{T<&4kYkKOTe;!LET=bl;n7;L!l zfPGzljwVL#q%F;%sIU@YlG9I8!KFz^k~mK<_s@X%&m;7zppP6E>|;%xawyKJV$R=G zp;*XSdSO*G*6ty5^5p!ou|}-(gcXjtJ3+d{o4S=9IOmviKKLBF+SLoaL)KEuek0oH zGZqgF9qC5aA1d1yhNJOUNNc<*<}?dIWMLmA88_3FLlT0W`Cm!CinAQ@{*l41Gqljs zgZBg-s5xQ^{yVUnI`3Q|^%K4r+uBS|7g-{~(FW_+1mX=pCwGj#K(}w*r0I>>Xz8&+ znI^%N?^K@1>fzHjJ%nxQpke;ms1Vac@Sro=V*@DUC}%5JMPTpOp8~%=aXfk!gxccK z5V()Sg&Rq@Vk8OU`a|T=?nRg+IqieZbeX9SQ?mF6G>AV3t@1TZN-nP{6 zql0q7k_5+i)oZuM9HesP}-FViS0$S)ra3Rxm&}C`|MN>WKdoENLFGi zj-jj5(Vc#lq*hMA`A&Pmf?tUgz}>f1&YbP@Y65!|+d^t`&7{|E4Ch_`sQ;8m3ipQK z=D#^GKO=!r-xOgz{2gU+?$=CjHxz8wNBR5VWcy7MJr0wo$Nh`oTWb&|alTjQViUv? z&jc(Rfz6&1DbZ^I-PabzMSC|y?){JMXmO@;=x|JYaFLd+xx`KxTfpDi6OYs!aPe3Y zB`1AmYnp0kT-h#4C_h6Umwga;@(ACX$I_(n8q8x+JQk;1r*C$VDC7)q*U!=vnv{xo zBX{(#TuvEH@)UR189E=kSSh~)--xLssWD099_4`PV&({qddl7`oW|;w%*CYVmNX;E z8Fpd{P))i)@|q#caqT=T%Pr*R>?CUc(M}Q8)97V4U;fERV9hiiJe@Y5&2>v-@6L;( z!#N!{M!jdNGet0FCFdre%akl8#8Fr|8HcBHiASyou zchlEX)wo22Xgb4;`@|a3q1V!tRMft)`ML23@1N=nA@MG8}53{!rDS4w^e-B*raTBIwld zg^aHj#+mh!{QSQ(RW%H9A3#mT&e&QhNz0z*V#3UHXjMI!#(RpskU_ae zj4}G97#@l6bJM?t^eU}`eOWLIpQ>drFiQfiyCQ%@4P?KPL$j_f`&1m2haQlWM;zqd zrz3lJHjS+kfm-V&R&igM^R=8oKgO;)7Vb?8sX>Hir{w(L+!cTaYr{D^$O|_c0|Y_8OfXU<200Py zNq6BW*f{D_*Uh)IoHIDj9R5HD?t~!5)`p&F6r0~~jFVoen4mHV0r8q7bRdD$|K1_@=wI~MBoW>( zxtDa499&8b*=4CQ_)zJCs6*TbvzpH_+@kP=ds{S2#UcM~J`(pD(xDTDD0nG@=3fGc zonJ)_rV1F(=0NM~S+-=JF+Hr3Lr!}V_Vj#WxotAUii3FfCz3K-L~$im2_{{}^lW=S zb;@ecz3;rAxaWmkbwfHHXl)?j-xt_`{3+VqAi@B*`+-+ zexweJW=<#f7rvYeB|*uEqN%G@SE5>L%V z$0Kt*XyvSLeN~iqRnYKNRh)B|L6TeK$vyoQy;R<i$V&cd)UopfnqBh3xFOp%QW(EmFb!_HWfrO91#QO&|Y zQ} z1e40_5&3X{o?Ybb$Di}y_0SD|`Mxw^cPITZ98SJ`wiMhj563^X(nz@vB=T4u+xXnm z?#)RWFda{kcUO?9k}({{J*S=Hns}b=BHQ{+gN~+6<}7s1T_5qBhRwZ8&N||7@r^>O zg#!&q^q}a0a17UVGmv$=K#9hIsU$OOl?mV|>M0vbZ8$QrS$JcN! zSh*bK>E+^3+6QEH!f{(YtkF4x%fCg&t>7&pgWY!MxrSZ zcyM0}qce>%MvX-sN8H?U+k7#`86LRaeu@z*S2x54BSSjT&OgTErs z-;##tuZncT)19-OlgTQ{07t*rl2qhK-Yq}DwyRZq=e90tSOcBY&j zfkU4(AofEQ(iS{Nkn-N~jJwYE{`4ij8pC#!-ak^wO!g2u5zqz<5tPNYv z+c^EDl7cIPFm_KC&c|q=FlPq2{1$=G4gNjg`C@tWBlTRBgz`Zy<-Y zad>n=5urQ%F#Fvkl526MmBU1FD!>4)Ui@4?aiZYb${w0h3u(iquk`+n9o>tT!@e0pkg`>R z@-|CURwf{8)$M?FJIx`xI}V@H!x1JFgMiR2 z>@eR6e3_LFsUT;;;zMCb9dC@s!=BUhF~_*e=@k8U`U5-U?~5Fs56X)bhW;iq$V+9i zQqxXy&~xSUdG25xx|_U?&ZF)XR`h15Ia7SoL%Mt?sNbK7Ru>bxFg#aKa?28Lckmvk z*l^CHnL*a~YU#JoHNk7nHwYPfn-VUq7OeXvhKCcn+4y-oC~mb7T9QY88pAHtp5-NFG@z+&ST_yTbylRW=JmkM{$jBY2d~P(%_EV9k*I(gr5_Zh=yXF z+e2#QIi#gcjWl|EG!i&#W9gPps-Mw|F>KE6yZa({p6yxPn6J zcT?ll$teEhhnzQ2RPxXsSte>wxicIKe6_Kk&yITiJ_tsXs4|njG4KUI#;yjiFe?jtzm$Z24Uy}b(#Ls+hsBEk&?LXy=kcd4j=9)Tes%PL( z*=m8WUpoblzeO7)g%GBl4PS@qAorpxeyYV|n`SHqHw$5#gFLPVtK#3n(?r=f=*_b8q?zrFSGy;`F>ySK zL|t%a!%Oz^9^ZY=K0#f#q|wp8nI?rg!PQ?In%(Xg=yt<=mvv;k%$t%*jZy991^>h| zG-a*@Cg?6B)*t(F(ac$fs9>MN7>F%!(?dFVB3y3kRU^d7yoBDSBqJ;_k zJI5VvPsZ@iSE`7K<~*mt=fCNN*G|^)M-GlF`|M}GxkPv6MX)2So%-iJrr>Gibp73Y zJ`cBn?1B?CbNWWIzhzFlX7Syotv)_K`$`2nR8iX-jFEnOsi}>3-M%}bDSi?A*|C5I zOEYPlL<{>Y+R1JR$Ktk#D1MGuM{<7)pf43jK4%-4;~b#R^EoM1`{9gJI+nbO$Cx{X zbm-VyO7@9dngeU~&4~EmmoO6+?Q+-+wCk-;<&Gi}P_RItcrg|6==Q zCE$@zGA^`>kal?{OTJSfc+$gnfD3amMPP$@#@yY#Tnpmd#a48$i(1#(&`Qo9tgfx2 zDIuKI8@HJZMJGc((U#>dPG#D;U)W>oep>(BnstZkV$py)<~)wZx&5a|MmYgS(-e8` zSepieXT!`V0i9#M3zlcyA+LA4S&t{r{r%WXV$;>&GB*?v-L-VbbrNosg(7y55exO< z?!Wot=tIYD+NHpsJB_@bY}-JEN$vD%#R-x%d`Og*PZ_t1*o3{eXrj?q%H{djijTg$ z12YO1Yx(nwpNTiDk0Re5d$I!0GS zVAQG{Wayu!BdZHhd;A-1<~z5Gu8J5EMUbB0PoWtLDQe1f`fktX_Y0h8k-;Z{PJ$N2 zUW8rimIyXHH^!QZo$SoIAh=!oL>F~VQORj@tb5EkKp&McWZY)5 z=JUCZ7x}n8Fqv{wwV+_BhZ@@ueD@yDJKBjzxe<(WM{BtEC=eCdjm$izmOCk`Y2;;V z)XvJlfucmz5A3FEOVa3Sy%%=yxow1rCfm4m3=UU$<88(pdgfq?i<3OC^28BZdgT*6 zSZaY4{vs4>=Y*6i8PG^eK>i$E`18;BfG79GJ6U1vpXs#V2Y1B3w8Ov}QSMLAL|K+A z=G@5Q-*I64!$q`7Zzb7t9@wvEmQYOMzRzAI(m$t+U1$2})p;G-xbnE*y@&z5;GC^_ zyVOX`>LzVQJUJ%@v(Go@W2wYE+I^;#*?0uQKWGl!6;sDK^$#SRb%`93lF++Z0_*lf zabMF=#O+xoxE{$nzr(LlthOJLs{85Ni0ABl!757rI3Des`7!$%4i<*dur2b6!*4cVXHvbrbrH2L9pjF*2yGS{qN^+W?wUu^M7#S+^L zdYMw6FWfb{XqTxS^pqdcZt-A9oQj1I@6^@*5v86Q&d6?@j*_3USp3cbU8fq^)JMEC zGSdzUhoYe=@P&n+Jx1`I-`b{e6tmb6PYku-f2o|pD|q)~$2Yn<+=XaN8}|grqH_xG z!_>{k@tiCi7#xk$5uVu9SwtzNr&yD|B&w7e$--_+FRYuigU2M|PWcnq+82W82MNDg;mMv8ja;}zr56?nK*bbUEmFLWFcw(E{ zLxC0dl$S56;4E|pJe?c{+uPQN%Il*o-fpv}EuX(;pD#eFT6H1l6HInQ%P^yZb6AR5XPc!oFI!vjBKtx>XTG@q-F z;9m9H6gop4^VI|JUWfa|dM{9sUo=IHQN*F=qL5eIP4&;G?&SCJ^!Xs3ePlundZZJ zd%0+PoQ-zwW8dLIKasnk4ZP+aC+V>=s9nr| zD{;IN;C`9DJdZ%dr$T`#_qUGE)PvKTJpzwUx%`9;803m#S=VGdtIWof1=f7O9!;+= zJ0fk(L)Q4h8Un9fOzpBCG-Je|en*!*h~gaJ_49Z(n`hc)G2C>TiVu$VFykDw%aRV1 zUpJl4I6_dlBM)}#f>GMeGaJkDF-uAWchCN!lPliQ0@b0^&NDsA1^u+@`9V_RnN@e= zB)o1bqvDat*xkI40!3B9lD#nVMH_9?r@W)n zN41bpzlCLvBIsHaV(_Q7Af0EC{vP-wxGIxCAJ_F$jG;ADICp5>nXwdf=_hBBr{kG| zHSQl4z{%YY?NjbkyhkrhS^J67HF~J!bO#0ha=^+{ePo$5jqKhBQ1NA7T6-rOWBvcI zqfx8qa-kxE!n5&YCg*&wlm+HULU>XtoP4HXg#2FGy(5Sse%H{b?bWP~|GpeMjc|5= z`;3Q$W0Q&z5{*aVxFkaB{hu``B0HKFwHb|^EHquuYGQVH*<`#(r-LZRfd~s{a$^tb@T>p_s0`QE1I?aGd+nMhdOEAdF#$Yl-my4QaX-;Yf31- zSqgEjemKB0-=}=-m}_4+bcNTkv**Imc$V{q9K^A^Fa>5F(*@;^M&m)B51rl6Ne6CL zlAW+A3KMp)r)Iu5exaCzeiUHM5@9O&enuen^f-M@y-EMg^+73jk*_`jXz*ubTR#8p zEL-aGEVX<;#pOkA>;^Ii!5+B|EuDlJhtn zVIMw`gv+F{%sLQ&(QOvf?>mk(AYqOF6xG`TGftmr*A9tS2Vz0Rq`3` zM@cV4Q-(Hpu=2PP^?onFmtFrbb(Z8doRJI_qt?_YFkqd07t4Ad%Y7HtVsE=-T5q%F z8{b8!xju|1qh(IAu^rDH9m7FIw>*B$vg4eZ99CSpjBayAan0^hG|o6D#(tlH4tL^M zm{`(PW( zu_ksRe|z<#!CxDyv~mzW^QF&WsF}?1N=JE_595|uuyslz4zG<9GnL!pQmTADwJ(NA z&^Zj3T%^u7GZ`s8eIMhk_(OW8RN4*`&VI2pmz{&Qo9b}zw>OW;-+E)38P6_1DV~_b zu`J-EBE~g~UDf2-GAo_Fi%rp@^R`28za1}6 ze23#Tt^z}UVr-Nvvn4}6>d#6M-g*T*pSg0;lV*z5(<(7AAcn^#PUgT3&wyToXi%iX zfbHY?s8eO%z)jx1k`f z1D^f};?Ix_c3;((!3Ar?%Mvxbi#Fq$3DP~eF%bVwMRHixPO-auCtQl>;K=rWSl)IF zc3ya z$khWBM)!@m%DwT0u&|XzOYkuFu-6_A3tlf-m6PqAo{RE)vHnI705o*Wl(#FOEs$P}2G;1|X z3r+E~^b55Agz)K>D~Kr{Lr?qV?$JGbX&jiyBdXE#e|k&$MYrOO&vqw4yoNR|IlP-Z(B%(cp|! z!u@27I6bifN@si0x?~u)H~E56OW8^7+Z6Y2Or+IL1$Jp+&-))u1TNB%{YGyyq zQ@5o3dv%UFV1;Qi|CTCU*qTEoiV;pOD6y1%_BiQikj#xZ8$XWp9U|WYBtPg?96HF} zibmECH1ugfU)7nod{=rR6hX*&BhSY9t}-+KO>EJ2z0VNYy4^FlgqFBqF65TH(QL7c^zsZ*87=KK@D@w15L9Z%k+O9;ObG`X?+cr$OXu`emJ5iRkAKO34 z`Re;XPHLILk$)vOqObM;?+kozXmH;(!I#fGwO99fgd1w*nVL-iq=Jr84N z>F8N_@R!Khohejh1~lW!HpS+P7JMDpUUW2R!{9%rw0u&HkFUKr>SGu79bnIf@BO5^ zAp|!rDPdB4R~kK?sxT-IqWwQ5KI$LO2bJ3Bx^f|Am2{`hgtnX*X~kbBieVKS$E%V_ zw%w===T)D;f6@y!r?@LK25MlQek^RS+{A#)JZyS8jGw2z!fd0T;zLxXc>h)Ad$Vg0 zq%@v+p<8kDiWh#D_aIx`fcj=t&X3XH?9YB2H$I%#u2@M&h>mn8IMZQC1{)1tB4T|T zu90`LNoJFAN^-55DQ@72lQQ4Td5J0WB1CzN8-w25#U(v!Zp;moySKjVTbsclMS0@m z&Fu<%x94cmIEJrne&AAWcj~b8#>){r+8-nL z$~>4(CZ|m5DOR44-J5wY6ps{P^e;1H(5|_-B7Ns2a)uPqr5+Vie|w}Td!jz*Agoty zLhz+Zarb5^m~#U!Z~ahQG13+LX57T>=2f_*+mdsCMS8@1Y0Z)wS71@MrwH z)1G-{>QoHq$ivgrX|Z>Y$Ez$Iv1PJ!Csex9DIuP*>e9umKM|Sop6h&Jl;X&JIhRkn zEyh?Lgz{G#&NSMl7(F8x1`FVN=!Ebqw~ zRj4i(I)y80lMLCd+i@)JYfsIMdlZ?n%h~*UJ(m75#OvcB>~ztJz2i=Z(24_Mc*-a` zG?(1{H!sA%ySK2q{Rp(yeu<%-6!JSbik4qZ`7kSp%e!=7R~1v9|EtBUVQs0j(1lx? zHb;?C4nIj>;*G^6!b4*=ig6Y*bklH7-IH}n?Rn1qFjnUKNcKuH>$h5=|4QjcefJ*E ze8#f-8$Ge`=WcxNAURm-g<`pCIZ`Xa*w1H;;?r6!#s^AfM}Xvy=(WZELSt+a(Tuk- zZbPZ#(+UxsTH5Vl-K6Bwjd5KI9`!r2HEN8_Bx= zet80%Kcp$DrUfxzO-r_{oQ>#r$HnMt@vJc}$FJ$Dad-OyjDIKhW6oaUQbwf0Lo$fH zW@d5MDR&h7IW9W9S`M}IU3u)XoORE?tcY_qreok1(e~$2#JdmS^7T&?zn&h%$Yw{8 zV>*y^sr?zfqdhl|AIMFeZ{UbS5(1CFoqIiw~gBn|d*Rqb9>Usjx|= zIbz;Vl+u~o%4{^516>N7*Vc-cz;l9q2vt$lxieqyc zOcC%g8Ha zPCWK|$vf~eJ+=;$IkfYELSOP>oln-`-;8(IrD)F?mh%vCLtpl=Ex7Zw8_lZ+V0!l= z>{#52V>FbxcjO3;dYmbH3HM;{ZbpZK0P3rR${g%WJZydddK16lZ@V@kXk!tkZI9-I zt%eNm+)c6qA^?-Ec;7XRJCi?PRDKxp%Qr|iRU*SA-!1>~badS)_Z`u1QO6!K11LNA z)jec?{TB@0=)hY#;<-2zh9Pnn)l>c^U!`--rasam@d+Wl2jP9LB~>RskzKAp9`*Ww zlS%GeI&VEbXiG1}Rmsl^s7IP*7|rD!_;h+OJUXP%X{PM<$bCaQYw66qC3$kY+*p@j z0jDA_t|+(1)+1$jyQ7t4(}f{yd;K>KbhKK?!j&pYnGzP90_S@cjo zE*Z$r>2oEIJD11W%#tp?lj2}onWOsEl$ZY71lzWogw?e@2%jx`%75yS;v2KjP8r-VFMsd!X5-m2CRA}bI1r!pXF{vGFH&3@k-O$F zQjG2BI#Y6m?-q)Q(hc7`$e&u9f8a-j1IK-7Li5T<@iVTgM{eO@cywD0+f7TMoN!n) z{CS8%(+JjfTOc&&JK)abbwKGUXtW)M!ooPQ^in9_4QeXBe_H~_dsD<3=c6zfGL|ci zo3qb$2WCzQW`@j%JIUGkoCtG1a+rdPGOwS|YAG(pY{sPK<}mxdQUv_&#L5{>Wrw6K zljdK8N9znK4o!vk?IPjWyr*=Y43`X`gXmsUjk~RM@$}w(xVKZV>!?V&DjmZ->lj}B zCi5biZJ9oC8p5VDVxp(?gDf}+TAvfUP25GN@Yb;Nw58_BE4Z?;4wJlU6oD;|Vf**- zO!`oV`PS8Vdv-f^%ALuQ_S)RlP~tHmPfc|0@EVsFHRZ(N*JLJev?9h@gIE0gBy(Xk z%nxYupm`W(wH?Vh!5=W_q5~&ccNR{&<5>CEn!^{5<-wCPa9(eLD1NI@XwS(*;nX?M z*t!{76{D~q>bS@YIg1TFEYZ$Sb{Ce`!6qh%@dI^u)i(m=GJl#rO6H_rO9K3cNS4Z3 ze#h(<>=%>C*@HVURqruMe!Ei7uo$6v!>A?aa&H!>VbNq=&bEl7y`0M*@6lhp^qa)h zsh2T7N@hKZuHvT8d&QtdJ>*>RCYoG{XYJlJ8pyN#@}%`xJXk}r^#)Nf&;(1vCF_3Q zXIxnJPpmt%4k0p!(pdTg1xYt#?{o;41)j$*Nur1t-hCoN& z>+8bhD~4hAsLSXr*&q(5H1OrH#|3qus@jN;}_8QD5aQa%= zf!B@Vu*!IzG|HjLqhJnyx5?vd4-3q^wIA`JGdyCx$=yK1XvF(ybLXQ#O!_DL4Lgz; znm>{wTV?WP&I3j5(7SjaB>Q+NlF{6@2`0TUrTeu+*uRv_^x7OAy1ftH?__`A+-Oev z^$F8GV(9mvDL!wqS0J zBRNMom={eq=@L-cq2QNQojJab1^lg)dErnv&&vKrmeUZL`Ps0!)(vboU4_9Zbr?|V z$mZ43IWIr=ebWC~7&?ak8Lh!($%vgCp~9R+whYj?jhJ`Og~`oCar#U!yM@2T+?kbd z9xdtsfU4|>s@(b^LgItC zTRLl!&y8nT(L}C{FNevQ5v(5}vv^h-Omob}QvZhtbZAgS$V~N-qVtNq-4hrwr3Rs= za+o*sGU_gdaGJLs&&No&T9do*9$?C`>DpN9FP|?>Z$PJh3GT#ykoki_yr5~qjF?jK zMl};XPL4&lwQEGyo+B8Q;R%P_ok()qg3D3;Ip4~XBe$M_hQ)F$yb(kn^R>9NwJoPx z%*C}i(>#<)hI2)25;K=iIU52SHs(eBVDi60} z$hMnku)OW=e_Dmv6Fm56y*E#7J}vsMkzM`Uk_WM{zv$n}k8f++a(3ZDRC<2FgVo1{ zd#`C2Vb)siOg^}OYSuz}eyz|-o~3I?MjX@yRxdmpC2>s;bELV3w!sa_f-q7QQL#}Vl>{ri9q`!OR;I=QDq@ZCqJyiw+4-@aOszcr`e}V0Z-vH!4wkQyiQ5 zInr#{DCQW|!}o;zUXJ=B78^=;K+y$^FdP8q9%H%gZw!li{X(U&^c6`4YW3sET$JC2 zB4UiJdBo86i5=_Xp5vqTLnxdgxUT0!G55ks%$}c!s{DtT?-$L$iUORix((y2(O8i@ z2Yc>c!>tNWYNWO1jY>HqShfSRVh_rXejCiCt1%+1Cl|CK2c;M>e0_u%_^T4_5=L@z zsSi5tmOboi13BPG4^EQI)EQ3lo~E9U{Ih{vmoZXyt;!U|v!uV*zR9l48|%%EU- zerWYmB>E0ua8V4jW(?-ehG_J-1}LoxWP{}JJuk{ZSyN5anH#Z}V*pF7T1w8MblW9IC`r! zum30gy|(D)8kM4GVY`8n9S{3$w37)1MXJ>{OlocW#+balP}%iva=cGrtbw`sAf z+}Q`ZoP}ydU$LfQH{45;7(2`nPGbk-THFTgbCmt52eI5*RDslI0di6Q924jvnYFoW zIcCDNCvv@gqL^klhKH|KBBZ4r6V6PCHmL9{>W5a3kS5*;OxCA|=jqmRb` zD$n#n{kKqdO}nM|n|(qIUpk0)bS;@CT?Y?$^+#OI2=?;&B0CSdJQ{ivyTd~1QTv=k586eDM7ojBk9J8FVD)8Ai}zjiMZKD`QYPIASc$H^JvYT|*M@1K}N{Cn^a zPcKGckZCWh9+W3NN}YsD-6L!(4&&wvTSV31=^mxtZ!u=D4F}J8h40dlbw}>Q?*2T0 zfPs5HD`xo3&9gDU~$uj#V|F1WjvWY0fUze^J`nMgUQ$4sWQSyHJhjVg#aAyj7(m-}Sl2_aiAFLdCH}@}|`m9ImBO}>5)Bz6%RbsNt zZH{m74c*bJJK5Y{o7!EqEE2}kLWIThE8^3T#lmLr7_OCFz{%S2oV!$?frDcB*Lfm$)t$t%#d^Hhvlo9w zX0Su-eCVk};b=uCZky4D<8uwEbs?HK8qA9I$I$ncbnq{S^HAj3nH`nyNk30>R^-T8qkNw&b6blIw>F7KeNNzV zj3alvmAT(G+pxZ70aWMKLT}6r$7I7KR}+>S-@pz-d$#S=8pa}%aAcJ1tG$q&#w^*N z8>uk!Zvm@mCWz2`i0!TRVB<}1I#~`u)?jOH)qjXHiF=XJTATgzqOp8QH6p!is8yjs zf2}bL-Wkm>3lnzsv8P&d`FY&e6h90z6r&{HfB5-#V%)4^aa8>jewnH8QWpgc`i7un zYcThlUlTpAbYShpjtq-Q=c#99kRuR|y0;uo1EWN>(O{Y;Y({>(3gh)bK;I zH&Z9kqT?5FEO{d``{iPoMhS8jc4oh%lVWNs2bT8Cz{!#Ryymu3(MD5+VJn>IedwIX zdpn8?zSqFzM4s5*%ME2VZ=f_`gy?+mj~EbTBeKT_lBqh#&yakugnDGj_xa(b7sQa? z5AgHzZrn}JgGGfpO9m#g%+8zLB%?q0nSv+f-KgjE1h(CF0|raVuvxn!s-qJ*ro9ml zuDSyEU%r^Rz9uE`??7m`(e5e01 zW-+$*wnW>p6OiNc2ZiVRd;B+dpU^q%!BVFHem%Jknc3;A9C1-G?rAWS3Ou>)=UF`L zl_zGcccj-T6OQ(mKKR3aJlj;>!)q(CYQOBX7-sU-?^|fC70PeR-XkpV1l%7*ip0z~ z#s?>IujEbjnxQ#(?T7e{9|$s!34U}|O)g?U*UwoEtS(*Ti(?;K4t_1Y?q3alBY7hx$MdAk7Aj+w&dQcVRU)A;^r`Q=G?Yt z8b$ z?u}>4SwTSa9J)srVU71nT%TZ1_2SR4NfrEVn@qP>GE17)i;X|MS+d%I2fxeA#v;c=tXy@*{F{xy!Yt0tUJQl26Ypv6jAbU$SvepH&t8|HFuf-~Wm+ndAEtAg z?>y92YI0_BCocQc6UHST*#37k$0kO4m>%rHY%?zgv=0@t7Jo;oyr=Cgi|4f&l8F

-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%0De^Bnh}A>lxp#yGQ}<*tc%k$u?U;+0 zN0eEQE;utek(y4)O z9GtI?$A#iLR8E!5t0^zVpGc$)`)zxPQq_ z5wPYChRf~_Cw&+GduBow&3X886tA6;PLqZ~a)%qrEa{Euwm*WZ$Aie~W_+SA=VH;H zFtf!9@kB#1=U*=q4eSM{;jMWfX)*L>cq_^mj>h!xE(*MMW2)>gWMApQbq`ufx1EkK zZuI~+Dg~kM;}P`dg1H^Y&0G=gORx?kLz_i$qm?Z`u7`C-N+1hFyOd4xX3n*NjoLx)6ll zE@OD{{!Wy>E=0~6>73htM0)6_LgkA(t%IJRP{)s&VL;GUb=i5@hl^vwImepAU+qEj4J{%Af95v8;-oK&w$| z^e?vM*@5XCIxm*Il7NoN9t>D?33tDpL72RMMh^AnxA8aN=hA_r=bGcHm*Ac<=?Z!w z&mBK&#O#*xUj1U8?D}uStqJl@GVe9s*gVCGHb&g*poPHYQ@F4a94fnLZ#pY5Y_=UQ zxYUTw{Ud1NC>_)V`!G-WBGz4KP`olbfdaQ}$PSy14g2R|`)TP+p4ge9`7qj?S%r-s z-wSiYJhAag1`f~n;eqbgMO~A6WR;FVW%n8^e6a>k_q68?SE8?Sofr}F!^YAY~3n3LGvFWVxfa%WV{gz zPixRLMnm@fvczPeKFbm_S(YNvK_!u_7H5(=aoLFnJ1D76Ha_{=n zsPFhwJTIOA&G!%Gcew>s28Sc(&j=orEF?#H4h?T&5 zuRkX8)2y*P(m{<6m8IJ@b`gw5&KGD>DJ;h}<>y|Kk7f2&Y;3nr6jZ&3<`oleIVwB# zTPARH?sQC8{}wBjF2m(x(sv(XNBbTV@yek!Tm6}a%^yR=XS*Nb!Nfd~zwVwGoKY{5 zE_dh6ccIwR;x@9r#_{CP)3_^p3g!!^AakqSDVqA=&$#udcvX*wlEZ9eDeclV(R5ke znK{a*g^8Q&Q|}9)`OhhG@8(6f+cKv(ycu#kM04Y>1_YOlfmw={&|N>AWskzp&1w|1 z=eDC!&t6!l6i@$MdI1KYReSWw71GDKJn410{zUGWZix=v=)_EBI zd-4N!%w^td$R)ID(wWa?x6j}7rMUU7CD!^$r&O#PItDekuK1J2U6-oG&U;CUE$7^1 z?(Z8KS{*?v=_`<*M`ol9L!!UjZJD}KwSzl7SLL8m-I;Y+9;kbAQ!)fQ@YeJwJn3K# zuL>2uySoZ2D-9)w=BViHG>-jEg1BI8Hx7;t+b)>uMNu%I4N$&KF1g%9roM$5~Gh#X2R>ASl(8bvlsaDrF~~kUC@r* z0}Qxa=bvJc>pjF(jDyPXLEOKsDctAFtX=jZF(&kss0dZTn}Y+GC?@h>S_l3Y7f-Db z6&TZ}9t(SQd)Ab zm5;$4MsP@@4xHsqI(36D$7Bzp!;uLh{EibhY4lm zXUUvXK+!r(nKFt4)HgykwKKPMx(kC(L0D-R!K3FBrK7b!pYE(ik*N(o_DNxc-9%2k z?!=32(pWR>03wt|Gp8UP-VdYsb^beC`RUFx{q~Dpjs=R|r?yC5Ni+TqAIDaGmb#7! z8^h@`$Ey++hyTLTx#o=##+_5AL4S7?`bb9qBO8PcF2RLK2hpzQE0hF!@k}!pUfy#b z-G@mwb;1ZmyQpNYX&5JW?Q#4(*MY{fB7_iCN3=s8qVbjeB6yi8`^lbGqo>#{)|xx5442JMTR* zRkZ(_NtMy}Anf)a`cnwsNES=np(uVI^a@vZ> zx?aqj+KNVUj{TzRXPi2^5bv;F?u>t8;qq5dIpD?Q7!vtfMx|E-AQ7Y!

#JU{)~8%$eZik#&N=>i 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 v?D%FbMap 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

4W)YPw?Y@ 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 InLnog18}a0YXATM literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/test_data_set_0/output_0.pb new file mode 100644 index 000000000..55cbd61e8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool1d_stride_padding_dilation/test_data_set_0/output_0.pb @@ -0,0 +1,154 @@ +½ªJô©•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?•o?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?*?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?./?u{?u{?u{?u{?u{?u{?u{?u{?u{?u{?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?ÉÙ}?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?–J?V„~?V„~?V„~?V„~?V„~?V„~?V„~?V„~?V„~?V„~?V„~?V„~?V„~?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?î¨?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?××?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{?"Å{? +{?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|?æŠ|? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü? ü?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?—t?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?hßy?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?±¤y?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?.æ?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?r(~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?Ý~?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?IŽz?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?ü?????„O?„O?„O?„O?„O?„O?„O?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?Nh?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?‡–?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?û©~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?Rž~?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?c¨?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?¨Ð~?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?x{?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z?> z? _}? _}? _}? _}? _}? _}? _}? _}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?Aº}?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?ôQ?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?Of?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?-}?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?Š„?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?\ ?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?Íx?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?~Û}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?.)}?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?{~?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?݆?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?Øx}?6}?6}?6}?6}?6}?6}?6}?6}?6}?6}?6}?6}?6}?6}?6}?6}?6}?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?,¶~?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?Z?~?~?~?~?~?~?~?~?~?~?~?~?~?~?~?~?~?~?~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?±|~?~?~?~?~?~?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?Ëï{?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }?‰ }? }? }? }? }? }? }? }? }? }? }?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?U²?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?P'?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ää?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?ø~?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?èR|?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?²~?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?dPz?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?µ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?wÔ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?0õ?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?‹N~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?U~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?Ó~?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????‘d|?‘d|?‘d|?‘d|?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?/}?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?e-?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?|É?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?;Ò?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?1Æ?VC?VC?VC?VC?VC?VC?VC?VC?VC?VC?VC?VC?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?ü~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?:~?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?»}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?3‰}?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?>q?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?'?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?Ž}~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?éÏ~?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Uú}?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Ãr|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?Y|?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?;Å?“†}?“†}?“†}?“†}?“†}?“†}?“†}?“†}?“†}?“†}?“†}?“†}?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?&?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ­~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?ÿ~?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?Ò?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?ä~?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?œ:?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?–r?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?6J~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?Ã3~?v}?v}?v}? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ? Œ?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?1Z?¼~?¼~?¼~?¼~?¼~?¼~?¼~?¼~?¼~?¼~?¼~?¼~?¼~?¼~?¼~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?©Š~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?E +~?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ÖÅ{?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?ç?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?k ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?WZ?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?†?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?ÍU?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?¨ó|?Äý~?Äý~?Äý~?Äý~?Äý~?Äý~?Äý~?Äý~?Äý~?Äý~?Äý~?Äý~?Äý~?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?Ü-?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?о?s~?s~?s~?s~?s~?s~?s~?s~?s~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?fù~?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?Ú†?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?cž~?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?±1?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?6i?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?¤G?Äï|?Äï|?Äï|?Äï|?Äï|?Äï|?Äï|?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?³÷?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¨¥|?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?¯þz?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1F|?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?1€}?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?»‡?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?¢ø~?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}?õ÷}? y{?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?c¼~?¾Y|?¾Y|?¾Y|?¾Y|?¾Y|?¾Y|?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?Tð?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?¨J~?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?°ü}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?x}?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?Ǹ{?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?L:?©X|?©X|?©X|?©X|?©X|?©X|?©X|?©X|?©X|?©X|?©X|?©X|?©X|? }? }? }? }? }? }? }? }? }? }? }?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?I}?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?åR~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?Ö9~?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?o4?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?# ?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?¬È}?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y?§y? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy? +ðy?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?öç~?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‰’?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?‚·|?¾ÿ{?¾ÿ{?¾ÿ{?¾ÿ{?¾ÿ{?¾ÿ{?¾ÿ{?¾ÿ{?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Šc?Šc?Šc?Šc?Šc?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?²]?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?¿?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?q«?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?]É}?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?Ý9?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?6ª?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?žv?OŒ}?OŒ}?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?D?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?„;z?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?}ð|?Åþ~?Åþ~?Åþ~?Åþ~?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?÷T?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?M}?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?êˆ?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?‚Ÿ~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~?$ú~??????????????????????????????????????????????????????????????Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?Lp?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?®ø?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ÎK?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?ªð~?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?w¬{?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?ëÅz?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?̺z?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?›Ñ?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?Àž?æs~?æs~?æs~?æs~?æs~?æs~?æs~?æs~?æs~?æs~?æs~?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?Þ}?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?DÓ|?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?޵}?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?›¹?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?L~?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?nÞ{?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?›Ê~?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?–?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?ž?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?Fæ?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?žó~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?M®~?¢}?¢}?¢}?¢}?¢}?¢}?¢}?¢}?¢}?¢}?¢}?¢}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?cž}?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?£™?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?©ø}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?ž}?õÐ{?õÐ{?õÐ{?õÐ{?õÐ{?1¿z?1¿z?1¿z?1¿z?1¿z?1¿z?1¿z?1¿z?1¿z?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?ï~?€}?€}?€}?€}?€}?€}?€}?€}?€}?€}?€}?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?9©~?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?›Q?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?àë?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?œ~?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?f?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~?D~? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/model.onnx new file mode 100644 index 000000000..2623bfa00 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/model.onnx @@ -0,0 +1,18 @@ +pytorch0.3:™ +K +01"MaxPool* + kernel_shape@@ * +pads@@@@ * +strides@@ torch-jit-exportZ +0 + + + + +b +1 + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7bdc39a0b841f52888e224f6a50c339f7c4f82a5 GIT binary patch literal 601 zcmV-f0;c^40SE&K2M7lc0ZPmSgW&BwN1Pr%6TZ zZ1$T!0ia&LnT|+5$iq@Ugplk$U+R`W8ve?^4+ZMHzfIM>$g(Ov*X0sFbB9j9WT%F{ zR9-v0(vN9CRgXD6S9*lMZ*h!2i>sZ!oPqzn1a}`m4ZIw`{4xwbI!l$lo_20O?rrbB z%jm&B@TwZWyjVm&642^DvaeXbNxj5A1k}|(1q3-ikvXD2Ft!jq!ae>!;KSv=mL^BP zu*J7Oc!u6Su&{kUzK*;<6YC&9Dh?q(YC4cUMpy#Btt}S4cKWP8^^MiOnnd?Mr^Ly; zkJaGSu$G%stve}`B;8)uupvy}9|!!?(_t`ZnO zB4y^j_lglejJ)+eQi1=zDT;%?d9;GQfeEue1^vjst!Q7qeqVDx4{j1aY+VJul%K~x zolvPi+J1#T3Kr}?i;}WGk+r8kZwC)OrCCnDpP)OwdeIlZ+Opt386YCRP+S1NBG98h zyp~Up5m3iWqi>+_c+nMW>Dh4jHiG<&*LAz<315Utn~puGIdM8 ns8QU%Qs!{K%29T`eAv0aNTfwR`;DeO!LjMR=&a5@Frk{hkI^iN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7e9c17213ddbb1525e5ae8e8e287cc42fc64dc77 GIT binary patch literal 205 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

(IBXGW!La)6-A+Q;RWkvO4#?H}iNrj=4tK&~BNn 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�(@ONr!vz*%jLJANpUZonCw!llDPl=SCeG_> z(vfZbkeOOeq5B5lZh;dm^qG!#yl=Lj`IP6$+!K(_6QReMJ@I}nIToa$pg|jbdC%{E zjB_@11*COnG3m;?vyO`PM0iY{Kb#yy2DPo)w5N*~A8C17@W1#Oo5NjfekCEA7( zQL#{wpH19vW7b`8s02#l<&+ksUT2$Nwf^g6>|)icbs3x^xDq{<}%LK0Fn-9i1>cLRD;kXo%&x zT`|{33T18I#hncja@n1ZGh#RvgqzdrAx^loH;M9z`S=?|eGr^oNW!r=iHo7&-NRus@fC9?X^d)?)>ARpWkSYO^@FMdVd#i<+k1w9>D}U4AgnUE-Ed{+qS*DL;?~@IIz@mWpWjHj~61X7|YNrk1EP zq>{ClKCM1Z-ACHPu|f*_A4MT+y)}E?oDo@R1C>dZ6!)?RYP;Ja<@{xuzKt{3DyEu>xw%s^VV9CmPH7(ql3+p_$H1^ow5N+>kAF z!@`JrP2I3gd$M@D;k%g1`*M?I`tCCf`ZCWt80Vz#(FLPf^f4_I1G5ALjN<$IFlYOU z%;2^m5e8@Zz~6hW+i0tsWofa+*42yve7*XZd+k;*I4? z`HcIr5k84o4+(>i)8~+6#YFbW)Q4fa?`KkJw36)Xvsk!P48wfWVfgu21vkfWhiZu& zF64MoOLBK?n7C4;EGrU~aV(EzR!t=T&ojAyDg2-y*gmJ95jF26;+N4%r$ z8jq;&!+z|rtEDPt+N9f8(du4)xWX)o8%q_?*m^@uH5`R5dzj7qaRKcbJ{7*#FNsHm zarn5-3T-)2Sf1WO<6?Tj?X?o(UbhmWKr=Vh@#62iC2KwHaQqCGwzXPM+T~R zuQ+yIlSq}ZL)L^8y6oGNrXBRa-qXpnLi#4XmHtJiu1>)dpR=^>yEEF@tzBBOoSsQ# zA);FfTHuS6?<4U_DuMiY9y(Q{-F>Ix7x9RDPo34TXic3z&F$9%Np;51eajseD5F>G zSu%JPgg8BB%^a}CbvgE3$txi=ygOrQb$&kTx}gdG~4x9LU+z1&hhyA86iyc;rTD zVGGabPX~{X1Rhx=DrOE8YvOLxrybsq@0kt#f%9F1`M1FFeSz@hUSw5z3W9Y*ao8ph z+k5NNbmOm7eJUEQ+++E=I2!}h6XCZffZkp{N%F1(7-^GC4iO%hZfFkwNcNybcBA^9 z4mhT?nSSJ~5<5?hc3WZBA4M}cTdMwBsP5s<^Ea7FRkN_L>pS{r&%T_d4K$LO@z=Ws zVz#*z?dyo59$_wcr#%Bb2hJ8Bh6GU07k|WsYa^)hFmt!2nBXJ-&GdPf_4G)MM7EjV z#aAi{Beil`yK5L$-J5_==3K3oze8jAH)=O`JlD!-Vel*;#Ei~BU9X8E+}Q{o&aKqI zJ-_%Y7fS#9h%Q^{Q`B`S+$fqsclmcA^tLMub52vn_Xnh#<&F#b+vtE!2KH_rjNKv= z&wqTS&>!8AIddXv)h0nTJrq3(me5)5(aa1p$Ic%f%r+YbJJk;q$@BA-+8U@`oQ0e5 zN}{goKDs((A<17Fjqg4CVE#38s-4Q+k&!3q*^BLz$?loMAB^$%oVlpo+es#&u@Ejk zczh;JOp4e`HeW{}xR%+a+P3ic>BlqP2&5*Q68e+=!z%vWy^$}&t~?z~dBJRf>fvP1 zU59a;UmVz(hZ1!=+#P6wnyEX*OiSj%Z20VTDk`24j%55m`F(|{On_@sj@(Ve7k7Q9F3vte$acCQ?+HKRy?lQrRaj z{INSoI*aOQX67=QyVwuI-#Z|nYCiRfeM^_-`e4v54Lqd5JhvQ=7~2t;%(;ZxZXc+N zPA3g{vr4j_JMR(Kf6?{l*GR*Jd9LP3_%uO<`?(IJBclhmCUx??|g#ItQ>LZgo-2FOmw#;niO zZOUFUwuq2OEMw4Zem1J_s-brKTPnOSLzz2U=tlNR5pin~T_3wc6l9p z@w4ct_hT_m&!0Xxhr>cm9p>BblGN$Nbn+#ibH^Saxd#*BbKMw`W5b}({#Md|wmIH7 z*r9(!1a+2#(f;0Lbo{S^_#LK$@Z5>GuH*piy+28FeGTn>Q%m)~9*ZM7u4pOt!ts_` z@%cKRvGR6NFO}KCnprR%{aPrEJ8RcQ$RcpyIEua(jTxi3ucV;{iw}uv#j21=?M0y}xnh|6E!uZ)DQ%Htz?8qkKW{Rq%(q=~ z^MMkA`FtDxI}jm5zSAtvbX3`8i11azq2lb1uJf5yZ#)7Q=XS+FrPDMgIEk)pI!g8m zO{A&Yl}3%8>0Wi`4)wVtMGMS&i7v*A>8D~2HgiX$Xp=0)u*3agpaFM&ng6i0g(mTi zCS_>?92y27Vf{=fJkX=~pK91^_lsPs9*N?W)ifgA4uzBEkj6*OJ)2)AXU@58%q}8> zTSKXD%nWpU-b(lQ`lvt+btIY4gvNM`ns|{;u2994qFHoDDVF4=Jz=n6Jdz}4!r`GR zO>CG?>aN}htoBF6kj*qZdl!8RO2EH0JKURFJE_yd4mAt!k-1b?Jdim-_WQK(wDkvF zX=)ThMouR6uzturYz)^A(;@TB5IB6TsT1-( zI!aP%W6{i+_Y2aI7^U`DJihsXHhp%(wHI0x_%sdA#|*)a6W;uPVMzV92f^*EGWsbo zle@5*pU;`%TtP8aln$VaeRor0wkl%eCW^UnT|^JhPoj0hFS1S0Mg0mj#HzSJ|3(f4 zYR4gi&jz20*q>FxPOL!^G(P@EYi3QuwVG+DwerEp(maay8%djXv{KUkjWkQOhBD-D z)2aS7u9mb?YEi_BI7-@ZX4Yz24QKd@oO>fb6p* zGfNYp*NyNY^cB?^7~!GWc#M30kurXqqccYixQB;0lDgSvTFYFvO?JN|egoMhIIE2^ z>{4<2#{xRsaEkV{Gh=L#D{`yDgs;|fn)3hoe0dR#2n>~6J7j<{TgT$beNQy*zEAcQ zE68VwGn58S!j41CeO4QVvB#{1^1@JPX(;2giYNBJek;cJV9yx)d;I4rL0Ws6n6Xg6 zv3(#iwl5ap2Hw!;9=)zVyVCoypH^`QGuo7}`P)y)o<|wD@-P_o?>gzp6$NydJtetG zYlMBTF~}=;Kz~Mu({h6#NH-m#x4c*Xv28GHm@(IrXR?>LU%h0DvS=_nLLCL;>D+H) zD7-JC{1zXKIyi;?*c6eY+F&@0tl=EqJoZY5!1j^A(r!E_x-t!0*IFQ#@0*!?{ysHW z8OO(!is=V==V*4HZeRaIE;pDn$r;Mp9^HiJc+L-v8AhshCiLszOsJ2qra|2QTQA4` zL|^tM1_(N^CyF{`xfjsaQ;gUs2j^%0*z=zq_S8j4*5%dEl#Xodzwk+NDtRXMcd2me z*Zx{)2Y;oz<=GOA{#|gzV-7uW3`14v7m{@|!}!D)be8O=X^V8I|Em<#?o-8`4d!SH znj-#FR_9EK9^T)d0f$ZezS>g*E4_m;=4iRN_gxy2{XQs92%yAfIsB+vNNet`r`nt$ zFmA7xjI&8Yu-g^dzwkR%CVC=n10hwLy%4;+&QFZMbd@?$qx+0L^jk#kG>#@MDUXjYw3(%Psp40gW4irN@n-XoX=`d zdu#-S=&rEON~5M%+9>DzRN%5jlJO>*k`@;WiaWKL`e)=}8apJX?ej#&fl^80uqY_= zJH_OAc4&TKhL_RVG`pSocq?DgR^?QzrQvQyKBIB3NDuQDAExz-=kbA=XQ1`6h`iiO z$d39&7r$O7v&IcHSQ0};PbT4tLLB5u*^QH;g{mzlsUt0)o~iIm?{ffdRXiu_p^CiA zzC`MZhR_IB6~!suP?(&HUgwh$^)ww@Pbxxr!g%bjamANcvJ{i%iKoe35jFK2jZU0H z--eB&Gl!eVpF7OIb-q)H&_b~`_usSjx+@kKz<+NaD(G;hTG_v(lHrc<2lMC$&j4@R zucO)f_exw`*$-awf{IO~a9v{rWUKyA{;XDEXKjZs+=JV5H3r3bCn@@F8JXOa!ClgV z{Z(aj!VXF6e~~PIKB@UK$hT$YQ*IVIas*N*uN8ya*%iTzwNWcFgtGAoi3$R#>C|eG zsnN;*-6)!*3hBv~?=*s4FBfYH=ti9%UX?`Q-!*oc$7|we_$?txDWy!6b)<5|oSD1( z#rwuJZf0K9V!>Tck?E68NhjMR?Jr%?XUjOqKbAq$*IfE9Nk@3|PE6e=5>xH3OENyi zV0WD-Y5VS`kN)gVacHFY?IrZG+*|aW=STg6(@2(Q$&Jam$Wb&w#QG|Fa%vd9mE_^y zpR4qqJBY*E`{Uq`KIr1~fsP%HBcm*R406>+evt}N?Wf{Z;0aRxz;ix}k3!?g8*;DO z$~=G;iBkR$7;Q5HefGg?M+ekdv16ma4zFY$GWYiqcfgC7A-kD(3lou&E=}zwyF~gu z1$|A+Oa>We zJm7E14; zgu50nn!Q4Z;z0=SIY}tnCDC{%?jmvyAu4+ao<%9Z_vJYeTQv?oKlG@7c)7^b%c97l z$@DXQEpyrj!@lhzot9<3@og*S#D(HC?;9m%is+toVbOCu4y%p8{9}oTJ3R=p z%I@NVy+EFEIeq-f*=L0^>UYPC>K^OzlXo;4&t*f(y^`);W3SyB_AweoAu`H@d6+X` z{Lc<{hooTMnT8?bXCP&nGNq>#Q$lPAZ44ZWBiWoG?Yn?dpWmkP|50?FaXGkc7)GTu zG(@6B(p0I?c<$?LXiu72l!l~|(o$xUL?U}+hm10^vdLa4BP)AkukuIU>;2&8t5VN> z-`91X$Kg5>8~FSGwq2U8%**HbrWvx1^8DxaN{SdAfpaJNV$4NfI%@ZZuIg7%{Lszf z^wq^8RVG{fSbtG6Kr2sJB?MxeK@1&Ct&!Z)9tSn%k^kk~bgy-0SZCWw9~K3RT+YBb z1@qaxpt`)%fiR(jPb;lQOxbkK1G}75E`D>h};A0r(Y8eMcPD#Yfe)1=(!ZcEQf%W z4b*0%N#BF4(8B)rwn>~@9yJzgAH1OZoBQDc|NJ?#BXZWaXyjR5qc_bC$Svzbr<{U_ zNB6i}6ai^{Yix+*?BU(HG~Lt(D(#=BoHH|@b%(W{k!mq|ktd8bHIV$Y0Lk0Cko)o*^sCt%E|p!d^&P**S2&5%&&9OmRyS%b zUMD%Cct;#^WPW4JRT|u>fuP;$$e!8{zv{lyt>vTe+;AaHwC8@>2W5f$0(z>WtP#^o+CO{=R0(DUVrH)sNlI^Iub(LlR2a<*GAG5i$xdDZDt1mUliS zo0CI@cG^PmmG7H%#tvAyB^KWk4T-i4frI*9I&ak-&yE&R?z2yHMRzaVffG)z9gUYm zV(e3Nh9f2~8=8fRblS84GOptg|6($&bMr@5U@|t2h!T1eeAuBAhsTTUv2Dj`@)#dZ zd%}9+!u8&8++hpN?yo5)h8a?C2J##;5l-wXSz36QcN*Ck6!nLqQpdr|Y90M)X7_tb z9UV_#FG3gYptY%@LCcsPZQV$dw@t>Pb?i@?{~zaCw~369Dd?WU?ie`@sPfr=ceEEy ztKFfSkq*>!yO6ZZ93&d)i%B_^`L{DA)UEe)%w`tBpEi4(X&*-wZroE4c}U4Gl>A6^ zf}i<8aY;=XPc1z$@ojh9>obeadnm%@0sr1{x6Au$A2@X1&Tqj`%vBAh^BMO<{+>YO zcV9{tIqY%|%*KeZo~Rvb#_or|l9BO4*@x8!1GYDkt!06DJp2~Dp7urLhpi&nJsHSe zqlE#S1-HMUg0=bDuo`Yl2S@Zn`bQhg5b+4z^-fa#vYD>EcgM_xKa{H7mz;g{Df-tS z{Js(Zo2;p@?kR_ho4*MA9b-|fdxyr@%hQgrQoQqhLbp@*PhN0~YC`^`k2) zIUBJnf#1`YGbGc3M)Qt#DJf54c6G@>WaalkCwGC>lAJN*cpSPF=U~=^|43Ug3Wt6U zN6-2T?6ud%$k$`>L@JBgeq=!Vrlo!VpX`%+?nN0fn%Ll~gQlZasGpUA^h;Ba zo)>|a%vc*XaTugRyWm(yv{FNeEeJku;F#^R3W>5`^#)r7ylK;L(aNd4{P|+L=lc0RW99%*> zThmB$aRl9u{6NOJt{Aa7m^n2OXg~Cfy(Z7;UThfJ>X}jTc_f)FpD&7X>p9bI2vD9w>Qt!s#(w2$L(HTZgBL_;3G#;RJ!}1ZPV2Iq_>^IhAr#)x;KRlR5 zu|^$KH)aBroiD(H=N^de=>pFK1CUoe6>%eFady*q{8H9{PoNy8&psgO`q~~(OkJ3B z)C12Ks^fZAS7fNLuS=>Iu20-R4g;gGYH=yy!NawrtTCgD$X9zMqL*W{Z; zMGKhuq};*2o7dFMuv)wc98S)CwP7!#f@SAUQ{?a;G$Npdj(y6fr<`+Lw>tr+)Nh4$x2XxZ()q$0j6fv!F{4#SYazqHwVSWelE< zFZ{-7i!7oZvF=b);rac;#q{$8?>1(o!MDVkd(Sx-Wv`3tgSC*JmO#VJBB8dx5ffL> zA`d@#G)Wr7Y4bb`>TZW!&fe%Mca~n;cw^q-Cn<^L10vviv6v*KA`3-2*Ch7%$2XZDEh*O{%!vLSr^bg}-5E-m({rR~Fp!DbkH%3rUgT)yiqyseAeiea+sHDZlMYsm6M9dl(RgNcE3J1yb@XWDt+N-)?(0!zjV@Fkrel8p z0eDugg$$w2Ab3M9ZaK1LBzdb}F+-t>1gJ^N}tS4@7ze&0sKA_~oG^)!o(c_~# z8HWsqL2?k)on9%Dc3fm;G5bNci~_Vx(Kv_iX!0pl+aMXPDIWZ zyS(83u4B$LAoQQZ_~0%g*Z!U!bpW_IGF zo^0D0 zFBQ)tvF-k7^yN%y&XsR86|d-=;#+ac_&b@{Y!Ed=O~md=he=_SKebkzqKDHLh^!5n z$Sdy$Q@Q2Bs`(%#s13$py%5N)+{BKz<@CYu9m!6Qz=G$4U_Mm|W#MwjO)gD;fjWc#@+4=TmrU~!$_mk3!LD22Do_4(JDzT{gLl=Hu=KTF3lAB`(gE%kD z>QYIXX0~F9JxDUhhuS(;ie5=0Fh8=IF1QRw)P!s-WKP7XSz-9GTm{O?{usAM3esby zK+97aA?q?R%(b2daR<%XX(Zki1Pk4mD`b5824&nb#q6uU=~-M7g5G+fJJr(aG;gw0 zuqWSXuj%=Z6l%(J(Z zoz4zSr~cutbhEUXlxHO4-G3T*rOx{*&OpWc)NmesJt4;vHA9Q2l;=(xvOsl%T`)!4 z7j}nV(#qwDLN~yhIipP!Kje{6hzY^{^DAg~rv%%!E|aJ~$Rnp$(%4;U3r~}1Y|c@@ z9_3Fo@8DhXQHaNhOo3^M3RDx)Ak2FzL&Z``$aHWv(vbV9fjQVSavvFHxMNs3?+3rV z5tirD(DxG$OT(>Sz%<4iO_grg?@c5I_xc)PTKRhS7Fpl zyG}e3`3=VK*`kZ9sj{4z-%W}0`d~>kGu)NuQBHfYxcc@1y)cNv74LEi^6QFd9ew=k ztA*XG`SbcB`**gDLAS?~d4^++lmF$A+t*mS^)in<;(w8Hks=aayJG7RKk^)wO%=@j z8tQ0XL z8nH_UrIm^}Br`{ONyZ1x!G-PNbARy!c-`d8jqgzCW|Wg;3_HAcY4hx0FdXM4W7Dk|GO?UP zg&WPWGp0X2mPKH_loEXUa1U@>9+ECRcU>shU-6t8&0DpL|i2(_`|69F=d{ic( z%6=;C5?`rqLZDb)-UrGtjWp%`6Kb5WkFIWK&W3guI7nTV=yLBRYtdwEAFYjlZS6wu zP6AHo@26SQ+2t!emyR6MK>PKdlpSw^Pxm^7XKypuu2Q3cXW6M)u#+zT2uI;PC-i+v zoCz~Q!PRg))1HF$KdNZ(UG9~cSVQF__m3~E5mxhz*{Lv9D7I8d%2(f^qDou5>~4de z`)z2c?RXki5{dlm4)OALC$kzKQoy2q_-A#Fp6ETK_AVMo(~iN)jDNy}Brq+$0scz;CQnGnO z0eL&=%v48GSL=mx{ZR;UiQsJMO0u`f7Sq1*ZqQ2y_xALs)3L_bGA0YZ%GJqj8|MS1 z44B_K0r&43u_IIwr_Y4r>!6opkkU@kqdZ`-tqTqL8VF^nlVW*vEG{!ArLye1=<>^q zwB1I+viT`}Sy9CQk4C7UIg5r1Igw)Wl=FY9#gmE&*u6Ag+-yvT_thHu7Sa>aGqihDa_t4=1sAp>V>DMbk8IVDvD!%UMK~o5Kbs{ zhsKU3TA}MfWsXr;v_K0DS=`(0-w%D2XCT3nv;G!6@N4Bnr0?ham~kwPeZrYL%`TYh zs_!7((}`AHFB7qre@P|g2FY!hf=gBGdf4_=7nip0Bi2!2{q8sP z^vV!?i0zP!vU@1HlD-e-$t>rdaBxt^ zJ?4`PUj0by3z~rW3eIr;+Lzob<1rz{n(Fct>F1DSj4*mk$~8S;Fd+q*PydM~_94%o z+*LG3YLNfU8&negp01|pqt@a){WLYkc6ou)3@CTZOJnQSU_@v0;N87VKwVqp-H z2F2nLdtrJOuA=-S!!SwS0ms-yY0%e*DlcZB_^yZK^P*0&$09m(nJtv+jxe{FNnLuV z!u9=FWE5Q@7sFgQ4)UUxByg(oq(hHCvB(~2L3-Pi*h!F%?tb@a;gk-lcV%bhUo#Y6 zZ>R67uIzbsq>dB*nGYCI06JV1(LKoLc^oruI2S z`CiM!{r)G(;@B&3U`SV#tv*3p*HuuFoGUGRp~W7gFT$_l38nTN42Oz)6w!AIMy~7& zYqut0EFFz{jk7dloE*P6{dnw{Ii9Wz&PPCQ1U*k+r+9-c%C#iO+`67(v)MP_ zQcEx9GY6S@Ye6AVXbbN_K0gHR7e>+^+Yjt9+)V4eIdd5Pj;@^=hP;9?B0WhP)4R%x zPobkA*G-zzco(q1cMP6yDW|)m?P%Dq6Xesb2vg_&xV(h@;<1_dJy{E*iyzRF!F|y$ zHdg!!q$X5S-m=4}+-?=r)cky8{b==3cH)sC2<6k3l4LEC{PcIiWcs66ebv(I)ee2+q?(*-3Bm^3unP zhjMsdnZOPy-Vt!#QfsL_Tsq#9$NopOGTs|)hI~hB91Y#5S2XBfAu%S zVrzy!vG%AB8HB$DYB*FK!!8U<1ekTFTZ?tkO|~cAZO}!9@ooBVc?43^JWycHZ<3-^ zdQvGvW;vhuZB$Il@+!&ZsTO9lzb~o61x?4apckl!7wccp*q%QqxO+dC>|};%z)&3i z*Fy}H(n3JPB<{41p=F=mi&E1Rd|1Lf#p_+sJbDBSOC|~bJux&}t&|oXoGk|Me(E-J z1@D%s($KcW5-0OOWE#$;&wmqO|EB;i;*N=hU-R)`a}bhuafa&Yd#cY|Li)RsAS;(m z>Zi|;{h%l^+&U0ubDilx{0DJFmE9i~N+s|1?518QLJCay9;G0$D@Osp5JnZ-hE z8i1}hxlg;eNxbzpr6)g>NXFKMJqW8w=iPn>$M_*AOJ*)Gd#sB3zoGFz=F`_F3rT)m zAJ{x8ByZOg=tS2Xb0H8DD(mcA70pekc5p6B{uRZ63HbN4n? z7O6-c_v?q50o^!H^_zO`O~h|zvQ6qW7{hi;(eCc=X``bKR)#pE+-nkE-W_Vc%s&RL z{?=H>@l$0722(Mle()Ajp=!j@6!XI`aX)C=E}Gj ze2!{kUEwi#F!W?}B=Ir%&?s?(!iS#N+Zv13;N$eJwJ*K??uo=lpD4s^B3{1o!_E0? zM4?3%|2>5a-YlZ_jrn|6Zy@&-Rl?WbkA}|pLZ4>jLVxWCx_+;#xHNtRO*DEhjArT3 zlHW3T`o$Py<<)V;iv21^uc_g!G*;{uP@cAuM#c4pu4*i_{_x&hWjCLJ_r?63w@7oO zpXgJ4iq3pcC*>`g)ZX6^FXpS`yuB3WHnThSQ7BZI&%WGB3wQpSiD~7gNG{whOtmer zPu&?y0{MIMi{}XA+#UXzJ`fMT55u^QFeIb^-#U_%fblG5-ug6CF?-AO~o3o9oq}O+7Udk`#7HLzHL7QZZQJvVy_XOXrbE!o`4RO=W zpfw~Cv1W6G+E-upz<;0#-x9Ip1<#cd`_uUQ-4LZbfiCBT(?kydHwpn_S)b8(-N32}M&PaB0j(NbDfm!6WG#~D9<)p-J z%)qDsOk`I1fwVy|O*u_T73tJH*NXBb@tCU-2;D0a@on@l_T#>#I(BuMRt>^`Gi~vQ zKZlwVIL8+-jaGG26SsqVQ`@foc$yrBu3Nx-10rkd5p1Hy1yr+|Czp{VULjB1s`L2IU= zxNe)n5<=f#0?7CF+oUp0~~{dNky4N7!;P65sB)lC0X<#AM<-Ebp@(5)10 z{L|$GHrCHO|Y3A6asfUj|A3Pkz zZ-ZY8#VuRrU-LcU>w<+eVN*IROE^ooRt-0&+d+2eS86+CfjOHxX>|5;l24k*-iL9t z>+w(&-`0kOMV;^-KU-WMYK_3ncg6a1?(hjM!0~budhk2~yY}(^cJm54=W0!njr{dW z0&vQrf3zqB$))61%^;`TuSBZ@6d>$UMHP{;EBA#Ee!zN=VTD>C(?KSM4JClOf!t~#X05pOAM<&ZE)qrC(`nA7!EpNhg*12?P`m35-!md$axzwY zzuy)8jTB-0dq0)zO67iV77|xhv_LM>!&)utHmC-tJ0Bq$13>Qy@ z?}R%fYw(|#^3WUXq}xl9U_DlWyqgx${WHs{PDTcv{Sq*GIkPb+22Wp4g4rc?*vBxh z_4Od^9Ic7HRVI|X_9JP%)TXHpDyZqVOj2QcLA>OD=dL^hsB+I^rHKmppV~&#H#kA< zas>1Oj*!5qxj*{D7(u+9Wr{8!X)V)nfHt>vSly9VQA&Pisyhb>ODA10! z2SPvd2r2wAz=0M!8hpDe6)HO8kdGyfo#I{2^irB1SxGzFDrx`em1JI(h`VC%Ylf| zEE1nL`#`QC4KFXmv8Tcb^XJQ=pUxvO&$t`tU_T_tvHx+^Bl=$Jg9|FR$n)G;>hahE zw+=9OcfJPn1ANIhsDj>(dP`qzJkWHUy9zw7TKDia@03kY9o`=s2K2$~G0e1Qcg>H_ z%Z2fqd-QmE7fdj;#dMvE^uc=utqNMntk*&K6*B?;W1LWTeF&Lpda}o@Qe5t`l4Q1M zVTxi6eOI|nSv!|fLxl>q82Izs`4_1dyrFNFeNawUOf|gYH_*q!DzLKAg)S6CK_|S2=Ny{h{RlER^mpsmPJA zC%B0nzDxYz^K>3f$)8GVmCVt2A_XbEupBa?$Chh^46~$;fL8tx!qCn-k3Qve3Y$ce4E183Uh|jWnt=5ij%|P;q|; zrSj+1rEYE*J9#UqSN#8G$#49#Zc97#gJ4pPY*3Q&JXtydyZD z&JLf8jk*pu`*J=thdtcPRHrwbx2RlC4F&qNZ)#uCvi?V#KKo+vS z#f}j*obza<+B@s1mqIe`Zn`Z3+!v67%0qH`It|ae#ZkM8Ed_RtXr>c7zCqXI`~ zN5H9-olGK{zU8DK|5rS;PbA{Oz1vhW&>9V<`^f6j0(#Dz>APDwcNnAq-8O$*T*h4P zchuG!TztIrKVx6&VU>4S7=wjA>Z)`5UPx~%=;r_7h zB*i((e+!y8M-T+>4}F=tDMKS4?5D^-3Fz-2=MWb$jV9hOfl_fJJ(TMpi{KyR^jDEW z2M436$c={LisX0jcoz7(nI2yuRPvfl10mc6Ow?&IJ`BzPXXPm5%yFXDb>}qp@F?oJMzHbcZ@%kA#QNi zsIBuZ?bC_HhBP^L-&1GQ!(I!XF;7s2(Z?b>d2=+9rKaFW^F8tK716$f!*Pbsn8Y** zUCeHwB<7dp{f@z8&HE%RjKpc4U*FLe@mfy?ExB^n2E(c<51Q9Skif02`da&Q+d1&%B*eiH7Ol`_>E}T zXA~CYsp83kB&^-5N*}MUp>>IWNNL(zv1+UZdMv0B&v?FjYg!#e{nrbc$Juj~>W{}I znuxhJ2EGa%RCOho&RCAb-f8YA)a9&cxfdRuNvDI2h{rwJzsQ?v|MM?nJ7ABSBnZ;WDq_s7iXl7 z(#&LKoLmyYoy^^Ia^*aS)y>T4UDXwP?l~hO=!@jE_hUK~JrJr+S~!rhfXKQ^=r|@L zeEu#<)I3YNQ6A7;KZZIxrRYWpcMjj>GK*>~qEGlC&A1;dr3|s-v@c4Iz82qym58?w zw^P*ISbCV&ALa*L5W77O)(1mzKYk$Y-PVAKxf66eb7;rN1Sp*xhWR~$F>BR$49rsz zbZITMu5d&3@@z7jsz|AhQ)us#W0W#eoBXEgbTfCfs8X=R9IInOr{^RZ_{)kM#}r`k_d+u7?u)Pwnz-956Y@XOv3H*i zTuMgZz76-Ey0l9+1~<}@Rn-!$YPWe z%QR-c^Eleu46L%;N0U1r()~L2vpm>NY9mHsYnS(AsE~_yyBkQ+v4&1svnHj4M` z(phtu&zZB#teh3fJh_L|c5e`NH1nBvX_jQ(1v%{ZNy3jWaiGqw*t<2EQtuC^bhq;k z&V7l#ay~wO%`NH{$l2Y^+PE>T3zfRe6_5XU2_q{h$h&$`+VFW~|8*4&{3?UVw_K>~ z=~e11{y_8NRIvYwA!@z`@cni??DU+mqsItb%o>k>ry|%7mLPU}`JjE^NNk**Nega7 zlT}d@7ln;l6^FR zv({$pb{xMi4~w)?kn7bOMHWIVOx7lAXMu~aNAL_;3JQPS*t>3pOIO#@4ig{v?7vKL z$IUUP;}+RAYErMX9%TNYo;v0*AE&~HY7VBL?Cl8J+BFV^7O!cajSPm@zo1>b?=@tu zRPWkuXg`vS#D6KsUVVg`-trymeW=)y8$}JHzR)puVc7fYGXB?Z zic;%=f7eQBLWl$GI5%B*-w-`ZVa=Gk>bj6kL17j4sX@X$~4m#-GBmbNNv0 zs`w)YeVzcH(@yxl&=#4JB;C)9cPwAX=Tta7;&;mVQ&u9x-v<*0b;A*WtRd;GmJe`{!8fc=k4SkvqfmQ{HE`@?4~uE zMvJ}ms3`cP7=Er@j96_#=pBHFElX+CRtwz7jYdXL0sAWNh@Hlq6;zR6&Cq+o>;%6r zcMry>#dG*D?TflEQ?YNwT#9dLp`dck?kvk9i@Bx{S90j(O(S|$ahJBAo523Ku6C}DxEC)Ln~x!#kbdH z2#Fhx?`jJ4D%DEjZZ?K4ac4!MYKj$3YG{^Hz@JA-=yQK6?k?KzaA98 zxa5tBI8~w7Kb=uaGqB>n#iIK7WV&)8AM)M8(5j||>qCmD8?(WE;RWembu@RuLospt zKk@tS5bSkqrhC32m^#l8>9@a7-rgE=D4B*cJA>$9@O|3wR}Ye)Wb83eqUQmB$?Eq? zx;=ZAQpr6TcIwhj0!m+F-Ua@Y5mc}9$!beyC_k##1Vze z$<^GEfX}j9#E}&*#n8VxP(5o#ceM#wUKUVa<3*#I_Ruz~kF;jad)o1R0o~9yMA7{q zI6LcO{_q~~aU6yGS+7OR94Dl@ouGb8;&5iI32xPVq4LmH`sHFphc0+x|6D;{iaY`3flNzbSSAu^>OGJdW1arF1rqSM|bcA;%K0iZ{{lE~5x2Tb__g^~A z8F)X-O6oRZ51E{Fp?-gsIQZ_VpssVGv9hg)nDb%_DNnpjvGU`|{Z0^C%NNj?gO0R5 zQ^I`;W(pb2rW(r#tXjZqWZpgAGUU8>)*sq=CIoRw{IxuqOZ5e22p;?&U72=H6gM#s z`f((ncZFU*`Ah#Y_|4&Gi`*BL^zUabG=`YsgG?Ws-RMWwXC{&!XV+{WMA5p}yzBkc z7x}?HXnSIW{9IG4nKe#~Oc_o2_S~y&h=Sfv4T?$W0oer}WOSlb6z5h^y-ozar6l0v ztLt>!Dg%2hm9QwCe}?$aOeJZ_a$O%Bm^K7w2ei@koNn-%yMVUG2eM=DHH9sHO!kKF zX^>K1{9(R<5}ze;HtsZwXXDe>E0f0NG_q4WMfdZp>B^?>RD7q5CQZLeyN1jryV_zh z?Jgq@JUc_q+sEU6tro4B?1m%D8^x7cJ)}e)mnf|~DRlJX#FRWWL^9{Vr0G8CruaxM zkG)H$KX0H-{ypjW*H3gdcM^FRyy9Id`^h=8b~SP}ef!oE)K-Ke<*^bTDvzT*D;Cn0%Y>~<1XlK4O7$LQ@K^9hNy0s{h;yJz zri9@u7fJpyaLC7%nTvOKu}}QB#AjlssAXQvp(lB0FzJC#BONMnH>RgYIM>y#jbK-K zgkCuA(9AoJkpABI6>*K6^d=)IGlo;qA2>Gr7FTVXM+3{;XRU7tZMjJbV(}R&$AB53c6G&f_iby$v{+c-Ej!lQ} z@k7))zB@EMR+H`a#WZw}2d%hbfp1HHQtA9Rv_Z*Igp^s)qm{-y^K|EZ=MIM>-Z#Ye zMek|2f)AcaAE0{^F3{Uu?^(00&YspF$gNl|(UKZV&BOIzf5eR*95EvQKl#|bPag%m zR~UbAD`oUk!}B+KGB!(sQ!GE8e5wnO{S0DON&cgy^e)~!d%ybFZ-An^CPf(L9 za|1SX#g)7aq0luFug-0yX%AZ{=juSn%vmN{pB<)D{TwXYW`xUhRH%+EA&J=<^7mn{ znJY8Ei`%HIyB3zriJ-4?K0y7p$t^N~lw9b&%sABPduk?p!Qz+Z(D7{>$g**08Zopn)wK*xjB4MU{!T@@Kwin##--S)P$>jl=1g zA$T%P1FHv)#iZyA{2uH^OAdFCvH1z{F)P*42KdO#ZzJEPGBD@0L*KClAEyhr`n~ z68qm7q4-fcsehPHL6r)#VU99m7a0 z=Nueydnf#?!*L@vL|FLzr1L7ns8GsBBq12G$Ia;VeJMOSRYs1SMK)G^L%IqM_UjUg zMbMrUa^Esf9CR9pNZCZ@G=p@~(xLgiFVy#Lr3?H%@UUcdeS|(jtp_4}F`t|8#I8nn zn9QgqP70wm*nk2C*hBtC0`&JtBceMRK@t=oY0#I19^L9$2+20SnH{B86Gl`>ms4+qhlQkd?za zPJ4U|ze`6FvZ*?=2RsM6bDxWOT1VZmZq8zotU0h&iuKuN5mpej80!&RisE`7CrEhtVbR=yTN`ZNoRy!B>Hpv|t}; z9%5G$vlJ_0xUaD49$ky%yv_M#LS5et?J82}*ky!JWqAZ8Z=*5`Psu&KousB-N8|q< z;+@TL(x2zZGu}6JdAc-yO)|iiN_pmJSJ3Hy%+Zl@BU$!4M!L7Kr>~yU^pYrd(QpdB za*6zSFQ4SwNW&W0IW@oxn!|l@`<6SMlud=xF}?>k*kJ2w@>pt4-UVGL zKf@gNqaV_q-IY`|DvwB30x9i}qE)MuY|fmZb(_Yb+S&{&ZeFJ#p7{jyI!qZ`c<-go zdknRB%J=j4KW-!+bEDpk;Q@{An)U+IR89sRr3h4QYc zz`dIuUN)Lw#)^|-RdgtKhQ>4Jek>N9mSLZR9A@{)M#p+>oL<>Ro!^g2v`2Vhk(C#Q z@I1FN-H@16NyqhzB@bV+lTM~qa@e%i;l=24^fz$5h;p6|LpNK@ad#5k-`${RL&Gp9 zi!;&cvuLyHW^v`z01S~+=8RnvpD*%|8MuekF%deo-{|54ZT{@jC;y`k)S@~OPRG|! zj}`;rmG~dIv~%WcVNc2BCkb@^auQBFdLfj;95Hib7<@Tn5gKj@dv-=Fu=qsL?BeR2 zF#!55OQ|~5+hQ@ri(}$)RBv(h#ZdHfSx8Ns6+8Vj z3;V+@$UtK%992riQb)p?z6HYVQyA*Mk0FZ}h4f)*AdV@PlaJ3!N5)OXs)ux^u`l( z=z0zeLkyt)#Tm&PL&PdO=4c06(X_HBw5-7stE-s_P?#uQ^3RAr?}62KFbBZvBps<> z7wEqL?6jFh$5NT8bSw(jhV-J?SKH|42OA_0@TN7_2ICFC`@+M4DTAMo#8(QgUlhp<|gI zw7M7}en$v*c=t&hH@qXC{7@X37>~;CGr52JkY3e0aCSaX1j!D;x0taAvYsIPO|-?@ zW8AYfze5!Tv#ELkpH=)h_^SQ{1uWZ65mU6Vs!k4WDSgQ6yS4bRB^~BVxHC~Q6l3Ba zi;v!S=+FB&T3Bw4x>aLwwO9|4+#$4X_Mizi1ZD`CSW^^?8izU-!qjca$EDNjMdpE5 zq<1Qo*~Sj&9lV*oykpjUeGCly6D%J@V!#VuT0WR_dOEH2-zs*uI#tjXZ8xa&yDAAD zJ{4|~5R{oqL;k`z$mccE+Kr9Ww#JNfx9j0ft}7(5DOi}GjJO$fRK33dDKA{mr7@K* z&U;3a?`)y&S7(Wi<i>>A{I_MNSR4DDq<0L1(~w}SUX*~{ z6S|;&xjydJc7b*FaP0glhgRt_;T)%g#PORbP{slgvz}1HMqM#%`$%kyD!}P);}O0s z4Sm4<+F>#9-d{oQ?G#`b9e_1oc`s2ko%6Fn_`22<>bYGIUKd1%`RAd<>^GHdnIih6 z>7f2X7zQ{dO4hEg5i5UKq9ZjKCjX7Y^VajEvFjrh-3meF?i3`MrQknzdyG33g$pM7 zkk6# zb%$ZAdmxo$h6(yDjRz&0Y5!Ii8X1&Hcgk&16EO;L8e6D##025@>L7`cJ+ZoJ6@?!j zEA*}Ah{??7{`n|b)IGmSCr&8i(DU^)!EB@`yK#eJx#QB@{T`{g@O;N+1KF@=qqCrm zGCd`9`O<3nE;Q38XLe?;vw)?;MC!tB zjEV?PTwD=DE7{xUJX3|-y0LHd=T5Sg9}2lY)0hvo-`%h1BL$eqP~?zyI(IAzqmr#4 z)p3@-BvjJAgl5v6X@tyuXDGg~JJdCuq3nG|D0Ll*IT~+h*iLqR7O>0BF9I_kUzf~X zF$kGkm}S-|P4`2psd~vqs;TLLbndZv{Rk6Dhs(r&ZBAHww*>lMXx8de!Yvk7%BT}0E2z+i>*K;xqp2^@82b@=_Z>2tSFN%VZJ1Hg3 z4n9u#7|JfB&alZ8n(HUd?ClUDk3HkRZ0N+K^Wtae82nf70Q;cn;zyG#Z4LLuB|}~6 zCdF*c`BRV7u9y2TRV0<79572r($CMFFG<_ z9f}?+g}mc8>Uq2eT(&%=ohNie_g^lUw9Xa{wj*)aAqSJ9LeRx@JH2OS-*NUk#`k0{ zkIN8L3}XNG*KVAHW-j98)zpJ$h<>ZNFP5T(P&`yF)&6()9XM_Daw$lE* zLTnCJp#NOU>DBWM^lxXG=>4=e?sA@G$m>NyivNs_v(nM$!F7CL71xr(pH4|1-HJVN6^b^WW-ea9Tea6Y`VHUrod+j|uc( zgcVxu^WKEd&5G{*aBOxEPI%iPdA5v@m34)Z?^t29;xrkDO{K9J1j8-GIKy|#WwU?N zEUyW0Qd&b&9}CH^VS!|ipB7^8sUpuL9P;x|)2JUlsBa8_jFm2q&HP1Jb%n--4~6`; zr*v|;9}?6DLUAX%dJm7l@^K4<{uX9)eDlKA#Bw?{Z!3+G`9yEFMZo&bC@88qAa%!X zN|L`tJNK@lvho1@le30j&=lCLo<R(6}^g2!>dMl%R{8hSY=u599#?Wg3^V?rgsk0qzyk{>)OKV}}GG~l7 zFQs8UPSB+@J_!15k7vu-HNUejb(LT4-rs2=7IdiLLDPSt{vq$FwI(Cpy$kAxJHse# z5(IZCmUmr785?#=h7GaAlSOePrB{sJ{Oz3N;euoQu77#ufViLRE~G3T(0da*ocArK z*2UeZ^OrWsCT3u4kT$|h=ZHs1YbEoq@^@av9-VjeC6OyM5xBEE+->xsCmoIA15e1Z zn$OI4?Qr9k3-%n3ALxrsALuG|d4Wg{?k z1!vFd`%v2SAk6XUib1a}QLJ}?!g?go5ccvFs{=iBoYDIHF-do6rgIUFwBDwhd+g2( zW^iTT*sgjyU7?F6O;)DH`bxr@7tsQCQV}GLN=_%bYfm$a%HgJN!Po?Lf*YBjE4$QJfkZ zNL80ZFht)MjY=Mv?5%?*|6bAPXJhGCxhYcaCCrEGj%7vx z^wdO$^RVnd@IOVPQ@;@X_Tg@n3>323McAV0LhjRL+BLSB?oPGC_ls-936uNu{SQz) z=DSd~TTLs6zMvy-TUuJq3D?-%-?88M4SMqSkeZ$UkZY7nLd+xm^+GF8!gqCpDmUXD6*U zx257<0!{-4VgW-&vestftLHX4;b)0$cX_^8VT_YoY?0k*jd^=230rirw(Ku?@_XQ3 z6W=o~1mecZp3HjsM1Rjaz(5Wbk z#_$+nu_c|{J$KP1rON0in`a=xg5J)^JE<&%A> zzEpz2%sDe2$=sx!&dhz?Nj*cOP?a~CR=nO#h5^i-u~DEi33^!3K;p~LN3`;v6dcpW zQI6gcIyPLN`rR9hvmbmYvEv&pKmU`AmMo$Z+`rY6TS1vNA8ERdJI3>TLdtvwEjiE+ z(cX$!Z1s|M7d@f|&PgAX-X)}K8pXcLnYhl(+f+TW&CA8qQ9WECu zVDa2;xclQYIggt|7Y1q2{70G?sxD#H)-MW3_dycp0j3>F60Nh?72r0Ov*tON`*H|s zoiCB)GxnwS|4UC>i+HETXHniag|A{~>2l6QEYX7M<}39GcgTYP@k+^XQ zeK#0M4o~`1!0jSD%Nqfy!9mcQTTer|qkcDX92_b;>0MqC(w(g^P=^rZJCQ;~0Lhu^ zVNk&f(ebB0&Xh!pLnTvC{=ACvR==VjYUR{cx0TMw_e0vxXw=_qrW)-!F^@Fh6{C%_ zE$2)1|%5HG(Ylau4 zyQ%8?C-Iyad8>0zh z4W_zI7%~NOi%QT-f%E)HrWCVTk)nSvb4#5wfR7vy8nu8tdiO&w)ggFQB#jOKhQZN% zAJz4FEtxdK9JQ;`sMiqAla2XH8-Elcf7LGX4SGlqL+bc<-vPsad0=N)e-x&Nz(1iF z_kKxJN;vy03igW5t36R(>4vdGa_DTHA7-O=0tfa%^=)J? zV+3~&Vx93orhx|D9Ycy|C3yc{O8iQ6qX`Pkq^N8c%GT@_e>7Ws9VNqD&{8sfa-15b zmeCGo_LrNf(8x<+P@iFohzt?ApzxqLd^ zNqf!g2MH!U&_q)w;ZwJ7!iH8!ERA|`Ug?&2d2}+;c4s5{kv}$m`NU`7#Uu$Z$2CiB z46L6=vip)~!gEjIwk{BrA;xs1_b_UFxP~6Neii)^ncH$V74HvL&>*YLWVX-|)$Jxs zI=({N_UED__yJ9yWrUx%caxBCulcDzt(<#Y9KAGM?9u%v%#FNg#LH|n+H`}WS3bTp zEvJyUBAWX75xwB-$227!OxmA^C+{Ypj&q=s46|XNeM%U<2o_B-56S-@bC0)Or^d({ zNrJg7JS?M0!(j+ImYk!ouf>>IHeTFZ+Kbxvt)PD&2cfAxit^Eqy3D||G(Lhn>>(eZ1hILY(X`>FL5SNf6$lv^Mui97PM=h39y(a7-` z0quxa6#3B}J<_j;i7|b!A-kRo>i3ac#YQ@n=!0_>%qhE<5Bq%vm=x-aJ0Ex#^+zBf zEfE1%Q!!wjCFV*$rZd_ZaC~GA#b-Ck=-+9gNls8ttdU%{o`eg03|>C<69qg>Mo~;} z$o-CnjYce%zcPVm;dHvY=aX<7I}zHggJ|H%(Ri!xg?oOB#31#NP_{coGoC2W|M_4F zBk$45{wIa`f~OR2sl%)zUo6*eBQ4uvioA1$R@JbF$Z#NHE=A(Yfof8jvW}KrAHzAZ zFQhi&0?EYurB_Mau?;o!$Lz9LP~Snra|~gx#~$I2zi0%{uq~$;;9z(Lx*d8(i#yf` z&r91WXB@j>3c_Ho=8Q7_cJ>~`UMKdk*_v$o6J-wNIKyu+vDB`xyr5n4(!dd02I8~v98dL85&)&*^$1t=m z=!LV&e@S}E8d`R~1fE?bxK`m!8vJKe2EC!fDathDcLsD58|ihaf+TnNaSEJ}#T=Lm z6kS__@^}-Jtk58-75#8pk_5l_YHB%Z4-csjk;t?7-ycGdyjBUirw>uZrwDdCII@Rq z1P-ZWLWXxEE_*_mGno(5eYMma(L!f!yCSvQ5K6b?^Y5FlWOIVg2Cj}s{d14z^ZsGd z()&~=0j}3?B(t|aCD*g&k*RqX8eil^bLRTsVAd$q9MFM0=cQ-g7>lkMIat5 z02#Bmm+GyA75^rpd*djYwm*XB{k+rYvs0YW902+18zTLJ70kHk5sszvO~k!V8);^_J1lv}a7dx2D4nv5RJ_+xmP-)g?BqF5@>A>x zb%VXTIc~=lBJf5HMSA`dY{`V!L7fW-0gEua8lXDR--_kBK66es>s7#{8+9$S=kKe%HQ<#?J-t zzn&`2F{|r(S0y~kkVEF)c)Xcch&$aDGWXFL=Qp^cC{GpD9}3{}t$^=6`)Jwyu@v~m z6Cbu;qj#nKgypGQR6X#t__}Ai=(AwIn5$4pBMO=2HzI>3JP5!Zdq-@X=Lc~^n|ohl zU>E#e?DmSn4L$C3HZuQj!8%Ea&Le91WQ?Rfis%?QpLS2w6z`J8Q_Ip_lK*u0xgXXA zEwi|9WVVG;ay%*1sg+*(FkjdGDg|i%qBk=Z(XF$Fly9Mh<*h!PZ%@RIxEaFzUO!6W ze1Xb~r_`%R3bz`Qd9FPGUz^X+0`_9fcx;Df&E*o;6DE9yGR9%E7FzZ}8xMb};`19D zsLCv+Zci+jEnEUc(?#@S$ud$sqm1X89n`sLp}VQ+D!R5u4M#MRskfOQZO}`_yu&V- zXnK%Jx0q6nOE3Jl!VXco-AFyNk$N+SJ`>){JROS%I-XcsHx6$HD`S}H zBgvn1Cp>zg4F^LRROA|>Mb8<>`YX}2*{XP*l?26)QxN`^Io5S2sl@!Ec)en`*sv@P z{uRs~o|Ogl@)&$}V%L?29q#8iq2={E$&7{HX;a}IdbQpWvtOFwiB~ACSjBT3pKLh# zPJ-sk7c@yO9qA#VWFkKtN0v&c&u23@_s-{hX&vo$wM1vib2=1wpQIN8K}Je=^}7JI zmyN}blT+~GeJrz&_et!M+G!}qU&o{m7we}>VfmJ4wEChdv)COeHD8-b9=22VRpzh0 z{Yj_G8bwOfHJYd$PT^UHMQdsm=b3yV-P0BMjgI(=ZsJbA>ylYdoKWFmBmOJn9+Ap4 zsysabPZATc{GSzllo=)hj|b4>)m8LVB@n;sv?=M^I!ezlgLXGh_tppOxGfFCqlySr zK4nJVMN3@Et)PeQVKCN+Apey|*|)Thz9lk8+h!AuQSXpMoY6*H=0NgM+fTRaYRS9a z6{wv~xf)RjnX^}>k(o9MIeeTmPV&*HZiXC%r;)4JR7)O~;g+!l66`7P$l zCVL^eBULhMPY=Z3P{PoHSa$jNL+1KGT+UCY@zZ4_v&-0RcHkOWN6!?sR_S;)i8Ho| zI#6EVg}o!0i`{HOir=1y=X<5$^XWU?2=yc9LBHtZ+Em(;ewHjYd68*)7mSdKz>fxR zx<5Stx7MVJ`*!^?y2%g*9^Da@n!q`#W-{H|NiWwh52mXYZfs{(eyKk)hAW~@)fuXD z2EyL+JgL5JU2d$HlBzuV@&zK>~G269Pd9=LAjw;8W5SsR1DWY;Y zUC|?$TQk$)nmhSFG^E4x2GWh1rzA7Bg5J;S2}jF5>pz zJ__q>ams8BB{*~T*{Ul__;)=b^*^!dd^KI)9e@$t87AR~AXI(>lxI?4EXNSL3A3lZ#Eng#96<-3E`>M!Vx0sH93u9+R zu*gXoEOO1A#93)WI3X89_06C$I1KLL6A(4gOq5rt;ZfHxa_z@1L)BR7@9{%o?cj@^ z3Xj~&`&-cl*H>a+JZG+gUeevX)q;*!&CcOuH;o>I#K3&`nLknTAX#I4v(Eu3wVRh}j6nr4v7%}o?w;3(`Sa#vM0 z7>~!7(TCD(^gJ?61Wg)^jk7<|waO3F;S-N#J-XoOW?THRm!oe@JS%83z~jPZ`gr6k zmF{n%F4x|=Y#Pm8kVDGI{hoq{-Q%(Cxi6kPV<%Sh8oF)smC`Ef=!E;+>)wlJ&#X}OGY(Q8tx0pvDA7agp%7+b83ZNqj)>XF?0~5)Xr{NNTSdd$RH!I0 ze~^1nO*^dcw7(428=9j2bOwq-r7$(d7zb!KpRZNns`Q5XPGz!I1Evqz ze=&gXJj&mx=ktNIbb264`HW@qHy?*;i*THOmi=_@lg3kRe7^mSa>nR0_p1oYHm#*INvP*#Gx zsfrjdd)m6@sqA5Kc1^$Z6c=5xJhq^Nysv)A8y*`i%Gxg=n4D1{>w^%%CjP| z?)*to98^JcO&1$Z*dXW)J13ph=+;JgC|&BHsA_2neY>Be?zm7;RiW6V*F^3Kec}0S zty{yqPRWZ;vX~Y;2(n)k;mGVLDd{Vc0!c0uHpk=9=9}WW7IOhAE$A$>t-af4(6zqa z=#w>Ayoyo6lJYp(lK+abp8rQ54aU-=0o#OYRv=wD>rOEjlj($Gt;pYVlv=*@!Q0-U z*ez)yPwuIIxZOgL|Hi_4`YBp>qaQkx8%SR^9TjJC(DI~(rnGa%a&`e$MqLoshDyk^ zIsvs+F_8ONK}Gqwkk(QGosJY!_Eyn1sczIR(H90Qw6LnCnvxE0rdhqik^jb!d2yP2 z$8;xZlk8dChqMQn;^~!coFkQnxu_v~KPR;E+^A`H30BDR zPH&b2_l){r)uI4|mA@xRlLuy`7m(-BWXyWyiiJAtMmpRT>uw()+l{Ks0ntRK*huYJ z;WRp^nwDGUqjk7G>OM+n6*POb9kT<|M7nJ%W}b0|PLMM7U)q!TN(X6F!DVtd z5=o)TMRY8}Ll}>9W=8WGO41&Jq?*Sx_Gx$KQK{k$=Yo^2J}1>5+><$_L!K{Y$s z^O~~VS8PefRNHZo+Bq3FvQ=sDo-6e6TM^z}^%Luc$>90BoisNwm1LEY@TJ-rmmUO) zf)(CyP`^kO(e2{6`4o!(l0kM|TqxdYCKYMhV|B10cJ}Z@AbS(5gb9>56O$g@N%IS| zU_J8%o%rlR0k%AwzLtsFrXutnVusi8*_f6>dj6=JbbmI)9H<6DZ25kz8*bqK_AQW6$$U@nJtRj7RyyENu+@ zOg~V&a|bEu2O~Z-p0rj6V^*)jV%_xHqRl-UioYJxgmZa#HLe&%l`py1sR-j6oOj9_ zgK@{NvfI9hzKjl}w>^z9F;N~@ChAi(|9rgsgK?*>CuTLK)39b|$k`Xr%#v(et8F2z z&k|@>ZKh35d)+Nw%HvS)Ns>jW0o44X7^hT<>H5jb6m*>U`txiUZ5@4@!p`Z!N6er*cI>;E!Lzn2+ECo< z3Y{P9VCv%x|LxnvrpI%|7pLJkyk$N4suW`9V$KFU8%GsH#ZRP^OOk52cZ-tx?Lex0&3hyk0AVhgbZ` zD=HG%&I_o6S%yCf9q_Q%c9MMCObW$=VQ{OB!X8%Am8}KT&0e5do%0!c)!{^r@ZRB# z=!Z?zSeJ%xvtux=^bK8Fy_;qW-u1FeL1zMcrk_5hj)z%@e3VSbz@B<}dGx(yfZ|Br zsh&?l@oqo3M#>;nQiR$ZE2O5ezt1fa`}R8G{h3;_j|s!>Yq?N=Hk_99J}0T>-k9mU zqY`Zuc3^McE8>);-6j6*bZvD!d~pr1w=)X zqj*gPt#c)J?Mo<`I|0foq*3)OgE`E1c#S(qy_JU|zD7n!mRMo%7#UhJVU_6d_cyr>=3Uv@7@WEg2C3)V z3GXu1t*uM5WHU4Mtm-n+rN0J6Gxy}{##UMr>4MR&7N|osi@cBWP*v`MPb%)n zl%7Th{9?`$ZTzhcg$iyV#jv#OdN9_J^>);Lb0)&G!nEUu6`NmWwg$EG;p0 zf!vmtyr|V+Px55Q%uvFKU}@o*X@dFF+9|wT3IWUGF)ix?&CT0IyG!k`YN`Rbd-X@d zr(v+I*dxr&y_M9D*(Q`EVQ4?DLMv97(d_MM&~394)0Hk$%B)sWeE3pQs9=MHEkj_f zqJX#70XQFFk71)s=96I}2tzYAVnWKU2) zEt&0_2n&A|gs#3p**XiTj5*8Eh7tJCwNAWU5l+jd<-p;47v@shqmg%q2I>>&=4EH( zIJ(2iCJ&XHbFiY&8g5f#@u(a35o(VzuHmM*%J0qQb%NeZGoy6}!Hx`T91T7wPBSB7 zM%-lVb#UgHW-lC^6o%{%y=b-cF!VSzk&24`kZo@*=ue2k@Ah>hx8xJK&9lL*d?2?i zhx2&hSpGx-{TKP+_8-y67G+ z2alTfblT4g+uGuwsF{eZnp@}q&$zPx+fFIGPdIqZ5ot+B$uVj$-c+PBT~!9=eO>AM zn4`?!4@1<3{-WdbQ7XI4{3+K4DpUI-c6h|XD&jBA9>70`(*{svS^lkfp zR?VO6A~@e<9xJ}c|B@W`4kM2jezd^%1zlc|NjLpZ)3C~)RCB)sUmQMDT-zYj*BN5_ zD_NwdPh~HPEy>D1r)?Kz(#no;)GRULxr7OQx0J!j%E#1}7K5S-n<=N;6l66QLH~;v z0(OMp)bdNr{FZ@CtS`Hw?=x?#FME%xXbXQ^j+o7+apw1^QG2^s?N%u!v}=oi9?Pk6 zcqs+B{S;%@Yq?7ff2OK*3+U9GWq)1<9$AdXVBK3(_1>1uZw1p!QpE9--7rt*vxsL0 zDfr$2`f}SFS%2-R zQZ1bp#Y^G#kX)R#55d0eTS)EZCvqBfOe|iRh?Mq`m|=gBn!0)6Y}_IG5Wbn*?=7WZ zXAkO_<46{}N5SscW}z}AlY+)}M|4CC7CkD#bK^T?V&sg4#!k32(h+rA{!mlWGm#ZP zgZ`9du(OwYlOsy$#p}n^_0k$zP!&o0hu^02oI`ok;e(NX9Yg|W+~k7HQM&0JDGx~z zPv);7g@UiN#7!OJJr9wd;yN*0BvXUxAKEuP1nKc7BnpykV#iurxQt#cj%->-&c~DC zQ2Rw(4bDLRlq8Idsw4BkUFpTHG=#l*Av$*#un)0={9TMBQnNFV)65-(!y5m0TG7|5 z?ZRUi^Mhklpv7}tc^h-&xalF6^IY0*?@9jI1(BK_b7ofBQQN~%^b9M&7(;tZub)kp zt8`&%)R$fad2%mAQ>=TQPUcN>X?@>3#2q|H7oU%YunVs?&X1X%+u(@ zuJ(aTxfjZLxKDrAQ%B?m;S{o6a`Wg1dTN_1)*k9fmK`H-W?fI@7|4rzlbeK@xg7os zF~?T!SQ|$i5uUS|iFWTI&A7IZk_RuNDZJ~996c18Ug+Tf$nop%x!H~jJUN|R?}Q4sr$>dz&?`nE0-dEeB`cmE&%^l|A)70tNfgTV>|>EMGJF;vb3 z&5Met>Qba6tv@qFw%wxLCN87{V!7gHO%)sd4YNy&_aSu45o%_VSztq``Ghzeb+x~8m55wiiw!n z(MWGQZ6TB8gfiU$m?_>-S4~X>97w_sy+6X1GyapEhCsPj3Eej6gCSRs3x~z*V+eXm zD$H+x|E7laupioc<#Nd+W@-;)uIA4-tEp&oJAWI4@H}D!d2{b(dB!B1w@;Ud19Z3A+t3CeU3h)kl7MQRL8)SIVv0Mda{rEyjTz$%be&CF=rn$4nN!B-*A3p zo^Buw=Km>nx1}w-ueHfH#k}EpxL53oKd+ur+q;z%J=uWHHQONE#p z2S`@clUZ16q9mqKPb8O?Yl`j%(?z0*6uwVk$4aF)uFqul=}SEv_3R=Fm?xcm zR}oe_@)4OEi(}TcbXSVq%T@w2E4pChHRiqqT4Ug_JgA+2L=KU&g!Q$h^eB?Yd0m-7 z_rg%5Nl!-8xB%F`NP{WQ$7<_+umgL9jk7*tr^X{?&@ZH2pkYPWFYJ zB-NUUCd*nXtlBEF_&!;}8RhUU(Ny?FkBO z!15TXTE(57xk@xNIEIc~c}iLDonUciAi5OA(^2)G6!%^MT{=6&ul&stR|CQY4bFX} z^cHC=z3D-d0j)gxnu?RVVf$XdoW9SX+VCFOweJFZuT*e(a~qj%?vAq)VxhItpBCMDP9l6N#ozJde%%o2 z-^3Y;E(76tjy)3hLMUguJEk9AK=%H9@OW<**xibU$^cvVye=bU=X;cXA^{yf`si|1 zm*U;k;jrN-88uC#wvJvBnE?lBegn_pPX=S=ZCk(4uYw2!_LXQCDo*9h?Yq7)jR&!g0bkLhSx92QD6 zpq=oD`JR2rs&x#)-KM}T$r$;DW3YaY3QF!4(%1jGW4NUW9aSBSW5)-h<4p<{Wl3Xt zN;nh;OczZ{f@sP}CG6?7UKA_l;Kx(Wgq?j!2ky2}!=YH@84M=RdoIu%qAY6O)ROJ~ zi}Y}r16Js$;zao;^4vKRy?;Lvjpc)o*lRWoHeEm)mY$=|)I8d`o*DM<6Yy*L5lUNl zO)_BWSjcW(Mc>T=@Henl7*}baZJjH$zN_Kve_9AwITXX@8AEI90owd{H0HdXO@Zdh zh&-}^O5UcUR>c76E0{<9RDq6qo8ar_ebl=n3z~nWMAGDREa@>EF7*e=(AkG>KP{u| zvL|Bw!F28jyGc$h=jZ%bcRU&3h^jsoNdC8g{-ut_;~gHN@%vD`RnbF8<_Q|PQ^`H^ zb|JZ^c2M|q-ceeni%UxlMdZN-`u9B#e}4R;x1$VrXKaNj?Xnd0rIMlO^KyTuOqImnW)6_V6EoUnxJR%-;&`GM*PEFe8h4C>%?xmV zL>`VxlJUMX2lKL%FyzV%()WqRNEha!sPdijjWp1E8Kn#z&(7cm?x)_QcSroOP-`QN z+x|z)?Q@Fqe}dj@V75{7QM$vK&|x1W2;g%=!pOeZnps6oysP)+9!A7oW^V6%Ni{O< z6qv}qmu@;3G-0_Y;b%6Zww($a-ib>)WJzx0JbK*T6LUYPVRgwiN?k99&uShp9T`EM z=?0`bcb&L=_XC|6H3W8d8t6IqHt6~wd@OAj7Qrp_euW9XY@39xaX+Yi&Sf$>rUcil zF0{7yf9|G{*Mx!ld2wuo3XUGz#4Ms-kkmLpK{`|Dyc&kbW8cvOKIFAk<)cpk_oe4B zU+=Ryjr%7hZp~qKMQ1jpy|I=2)Tp2uYYmLlnZ=oK7kpF5;%E3JJ(qXGmE=jns9!4m zd}xJFW!W^@YB8D2UPPsaNti$M4JGb0!RFI{MciHo$+LeUTv5A9Zx$)iJJAiNv>jkl zY>)gs3uxllW1!NEG z7YPqnN}T7qpgYf~>@tU9M7ujY()-W|*&qZywS;olYIiBe8u4tb5!{;%&~G}s#^o%r zI>Q?o+xz3!a~Gua*+jZLuU;svO6?oD^Z)N3l?Hgi@O&9H{Ens*jT)fNC}wAB(2oj5 z?#LL^LiC}-nlf12eY-fm*bZi|wIJVQ1l{28R2{R9o*8K({i=V3t;9EQjZK@k7 zy=wqU(@Mqi1Dj}b=U5e{Mf^f)Nmc1(imbV6qO_fFLOPN8FrWqpOHM3YK4w5g9 zn7&d0H-epTwM#5oyKNyG>$l`Ke*@jwT|!@!yy^Y>f4n<1$IEGf!u;)f;q|zh{xchj z=5IOheQJS+Ki*5$&ub8aESJ+=?lM}c1@XJw2*+}K(LZY&J!FoG{Kpe?wvRxN_XTl# z$6#c%Y2dD!D;?=lPiyvbrqC)5yP4tMi+g#CZkZy8cWvtLTEx(bt0aFr6#wK)sPtR_ zZLT3wW`_3FFLI|+@^M}66!oTVYo|bS z%t~=~)@0$D*U0Q-X6YX5q?V#-V%I@_&Ts9d?PfjM3!{dH|0?KW$93{KyN%Ln*9(m{ zGf8IVICyRdMAo?|%H@4Py_OAb$*JLeoF4j~m4?*5G&(Sj@9vkwDRI#ny4Mzh{(E+d zns4sdA*}>s-gkKSc~8}c^d&7$Wx_t$8pYeUBoIGuV1D8Ooa9=Z0vLgC(Km{L3jQPLWCAKDi;E(XDC#$pkc^_{jF{*ol! ztfb7-hb7n9$M<@91ie0YlEyEqq;93LNQxPOlRow2nGglF@z+GnjcC-~*2bJx8I%nk z58sC$$cghqwH{LVyl*qRLJM)Zb1>Wo$-{2`7D;fg4w~EaiRuf|Xlz`w*mT8|9Tf|y zi!&qzuaa=9fzRvT-6^i*wy^wnh6X$PiYu2k(~@_JNSVPdHq!z4cKQxIEVo3s`e)ib zY!t=}524F>n$)_e1bg1wV`j-99NyCh_a`<}-&RH3Zp>h3JkK;fNa*pAP@M3QMt$&j z%r{XYoe$RBL(8Fqqpp+f3hv@pbjL8OUdRn!O$vG==+l@iW)Li$t=D?7Wb8+G0YR z0S!0dPO?Q$M7NX*ZzE>nb?l;he%$5Q(w7zTq=$~TuHBQNkR6(Xbc;`J)YiqRJH3P#iXZE zJin(+G8Tvh(}vJQbv=CK-P(f~JD70UuHX7bve3Ii@vUw&a7_j+X^}!;rx#|e>4ETu zsba`XHQ4U`ETXNuQ{g{ZR1O&py&aB}bB$*~s(F;%tt*1$=Fo&ECh&SxA$evjjc+v% z>HDwI2BF7rmfHi6c8r~#D+OwD=g<>nb((y!h%W8a#vs>U+`-sRa~G_qMH`)< z^>qMVZ}+2tQk-FEd@p9TG*aacDfilyPN-ZONC*35L1ol!TBNy`wk=&t%B!Q{^vn@! z?XvOkOg8o@X<&^^3aq9+5(6d=#kZLgnIFhqyL1EWXxD(gy&6KSd-9&Yk!}P`;4Y3j zmwbb8@RJ0?ek;=37Il=d<89*?_7@jb&=Si-B4%+Y`kN)=n4c#+-(8^BZNJ65+sgR6 zZVQ$F$cNSU*OIU0-Qnjm7!ImSM0AQgj+UrndUqv6>xAHX#suUiZCoQTs3gP9s$ztz(Hhd`>uiq8t8*^L%!RM_*0g z#oBpvmow4QvwSeA7rXdsR#C{0D3~3LfLpaD)qdjhv!b*}&Go~h?;9!mv>Xb$kEhpn z4Jg!57d@(aqU*t)xO%|`R|`{c@nQxHcL=yQ#^R3SGRf-{X3mv&!MpWa=*vv&bM@v9&LtW@@ETbKFmo>^8C$nmi{@8?S{+09B7BT|W;xOluO`~ne33dj3$dzW zEaNvLkQ)4&);WdY&=p0u^H*FDJYffU4wom}xEpj}Kr~h-Rf?CZ?IqtWWU#l}Vlm5^ zccy1F5c{Y%belryv%_0bI${B}vj2o9_Yf~!9w4#&FBkza=O{Fo^CI01kZ|ug=VBJI zBlfTOIYSn8c^c4Y5s26A2P^qGWD~NS>^WC{Jlz9cqe4-8<{`;1*-aOJ_oMFL^>O6T zW{P-`jcWE(o->X?@wFquYmfwrA3lr9bNflpZazIUl7pDNfmU3zLJDVMU!L10tR@J$ zwoR2%o<-v>`wr7Cq+)VyDvrEcLXO+mkE&*d4Tpb`vC05c6|_)icp4%`DUiw>AMQt7 zq|(ez+7rlmRik}0tuON|n1Au;(F&3|_)`2gb-m=h&s^HOX&4T0CihY>-!&Z55jCTe zvb_eQs{S3_?|oD38B)oajvlx=eyv!rehhZInxJ)}9?dEJi#qIs?@b9ORd;(VHV zfBZ}DC)SAEC&M_u8Upvt{h(r}#^>Y?>M`h5jQj7u z=`KHmqhrl*a_t&Awr8ez{-=WS?q}g&T^nU9Ct~*OQ2HN5=i%35+lFzPib#u;BBMQ& zw0_rlR4SE1T4<|Oh?G<`6d4sEtL$B(VJjjfTef&8viFY6_k90=_xXHY{qFm|uJb&O z?^pUj1N{g(E54tPL_|6J=YDsCKXX0KVVek!)|T94uI>uQchsY7EEFHH?{0HE25T6? zYDXJ=RVfqYYkMM;@AJv^8)&oKC0eoH6HnDHQ5V(e64TM5?ecLF&&ArydM6C&3YFo3__^X1-Qlj7o^prKxiJNq@rz0N zt~M4QeI||uJ)xbo|L8AgyT_(@&nyh|$;Ki;ytbJR>)TJni@D@?}G50epGJ`aaG zK1v$@%cA|(E$kl87L_A@QCo}^5~3Pt01v7p&VXm}aIF2WTC!uB2QDa|6@`7~QIJbK z68Se``^X2o1GMnxn?F`2ccY_~K|E`bhE4SAJEbu*c?_nXnTyE$ zR(4*;qJQ;tL=T9>#%-%eLIy6XI^JxBK3XKALq|7uH)z zpeX*$F4HX$)EFQ`JF|M@)yUuUrClB6Ny)U_X%cDQ{X?qnm(k*{skEOL_p9d37oDd^ z!MN5OF|ngDYLgS%P7M~9HFcR4`iKhZcn(a*gj35bI-A{(>b7=A%!E8L8Z^oXQi_lrnADTunOgwdS0 z_E^0vQ*63A5+io6r%!JcvCk}ub~Q~FzbmE4 zs{4JL5`B0NcRdh!?2_u0F%im{1)?cC0&nW4Ax64Iv<9V!J-s-8rY}vsn(O&&<%d=>0C|}=FHK=6X~9Ks67ok z>@)FpvlqEf4Z)W7r=llkvjTfF_x7tg?)BS1Mc(GH2)RUiKX%27`_7_k>v0NDB5Z%x zNM~Ehs75DUsQnv_Z{88un^j5$yEV}__<}^ENrv9b1!A$)G%OsjneKdY#0%9xlD^g# z4!Y|}X^A~N7A9hjBIiVZTB7qlaAE00L9O08l~Dp94?#iJE%1R+0%M4 z7r-4#T0XQQV+j59;lBFio=Dhmfc6+oVK!a>YYUlCEW1V=d8Gs8Gp;n%b3gsA`cBce z`1yM9l&WL&G4|9HXfIEP-ijaMF0_!kf;oAcw+ZDN!_Zzljc5BQ_>ieb-S@wudifA~ z&O9Qw=K(nVwOv@086s#}Kloj2qbHZT<6Fr+3ivx7gL(`hNrHgdg?t*(afpIPM&p3o ze9>d$3_P4S7ZT@bNZpVmIWlCR_-46RoNGT#kH62O%DLA>Y>*;G{mBx3GiD+qCk}8m z$Jj02IQC#DR(dp0TI6xMv)7Kij>}`#fl$bBZ!L&>#pOAD$Zy0rgd}dGmLN6U`gxdh z6o1IujESKfoNFh4%HwZn$ELE&!174aH%^f7j;Uc z`Rr8^&U|q54CvXW!F%Ru+OgaT4&!E_#!nCZFHdG)St}(iX9sv4GhNf<@h7W0@(w*F z(`N%HSZ#|?_z_Qyt1BpJ#2(74(u1Y#XVS_s!=J@n5o)W4Cr?9>J?cNZ8;+Mmf18W6 zJ=z(CkDrK^upSt1c9iA?e5UHOS+p}c9A7tgQh;nUChcJ-EH``_YE@Cc>orYv_s5bF zA4Ja9g!>yqW+kc62hOd|iR_P-;kwZM*#$4xKcqp40eF4mu7K%8JXMm%oXh7$82Mw} z@3Ru`xt7d#OT(?D)zp}!O_Qe!RJR7;!5mYvb&15&!`k@cH~?jm0PMNn3&V~lW2xO8 zy8Cb$b-6Qwj8`c_r-Zw7W&dbV=P~k<+CzhOu)EVNOzhbaiJq?`a5jh80g*o`e(f;m z9=<}4``#5T!Um0-?~?I|2b7&V5cMyj(Y-vMJ0NqQaclw|x6~%1iEiR-r5t|5DwAdZ zTKZVV|DS`|t@nK$^-$rC1~Y(dkxe#P%-z_mD_*A=V5-MVTImWcm$zhth`&@U9I|St`tU)qf;}~PFGq+P z`BY3vUr3SM`KVYn6_Z^Zar4qAN>ltNNxzj#pO}#^z4#fs2aIqtY&0_~=Rhq)f)&Mb z$k=IwNt+z`!DB~NjRXe{CXyzzga_KTk=2CBcy(6_I*QKtezTH3+?fK;mA6EzL#M=J z?<)2sGMn`6Ec!O48(ur@rnA~BX)n)5ewR$csHRNFa3uYml{ps} zIh*Ek_QmVV6A{YY*ycIx-%*HxMTaB#ujbtER7;dRz97Qp@i}Z}ApLkZfp^+dG5o?_ zhwtA%QFC%Q5{9JVh|d_9m1SUb<8wZPL<#N5?`gS*x;VB$8ar28IfO*8>olI7;`_df zrUx3F@yx>Rb??ZdOcqV-3)A;}M`4MsSfN}=OPRNlwfr5aBAL1kvZsrin&{qcCVs!r zr=@*tvE)$--Uq#sU^GVwEYm& zrYFEPECH{dGB2s+H<`T(LUU_99S<}{&YrQ%e;El^$0X9%&ccH0y)esqJjQW;#Mao# zzQ}QV#?_m<99)IZNj3(Njn1(k!q|kVu z&xf>y^5d4$kSkv3(O&`n>I!hppF$TDOi|Kr0;=Thkc^YyeESmm+5De)v)2QUETu(H zn^LNL?#mnjzGJO(;NDaQwr5|X89nnUOLGOiOx1wuF?)Z#%Qrm>BdU)Ur%YYdSv|02odJrh^m%b5Go zTWmd)g?mcnVv-8`1hj9^(@1+PzugPkeG4TAO25;~=x&(mc36}a%HU0OI++gOcgn1u z$mCql3ED~pH=VH|G!~nlTxSOO3mTYgDkkI=Ih2p6B;^+`Xv)qpI5V`9oQBCEtV096 z``x4?bFxIQ2b@(OHlKdj$O!x5EW}v8rts(*I<~@`%o^5;0Y4to&SN*I{r}&Ilg%{$ zi6flPkHbXg@kp}{!qAIKP%1ZtkA)_l{~XU9Wp!w;P$s87muMqaY`tt;hoHbDN${mg1gNtaV%w-zhgU_kI<7igeR2utI6P=Q2NIdXCc%`ya z?QC!Quda{ewZbi0v1uOCJ5Ey!b5tFk1taP+zt0zi;afO+63$CV$!Z9;WYh}MjD=-@ zE0ppz@ngz#bRQBWZhRh#69dZVQg$7AkNr;4y=_S9&urZ0Z$VK5|J^2Wjw#8Q8aDJo zD0^{NU$&=?U{_k<*+lKplkhyemR@~ug=zF#N{C-dg)bKi+g3|lerkfJs$*bXG#H0o z-JzJ`RdizLD>}XV3F&p!#a^|=;>rUb%#<>Q_SGuk&hwL2OGRXV83x~3{EokIp!xGm|>L9^jCQO!er^O!=X~CU5>Z7wl{B~i| zPly}N{h2Rru%j|8KNxe4SJ250X`E}crIE%nVD>W!GkMKhd2Fj_d^QlqJhwllsn3_o zz2f;vXT%zRrb(?K$h~)tKFG_XWHhr6!Z;&al0#8icIbC+D*krSvG>0?3sc9o($#@R zkWoA*w0e(6!pS?rZgm_^ChR1i=arPmJ-91-k`c4j3%!OjJb46oTjTg;Y1bhnRXe9E-<&q_DHIuy2`_ke&IJf+rmmuN;^7W;OP6Hqx%`;l>RrG>0ReE<##i;E% zV(BFZI4swv0`5T@BwnJ!c`t=*x*h6UwaJhB_Qy1RQK~zh1_!E%P5Y*bHFrvA`rI_i zKA(kR{h27$Xr<7e=c#gf0bM;k7T@Oad2wPab*a8Z?t3-i*j{@b_ zL;Ge`$+fLkWV`M?g|wPcM6aPx51K)tp9WLt*KlZ|D6<`cmQ^h@ z@pwFHcvj<_F$49MYlO)ziSX2mK!e5$8oxFc{+e;@1&yU6B|+HmIL%>wg&h_j>W>^_ zZ;}~0fI67*H)Y&9dW2ZSNLOiX{&&OHWpwc956XCd!y&&dhl=j2uq)~Yd3_2Y zE=iImciF~t*b0ZTG^#x{25X{clTybW3eQTzk6>m=j*`R2y%K~bbJlP7Wns(TR+-e% zIQvAF=IhNCp}%%h&!1Ab!t>U>?5HUjbDqraNpOE_9jV-@69a4q5Z6EP=%GG2&<4_c zqK;2>pk@2D=uhZt>O9f~GvAM*8_d^ve|jIuu6#(l<1=v2^cXdq@Iw5!)_7rB z^kQ-QUvD`2^0$lgSbnOT$LGZuV^qy1Oz(0^NRh+z-@ zQfpHb&2`Band3`@*lH9a0k!-*C{7PZ5z~siG1Ac*cj|_+hteKKyGDry zi}7SMUk_2IC&8$%0ZMFk(#2o}r1G=8_o){OYtk`@3dFd{29(4el#S12$)saGecI}b zdbj(O^>+*`TIV7xcszP1mx#@w64+~PrHLFP5a&jPtdK5~VH_^HmjdZ+Of-Saw$oRX3 zazc!dJfuUsyWSUyEn6vVv>npRGiX=34VENZV)!ohQhW=>`L=dy;NQnzo^jVqZ=la^7x?xLwmx z(#XBZx0~qj<}5^~Pe9O2A93o7HVQ{XF=uiP=H0LnIZ2_YsO(P{lRU)4j$2}yvJ!qh zNyO-1v2bnVd*_xJcyo6EWLg6$O2-+mxYrt19fs1c%n_?f<2>vZ8ktfihW4{UctITg zdJVz2J?cgF&3H zQlDQzPmji;cjW*wJ>4V}#~PzhV-V&`t3vOJio@Fafv5-uCQlg2p4WaDRy>~8O;8fs zVwv%|wi_aykI@Dl7kVDPg+85D!5jWvR?;FmUunZ$$iGzotc(skAB$;QBT+aY1ZIZ= zFv{EqXH(qR;WLItH6|kKtuM{V?un+u!||XdlBT!oK&B6Kf>S(cMA2rtsI-l2IzN*4 zvNsOzl($i=f(q)+2jTwEc{G;!-Yd%z>C%f!B;P{?N(;jwyK)Nen~&1%*VedxELgnc z+_7un2w2YUgF#jW>kMtYeUm07FHa-_?RQcbg^^}-#l&~nbE9Y}<`M20awR1|yFijTHQ6Utla6oJw z5C^%eR6M>l7~O}xC0l)CjNIQFPa91U6?%?#4Jo4d-D_xNNF&|aZHO>h z(FCmxbmZ$VYK-*4z@6@>|43-Ah{U1(yUC-eJAJ=)or)6Y( z5vuKEsv3isTs~8Llf}eeOR2yj3~py^(ewTb>ejz6{$_aKxYsz0^&f-TdV&%p%W2|< zaMTx{r5p3-l4ZUuugzjHAa|<$EAvr!efk4^%}PP0lmzYJXDG}pgesG7km-&EtfK#kKzib&K=;n*!qiy@Z!`1g^5u8ruDX@Jsn}4hx(wa=p@h|&`{3=( zT*}?Nm*vAD-B+OvEq{hQ}Wp52B> z?tgI=n%7M*q~~}^?y>b$FzSJ%F03D-7L3Bz6`k}$bqWUl9DrKAH5534|CS$zVJ2s1 zcbag9t7ZzW+drd*5e9g;y$|=drXgA>5Rc9jQS(zb^yJLU>!qFaiZg#vMh?O>rZI_&W^MF~Ef2lIGh-8hw(9B`E;-kABvmn_;$hml{P=ROH z@@ZC|KU5gf2Tk_uNEiPkQY&7G8Q&LD_n}juIJ%Cm*X|?pMtNLZ>Owzq?@_N?M?|#^ zQSXyRC}5^aPToPW$aOvWg!~rjACF4B_|9i%zzozQb5WKWPyKqfiWJplJkMn9P|qw6+_g3sNg2JRkSUa5=s!9&o=EP$L9Jz}h4y3u%%Ho8<(mq}a1;;$yi<$On$ z{yPyr_BaikzKQhe3V5uQoj*X%HQ$CWJVINHEUN4Dxewx%qGF#nG z6VG@jw>?8!e6u}51C)5?>KB2dPuVf`?;a&?R=^l(2b4DqqTzD~BY5N#NXi2sTNOzv z9}bDDf0QNP_ZQGCcBk)8*2cL9?5!B^o~FxeroVR0WO2b2WsOl-8`vo-WexG)dqX-A z-xaEIJ<-Bh_OG*-vuVAE65z|2@Lf_ zcI7w9FZ00a92tu9GDX0jaSmT&v*^R~wbXw^Hu=s;Lq&BK0vFfPiY#yL-Xw`fzJ|1Q zr5z4^lScYrO)M!;lC13!MxGnTVqp4oTz+?s!iN>mw}YD0Kt?#*|E93?l?QzoisvX|JOpt{?GDfZkv zLXSjz3uDLnlM(p%V+NM{s-r)563*^OMv5MnA_ErCzyM}LZ22gvUz_8MVk>Ff)WhK) z6JadE;P}*=|7~JWWEFz<`ZvV6G#lh`mTJCp3-v8hg4Ls~JZB(Wv*h#Z>@HYll|aTt z>p91ujXjUKH@@H_>EjWJ}a4Uk6v|FhC zy9d%v4#lLZ*YqmI4FB@GFq6zsv`d(4lqrXG{2q&rA4FB`5i9z>j6VGOEj(7Ql%#eG z7LA)nJ7(BmSkNGp zGh;kaOCa}VH96(HrA4#nP~X%ZQ0S$OB?)gNVGk5Av{atz=jKv&wXx{@Q_Z3R&FgRh~*TKE=Leswa*$9TSh1cp$ss8=bQ{AsIP+GTpt%^UZhL>CM9s?(KS` z%k3=4-Tq8hcz&Jr}7+rURwrH1Y8(daU%38qT|kh)896Y(AAz zct&aNnt{Y%514GQr^y~pXx+_s$$vfQyp|^Pmh6x?nGkmVod}O#ewY;#jIqux5R3Q> zSR#uxb;EIU(igETc@VTlGFvRNM5KLlqdA44Fmv5b10Pyp8#DB@cGuHvdppR_2*-L0 z?m+yUO6fs)bS*4|XR=1j?wXFVcG7fEwVAwB!eBS)EWMQ~7OswFWbOG*C|~p?EoPza zJAPkSarW*`(-zV>)kDNHXZYHr0YaH~C-!z>h%4dxm40}{Hz->n>WN0m>_qRsCzjzGFhrFQY z&wA3jNmohXhCEg5;(OrJQE>g>j-NY%5#M(TdL8Be?eh$DovtHMVsFBtni9zd_GeA+ zdX?s}?+5Pc7}D1YQ)Vb4Hg`Wix8L~!nF`nMwn zefVB5qHZ{?Z7*?{@O6f${@F~s(`9f}&WPevM`Dc30qXlS85P`NbNg;W#r4O?`(qkJ z%y=x@B~MnV2k2c2vqWQcpjfa{a&>?uro_Le?vMY_#RxAXoa==`)ypF7CEvw4^C_J# zhi&i7;ka`ldHAm;^+)$;@|{xp<39+?_xNL8g(E$9xJyVosj`eq3HvLuMZnAxBBw?tn$C`&2B8o^7SG)9-?cD|(^iJ# z)UX)>Cg3k$_NP4!PR({sT2KjL!f;-!(vkPcJ0dt8MCk%b z%Nhp6=a9~ZFH~J+f*un7Mi^95^uTU-_|F_~2jx?B;AK&ZYBI6=L4R}pk;(~KM6ZaT z!3tdv#ZIXg(>>9&kojOi%(#1z;c)uxK5{slj;51EbYa~b92@2W770-2YRd zC2cn3UpfkdV-#UDqExtUHo!QmCR&~Snx4)<~Eug-c6$&f5Br zo(^}HEDE*9>HF$%-_cB4e3FHW+#qatT|l?me~{hX2O=}gh8Eg5z&jq$xUyWde4mP; zGrUpsDh{>Glh>WCLK;o%T{|=aTi>)(G5O&h&*`@utq@cD`BM?+1NMbx3okP*ddYmB z-BAzeZ)Q5&G!2K>m~CXuO!Uo% zR?rt8Z_M7inlrzZl)P~gxzS6}kXB7&OS#vWnT9SCK9g?oF3D>m_U}zYdlI{us)O+T z^#aOh-7Io1-ei{i8ye)@NBpafZkNV$*kX0C1b$8n{(paxRE4wHPLyC<@EeOu$b|n zJ8c*>4+pmT&};8#9J!uG+GG4t`REE&{L&JI78|MDBVN34N`i8s0h#Le#s=xp_$5CQ z@0FC0pLc|o_w;}wJFSn}x6_9ORSxxT%!PB|d9CUwgjuX3r$yZ1bv{7Gvg+bd&oZ)I zQbjUfd3RCtlES&$yRTm+QaV?W)#YF~Zt07gACj0(+H;LW|iEW`&a6RXmWQ}3lA zC|{fkckV3A+*(To(wk`eUMVVU$b!-`;IPXDF|k4gLr=+&HuoaWD~`aC5v^2XIFmH~ zM&a9KcR>p|XBE3%QtI}fC>oJYSvgARwz`hO zOz1fpb-S3Esp^I*Z+koliWA#g$KvRw7_zpQO;dWyBE5PXGmIWk=KKaK8@i5Cf(!uz z=C?I`p^vrQ@aC%{5~T&EGdDi_U?h4E*C9u~_b#5eL!??ZimStXu&^|n!fo?-IFcit z$QaYWu{TIczn&s56wqS3^Aulkj3PTbA7--+0# zUPRxk;_34*A1vjW&a6AyNS2Ghwo_8%*yhIUmJT|}d^_DZJ^EWS4$q$Q%)~fGXuYyV zpPtL;$1~m)c(7YKsFBWDC_rmrC}Oe=kJ={9x?2k9rfKF#yrYE#7v!rQ~Rvp;Szu; zBlYn2bq)PJ5`n8SONC2-GOo^!#HOWVDX8CPvaN5WYcZ3dG;%mrhWS8Q_6GHs_n$CP z=|P=oFS*bAo-(%;(~-wrCG)3_Mr9#;ESGe}>hx~t^iZc^KOJy8b3V;pT}~U+M!`BU zn;e5iVK47b!(1ZpZ{9gEDfJ%x`e%XuJx0T4b2dF>W^qAD1pK<*q$O24^wnjTFpcPk zm;;6wxhNi!z4h3+G6GTgQMi0;59#$Tq?u)8HO zyu}t>=C3AXChs~^6_Jcl|!9>pw{?9B#&6lMl%l8g@_E@#|*)H<) zmXX6)4MZD#rZ0+wi{k^t>sQ+FDIvJ3yP;y2Gv;kyMz%_24lh&Lx7;|9e7gOn=)G@+ zZm9{>i-WOgy)PZvJQsEsEX0+xAqWiQe{)%5+P+CfxZCWeOKY4Y-t?F*@N6~0;|-me zF%ljIK^VR9Iu)zA;nuw|2xBMv)?vP=m>q+5*%DHZUQD(7Mv5t8W8vjtL|2%7)6`E1 zQSId<6~rDx4tvDsj2@KH4)lj^e`I5IEqDu23DZ9Cx`W$r;uJz0_)Ni5*={2O6Dnni7^M8kXUsGawVoBj7 z?3-;MT29nZP)P#1uAEJFhT2%TuBXKDX*V4DJd;wq573>&GIlIYrP7=4gz1V9hZUTi zKlSe^+0AaDVL9z$X#07QQEiQ#L93~slrFNaPbBrdo@C?Wfm3hsbTGL>=cK zR^A?l@@s=A)o3bi9gGu=o4FqX=GcrLjIG}W^S|Fb)QlTLw|mXR{0YNpRBHnPyX@xM`8-VY%o^bt_iE?J&^w=;E(T#Q(-#rGY`$MpQ)f}|7@hrSZot`+B({7EP z=&uon`=>P#-0+9yO=u8W8nq7HF5VRnL++8|tTt-c{fUfj^PWHch&U0wjPjV{YQ}k_ zA-cWMebRp--%<*3{iNwJZJ8f9FFW6iDKK~9dy*cJND%ahRyMjn5xnRN5+QZ&1arb$TgDokZbh!<9d2A zG6v6Xc_GS29#_2{kxK+~YO5@f*ZQ1d#Yjo`VS8cxvV!!wy`n8oro&3d3OTmRN%l2! ztX_k%k4}(mZnGr$qQzpm{y}=n%snwBfO1-P(EAehY3>h$YjH9x8>W)VH6xtgHXeqS zXX%liBK-AbWV@rdV4wy|*@MQew`TP_YAc0F*{ z_$pb0`+(W!9F8aJV$iX3BFk|QuGV_ch9egxQ;yrx{=2nQ!#<;ZYYtNJe1Fl4`D3+y zu{h;+Q1l%!N$jlsLY=m4;+jHt=*-o{+FzVk>F$a7%d|*4UKYFbf713-wivIlixhWV z78^I*7qvGp(&!CJ4LiH_MRR*7 z-n*)yPLfUK2i8-~nh+=iB$1oOcbYI+j>68d|K-aIiMsI*`n=*d6|7Hlm_JwnYW=^{ zC6i|Hc+5?DT5blrlaDC&(+sk7oq+ulB4}OpDcZ!I%0Ks+#h(*|Zs8;GxaUz)|Lut7 zN1N$C7j_7;7u4;>OzJ3+#*;=h?D@dH+ZA1@yq5y@t2J}xhwwIgGOp=<5{Ed`yf>#v z6j+TW>3lE3ow@iTvrgptY-Z+dcV;Ln;Q?m}^qAeJ?mQNW+m%t9-Nh2+xF2YSdEvXkyH!_IWb4O*OfkUCWLNptdG zJj>%Ax_XR|TCkhs=V#M}fdg=X^970We81tmbwP_YqMsy_qQM2>mv4@!LQg&vb*H#<)sK&b+TOV7>;cO`aoAl~ zLRALia9?!|Ij-bg!0>3g#JsL82c+Pg#$BI<|50ag48mt_lsrC@h?8%oFB+EWkxq69S+AOa>Y59*sZ|kA{`t_Swf6Wkql9!)=U}_63qB6F zdAuP^Bwko0&@~R8)o0#UXy|f>pqQO|R%*(=<%vcT4M_ zOJu)_9S(2(*~@o}Mvj)C;*1|0WNfIgej6P-w}gE8y}W_%N4p*5=%wp8I=aJ1_%K)g zR$p&=Z8w6X+Fnzzofb;2WJ2@05N*#d(7efY>|2}wk6ZIlEagL+%`Z}Dhc|wCZ4_6+ zlQDmCe?0hjQ8YxKq2|mM`q0gcTOGx^`47|dNR&!$DR zi$@PCGuc^T9#7qeD3bHd6kK}Q8>MDWI9ip34URh0&C>|I2k)X|W>L_2{E^fqR7h_4 zM2ZNN*|2`y9hQEM^fGo5mK|~c2K)0fI~w;tfqb7wq4<2TN*!KT&BIwm&7)9yNt#; zTBNCf=**X-?=H}N=__$1K^0AF-iwV}dSik=pF_{Qq+dLL^G+hf-jZ7)f#(e}7~a ziNcI|=$9OY@*Nda%I>A=kPyhNv7miB$1>OTpXlQ~4DZz5Np|W;#F?k2v?-dsd7~St z(6&V!ueT@TYCST)8AHjZGGSLX5>D4Fp);fhG>h-hyMvRlve!LIo6_CkSkes6Gp3>F zXd?~tki|YlJCTt(93Fa`nN1af2f_Y$*NZu3O`%v8ltNQxOXC#pNfZ*@ksPr>*tnje ze~H?3yy~IER80?g8!Yhf{Y`q?vViL5#n91)e2I^5Dmok4lcYNb*VQ-|piw3Haj*xy zQm7_<{kd?JV@B4Q?vUx}iArxf%udgQqjCs}Qr3OSoQNCVrIc7jixkuWam`{Sny)^Xu znTW^lzlhLEMY<52LBAd_6Xa5@B(^pKU3NaFIh||hHSq(<>w?2BT+C~zyFJjUc=7u(LJ~J&1huU7y=ijk#>>YrH zpA#f^8;AyK&4lv@eR`GkpXfEeR0Q^L!L=4+cBMHXr;&f-TXu_^Ba29}?)NK4PApDwDPAr z>F@te8@;B$>E$*$mvD!ME$(!fa{C3HeCmY6AX#L-(ZPDp%e2AxA2k`fL3Z>wbYzza zoVq05-rr65(gQ9ES}+Op#jq6qyT1;_AMWw`C;6apgd!3K_~438l+fIhM^&lUCC`p` zitx*SNO!v>CUvoMaIjZ{R(~B7@vPdw(vFOSjj^Wtds_13H4UHE6=l*2B(Fai2lCHQ z*CSskVe1I8{mR{kgXYLuA%RTnewwGS*nacjFXGrz1Cc(Q9l)~&;eGN4k{-f5b3?-7 z?ouduD#bq83_A6l9kKC0sL*9NS_{_Fxx6dX_k$l6tLwvRbuD?{Q^2a7+>iRROBj;` z7IAM$VRjUDrt4DRaTn6ubezH?)!;hV2>ZS~qyd$^&`@iNcbwtgvd$l4IU^_~rv`hZalPX1%wt+O3nIRB6|P7lYqf*@QNItMxBtEhd2pSV8!jDv-B zCdR+XV!xLWN?!(I%}85V3|%Hn{(PdI+#grEVukv~ZTw!cLR^auXH=WSexJUuGdW3m zzh~l@^(N|2pH2T%t7(7n33}&}LzT8(C{I~J)jGhrJud9ou6lhIflL zHS+jWJBntl$)oo4JetZqWd)zZwCn=!kYu}Z7ok6YxA`2P6)d{08i2*Ix0&}8#`{#j zOJSSXWh^MJuZ6Ht?utNlH~Qy(lnioS)A^Z~=u1aG9Bf`j%R_iJaCRP=T^z~e5A%kz z24I$>2YICEV`8r|y546vynhTq)$bt`uh5TTepo=^?>o9xolE<^*OGQ>AKd7|&(7U3 zD6$t~@nc7JWKX02OgW>gwVgih%!2+(YkJ!h2oIidD;FxGTt*tWlTRi6B)y0VN}LkorB!5@{Ymv8AH)2+n-%X{#zJdd7EC$Yz0}A8 zuXE>#^V|!I`{xJ)Ybm^3rYe@-GogwXGnrxP3a0>bO6Yq>{4)*2rDqkCcgL2d+`B`0 z7mI0;e=HI`xfML47wIei(5TFjGSmv~taJ6MCq$KcW9 zFv{3C1p6kPB9rsJkeQl8cX~`fx8uWU?2!<EYKo%uASwfD|eG-p-C>{=W3tew*@c=Fqz@wieKoqn4t#BxB(ofmv$FD84fr`7iF#mk%B&a~dX6Y}9bjgV`mQyNJAN-LN>v6W8bD ziMH|zGGr%_)6{tSs<@sm`#%(>x%yC=eUTP2r|rQVW@>6OoN7P2zQ%WuTe~^^*yIZX zl}y??Xa;ska_CzNXZYf0Q{{Izq`1DME%gOt9?$!zygFL#&@OiU_$N*+b0iOu&Ub$+ z#J`k<{^NIahZ*{lRLtptt26h&bfHxdO5b(fGk?+wZ4)Nq#E}Cu_kJRlT`3d0lx%P+ zJqceL*U=CKH8^wk_&D$9WbMl6TJ&L>F{vv$HhRHro<17C8c<|GjnIE?gH`3aXpB#! z8@fSw_{C4s-v0q58ZDuihucZRp;*}1w2Eu}oKWt+g?5=4(vMU2fX^^=c#K63`$cW; z2I0dK6IxZ*3v16!gpP(bu5vE=je!gNwZ>zD`d}J&p8Xi^rS!LOhIqVO8PAgsQOoOE z$)e%Yq1P)K@@-$loe?S2;P6!p{q&p~okP*_$O!&rAE;lh0|vRw#@vhfqC!3k8+#_8 zn0Iu&FHORU5Z|TtpN9=<@Es3XAkL;AodZ z0a`UAO2eS);()K8<>78Rgml*(rmW^tvhL7F*V|7>w^j*d16NT(6VD!ll2PNio1_ov zV!`l7!uT(H7}f^#kJ#iWXXQ%SUTMjul8 zI!z24+C);`ec-;=P&j_o6Q|M~F~Kez$H(N;i%H?kjM+&is4u>7j?%njoyKk%4`aFPyf_!?DlTDYj=4+*3-0rlAsYAE@C~_+Iks zyd)W$&n!muXm-Z^N6vGv()|mv^!UXvO#ByukgIaEZ-4?$tCx!T=LNEk|CN*m=%V%{ zv;7u)pw4bJ^hCo0pRDRBB&1m4JD;GdJ_7@m{-ou*^dbMq4lDTgn0sL~{JLGB|5Of= z`9W)O_6Bq0zeeFy-&oYI>j_tOwl}X-ChHIdTK(AodvpJzh8i_E^gl!6D!B98ZzlYH z4Tjl&;V3$^nkH=;N-kIbkmqGRY~y~?>>U?*A8$_X8voH2X0)uk>yF9I8SIrGP8%;Z zk@0CwdKJ?_gKHciJ8BP&l2@P@?iAgvt)YEZPDq!W6@!<0Vb3c=YB;2hJ%h$^-qQhT zN7Hd}C!dL~ED(d3(J^ir;Q{Ano=g9tyBjq{fbK@IbGsY`ZesuSU?)gRb%S2NU844e z8dk+D6Jf1EI23o3es4DvI+u)b^H>*3T;fZfvIEg0#v30J4Cs~HZ+h{miUQZ3r)859 z5HM8@L*L&ajb~NV*4rH7bvcdwq)YQBs$zi`_b=`KN6~o(^!T=6*l3}lJ!oi`wwC(c z*I8+4Xwi^LLursoS`xCi?3ooId+)tdBKvP-&qzjP^j_~LUrEpN-1l{z=Wz_gvz^@` z-^GSbda9tf=NB`U@$n zq6;q8vtPo%28)^HaOCMWvB4+I?VX(ss(s2}K6W6@Ip~QYF5M9&d_|yImUy+o43DGx zbN6{1g&fF2xo1}-?fWUtmkaLF=wiWGFFf*6<8Sp|>bR%^FO4zyeyRlPHw56nHzOhc zjD7a2dcr=xl2)v(pc91&ROias*ps0oUz>uk^a5H_rA<|zx%=o=OGkSBpb2B^DQ%@G z!uj8x8Ej4$r5zD7;R%iF8UfigepvYN7AX|fQ!mYY-tFpP|KYEaTkEJrkj?ml5gSp^HfwP*^d9+>1<^J)!~qe&v!h33GgU z+!6P5PtnRr)>NrGl{{NpsE@2I?JUkj-VuKke@cPcW_lSm5XPb8mrofFCqqp+`+ zJVawJ`s)@+$&dGtZ0;|rpZrIn{ADWD&TAA!vtppJ*&Wj7w~D?VX)vD^fIHWdkhqmS z6B9Sk@5$VQZ<>fNt+C=rp$a}P?ui*!%rIt>GCImHis>FX)X$Fl4bj0UQc|JxPG>B= zeMTf^W}^G}cO>49#n}XVEciH_eApFQHG{ovzJsvTKM9^Ql;QRv1UaXe<6awvM#$0` z)hm?T-vGul3(zz9yohjkE*@lE5dn7sF^9YD3FX_wFw1nz=r|Lq%_k3S6bLQgaSGLys32+6>a^;dkFs?NLs-=&x@W3f7~fV`R8$%dElDJ|Exu| z(|XZ1<|fYlQbmW=xsSc$HaP`OfQ^(I%43}AWRK;NIUD4ua#%W*t{e~fSV!3Pt)@Tz z%sGi!O#fa+z;4G-DBV-XuP*bcx7|1DCOw=!E45I!sB$5_{-pRgPoHyhPpGCYo=)v{ zLed{um}M`e0n&pob9W2X$ahf0_K~>ra=Lgf%Rk3oYSgvId?Dv9Pbqmq8GbS+c||4lTdoSP|F=2|Pp>eN$tfHjVD-Y5M{1zpg|LZ0(L9Af7{ zzWzPhoOpxwbn<@EVFcn--4OXli6W=7&uG<9^!_dnsq7;{&8i0iVhb_YhMncL{>&NZ zi=mzJDDy0*Y+Y+y@NJ?sD>!Ew+nfGuPT|;74%Tg#fwzh>uD`m@z23*n2=K=4O*Yu0 z_?T2xc!ocI8_6U}(fYw(Mf#W}oN2KZ&vu1T>FNwzQrFFs zFa5(OqOaa?+TE-tN(}b6&sckoHt>wW?qVI?afuPSzw}@|rU(2JM{|e7obRBg$gN=t zU0t%3>ZQDd+B9ePH!qG+qE~-Xi1j0-8)v9~{WkK-D8zdQ8yq|Sh`z1VLXl$!GatKQ zX|E)FoX_q;(F4sM|Iy^@O8C2_nkL@+NBefZp;unLNY7IPy)1fC@=JFbHe@V}R%jrq z(H_x10jvEc_&)s%HQM+|ROIq;n(w{0{yq}DPJa=%ceuhuRU1osDwCUm8%hTcgrZ$O zoy?vgx<&K(W#cls(kw*=rrlAyqD>OFx*v_OIz&3xBE+vIUs3WoN4(Kapf$_JqU9`e zG-te^Jy9D(@&xANWPcL_opZ7HtPywM7K-r?`r*4=6NUJ(&+Ujbq66#c*a~}W9vvZ$ zl{iCD@>Wd!`eVh)w#WL#38I0yn%zH43McjY< zj@mVdntB|jdS>RldZ-Bvol0u<-%N>D!k`=XlVqG$(3gH!#p`{$sh-asvY4(YX zw@Hw7s8FQNjKI5*AIZivQgW?@eP(mk(ym4q_-dY`)kQ(Dc-s$i*AC&FXedn|c2!(G z?}SB7fv~TagX)tzxlO^MU{ZYvOmxl?bd~oHMDGV21Bx$!lqV;x}P+mD2ew=w)p^ap^ccK8wB&4nwU(9XpO0VXebh z+P_ej9=?1*#wF)O(o7S~8mWlyTjfzPaWK-1Nw)exJ zC5cpDZvb0<2UcDypgRYP@!qxoYAW1WIZ`DK?_5L&FC7uN;qNIS&lldZoa28xkoNAj zf?8fM0*p(kM`8x8vP`BO91ZhjCz(_A7ZGk3j7K}d#C0V(km)ws>qEE{%x+kA;e89Y z6Pkayi>>;bVg~r3Pni$gmo`!M=V#(J@AGfW>Pq#!&(gMoZ|G9GHon%rBe{n+C}Qm( zj7z>p7K5gUhO$|7TGm|hrKd9dx!3i?g)^wNKWIo9JHR%#(^jjUG_|(@`uj>jD1@Sm zvNhJ${-bRtjL9HA9j`ZYuYgB28y7#If6NPsm}`tN^6GfoIGpUdx+16Kmc%ID1H(2l z8?fRHdA{|+o2(^bjkP9bXa*wsXb)(;l*Y(|sU*G1j%PxnP1d#> zjT6xC{49E#6p71a%;C}H-mkv|<4@U8fJ6nFfy=0D$_)0e?WYN6Ghlae7@Vt=FjSG* z({q*Zt`*FWT~6;hyCJJ?D2BFlfwfNpS_|frfA?bKJs5>qmkKas^*?%appHKN9*euX z>LiEux?pR^9x~gWAq;FExNmBz7eh9h;MT!U;#7H(#B2OuXxTpyweLBLv&x7$(9uHc zNh8Jf{Ykf`_NQe(QpmP2mX@Rj!z^eht(WSJl&SKxI;os)D8Hw#yKN!SPQ;%*hA^(= zeD~WG^i7eyezP`H{&QWr*RFs)=8-rWv7Y+HBrw1ECYc4sl8(V%`gqeB?pOX$zn00A z_N9;H{>|=Go4!%JRCr1GD$9iZSI)%u(!~&!uauD zlQf|-p^)M_e$)CvW2k;w9o1D2rk}bhIML-HrMUmcIgo`y`u#5MH8`YXLr!uJlJpW0};po@B*L99vLL7npz zpy?yQnn4=$sJ9=Ubj%QcGu=^RIRf$%>@jz02sT*cV&?R*n9a|jP0wM-b4ka0Ur(6$ zEEdLVD(T_eaNOTJ3_YS>xtWO9G)SRd7^_BdP9_5vHOHeiD^}#z9-_K4?1w5;K#RT{ zE+3mrsd>zYzu!(9Un$})?@?Ywd*g}r0(zGHS-6k%LZ7^AH2kGKjQ)mT-+5cyHQhzk z^6Salo+x|MNeWfXC;b9hC@cLTBTWs|N3Uj{kv5$gl0u0aH`DnA$*9QXvqYK$vMV1; z!t&e6Y-&9zmv+an$KNRR_!t;0*i08bWJ-FCm&aj8OPZSTh;H+pqCsJcm_KtOrvGIR z$mviVF{!1iy`2&1tBG7Kc9(34z+brn{EZurIWrYt^IMKae>cO78!JTap9M5-3-615 zCsCD?A?GjpLTdK_$)gNYO!W7Ifww0v+?0XEV0JyY`X>YLE?t?)kMO zjz1UcR!p}qc5h?$V#O0`yI)CW$8r&ydXD^GxR43&UQb%MqSbGsuo>tp z>Nd)g3D1V+T(YJ=NA(eqs*d&zjik%-`#V>o;qdzn{e0n!DczX!;jw}~t#LxDjWfEi zXE`OSg(SZvG?F_|UO5%CX2%KAnH-32fijrVy^-{HGRxmPkJ^oOc+a(owzT($b9ZC( z{5XMbr2@~cnSzxyc={!qRCZ0k!~fVBaCHM+_|aGNHL%05@j>{RmN9=bF0jPN;ThD#>{p}Lygy_GSTrMrw?n52qW<{8~x0wg9sAm@ui zF<{PSI(Lo`H_DaXzU>ReQY}Q3T0t*qC&ekR6YI`w;yZ_c>(NM5-BzGQ4NpmVW-<~2 zlOV%;$IbJZL(|`xjwjX762(tqTWJAgqNdV&NeP+k84qdeEDHM@!5JGj()cKc+SBaP zI`@(O{<}~2n!Drg@=-__G7ef}u2NltCTTq=K={L*q&vX^edU?qaBKxN``x2KXOBt> zUv8$L_H5YoJWM4&L$LeC6lQfyrviS)`nYz3Nzf2xGT*0JcYR4-)W9 zV<&Z8+Z(T(-q0s06OsOsyNnMtMM}SEbaOU)sclSA<&X_Y+@;a#wwSxa*d{iTSfw@Br?DvG@vk+$3fd2tqq zR^r4E+&NQY+%&p4a^~L;5qr^ z(pdtJV==t67u*(TxO?2Jp?A$5ba-b1tp8eLhuK3iSTKiamswO}u8j>|hG>$D5P`o= zQr8)|cu-J5>La-a{ml%DuU&A^C_`M&90UpXQU7Qz6l1(wsP)oOI$*hiDtU&vxB8}- zwm(wDDVk7KodhRK$3gMFDuOHgvGiFN7>+H3@1i2q-5iLrj8LHv+XaecQqalvM(fZv z`gmgzb#Y!VUj7QggKlOt?wm6|B)dX;-d-xY)(iLQ!eH5HgT9h1?tj`*<9GgkKI|lm zOlOdE1XBH1N;LNtVBQ-?+&$MIWc8kjMf*OIb(JD&h7N<#Bb|ZYy9A*9gCWj_^Ifg7 zmJUySK<(31usYh1pY2uR#gJ&`d9g3OWF(ZnO_7+FHdFBNKwMwfo$9{6p!=%!^myJk z>bJWOUESnIoeuI?5En)Fr$-9QW#O2u5CXlw6LC88Dp7|4^iPb#Qq3^LUEfHjcNKA7 za;j+GV~St3N5%Z;o1(5^5goStP4Q0LnRw9?y?92sHqH}9ef#1*6vTvsPP}hnC&B8A zbT)JZg(%Hr#;G&O4-LY*HQ`vmjIDXYd%*SBcx>m+nwpvc60fDw)bv>A8m?JDx2}dh8(f&ThXpsmk?0bYwJV4ar zvy}hfr}*^tF!d>k#g+CB$@8g2xKYp~`p=W#uakv;Q0oj=jWZUHmlAx4n5I(wDQf2Vick(+WnAJY3y-qZdtdwv(JZVv2rg))c;OC^Dl4W2alaD8Ays=VyV7f3B04r7!ol z6JfOH7P$sC$lo@$3+?NTgNG^3NFW)T+Fk?yq*v^Devz23rE&7a#PmyRu9FNO@xUQ9&w zsY&RTqKALq^_W9zijD{?(X1FsSvlR{dgze*qrGqG9{XJ$21et~nBLrfT}Xf5PlU8a zuGm{tfN1KMhITh4{$&zePO79aRi@&!=4w(N;3+IW=b(GR0L~Zd($h@lr_M{luh1DJ zYv@9M9Hb~(!x+*xuG1QgXpuJ6SaPhdHqOsmMmo#l#AxnX-7c*st-Eh%b+0!1!`+FB zj+0`pY68X>vIjuql7HNJI&LnDgXMDAqY;BaE;ngNoI1~x&GGhy9J%!@!mU@X=$ieJ zR&2gQDg9F*wfGNRERDxOlU@|i`I}jgDzrya39^%Kh_x3vf7y>aTpxQ<%CISPDj}4H z=x&kR3yH&nb2T(%<2BlHKMkuYiY4!Uy3<$vt8{9bIVS&~|I>6?Y_eeQ_J>i}P_mQU zOyY3xjwY;b%j2fHHKlhXA>4X|=vy5|+cSEK6dNUkwyENF(ofnLbDbJeWbnE37HL0M z=krhpbS#Qv+(J_vBq)9QmrU+05UDl;Xj;?~dS5?{KD{4_ zf-^j$4d{!l@rNjVjUgn?e>j`2gkByt$YK`Ii$V*uxK~hHN)9ITo`3!+O>$p8j4XE+ zKx+1K8oPZGQr%*Z$=^4N-9dOf(iK*N{s@=rBjM`l3lF7>LNz2BAKw!d7x#scUK71i z&cK_T(L!~y2^Ad)WoFe)Q9j@ybu%qM`Y{VyXV@2qzAvPC*Ua(!hCNE>*yE|+5LC}| zr@%Rj1Yf3URp$wQKlZ>(-SeX2dNZla=*q5zMtYSHiI&EvB+=!a|84HozfcpdQ^w&k zchHBeCAd@(Wdu8%cKW>VWo8-#sWCYdagheYNjTC6D| zb^l@{=})4*!@h`!#BzzH9naakeo)RMMO5u)UgxM9>Y`+fIVYq!6Dxz?%rIWtFN-}4 zgp3vQM78WYIug8roIN&DoZ(2MsW`&Jxdh2NeNeTrgM7Dz3Olbz_ ={6%zi_gx@y3ChCQ={ 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ⅈJ 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

w?X4a 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
$M0`G{Kpp(7$X!&$Tzq!; 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

ywA^uJ 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

Gk156{azAS%5%3|-Gl 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

+pK`ju-_!*F;3hJO(h>y zU1ZDX)5%BLh;1-|QOY|~2rt03!yeFU-$SbdZqOygL-fr2uS;s6JleJ?&@!{7)Nri` zy-zO{E1J?ID@XQ3T|g$5@~$VREgA(~ZQ=KpJ(W6<6msG|_eX}Iy(9|u5ozMjq&W1j zia~QD--pry@iF$DxHPLPLhBmnY!?@}k1^+GKQrWc7yB~zoml>%f(*TaMg31>_F4{u zotZW7i!~5b@kv-`Kc*kdzE9yf>dBqSVx!_7()_%I;tmeRg$J9(%0r;vif`%C8)ovp zXraet)--QR8*Q3x$Q+kmh>Nv=S%e>wZ(71`3o!J!j94;R2NQp(Pyj?69s7jyXa?tOk0#@$6Ov@c!2pm2@7FdT>!cC=ABgsqoWXl~j84stgM8PCh;BVi>4#r(@8cXDK9MBRp0G%G zOg0zKqdXDj%rpBzn)vf8pSuq-wE1~oO!(-C1)h_kb)lR_D-M8mg9a{HCZj&OOj7sI z0LD|;sI0P*R*unkJtFs+!p1Ej&0=?IJJuCrUNTFUeZ<-3ugUpYDstN>t zkApv{@-XK|oMh;Zd#=bU90G+uOX$b9Bcgn&Gk%5^;KMvQEDdqS*N(pUyPX-aGXgQ? z-Dp&r1)-HaXE&6mV#W#f`CQ^$RaFU9X!W7Q+O2eFR}_3qnT=R&NdHdt#h{eI=$@vE zIWe|)8Jd8<*E7(()L2wJ)Q8C}OC-Jzg8jcJbhEa{(rM+Q&)sBl?{=MHs`r}nJ*EW`rs??U2-Zzp&HNU44)u8IC_CX|C+$? zx*gKwibYa~7B+j@K zAKuc?>=7Mty@g)yKTHKN-)NG$56pWQlO_LNg&$XFnbAzq z87wcE=#+!($wN?B><6t)fv{rkiNnMtv~*>tq^SE8>fO{SG+fv%b*Bd^hHF#)`_X7j z`a(%YjiRE>7iWDPF~BJppS~4gX1@qb?wB&zP%{^AhrJh;Me}HN6~Y(T*A|7t*4T5=moJGd1nDh8pwD6M|)+FlP<*^?FZb^4+oP z@I-W5Rz`0h?WU=xIDhhxJEM;A__=!|=FKdjXFXQXz3Glno?k%=rpLm#>L+RRnJ>~R z8maFdD>ARH7cO(7(4rfUwlSXQRZ~Z9oho?TWf3ixwiWNlhu*pT5l-(`(xeGn#g{lW ziR(05AkKg)Ty~IZjwNQMj3v3cMARM)f=Y3uNd4e})qjk{jLILR+QS(u{)|GMoIje5 z=F_!<;}C0Q3b#WtNY@*LYyMui{d@_9*>9&7^(0#GMjJ=%^Kdq9KHa+=i^ipO!t&jE z(w>}vny?d;?Ai+@$1AD2t23NGX^G@scW6zIT-tD>06Y4q(du(~V(za!V!E^)UZy6X zAoLX}E*}NMR#Q5d*^8b#*`sx36AiKYLq$uYk$9K64pGNRS4JMWEuA#!Mg%O!+T+++ zb*isjKo4da;;}_P%sk4jr=!v^Sa3r$vG3UPL?3$P(g$60_mY&scuZ>K-pfiY+!(cj z{Ng{+Chc<~^U@#Tn>-lp%JFoyt_!ltXVK>0Kk0qLU>aWeT5_lx^AgJ0|FU|C%cyM5 zE58|t#rAi|XH{3kKVn{*TqXrhG!uy?_7WX~UO4-_mYD@QIBv`wq=U_L?S>J|KFt*) zk9!M)O}V6eN{g~?nj_`ReD?gXPp$iH>d1_Tbo?LM@FSiYF2?cwG6a!YDX^;bL3~Xj z=4aMY{^3=$a{GB9J;#Lx>I`DWu0OUX`(n0K4uXT+>D2uuS}rwKyw*t}?Rq0Tmgxmw z_D~pCPN0hpGLW}+p<(tmkYkqP%>L1oU2F>X*(d4e(~%giWg~g~+X1S9R-_qLOFI#a zgMne9bB;9nBqY#_&?(q`CKF0u3$Q9_F@^TjVHf;m(tdGVxH3QI+v_7#w3E3NZ=$Fs z^B-wk?Shb0C;U6*PSawTk*I5p!ODdQ`n{1R=hV};k~GPsi*}Uto4M?5?8&^fj6NAH zCI^R9bQTv-jq^#78nu#g-5nt}`yZw6KgOK8$xt&L3>BWct?Jd2A}7e>82|U?`Ml@m zIkM5@-UtX=Puo*Nuy$W8=8U*W&b%LV_w7n|V{54QeRmWoUZj+!?l}B>Ed{aTc1PeD zs!GwsH+F_R%?_b)%GHuz%xQid4Nv60Tbe;R)M0zDn4rYIX?H@5ElJ6&l%!heb zO~wurp^$8Z{D~dZ;kJ?P&NoN@3+*JkMHVl&tr5AFfl%=*l0-kvq>;l1V`+bTIMZ(G z!dw)G20njX!;Kid|ht~!*`j8%-&0OzvZz-<_fJI-xJM|UYNRzXFlZzD9OrCtc)+A z&PS?r()K^{Zyx}S-qASEoxvad<+1F*4RP1=w>ZrC=))l`lr9$lLG1a`^cG{<$BT72 z=cv~Z?ylS_CeI>cl*mP+yN?Tg23=(4)p{{KwL|=k2H%)B;_kEHtZdAFB+x_dUS0I-Skq$7LzpS^LcafV|}vuP)1W+T(M&Oc8Uw% zC0s{M#o`BjNi9T&R#;ya&PnWT3j4}=3ps>s=z^QR>GX`>rByD<^tHP$_hV8q$+e7X zg8cE^Xa;>5G=};;3B|aW$rzEqUUA7q;h*0R_I99a%Lj?#{kqgYrI~XUez^4b9&I}y zgGpsQ;QPb~h2b3kvVGLw>L^vZoPQ$HqstCusF+=1F^;q^aDg4*h8>hN)LbKA5i=|jVVYgx_%9w~y=)LLrHayruBDJkya>gS{M_5lD4k3KzZ-| zqUww}jKcXnSQ-Lhpn;^3Y3Q89`N&J=xb2?_RoUHier*zH{BN=N?qo>4zAOqE=9X^z zf`5*h_}YCaypn#>%*Hunb!8f4KXr=1eDAR9$V1iPG8*f{8TBc(!oRu?<*n;SMd4jx zF(noE`(<&@-vEw0E7&R*1FKD$&`#FmyO=6&JSn9FW%gw_?xTnX19VC5kB8d^L;lQB zN-znbsSQ5Zf5@J$-PRY^|GOh;UY&{aw#Kyfc|VM6VRxVOKxR+IV;-Mnl>4uye-l2? z-{d4{UWv!A%Tc&pqeJIfwot&Q3skIZLn9p4Q%5*xb4Y}kHd7b3rzLY1R2$Zhe^Et{ z6n4yWC9_L+B(Vzi$XRAWdoGUVIkO2A+R`w?A^=qzZRtw|=LWpKi=uiNy#Ek@vXSc8 zHK&s1T}wh$U=e+fcus-M{UFzW5!JQXLE+y8QeUeBozz}J|kLlx!1jm zeI$za>447wW>a`UTsR;~7QLXwLzpYcnVY8tgK5#hT6$M>hpK~~(urA<@M}7EGe2&m z0)0KSKhl8uoFxLj4wd_Aof6P@WkNNF(f6`1M8%R zW2?yol6F@@;N>_>?UR5}K1p<6sSr(1weTu=CT;xHPqLsahitn3ac(#9qd|3}@!3O) zhKy6D+R2+p$D}8YaHhP&QOO;{&`t^d&q2D_N*LTTg$}-t= z(y-v8RkQJ+Yz`LsrEzg{Kw6-$gQCzLw|tTFDsea{-π*)- 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%0DSrH95TPSP_=p#_1l^9glLcV18#}2)>Du& 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%0DUEO181= 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

og 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ʢY11u{y~hkQ5-|Ev%VgAY<%dLhmYd_>3E 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

x9QI`n|ibu*dKoTMzMX^TdX;= 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

SiBV4df{~N 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 z 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 z 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�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�-CD-`dty|*Q+d-_6ozH+K8PpKv2ng7P zKgk}_H?siyGD4U&@)MRA-4Mr0m8d^HnYHsJ!&^n(OIHTbV@n5~dS=c8O39q1nI^kG zG85ZSDN4+w>w0GfGhBx8o$3f~>D`_;Z89XQHid_NE)^p_4G|oafa+nY@H*cT&xR|p zt)>=A6@^q}cEnRNqI*g_^%ccXbduh3nR&`wa|aI+4`5W9>>cP-2}{YqQ|o+15#W6q z&utdLy^oy7CYiB8yMyF5D^vH#CD>n<-tMD&<$L70>&45b#OgWe^v=>_x3Aa4bCv%5 z@U$2Fj<;vqi_V-W_ih(9^{3hC#kdd2Ms%Ev!8U z0tPpA;oiAAbeHoarS99%yRReH&4`xX@S`Yg-9}8?S;(%7q+|KuEu7vO1?xaMhG{wE@k$e}AEm(%?T?6&z5LRf1LW>B zm^pK*k>cD3lXtg6o9rbx|M!B-JxVT|xeoVAPK(E8KOX&>%rBW=#Vqdt<}3 zTJ6BkhL#M?_$=<9SdVqXd!b)OOZHBQ=C1xl7#5d>D=v;)wnBx?G&(V3)j?sGzEzz2 zG+wN;&%}g|A$(MBgP6Jwc-B{bFYff_6FJv6QIVf0Z58Qj9*58)3uVU6j!H5B&?=%_ z-nUxNq0H)k9G!Pu&hPt%BeY9OOH-PfG^FRg&ZKQ*G)O5zDNUtGvZIXbm5{6m$(|MI zLzF$s9$DET^}D{mKmFnLQl97izVGWg&*Q)^-s^QKK0}L(=L*Fa!RV4DgX@Q_DB12m zI?LPyO*>}QZDUrNzbpH@am*f)mN9~2#Xzh|{^uBdYPIm2z!mvdn()-0E)@Bh z{bf@#B~~Q~^{q`5q&=I~u!G=rP%mt!@#t@?0+$f}^KyA8Zg)nrrIVzvAru3@N@Fy4 zBDP&q#^e>_>8^zut_GxINFjHaw%iiSirCF_cB_c(UQKPO6G=K(mF)G#<8`|(dpOkS zP?0|Ly3eD1m<%cPPxRd(5i?s%F>;9tm751((F_Ij9Q&A*S46?*S~o}=c|a6qk>7}S z)Wduyt#a!_N~@=%G`om)F)#JPCEk@K$KjKH2D+V`O_AM0p=G?CLJrP=ddD+L<7`ja zZ8c1y0e5bcC$O(%^F%NqcQfH5@Zw>(ar^`*clN3 z#XWMU9FT#Oi3eyo`<=I1@g1Qqj-Bm#xT4TZnqkurQhH1*|Hgh|sb~DX*-xjZ&L?|j z`_xzRto)ECq=(JpKAsZ_%MEdw`HDZ6e;~izBWZ1)0TktENWXeAOHk1U=|7nr-{FKO z3v;ksb}R}W@Qg0N0Y61FtQJLL)XO&7Fl`{3Zh+3L_)B+~-)i^t6|G+q01?3Kfver& zHFKqikeZDRB{MNG+!H1DCgXz4b>;-7V{V!z#!9Sls*!ty_aZS{uYu;PgyW{mENqr` z!GNo!uJ`TDp;~gAUNo<#{8Clin%PEeds9iesSmz!9_L0-v(P;YNQZF8W|1YOr00{Z zp(a*+7$*ilI7F!%|B%dr0(x`jp2V?M2l{usFjBfdI)@BEZKV`qn4!8oJQy0;N?0WA?dzsEB&6ahz@G~p|xL?pQ4|WfnVfWLlojb*zamG++n2L(- z;pnHMMenx_C8H%e*rB^g%pUPUXpH+v1KMBHsL8*?ghoF93@o7o$(++2mx7_U`$KbO z13MX%5Ef;Dvvr;rdeV^I{p=zJDfWP;*-{bqY$>VFR3=wH1C-6aL*EZrV$#kXbU1>$ zC@%UKc1#}cuRWyE6YA+U4Z<1E2h5B=PG4+$z|S*8=vUnD>39m7Ee=sp24Kf(+(T>!uLMOdIH$mZm5|%+(O}$Olb7 zrA2VJ)l_~z8SdrTXmKbJyWx#_!=|GT_x4mQ4pOWSsJVL*3ixd7@E!=-m5BirDp+_) zgY#;a$s{BaZciN%cy}G0*8NBZ4mNy0iGWY#PEqtgfoITx`1oQKDNbSrSbcw*%{(Nl zyc0rw>SEH~X2*Wb6nf6@8K0$P;?ahwsCHW|{FAgG=TJk-cd)~P-<{R}oKbww8tK{{ z^eE~#eMqPhf#I*|=+rHjlnC_ZQikCoeL z!IpI*`FaZOUH(i(pM3HBQXXwTt%`$l2jMBt_IjOHz+ImA{yELe*{EGYjOLDl_6mBl zY@k^AOHlQ$5A^ZwX*w>mht~Fv7sg+Yk?CY}46dx8aNkMzx|4fX`#AT+XU!pAyGVXJ z&%Xz-5B!4~U%TeirvY7rQbS%ZMDf zXM7ZiuuHp058Smd`b#F#S8bF;PSWCzjxLt3?*`qGN|^g?BI+KeLFz(3k}8xJj?8M5 z=NjeD1IakMQVkQz*ON=>A&RlML07xCiTipx>D#Xi1niE2qhtYTFvGcb(@fMoJ3{@- zCg68|p75!RVeZ&eoaw?$y6N{tTEzycc)y8$P06ETibm=YH!<(0sBZ6g zY?>K_{?-$;cysD)wdoz&tTu0pb_>_zzVlnp7OY&dfMb}ri zllpOX60u{icKsUH|7LEcnOhYw{@r-wwlAd{?oo7RK?wb|; zQ%;8ofBnsLy(v~4a!zZSi?@z8U32*89P@zZg{fWGK)5`v%P+D z1jfh=rR|N4v_{tv*N4qP70)Vy&SpzK2j3BE-PyVGNFP_-^`Y>U9X^-3iwdn#Xk6_g zUVgaEoY9Z8XYzEMb%?>1qyV~W9EPP|0VYU&Sz9EBEGy&4%?~}<`L!_qm!i&{TSYNG#OM97X zr_l}HU6hbg(@JLJc2LP_E!+=YAaY)hVEgDe1ilJE(?xmwXR$?0W*(*TidCfgzLNeJ zs$jDvcPG}pAcKj46u3?gUv7-2R~Omgvvm#*EoAoYUiJ`g?4+c>>9}Y3oXig!Le*&( z4HyuElk+lA>YGhV+WNUBCw!ND`kpHa{~jTCbvqoMD-D@XF4QeCi(F2|qt=siRXhKZ zLzkJfB|i$|3VD%`&n|NA9=s6j02*V0hDj$V>)3k9?xGGdyU3ksxhDF-e6UZKRj{aE zJYK$+$Epoc$eQggB4ozKX8ev?xbZ|H)G2WMuipq|ZVIBz#tjN&{H zJ3P)F9SxpBoiJxr1OzAK$gGQl^uS-5;9h%{dX;PuUml-ME-gF8EmRm;3TMr5AQ1@>E}KjoW0nWLcM*E?4S+nzP;%JpP5(R3&zE! zX=tn(M-OG!llB%@I^*Gu@J?pXTes1+DcR!H&RNizo=^Ln<#}%2PJ6C>q%O9*X?)%w zR6m(Vc4<@Ll+qVN-*6YU{gLE`Yc{fv6Ur`LB#U%gl5g-wNF(!sCJe_F)%o=8WCI<} z)kb$8RZRHP2d<-A#Q_^fuPTpJg5$Aa?@ua!&;Gpg@9BMUv#9r(fyk&^)L~ggRUhjqR6Ce3e-ZV+eU#*- z^|3xxcd+^wOoAT>~OetJ!Pg|CoOMwd>ooiMIML6%8xeG=k#2$ z^Hwpv*(Qx~3o9f8t9DU^X;*9+nE;cu31rL9_)SBqX`b&;(pWkh8eulH%T9vp-A_`u z_Y&HfYKTiZhIqAnDm_$qEtF*UkjJ#%bmnF$8Smar1$UhBbk<@jsvU@RiN=U4x=hLm zioCNYwC?o9g8u&Ev1tk#^!ffQ+Nd;dHZG;|Oz&I|sy%pu{#howT1xMse|K}p`%AE} zTB?C{t0&Nl9l>zbH@X70?g31K7xF?(>Z<0TcP7e za6Z>cw8jCu{$wE}Knl|T8UBCn+jCMB0M6KW{aA(;1Z5xBN_ zDNV>=|Er-swa+e{0Vx|sW8;x-Lhz3M1MUCqMNZB|f{ zY81UJ$KiJh_q?~ipu2^N%>M5Kd*)uYEy=>OL-~?~?R;k+H=AlA_mb$(ZqO;l@Jk+w z?6&T>@2E?8dcE1F=tWM)zSHg2-!wh2fR;)|Q1$$D6v%B6gF=gGn4XC^8Fhq?Q=ss zx5Wc%#!zBbAkMFrrAu1fx$odeN?+N_x=IE<%&tjb7QAhQ6qR3{N}*dzB>8`XXwllS zaIA1dj~N*Vs#-59kGkM;&_A&(&xtg4-xRqs{3SIjf09Z=Ivk!2!C03XD&+s8x7_!u z|GJXOz70e5{7f{yw&ZgubAbvqQN!G~&1t&S|M6>DnKu}-XSIovfr*IP_nPD?C!xT8 z4zg}a|Bo{Q3!7fl_RbAg7c=M8D3j(yX5!x(fr<?T$P4R&Ahjxl<8U;f3g{ z(y&guC5irafuu>9 z>`jdtjiRtDEY%y!?1EMbj||3eN;;2}^FXLv_z<@*V1k%T6tlD7hMX z_bmkBSG=jx|B%=mn+QL*5;9}%b;F}5tXgJ>oxZ{7x_7CVF*IB_CF|osssuCN>(M`c z-`saHrtn<`sE##9c#9&MpD5tI>`Lmhw}wuXt1vIf2-AZ5h#tD%#JSunG|t@_Cp|Y) zb454gKifwo@sGtZ`QFHS(?TozJ4np5cZmx z&n=)eg!df7`8=mH6*r6AP{`i*p=+{A@ny*u+9!mOEv)m(kjL*Qj{Z912-s zfvx*xX|tmqbSH$NZRa-8btB&`Rh-0r*>Kyp5D<#(ib_Vcy%BCe6JNB*;0VB-NDc4C$nPERl_9Gcx6r$L31bQ%!Otzyx zotn%1dIL>(6h0TqX|seesWGcO0zD5likH`#h0`A+vE+|7g-990eRBwVfA5G@*Dq2A z^HJ1PmeV!8E%a(cKd5ZueOsdrPE`-aEzM+9{M4b!kw!SII}9Hf0JA4?r-&OVgN>n1 z^oz5H^%pPEbQAVWtn81=f98|-$g#*YuBU<tB_j!LQQ&#d>*H)_=kx5yFB|>F zO5u~iV;Zf_bB&~X;{5=5nl|qUS;cJ^O$wRxZ+I{^ew&5g?Vp$xGn8Db9Pw`A4l>?% zoJP8`2WH_o+LCvX#+_J!|{0ec`SfG+U78XnXQqS{W=~mY~QXe;# zdl>u4el|Os`7G~vV>!i)9D(vm6xu-Dgonh?QfJ^CVHP%2&K8CH+h-uQTZ9A?beCqiP{ z$?#&ZIC@HggEGu&cs~d;o8FPtWd(fL<0<;K%*LcG{BC=z#5tT>bV@UovoV*Lv-yk; zymH|l)nRHe@x==M97^-7@Tf|a>(YC7X~z=aXG}L*eYywCRK`KvnS6#VQal1w^{)UXL`YMhYdDNR^`0nWG+`!ijT2(>AuoxayHCmf8Txz zCuN*6wS|zlRIK>OUX+js zoY_`Edxsby?%Q3V{k}KSu67ki<9!eo@l9;#GYDSt!*Q&Ey=k`GGupDp^TepdrtP)D6HV>!EH&bciN)I>> zTuDmL*He`w9$z#}2w@u7Gsj#^Q*yy^RzTjm_lTCgY^0KvgRowH8t&bjz-eGf=|Goz^SuFIhbets(=qzLY1$Q83*3vb@ zDr$FFEw)e0CsWN|lw<#b=%+Nr=2lbq^L2E)=o?wTo*~pAk2<9~${E1f<4I>8PuEjA1e#hYKfnWr)sE8dKO`7dT~-teUEw|7y;12r5xXd@0x&c>UCi)ncQU^kNe z8$;~Gs-HIS7-vt0TmR60i+QwQ47#-!w~9*SGL_FA&x>BQc2C z4SAm?qg&ZO>UFf1Jbc1&`uGHDV@}I~b3M^(aT!f*;Th+?X6jPAjZzP)(i85->bwoZ zQHvS0SLBPG7ebLTqZe9I?vV6a74)T7q!6o$y&u`F(bOo}BNNDb`=Kx^bVN{o8a$RB z5G&^%qNg1%seO?pl%F@y;E@d!-c&+gt@sQcqKN0Une>^@->r3%5S4Y4eEt54*Ewkj zTH{Saq|!iHo{(Rzfaec%apFW6^7u?0yfy=;bRW>@ML{%Z)m(}#6zIeG%E?n@Fxsn> z*4@;E-LUC21;=zL?3if_$IA|IxZDdbhjyb0BhJ#hW-Yt5()Cti=M$D(&MpvbM(I(8W@Qyt* z%M6gJv5btKyr5t;H!KbBA>JJigU3&+o$9hvys-E-Y@R| zh!j4zzloBI_K?1GkjCrQh_nzjTB5s=*&Ijc)&zeM6R=I3NX-Pg4yKiUDtMWljT+U# z*yCX!?0?RLnKHXx1`dI2@nVVeApWiuU8LO)o(W^VvmIy{iMms#-F zGnMgj#63D4Ei3dD0`bV8iX0t{(4n@Oj%J%6rXv|Mto^V~J_~o-*|po*jhgZo(4VyP zln^!tM}jkP?aWtdNafE&(pK`i%Y0$Z6O_HtB<HTKv^5-A>1La`I^TV=}_6T^z z{+Z&QP#blDeAPUleaQ=+at3Hp?gP8iGBCG0KsBC15`E*dT)tG3>%u_f>FyR+bl!;f#kLp_>yD~F128({9=ZSM59@Bu__)59N@^ca zSDi$Zt}ug}!7XZ!nmxq``Nbp%^q? z9TyIMpe?25c)4{pSxWyT@79-O<)w(tlgmhd=2iBlIN*CtGA=E$hiiQi;d56k<^0w- zl@>8!;aqxOlt6nVFKGA*Z%j69BmZO3l>Uh424^OTMaruvZSY7M|1OXHBkfe09f%~( zs`O1fCWftfP9=Lk(ZwmQc>lPCik|!-h1r3U_BlEzUY|*xT6NT%l_bt2D3kN$#kA{0 zPhonc2c%S#d6)H=zqt{J9oc$~{z z>3$uQXf=?Xozl?%d79SwMxwJVUt%)cPyB3@!fl;luxsdp#*FvmW~hkDmUtNGuAw$& z930a+AZ*9oq5o`q!}Wg*4_y~X{W?Uim#n9a+&5LfkdBtJI&rd#6HMp)ptUw}a0|6W z?AaLn7vzV}?D4XhvXnB5m`n2ZHwE7NOxC%<@XXD^E4}PAfqL4!IpX_`ZD5nZJ z?(`|>&Vgv}0{`FlX@ix%L}p`~=orme@^5yqo8*q{ORH%|njdDqizM4>eM!j~>mEg+0$Fo}TFs!%f`Z=y8+!%sozuH@zrwiZ7(wcrM$qkk&Yzq)hJD z?7uPs6?6AdO>`M4NVn7Bo;k{-}MuB(b>7*Xvos>*m{N;p2g`{$(h3T1!I^s zTS0H9xZq*AAB|`VA`5@!FP->B=WQ*}(|IcUA5MsnYi3CN>x11UeP~e01Dd&V7%kG_ z9h9{h>9m<)QdI!jfBZ)#`rWaOeI!YnnrOr=DO7x9*4FoCaW&;R$yukv$>4u;!M9|3 z_7zE+WTRqrI#sWo0w3-YR%_N%?iWqG`hQ4YDje>0V`#YnGs@p4(?h)?*S(Ujq`hIMNL7_(&S4i^N+eVc z>5WF&d(?Jn8rpsRai>|0d%9<+YPbf)Ug#xOn))He;v3D|Erku->02v51WUYA;B0S3 zs-u}#zI8o0{ud^e@Abo~0$UXL+$F1o06Z-EDk+m0iQywokj^nPJbBPY8(sTS%G?eb zJTw8nmkhv+3BTxx?Oqxpxc}d6B^|Nv!8|xmbg`%vYo$0>bZaqLaK``EtvqToRl%75 zf@m$X7?c9q=|Jz^_#%GN@sa1Kak(i~9Sao)9Ne(4(o4{NeOh#SIEwc$clC8ooJ?ab z?0jFGG%Kdxkr%0Qa5RecHHy+Co(cWSM*i#hq|j9wZi5cesh#LRgsRrRh*5VHw`7j-_he^(U`C=08VSJ z&}aKt$aK9z)}ggjtSS?(tvKsH0WhGVX2f2idI}8Ty{QElR1UJF~lUlt?Fk3>15;p`r|Z zZ1-_S7q4De{GC}nNEDfBdQgtGqnkemW2)_S3JOp}y~u(5rbtv+f(k4+YqOTSfYyZ9 zO8FES(w+RexN^rQk!(h}A!pVMyo^0h`P;LgXEYLS&jO+Tn{x=Y9#k#e6O%HEDdX;4 z>hn{XW@=q?eaUkWxdUV9Y(p-|Ed$Todtn@RD{{52h&OX5qaa!d6YWA^aO69!yXc7Z zJBz63Y&S%?1kmpCMAZIkq$G1K1g7qyk1D;8nB+tyOQxdgcPc7X6_N1h9*s6%LVlYT z(9>sgaOIRHhJI8RUK*JQ{nttnT`zI}{UZ)Ob7%T0Lr&*6Zpkum{>=J$9 z@>#37Vh9Q^PG2i3mqMnfH)I57~5W=F?kE9PapP^zqSywvgB~H^)aOkpF=y; z&Qq}6Fq&szN=t^>;B@U~dUfM0bxq$+(=6v;jdduBS8S#oC+g^BT&FlZE)aM8r^6!r z5xwKxX#T87-0j;$J;(1Ajui(fq$3nhHoO#veP^P3P`HT9orL8RnIm2CiQKri>U4ED z&Rtf+$zgNFgVw9myvY=|yAOc#=$<(GF$QYuC*h0UJyD|Ij{w8N^zQgm$%ZS5sPr0u z_OROqx5B*6UoN1hc%HIy4#d7^O6g`+zY4N`4(cNi6)N5&B5}q#!&05 zVE1*I!2G| z`|@nk0B%V$aC6fu+P$eiY*Yz5j54UW%LbvJ!x?zYrAd!|Q+rrX3~Op2Z@-?RI98k9 zjW))|f^-^Tse(rjW$`$3w`f}*#`ncI+&bG6x_svwTzNoTtaQSxNIzVg2W)jpMr74N z*Uk-xM2mWmq;+38_1GdWWIdbciZN%6JF~DQ{hL_$@d!P4`a~DX`@xLo^iux!NnwvY zqGL5s)A?RJJLHYmw@!*tAvx%4zgPs+O+_#HR2l(aJbc$jbf#tCaO`$E5~+qKjuP%% zhw^+c5eNJ;=+7G7yX`Nf&&>P_Xvo5!o)$3w-4~{1nHZlIhb_TAVv@^Fvd_IJBIod2 zdA%LY+047d>5pi4z(}05|3@2~%@8$&@9C6*XJcEbjDOxR?m3zVFgKkUZ!6lC1j5?b=7m= zTSb%Sc8A%Np>%Qw?+v^Oqg7`J(~3NL&HIlB_8sD>zY3GjG>LvH!y~WQWhjvlAua=F$G} zcp@Xt@O?6q*eQFKa;)}2eF**i>d$K4!iYh^@GV=Ao}9f-jNpD8(va~sW3_$S4AmSh{m zx_cpOWlxx%S3~IJ;n1&hz&Yg^ILcYw>Iu5!64uz~aBnE$C zX0!G>VdwpWa*r0!kZ|5ZHKfq{u^~8-SWCl3j6wrDN0Sm)&|+<7g5Oz83EK*(@z79M zed$HYd~aD$d`@&{_Qw^+u9&@=T|k;8R69-$4-z@|zT6UBX4g^4x8ZoDY=O?+MWT4* zI#Ie(m3C*wV9zGb%<2C}bMMDsUT7>`xuS~PzPjQ??`RzCCNO&FK>G0e6uB0dLM7$`8@Bfw@)SaK?j(vu29bSQ4s3yFfk>RO5*9UM)ZOP^QSVfoWc$k%0{{_%Oy*L}0-!n-X4vmm^z zxkHM_M>E&%K8@&VMw*UqB$HH*Uc2eY)-WXiwkD`sWbbsv}bZ)s%cs2q5nf;*4!xgZ*TQ7S5c?&hfER^gm=UIC> zv&V-{;w(Mi?Iu*y;tB(3Jo_qw9~OwD{VIr>afK%Q?oD<{Zm4FSg}iPpRc!wv%mRnf zLx&vlbT;Si>g~bh84BcCPv}1`1|8a^WOg_L0~mg!mGo0+7|uZa)Lt+v7ze$nyQu9! zSI8z@riF8uSCylTyyZi1K5jGhY4d=W4b1+CgO2ET7)A+;$LEt$;BeK?Wt(Oof0MhWrvY%quC@q15| z(dvdlh*9uFM|mVY(!MPGUh=FweHy(wJp@5ggRy3HJj%{)rO$tRiy+-y)aNzNY1w&S zm$GiqqAiC>rql)D$F(TxrzsY6E~geg$G5~dKy#lb#!r1OdC=OAjN%)Gn$~d6e!Ze8 zYX=}&PLpgt9F+{=yFsPhXByBT$7lBOm}tQq<)pq)%6~_P=5j}6zl0J;XF_$4n^5>P z4C~jur{MN5Ny!gcEcI#>xrqzK(+1vUx7{I^!VNTEv6+@x?-$MLgHe5EhS2cJhD}E| zb_gD%LzS^Kq4pq6p?tCIhqd@pWCO7*SU}Ddg&X9==O60G-`s=t)$p^YF#RT05C0HRzE{EA@YA{}r zh>-0Od~V5S2ebxEM{?FKJ|05{N1{Wf8#eh18lY1}2iLu!1$ z17p$*u&xht1bA+zuTv#14NXK*BfHj4&7pe2Xtp3x`(t9>Dm&%0AzyVkz?~OAF>u6=*WAW{}7H#9dqw#qbNppwl=#`$x=4bh_ z?aTp7RH2rVRqUFXgW?ivjAo}L?$}Z2Ip#TbCem(GvqU7xRY**NA+vy)}M!T z=w4rhPd`uBLNuUbXM|xqPh9_jJLTr;_`AglhHv`fuvG}U2fN`KyVO!+zS0TzRQTPy zN6FWUgjl4Aj>xGnE>VO1^>zwtFQC8UW{BsFyXZ*W2n>JdPD>u0Cb@~O@EoZtbgI2^ z$sz;W8o6Iu>rcCrJn_9K9nNOEXz4)(6mk}D)1Fy~dnSkIcw;JgLlnVt<5kZGlBZ>V z>>6`iq)iV+^25u7;=7V_sk|dO91G{$Mz|4ZL&pzS(}Q7`=zPu%3ORLwGC9Nw<3Mlh=evxq9vw)g0>kJW%ft6*VZW2;_O!EM-dxn!~4ZqXm9)? zresCY@&pa^@av78r5>Alu@U;XQNLD1Y+NZ>{o;?L?*Ie1`}o05W|25> zbuc8c{C?o)*&$sIl1UngR>cqmm0u;*j>%M`l!J24>vVMXr25C)k?hE$fISyzM`b$f zM|Dup);MUkex#=r##r-8jyrYCBZz-TgX7qP`F%V}veaO0ahsyriJv*{7-i-R`742v z@`;V);H(C-mU7b8n}xxv7t@z(rPQl-BUvsSg;lR-VE=VJMC$rrsJt_}JyFKElgxht zpOe8}gnAG3uu(w0e;!@Wcq;i`wv1;PrtHXiMe#dyv3tuKI)7*#8T^XI@6Ra|XetoK zIjS{Q%n5L3hPZLG5?O&UAU1YVBo$Y$gm&PxZd`&$E6 zuTN0Wkw%LAX@Yud<^Ysuq4kt2u3EKae>Z9*sw{NKdVn9G1VOEB&OfH^WINeDOy1pklf| zhFO-^-;-i+R~#rdguflnYbVX7cS{9ye2VDK1kRXNyU~`-mUuNP8+n1zLibM^iXxq< zxV?suqJ|1XIr^69il*1)lt1JW9Vwhg-J8`Rdov#6W{2aO|1@aN=WJT!F!Yabg~dxZ z$jChvWgFS)^|S{TW@cc&$|ag@v5Dw;C_PF1MX%YpVAb)TkhJ}vc_(wl#$U{qd{<51 z-_60O-^;0>*#aK5!Q#$;xfJm045f`-MaG<+eSB&&1r&zCD}Jveas5mT-ED_1Bl^;8 zo~x{6AEa+N(bc!<@DAs9&2?`&RWt!FxI1$^t{-#_%`xVM0aP9o(Y4%kxCn_{H$sUf^r(ory49ut+LEDE%Vy49+(Z=7IaF-GEZpko=8CfgtFvm5?)g9NQ zODXHh8@grah#O0+L~NM@{676~4fROC^979*!JYa!24|>ciYK10u*JlUFNI6eRJ6b0 zd`2I2xbQt6Xo`{Fbx+-5GX>R4QQZj4%H4fl3Zp?S|&Q{H`V(X+0Nj_&e?Z!JNy zE)lPNXJcy30~%-Riph6oBWut^%HYg>;DQ@uaBVMnvzw`_@PO-~6sUP+V$*XC-1?7w zlIDFyol+-l9x@$o*_F1r_fX`Y+DGR$n&7%KdmL}8N|trb6c=0r;J(HY9`Vb9c|xEvdd z6*nAkZ=eFDeRt=XL@0SVJQ0PQ?N+$qjxgqz+H!7qbZa^(ExAiR`{!VQrarWI-}P16 z2Kz>((1Sa+n4=_5mX%*9R(d8*^*uz7x+#g*83mGgK}n!Qe_U80@aMxLI`qGsMt&}B ztl`|`8+M{bFQRvSPtYd+N}9IfG$}@J5K#|$LZbPZ0=C)U=a@lQbjX@s7WaYClX&LFb&}Zo-V|}sA70M0@iJtNaCtff=95zJ{rgVI$B)H?@VnyV zgv&I%sz1qp&_u9S2*sQ)r_>hiv~S~oA3Iu49x?7Uc52SgP7uS@dgEVAS5k3GMR7qr-I7;9>oRHhELkFv8_E5URR^fh zEsP444KRo^x77gyaA2hp-tOd%j*1Fq9Li$%R~%X=aL<0aJ<^x6Z!Gf_1s7I`O*W&k zShHT}9UF-Qr2&oYYZ z-zhe<4j>g&QVnzed*AI3r3)sQ{_?NndS(}K*3KDztHwjdFdT|!d(y~r%!YY;hBV{n z^O<-wUAo~!PIAe((@Pub$pjOZ9vExi=k;Mw6cDY@(@Q1AC`j%zQgH%%7ES% zTXFnIrMS#_;`=vJuzK7KTsXm>bH48{Xt*LC?VW^;ZEDC+vVx6?w0E626}PVJ^qp-X-6Fw)&tUUchelPf7&YY&_6~uGTGBS_JZU<#Q~8uygO;A1VL$l zA?9W-qN=JxwBg`8vi!tnMfD8CO&f*?4IiXmdrg5iJrMb|8@A<3C};mr%pK&0DZ$IB zuGSBydkv!BI~Gvak3}TUGrDn`zLC{K8~okX7so&4;P=sy@YUs==VnE5tYSHhv3o3O zwv5B^P@^*c#EIe+DWyzzE;rN%#&IX7dfyx+CAIYwhS+FR`M8m`m zp&0g6$h0?7s?vTse7jWAJ&-v*EtPb9Y#0<*F&k=of0U1yE6U}VQIm6$CS;``W8)4| z>`G+Id&TWlW5j|JCNTM8hC+n_h;`ueLWUiNZOx}G@6@n3@FqRke2O%VC1O%Re;n=7 zB-9%eh4cB@^w)GMO-`_+`Rimc_4y{@=WGW*8z;OgR>IyFy2zG1qe(mW3!g)?pmLG> z_FAQqzZ?1N^%IEMaFCAY8lW*q4b6|u&{EzLoq3vK?7H5xDfXuLb50*#r%jPNRucht zUC_S95C@K(rkW6*!x@~S&g@c3In5lzN2xGUUFI5ezB|5T4oBnHy^LKaN=4 z6l?Qs@u+7Uo?ENq<;x%}Ug+%_5|Ds_^P8wS>OJ+|@{F2N$BWFd@|aLnEVMTBnfLxl z?texhYKbTMXT{?E*Ih#9_;`G)$--d;Bbduxb=|S^gs9e-jaL@>?7Z^BrLp7T^EZMN zicLZJ&qz@>8acY7@ocIpLaq&y#Hqib)tnQ`?Wqd$SO*@=xRYu#G zB^0b6gXVcokXk&RjM%LkJUI+Yq>j?NF77ZaoI<5_sp8ukXN;?lq2w4txMcJY+E=S6 zqTnPY^%;rg7AdT)4W&pIUzjhNPHi0%(eZo~ezy0;sA)Oy3A;z#nzE^SWFg6CxqUiXL1~t9qr-4wI>nyId@;#T&!?+$f}1cg4WIL&@f?k9cCH%Rhqx zYI8jB&OJ^t)=!n>eiu`wCC?v^sE|=ap7^7(M?CE|0)Kn`6<2?Sl8i^WPAC)k^wTwu+NJnpisAm%5JjfU%1Ky;@@p$7K~%CR`9v9)g@8GenqmLqyyd zZ1Z?3CTj_L{bm-;xFnBboy;kmeuTzob)(B37xTzlw;kS@JMwzeN$&efsuC*tufM_!_uyN+WpKQ5a8cEN>f!?3q^U%WWd7pLQ&(1xxO`Z|GUUe^6_EYk-2SIc9arwuuj`0>15 z84cQzcwZC@>F-~KUek0kSvU;cKX4x1oqx{Pm&o{SGkNn_&VP*>jH)EqZ)GA<6jx9u z`?WJv`S){Y54ozQ;zNr(27MSqzTAu6zf>Jz^6r>1OPNBx){*a&F&O{SAKx;1Q0Emh z^v?2t{a_g+1oT6A%|l9?W=Lc6>uB9Ef#K{}a`)oC@c*2V&1Tq|y^tJ_Z6}Y-COBD` zf^IqU>FEYjbS(Qt^B?zSS5Q9P%bJ2cCb}4SFb-m>JRH5`D7KTmaeee)-o+K)>mO1U z??n%KD&pO^I`Vp@0c zxcuuq&2LmCZP`(1D!MG$A^nTS-#bnFCQrnI5&cOq&Ifno?VxzBj#L$f!&GfPJ+yKa zFB)Hnp7p-e$r;w<_3|{~O7;J7bl#6xzV92StSBKVT2?|v8Vb*K9>`1xWktxAy+V?< zQrb&<@6u3|luD^IRMH@ows)GE()av){{cTd&*Q$Y>pYL+^%A9TyfB;l&?S>yaO{RE zcTQxmF^zr9*Ur=Y)#s>%XN7;X#sJmqQ`;@a+3RWerv8@pEh(a!>>MoJH3g54!ZN~WH=R8w9%=Ya7^YtdAOZ7ZTH+j>XIOo%4X6Ug%$K8 z^NGYbe1?dbe^ubH8-5=VaOu3jck~Zb^sAm$^)C}X$9LE?eSAi8q4p@hl7r_#52z)^ z5htuPF`T{K#Ur|4q<;+5NAq_-U<5SP*)N_ogm26@NZZ61?RA;tACoG!?FoSGUiK_( zxlH?+*>e1l9lZN-_Ri=A{ndR>vkx#E=b9Vmv|rIa`4`mtTrwsuPsH!G1=QQIjZUxN z-6?l_=eKuKf6k#jx1LQ$KKY@pEeLDc!?A12Hu@3$PNKuvTIZh9!tt+^X!@Xw#Mwb8 zTpmR)AD$)cKnGmm&PtrOI(B8-(y1FgvFg<%-1ZE`iuZ(yif7`rB6G8(_KOJ;Z=Cto zCRQ`U=s&erK;TcdE>e5BC%AVmGuOB8UWmJa@P!&Hwtv9_Ie-p$$22y?~W zrHOQ<1t@V}OT*?SVN|k?z{4qIkgiTq<%g-qb-t5SXk*q>eX5oohVbM7I-{40*Lyb6 z`vNBn=opOq%sFWNs)@9_y`dO!M4TAaDYW_=qLQ__==&rGVMCqpmtB#EcAb|vjV_?^ z3s;NfRtIU|;wkhaZX67_7J7BAKOOPa$Ba`dXdI_N3s*2BtJ?&6+~9%}52oW3XA`W8 zW>G-zeRTNOAsfB_Zi=s?hEVS*?B(9&MJ~+8fUg<$9e2gTU7zWAUJsfhzlg#s&e5#J zHne38=-m1P^yIxOJ|)L;&LeWc6bnS4W zhG=P*VwR95#;X3IYtPn+yX9WE_$Y?z>jP239geYEztioI5$LMU?1nl!+#eVuB4S3M z*Aah|?%F75awhz;-$>LR>0)`&Sjce(vP?ORehsLluV0gCd-(@3-hw@iw&O6R?F!u+ zxK)hOxWT*fQCMruj-qot$S7KZyfP(pQ@%q}C+(zJ?B&pJGDg>ok95^b2{|Vt0!!OU8y5f30()AVP6XGiS}=y$~wL;j#b4D z&tz0os>5YT4*b`rQ^MDObnS8^!pF^(EU0@*4&4MDx|l>o7HJe)$ei5{A81}*Y}3s? z5tseOqCfX~XURzaXiQ~i`n+)XldG3I{(>7Ot)gLWvw1f z*Bgz91)s&i1GeO|cLY*}F1pD2;q_%b)E9Qgmt`_I^uiN$#e%NN&!L;a{9B4WCBAIG zOgpWs=|R6d{MCL-%lq7;O%?rdJkeIDnEP@sI}@qq9b|0eMq*kCeJiM?@VLT$99@)i{jh83$*z)L^ z?*zy_Go=HECV(uN5na7Q(kK6|c;T3Xnn>VG_bBwLnIMAy`JhLfH1n6@a6?lQOF9#v zGq4LzmgbA?`?;4hpi!vQjz-t@vUrt{jdibW5k7hnbICJt+-VdRtgELNi)Rs~S>pGp zKlClYiz=pN!Ef(EA-~oKCTj+wJ}#3?gRil()||Ugk$lf%|5o!1G^ekL~)nLlB089x*wk++3#gT&zqQ`#d*_5#hkx;s0CvgEiz3^h1v&2 z-2Xffy-)SQ>w0fEmS!WU-VhIXpEm9mb4DIya^GmFSU$dqB!_fxQ#}yZqAydsxg1uV z?;x+nS7h39mV7Jkkmi|unz3gz9^Uo9P}Kse8#xUrg%7ABaUz}7x5bks%P4DsIaRC( z;q#FvVk|RBU&WG6O_q?a`6u$L?Sa{{c~pEQ1Ttkig-sB%Pj~I5lZ%$or?f+K>R)%> zwQmqZ<*c!#HW~~27t!0nw$wH4GC8WGV7SBrS_;18kiC_L3uD|m|C^kaW%HcZ3U721 zanjcW#)Ay8z(5L#f8?=a+bz0gbG)OF8hDkeH8c=BDTbu^ zu9w=jjI5Xm*S?(Jx195~HZ`I>z1*PvB2;wF^`?6}^TnADD=BMPv1sS4?3gZxg^#1M zaR1sYIq;XgJxf=L`TFd~*whtvH}2B<)BNoF<4;q@o zq`2%ked;!y0!-dh=1>#P=nR5|Y%+dtG=TTOc8cs&MSkaMYFP45oL1XRbF$~=lVqOL9A8jW3KAnW; z%=?f&r-R_{yhp9;4a*12J^sC&+8RdFx@%d;dG1R;7RzC8Z+7|&Eg{Qkfh6-U6WV{1 z;nMDiWST>^13W2|_oBDvmeJ~7d^cf6fpz*OYG7u(zD}F4pU3%s{hN{_Rgom)8BP8V z!87t8INJ7x&+FxMc(E3Ik9%^*(wU-MZqcDhd#HMim6&~g9J;3U$C7j%8sQs@-Q#Cr z-?Ml0>xvYal>Ve6lVY*BM2AkqwTUqIGvd|2bjta(ln!!_=)(qg& zLsO4P*5qVBEqNm13#IVAb0)5G_S^MOPYSfSMP*wQP_Q}!!DBl~xwi-3=L%^{9`m4e zrSNNNB(2!d3opxF(YSH!NnNT0rOU(FcPz&}KXx!jb<+7Ov6S1&yw9c>SPk@m(>^77 z5N8eB^N#RtHo;4&HNth?Px7luLHW80x;v^n=AQ7!{%zwC*}0T1yhxzv`^7ZXHknQ* zq+@l;Cpu6V3B^gb>3H!uaeILb^c%JD=4C7AAm`9#?`hOm%9$!IFGc-76kG_fLq7Azk@g z!#>!0Pv|Yw#>`H8^kR?6gyvlO!5pI8=f9}ZCKGmY3h-`^!pEPFsC$_&ML%)Eh0iO< zAl4KbT4qR_DNuIW9`~=@5pO(u(fYi2tWS5rP{+qKD!~_XH66qTX8GRZ&aZv?eLD1I z0t{bOh*IY?qdz>x;8=}!F*G;r}7PBAv0A;SbFVf=d&=x)#e#g2)aezRd>58zk)xafo98T%# zhWAHgaOL?udN`m)Or0N(KbLf{^XUur37aDRgA(Qhm>_qnI;qzwp{RO+jczh~8A8XS zTHPD#tJknswm+SY@TQ0TlKra{M0L&lrjn#x7b};VFVw}AAaMke%|O}v3?mLy!;CdY#530drc6mW5O(k z2&6uD!r&f0^tx^eWqJo=hQA5@%Kt7-tF%(Z!!+z16^FSmnJ?G;R_Fqdo-nloe^1=)EcXKE%k%sNLF(``|H z>Z)+dTq5d{m~(nk8)6N+kO#(Lzj3D+mo*4mVy0%Z@M;p93@jG zbW(lMb>%mzw|2ocNgf6bW@o@Q2@EIa(~cX-xWx098Z{HN#;+6F%<+Hy>=VgwC+I>- z3$0fCENNEo#`%d3NMXO+*-UHv%>P4uxF_(0bEwBO{)me;UeKPLLY~+w$@;~Ny9{O3%);&H^$J+(e$6yQJcx^;BAW7Nm*k`4jtbWj3;Nmr3vC##4Bb)JC7#j`NXO|RUFIC~ns59}{rth^$|COEU1dM*`5WY3 z^pTcXDdJmj8QG;(Q=@?wb@VzbuHNe>V%}wAjrMiA>F0t--tGO@=!flo(YU~Qnl)iP zDZW_-!+d4vqfQJin@QoDpM=@{zA)PmNd>b^sK9u&xa!ZIh;_xhCl5n>_+&g7r3~*< zHyBedOdG>HS4oF67t543QS72bJnwZ#tl{U+u14;e zZ`n=G1*Z5QKc5cDnczl2JZkD!in~o3h>z@s=@Z9^78MDiI~8d1u?zp719+&Gij6zQ zo;H5b}_V+pmqnt(A$W1+q_0}h#~ zaFR~MhHG2J&$2|?cT*MX3|5i!!I{YYG8n^Rs>HC0*EBL~Ac_b0(@5TNhg-5UWk)Km zi~~L|H0S#|pdIaox`J-FyjdQH<9ow(m^}W<*N7B7UDS?o6jM4}ac;L2l6&Uh@{usH z(aMtcT{XqP+i_&fGj#**FkigU4YuRkXwdy!cz2&E615|-Z1n?nQALQ2v3-$eZ;DQD zH|}4tD^6+}W|dr|!m)B#u;3!;bKYF-M+WRhdeF|^%$V>yC0x2%qD1E;nf|dtRh%nE zOnWMxoT;YWw>ZOd;3^&6=t(>6?J%sHH~Kp;d#+n4E{%LFgK1YB>3x7dGe@pb8grhS-Z@ELt@%tBGOkNx)*Db-!gl%{L`aR9&Q9ca zq9jEJ`eVo8QW@&{uf>89*$q;Q8Z`82dW;lO4Rf{AR6^X;H}&ys_w&G(yf|MXe^a*m+)GKiYr2iiT|;dkE+1>Fqbi8OS?uBW?(^}pVP#_e#%#Jbris|NL~C=^N$12Q_*hsXP|Xz^ud$o4 z)B_)z9MQvV5#60$Ao*cD3rp{s;CE?Pd?@s#xY}FvuWkc9TIGiE8`DwvbOMwwRg&L3 zfuy%Y2K@%}Ec*}5ckM>6o6P8!^CYOAxJl@lXsr;Rs-@c z@R@HPCEq@76Z~lcRlayZjst&DXbf}VPg}w|S_QaJDJrKlQ%=z!)EsW16?(D4$Z{rH za(hzwUv`9+_k`+XZBk70L`PB)C%ziM! zjp?IM$Ik2GmpOQ`G!2^0{^+k~M0Fo0;mmI(#Esw2&eFZ&rO$OrSTq2?ICmF*3ZV^{C4!vR*Q()b1>bsyDR^IP|i8izFF!2PXC@PUJiU7>(000YI(INzG932d^kfT=Z=1VhQhtl4T`=y$u}aOOyBL1guRO* zg+bXcnSYb|Iably7m-jmkf!LGrzD%p`q=zwk zw=t*iI=x^&_S94rtR5Z2*_}Dm``{*FD`#NsoVs6ZKkSVmoY~l@;eiE%gQ0lI1)eGH z2==R?virxybS+EhPnC!dEpvr4&q`DjOrTI-N*hgk(~&1`v}R^9DwjE8z* zJ<5V!qBr}Bcn<&g5gA@Jqsa1nQg6u>wyFWx_Hs8x$B%}i{aNbVwVqV#H6?4!{g|0! zj5QCWDeE%(#qR*e(g$ME(pg9|cf@4{CAbvbqTSqy50$k*)wi2s{md!i;kYMsu5LTM zTr?aYQB<0^%+#4cAZ!?S$Dpe%BdRU_&Xf6eLg`g>; zPNc{dlgzCcI?pqjp?)i=tm8EKW~9@zBq>rdaK^P6bA_!LJI-3Ypr6KkyfQ(rj=!bI zJ~~jH-xCtGepo0`7Qxwac<-^8l#D`2-rNcgn~lX>LwCBIR?FOG=Fb&xAbgER_9Esx zP9Be*w%oV3w849ygY+)HiB?TrCIY8P5Z0!GyvP*#%iQSde$47Cn*eQHX1vPEQr&V5 z=BQ~SD!3m)qZZNA-cRUm`&x0CSoiz~EFET?IATE)*CKm1ec0#&ad{$B`3{mhT#u~`bMH}QV|vMKpi z%z%NRnW&YW?TwOxzc>mN^JP zN)|NI(9Pa7##xgzwD-~kCv}`Y(@H;HaJG4C4>bQgLP1AHOSang!{|$Tl4V^Ju=*ym z@*989qZO6Z-|Gaq?^T48D?2W`8bZ-wGEMk$f(Ff4LUOH_xJxquVV=O^iMr5yzm6=9 zmD2c;Uzue%5@ERyDaNfk<%RV@PxC~~v~3}~19~`bcveU$B_qJkAK!W`CghnSr^^pX zb~x{(JUE*(Q;m9ZzRgjk3x3NF$DifNNMEUetIRd~GHVVsad%(qS-$vf@R_PwJ;+$P zJ3Bb7F~j{lXMW+mVu_iB~QR}9l=+!G>@2m`m>?s(S zXoEAaqR`*6ftEF_67oG0NU66rZ8%sh;&$wzJI8ubii0uoG6z6s}jJBPL&~{UhPkaYi&5TOhA~8fFVE+#NR%9XGSEk-5Sld8>r!-VA*F+l@2e zB$=UdSn`q22bQZ7(7mOr_&9bSxqL{3-pAoYw=D6K{Y0l9*@$a-xm07!-wl0~U8M0Y2%f%NrRHxyBzB(1&{6!b*y=j9eA-}fa z2r<4%#=fuV<6mINFH5v8$e@5V`gF5D|F0O4;YKr@ZeCA|vSaYv z%@O^2HPD>}#dPMCHi|#JA&a4*c&opS?)s{r`i2W^N9+>c_c_8j`lIj~FbG%fv+wz1 z3r-pvEbkZyu%OVbmIgTB)L6v)_Re!{zuDe7??Gf@Eqe2fR_d=f0Eed}*8o@jV z=(@R*-g3_J{Ha{pw%Qe~9a?1DIE~t_cNH5r&tVa6PqP*oQ{o zw=Safzk;#!Vk$I-kEE~HizwsueEK`*1Z}qNfo!kM)EGLA@-`bG(VF*@VjWGrr3bNp zjrg$g9KEvdkIkuz_!;AZT_!Q8>OTVsGVuuO48fiaA<%tqi3@?{bm_x2I&|fs$ll7G zjZ}Nwo7_oF=cPf`3+dT255&uCp{XzUJj?mAhyDXm#aYImqYK6Ct9i6@)m<@oHpP0K`>ktYVW^6Y1o0fzFN;O{tXm@!BFzR`8M zf7?gMy0gndz8^AemeZwcR#;uzK_!D%)3bI%rl9d%K7KcCU#^cmyE`Z+*9BiSkJ8cl zH{#s^ZK(8GK}QrbkW#*yipmwSHCYy`>pWr56iFWsmC>`>Bsw{X?|j2!QMx-En-^5j zWLbUKUrpj2b2K7d2*(~)(|&h%WF#%J`FDRmRTSG|0^e7rdSv61ix>TmUDo5Ofl!ed zCt1Ke`bp=GPz<{>H?O=v(ke+<$(g32vKkserJ}Q?Qy9k##Z@(LYQHlMckc&_cbivJ z@783@-_m?QdpztjuM>zt*3)M3MjC@1NvAUpxly`6myc_m2V%@(vj{6y8Vyr`f^Te zjus}Q?4_gkcyIg22%R5*!!z9J(}k`yHTpHB$OMajN7d*|@>X&>T0^&!o{2EdRn=T~ z;cnXjp`_CVF*RN3XM-)ywQZ;Hkr9}Y%y$&k0XUU16*1lIFnarB%r=X{TX}o>W*#Jp zHAd4Wi4MNZ(Wi5=m83mPgT7~fp(%fcVX5hJTHU#aHaqPSc82_YnKy_stpxae+Deaq zU!o}%LojXVeNs5XY(P0*3|H$U({O2;F4Y|#R}|q<=m*ak9b}ergj{cz(A31S^krx| zb!;9*SIovDssA3@&V6>pl}G4N+*mkkN8w_mGR$kg(M{$-_zc#z~;Y3wje!qvh@L6Y+U!ypE=#bF7{*=z~e(cFbBO>)o z%xj8-$+G@Qj$UeXMHVnohXg>ur=;)gloof+7hdZ-m;1?zw?^B?%W|umkh|Z zE8=}(D0#nkrD54hSQ?asF)xpaVP*F8W1X%jcJM)Ypc}vQl5upV2RxT#LgLv)vZrDK zg=}{ac8&tQK1kpeR!Oa@e1|n2B9e`3De24VEYx(n9Hv=P**N9es zCwvZ;r`fo)9IYuwvL^>^9Ab%tmmPy`pV%S+RZ0J^TSbB$;`)D?m)aD^?Epv?> zN8<`JmX9>5i|%`;F|TJCX-CQd`Q?2*IZ!Cp^Au0R#CItWE2JZch6t zE6WzE7$Kut@QB{1@=SBqRNmk5-(1Rl-LkPbA5$Zyt%-wo3h!vT`{Hn}E_oJ6qidIu zIPthbyp-JtayhRS9 zUG9Nh>pqGsW?{LNweT_rJGacF`znIp`91}*p z-%|U2HKDNNH%*s4N7lQ&cxPgQveb=|O&j;ocIJN@2V{^hbD^IupG{9WTOStO4LbYp z)534Iv?z8UHp!Y8%9TE2SO(Il+D*oTEaLy9a)dpi*fm9C9#g2F`Zr_?l%WhztsQe z&A2FpXQhzAOh4E^4#qdJn4Z>6pld@H(7KBrG{e16Oz69v(if&-+4lepxw@Fv*2QAu z&sOrxEuj5$Q%sR^LR6(1vd_q3!@q5`f2}*__g_S{ezUOqdIU1Km!Uj-JzX9XN4B5i z@H?lF#>BNtbUm{uj^EGvn~sv|$#JN; ze3P=@cTh3&4O*PdA!ikXnyD{n>9+ouZXr$O5oMC=dbRYfd4p)k7=&7z?^Iad1(&4R z0b;Cy!d|&#<8h1}mrlcm&HquuniO;|3de^R&$ zUQ2nYo)UN6A-JD6155TT73a-Ugc5VADDetyh?hrW%WH|KJ4WXA4Yd5{bJA%BR5vGL z1@lO~W+{ou27&mX)<{Mx{*#oMEuvn`Lj8N@ESYg1=dR5z>fY_KuxtB5FLN)6{99Y; z>ZTe}TsMSr`8jB284mk4IkMg3N76b0bXnaNedm?a&u{58H{G7h1DomUiXBAb|B&;> zJ{aQMkFNFQ--*L=QOs-;xl@i%a#=zyZRu#EPFZ)hszHu*>yBSftnV&dxJcVuR zlvo_#c}Z>nOfBY0w(-9EM1wj+g&X|BW!ST_gECIqpqrio={EafL}jaFv(_^z%R5W= zqMeZAz6Id%w+q+O($K{~YMh9Bk~_)E+3jtGZ*W+?x+ zgx>2_)3~p9$kRJX%o^!|)n5d*8@JQz4q51(@5lN1|HQ)Q*XZH1Oze+vqd)h`X^5dQ zsrvC5IVgso{QrLsJKDBs8;^6OW znl#!H_NB4-QkIO_#st^JlW^-1=U{d{7R}e0A(BA<&$0~NZiDpaoZE^SiEZ84S9?OJUfY(O9*41j!uW*eY@T7SKvus*@GVHkIVr8`B| z&eJq&?+SV_XcXF77qQQm*~RPCaQ*vC8seh@-^B}QexeK}m#WZ#=84$6Dvb(0_+x_4 zReE`Tzwk&k!{^*|teecN=ZZ#(u6sn%qiyKk!vc}0If6OLePK3y3aS^a;r!AxXr-5s zRBSBGEc3%QDKBxR_#NG>7>e{)`y`!-_GmnxikdF|VsI}xhzCB1jAO@N^*FTU@1@C_ z-2Yi?i_+TJ;^u=xv}A0XSYu%V^XQS#;r`Np%uU%KYeC0{pQeZ*vG^=&21V6Q@vX%K zVT)%_`FD1}1@*+kXJN=n3Kl`R2mOn9?abX?v49=rittv{d;O0rWqTP zreg#WzRW<#Rb$C}MHv*1V5Zk<_IofnTHZ@N(}?`q%h`YOXwzRQ5HXeQw)C%8XpPp+A|F2WnA~_79rf zHJD5_hKhz7U&)QQ9aK>8pLk)`PM1AYarFESI@&Y^ja>}kwLJiN(od+}_7~Z2BFMAqDZsGpyd3z+uR*}zRcWi$VO-+xz=}YK%dTy;pwe0Bp!ux%hqn4-`YfeUrmuTge z<vKMUcadvWlCWFSc)IRb$ zec&@^uVaBi)?5Pnllt@Xn(y)lg2=&Y z4cP>H;coX_8q93Ki)!)E51xW0Rasbczz%8k!*F}qKB6vpP%`80ScbQF?cGVSZ|t$F zkCk}Vl#6+k4qGMm667mV#@g?s__;4WFbB!~g{)ZPDh-8vX7sIeh4$fS5v(wP9{VMr zEI$HWiZZe4ik`R=FrWONDB$x^_C;F7m;Fd3T)r979l~v5Q`H>=XfOdLYoy1v58hV|^K7$LukvHB3UL(O5j5pNzO`Op#l$UGy{1g;NWAfYN&4mqUNL6>*Cs zb$_X7ln)*{a?f{o6haPp)ACcZpmw;PbdEKPwR=8O<>UFZE93_iKg~kF$D7EpJ%Exb ze^ctF$#^8KiQmOMTWM;i@jnL8`p%^i1EqyDM8Ng?lVVmti z8~gC-><^nq7B!ZXt1=o{o7JEg`iHzH@{C!101hsdN58ZCs9bS6du#1sz~^;;qf6A9 zI*OlH8|dN45%5j5CbazIS*Zra*>>e!{8H+1VhfdVkJ%zB2}dIhaF*{_#X-7a5_3f_ z)J?;q)@DjLr3}+g@xnn)6%nr7;bp$!bnfT8Ye+!B-6Api^%}7@CKx9QN-3+hE9#H1 zlUUJ{KBTjMH0A-dDjXAiAK#>NP6GicDIA`yRLO1T$cI$x^Jx3t4R1=R3 zyPzfKCTaCb#z*e`)oHq+lIH|U{=sN7bOP-iOp!)SR4Khd9DHjh`J2%$(${l7hu<~* z_Z88xB7vn&m9*&wcd5CL-*=%ZZg6kAWU3VAoOvKB2Hv10%qX7tY$Yvnyht<7*+~{O z&!lt92V(xEso4D_klrV8mUi(OQk;_j<-#018^nBz$_8?;OhCn&0OmEyL1#k{jNZwj z_jhO5jva*0Yjc=)caX~YIpaJuMl4K>#XsdJF+%n()$b!5;+#!jb1*(OhKV)@_6#ld zpjRt;Lc>WLWgGIiTN6d6^sdsO;^SmhY>g$q9dLN|1X}dURt)YO0fzt|>&ffJ|UlFm>(m^hx9?IGNWQwG(n6#CWb z*k2hh`fgUl_o*L+pQ$^#v;SBv~lwhDMV?X3Htl=(BmwgJ@ zwDT`nw0O`;e!fl!dQQ0ZNK*A8gI3G<kna}kz4@1sK zVe$JK`a3lN`rH-B8I*s=h%` zZ`?(4o#)7Ek%{DH!GB~B!_1F!+?7fuLG5oZM<9&oP@07m% z8;M71=CIva#2sB3h(4O=AINhpi-FwN$;S3E18CT41=7xKqZ7B5N$$Q)p|^%JQ2r!O zsPxvPg0oX_@oN}vteOtx`OL+?l8t+h%*f1L4LA5*bAGoCRV!BVETxgQ?+n7wsv+e3 z^9|k7ijX8Z%;aZiI9y{+SjjGM#`z3c82>v;x@tRU``QNKc81TPFRDp@o)vd0wv!ce zxOQuL!KQ01*$mG>)RL?GnM7hoPY2q<{w$x)xAbej4&B=FSEMpyV+!B7mcIzYY=z}w zM-+E~jpT86l^r@AZOC*t|Hk6w(3|H$4wDB#C8SWSjpcdT!oKh;F~plOVKnK|SUg=} zk5caPzE;wNy;&e<;XB#+cbZJhC)3fcMAF?R;iZQJvI%-fZncBm6?V5z91OV!*G0(X z4OA=5yeVTrNeK0g#A?wRGeE+ znma>LlRb?-Upq}-yj(F{9HD1^%v(}eNC7t+Y^H1&L(3D);oE*%yfGYvu3xv1%LX0s zWi&few2sn~+moPjBcH}?$wlHzW_|qR{QCSOLT{`)ec9=WMgRU#vG^x+e=#pAW)e!( zi)>mM%akDPjb`zb!k$m#9cp*3|S{_ICfQOxd{2pBn6Tq|s( ze$xEz+3Am&_k5tPtc$g8XOdhhb7pMV1^hAyfjgGd2en<2!j&ylr4fzJb=;%Vy&){T zhGK(<1=dNOrl@nPsZ7BdaY4)?Raze8|r?-MaP$_YAhJ<%n-LfpOO3{k4Ya^emeI9Cm7LuOz|)pOx; z>952gQw{PB(kRv{lay7~iMu_G;p4uI=1Z1{f-a^|o;Co}2l$|;cMzig>frk&<|58n zNq$3_{kz{)Y*-pVCemIQUq1z7ljAvi7fbeU*vHwUFPzuZh?~!p;VLgfbqD9tj}fDB zq&bCj`~IfcuXUkt!w8$0E0{A;9;V!r$SW=(b3X)O{=$;T#pFIQ2ejw8$SP%T zJxxciMK(~4(M0Np9$4!(4)ymZ<6Xf{p8M^kUA6pv&p1KDRDMuXks&*2vaxc1GU%-o zwYoHuo!mu9U(R?qP2DEUn761Ce~8Ab_D5^;efnu8i@M?L@Q_o+8lF))w`U@BkTI-o zMTmK?)#3X57PET})7Pw_IPGmuxG;uPHY}r?LF;Kx_n%@N&sL>3FQk9pchHvVzB%_T97p!-b1pG={OEM z3yR5+9S*y@MoG?F#-lXp3>7~Zim#K_l5B(`Dk2+644BQ?!g0{3^1`0;K&-W|&F;A} zuwUl{4QF=KX1k$kiyQhk&1F829Nx9ACzX||bYZBISl7=6!@L~v&wmm9`Td9n9uA@> zb$+;MG?vzV=iKSU7qsA;5xI2+(TqHA+`48*jz@aq$qHXMTBji>O$qmo^`!xZBj}F9 zD1urwU1hhx7KsU-_1Q@+&aXvE_+T7w^1_5u+StJPrT7WGp|`JDYlfI@ewhkb^9;W9RU4-21xidjl6>o)5bh=tl>Gz^gjnkGCUpX z!-Gin`#!pQP6}}o3`qO=Hd=~tnEiuu^n3cCZblAOU1S&LW*K~n8b*7TE1|o!6muF5 z)8oej5i~Rn<4y!%-ii!~ab7IWmXE-IvA4w3;Qwd|&)+okpHr#xS$fnSf?GE4XzPg? z;@C&d^KAaXx15Pc9(b4h%>K|Ts|0*r{hoZX6R_F5J6J!DrXFd`ZH`6p`Y(U};Aw>Q6tq<3Zr>S9DzMH^{h z&@eo6SV~n-bC9=zd9_2FpznK|9@g7oOI!t6@9m4haRboIEqmV>P^vCSX-KE$C(B?@y*yP;vT4+0jQ z6#kRqVeymigwF=H@ z@^~jlsSgscxZVH(W6aRpMVZbgY@tydCfKu7nN;^BVEoSCbmHqElvoa-`~VHSO)96y zd1uIat|FOzenPg7H6)V61Xyj_#e3F~VwI*A{q)#ROV)EwHD{2Rt`mkCau=v}2WLEt z2IGmtDP~DqA^hn%`pA61_tv8+f9PUbO&7aQTX z+iFtVQA-P}RtT>gf6N=f=L7D%ESo5YZg;t(9e$Bshsu+R!&NbDXB7=7lE>-`z^&WS z@Kv3Fg;n)p%&C#kAH9YaY1N9(iOhMbX`_?_bIG)K2-=O=eQdavN^%cS!E|&)O^+g)CV?WJvE#-Swz6c!68K?_K>E4MFPEznYlXDg0 zPaNc~#0|3R$2}V_9ms10K&!!!wr+2s*oYwfIr@#Lw*~(G7ly7m7O;%IMUSQrMSLH? zV8sMXE(j%X&g`apG`+Z=gwdypg&K4ByyNoexD$8Zp6Qd#mqc%k)blp28axUqTcuDmkePFz8>#=(R4iY5hHib-l!(F13fnOS+bfv! z{$DNS+?5yMS|f1NU>VsgTtZj>8YEuy5WIl^borH8G9 zXeqA(Cx_qAS(3GL-ZAy>}l19mD?ys~NQ_O{_A|$y& zEb6kBo)p_#m@t$58Dl0}LU-fSL(PUb?kZ2m&^<6e-v!X!+8|AH*(tyn(C96s76Sh3d?iE;L1 z#9Xl}vpsOD!;o`IhUB~}ku=TU(*1eKWV>At+WXw7sPmkSHZxw%%Vnc*X%8I!?SlhB zUu;6>PQm)c=g9G=4!^$wV7Xu<27l#_F?GYRue^_ODPxb|dz+TzShS&n90qy9b)hw` z=su+A&zH!3mpXLQ74eGqxK(O)=m=8AaD@bPdw)V0uDmOHEPPA37uW?5(JGqmq~SsM zc=S-U6T?31qps#H-IeslUCt&tM8@Hd?`KlaP^6&JEEv@#LG7|MeB5kcanc?~ovkoE z%mR^t%V^_9D;T-HBzwD7`pc~NLzjmkiSv>rj}0+%TZi~x1}IC=9*VCnFIOvPH<($ll)j_x`It)Kky%x$o;b&*Sh%$4PNY_wX{JVvYFoQ)xj0l zU@Y(`B++Iq>?$lnI``VH+A)lf-9 zS+7K5Mk42x%e1rQdtcG^>C32QA!j7st!D36?PVu=k|^O>37(aT;xOkq20X~X*Ao*+ zszV2Afi-MtV*y=SaF8uAki+3JN!~H#&iVm@orDJ@@5>n*EX7@_dLBTt!R9ZnbGu<)z$vBKyssxEm`>5@+9o9~o%sZw0e%qHr zh1~acX#F_Svz`F!r)y}lt3LWCOJYKU92)ci6^7uu zcO*i)!%1(26V_jdLeKgeOw!B|zqS@*_`9L(i%QlUHmyK0C*<{UtKE{5%z> zZ)l^>(!-gi7*Ptk>}b|>iyWy82x9H)%> zsm^~QuC`QDf=?y0Iq`;ji!Ragqo=9Pu8obf)7J1sO-aVe9HVzYi7h? zW!Ds32ux>};%#Xm?|2-VoP<#49{M>h8fT1B`TTl3UR#gB*%Mj_+Z>M64~y6_HWo#L z+))~4fbg(Mn8`Eq8YAqP=XVh#O+O%5EvJh&5A)&6JE|9xU9s(28C4vAPq$Sn>AdfE zQZ3y>6HY#*f~R@NR4{?`_+#wi`UqTkFAu|;?vUl()8A*x@a;w%MtJf0x65qO**~8J zotDAs+3GlMWQgEl+&y__9lQ98vwMsV(k!0sd&e1adpoYs8O<5EW|Bs)m%b!j8zp+L z@S48122wY7nV;lmZpCj7IGFvMdXo>3eOxblU!Ml6at~TKaU7hl-leCNe*3j&O~wEWjffAq(?x zUAqKt{rqu^_rl(6dr6!7zSFUWi4Zdt!uN6VxHIfC;jJOgW=!Qw4-MQFnu3=$z#F?y ztlJ|27d9Rs30;4*=nRs4lNTnx^QP43!%X<2D%P&>pre1ZaO?U$W;5?9bs9{kK^1G9 zUw)iu2xm|UAE0&j#QwjtTH0WNsp&DCyWxsq;rmHFd;vSB?+dxPIT#bj-#<4T@M?M) z&UB=r)KUZ@vd(# zw%}(a&OckfZ#Q-9=5ub&oUIqFV8`ax3TEt#BCRG7-p8H>RDGdcPm5V$-%@(JWG{Kv zC&ELi2rYAfWJPc{yENPkUDK9 zn90vp9TOGklwmP8_g<$o&hsgG%vqPb$GCzs6kaS7)s^+q^A3qjLtr0_~Ap2-m#?GEpQs;_lcHpPrCDbe_)^hW&!S4hY(us zWQVS=tzS4>JFrSigdk(T!4Z%X83fkTHi_VC6WAw^T^lO+u?|}4B>Tx+# zbuFUsKxYaG$>TkhJ1jTJ3f*!ku$gd}mfk8M#dqVdo&TE?-+$XAWU}LEq~o{w`8kn4 z&$qSHay@+J!m-OGM6#)f00<=#`~JPxRZCGIzI5cwIk1b73~*B*3>)nIQK6Fmds+0 zH@m@=d+mC&eUKe-k76^XQr&t_JQjC^*XT{mO{tKU`ttda@H|SmKbMZ0@UG~Y%e4Hc z28J|FCz+xzl&=G_KST(uD)$@$71c38TF&vw6PBI1A(m5i7}WxVsZmw&dkd2uG6P#^VWS>xz1Hza)G zXIl$@R6m(U!8LmL5k3i0a_>lQi89}@)X)g);dtCO1Jk#cp`_Ie8hln^5-AVoZ|75UyCd#tm`3n=WW~@`AV=ON(uST%#hMoz_T;mG*r?Lk{P$z;m{Bi zdfgDbSJlCJr!Qo~cj8+gDB*gXCelQokl!|Myv)m@iWl=Jp#C@ANR-2A$tdhqw!i`9 zEz~< zcJRi#V@h;TWd?#m94Nqre@_PUD0h7*X)BDPx3^sJI)I-Ge~7{Zxrn$@NzuZQw5B@% z-8>6;_~LSEP3K*ulR0Qr;@MA6U#gFqLPNuEvL4QSn6hd%^9nml*Jd7OEdvo$IbcBb zM|M%k)Z=tBd3rK=`p>`gq5tyPLvv7tzcU@z}(<`M4{F%PqYBBxetAo>le~ z;+?2uY5ZO=0jK^-k@cu9di~)5+1}+2prAUsKGlVt^tXn@p%k2(twmMF0TkeKf^IuJ zrc;k6;p9LZ9DfB;msSj>FYF@2f8zLiR3Gd5vPohd?@SmP;@I?c#IB0qvh+Dh{Bxg_ z_-j4cAq&P5oXcXL41)#o@b|jQF1;DYI8Fz)2UX!q=~Qu^dxoBy)B8F9F$pPoOq;cr zY`Gs`VMP_)?r)_wP42v0ZiQz;4eUjYEIgvB1#9n%K&EyAXB8c0+x6bDKNk}P!uR74 zzK^rlk|g*(PYoA^4d7x^gxrT3nCzN@wzq)@j>x0*a~cTR<%Oy%L+Ru^9el1|Lt&L` zn9_)B8kehv5yQMumUD>S<)0zZAx8zRUmmcQozir+?z&))?H|%l_u>9=E#!UiqDMz2 zlFuzStcbP7H}fcj@LfQ`_hU3GNWill4yfmOUY(mwblRhvUE4bnOP_OZ`pX*bu}FsY z6-(a5(!&~^T-^UvK|R|pvOk6zsMGpQ8-LYN&cUCQ{;G{t-*Ljv_a(S&KbFK)h3fbR(zH{%s8`$#OG=7wBSZ`4%Q#wVQM*R+9N94RW$BqX^3!++1crA-wnU z4g;*`eIzE_&w>8EXqx}{Fwcp#(Qo@~xL2ujC$a%QGY*oC>r?V}4B(u9hLwkf>2bnB zmUSWlLi1|5t1A*2laH{Wju8+M^Tiu~ZOTavrK_)+soO-_CrOZVM*?DgR`-KyAM@{3|)BzgVJQEHEoNFCA60ug3XkIz*Gw+IG`G>ENcxNQm z^ra(fwj|Dc*27A5S-98ml`bVhd&)0LI_3=NV})$|4MkX*c)G1Qw`aX&&#;xQSw}y#xNZ zl~W?m2V8YNMDb6AxT8=HOZgn;?J3^N_IJR8yq|PLvWx1~Q)%Gv0HvMCpgn`f*#5d% z$P9bOdR8k#ly^RqQasVv#@QUvJZHPLfyVqZz|hQ2(ip@2*k9u@?B5HfVKWX73sWFD zW+q%l6_Q?2AijN8MaX~@?4u?^HuogGF=LqYpCaCTI7$!I7P5$SMI7f-gdZOg$Y4V+ zH4XHz4CQdzaakF6J7%CiNStz_M$qMEKAU?HhY5{h=ua)ebJGSYC`*H(GG`pPb<;WL z(eRtA3-c@&lyA3y+{-BZx?_#Eg-2-e;Q&^src3WfM`81mBsgFkV<6L#6KV}JXIsR& zTqNJU+{fkel3b%N)2X1NG%4B?ueRsWz8@C!HLRHLZM4bRR!Cs_LICa30^UR4O1AIv z;Se~Cwru@H!h@O^)X_zAZ!GTgZFI`Mtjc6Ew$K8e&3H*}P`K*B{m*v~v3=|I9pQGw=0bmeyaxl5I0_Q1cAQte=Iq;=?gNyA--bQn={CnP=5TxKw3`b@!LB znXft5X!%vPOOVVW_`bOI)=b#C>?e`u7Cgh7Mo&y%(EBSZsJd)1Qw-9_GT$GR6V%3p zw+>L**A78l-D>9Fql66)_%r&`M0lOBLi3wF6v}^=n}K?CU3oYfug{@!&T&{A_nd-c zaq~xnaHyia4FFp*Ke0M0Y^TeUVRLr;EO3i*fbUb}5 zMpfUUid_RV`u8*}+7u42*P6JpmuF#~Un2$iPwZ=0DwOVTp#%0GY1@Vt`qI9cgqu^y z{z)*JIVXGfSyNnlQN&r?suXJ=iUQsvx8S?T#yR=4Z2U&%^{bpMTcVC9dGZKfp#<^y z>hS2iO$tn%Hl4gguR;^3a~z-FAK#0Boy=W&~Q zFYwQ=n8mE^doh+LZK0iyb75l~jm@cAlpS`5!mIiBGsvC5+J4lx>L^`v>Zd354IaZt8YA-m%e3x=_u_P6^Xe2*3ci>+0>aYgDW8- zcxLpO><)gTJ*S_N+nb?iA1OfaW_5&Ij>hEUmRObkkR^T&Bjrwe)EuZ_yNk#2%%U}x zjLK)Zf${WJV2S3}EmTw%f}bC@kOI#>e%~U(^d>B&w83%Mm$R22c3YV7XxbYA?DoT@lm&uHg)e1@umaJGU#YQ}8Dn zl9%{Ln|b#$KHMI!KUiba3`Iu6wDC{k92xHRBfokV6n^5lw>yexvP$qm;yM! z6I0Z)@N|VMv^_S`DwQ~#JTsqJN>4_7fITK1i^SC+E5WRjJd6K!7G!saL+^|)3}4LR zjEt3JG?BBT-De_YKKCPrT&IsVK{O|F7+c<4fGmn6L!OcJDRF0B-wChux=7E2=dvnX zaCTuQ>zr523^u30VcJCG3GQ-^(Rlc5G{%MM9P}IW{A^nT3sYx69?wZh1|t7xB@N{r zw@Y$y`1BvoBMQc$R;`RX7N3yonI!D!w;=Ou2kzBSr!6!Ihh#WgL|hG?&*O2CobcUv zHBBD1hZziRB8QRyd{ySm)ujo{S*Q@@B9{dp9M-b@rEysKlV_E7%Ai((KNq@rW_yHy zZU;Z4{J=}}(|GA0mOa*XE1B$DJ86MRU2FA$XQdoIuRZ-|}&5q0h^zh1$XXAV;1 z^nUXFVvmUVE9k;{W#s5^ue^gi%=b7km1P0g$QdllG;Fa(csMF=%F&J%N30k=1j1XZ z8T-V)XYJ_sYxZ->zKDesPcT7dp@q34Npr%Fs7MmI`+# zU}eNS%By_Aik290R)i0Jp@ps=TtN%@oMv`jD3pUG@Uy9r&2B41abXNoY8ipNB}d8E zavM$m?1beuahSg<5%H#uP~+XNQrqDWQmGO6ZBN9C#tssnm4(TBe$yEKI(Syp66w3+ z#JUl<{Wl5Q@(ZzT<8I1%;m*(gyV>eg1?0|`LjAQ!3|kh9gpwj0K3a&((o}j{Btrpn z8feJ!u`I^m32k33ATr;9i$tJF3`sx4q;=2iQTjXqS-Q%Q-m3}igah>VTLF~Dj>Ot6->5W6jMlvfrl8ZIbh*D2UtbGj z|Fi!&fw&8$M-u+-{P!6?9kF?*h*f-Keu`Q6_go5gyCYB?FToD1ui;#q4{SK+U@O^H zQg2fSjd~@E-Q>#m{3hs%;_d)dJ%kl| zl`(0clcJtF)AS|2c<4QcPJEq38t>cLhoc72%dn>QMPqSkvoM--AJEOtM&@-=A4z*3 zQq92}0jUkpiT5k$awq3{@n_!q<=@Cf$Qt8^-KJl*gWON=E_llw&(hPTqWpXp4Vy9% zYjTp&Qn8joUKnH8pZ9Ft%cta(f0_ml+F-cp4idBH4Do8tg?r^qI$N7)dLwtE<|gAm zPXpS^b7`8BkI>gODfo~3O>#vJ(uyQatei)<7?FjwQ9;yiCrhzaa=0Tp9-ldLbNeFuOwlz=9l7B3sQx!?<{yHh1_5DXv zb7T45?Kmqt_=YBoeMeKbyJCU1E-BU-!T5DVAILdCQi!SnZL+2%HXH1qtJ##ld;eG5TP ziU6k_T=2_$8QrcI$Jw2(RPVM%5Nqc{m!=s|yhJqL_w%k}sv7ivFQ-$AA<&(Fi`|_# z9pV2Ol5@5JwD9hor5Xa?XD%isUOJuv<0j* zC1{6#F04NsW_oIokbRthE4yZ);g1z!(mqhfn+(zzug#8m@|A)9U9uHkO8@a0+_IIS zcw$^n(mYqB)29K=gM7yN@D14x)4_|EJ_!65g=uP`>*cT@&H{Q}UpvJ{qLp@@w2p@U!lw{H)|!4Fz+n)iydul*#I z#75@wJO#&6V^Ov23Ud=3g;#BVspML>Kv~R}{XNi4v$x4XG(ZzSZv7?SxBCPovGz^_ z7g|~8+D+8pt%=k(p?J_V1W7|VQ}D7Wb`-@6B6ZB6nr{mY@n*ppKL4wEJ(-HQTl@D8 zd3=AnmUdNHGift77@5S;RfklV#&CanEbkrv^`dpbmI&@SDkv-*&8+2a(j@MnGyU96 zefp9JOLyUC;tJ9+e>PxBIIL7Moy;|Av^4SZyB zbtB=V_M1K}%3>M!!ua`jG&$C~pw0g!W!CK_(FM!t7H1ZBDe&K;hdL~#PRHkq7wMSq z5WYiFfvk%cHas$+b=&#gSz!crTjbzW{0)kH6pBvm5j0ww^I8uVGGWs{f}vC1(3ns= z42*1~aaY%n{B?O;Z5@MI+8I#xj6&kSK=@oAjrWRtkGWr!8S=mV62;wY%3N#QvQofj z;Rd#FcLL9i@~rIZCsfiChB0!paAr~n&ynn>jJZwpqf-u3&Qz1ea24_noGb9!T20UX z%EGTW9;XGBbbYlH&zW;Z(8NGsi!MccFQSjj>bNWZ1m)hSrdMZ$p*;|b%A70|a5q?o zR2Z$A*UVnr;CUn|W9}C{%p&c%i_@u(!e{Ov^@JjHKjrL-L%gGQ*^`77%^;Fz2dC;l z$ap^`4dW>^!jiwQ?T2yqXBaBGjbUWyhnqr^sV!1~(CS$@HTOR{;<$@V+~>$1?YTn+ z+y`$aeVTRuP=RHs5~7BC;NCq`c8z;ZBrc1?qLnjcbjMJ1`!!n8d`<9U$2sbmQB7Ae zEb#BJ7mf9B#Nw?yOMdSc=L#IBT>>*&Yd4Y_{8J&mXs%Pik!m_<7JyNF7rLp%6&dH& z&?W@~O#P#WnwaghY508Ft|p0drG2bm&=jT43aI`5mzrXiP;^Tuh3o&|e3hBFIo};) z-;csbKJ(Il=>V~nDQMo5gMxx|$VWV*^};q7Hr@{kVVZPihY6jJ;%vd6D|wG&HcQC% z$A&i*tdKLR>osQLPU8m3EYT)uzT2{Qu4ay2U+B>G400Nns0UufdkJqOmi&>KCu+*@031*QF3Xj68FzEv09 zkem#a)1mOH=R8C~09yIiUl|+YfkYn_Y5B zEsLpmw;J6y)|7)Dh3UtUF>+ zVWEUkxi&azaE?~-KJT8CEmT-O6*+&Nu^%^QA+k6F0hU_@3bmYVJ3|g7FDK&GM$WhN zLEDKd3S614QajEe{B4VtMtl|`)fXC z;>dsmP2C`cS_wb=7|-)3jaO-Kei{~$Elw15l8;L&#;R=f#eJ7 zC~%q+eainyyE1v_eCs8`?-D!`nS^~+<*Z-k2TigahB4g5SbBFg@rD+KbAHnvF?W0! z?}@6bwoGbKK9%-Nq15pTc-%S)k-B4W_uf>&Yo6IG3>HF6QZu{Xbc6e+c-JGclH5P# z!tshT>7KaEd2F7%b5n@rSISwTFhB3kk-}Dyal{_@z_hlJ?BcJo&guo!^gEPRIm^LB zMxEwQEvF+fqag7?6KlRqg$d89ObOP&^nyF=^;OR1wOLFJ`};}K@B*Ee83C!5JP6rr zq>(*CadG8gmN(XmP74Rqb)kQhrFx4+b#~C#H~j9xb5}Wm%CM2QNiDIrqq7t0U5M%7y5@T+Si{_c#$m-7sv;z?*5bjCqGgLP|fre415ac;<`D*c1B zYQr45U?z`7zAs(BF$pSsHWQrxklpz1g^mMDDO2|>*(h?h5YKdem~F{!EQrA7`*Qfk zU18^@y``H%7btCdF9kO0K5K#7Z3)9==Um47g{kax4`~rIOTN9UR>`hQ7N^ z#B77fFtkcQ#4u|-o>xQKe3u;XQVfm(jD-F5uyyuC?uj+c!94>in&)Vk zxH_Kh$wEg%Fum|I!+oAH{qlA-eG_b9pQQ7-%V8$gjfll2&a-gWnF{d((v*17mvc%& zU}Toc`N<3>b1ZTF&Nt=}GYxVER%kCB0$E2F?i=UcM?UMSv{uELiAGM%cO`Hx{Qx~w z$be~T1((c$KT`y>eF{F-4BV12XW%Jf}@%v{rjl0Cz zUVojSDYcL)l02F2-Ip}7sfyC?38DQ@33pdGqc6IK%nH|$c~KnAH2F%er!Js7myYv& zAFwFl1C5*6O;3|!u>OP_uJg{6lLH4*p9wTuuvAb8nI7>0+qyUC?~)!X9s*gx+G# zrrj|P=2l0jmgm@|tJ>MyBRS+YS{I$?f6|mOkLcS!Lain5Ebr&s8|`^? z<_yYV!(qYaLyfX!*qN3MpG*br8yXG!q;^(tClEV6GFmyMn%=B2#+7W&=FR&nIJeM~ z+Oon(YjMZ_GclZ(cT?NJFU(g~2~W#|AUU!G`XwbOJ)Dn8Hme0Mr;*$& zvN6AE21ed5qa`O=N$jm9KE<7767s#|dm#bO#$2Tq)s^I&$UC{0%%Cf?o{kJQFrf@1 z3eng~f9vgVjPuBs9U6i0hx}12w})~bCD7E_W9Y-O!_?zF9ABTzghk~W!SD_0`0tP@ zwcKbX*P#p-jt4<^sx(3iMKLq^9rGqn~AL9(!#8{lVFr5Bl(;<01niBPOVBlLy zhlD2!j%i9WO-E-aIO<~-&tYpl8G@p?u{3x`1ErmYU@V)J98Phx6)A?tyl$#hm(OWSKQDA>>nohO~}kg~pS+XW_omJ6h&-pT` zTd1aC23u28j3YT({|H^FgkJF-~*Gq7pR?^~3L$q@j(|{N zy$$0qWU~WB-_&Fp*G$o%QB8d}8cFfbe}akcH`A@ZaX4o@4F2AK=@8EuI5x#&_M1rf zomAxxFwVZz(!rg@HmEgrXI+yf;l=tUI<{;!IoNnZR5la3cB)AKy^wBA*Qbj;#WYh_ z0dqCy3N9zx3&wM%aKeflG=9m%{dGZ56B+^IPcxADz!t~!WN~P;1itA8BRR|$RwrIl z)%kqXNDPBz&<%P;Cux%QHL_dWLta0U(7zj~-K!3C2g7mGT{3t+nz36`p+8xQBE*Z4 z{!xL7mhyA-&O3Dd%6=-;nM6x@_Hflw&QCk;4J*5u_%u2Z-?{_{Nz;YG&71UHVF~@X z_>}y3hx5#ZSeCDmhtTbss9!6<9-fhl772rf(`PDa`bBp?PNe-$Cc<#2C^4+dlXo=aq$l8f5j zMO4to=2LY8-ioAq%piY6W!@0w5&OvJ_b%g z=8Kaw+Qb)9T}z!Fg0teriQx6?44Sz^kAwt^>4%9uQn;tb>~sWlZ|xS`)mX>^J-jfk z#2n^sJK03np|m@47kQiSCYMdYcxD-bnmzXDc>kRug3USafcp+pzcV|^)7&b`6c0vpQIccq*k zS#T>?C)&S;z4{l2Wv3%ZWrR5_>bWRJbDqWe9Vrs43Rwl~L_v7o_`-gZ9W?!T!yaB)u+_rO%QfN27FVKVu88OgFSv zPQ&6DGu%v-KxpLyYG0;;ju>Gaw-JF-p(Vz1w%&H0^OYKw4wt*5;J?oXlg>utnUVtb zWT=yb)kWrRn1k@U4P<{Z4f2YsNLMD9u02gf)Xr#l)I4A#?<>OfjV}s@+u~f;X|g-; zmaL!MrvURb$UKhXc^o^0@4Q9Vx>r(AWI4?@9fttr1e{DbO82cF(9Cpa)K;28u}cr_ z4@aY*(U7_(II%PvxB^E0x;vp zZ2J2~2vZho)6a`7Bp5jsl||ga*sMj5HuclAwWVb#5E4th1oD%1Iu9^tD{9)8n z>H+uaa@t@TPO+=CnAq5@ROI7?4?U$=_(Pd?yl$X>R<2m%Cx#79vPhnGh8|4jF3qW7 zNZKZk)|N0#F=(RV!#sCn^nwl?n95YE7Sm__Ep%D4pN47eqp$L>+2FAnI+n$|q(e%1 zF5igz6>bYMR?Xy}lhbfN*co>UJP=i6j?fe}D1A}H44!KkW;6uVam8r(+CpMEI*{Yp z)FtXdI9QcMQKPu~#Xla^bFY)*ml(dwxW*S@{46_70m~N#VEi##N(^_QFC&LRA>B!^ zb^jK+WZ+75GaL~&y4Ufw*$Kg(4d>ZVdC;CshnR0&9&2NlNJ*=n>aFAOXHo+lJX`1F zZX<(B^E>F`_F~A2Wd)Yzy zE0cmveSfGR=Qs79*24Yu5p1di=Smz5<2}&X^vHi4l`gKL9b%=}mC4VpU8dOj-T^*> z|LCH%9&Q%7W7epRRQ;wy;9x%s`6_2vP=ym_^4|8^@b@e^w3b@boH!Ti3SFDVJ&z+M z;)cc$%&RJ8ui6h$URp8!=`##oN+y3vAxu~ngEhV`d{;Y`-^Vmz-T93MmkL8psf}J= z7NheOq4ZTM79MFM;VI}Q>An=?yZGW3|JVxr9i&(p zksiK5r7!~YdIX#~8p4}WF10jsT9OJos zXVE})os+OWpLbTDkHvf|IXJZBVB0oN8oDf+TuojIY6`~Sg{Ub;S@6Al=K%`4zL%wh z%^|g}WmGX~JMa10^XKzUL9dcK9lfncZ*-?&;o3H8|H=Jt3SVf53TGae4#%!{A`~2I zN_7EeC~b{6U3+1V!ZY%?%;#U(a!W|Pc?QLv^+b6}0Ca|KB+=hlv^n!SS%+VzSymij zs;Y@#Z+EO+vx2mqs8e>i9>&<8puN5eDJWDN*WTEpQ)nBB^DMM=Svb_VU!g`)i%Ff` z${HSBVaGo6j?$E=+@H&!V8U~*Vq z-vmHPesQK1O7T^^@Q+$T;OwudTJU^Tj zE}P6eBja$4^T|w$LTD<_{YUMch85gzu;H90q=JL#mv=FyYoDTZeezU2d?OuMIvE2M zym#l!xuw%|@u=CyMvwQS50=vViRvhpKE`C#d|=U-gimLcarr-EQn2zu!P0b` zI4}dFG-NP$odBnN^|5rBC#q|$*l$&5oaS7-^`j?I+RGKB;@mE{-;j)xii4EyYeab` zjBsP4GhWu3;GLu$X4<(hTg6gLzcY$OuH;OBm&TkA9DugAP3+9)I4I@+N6A%J$lt_` zV!E^O^_e=#Gk7=6XFhe^5(X`hhSm5a$mD3Dk(VJVzv^+{usGQdzNNagHgv`#1z*$t zFy^O37qs4xT4pqMyY1tdo_cEDK9lFx+F8&m&Nvtwh0`^WP&b;!%nfa5?E~JQS?b97 z1@3s;t-)Dp@+4d{Kuf&+*wbAfXnsx^48PP-YndZrgWj^<)$<)MpYq4@W!cE^j>Omc z@!Y>9PGSdsQ&7)p`j7W}xK7qZ&kLTEDm*XK&hgRhbB&r-_W{(;m| zgURZU556@Ou$m=~(D5i^HS5*jANH5c@m4_jpCob+$%A!p3W5}Fl5%(m1#>s)n$JN9 z+;v!BTB$_W)83I+<1_(+A1-og~YrxMH zzu(g57aJ*ZaTF^kyG46krtn#_53D0|p?%$oKljQItACJfo+FL1vlPfw+=U8a80`32 zuGi)=Id;#Zd6y^Cd(p{w{waj4=8uGGSUOJnKPThmx#W{>imS=9=~IvseCPJj2F_o# z*XX0&Jp1`=qyqOED`WNE8Q7lvnZm9rVW`9n{YBdp0Pp4@py;E>E)8vWro{pZD9FX-rTehT$wHl!JmA_gRIa$pp0bha~dhyO7BwI==3$t`!lL0VV@HG z@Q;DNwh{!=VsNS-3!7Q9xEI5Yjybf`j>9_m@qG$y5PHH27i}V)tR0#GcK-F06Egec7 z+(Gzj;y!w4Q7>TUIw;yyoZ8!5AbC6oi5&xUsPYqq$n)LSiX76oXN}c)k}w(JLmT!) z3uHM{*f(nt-JTZ#<2#}lb!iDZ`Pvv}=?}?u<1>Drj##D~QfjV=#+cF9k zZ^xi^gc*kPM4_0odh2dKrk-F|N;S{Mi~&n_^u`u?C1!>xR_6smyVUSv#tnAkv7+E| zST3FegM;S8J8J`lW0V^5s3$o}U;HYb_8c;)2aDNJm^-|w`tR)GDg3b37? zh;7GshHZ>BE^bo8ZmtD6A5uXxqzCC~AkUS2nTcJ)FHp`L-nocOhW!;^bXN0zC(rr6 zzBn0Q{fA&bpTjRqACEoXXOP8(kr3MRkM^%Nf*R)uzft{3QvC)<+O3GS4Q>!)wum~n zfvH{dMbEx6>aD9|-&)HZMfvQppU>AfTB)Oo=b1Meb0={#=N)ajgkJxUs*fiLf~QPn;HpME}~XAh3Dt|nc0Ki6jC@={5&A{MnNqwv1604E+qKxY+a z3n;(fGm>3o@o)l~PPVf8gWTI5KLas_skoW6mM)#D69l-cFeOQAjIOL;vKO~F#T4h^ zYRD??>Y9lz-#4UiDU&Ws7?NG26#{tfYv+D_+vc#(tUdv}ju!E4nlbh8-SM znc2tYM&Dwhe-rs#Q=f zjK`1t4!9#W6U$51Q(-^%7LmjPqoEP#T#^>UX`kU zJJQXa+R&+Mrgb4UxSJosh6m3hkyn2xg71+J%BIuL(fZWAx0Rl(JxWS%BB=bK6{g7- z(HNCZ5-(JNL24P68%_gTSHk}4ET$)h+Q1y1TTB&$2&aJfjjj-^ofw2aMPTzgLvj5> zEF7|v@uxq8LJn~Mv(i>tAGerZ@oc}*0nYMF<6VZkS!@Q+v3_iMM^QPpba>5uDtKm3 z;pXu;qLB{Iec8~DE2n@F`$)WZJn(rU#u`}QVOBfc*)bJM`26R|rY>@;eZee_52Lwl zbJ;hIE;`Q7{<2?2;;6|+!Zssp7_W!a!FZml8G+{$I_Y=+F1C`C5!)&cPkmGLDvMz5 zbXROIeAJi}-1#_0fLezdPU7hZPsoz%7$}AmvG-5RUeAr2n>+C7+gx<3?wzAI~}x97Q_^`0YE=MTs2$A0)@KZka=$fNs7E_x=?baE{vg5a1cdHuVE=A$7GTvysvO@(mtrq* zr&j`I4f#*dbRdX2{^+9_X)u0}2@}{Q7&7zg^Rb+6BVdk0)tUu-k6aGBg z9jiwH-IDlX69|=eaxk^$+ z;l8L*n@s`j#yGf~bEF6RX~NP#ro6wMYP@4Hcy%;uXmY11uP%~HEBEm36`((XuuGQn zAEcL4!3F_VF5phG|D)(U9CGm5Fx()eG-=V&Aeuy}_dIt?kxE+HA{9y6+8Nm^*()>I zC0nwkkWCVi%@E|m!9{4oO3$P?2ExG*_k9YT?hI{xL`l(X z5ytcK(!oZg;(eQnC&nVlUIv=a?a=i(uz6E5In=7-FYkd5H8Wpo;5#~cx|+US=X1$0 z7Wt*yB+hlmDQL9`tatEU<5`X5Z)ze@a1%Yv?~8oKea*;EP=Nr>yv3~DA!RiWFGPfm7?Is3RIe_v3j!VVgvvx`c!NcA3J5mD%Zuv-@ zKY}(e8!{wyDu3=Yu(~b|DqR8DO#zNiR#Wi}$0cFfIkh7k#AS7!#bYY7y1_GcfAiQ1SWkeX;9VJeCfSUN!_*B(v{RE{c|f4`g4>7`zLK z!&$jhXkVQ|;fAVwM;Zl}C)1o71N?AdVJ@j?n$if(Hj2BDMlWrfDb}W0{#@j~`r4)&*LaSy#KjDDoRzC8nVef?;kK{psIR>Pi4`6$~kn+`Ke zWbfqL^sB}nR;O3c1olX(9%8mYA3w_MTLAmQA2e4koL)CAC)S)Uy4I^%vxsfZ8Y zxALvtIEMkYmyA~61x1lHe%{(Cb+vDqiofOUdnyB_^u)OOH4~G{bbbBtcj!uQ! z*0q#YV2I+ya`gPUC1&>J*==Jg>VMAxgZuV|k&6pmyxB;;0W)d!{sUyhEWHWkeNdRtOr2@nF`Rq6Ci~x0aM5Gx zVtmA@NoxSMELbfz_IJZP9b;V6)2FRvWrRf$lqXvNk^3K&IGm=wMP~Fh(hT2&|KFch zfZReQWXNr&GG%wnIWdgh&13(|;FlEK=E)3|HbZ%^l$PBiV? zZi-FCeQCudX)&7}q$BNjlWgY((pc0Rg;^`9;xuvocI6XTA9;$An=$0U0X^cOO9yn>+l`&EkwDnUIO>~jq_Rl!^I9fLI-EAq8{~m@IA&mfPUf7k5MBt<|#B>4u;-JenTv2q8Pp> zG)!`Zv~f8tit!@#V*WZ_zQgzA1l+lA0pofLB$*9FawTWw#&AEOmNPuNvT;_AojZ@M zX}gpcmfM(9lkILH+gOOksgEfl<}JwpV1r6c zZ@hZV9IEUYG=Y0c1^cbAStA~`B{}?=?St5P)>yZ#0Nwu;;BH{0C~mHxz;h93*wjYO z#|NXrVLJPPHj>S}FzlVF2IH+m@ZZF>;^OSS$WjhK*X#vU{@5A=`feaMb{g7ka>FB= zt#qNQEOvf0W9MNt)kqQDJ1~z-Di!g;`i%H*@HJ5`ql6pHBT&=Q7rtJrNqW?0YPk}Q zBY&7>W}*S<`ElrMc|=d`wo44A4&|P`3bVD-C3e@ikMg}-$PYY1BTG%_^URSn@W*00 zV}HZReO6CQ;hpfaY5l3dIFNlZ-6_bcAD!Ab4j+~dM9S-*Wc!9t)4P~<8?L9JFZ^NB z-xBj{0&sJg4Kg0@q9V?3pV&21a!l76N!?3n{hBc}#$}pVx9tVzJ7 z?a;?MUP$6+QegQZ`ZcOr1RAH{z4Kzam6wJ{myJ}!??Ky;TQqK&A=dg#M=YOVn|s#K zXOqw3z^Sna-=&R89~-<y|OA7y{ifU=j68nZBzUncRtZ=4N1#UEI z;z)Y;(TjfT22qzyDUfe?O`FgAkn}ehq%KLI(agfSaIA&AUu3}W!ymfgkOld?*;HOA z!*>-^JbLShGD!&Y6$_wX?~5a`yQ!~8M3tXAhKKiuyx9oo+7HLC{7SLd>mIfG#S6DP z>~{Mv6>A6RVcec58asF_W~_FCxBXFeRqIjb!E_8f@=?Saex?MUk#t<$jJCOJqR4># zO!Zqxt)ByaHn790IvlIqpU^&eOX?bMgyy#9ASft|T6+U}jkoA+p%xX~S}uP4*A-9u z%oB0C!QA1_!-xC#Xkw8Gbuy!AL4`AtooYoXGw4So7Sr+hayWDPx(HoAMxy$FGsFJe z=^ws|o{AN;^Y0w0eaoEhNAa-vBS*P>XYu-IPV!fVQ`(QmVriY6h>b0T*Ue^8p5r5S zOjgF0@-)QNl~BZYf6k*1r#rUAl5Ar`G33MrG1$%!S>*$eYj}>{m3D{wMV^H+rRUzBi1ylzS+$I0S*;QsKQK-D&8L5-Q%2 zAj(?&Aug2AyjD;$cg@Eh>qXvM*fE^W`yh=$Xt!^XEarT@sg^yWm^*N_{3xB*FQzWh z6ESCu3);#C^8BKa@O^JXe%XVdnqeAL7$J zcX%>$@8a;~v~frdHt0Pj?Gny&bKXEx&J9mD^`ggPU2*-y9LM+nX9V;ef#li;wDr&* zT3yN=x#uHLJMjfQb>QFDJDkC7H^ek`c3!r~1EXGw3L~DaapzyC8sfDq}|n2ZZBir9QkajzGGFKfbPH)?qhIJl@nMIe5Yq zznE{aZAhk&njS>c8ocr89{0dgheERLGugK&;%s9&a|+mB>U@?KMi-OXltvo=&jf?* z2jj-bNwB>ULSAFE5OHoHIqY3TQu}0~rDBC&k=)}b-$R!DKZxV4X`E$p!;UR{MwoG) zd%g{=Qi*{Pe}}$&AoS?$jmN=GxL@udR%%<&xJ|auuJxpmJaa!&{)AR?t~VksnmXE( zxi9vJCf>26t?yH@aNlSIMQPzehXMs3A140!z2IKUXfzk(VQhgWW__v^3Bwn2Kfs=y z)tXR|8v^g{1MzwI9-31VMwgU(Lg(dn-cvv2d(Re;-W&!!&+THY|4iE5Cjf36`FqOW z330TQ9QXaEs;^h5>G2{u^MIMIGwkqZnm)FKNulIaAQXow;I0qvcKd%JujE9SwcHX{ zl}F-%`)u0WBO7Brbf?kp4DrHrxj5sU#Tl(;+S4`_&EvE2$14Mk&Hf0#!#TF5R46KW zz-(_dZQMPQCjVS5iO**jo{h9P;lEq_cjmT}|Lrskif3PrhZ~0O48sw4LVi79GuBPcX>3oD6?A_0i z_4~)vZpYoJx}k_`xJDj{n`smc##g&5;%9A7{O0|nm^BQ0CgtJvo1VCROa|{Noe(`@ z8-2dY?`nSg&YP%%j8kqfqe1+x?OD>Kf-_3P00gqDaqbTQ8*W0MrPkE1iiGw zkb4=JU&7wvsH=26zy^JJf7GnVKB$FVFk$Kddh#Y3zxnq&_|Fc}d$2OKO?8Fj!$~^* z=cvR($%E974TWwHvog2kLh>UXqh?vcYLp4utrT%|?>TbfzUPeZi7?gZ52Gjjps1xG zX;B(SrQCDh6S-YzCao09IjeWencp%G2SYJqJ)O7VZkF6js=T3%Vt*wXHd+REMyX+R z$qKq?)ti6UR3ZD;h`Rhz#;zmp=+MxyXyMMRO0YX_1#jYA&Pe1=%fdW+W?WpEEouK1 zN4I5qLHmjsj>Y9bwq^h+=xNhxFV3~CFJ-skNYNabO-BNl^D;F7=D+J`)PfXt%2bi` zFe$9p@JG~e4J_I_pI*Iiq{F8*#T4f(v8yx>`&~j2o<9WzrJ=Ng`(e_DhN7n4mv)}x zUVSfRC|^2E58}KqSnUt3DtsYY`5sg{qc`~<%q7jD3hF=J9NANtC+IbSK6J1TNCY5a z*?ZA%)gH=NJ`l=L>KJug2V*5aMaxfXJUS4Euw)~+XQ&`7{4zcKoQ`~laLoQO5%hq$ zVDgz{w&*n3GJEmrX=XVx>*KQS3Yr$$ES`jo!Y`hW4Sgx?R5#s>EDk=Sl_h!jvbGQ& z0b8lD&vW|v%@W>z{jsC{ALY#|K&ARoDzvr6(gkA?m;N91?CwrSP7WdaQQYHk+S5}D;k8>_a#*Ki`h+@G3ef$hl)2raPgGKiu`d%_?|+m=)Sk!3#dqP`Jt98P$ zCN>+1^N!FlBV*pT`Jk7}Kl)V1oZ@-R5!~}sTsSZkvj;a)&B!9^`a1@y*Y46B^c|N{=NlO^-v+D_MG$y^RjoYl^4YQ7E4fi3lG*Oh7JsjMORK z?GhQpE~GQ1d&x#S0&y3=(3f@HNio?&eE2>L{bzKN?4dW*d&w@c<8G(QnCE0t_JY3V zKNL6lZQZo#shECDks{tWpwBt>7d8@X^1>0fuYi6Ib|Uw}=d^O=2qE(1G5RTgJO2|% zoV$kSE+JRK~YA^ zH0HEAMW|G=d;U0;d3aGo!X+xz*CP1zr7i5Z*cktkbPT%))jz>F9QJ`eZ(c!=Co00zMcl_6ANfu-4>eUH3AD;b+OK7 zDyr8w!T&d8l;0NSDvv5np7@XtpF50rA}+omnoq{D@g2r(e;z{_$v69zd&$SJL}> z=DOWmLNAAYr6DnK$n|BuN%S-F;%wNOl~H)oJ`nF;^~0fOK2Vo6qS5PD(**l!y3V{P zjfFDU@NE$7c$JCq%&vN~IuWh2_?|E<9;Hp=k$6WRJEkPi4!_MJn=`=8P2F+LM-%Vw zB%}ZB&6F{00;JWXuv}+1U9WmAZaxe}#l2Z#*DKzY_4z3Fcl}3_W8Ls|_b*ydx`zL> zQi#{(-A#2q!u05 z3r^*dp?(3Ve>5Dwc@I&&*d5M)rsG7qK0V!U3*V0U)Z6wU73}046T52;8Fxp|wW;uU z+XV&LkLf|^cp8}Tgo-xDV9WTKG$}lSLaW#-w3T^QZ4>asW-zQ57~!AwUCKI8Pgk~S zK=!dOWQW*b{c}$|f4qjK<{41flz8l}suPPk3-IWxoUm93p}fOL{C@9BW<9>r*ZbS3 z3(rYZKc5!)!D;M~8A0c#PKRM_cRE-3njU99qs{>}^yR!IdIWnTcr4*U!YCA24o2AC zPxNy2G^%%uf!SkoGF|tV+!swmS8Z2ZDI1MZ3G=9AzA79V)(MHSfTz(B%DkqEa`vw4 zCOPBxqpldaKM-^G9ip*APEgmr>}sD{F4TCAwAq5 z&GS9TF7~iER5OyQRl@0KZ_efPv_eH`H|+b)xf#V)@i#da9@A%#^r{NUn>R_AM6oz~ z-%_kdA5V!UlhMcb9_=LqWWUSDeH#fjUbmw2dh%HMaUnh69=GqNhm`;RA{}NHp`ncl z%^H(O=KVMqpnjW{=d{ww<5HA5CmW@fIy5WZN8ER*q^yh4G%IzLh#&c#Ui}=4Ps|Iv zUl@ilI-7*@rZ8s4OK^N%4n3;PgxB8|GV8gNZjT#DZ~rrfN<}8V@V)HtLUl-5{-f!K z*_**T=PpxYQL$<|1rD45wMk(((QFBiX{LDoNDhhTYDJ$uGC17bmb*GWXugn)!h%)w zWq68Mr*eXtQqIxUvNY0GO2Uqa8I*kI4e97gVJ!b`JYOqfT}%NkhP)xQL<2hGs)O-M z%&G9=CYr|%njhz+@b{)V^waauVf~&|S5{Fab&6*oRZR%A2H5q0B3 z@H=n^ottRylpLpwqjw$Ay2~6+FveuQBYPgu!S0J+X>Ty!NndXhW$T)0ih``fkGLnK zn@rz(FQBtSw$bA2yt~<{lVd@gA=A#bXeqxA!oT? zz;nQ--9L#vC%01esx@Nv+Ho-Fu0_^$V;s8mgsQ%56H4lQXBeN0sPC7>q8vT65O;lj zBVhf0nRu~quW0}3jBlTNBgBh486Cj74+BwTb%VYhX9k$}bJ{LZU^jpZjPE65%D*bw zQ5TLEL*J3XHef{4HuCj2KwG5mh=RY_c)*!Jy8doUOg?K(K@ ze%sORKr!tY%FpkDP=}S3ZuAVqJufCeTuB$^eO^vc6+JM-0R|*-(2dNNO(Bf z2}>raVaZl+5uUJ=CUOU1!`~lt$|N7s8V-2eZKjx}!+rKwcO)A$!!YNo2423hp>6D< zTyGkQ@BhZp(H3S!c^OdU)IJ#akR9H^TAX_}A+Lv%;eYc6&zThQj@Mh@ zwui3v(xXwI?BU}*0OI$0+R^xzB+S)`TDOBNgOn)xzBM)WNWuOsJ!#3Ue0qIg7*?HS zzx3TkQbGZPwX`t)RsiM(2P4>#d8jqxabUe8>GPd0VdDu3;Cyk=z)zCpg~Mod(_%@( z%0djwm7&DP8W@;%jdU({h_|_^kk`+_3!aOe7#NSD(pB_gt(C+p{D3%fqd_>%EWnJL zyyxNUxZcCx!c3Bc)~Qug*P;ZQFUr^)ep+n4;RF>6cTztxfEK;Uf_;7i$=7@&gFC%2 z@K_U#^_9Zbwte(#+G3&pY9sZy5Gd(Ce*pGg9}R~JLAeJfh*Wl}Olq4>*O$*1Z(Ln5 zDq9*iN~GW!vV}U{R?=MN2|b&|9;9D)NUzzAo}cIsXBB(MR!yK1$HC%OmzCu6v{^ho z-xEd3>|Nh2aCq}Ea_ZqmDsd4s_*&UeO%zkf+y=FtFqix%?B)!oi%%zF z(XgG=qE;tvVx|Z_mV~D(hGC{Db0Iy-Xwmh#v}7bZfzxlGuLT{XBthvmWcJzJH@kY-$Z?H7kDPRVCKU~68+3t3inP#VzCp| zrZY>VOdqc|=u=tf0314SgxbrkaUpdq-VgR9wTS!Vek~ZgSF#uG)N~xy3&HDo@_1+Z znBrOtVVSH8{h>;z_7u)mqpvxJg9{EQ9n7}zeU`oanI%OTUHfyx=#30&z=-!*Sua8k3nnVVOi{o z1NA#4k6t8Uf@37D|8kPgq)vJ{kGT|@cGzW?fUA#cD4pF7Bga{x>=y8FKrXz(TxdJH zmo~b3FazZRX%{BI!=8DGB{3Moz3;noUr|@>YO21!MMT#>A(I3R6wI5>cP<4?8SX)6 zs~?NT@oL!K?8p9=@#yoMdFtLN2zn{aEIDSVb#Z{~7AH!0(v`mWW)sHn zg5S}WfbrO2T1lmbJ}}|RkE}Q)UOe_k+SJy~XW{_?)0X{b9|*G6GOp*AF&j?l}O-^lG<1}utx)3exf;{LTrQeAaQ1it-F zC20y+Gl;nY_tUs9!0btBTioiFjPhrb$xdF2-7?E5ZmTEanI(DUoD;sPB;cM~C@ue) zO+P!H(nK{o1RNWT?l*2yW&iCWJbb=z8j~pWng_uqT?u{*f>1T9hQ?izW47T=x^^lb z75oktC!=7|@(a*mnzawv(*oZ2C-DSJOWFt zKak4>Z>(22N^jqOr1sDU^npD`Lx1(fZRVGHom0YXS$|sB@{-2K)zVPCCCv9_&rGru z&2Vm~_eZ7Bu)7~7c^8TF+lFHKghis^OES!I^08uo9}e?M4 z3e1pxWEy>*7LV^2&(Lq?^7Xj&lon>SQ-@@;XnE~|5uX=`i@XyLy4?e6mrUu8hc@0- zr%=aLC-jyc%kw#TY8xht9tje7mGwZkwpMCtmBJ~%CJM}*C%z3KVetMxvF&_MTBbXX zj5?HP+aG3Q%vnO?>%NIOz3x-L$$GHTUr0^CLgJjUn(i+Sf#$Y0n)o3Ildis{_Ct3> zn_D1CFRh?k{7(MUt0!4aQy}|PU%Kf3UVOXOMh@d%Q^EH%=%*whZxMG~Iuc=M5eQB1 z3>>YiqZ6Y%p{YKbN^7&|5VQ0y{d`7a7vwDBJFad(4zhdNYi=ZOq4T zsmpXaF9yp#=b|vKgqBt(A+Dr=9;wLC;z45}S1yBl%m}vN+}g!^+y_{%3Vri@QPVJj z%olrNEuR~iez9bGIvu@-eG#t=q;X+D1U{UbA?dv3jUBC4_|4vgxs~fFCq$lqbGAt8 z`*Xg3@PFd!zZ6tI}J=< zM|Jr&*us1D8pp>XbDTWFhR&k74kk2p=p^X7ZKc2#b?o2mLr>ZQG1G1V?;`r6jrRz} zcaKqd&jg(8cb6LXI?&QU1q>bPCDFCGOQk2$;o6{yh?Zyc{6!JH7~V-&i)PV+afalk z=1j%M3Q)1+9!1)4=Dn*kYA2i0y_B)YiVDT1xzS=tUVqy4I}P6!4it-d&wj`@f_+Bo z=;2%k?D-VT4%18G*Uk!&`13if^=}ae*6tF2uU{0I$-damtdO)oJseEU#YM{w$}`Zz z)kQkESQC%c(V6)8z!8dX%EUqUF1$y{gWvgmB>qexx#p3WxbCZDWo0xR9$ymkR`q4y za}rz{FVgmbn`x2%XUSPxf0*9(z!%Q@$8U_lMs416>pMc`tpquxe%$xkM>A<4WSew> z6`_c>aD%450(qSsikRMA5o;Wepwi#;dgv0`e8v#vG48l5C6CCHGAMNB@2k@lvKkx* zcV=;$rAcE*_Z*lW^koLb51RIMApQ-~$L(uL`BA}z zMHHvqjb=~mf~*fdC=z~fDTt>177>_kI*blzhvUS9WU7}jM&PMP{NA&J{4|%-(jykg z^W%Hhs+Gd-VmS7`A4EZcxhSpi%{gjKnVdiV_T7@&zJ}v)8sAISbV0x8 z%yLpzK);Z2)VIe1-We^VacNsH1ZqZP`KZlg8oGTov3rs7mpHTWLA(?B+!mk#d|X%=S6LHf%5omm6ad&p+N; zdtlcq-YcBZMX$rUm@wfZSuejvgEA-a{epd3(qBoj;w;_fJCNSe{2lp+`jF%_MXg za-IAXvoP>tB=pTv@Xsy{H~%pwZPrTasG5on!}r4dlqtV=o>M=)B<7)7;!w~W(%JTt z%q22c6%M z)Y-eVPf;1I+clX3mxg`O1sK#NQLLM)Lq+WU;;JjImzYw>trg@o#{*TlT6m~fL-n81 zvGvPS>QlCYE?lvOX_NsCJ?Vnthr4Ndcq@q!vB+Y_WoXoITKZj?4oW*9;iNC-=N+Jy z0)6azW&q(651;I0_69GbIdz`M3$yOg zOJ+++JE+kcc6@yCb)XMa%w9 zK-o{;A+0dq2lneF_7vscjSygO{aRrP7xdthL>kI(SP38Bv~IDy`lv(_t5$G0W>E< z9o6?W#IMbN=-3)vvDv}|%60dtcFZyQ;`~W;`%z0xK6hv=4MoWBZn%7-8+vAEqq?vw z{HodSy|j+<($mPd&=MnaqIu6g1~Z$^(c9*^lyqzyf&Ul3u8eg-&6BQ^tc_JZt+-?VF>h^PUqeQSqVeR?GRuDVAH{@G&lmj<$mm>>c=7txWAD@jxFs!+G-i>*oi z_)tFxhSs?V-uXfDYH}HU-+YtO6&KPgmw8TizrCTIcRAB*c!^$lhv7VTvXxg(L(5EQ zoa6I(M4lZbA)0&f0v4xJ$?n(z>iwC!vNDch;b9Ln2g#uP=4aA=+(BRZunTBOAUy1d zGqFvi`8+~&u8$zgIL_+zzDMdQ=jo)^U7@wh6H3di;iESm!-5-Vr@Rxjj5C97<73i~ zPeI~)C!{!CqQPHPafNqkw!P2M?ic@&!{R7}HpQSmISJK@Juv4uGaDq6QMO)*emtzA zgL2FO`*~AL>G_^kJMSZp%%x&V=@aoI*qWv$JK#n|x-eH-LfXylbSQW`P3>Vp8}5$6 z$Z5V}@TW$4nf!>_huovnx|NbC_lG04H5V3x{LuSl1|GkeE2O)JLTcSi$rq`k6x&ag zdaO4^qPjNndl|q%m3M(#UNfKPf#lNHPC8~&N>DPyvms{KwBQ^4%4T0su?6i2QO8A( zw@$&=x6p*eZz)o8h;p9h(Av=}sC}Cb_NkiE!y4u-Ny`YFB1|wbRuDygzAG zqS2pUN^+DfDF47)Dznz-opUVi-y4S?28qJrp|!{>YoKM9I>eg%EJ?pwI}|T@AjG`^ zaNWv1yZDFHb*}>KyO+?No5u7u*a($(BA6?CiMFR2@!cU4#nX4w#y*AAn`e`oW1>i6 z^@84U2PSp6BCeOmQ2s}KNDf8daN_{+&i0x3d)x)H9_8Yr_eV(uGusC;Q%Hs1MMrs0 z*D+`)CM;b}>wE1H?W>isYHKr9F>^WcxEDHK{wFzgK$+RwGSEKBGlE;5u>7H%VhLG&oPtEothPCpiN>wW!Rh&h_ifK<4*0WC+YbrFODK7#Dde_) zrc+ofDt?To>6JsFcw-8#_2Z1&cJ70QIN;d=c?>w=fOcl5JgXUvY1eEp@{S4ZuF=5e zYvrP&WCvyKOdtj4Qi|f-dIRS!ZbSuOGT$p!H(El$dI{D1C_vMwCMx}8C1$u;A=7~Q z7;o;<b+j@ypX+Bo&8Yds77D zucXqhEoW$s{AP;i>7I-4dSigR%5JGxj=a#AI{!qaF#uL>ZoM<$8nOmD7yCEZp?Vpj*Y0kXj-~ zUAIiZ_MJZX&@>*>PnB_a+-iE{B|{qmE!gpsjl85u%=TrzT)QbVr3w*Z6^Epjy;L8` zv)ivpD3xg84)@sR$@iu?u|LW4=P z-DXks-C&$*SEjqn!;n$S!1e{*C67#ssPTCQa*dK`|4?=cO$$KOD|R#2FQ%e$M;LG~ zGW3WdjGkU5KX-yr<6HW*D-nl(Y2vzC9(E6AkH(D-l69F(>F;91%BhDXU(NKewr&z4 zYM3>_tm?Pdltf(mN5Wx0%9!R2(~ z;Xq8-7=%7@UE$xpoXp%d(D9kZlInxQ5ED@D92kJ{H~ZsQgERN! zyfMTe4i-}fGPfoO^kN_lxmbX;4+_wt>VgeVK2q0Y!gEW1(PNAT*72TjLB0;^_hh1n zMTK}G>5l%tztHpTv&5~OKqL%{qt0&*B&MAgE>p(g=+&JR>a&dUHrTSmg`K3Mtufbi zD|^lcl5AxzjqT!%k&mv^C+B~}x_Is7`wjx=FW^(;P=6gmc%p$Q*|IJH@;NOSImT!*kziQmg7A zO1DqM=HC6Wj&mXDcNUV``Afp8YYcvU=#A@Zdmy8mH+(|41JbdS#OIOh@0%;~5#lEUsCw2$8r#y4eX zqVGqs_DFxYm-Is9*ldnPDPzIwQP{asio};{iO%z4%A912m$`$`nZBRy-yMPr_svMc z{Jv98{V;U&c=Y_lcgwXZ*lO(}?$ofeJJkcO7hCD_un{oLRDtv1aX6!Bg?saF5&6nf zfXITwBMEMPRl?jUBXHX43(34%LA?%gpV;1>43qEB1(mmyZ6$}hRv_Tm0`zGyq$iLq` z^2FMveRSL06fM90l3L_cOwNly-P9Jk)w37AaIb1u%|+39ITsgX6jABqiN3s#DCGH< zn!68nZy1gjQ`;!5dYBmS8`Zb z$&((P&g9Q1A#KwR>d?|e;*LGE{(J!5#h##)W79D!pAd6jlh2T`$XKyftRKL$S--WC zg7f|H{X|y;2YwR&&mZNa9-*|%c*Je!q?OJ(;B_%VTF;Vgl{tL4m~w|_Qtn!2@QO8& z81nw|q5f(y%ym3umC|`8JqFhl4N#o+!)Zq^O*m~c#hw0kq!=<44~!Dn{q~OT#!Sak zNg^Wjp3&wkS$v)rNzvizG-r_oW{m4DJS=4??XfiNHci7+?wp%m%fX7v3Dor32um~$ zh!gyId3@XmuG@>KZy!gfp5^27xrB{$c2i0ta>+FjBzo*#92}(@0EjcuL!d18i|_0zi9}2p6z4> zC9gkEUD7SEOraOr^}|SY413V|P2l|}k=83`qsM50)t|qKPyS=bxF#JgGt=Ot{FnBo zyW*g13jbeh(2}1@`#hIY%ke6)VT%+cIZZ=+Qw};8zo(^NzKOlMDNyRUoOXO)L(3H{ zIL|bUGGz5QKR$~b_+H<@+|$aJda#~!hE`SRah_a74LRpKX>Vsa zIm>Eb_@Gx};;BSjznqO|zsax;kR{8hiI{!64<kS1|$GxYJPevp;I~}j?e4^RI9@7y%iw;e3p%tpbQT%ZdBEw24Nz5Y6rOd|Zu)=cx zA2dl#9j!yy3%4i@V}F{V@7TUjsa{5-bu1}oAZOU(ys`D)4$_-A7$4{PB7Bq=@=ll2 zENx{xmv+M`-#VHzzbCeBV@}8{ccE_B2d?V*D45+J>0by>4Rq0Yx|dK+OlI%pP{u_+ zq$A7$3aBg~)j45w_+%QoWdw`CvHcLbCJC=b{h(LElQRCb)5&MwM88q&9~~78o!C$j z>a|?_*YZx-c*mmTS$`Zjo{H8OW|=syqAAAbD3X0^d!}uot5NmhVAeKa{>>E^-VGGx z6)x1=$>;d*Jj7h?Elgr{k!rM)5-J1HKB`FkNoF5nX%kgDGl$K-K-`y(#m*NRu)H}D zlW$C*b@I$zInJ5Yx$5p}DLW;Lztm8hH@h=AV|P6z4x29J z;f~8MkuqpK`B!pw^V|rrHuMWkvSyErW(+B5)UfOMJU#1d6Fyxs=)$c&*x9k1ECyvD zi(IkJU>7Zk`%MO}i$xhbeM4ma(!xqrOywCv{XicmO3X<8Ry-!&&Y{eR?R1bcR52?j zP~@#vdYNGhCGLbg?d%JWhoz(y;g5hZ{poK^CjEM3kEP+!lHIpmQ1R`kWSea|_9nii z(WV_@`Rg*V)xs6JCG5J+wCCGN2ik=#b=S5nu%soQ2w>bau*GqV=SAdCyCQS1Tu)^Y+m^fG$2^|yZ zdUF=OES^GZzF(ySMtkXUK{)Kk=CH#|o3hR>r7``wO9nDue8qGF1k5Q!oy7qP$ZMnV zE449frwzus*pQLbK;9eke2cw@arP%Amjho=$Hv?Ay=^AVc;bf4g1-28NfQd5J<1MqV16(Jg z!F@foF)Hi+&_RypOPMq8Y`}sFTRk-pVnw z^Ya~=meZTkSBK(-i7AqqbyGghgAOp4V%+64lJ~kpSMO@lsmF16TH-+qmoqCoj=guB zza3RU!z&X$MbdDQ(Z{P-;q*kCXTk%X z(^%&EnADsllPk|D`+yQHI@u55nOW3LO9v|#reXBXejrIIbsN=AJ)bdGfcq$`11wPZ zI2WTH20-bfAx*39hNTsK@zZk~70BEZcSDDfcG!0Q47HNBN)i2e9fZ%50%=W9Hq7Sw z3zgfaX{)y!qlyBt$ix;s7XPJ&Y;$t@r-;sfVHlYnjP0SPsA%R0*v;mwk?Atp_$e6b zv+hulzc()X4+iBjyU6;P#OW~KlT|IqepUx5dU)c6)kGAO+@T}I6L2Qi3R{X-)5Tam z(~76F(On<0O;2cIwIOc29gdZA*lRm_BaQre)TuR$Juu5VX!-Z9sFGGfYTx(dzhW8P zKirjeCk|k@$p*T4kIw?_!xZ-O|9sd43Y-ze`P@BJ5x0wS?*~I%IWCU(z9uP7(1d-h z8md?O;^Fh*%!hEo`y(m{m3mA$%+77Ft{2k-lCX-rv8ACx;%;b46K1F4eWMF)>pu!N zsv5+ZUP@TIawJ?9F+)PimKpJ`@Y(x;=ex(~!Bzzn=;@(jKp||)Y9$}@jd4!<3b{S& zf{V;=ii?azZqWnral;I;;oNEp6UXUy<`3EwcFpPf!XhWfoC)Y^RZO*)qA6qvJD`;P z@cVxpop(H!?fb?NvJx5DiVz}X`&{RNtjz3@EfumU675Mt+NG(TRg#J(?b2RGL+PnR zTcz^5zQ6x_y`Ek@pZmVA>pYL+{kCwWac}s}DXyF9&4N)aHUsi^qNs19673?f9S#he^(GXbC{4)mCCd za_Pf`2Flv$f}GB1gj$Tox^Mb0Y7|2K<0KqBy`28sd`MMmoM7q`DVVcR3kUqS(0}~> z@R&P6oib%m@YNl$Jz_YKevRtunt69`5~S6xQAqDz^6(l%QhYA4{;ahi^k@qSJS9k4 zX*_w&vKH((XOHrxY4DJ;;ko5vg8FcF`A91C?*5@;5Ba%1Wf?tv9*EwbG0gGSKMERV zL#4vALFKclqU-{h>$5e&p^i00xXLT#>d};^^^Z&F~|S0hjr7bCajI( zMKkHu;y%_rBpn|UEwS$?XP8~%o;W=N^t=hfC?8*38}Yxax&=&C`Mvn2Bjw9-PuXKJ zv|i@9Zb?2z^|s^PEpfg| zJ)OrrRNSF4jXNOr*iXfjR&|7)%fgWqKRgc+Vollas3%<(`)~Ro%ymnEWk26Loa5LFzi{s%qcM2_x zqj5vJS;%5l7W{D;i+?$UWjy1Y`YYerjYpYyBRUx^`wq~Ix6ybJm`9B_LJ)d5Loob6 z7WeG&tcYYR+h&ss|9SBUjSdzpjOM-}-*H$rM;GrDW$61qEhy*>p&!f zKkh8lUG2n*Zxmo#lp)=3;(pcDZcv#O&5RS0nBaCSZd&!TeN#TMu=zXa)-YR~UU`VL zHqAnkw+2hE-MRE>^tDT3yZ~Jk&ojw^Qr1!N zxJtm|C1)xm|3~3vPif?F7u;Fe#r`bmqkqv;@K&~(w%__prTp({>$jb)_miN;VHv1) z%7=+U9-<_yu$22FyURQweCR1XbhbtAdjoW+K6ePcafWv7w?;ws5*n&Hg~BfRk^2HO1M=H)K&73I(YcxICJP zr$u6d4TDXBR;%fl+Y*G)e~+`)@JQUPc}C|`j#KIh&Pb>-MCR0oH0`7n{^^#}x$_Ii zPb`x*U4KL7Qo)@0X9>FWfn9lHM0@h@5xZ!QyLYPTW#Tq6ZVSV`y}k5ZcQu_3)Pr(u zBrb&AqjBZyDeZ?6z2Aw9F+Qi!%REdqpcPE80j$B#No%KrHLZ*M#r2W2D@7n6ftTp47G3G+C_8Vak3b zyz6|o*a8-|UFtRm|sMe`iV_u3)ky>h98 zcB%yeZfoLzaWcfC3lVF}XWY-UaW%!5W>f+rUL2<#hAL1PT1Q`h-K45rL(u2=g(@$~ z;*)3@1^MJd=#Ulst|`%9K{{Qo4Tr1zY;3#^TDOt!dA0t~UzfE^Ge(7sCoUto-{V2G z{9Kb4f|2^m$yO-@iQTX1YP1~*)&01p&=}p)SJ@Sgrtp( zV};?rCL15>?WyF(W18=+hJgtN_`p3@Z@zQSj>A6suQ8bC#;i$&&yY_EICH1;FAX{3 zh0aTNS;jI~q?xW_on~=N*hi0c9yGEyyoR5Q*HRgUAZ@w7KC4k=+mca^BY&K@`K z<)QDs7xo@CVGjcpaq40%sc{bQdfC^s`y1c4-u+0-@|2)?QUYG87{i_S_>QPA=3TxL zw#;BSCMKKWkyIe6-xMO~b`I|8dke0a8}ZC;9>P3^A~kjle6D)%-|ko}yE+eRLQ_zl z=z!*i;aCx)h4>K8M>zR_-^V|)L#fZ`TG1D_LUn-tgdJkOwZmxM0nP^EGy4&*#DAV zN$n?{UNf{->7!ZlIQ2AjIJ~*FfMNtmG*$Hnt<5lktF0(fHExjNk1Ug2%?2q=x@xix%n&ELW7%#)e!p zuQnimp6OAPbjGrY>qu$DQR*LQk9_M8+_9VoK~D<)HQS*nJQe+CxG!5L6#5UxU{CRK zGXEA#elE$}1Gk4#&2w3?$$g6Dj1cp%aTu-Pf!K0sC=0}S2hWG^xcSam@&(I`bHLF@ zA6ae%=fE6TO3r-l{A$xoOjcD!LEd5-LsmRb#AiGf+>NnhB+cn)7K|U6cvNX9mi}qBuQ`cO6C;VyfFJW@&PW z_Eu)o2+I=IExD4)PVpJ~7Ds#-(L?JtT%z0UW_bT)Gg}#jmUkNC zD(9q?WNX4?!VK7j>miUBylxHJe=QTo<$^QhZfl3@m09SF;b+a~`$+lZeuuP+Dp)pe zB&IECq>l%*NK}0tTkwfTk_Ep$-35aQjMv~TGg(iY*_?|M5(D#p^9p3ihk zFu?k!6DI1frYmFZF(*Qk>I)QUuKYRrUcZ*~cYRZlTM5Kg;Eu9uJ($ z)uWp4;z+Hjp`3tT+W6@wE!37r-KLeaXl@NXIV*>q`O~PPX9Bg(nS#@`W@yPVBAe}! zf>%J3$CUjsOQh1?}JtJey<6BpHpK0 z-tVTpbNP()(;?c*`^}s07U1gh5#-CyAuD=QNY_12kZXRT}4m8jjV_C?r^~aov?)Ww&iK=An5g8=K%r_dr zy)&DHw^?G?{R-O3`w4#(j*!A3PsoTB@ti_2Rq7SN;Hf8K^ui!}!I`bADZ)|pkq$q$ zYoj!D8f+&R!BkWSx}IO@4rhE+w`Sqkoj2t9R|%U;`snvFXBN!Q0&Pe05OS8G(jWuR zjP>z5kMBJ@H;|qOXNG<^M@IK<8tT1_uJ={$4PY|pdmBm`NxnW0d8%;ZOkzAtR)3Aax2+gsg z`)RyGk~PRi`Ga{ROvL5$Jj4CloZ{VwV#~EZ6ciAH>s!(=@Vbcbw1ReCpT`UYGW1+r z3hGaL`Q2dKzUPQYtzMbtOR!&OEFb^l3$%6uTz#a&f-(!hVa*yDeTXffv|)-4f3 zuDud+1h~TZqH28TOvfs{o>1#TjpwEA!8anUj$Uq#f z22Vh8j~9;dvqkGCLhhg*9!qba$z{oSQj`nBIra4MwiaIU=ltG^!!+`6ISJ%$((4cf z7~METy}b(fcteezznui_oHL{&%J)Q-w`kPp>9pBhmK~bqM5~?cut;JZt&D0TckVVk zRi=-doZZ^il#gA@1Cc*r7me#t$0gQAim^YrhkFw4T;53^!#GENwIQ?x_i49OHf-{P zDDLlTfqr5D#5afIzSsm9%^!}p1AOk#rGU&Aih{b?7ub8IkHBVStaElJxzo{9=)yD2 zAH6y2w4J&Yz3@ee?^$cq=xk>z9To1P|Cj-W{uqyUo2q%9Jpu>$H)zmoJ)JFCL~)#- zc23F+CvFc#v4jg2rgHz#`3G!AvbY&dh99^RKk`9~*~YgK4A4_|soXJU9eLU0jg?&R-}h{La0^M#Qa;FKPmT?R_*uEk&64!kbQGF-*W60{JDKtL#J)pzWGONc7B?**t^boXMWisrXMBJ205s2L zJk-vVQ1Hbx{;u(%9Vev_>CYWEJ&rtAWrf{_=V`I$J8F3Gg&qs5(!2prSlaRa2BTj8*YqWs=dT7?F-S=OajKVFt{Mxu4Xrhy9Zs zhBY!KNHWlbTzn6;3-oZ3-^bU*&%joDFIGI>oC?RJ({W`-^cn7D+kboU9eNHKIbRU` zUbd26-sCy2`cP6fdqG8~;-KO_7Z2@6vU9JVun1x9qJ8>>1_YC^%fg0x&pAud^d5!g zY2iWpSMpU-ho)yJ63n77)|{WMzswgj9IT*;-4AJ?_$MX&oC}djd6fIp8LPP)UiF^w=Co${LW6#a|i-{zG#GSLxnK?#Y`$5a05LDxc?JVy6#PUW&o8nX_<) z=VlBB0$9ZD7;N8FfHh@qu=b7x)6T*Q&g(w*Yz+0?UdSd#NJ0MSD2!Quog8MVljc`9 zvd!X*Jgq$BuU^b*o@vnY&~R+w-{EzRA&|LmfCDM}sM5HfB1R6f11^Q=-586MW;v{x zBVenSI8tGI0hyXr)AL?=Fz)Ht#P9H?Z|_mUzd}A!E+(lh(=gOMlF|-(!7|qe#iL`e z_K_VF*GqGTj|6V58A}FB+v&j>OUP}{!g0>6bsyD4v^WFTOO4PyaVDI3hx?N2X?iT4 z3Kw537{-342XzH>x_~=aU+B=vkRX^!rXuhkXYg3$;le~2ENEX&17Bv+k+0`Ta)mL5 zMO>y08+Gg!d+6cqHSUhRI1+AIe+6IE%}}9n-C^AJBHF+052hg3Z5OHT=d-{&9^`pg8ex5wP#V9NRJo7o&#g;r0Sm*Cpx%Yo=`|YDgFiWBiB$?5B7-pQ!#Ril@uf=2d3O2LYc?j-knIeb zhw@EBDOxQb=U6?t3Y$`Ud>jowe2T@6nu5esQ}hmZMQ))#Ha~S@*QMUlv`uQfpQ!@V zIkJekB#pG$ftXiqj*Idglq2xP5t(^(x+505_DI38@i2W;NT+AIC#mMqDfW3~Hi@`b zQDK}R?fK@8X-3MpB_V_~K5J06Y@yGG0_jI$CkuTihZ(7Ii0byjl6q@?cd4Q38@iBO zI|8jG7irwUAO)Y>P1ltbnI3mS2>R5>b;nJn=D3n>gm4~Oj1~R3#GQ(%Sumfqj_v<2 z1}#RE-s?Il4S&fQ2>P;#X?|VKb~Kfe&6)9-qGy3+=|Zq< zbjOkN!{E8Y3=tC#GV!1Rau1$Q_DNNwH<$xSB`362ije=CsaRXIj~4S;%ZO?pD(1fU zB$wZG*kLNJ?C0M%p#`jnGvgjuIRV|LsH$)Tq6bG{C4VopsHmZJAQfMi%i;w0X+(V3 z!^{miqf&1+2}>`vlZiV)(;uW#&IZm;(Vv3fXG>Yl*%a8f5loi^z;<&QY92|^r3_cR z3Ua}t{Trz8f;<*k9AsUQTWH*Dc{*@x6tXutBQ(F8YOnV*p{{NF*;7+>&v` zoR23dQqdnz`0s%?qRDzE??e`O(2QT^h!a&q(mxB%T9buaz86JS@J!0i0P=cejn<3) z$Q;SNic8)wx5-&Bsph+&@d0f2{B=xwLLFO`vY!%`!U*AQ1G`yzSzbDlw{rR(t#i2b#hq*_Ozn%@=wz5YR~ zV?#MRNs=nxy5UCHYswj64o^jUn62y~z3swi7~~P>!@t?zU!T<5M+sgskDyD1OF zSJSZi?itc6u%$nub@YelHZI(+p_tE?Nq?6B-}!E4Gw=I0JebROxJtA({~U>Q^NhXL zCCWMMkGtKb6ZVk^OiI;5@XRw2Pa^V@_%5=o1dt&Sn&NO6c^kqmV z4KIj=aZVQ4`CU|d{39EsVMyu1$LMi_2_CK2!2wd^cU57!WHp_3O87y0$uaJ*11_DG zhT-$MtW7ACnKpORT}j614bM0Di104W6Y5v{MS6XgDf6^GERRM~S+^lBv~MDhrP_m98%1#;yo_>u)cJD6|51$SRl?1dEuO#b=G`!vx(y1h_AWGB}JRTW?oricvWZ?i6 z3_D6=lwOhhqA~O#f0Lk2c?S9vQZYX-nnrWBt;u_H((RZoV8i>E{w6~~QFAg3M0@Gx z?p_*uOA2k@x~V#EKf66IlXG7)p{baSl|_j-eLx69n>_F*Y%GRX@;l(Sp_m#YhJzg` zG}=cC6St;{X+W>ilcrx2z_m-Bl{9eYq$hVOl;=X6^MKYhzb7|$Gh{j^Q_I(W_PSI+%FZKc zVyYpY-Os^+(02kO-YfTM*v$eA56~*3k?fPB2z_#OMsLj-<{III!q4+5?d&%?uy`kJ zbM==-y$6)#>IqW*rYHtwiMPF=SOKJ~);1i6pzUVOTy5u|t5}PaG&r zh$mV%?Pbl6`q)LD<5f$G#?42mn3o}hI=?4811in-yY*3{SPOmPJEz8&Soj2u!mmTi z*sEpTv_;*MQqDJ1?jU!OJsg4&do>`ofv{hDD?!c*CwtSd-fIZ8p7VvT#dA6nBMSv^J(&KIGR@1`<0q3a zW3Y}w3SSClaQ;ZcyFOB>-$%n&R8#9-&dLtud&b!h$a0S>%nF9Fj^62bAij}ueWf9n ztqZgBxd@t~1#>&?9-cmIxr>g9fl8my%^MQX6He@y%2grOe2j>H%B(yV?ROe1r| z-mRcl%EzcKMjW1I!{F{_4DI>ixZ3E4imD@IzN&!F64l_y{a%UQZn(GeAKl8Cjr>2` zXlTwtdJ-@LFUE7;{6}rPBBH=4WX%55+J$LjO{CUN8jdZV3)imlj;!1t9S=g zF6p5cJa?RswwX-!da_DeO{^Kuoy|wfDfp5ogMuRcs-w}@r(w-PSMC?85 z!>V$JU46r`sNpDWJ+hV*graeccgyBZn?vs>gpmK(X_%Ec0V7`(;Ea4QqQ(}HUWg~1 znm(D{9N$ONeH6F{V<+Wr-ANVi6JcX(fk6?TYt*sFOGzK~}P23+2~Zphx~BrL^R+<-8Zz?{$f8%)iRdTdUdjmQ$p| z8Qu8?-`NWPBQ#=UzM!*17C|0Lu)J>r9j!yu72wC`WPyn1*{lFlN5PP=4ia3>#QvTHAOC-A5g-TqU}wbdi{gIK`*b;&Gis)k zu}{nQ31+`@K+lOQWO{Kjw)-C_!(xIDUw$Ma}(Udmdf;O0`VY_Pt z?JZNFjMLl^V|$;w6z&MDZrLGA*%jF$K6Ji32N(9`;jP#hyiv4aYwcFi^2uANY?M8s z&5kHG6pgB=Jv=^dis{bk2!FQDBIE%I8m@dWE zzo9_~2iVn#(59a}dytulFT*1t%e|$NnFq)_CKA%ZIufZ zie0Bko_+`jlg5{@94u`fh1YWXDJ&uY$Ggo)p~05I>SsZl??r}pM}5KyJ{u_~r^DOmI(6uYA%S~Tq>5y)@vI_BE3FWzw2|dq)+A@69pp7%ie+BE zKn=YM*%3K8ynO0LS0cn=)pUc}_?>%ZZxI5ed4@Z%iFCZzkQMi~u2fJ&x}F}4lT6T% z>&ZOrE7_Qt5;U)BC8=hblJ3ATI&!W@kdWNVnR=DvB{_j!#R_p|z7YLf%AW=8F?1!^ zktVzfq0v(F$**BQN%!dTnXD7dbI#^D0X;5b) zZCJza2hUtk^=T$bZY#mhTo2hEoKspfnND%$P;j>h8jl{J8yazNw2?*cm{teR?r%J| zvx|0c2c&snD>bKaj?3aX=wnvc5ugjjk3!JO_{0jA$ie#B9Q>44CZiLTWTf($UMVf3 z!Oe#7Uh{_}Z+s=Q3&mvmD-T7%L!hN-jH2re^sFxujf1f$2)#_}1hXlmb}W5!enQvQ zsM6ghmgo%9$J!KIG~cm7#JF7UQZr$?D+buqW5PJx{E&9pI@9JCM)bZw6T_!WVoTJo z(V|BQY_98VIx7{8vQ??P*U8_hBUS02?`Jk9SKr_`j7F< zMP3-^kMS9Uohj+ROt(A@}C0nrEBR*@{s>E3h8!)4}I_sK`D1N8<=fn%gbIfd$-4=l6Zl1 z^nX&Dvpn=Jx3it!hoWXE-=Bs`Vx)s6{&enR!yk3?{Iv_*_<65%3xno?7`)@2%+Ei& zsQ#f6?v1xa#}E}kNaB8q=A03u6d2by5p`7&*_+m&`{1v9CPLm zTPCcFr5%#+PUE|yshnH0Jdl^=dF^OQ+zN+KRM9VeG;o~u)dpyfB)DY;#N;w5-M*9d%3AYh z#)rJpf-yv>i$7bAFsqHjnvrS{Nw`3lJVIe*YtJM6{WTMr+;y}j-xrT&E8;7&hRfa8^r`j|>AzE= zMOk;qUL~61R7>go?~6QdGM197?cvemhcC}=5j)gJi#|T1x!ebzyjUGdO;O03FG2Z< z#?W+arcABit>STr*inE|(;|3!@O)5U9Nk%@jE3pbxHxpJgZHXzs%ZJa zEcSY1&WYjVJ7kc8PR6k4dJFocn}?J|L#Ul|;ClLk5W=}He_q=np zA7fY;-)AMQ4Z*21ZVpSE%V>9S2rjRdkdL%E3?WZ42 zx+r|4#OlX8z_jQBCA>b)cNcR}G=jU-v{j(dDUM5#q18iF?jY&K5u`NTAMjM%8 z?9q10iLtb%|llQpHcl)Cjaw` z`EMf;7^hrF5SC{+;beSGirlLNwj^GZAVQ46+AS&_JC9f->`Az|W7x zA7W75EQ$q-g0R(61Hpqa@CfC;p87BJhvy+zlQ`sBK2h`hI%;}55^5vnve}#yCgN<0 zW7A#eLltP;rZOr|$b*4KFv&{KgVx69w0hGh&ix#XSG(L{erg?i8tj8z`*%~1?^l+V z^qC}iXXaiPp92PPR*9&qI)_Mor9bCH{}g28{-kA@BG53M%+%K1 zAcfo$g6EYAIHKtUi(h=6_NI}uK+|EqhBMnwPeXHA9FjXq$?>TULX@ZAxWggRaEijC z6W#)`7H>SRG{o5^j^O_`k9%}1S@ef~T00{Yr}A!4#_C3PV?YOy#!9$y{x=oc7{KSl zZ`RqRhUt_4(f6eVa7gyS{HNZix>HIYmiR*VOa?7@mPlVhT&P}4A90gBD0`6iW~3|F z&&@ULXmK1;EeoLY?j*bWo58_Xg7;;lm`_wP+BwVddN1#1KQ}~ifkK&mX>d5U8H|N#kQj1Y6WQL? z^BlTVvT@@i-*xc$W~c6Dir|m@_BoMM@|j_c{{-5ec7ifWuTm%zgGeJm`!RPz-Ik}a zRio*>s~Gv~jKNgdd`P^_L7Pbni;?RRXnyP$Y(0{J$%a~VOME1x?U&GVzPt20mdKo* z1VfDHv0H-p8QR?jn!AN?mj539bbP0dvM%#^p zCrb8h3tiMLnN{x|=zyVnb`OkpVcRd^TXHTM?g4M9$~?Id47#;k|B0&mD9`*8o)(=h(zaa`gOP zGwoaOm~5`A;umLToRrJ3R+Bm3vDoNv^gGUNKksP4SSmug-M|kv06-@Bx^>I zo|-rUR~XZ;xeLj-rjAOTyXjYB5)I$;k$s)EfGQS*(UtabXy)hPT{lnC`hU4FnDd+b zXX=v3E*F~Jz_S2W4YXS#2~XA9Xm$nvK09n?%KMX1cJvRK_;5$}aUncz-^u=F-(V$; z$!xld4mNC@2&0BGbVXAQx_ax`E)P5W_VUMp!UZ(1{6336HWj5t{2dYFLF3bnIXlLI zycYYTSxXMB&56j}{Fr11Ly_(~30vOe(Gu+jT39s$r`|ZS=s*|BsaQ!@nnhrKXB^^Z zEGLVd@pL4N??oGB@O_vQ&&-MP{nkX(Hr%0GU!(BsH}`0t^QXU8GjJ)#l~!91r7!2j zu}$U_a~i^TCHmzK+WOJ(H!Y^CV}g))ISVs3iXxf+R*!I3Rc7aAN>VOF+K+`~?|X{v z-fImzi=)gUF9${i))0|?L9L@g5Lsa>_|UPK(yt}p*s&Pw&{03I)$e`=4>4sMIZ-^O}L&#};A(R%1LFc*v%k%#*;q--6 z7qpLhl3mc*{FzSLb5F@fLv%XiF)8JAL*>oYuWV6Ot3{w3(FSmqes(ue@pT_a}N{2 z2ob`Kxh9z7Ifbs|2O?L(kakq?9R2lmG&1l5HCgANG$;UxBYp`sOpU@NrxbV&+d=>3 z3-F$EuEw?`pzgzMa$3^OnOL9bnkb(g^zcsQf5V`hmdbNb{9c{o4hfr?2p%wkYL6-0 zyJIn8#R_^DbDv)QeL?-jGbneNF=ucTAWEf#o>_Q7E!rLJpP$q3gcIal&`rjxC*f^q z5Y5WIM#k5U(AT!(g2zf(@Z~39yvT4zV$Wz&sqNMJD@+lhkI9eUgDbsE0kwe()v`#FeiG(8hogv&v+G=ZPPv>YT7Vo_b!OYgQk z5L~oUz@wGJFq7vRLsX-vZJ{yD^^|$Go$uo;gYdzX`#6=SQDBA*Ea!z%y37fI?ut6{ zZ~o41ued~#lZV1=VFG7}8$hAj30t0N;eO0Al7Gk=eH1O!+(R>^ zWpHa@G$vf&%;dMFv}hm)S(=Jyf2W5gqpfVC`4l=>&1c{5_Rz{|De|r~MsltxPN~{M zsOB&|=d1{iK6hjvZxl z`Bx`J+!E$pek)V_GT?qPvHxiIz#^`9}=+ZZ#^cA)Um~MbuFLjYt9F4TRm4dF$5Zb66 zg+C`g(#$OdNUC;3(<)`EK7EEp3Q1w+Qzuf$2}J+iL8|zCk@8Q=;@BG#?3Cp_x5AO! z1L%PjtCq5#kzO!&oKL#kg&KNGnrFZx;L_s9pX(eXe~tsopA2IyMQr#U02xC+$ef(Q zK5tfpboM{m)_a|P_x3Zpc+RMQTSFZ!Srk=03Q|uGu!_ecNaAM}ilo-C@jmBR!mBV^ zd5H5YOk$v@k^@cxCf}Kb+>KdA=Q)33%ZbzUjYiY=@)k;-+(261+N4Kc*#U!jsPA!u zWzN6SsJ;Eq57y)e+Q>cXRrj_FVn;#~SUUN3>lpIE{yA4pB-^=bLt)c33uG~?x zl6ZNHG~?B2OLYZ1IywcjKQACBZB4qOQRfh+>cQR&JS2Y&5eNBQTPS+baE$7kP47aB z$nMHzfi~|vB^18kj?1w$eN!-=bnDa3hIs0hdxAMRFml*_c!1%;cytj(&7R zNl^e+weuZY$V~ivH3$1NT8Ju!(a!J}%&DM_%%UZ+XSL?T|KX)PqwWMfLaXRO-Dv{Y{X_O4(obW4A{5>!p>#qEyz{s=AaNG-0 z-_LjFXUC&HLx30Ce^YUZ0tm-b)>& z2g##G1GDZ4VOSd>-6RZBZ@;i%I$6jJx4@SLb5M2V3Qg5)qtpAeapxQF$jVl+4#7$? zZ~RNk)zhd{WgO&Adm`)(--ESiLHNd4OrEugJ94;#Ge;ciRbfyOlftN$w=_y<15G{3 zXD%hL$i9CRtW^(@G|y0d7PY`6{{)!*=R|f}Iioyf1=UpzfvSQtjAa-EC&ekge~<#vhu9JCEyV;__iAH`_&)Hw)SS-VIkxZqcIIlLb{#^5o=U zj!7>EX{di9RzF)tjsM1@NGu1}_DQPD#uIch>#zQS>9H$}fl1|?q@5399?aQ3)M z`|fs8g5& z$f_%o6}^t5OC%4Iqy*${nTEU{GbypPpFXQ+(6_&Q&)ODAE&R{#I3kA!9Xu1gSp$EA zMbNstil)zPV2ao%5Lsc4_zCN1sFNP@reCGXl|QMfRU7U8!c-^Cxy=fo;oq;2&VgtY z4&Gy5kBz2?@~QOw1NZ%1oCIqjJ=k@aW61cOw5i1ykH6j{(Z~*mIm*6hO}a!U9yL<> z*ooK>vXr$=)!?4`0V-2e#_NRT)Xek!dqNLTmP$Oe2c4&v5h+M}Fof1C+ESA98(O|! z2mR+w$thqcSt-@&VQPzWoRJB(+O{!c2QQBJuGZ8(Z;?v^RPqtf2XKz z^-c1a>-lrC4S)5sAOTNuV zSh~<|3Qqk;Vciw9{L@Nml^i4)v9XvkWCbJ{_Z{{G7jNKry+HC1=CcMp?ea2)Ss1#T^VcG%4Ms`sPirz+d7xo zPM1a7d3|`+bO`{U)~ zOmvTKRBb(re4( zU6;k77Slzs895kvp7Sg66e;JT6`m(;W~ryLF+Wa~&KMNoh~x;UIE_Q$PZ2mMier3v z26-%OrdQYGDb$(py#wf zVlibe6QQK{naED)B;kr*^t;-W^mLa~z4lM)?Au1#ne%AqEIq!j31q3CBFTk!My@>* zMVsb#c11fLK63|I*amm(7&8~;i#%{O;3J(KG6JgnJ0Fu#PbDixVq5JUhYZdxdUJ0U zoOoAt6W>Q3TbM$ghi2gFXgA359$CY-W2`Tbf5)_kU`V+rta3LCF4^%evch>1o^1&i zyIvCNnt(VZ8~h(f=N*rA`@V6RSqa&corIKzabM?QMY75sQ6iKrBAH2h(t6s9($rE) zX=!gsdoO8d@A{qJ-+#|PPcN^V`}4W3^E{6CyJdnEl`jiIZ#y4EM_r+7D+>^qJp_NN zr&8nh-snAXC#g1dQhh=&zjw2+;iNAOn`=eID-6Y-+*rgc_$dB<+d?}|S)udH2jS}7 zMfB{vN&BnJg;~Df8L$G%wEu~f3i8O{%rTTazoszYW67MtA(EF~qeY`sBB% zntlm;Ja;X^sRR?)afZih9s4t#Bp6r0-N%rP;*fSL`HfAa%LBiNi0!;{ckM@?*F`YD zvkUS&j)?g~19ATD2D-MlSe&^gk!X43A?K(e&d+{JU!E^92Az55*^^@APvPKM!=;tA?GZy?fDU8p+XvpCvr zM4OKB_jREoG|i)-^C?o|87hxVxhY8OV@10Q28znz2PoRkm}VsyNZK1BaX4fn%?}t( z7AFIR&sIO~dG>%vXLsO$O3_Wp58o{VNLpT%=KUr3b#;bPd4~u*_J-WHJ7eCHk=SV% zKsz3+r8gJZ;j43r+#?im@S!1hg!*G<#yH8||5P!iOB>C7<&0L&e;O|QLI=+e!knv~ zNMcT`bCD%>-&PTy@2a3lGaNT+A~F2r73Xu|V_^88K{P%)K>0XJ*IpEJugMw-->h-s zL?E_WyrHN2>u3#UKf8aZBI^=)ylh%R+s9hrcfZ~Uc`nE7%@*pbnTc5lK~MHqYo?H!vNdWOR?@Db z9inVt8HMML!=F)J)VOps4Qq8(^eXdOL$FYs6IEZwg^ zOpE>RQSg$Uc)I>0H7SmR%M~jMST1me=kGIOI{4_pPS%)K3Oo@=?mgo1Ye^hl?+T`o ziZ&E_Z6s8eM)BXQCVnqYq`?!4xy#!hT_rBa-(dyitgU?iONX+B5h{O_!135siJ@u{ z{C)ltTNV~z-x3d6_U#dE?BJ}gTrqQhcZ%^omE=*%%#!sZ(Zx*xTSgh;HPw+z(f|?u zc&k`ts)a8t<8YUIz9TJ-9c6MXhRu(7AVl&SkVw%IInIFY+Y)i2Fj9gRWDC zBlnz^22y%^1tq@Z%{o7u`xMmDY^y0yzZL|WV>$?Rd?T?p$fA8Ri>WQ=HhIhCldd24 zOvX6D@me{(oo9}FT~yh_C5xG>hqI^rKEK1gVSUe8B%i!UJEF$BEPd{azl$D_WjB3v zgjqvU@POLuJ&^avp0@iIVDQYfB4t4lo{Z2D+mhDP!&+TQXvJ(XTVXJrt}sS$4>@c< zTP7Bs-%N*8_}}h$zAJj_x$%gE2U`Ma59vQ~?FPvSGiI%Z3RD~Ve@gW+;I zQ~Wg?Dx__55dY%{XC!aZ&%rgkM-0c(u8AUG+bEJ*c0uwY<_9S*cudW=evuD4sAc5` zx_;CYeVyw`*GvZyFVdNhJ(o_+5*X?;g~nx$$CvJtaL+3cIj1yW_pcibU`|ZB<{#?* zu>d!A*kIF1W{lMNPzCoh+`oBHHM9MvwpNQJD~c&&UJ}Md|BuB#7AIy7#_qE%q~cU9 z?vB>L@`G}SD%<7qX7w1%%PmIL-yL+dngiZjGlYj1bD92K6)WwhpkVb`x@co5N$#&C z%1mNFPdaGr40cz4P$9V(D=eOyjG9(OGJcVT7<*&vIKWDi)r*HYvw|+ z&wW{<$eLt|5TS_t-yg;4g#kk5j54k-&Bo}+N3^@9C$1ei!gJ5j$nTww5t1g+SkOs5 z_DSQUVJ@2gWtxp}o~GYcfMjYS+@B6czah-Wd^V46S?l7w|2@g& z`Q{jTIg3_in?PRi6jl1QNTxGiqM}Pr=3q;c7x#=-MW`VE?Or;1UlymMf<^C3is+NU z9C>!`>={)_KhD{RkgjiWq7NdrjF4ssO?t)yY=cMGV*aW zb1wJpT>D^4$z`F1{3c7z{=NC^iQw2=q`Q{UqXFqO zpuZ|&F1u0PPWGG}m?X~V_JMU%3|*F{Dt?1LvHluiw$a*H>FLlARN5H8O?3hFiW|mx*=`7anTP;~PxLm?5`T8{e%Y~#HXdj9;K1eN&VHO0 zRZp5bw2bmbZ_2Cmd;M7onA^2pB3S|&YcPxdm!n6IXYIK zq_7Pmgq|7a#urqOopTyBuXse2Pw!Eo7*bE;*Qub_ zv}73PsF2oFHMD5dx)hq{;@HzCZ;*@7NK0lG77s^~2{}@bNCXdj+X~Hj{2TD)hr+=T6Fq-eR<45*mUgALUWK$^8u2j%Ctx0e)jezET zdzgl$(4qz1$b<6;b<&!Mw^hQCy;01)-6FK(H89ma8=J$F;K7;m2Uic%jhEwL^-2$I z;o0GNOGV|gpY&y^ElLfl=*fbkRJ%Bx zQi6iv!{4dX`wdXpy@-PTWFdanG@AUjiA)=(Fn4miNR#!3AM@>Eb`D1S?nOdrbtE0F za)s^5WE7v_o{G~0$^6e}h3Tz4I=(@dih1YvP|6BZi~G>Hh_`fmt34hmG*Qk>^P+TYl(Iy|<770M43H$=&}O%A1NCWE;W=F& zEZ?09HJy<(U&Rc+^^?icqK*=qx6#T)5vZ3df$3d#J~oC@R;4s;^BjZrtag$F1VeA5 z9cGLz7nV!E(yr?A4s(V7Bm*zZ%dgGr{P2?2DE@ zL&eK>i`Ngw)9j{b`fM_q4Cdv)PEL-dJ{pT4_A<`uW`S*6UNR5I1cjX|g;C5bv5G927vm6m6fur$k`{^vjvDKN8Iy6JX+_1WD;e`W*g7GK^Uo ziPw8k*%#(o4jhm5K_;*|IGo~l^+NTddnAhE$mHE{{Mk1O4>wz3;X_$6S-qZ~8l0tR z*Di?-u|+UU%z^296}alXr((B8>N~`qQpemB;TmIbaH;~8WjVs|UK?eu4FXxki-|Xk zal(mt+qaUqTQ~tNyQ5K1!K{-SS@bXeM(-96MCxD_Sj9`Q$2K3{CY(<#eJLsI5=UvR zj?~A;7hP31)B1{+qtVvXKqpmGuv8%iF45fE zNLWQX(q{{!zSSbVw=>nQ?j-Azq3D$=4~_K-s2!XF_s^GUtwthklrf~WhTiiKtrm)J2JBcz?^XB~O|R@%(6aI^g3=Gp9LH=XeQSeZXv*BhjMU!zARn72$BN zH0~Z{!?0KrZO1ckJg}A?R!xDHelI9IZs4BEFS_CIjXaAcVR`RORA#i7=O@1CIXV~a z?Yy_W&u5IL5%_v46T{@jQnhC=j>`X{Y~H;n%;cQzzE&C#YKPlavuUo5m6(6d9J0)B z(TmfB>4$V=JM1Ak^^VGV{-f>xrl5}R40lHxQqh?l>^Rs=%c{ALb~_WX%oG`#$NZ<< zq3pY{!>R0{aBDV)xt{|@6**zzN?&+tyrq#F>V@o0L)?o9rMFWIaAt27icR1LKjuD;Q@tF$3s#36%3PFoo|ZeFg+0J)W7k-*w>K|0QkX8LWR?Dy)ky(9$#9 z)y#NE;dRNd=zK&My4%r<3p?q`W*2&L+6=#@FQ(KrJ@E4vv%XYjl8pU&y1;WMvs1H3 z>(FCrdN&ZY7e}Fm^SOD~j4`mTCz_UIL3fHRsy1@gej0cF7W||OnjPY%T_4m2X3?#j zUy`%Fo5(HU9Yz20gVX43^pt08L%B0|s^t-FXl71ofg7$l>0#T#{i3gi7TLzxVk_r| z-yR9aJ6q16`EZ{7^b0b36avGr5cWQd!LRvYaLC>yd?G*6Bp<>1Ttn<ULByEp&&`v{Z6nc3{ zo@`+*M8_Gj8OJ#>sb;YxJs34hwvy52zF4H>3D;$fG(u!kWYbPVR)k__T0SnOy`^=lis-;Y5H>iDC5PJhy{fI&vZ5 z{=-_%ww${Clh#G4W3tace49k#-|AHC{9}d@Bi~TmN@pC|vzY!#>qFMDFH!^SnPJ`? zNxghY$t0il{QXD~A2iSzRz@ohR?@f9xl|nzi6uKXiSc^p$US~3ecWjV*=TrJb%i@mp$E}9Giu_=_`3Jcv=JxpDm__KBX0bX9+`>QfQtuhV1e~#NC5b@pB?f z|K>p_(wpWEGr=IUbT}#JVE_I%WVtdFk80o1*ja1oC3CDk&0sF6ge*O4)j8UM7PyFwjXQzyW7$S5*1 zQb70uSDf4P=l|W?rXPo6a$F=j_88%*T@V${2*x=6PNfgwZk6u{{FNF6@oW=KI(Uy< z?i7<^MkHxP=E9A6RdFM`)7JsanAO)ptfLc_`mdtOYk3%RNs}`i_eEd!OewLCVTQ*F z@^0*pD@n|?IdGE>^yMyHP!XnH;GWL_dm40`dzLP@i7MHKynuliBOB zN4)AXRTwRor-=8{siFA_bv+t|7Jf#bTg}g-yqWZ#dxLgw@*%6)K$8=g(VjDn<|coeR`(y?ZZE ztEOb~G;KWEDoxjiC1L0z-aB7)!Vohx46QeVN0(W2RrZ50G3}3Sz6x;UtaM2+XP+&N z;Ic>tYcAcQqy?#%q+2Zx?wmu{k12~)-8`wX%?W-HB{*;IPqq%P=`Xt!E^9F3x9cYw zaQl+Dy5bCVObY^2P%-03E)CVq#=>{gML>KEvb)X}i<+`{K2S_|``#95$2g;x+6DLK z*VAcsI;$!kCOc+L9G~%rV#IvOiKiFo)w_v!r8XMI+0r=Z^O35aGRL;nn_^bD0P6-q ztvD4MGO}sUg!Ve7 zvrGL?_IkGcAor?;q{ob^v$Jl~jsC02E|%Rp%Nywh`-W3_&;R2wGvDt^LA;zq_D^_z z-pcIXMOrw2b1&UL-V?I!&t0VV-J{>zo>D1u6PwPDM^wHYjO-s0J|xlQwor6^s0zuM z9puWhi^N;wpgFk@HW<5N^v|J`(da3TJ!5wvpBb}77SD$4M3vztNsrl^C?V?=HJV+e z%`%>3Oq|baRqa=TP>b`>N-WcJ~6-{XOErH71i*)E;UufRZ z5w-mu)6U-}f)*M{c7GU+j-!FFy6*$~hzRsrG6_aWF-YFG37H(fhhY z=V&HoK9|8Bm$8^JN|3>>0T@4Q9c6UgPV0BXA?e^b&M6Is`czj88ykt6eFoC2wB^EC zuYpcq2_WBPM8CQP!KgtUDZ8R^c!?*f`A#QO63MQqu~6^M&Wk>7l;6jK`|tw&MmQ6B z2jkgz?pGOy;Mv@vROGae{-s(%XI26}-(tVPk{n7|GMmNsBOteNA_{l(5mU46;NdKX zxhDr=&ynxqj%bD}ETUHGQe`gBiSC&+h^?>$N z8>02nYcfq;ACCCzl`O%DJlpS-u#cnT37p6p*XJ%;puNk;a^x-49gp zYQsJn-foC#OAd(d_v9(2xRERsteC+#32XEf;e6AZ9J{eAw}r51UjtDOCx~e?Y1wV= z7|lo~x4dQaIPI5Mcqa!ZL=DNg@t)$23(RBIvrC{aPW|LrSN}Y0WL7PLr_+-+%9y2G z2=$m?cugCIgq9QpV7>R7s&l<2CR&< z;cs0>@wvyuVTz`>zJ8Q(JrzEmv$4GRAbmG^N-rJmQrOa-P?45J<#gs=jxUX=o%4#4RVe<#WWHA$FKHW(tx!>gk_;0q0ceNjlaOt93J= z&K;<@%f58(_Z*t5+C~e#tdYFxDP1v>;QW$Cdb5;!Xyg5GnftpMQwmXjCQ35DN(M%% zpQzkxukZCK-jHPT{Q5|DyiD34 zY9EcIs09J|y(n4u4&#o3`7DaOkcsJiJV<=I44}r=3$Y?R#NN{ zPQ8?V(a*E$n9_cqdMIoaUv@vG5QA~J(4&CoLCmt_-s$YYRifgpScb zNn;P*9r5RVT*r(~6pyB$F8e5f`+Xadg3-812^$mo<9pL)`gMVui^0v*t9vdQ!+K(i z%zF{NaxBfvxkVP8b!5ExHv7#c;!4i}?+C_lTI z33+~sAufEnO6g5CV$ppq$e(&GENYZUeXu2z-z=afzek`c&;etVqL9Hm#VbVySUoSE zJ}np{N_;=j2q{nOx>i9plkb!Ai3K9)-8lU8>kp%gD(s!yAvz1xaQ^Eg=-pzMSinzm zkkg}j<@Mq|d)N(XUXk@P7mWFsi`1)U#el8OxW)X=IqyOcQCR}5^Up}8<%ZDYu53ks z5_YJ6B)RY|NMEo~jFjW^l&S_Mc3h&#CaJvc4}VN zNDes;Si$qprMH_)Jz7At;_#o&=^s77`=ReTM@(dUDBZxV*@ zeeaO>uNJa6q>cHiizE@r4)}4Ph0byOq~O9k3xR#VFnMD+S zjGmZrUS(tq&eX=BQ#lhldz2{E!w{D$20-#<01}MyaPdGKs)J9GjJ7Ghnlq!Mu9LDm ztgxs1RhoZw92HD3gX6;Y6e(xS{?z$oGpi3)pPG#O@+mY>bq4KNwu-6?ABjaDH`C4A zli|Bcp1TO4u(2$rQ{MYT*q;HY?(n0dZlRc3AxGis=BBEnP+G>pWWZJN1%KB zdr{9l_Gj&1L}TDeA^*n~qt?1YsUQls7UW?r@4y{qj6~P@`|0x#Q(ReDLqbarixRmz zH~T-4qViN+&UdWC;D2h7nUtNcfB+Y;XA!3Q1v98rwqDy z;3NHM>Ol)z6VM{13AcZt*m21pa;B51*7_(FvG4rah*mnilQ~6_QrZyNk7h)?q~wp% z7;OE7<_s;u%cbVfvCF`__p52K${Es59*(E`Wnh0(k2dbD6|)ZO5;>ZS>Mu=HAp4V! z^KQb%BML?j`j7&9Tl6o5VfZ#JX6_7td14XLo+U%;{dY-gO8`D!NyMKPGb}k2$+`3s z;<&9eDEGN@{9m2+%pnGv2y|O++>+?-SvgS>CplmAwYPM1ATp^bCub_*Zz3l%?hF)|i z;&F~M+&(%`X}cv{)-R_^5uON5JxnilwNStFM)Yjt0hgUoy5zCST$uRw!{B*?@x5>$ z`ZE`!PD4vHEEt88ntX1EkwM`~&Y+wAprdo-@HRyvnI9iP3C6%-}=NUJsVtaiFHh6xG<6dDzE+BwpN@FHgTLn!c)ofzRPr!&F7>4h zSQ{*r+&zDdM#-7r*850Y&w3?Z4<149KC!3TrJ9~y4#1qsK=e}`f^Kt`k=|@ik@(U} zn5oCn4TE?b80QJq-@B;Q%nC0C7UQn^IP7gm#&(;};@hHRxN#Tb_7xo(d^w7pgR;yx zi-z0w8Zw?10dLN`OwnU^^!shhbz4S%G!i)b&K_A0&eT?45yj>QDJUisis{>^`uR_C z%rv6-{hC;P!I9eBjWLq zToHS3^uX)u+*vjlB_{0HEaV~sF>jd{ZQEBOIaF?m1<6AEO!z^iyHv<>zB5kv?h@t` zHqcqu63R$DMj>N*;tY3He`(1|%#Smtt3!(RTpWp4J?ls=cNS?#4?^;hJS03?K%;s+ z7T#6^p#S}$XpBuo$iM}3RJxP$4Ik4upEAneeTTz?iP&ymPE+ocii$0#NTvKPIqQYN z<7Gd5x!6wEhvwlHJBBYp8h77ZrU_ZsXjsT`mqTBF33JXq&)md*n#X^|o+0DFO$T9l z^bZY5;B#~Wv-p3lm)x74E~cfcWABGd^fn$3d$PbWy>u#(&x7)xD1@a%(xnMrFtmy# zwWDeHvTiNe_gOAcU-yXmFZ)Ba??>`XAPC?1F4b{a<*R6m)dXzKjifl48XC_#-N3M)!tF>2K8_s(gZ)wxn?<469(P{iyO8J9Z#R&? zjs|JHbK+-@4N}J$LY`;T2|t{1{rw|4Z}5SBo|EBhUo~CX*B#T&ssrP0~Ua!?Eb1Gm564bVQk(L_}ZON>_bi(YweW zWh-;B+k2~6eQh*q$4K+{O9_8Vm}heFKZ=%1$CbA_a7>#fmNL6s_nI3WxW#Aj+==4O zo`*ChCzqVpajqz=io*O=VD8Aym}5JrEr`T_GA8_USfDubImv|ZzkR-)c3<$q7GE_{ z60(_&J>Pe2 z=zU6me2!;(_pj@8a`rXhJ|_spX8Jgv^^T0(UQy^Re>{ryqvgf-x3sP2@x5y#^sXIK;(v)!d~k%Ej(QShf}eXqh(3Uk8^HqkP0082SfQ?3W^Q3 zii+q;I<)C9eY0$!w>j1btIvi~9RHo%o=1rz(wJ{rL5q$EY=H}X8J7!hqxJk9Vh&oP zvuN5}2%k3_ zRTjtV4^i{6)xtYt7(N?1;X`LGEm8X=9%(X{Dz=bZRve-Ew(``Hzn4}i`C`l|XLMw+ ztD|)``Ss4nwFixquXa~5WX~i#boBKa8NBAKN)&)*Gg) z`ESxu8`l@-V#I=C>}MDJn200{zm$dnkJpmKi}zEx|H#h66Ni~){c|+m!6z$`q~B)h z_ge)sOTSXk?@P3F`dDa!_;0l!a3N_KYL=GbT3k!H<7cI_ITT64q0e8 zA$XAvrf)by&(%|rIYSQvtD`Z|Fah3uL!np8{XL7P;=EcMR6AEwiux!V?5}{Ma(z(v z{SwJ`HqZd?0Cc^nBK{^?;o+mnw4g~E_J2#MVdEY$JW?eJQ)kk_wh*XH=!;f&e*Pza zkgTy*puf$7uw(FOy2KsAP_;~999Kei1=nfaNp^}IwZ*&*%c!!5vjjZHZ0@g0&HHm9 z9pXnSCY;$CFHH}nCt_c`Ca&C_j1iyY@&0TjIrir6Yh)d{mJG+QZj*6ufCFZ)&7cLF z1L#3s3SKRU=6jSGmUG_iP1a`-oxz#AC7;AzcDir<{*3yEYQepzo#@p-tkNo{Mc>$Q zT1%K(a!z94Q%e`Ew$Usd2lU)}l17ZUD_OBX3K8tXlgZV>u=CRB@zoti|2ko+w?aSw8(iIdCm&J{km8T8QD%n5najR*$JxJc!kDYpGmiE5|Q;~u&Cj?f%(Z` zEIeh8PF=p^$V;JnPJg)l9Dv^{+-o-TgY8%YOm5M_py?V=V~@@LzCFn1)iLs`{UE$+ zvY|i5Tcpg{LKP1bvBBpVNgda7F)tm=xx7~AX@{)wJ1qn&A7|3>Q>!TC9PdpsoDj0X z616eh_q!=aN3XZDoUhGAo;J1YUiY2SdX*xgSqXqmvS%4HVyCPyF$5cIL^!*kH_D)2;YMn z$(Fm+d!6F(%|Zbq9bD*lPYtMcY^B@lvq(5jqe^E>EZfc*5`znr#k=p@XQHw4z7bX! z6=1`MOCrwd0p$&EBbVXKxu{aZU}TDjq6Fynm4dN}0`oVLB{M?-g~&}F|=a>?^X(TzT$&zr6|_RR*F#bMZUe;zF!SWl|oZSd>v3CcO; z0<~48!s+WG%3b`3>`xTavo1O?8J|xL$3KhQD_U6CWZ<+W_pPW5D;EiemQm4^VoYz& zl(_PK?c70CwBNl-uWN!}mAskWl^vuFx}QkHttaX3oQT1bvL(TK+)wa-L^mp)kya`1 zNXK@gQN>ef#p(ch<`R#IgNI;FYa(=$SCIUMC8Q8tj5k{9Vp8)a+B1R~Z_;`6SXRPw zz6cS>y?F0`>_}M^3(vG4B;!|rE6EdJoNgf+?kn^C*&C0UIlXna9_DpKA&>7^*4=K@%|2-xUA2d+IY!2W~a{W7Y=_BOl$wHC)G0c-2SvgTURUCJH8{2 zkDR+2@`Y}NTH4X)rO_OTT$Rn#CRlaIZcWk@${l#5>kc+;9h(#Y-DU8bHEt)ZWp7#m@{LO*U)FD z1ZXe%O4~0_gmnqKrY)k--TIcx7L|)8@252T+Dn?U zDG0GT#xNX`15I7-y!nnos_h{BT3&$mZxUz=3v4&(&aJ5;n2pG%mWN+y%T>Vnp)NA4 zw~LjV`K(fBiX->_2)RCnB%NYN_sy&6B4-Zw8hoaU3xhDn+Z$I)tLZrJ*Je#t#m!^` zQhPX5xTdWZC9zR>5a$bD%|IHXHVG%$`87(%fQBsBr=IF2XyNDW*mZ4^y{U%y{@NEg zbMm2KF$BjmCt&OsBiI-#ke>N4+)nL65`Mq!JJLZP!WCd{8$@-t=hB2#bLe8tZOZ)o zMU0!9EcP-(EX!CLd$W$voy1_wZ`n@Ohu=}_`DCmLv!Y;K-r01UDb(BcQ0cQ=L`mPE zMAxr$wZs&EGmCKolc`ijL?xz6-GY9eXq5(detmOCSYZ}~j7k%~g#<3v}=vi4N zx}WqwW#s_)>aLa8Dx0C3bDW4`UTV8Tph&+p9I_@yMQ-=;BGQk~1La-m^amTn$}(kxe`jfFK`)~=iO3*tl529q(hrYl{ZLN~R6b6(v-7aWXSuK+ zl}n{>?onu$yR`7hPP(`~2GY0PkkricFlPF6?{k&D|7PBe=`vA2ZzXm7Iz!`orQowl z5o$+GeZY)}{NAl9@W{{vD$1wZ3@G-3H~(OU}#vi;$8Wh~K4S$Vn*)D}4uIzJ3rX(K_;w z_|sm!7>w1D#=q#uJYp&7Q-*(BS9cxm)I9 z5jy}@?C0#ag(`AS%ZY8r4odcxJEO179ddK{k7~Q6(Fzr2D0NLnmye40cK$J?aPOg^ zq8k)7vvK=_0+xC2uI{ODV*>1#o8?;I5cM9 z;-SHJjt$JV>ZoK+ymOTp((+5Pre88L8dPv1#1W~HTIlJV&$G1u`1v;(MhnKme0eCc z_#CJ08c#Q##$e>|t-M1`hmwpUf|W+%d)g>yhcTxU-Gdo2k<@t57Uuk( zcsS4%r9u7BI)d|J(}&`HcRwWXcd|TCo;I4~k!k4%vf300MYv+`>2VbKq#q5)>`!Y= zU1{9?kyJGB2)#@UVIJ^A42=jtP_Ihr#mv+h7C*%P33-@v!3I_dV>p{NRNTl~Mf?dlVW()&vK-{pnUHt5IcZ%e5GWdm<5^dX9M%oT!UE9L+Z}fvji*n0WhssK zSK;55NaWRL3We+eh41K&vnm~=_E%u}+EzpG9TWCb4*i8|IFR zBYl^j^qSv+JABWG?mTPNsbKDMwmRa5q@a1l4w0&UNBk&VP3OH7FzC)Zn%33@Q+y^s zW5W~}9CbqAi#UuMHG@=~tLY&7-ap=mfmbwlL{BnL>EkbwI{9@ z<6@(RD~x&9X?aN+x0OfZY{PtUOlv%fytHw;We$A~x+$DiT2Yq$VS4`X3Y~#BT0Uk_ z)uMykk0?M3n^>46bQIHpfq%A3gMAm@<3#-TENEcWO< zr=;Hf$n;q_4)rr3)8=wgsL8`y%^I5LITQn4X;J2D8>)|5D-6cB35mfs8d5k6FB-E! zGdO#gn}fP|HMH`cZr0C!bnN_Os??JCpKA=aUY?~V|CnJhhy7E1Hj>n(Zz5791&&9X z>Fh{%m`%GQCfIeOfg3+lQC~l7JFkedPnMALKXvM-o`~&}M~boYyfOa7E?Us92aX!9 zBDv42$#1Cz6!o`LMN%59Q#f~+Z-fk!5Y+jN!u#F*@F3d)nIoLh-EcOY;(WdOf6Aot zwT8ZQiNVL7qoHUrLGr&W(ge3?P_z}i*IQ#*g9O#S)_CUy@M)^N*Tt<>HQ&0|mZIgw^9xF@<;8 zKmO=LvhIR-vdjP{xKAh5bekSN&8M;|J8HNz1+#zGQ^2!e472@2R!VO8{=k_|ESXPn zFWBcdb_NZ})kS>ZQM&BnK;<2UZzR)&#L!>$TV{7(g z=5}b3mn?U>))YzdJu*;k8$iM&K$V_* z+@Xk{?ieE(!n_iD>?;d~1%Gx<{-bg8NHfKKaK_G_*7!EnM_6>>X9UFy=Z--l^hYne zx<4AKaqg(~9x2>@#nag?FUexb4U%R4%(~8@XgYb8oKQ_BiAq2%x( zC)&-fsARLnWWL}O@1Xw>+c~i0tQlTdL<`>|&&Z-p2Nhqsq09Q?+$&j2sk_Q(=GyPn zd1^Kd9gvIRS1-_}(-YCTEf}-*);{N7m#XD5s zziSXV3jAY*?ptYKP zsb4>c|J)B!jQkU-wJ)H;nZvQQJ`;0(=pigQ7}@U@(}eeSG?H0A&*&+I$8+9s`2o85 zeK+?vhS9(NIsEKWK(mb_@?Hi}#u@>uE7NJBUpl3o7QA;-HUZW`avAFznKFv-_#v;RiLi>UuJA?WBcu|5~Gx;6$;~TZ> zo04?$BzD$%i0&ie;Nd-rbGAFFE#WKe)b++~6BF$4+D2dbv)X^QJ8sU`7t0CWLqQ>a*+k)@`~sK8O0dVn3KgrhG3bmxzCW!IThC3zgH>_(b~PBS zT0dR#dOxN+oKI1l&#o8#eQn?Fj~-{4-QM@1_^Vn=vCdgIa_TUBG4Ms;9L^*KdqUo) znDgz{PiVn>em8}I>`qE#N^fbiQ|2oNS ziwhDQrjnd>1SoBvq=$~2$h@+HXZ;z_>Zt_FO-9fyG$31>5VRnoY3ALPiHIw(Xe7J>3G&rAhYwWy1fv}%?gNKv7SyG ze!!XQLTskFl$U#v*0Qs5{dO72tdp^{(u(s$o$MPqe2wOOzDFOV(x^N0O0=&_(XaJG z;JWY=1-hyrY{ovxyYt^UyS1OBYvhn0&+P7u32-ZL!A5gi+B;`5ek;n+!2@o{^ZbuU zMUy*C2H5v?2Sp7_L0d^*=s6pqT}~gf-~18r!-yKr4#v8h!;sX?AIVh*$o6|6_MS6^ z;`TR`G5r&L3*~qIryW!}K$pGl9i+R$7CkpDll-PZu;DY@4 z=%ibJd*RHdMmkXQSg3?^zB0uJo{3Iq?In+<4y%~Xslj-Q6 zw3q%1KS^;Nny~ntgZdDEsGprn-)3-+GR=Y>n_Giw4YAPXBDpMHM0eiW!l#INf?*@j z-XjAlpF<@R3`Qg3og;L96d-PfClX^CBzrctQht3`qD(omjZh@-7188I{F!u%!yWy; zB#d^_%=I?7U^0^o7uaE+bh%iT7LSH!iRiNOt2o@ocdq+dWVALE{S*5j&vY@}NL4~Y zZ5RC9d|3=F4M*OqQ*`87xkz*BkDKNaY@Dvg-p)Sg*YHx5c;vA6w?A&LQ9)aQ7MZ7P zr&qTUv1DR3l}=qoZVG*n=<0)VWzP15X3{p!bq`wIAzY=minCjFkY?+FiQLWTDdm9W z^@dQI`$^b!8xQf}7yl0akD~MN$NFuIw)GyV0zyCm=dU~Gk_r9;|JddM|^#-RP=$`{hytb3wZO-a5 z=NyCdvHZLwz>_S0Bv((OhTLM>Qlrl3`hTP#^MHDm`O{2Q&M6U9fywGaf(o5jNUu|e z=np5vOV8lln~SvRvm}n>&V%iuM3jW9U3 zIb-y?Je>AT!rI&{X0e^SU^642)SHWr(b~{!=DD)A2?)B@M~YW@4=%3KE~kGa+J_#Y zZ96$z|A8a-=^mosL&A7+v4i6`n<%kB0@`auslmaV42@IK8OG<+?-lX(=y(Li3s~k~ zRkrW;7{QnREQr`;VDsm5B*`Wt^(~)IzWPaRrSIvR`Ei;zOd3b;9HD}^D40HWAcZau zZ0!0j$Ph$g`}yV6U89FS^(5@R7>ag{WaMe2LhigDe#@sIDNz7zddT*KI?yiVevz_y7qDzhFg^Kdz|Vym_~il=XmI~VbJTDge_2nJ6{lF~wJFf8e?i-9N3cnpBP_Q$3b_}P zq19lA^4w--raBCBdQOndt8{d4;`jglY-n!hS&{Tm2ptW8Y?Bx|HPZx-2!=2yh$zEN&PBEbS9fxT21x@6S8^sp& zszZIy5c`}1=$rmV3i8gTEsNyQB>$X=a(?*7AS2uwG@%ixhiJ*O&w^5~QdW4w64tLr z!JK!M4{O>%_rei&auJ`s9C}4f0T<}Tkqo%)xy-&OzNMac2JbrosGhr>tq!?N7vBD+ zr=F9jMM%I|7P(Yb#ZZ1G7Da>Z{P~@MkHYVn1G`RY#%bW%Qs>Nbql%6^8TQirSy|>{Cx2 zvs%mDbWdhtYDy4m`*EFm#{(Y4!Z^=!cl+vP@N~=`YS=OiDVzDObQ>4k>w<99QH_pgkd>p``xBE|9He1+@wr}qs*f85Pe*?mKGT9qWte7 z_!c!A%{-g?+O&?I6%V6{iG%dsuY*1RoCHtaX-Ib)g5n?F$tV3Y`|&0VEB^Z9be#|O z&*-F8`*rcLvXh!Bd?8RgELiI)kC{ui(juR3J1dh^j8nP9rheEf@O`y~In?Xnv`_=9 zog;!@yaQY*@_;p6xlGqvhT|$nVK~40BG~ouKlb^b7T>`i{i! z-b%|ZI>5w#Dh7%T>BEebBztWJeVV5T)6K#3ZnhgXai>hbfcvFvcGB0enwXb5ftBp% z-;3qltnYw5-WycW^c*>Kgxj<3Bqf*)9HoXf4>*cTQ<>Za(ySiFoyz-J+3TM)YE?Rx z_eryfM&XjXOL)J%4v3dPW*^w&y8YdB2~fHJzc)&pmN$jWK2U?4o{QI|v&lP@8EHJ1ZfJ zi^JogXuE`7{*gu1r;W_wqAo@$r{G=gPWqgrP2pzYBzIRIKmA2ukg<-P*OsQ6Up%4E z>W^pnQW$kI0QW3xFz3Nx3dxeh#WBff;b(5;Xjxds74UuMYnq}pg5+X)C^tk1dwrF0 zvCbB&6poX3hCG!ETeJUaa$z!+^DM`gk^BvB%vkq?)ZbX(y44p-%MQS=-)(~V^FTYA zoN@Q2KN;!Vq~w)Stoc$5PCfIZ_+Re0dOjZsIg4nvUk;v%Hd9EFE;gMJMoWMW>KeVN zW=If8jTwpTRVK);)xi116FJlJ3Tb{UWljcZ@YiyMyW4!EWUgfw4IYp~j1VQQQQ$@u zey3}%pz#XIzyl);*bP!siU79%*3s?~N5MPJhgiRCBu>sNCjSGxtChN$jwrR0=IB3c z^@kGHX8W3Syj_uV!5YJ!?We->Q9Mu3!CnRSkx5?wLN2*MZFxVr9DPj>*HyA?70#Wq z?4>E|vvB@>5?wqKfZyCfwz)1510H!$;=S-iK|Ft0ILHErO+)_mmn2j9m5rRH#%{Gt zg;1d%cSsxX?06=hxrRpoq;opXM8s(q;vF!F%y6dYB`NQHacs5}1U|rcXDMVDinAP7m2Za`Fe*!Sq&|?5a*3D@+J+Q?cQ$54vb5 zR(kUp&3~szt9?CLtaYUEyce9S9K!bkA<)jw#i}o&_^?{jcBzUx?OBnJiz^RNNZDB0 zv&j;Z(uN}Y`+3qh(j_?XmNWF8tKf#03?}>{?Bx6bNx4iY|H;LTEK5d$RNwMEblyoyxLrko zAKFP}%{*Aw=b~}ncFJ0)g1fi)Jls49mnyH>I?vCc4g5E8x22pG=gvf{J@@;WW}xAS zF$yQdGoRCvOn#>-KD7?Py9K>;mAi@>@`uyshX-hI{wk`B&83#@Rv4F>;NcTKi$yTbE+J1Y{ z>W%AIAkPq_Z0GC-MI$(0eo4Q%uVQPCG3UP+BjcDja~-UpC(83^LeESHpKs%Sx1ogd z)9Keu-qnqL&kUC8BmBz%-`_CK%&^1vE4B3T&kQWR@QE35mw2G>b^5hsE$g1CgV|p* zXzcb|tfv_xg6&%5$M^sGW7d<{6n%W|93-R3hJ45A&&CTYWBl=Ix*$|dbL8#07i}ICZXRO> z%b!w&P%i!nHIrjl8-02_1}};UFZ*s$w{J4&sWznYcazk>gb__NB-CcqX8*Zm%((_<4 z*Ok()*tM^)~iE}H^Ts-@LQ3rS|3H3lM8aeMAff#kg{bd9qK z+r4Mo1^!fl`abSW{X0Noj{c(Ve+&!xyMF31J1kFoO9A;?>BPh5q+!h6RRcu6&767i zW+vu8%*C%)PFPYJg{@uc_)=+)5;J#tB^8Nz4ZL4!?u4EaL-xc`h*U2dH{@zxe=Sjp$YdzR(2!P?~$KGHd!iMk2`qd8-X6-b$=?ZhvR>ik3 z5pWXY?lad#R5Io<%i_Sr66GOGLO%n7cp-e^nYMjPCLnk0Nc@_bj!DTPn7UpEuA^t6 zx$aC+Rbt)d7FQw>ES-7_AlEwoy(&jy(DkoPIyeuGbzMHfBnhR6z{5HEj zjf7@))6xR&T@_A+{$K}9dznF7-;2`0mRRnXbi+N)SV$_#Vi$TnF-g&cnzAaH*VCT@ zhpo-z**gy1YXnG=3*gyhIVe?pAPv_Ui1WTcN541WIHs?Sn+~Y@K##4F0k=^gfe3mx3K8!=zmH9AkG^WXmINxm1eVSFioF={c z%#ySxQ*PINn*8bu)7>~9w$0{r=IUP(71qU6p3$mpY@~sPspxEShdR$&#p&?;w_gce zX-ZP@WP+TLy)X9A7)0fG@1MKnp;Xq`HvDV_u0}<(FvF|d^wfzY~2)|MO$&p z9G-`&*qJ~pnlL(m7RO2<)3BHl=Gj6{=`Y<}Er)lDo0+;xD$35d!O*3K#+(vHm0lPO z^RCd`yHk-}r~-)*z%(iDfV#eocJVvx>36D#sZM1d6iR99aRJ8sb;8KTBb2&80;ipR zvds~4@ERk`b1f#wtmk z3r>dX39g4VQ=JC?`~{;0_xEq7HD8m+=>26<&TXKSg<1G*xPS&@Q*m#E7BY<{U<&+^ zJ%aD$s>h&sy%+bW#WAt_&yPt6ynLS)jq4yw&dlmmVpvx0i5b$zDMk4(T`dZvf2+Ld zSe^~{1lVFhUM3WW%Tq@F2oznH#`WNKsu(NI^W9NcqzH`lH^7#h8x;GDb7Su$knhhG zG_#~zaA98oo3v{W#q67lu2L@)4jBdA+v1RwKR|aYEHKUJB-PhR+82@xr?lU!EU|_TNbRTTf@J7<%;)cJWmdUO zj($Gy#6OY-j`NJ^YGD&+(iO7CO~;u*fFzPqu9JV;YWgaC zpQM}|Aek8eg-{8E{qv-kI@{>#(MLMz+Xol^a|D-c^7}np}K>vo=z#{!2Q@GAKP9Fr=X4pr0P6sGp(?`nX zJ+0k5A94S`09;8OMpId!L=o|E`0H+~4U?`>(H4fZ7XEzYp5pB};<&ir1bObcLyh{tE{nDFrd*5W%{(=5+Zi3J5%QRg!UXbC$`^z!S0+-E`Q95v*O**d(%cCPvQ?!W1K39WE`vT=_6n&X2(I?5d-u;i-OK(E&K@4z{`*a zd>%4|P2(=J7f-FJdrBBq{o;3&E8|J6aw#n`8cTH<)%2-~pYIQdKt**tYIo}4#1bv6 z68k__Uj@wUJmKdWMXVb6nx@I^qG2=6(&}gBbSYpYmaU(L09R3bd&;{Y+C1YS<%!kr z&eDb+d5l}FNC|Ibq3bdVZ?Be45h)>hAl)Ozk~MGRqtFVP7!{m|D^@ND+mi^hLJv0F z+Z$8E<=FI%3k55m`CxUa9fFUK!KM0{sJo_)C0^#ZzpR~ZZ|Eeg#!VD4M+=41;@Jgv zJ_r0Pi|Sqh{xoW!Lh~QlDb0kC!ZO+#5RL@yHi=y0h-2!i5am2gqmWTBb>w;5tJ6@* zyXTkwSz}drHn!)jrIH20WYc(p-rsw`vEDm+=+$C@2=8=SS2Qxpu|sd{Ld5cS z?AcfwT&hrIA_hYE^<9H9Kj={R%wk5_!Z*VI4{%3Tya5$;ucasT$#i+Jlu8a7Lc7%u zyZo9cUeld=pZAij!D70%$q1w5Oi;%AJJp)4lyZyzMi=%|(P~ZnOy5SH{O|nW?gU!6 zqlBKHO2*r%A85z6%}n7+3EjG^j!WeRSZr{eg|^RwX+bgDFd~-9+JrIK>4Vz8r%1t8 z78lO(oZgdgxV*Dv6V}e46({pp<6NFGR9?bVDuz>Zw?2-ql0Ziz&vY02(zF91w1PBk z9v`x$#^J5Bzh^DY{(6)hImCNc`l_&8ae!@GX9wRn3+RqZWobP@+-rP@syJ)sg2+_P zI@?d5Y-6cDO&_lx){_3HZnF5Bij>a=-05(i!s--gUerSTUFiq~K?GcCImfxzoiuDV z(&D~!guigda$ip*9EgVEpXqqurH$6sC>$JLLyh^dsC>Sb`S^^*_JmDri}Y+v__vS# ztZX3TjsU0xN3ee_V{zXyj&m7ru!MFo*h~APqBIw_*MgBdun;K)6L3cFB{|l0Q@Wx9 zq`DlbhG$?u-y983ms7O+y9S08Cv*1(XDo0gosQEq9DS*U1J0gU&hta#bQe<7=bxN` zcZJ?DykVGum?n;x~WHUw163H*xQ8{1G~GeJQ)bdxl1~g>1lD3ORv#_{Tf=W9KJB zyZbgvA8v^1KW~{>U;{P1>LZn9+i2<$U1)^*An%YeUVr{d69w~eEnouPOw=XWfo|s6 z5rThWYbIUinqmw#T7XT@ZU z{p<|?>{aw5I|IqP>|mwG8AX2;QCIka^zMq{cdQ<+|D24CI@2lO=@ItlvkWYF)>yI9 zi00o(gvQ#Byq^;f`;D9lKah;Msk>;5niO}g@1O*AAKX?I(D*4sp|z=n^3Oh`^@2y# z;SXH8KM~76@a#dTJ!Eok(KLBIDiS?JYvqAcS1&Ue<>Pcc(t*C11tNUwM$!r4T>0O@ z)co-~eO6S(qb zk3UJu`~7g&kGn^ocF|g~&7Ax7lEy}k!D!78DDuAQM4symxHp;FJ!VkaJ`KuZmS|KN zkM8d~nScL$j4TqumXD)=ziniAvw?I%rP%1q+jKo#7Pnj8(SZCly42AwIKby)ig(u2 zJ-!#bTl<&JZO!G}yPYJoB?5CxCsVoQW-<_&35f)4>dx&Z$%ZIa;^7Yaa8Eo@;{VQ@ zoI&8cOAs18pB5eA&V^ffI8kp3iIxCna5D^D<2lEIdvIQs8wk7uEwJs6J@jg1uzSm0 zvKcoSdM{(K@ya@q;p}+-gpagAK><@fS<^m`S~BZxW2gH@veHEp;J@n_^IF8YV!M

x-H3I!(}qY6PYyWZ<(cj1i}zM88-Aw{2^yTM&rt2^o8c}@H} zb&sd|4G0IGfsi;@`1{uelpp)C+Fcy^(4+j=u3s zj!>Nd?mN5Le{yyRJaC+wq;Hy+`9&?r&Px z5`bGv!;t4?Nzch{$_e1evZwhkKgauQ!C}X!w0`;$Vz{%VQ+^U|>-P03bqP|A3 zLGJrLm_^smL#-S(!)VHRCA`1LcmlE{(Q;2 zV~4=+;(dYMf&g^ft)T#?D7-B_MPZeRG)a1po^!U;@+u9y;Q5c2Uv0=_XC)oXF~d_Q zH@06q7C*M^qTANoeZxB|`RnSLMotqu|$sGa)*?2l$(9_N?!aduwd zKM{z{R>T6HOS7LnK-R%Jc*AF)mb=4He7uY`D+fc!z>mZ`w^7{fY^+eq0n=W=c2&i} z>fBTu=?SIi;0Lr)Sr_w8&%msuUNky%BE}*M=1;kkSVEEwn-@>UL#N{1f9bSm;!(=y z{XMfwtJv<15;%G+9y=x)qvY5SOdOD-QF;7buFgAnX2WUu^eHfX`JVdCV=#ix2R7uE zliZptDv`2+@EKhi(G&sSmN(>^{F-KR56qmVzw8vVBzpLo9DS@vRAVto*a%_znitfu zgP`uOiv`iM2-mwwFd>|>Zu9$L-Y>TM$$t8`R2qBvJZJH?YNmXc^CI_eBmH69XnDtC zW>nz=#qnK~u}%VAOQa{N8e5P~khV<+i-bAXCp2E_zXo);@|GoQj%h zK6G5e0@_n&QRshd6!K*h`Kabn;?MwkW9o!kpK=5T<7J^am%9!3?xI1Rdgc~06I*Z8 z(UP7%>QVJVYx*Q?2v&x?D4*TMNkH!5NL<>IODitv(bV!3jGHwNr}=wpE1xs>NMEL1 zBfn8;_dDi!vxUAS8{^%md}v*$B=>}??8mpmg3n5iIU^v0hH_VjN<=4XUU`5C_h+JM zd%NJ-M1OoM7(xq8M6gnSHWK^t1WES`nA{v?6nFX3wrY25Kb(T@QEw^rc|QfaF{qka zQ23&DazBy9yGuuC#gRmO+wTOUNbX1f7RhX;2Eu#ids4|V#p)D26sbAmGIv%L$7jLL zNP?}JyNv(tCsNWgN37?LX4lW03%q8lK<>*T&N6vL>&h=PE#7C2(B*UP2Z1QeTY&Of zNA_KKBK|B5ghFN_j+FhT{E-*wudgM(t&pbKwP_H(E)3}xL>VD*xFd0Zo{w@t!988< z@YJT!za!{VUMN{K@b47wiS)I%u)23c=t*Hd6c>5otkf*nZO)*+Q=D0790ev7gZFWL zM3bDzgM*J z4rui^>XDFySl=PCu6{&o%LA}y+hnx0`mlK-v2dIxO80c`vBoX|=38?Pn!^^BRri)0 zM061{h4Z#WGB6mXjMZwlY25l#%s7Pa(9L=U8|LTW%|9U=IeL>UAKqaDP5$Wp#pkRc zx7eN$giU|u;?b2RQfN@en4T@P%$4WJW8E;%h0n113+TfTd)(i!mO_heQ_DsrRA+Fv zQo093M#!VzEFK#-a)+Cy5L7p0!)ES961!YN3kzjo_S>1*T^TaXpN-2`0-@Xao+*xZ zhW%+jJm9}GwN2Lqh8zCSq7%H^Ibt70ZcoST6-MapjfV85M64(c!#i(P7_|G5oc(Sl z*BpQ+L$k@>dImmjKTK~XN#JV{LyDshgj01We(ZP*37m%4OI;uoc8NrHG0H9Y&c3wr zY|r>63UiUdzYy+D@-h;f`Q!uh#5y)}HNP*fQ|5O&S<3i*kus`GF~V;2OiEuOxg%?ySS8`%-_(JdpvLc!-}Tz-FBZ$8y&mwgvO1N#7#A6Iuvt_j=S+Y z9(QBx>#CP7U zEHoYtbNh2NCvglN4{N1QHatQ4c>{M{G2Beyv#Xk;Ol-#znpcv`a`v~-Rm%X}wKv6c z74GtI%|dPbTUz(so}K4+&62AF?9vu{viq}*iC^E&GH<4#<*zjyruaeW=_1;vJDNXR z`1`gpmpf+K$$x}AoxbmjC#nt@+sZQ@4MpUVXavoc7v#}?h}}6bgmyk)oGUjJ?{1$V z3%ys&SZ55b^Id_3AJ3eBo57BnnUERxmb_6}M^2n=I?!ZESUO1A>QnKm#t7Pl7uo5~ zH#B^s6+OD)h5Otwf7h4uo3w@#2M>`>fg2=pk`Y%B2BB3J`0?cx>n`xdTq!FWZG4AB z+owT#bp{^!YSWv0@epcv#nSSFY{-s@@X_YSz%kYa~~b9YNY7xjdWPT4l?s!(u(TG z^f2KVP1$RO^xvzfcQ&Jq@y)> zw`+_^Y@pVi8O%mFn;MEm5Ec}JGBrv3{St)hj&o>3Y#IOa`CUIO6S{94V0B~{6(%gE z#I->b!(Ao2E?=XT?zybtj5;psS)<>lTrm7%GfDFqsNytdyvk5V*4CRWaqmp3Jt+>4 z)%jSl(E<;)cF>>G!%4N8=g@fGW%`#ROsl(|`j-dL_K**hs>B`R&&ROowQ^*9<_yi) z=!nEE=c#emEh@D+Eyz;mtm3VINI_6d3zU~o&0qrbSJ>ic-YJ&%`aGE|tg>C0?TRT@ z^D!zc7gxP!VUF(-dXTMyGcwMUIN~Rhcp3%CVijDp5JSwqd(>5!iP|N#6nXa^)yD0m ze$5Ih-+ENgXCXzNTNLQ?9%Fhj$qTBh7b2}qf*Pt65MZH-IW-D&)^!Bm`;6o)wKmp% zYB!sE@gF6=m_u);ac+#F9=5Ly$C*Xn=$n%qX3i>PLt2ax`W5a2Yy(1G*{f{<9OJU}vPjpH( z6m^GV&}b5dMAJE#%6pZ|Cwrk!dI$Xy`amONAJZ%^V^|Nw@_V8$Y@Q6zOn&aPP3D}a z+H%c=tgh@XZJ85@>q?`s z$53rT-aul|t4ZW%O<>Nq`%YsmRRt_Q} zwy@h!M^Dth)5H}KXxuE1rv-lnYN8T&U7v^h<&jj}7?mLx+}ZM_Qj4D^gU35a>6FTt<{90_)I(Y zTN3MZQNz%&Hgq=N96K~j2-b4v=xa|Tj{dwrZ=O%V+AA%jS2i0nIXB}`SEpMe zO1~dvp*rgl4fRlh-TO*<>Szl0i=**&2hVCcALLA+VG!0*qY?XUso>rUx;w?&c4zNc z^jSHg-?xY=CRw1gK^14izX^sMzrlQ@&G;TsjXUIwNEF?)cu*YRkXGF zMK!*mcv=@p4bP>pOKb;y@d?GtY#Zc64aJ?C*Qxbb5zii6r}fFJXkO9(b&dJ-OPK(tRVrIH1CT|ddv!^jT^Wg!R`2?b7c^LI||6$1m>!{Yhfp?}C z;M{3TObd=?H%|uPzYnwNmX{~A1_%$kyfNNipA9cb7c}g4fz+L7oR^4U;=j(YtVC&a zt$apX%4Z>m_CoA05#tLY2R>|Q+COAX`Vkg?YqoA#t(krijy9#e%I zpO@<%+()&~8Yw0%9!B0mDAN$Zhpf-6AjcG84}&0Saz?PRZj0U16&CDPb}-U218M%r z&vd+@Ua;k{Jm)*x;pZ(?o=aFl6Mkl3$@mK-t=vQJTy~Hv&ya7~9xDj^E=>p0s%U-m z1}bS;2+M47p52f_@IVdgtolF?RCe(GNfdUEAI%DkJ4ic`b1fX#P{6B`lz);xx6asL zeYGOi?%6=1isvNFQ5k0? zrr=_90%sA-p!}guP&)RBq&TOiqI)jx9FRq0z$lzm^Jkj;?5v(9iT>g5>2t5W;DwVp z4)Y?_x}7mp9QcR*Y>`1dpZ{<0y+`xvbudY6j){k!Z>d}*{4Ti!s_8L zW1?tZo(X4lF;th>q2P%xucNt8%dRrkxn+>0O`45uU3Uc{Pwvp`*W4?!#S{9QngPVry=>CPjY-*Gx;!f*A#@h}=5ZBj6s3S-ml?63D^(psvHJ1LW4%+Fgx;D)>>8);;LDmFM> zAVZUS?vKgAs3CR;u+B!@vS9Sc8l$vU8au-4*{p13sMZ<4T{aEFB)duCj2GR?J3|Ju z_&!HF5}ki)=;&L%V;v@f1Wj>>t=vk3^})C>R31*^JiB|wl7DvN$YZ7%UfwLA&oiFU zxT(|e?Vu{@wz>)?``ck+R4_Vjn~-duCvvk1<(wJf6mgj#Xce^91VL<6Am)UPqak#Y zT8^c#DdJMFS-G7GW#&SnP6wMhcTlFxCi=NI7kBQ~k$1BsH7&I5GgpqL=U{7PisQpJ&$uSe@>w@<6lx@8)xga z#KXjWIW0`MLrHpD>2`-2{o3@8Ef%wfh#&zs6810?8*LnMe9txq)bk!y0!+Gc`JUYy ztxJMonjuXm!jIDKv>aS{vYLNp;&j+Mjr4ZRg?5SzJjBP;mRNgrmSIk&o|P;ZfV*$OSBBmeuk`{kYATLn^ z&T1q?a5ij#br})^{bza_71aN}oSro{v(cQ}ee;?< z!ZIBYx<3#}?d4>?cR3AzAjX=zL-`(cKJG3(z&a{+(!PoNn1@0jK5!0i@ht%vX`0(+hK16alYH0OvWwpFyx_Xc z2CUtO=h`Jo=@viV2@QQpdg)8Z_l+gpx8!}J9bN26b_$Ev>Ze^xLNIJ`GCh?Yj@?(b z)72$iq*gPYh6^pG?u4<3`7{n^LmW^T^N++sB+>l$CH+nCMy5^%&JW4O_49rtQ*eq# zS$-n_`g|O(wn8EA6zs8gLd$-2RJgq4c}HI|opF;swj3rw$ul-}u_ksuJ4J3@&Jd}1 zN;WlO><#xEYRG6Kx0AzS+S!n2*C%xjl4MY$9S$@fpWWRi>Fo(BbZIdUxFjVaIHd96SSi zf2?Jv7iHq?=PbN$UPC>1#$Zm+QZ~uOiz=;#@E!%vN>5)QXywk4!ExqzT;zyn4ih29 z8GbueW}%MHC}k&YqGkmd{7_p<$8y>Q2alxVnM^MFhE3+oWJ8E{yJOuKSv=a9NI7fo zP)xceg-@@e4`q7LspCD;HAQwm9)2Oc+9-T;9fPb^b%b#4^$H&sr0tC)<8xZ1GQfSg z&s;I$;#%hP;~sr4c}8Oe<$@=P$Jo#7i3nU+M7uP3KI~CC`(m6;r=;J}WPvvvr@Fy^ zSSI#;u|WTB2YB3b!x7&hB*Ps;)t}#zZ<;ISp66$>2`gxB0?+$RilhzdQxN6I8Q-Qn z+j-IwVO@Io6Ulv(k`7p9{gv*kKVu@i`=L_H`&atD&`(}M-=;^B;f}HF=fDeE&pk3B zhb0mem=uxnRD`BZh9*5O39dhwXq-b9y{xZ_ct0=|c)F$X@b zu;1j4DVG;=HkCI#bfcO0y$dwMEfi&!cCkhMoP8R6mdR;7WKx&xaG;&Dv@Jf8R3Xn- zIeQ_zGJ~GCZlI%GI(Whg$*c4Iq@!0V*z4Xw8slEa9^B2q?bmy$A?6l$t61Ti9On`j zJ|pYL2{>=u$J~XhDXifP?QT&-OW!Dz9uQ;EM+Hz;Y-Qm0*yz$bbdNg|2fOD%dE+rb z=9>Q~Ct?NDvoXSgu5>i{<-#Rt0j@4QK`UQ+F^=yb6P|-T95@r#1QM{Y3PzlL4(+he zL~X|pYG~CW`}%b3J7$Qd3+pKFdm0jDcs4qC7fA&Tt`ugxu@t;DQwF4ojlxZ`RX{wr3Q% z^95Z}-$qaVq-APZHu*v|*WztAmpvF=cnbW~pBjMK`fu?_oD3;5^f_N2*xWV^Ei3$QM z*JNDI5yFUZ7uZP6aLzH9O{;mPZi`$5#uQ(ooy(g@TdA0heZdegy_*ub6Zc3{FeLBa z5ZH^QV$o}3giqug)|vh6&|!XlInEtoORTVA;zZ_)k2W_V+|4GDB82w8ZmBzR9M|eZSHzd;(Ux_sR``f->J|{^M-qj3eCOkjx7j< zf9*{=w|XR=&l7`za{v;rZKch9LF7BKUZ8Jyn|0|p(vF5CjNtt-p_(Z$MMpMmJb!6IkvlFqLgXO_p&88~kcZIVK(tOEb@^qB{+(_Q5 zG*PNBl{*=ECg8Lo?991SLCy?y!#tp~lg|%ccaZ1n{S?FJkO{V3R2Un^^bgD8go-9^ z^Bsw$@G;tO*p^N?8soNn70rBigj_irM?G>9#JL0Di?$6WcO0bkdx|LCnlnM)8IYzC z_v4&dLiOi{(F>KA^kr@if~}U*1&1T#xT1;l3K&La%3_?jAw8}05L6dGrY%)A2s+B& zkE6rcx2%3Tk)}$qd9OIn{|&utdPfaQv{9-PjnQvk(~0p$2su0jBkrYRohZM*4U@qx z8FwhP^ZoW{bF}d9;Pwf_Aronj??T#G;ATN~JQE_-FcP*m$8l$j1_tLO@(h6zZP0l} z9n17t)#79HaJ3A*J(dZd>%#&tzor)uTZ6SCL;WH&`{IycziMzX(Wx{5q9KJ z^oVWrGQl#>Knj1$@A6?I5PYhdy4H)~&7svadx`}NT%F;mKM|*!`$)K8I=y~j!gjCT z#d;3>qGwy=@cGD18m4=m2Hym++fI|QXEM);9wN@~@5)CJUGQWv7F1@?v7R00=awV zC(WsRL`5D^SSXZ)8mk(XUs*sJjRmYue>!&%*3+I}GL$vryJfA$SipF1ZqD>||Gio`H zeK8EguZ#*hxyhfiF?g5c0(WF^F5RM_CYstgj(n;M*bonGdZy@)7Z=Q+wN4HVN6*o9 z-*`m(Dxx*n1MheyurNdqJBlMI*})yxa?0qnFYlccjfUHVIrM%zpKE`2L+@c5oRSEo z@o$~*tH~Db)@G31;(-VI$D+F>8fLR&ndggB%&FuGJ$K2)`kTXWgYO~UeRV}sYAhZt z3BcZGRy-rOmuYbydx4B1W*JM;h#)&m=Kr^vO)0!zvz*4c)pE9oKknM{9Ll2^7*-U^ zy!*aU@4bZ>IrlQ<&6S0CTNb<{BXQw?5f)7hhJpDLdMy@67!%3krm^DWo&t4D1 zGPx+6Z;VERg%reHWT6sUL3bEuqu1S~5epL7+Da)Jc#s4CFGI<1@nd=}*hKjW6YJZ_lnxI2y(EQ*Lp1F~1oIP2!xW=Q_&IVYeme$2Z2DW`S9&P( z-q4{vqcF|BhJ87=0CC(Q+@}428u^SrV_O>4uKGsyVt#x_$+>$xw>vIoK6>BJ!O+Se zyWcC+pk5u1)pljnFlsJFAKF1(E4R>-)w6MBgatm>o?~J!=fR--BNOAh*6=C;o(pYY zqn-uWEPkLY81wfAUHkc#gg&d1eMBsR`JL0o@dlN~T%h3Z4Q#ERDA{I-ql3?j$~@-d zGS84Kza2v<`pURsp~ORPgoZ|OEIOJ*y1sl~uzM_SACt$Kt8=i!XbKF|Wbi8M0{s|w zfL7P=yJK4_+wWtHg_}$uP?-+LXfw|772w<|o<-a7iDtD8#hk`OtRI*Mv6*Uun`2kf z8+A48di;XTFOtFVvH;S9I#z$VO}?5lFq`|!7JT~24$x5Qy=q`*vnm9c*NphR=LemQ zZ6uXXj`%NgBQJ1hjKhu6_#jeGOL?DjRmdau zApL87VU|vWj{0>S>0xD z8p2(h74Lk=YL6-2WX*;)@5PJG{Y>5()6mc7A3bHiNZWY}waOl)5edTBTwhInMLZX_ zFAJMJQz>z$EnZey;be|El(dWKaHR$^T~*+6CJj3mD^Pgnd#ajULPbaXu}yA1exzF< zI?|0U7e+w+@(?^25eHq#nW!Id=4>BrxLj7p*~7Z|ok~-bN=kcZNK@GnGP1KnHr0=e ztc+x2COd@8$jtU#-@pE<*W2^l_jR4;aj2cRNuypSLvN=KW*L=|yWujL@1luoIaSnA z*pGWzA82RWI@*wAgsJvfSSAUF_g~KCU-?A!*M}q7>ooQE(?jUwE5hSi4l38lLt#QD zqV66QJ=rN1#{0pxN$zB7rOk}NH#8I3@Rh{Esarh8O&UR28#=^E<1(@NMhVsb^@NG6 zp_swhafwtYx*F{e<5dh%ub>a@*XpRcIvRmEOmt1x!47Dkc%=svcB-M-+8z7PRZ+5j8;QpbP_XfmOzb6# zbANQvvUewYZB&qcNMMrkeNt1sK%ZYqL{}&7DAx0g-nEprJ>~4t92w}13xxA~o)=54 zrN!5pDcdN9Tp}AN?vE~|Y~%a6zc0nD9f(j%WBiL?X868L3^De>({oX{G%EtObI0M2 zNhy6F(2MqWeNP>`50Y~)&Um$r!jXM>m{4hqg0HJc?$}OBTpWV5jg5GamM3V~N* z08UoCp>S1o*oNIB1^*?qC0ZMv{sxd$%|P``W|KbZ5BsMYSjC_Fi5I@Ke$Q!=o3)Wj zo%86Ap$uw|)=``4e(KkCD$0|lA#6w=+|U%T)se#K-`9n1O)ahHJA*pRLutk)=B|Dj zM>+omlI~GM)ZOQ~i_Kl?erq1}+1VFobjL!K{kY4nG>BpLD``u~7eSknu*1k6@2%tE zqq&UEzmtbou`6|3E=Ssx31WnK26fZlO;1(1U*iJh+$SfDx@(Gh-m8ta z9?i3y0^C_9!NS%e$~4k|=&&H$x+}~i;#_l6D9>MCP{J6#$8P&emyZ{SL5qFiu3AA~ zx|LDiMH%#h=g{9DsgmltzKC5KL0giRlXcTV`qSMOzeh~Pv2xBjMzvFT&|r8xH|Cs; zENYo)s5mDZE9JYRImQSR+H~OZWjQmV$B4^Qa_B(lKQZI04Mv8z;#tOf(lwQ)J|Wq# zyXP;iE?GeXSA?Q{fjT-C_JC?XZOMF@AQbNVCnlIxlS|zIIM-CzC*^vGo({^mf5QVk zor)w6oVJt7wtloR*c(O4v&m4sJ8gQ>L=9`J$bV!cN>=?Oe|-~Zm_DI9TWsm!(EZ}A zo(n=>DxzW5K1z%jhT$tS;HXxJ1-*QrRAzw5GU50;*@u2Kv1hR%7(Q|-=5Zx4M@ zy+JBRuF?Ipg`%Z62-3+KnB_1CpC-j)@!&M9;$1*i|1Y${4W)g|L44h>oNhl)gK0n{hMnu6 zE`e$2kWxh5o!^vSr-A6Hi)h!Y66)^hg^C(|>D!Bgbi6hgzdk>wYK=fd?+6mZp36!eo}3E7Zk)9VMUvaE=hA@(9b)M#MI=dS(Ahbo z@z8?ZrE^o!->039U4KI*7be5Xcs?z=u~%|)or73y?1zuK1=#R@FskwnkX5`189h$K zx{VcdtMnsMkZNq!O(q9ANqq?B_cK~e5`jXW$2`PP1 zVmGJ)oGN?5>Tm^}?)O=g|6EO8&mYsBX+{WXOvS*LY3$8Qht#@1bX47h49sfi#9ke0 zQul+gg*`Qn@Wi~fYt&icPep}(sQQnZgD!Y;Edi3n$=JfP`0T4DaCv^1ehzv?@n@LP_JGeCFJusSg*_0l zt&&Oi?A~G5#hDq; z>EI7Vd@h(F8M@#w9euc!`%YbPuRsg!*Se!gHiHg(y2Af`3;E8l6+82|m!F}Jx>*V2eq^$Mw4VaPSWE0 zA^Z+7AX%OhDHi3?x}Yj@Pthdho4ItZDIXg)dtg(n1VeYJp`?EzMOvrhU+o*(ueD4> zx(%erAaC|;4Q6MZIiJ^e3h$TsNMklu0cRym_;Y`^G6H9#x+2li5@QC1@i{{qi%zJE zTO{bk!ad~HI|ZgHwZGs92m_ zy-p0sVIP%DJ>BkVjIP>R^m)As&3=|f(_1{yy9NB6e@-I?|D%5c(y+8c6`s#(#Uk%( zv@DaI3e1D3b7e2p9}V1fxj@hRO2g>G1N#xozR%AP+>2rd!kJtVq8frtoYSb5HAfZa zcsgFPe>m)`xHbPh8LoOw1KZsZHEcBQ59)#y)?Sje7Y~Vk?rIpq{Qt_&_sM#BK77iH zNa?sec65E`(7w5rE}PsD?vuM>anwNCKBtTv1EpcPdZ-wcHciZXeUGlxJJ3XCM9LWt zLyt;ZJb5=BKRwK-;Ft|ez17%dp##JEL-hDH`#2x>f&AZ4tj!#Xsol>~L8LT&ZPLaR zOItb@{gd{Gv7fK+74h(RDfR5%DiTbraCPT+lpWV$E&$Kk?_@$=vm3e^S4v`PO2pNv z+z%SJik2KcNAHHNpch%X&^4MXX$v3Cv*`pn@aHQPT5I5YrZplW^C*eEc*Uhe0k!;0 zp0`2tZ}-9o6*HvA-xP;bqw&*!J9RPpO>q(LNqOxVlF{rSgQpuw%da2h%w!koJ)U`x zmpGKWnY$WF%xj-Pic^!gZzls)?katHr3W`JZG2;XoBl-yYTYS=SNXe1FU6S*?+>Q} zl|n2$*awAtO&xQIdyGzgRt%h&HrYZ1MOtK6FbS$`h(dJ6{{(5r5UE)7zDYVl~nP= zQN*shESaRUfv#_n!XWc)v{Tc70Q}J zPn65V{vc&Cm)%ZT8y8b<i#H4bmZ&39^$cCD2B_udx0W)xB0Jz1PGD52e5&XD25OQf-L3R<5Z zq=fS)Y5SSIbTBLyHvI--IrkeXQoEpN!9bFi%0V%AMq4tzkflF!-4C9l5hqR2!CcJI zW9-m=^_*x8JV>Mx#4PahqHs(Q9p045?7bXB2c;szCkR&W2Jl>EEUup4DrDP-U~cFk zGHOs0nKV)qzYd3~+gyr%V~$&yyT$kk>6p+X1L~Wlp+5M7n9;h0R+^TRLUJ_1PqGW5 zv6)^+rbBlm_fUsOLr*^m{mMH?|569VmuX43Jqo3Zxfrr71a+U5lDonzQgkrFl+x!^ z*7`ua>tat|D(a})l0Y2$Zvvvj*?B&oTyl2Vb?SM5SuD>q>1$MXQBYWjnAeF=${2)0 zmb)o@orI)rtrm@+$D&YcCzWixLs=g_kZf8#t$*wc<*!2^qPUkX!~0|3t_ZyGnMNsZ zqsG2}DYB;(Lb_ihtvAV>!8eEYT0>kOGD8y5?==~=+u*MCEm}L-8f6~_;3f0LkCm=@LdAo_KyL#aM z#i{hyCQ<0m2t(DtaA?clBxmEpn?rHoFtk3^{kJgd>l;z{2dL2(i0KbIw>n zgbhXK-652JJO%c5T}gK76f`(#pvdH#9TJ+%3u~GN=@Ras z><_>}-kUrcF$AZL2jk(~K0M3aNL@;d5DRMM0Aqv-APEA(?^F_|3RLz3Lx%pi%QKX)wY^FB=sXpP6#r>(R&=?ramWzW4- zFb>Vl#z1C|5BVKSCbHM*{`;X=F92^E zO<-2}XmsmHMS)hOs2;zb!hcDqRgHI2Zx+xH-dW9S7>xAiYe_b43=UcJhP<^sLbOaF z_xmoD^|3|xSs8fccB3}~+1yIt-P%76NpQulF=_v<54U)N3r z&+PH^kRqmLKPKt$Lb!hEMzRC0IV@nN;B<{kV$Fz9ICOnP3&*NpR?lN%cr>8C!U^G4 zm&H=4IJ_)sd6P||M*+K*%!%*sIVf+~B2lq%6Ll?XC~i}SDBT)HeVaGax@+pl=$(pfV}|0~ z19`f+{FUg}y&rcPq7YdZ|?;^X0T7KSWNLUMdD4~da}I|kCfk)^iyFyEjVkA9F0D(5L=k@bBHGI>5j2u z$D?kY99CBzr_iHW)Nsa(2CZBvGS@t&HH(9>k>_M3rB^7-PywoUU(!$Br5H}mLXUIG zcz@6q>rMxt{H;Iro8U@Mc@8+=V;IzoA|$bwSBcx~*pM1HmUjEwk^86t;>TQ`ZRg!0 zk6p}U4@<|I{RQxuZUOni)jT`q=TTiT={MV;`<5(dsB^9LXDY5;b%eK^BVIeFz?gGV z2UJ{f!C(y3xx4H?qBqSQc~6*(52HEkG|>N?MJoK=H%dP(tiD_zNmoM$`I&2lS4kKe zt+ViF|1;X_agOq}G_Y8A5EKu%V^Yoz>Nd)NPK;)TLg-gYlHyLlLKg(C{Ufe!n1bSN zG5FphOH#L+#Dc3v_;QKQzGeoJ=~bD$J2gbwf8&s;a8a@(r-4k1uF#|PJUa=Blo)92 zp(nQ8@vJ}&(U)Xlxwn)Sq~)T7f7hF9CPMpJFigI?qfz&jFgaI7TMqT3Xl8dmIJAdy zInO7qo6-5-@sMdv!0FaWP%~FY=*n0TT^}GRzITVzW}hUjmH#M0fjcgH+vv%AcKX=5 z!si6h%c@J18!!UnF7Wey!AShQ+Afwi{3ic>5?E~V7vT|&;$v6_pJ_B`o~tEhHGZeB z$J3G93CY>$ILccvOZ@$QfC9Ydk|FnX^4|GFOYbO!M8Bi19tSDOi|BfNHYywyv7T8D zeg6f(pLZBPCb@|xyW?=lYaONOYEk~%7%bDfL{eWBpgc4kPw&<_%)arR>QTz`0)TIa!_&srzOM=cgO!Z4Gl+e`}D;p<4P};g6iJ z0gxK6hP%A4i`25mk@@^gN|O@i?&>(&W{N+nj+1}Ye!ACJ72QVbk-@QA@_m$#h>gsT zWd6p-wq^9Be;ajw!q3L!W5S0SPrI&}qw{r#MCwg%SREhBS^iyO$zo^JcIza2D_3f) z+)bZK#=+@t6@78j(Jcmpccctyyy-4oreqrhGe-7zcagRB)8k1hrx-sMM`H34eEDAZho{NH&3W%&Q zXP00IT2>9m&c23FE3t=3iUu}68ZREy`J(wrFGk0Akr@5%2PKXzC(mmkSUPJAUC;d{#yxAI5Fd4@ z*RP-mjc@egR|pEt;xXuI3d#Shr>4yV$g^fP^>Z4Hyz@_K&441(vZ#zth`(cpcb@u~AG%d6o4twbq3MaekL1VcZ zGHcyo@FIh>e;CuV1nv*b{(lEcfzldOU^C=AS^F`&&;F-yeYT0}*O!UYTBEV+jW+t} zbw$d~je@zZGi_U{$Gs-bwSwBoi3A32P3Iegm%n-7# zU(jlMMLOX2nZ}>%gRT}9lyf}_Zk*L?;4Guxs8~|{phcdc%(9x;3ug}~VrGgH&6_zx zm~$Rr2!D)0&Dm5QcSa15jKRzytu$&J=VBhqV(X2O@NiyCm%a^x(H zJ{*z3PsN)#%DA9B3MF~3sGzbJn%1|H@54o6{Q6zuUGoAO(KCWJe;Nk2``bn3yC}%+ z3P+?D=ZhaqBh{nX(8+2fwSXjS<5{cgL?xX0Z#s%9N@)Lo!)R{e1gx})LgzINoag7j z%c2#u|G))miXH*o5uDWRpHRkZQWY~dDq zN*Efd;o_mmsC(@R*?Egevv;zjXmUJ8`(LK)Sap&b2+UnR1y;|>6O}!tU zrtALh|=)Y~*{c?2QY|}ZnUfA;=S{@@`m3V+u`yj7{6f6`V?~2Z(?}=MpN3lGqVvF6 zdh}F}uJ_zb$}fM?EJaTQxaUa>E~>)b>^9}@KPw{A>|o_%NK-tUDT8M-FL!0*isn*+ zj1y8r2Vq;vGm`%|8a*Y`a8@OQHvQ?O<721b)PbcEgRs-IJB-h{0egj}dL&uDO@~!u zDb0JBjP_qiunIFk63^7aZ*^rh(-7#Kd`kfZ5s2J$kV232Lelfgl+fNTj_PlwPuvB4 zHDe#`ICGUuuZ_j{rFUsu*A)`I8)M;F*#|E7rc%J9@zkiRi;gT8c4@fdQd%J<`i#Yd zxi`ePUz~}1!F@m3p~xLBhs>j1coh+hjt%8>;n#MthnemnS_5zp!Hw#8%=s|LUHM4p{9%WdO38dE$F zV|x9juWO{R&vh@AH4Q@VK{|-AF~P`|zAzkOPuVZ{{-xa&t+S2AfW$ItQJzT;gX6F_ za0}gdSVn)k#n8Vl8dNeg7l|wQJMzy22Rp-Yt{-#D;;%c@mrq4h=Onu1JY1xd#&Msf zCq8}JL(lHZkVw>2+QVPqf+iYNe`{3Q?b*~uV-I0C0jt-!~r2n@5H^i z)A{a^gvGH}=yE}jczdfKR9wen)b4Ph9Zay@m5b?f_3<=;b5{%X=;4-n$%C=p6q!C2 zzxG%^Zd zVa*(l*sc6b^TYJt8B|~Gh79vY@&1JYz83`J;HximD~>L@4$&0Sid(K79{T2n1@fOWDqLKR6 z8~67!RDL0uC$phbz0#YS%Guwd}dred~j; z(;b7a3r;$0O>Cv*jxQxL)k82b=8>4E{lN)n@Cd=Ft)HS=*KL zdNw;OW;T<%?07orY>Qu>J!u?gJET{=6_+#SkUA0I(HG^W7-K2@?Hsa@T=4uS>$9&E_ zJo;#e=KhO?%L6;iH}`-}?pW#}EojM3b_%p^B<*P2ZQorK9k+v;i>$<6mqB!I z`8+yqkp}7gyl3TXceQIF9bLu#?)q1>!118)9HvRT;`J~r!T{a4r?9lE83yV+m0UKn zg1O%y?f_pEr}IXjIby4j3%Eq#eVHrn9Sx^lLDaq|0>iY%Ly6C}Yoqsys;GQa_Yb3z zB7&uCFZ|Q~Mq6vyb>uors2%=95x%wLd?%a&?bL;PC};m3FQ*nK&ON!DrDgTkc(>X@ zLlUy_E_MkWx?n9TOf}Hn!F?6C|) z$KC@Jy4M@6FN^t(+e36+*b}3&en|43lbCq2KDBnAK>~Wc_KWuq)Gn*1tmf^sk6s>HntW_nZ^h;6l4Ur{NN38$&L*5S5zH75P_W zG^LI<4zeNVr7Gxo^s}&8}Qun1X>g|5y<}ymnC) z^R0)vE};P_`sj6Zv&6~E2x}B$FiYDQ>iZJt&9uHa@A_2i*5v`^x*$2(`Hk6TjMcn?~ zM#B!eVfzFte9_gU3yB6Ouhqq|+*uU=dJX+Lo+u7@jzH%@W0>!mhJaE>c)4r9G4L)O zcsT|aT%@r+yf+;>@5G*(r=oY5F|A#oOjkS!>v-RF+%Xi&?iG~f%Z{rwU1U>#{7tmS zSI&)!-^!@8)#0u{3J!S|)6~o~K{`uAaCgf(v1{XT>aSvicct5Cwtp9>uwTNdGlg0OGlJZMxCb*HF*O?~ zau#_bdu~Lhf9>~j3OZ4j2RBnYG&dZeNlooUxmA?%Wd`+GQ-I_- zdZPB815W)oDcT#G(S8XNl*onL^?jeje{}n3ME5x`T z9b(;scO>=928oaQQQF-&1g+>QtayIZQ>+ks4t}7x@?42jKkj8)b6z;*xyaedd&y#3 z9Ez0S&4EI!7B!UjfS;kz0f4%rEVdo`wR7Wd2GZF303!QbKQRF;78jog56)G9cGdN`|=!ST;}*ua8Mn z(x)KYbZZgv4N7EFwM#7R$vf4V>TuoD!TzxEG%KHd%TB{d=_+RkY#xxN+gPmlqzBJ= z{ird;1XAaiX+184DlZ9`?ysfNq#*hxqeUyHoTice-jL6pxAf@qX-QnhZfcmB3+2?| zcozGXie=>?d!i3!e>V^v1FlnV(`~fnbt5gi>_G{6gURDuC+*s|iavMayI5f=Ht{?( z$;rD}>@=?Kkzlf;A#pQ-Njc`=Xk$5TxJ#b{5|U-JO2H(RFr!`0m<;yG{LZ_TXJw>m$o`TcL zIBnG(;h(q@k@AC1cF5zz#+AaS_%n4Yb;8B+P%Jl96lZEal1z&q&fFS;&hBrikzH5^ z@4Ms2rbYC2r7vt`!x3~Z78Sz|kn+MTyqDx5aa$nwKrC^jMjpqzAECk$0~}-q%(|}+ zMVlLU*t?~pdxR`zhB(7He*!#`6p@%DM^CTSi6@)Y>ChVsIy}t{U(`F;?emSc_$XrN zv8%M!^&M^g?E`&wC?|#!Zk~1&#gn8+i8D=8RxvY_f6hHaze{8qMVQ%UW zNNWwE{lEF|sI?Eim(CUIg9GVun*v@XaF5xR=K|Yii-OB9sCP#^TxJ)bwr)J;Pm9O< z#wzN4egmzSwZgy950o^jnpvAQ)Mfm5ge_P=cLzJuweFkf^ll>*wB4YRNqU@9&_Wo` zSzF4OXH}t#ixZbq(bjZ?@}2OdaUv8RT@f|%Hz?xbTS_Q&z}lIz&y&e&KOMBvL-yPk;yCAGm;7v&Z04QZyftsA`^hQTpm>YwwY6~O zt~G3jhR`|pzHmR2EZ*x27!AEm?+!Q%W&Ylrs`JCOrv>b*;9SF`FdW{|8^P+UX~mKQ z6n5mV*#6@JxpuP`yCmo7^Ly@I-rPfe!VRODb2GJX23l<1)7vIrGUzaYQt>d+MMHzqgZT)nFX;-z8R4DGfGV zNyf(#p~V@w)c(>ScD7qbX5rIJV@yf4q{`Z-RJi3i-K)GQQ5f4S+1l(%nK^;5x<8ZD zzZl}!ndu0-U`)l2qG@yX77DW7CY)|G&&aU7nhV>&?2{&zOU^9shKfYeQE|B+{UcaS*Lkl z$bO&vkua<7gZw8Abn>nT!iNvUk#r<^)Z@NskR3 zvCDA^Ik;;Jw-vsKj*;W@B=;ZuVlm>fH9Rin(8L`cPf2@55T*|Onf6-+^92w=^RIF^4w1sUrmEvbf*|KFNI_zN{Ep+!pbsT@#g9Z;j+_F zH2jS~|M}s3&a^>Nbpx3{?@faf`qQ-7Nk}NxA}I}1gpUu$womfd+{1#qVa~|t!W?4T zL3E)^8|ncnn4?fdo6lMHyVBqq7aG#T z8hYdXu|UNXw(=0Jxzq75_@Ov&znnt!rExd!8-0{>hq*AsPW30kZsvNL-nofh2R6`( zF5L6Jdx6GXh{uOZpM<62CE=c~MNV^!*lo%)>v5xT>6SSze)>hBE9hd_5T{A8wMG+Egm({hhspQ!q~VA5|&p;q>wG=$!st6txvd zj1106Aw^RLHFJ`o3%CSU^dN3~{Y@Xq)>U0T;fsp1QbUdVipG5Ij| z$l@&MCo*;(3&Sh}EH0Wyt)1oMJ8dv!tUpJWZb(t_zT2YN_bX{gTOpRS&igi2(7<_3 z;#Z70&7Oam|XXk~1`}&<2w)9iW|@^H{wi zjQeQ)#P$gZlw#|~415{PaBC6cIsr@^0L57^>FBX_rSm|<~UI?3YVk)k;dKkG?qEAJBHZfllxSp z=J&Q$Mm6iqv8OyiRrj< zqc=Y4T%!63qiA`bkMxh{q`!;r(8*?Fct@z<%AluYyvLii&5;pB?N8{j*-WZhzfbZm zBwYNOse*>l>>jz+A;KP;qGi--GTN;InFn2=b$TfB`UJz#U=+FYjq`>FeP> zn9^MiH@_v5^F`(*d`dFFbo#`yJ3j5kC;&w zhDZIri0w)m_`AZ3GW7ex+IT?pWZ@Y9gciq!Q;e!F?zhH~e_j^^g>rV7 zd%(AEaSo`ZkzU`?!XEdnBG^BXl4EDls;8Zlm_G!W0Sy#7!A`7tD~BHTa&R8~hITZ> zqwI$Rcd35U>4Ic^Sa4{@+}ndoK_!lZr&Sj~+ET@@^^E4MnzJY2~}2NdD@E=ktT9 zQXzs;tSlk7X)HPimWsGcEsV7ugs+?aqxywyH2-rGWyh&A-* zxkFb}GDOyf9xx91N*nHl(6}g1B*je?I*U9-Qc^nAbMC5gvlBMHl1AtC_hLw%H&mwe zrKsjdbaHJfE@t{8-<@60)nqXmZ^(uwI#nEkw* zl+tu*QsV)k|Fwbo{2748Kn)aT|FMfawS=sm-4k0bub>ICGbDK{<0*2<1&S`W!%h=L z?v~!5;8SPG&Tt`Z-@*Ap?u}T@Pr{H-i7@A!(Zon!jCzp<6|-LCbK4sY`y7#1S1XAr zQ^toQT|`0OsrbFMFD^`7OmVnD-dnqIuD;WL!N;+p!TuRdpUd3##z@+0$?rtYQrRS> zq1)hgvcKOXT+Hv#spDE$^Unz&Fiw__5IlZG ziM|zT^8-n>of+LBjkM*b6J9*Yq57Nbi)qqC%0(60cHN0i*VT&YbCy$jr8K$Jhe0!c zp7@zMk30W9IN0us&vHg0tcw(G{+`FoUBc2P6LjM^4zCKJPR?a?kFYn+j~}wo>NQGve&n8rt-$2YYQ)xIeXo{K{iV*^W70 zcNa*OPnl1)%wY@I_m19;SxjZgZ%C$1U`jT7@2fSCFf;&mk+#?oyp8H|xG!qAL8u=X zNoF&zl6HMG#@WB3eX0w^O}jACvzkZcA6gwgkKwtQ61z)w=VShxo*IGBO+KhP2ibqPlu9@1)uP$sE{UGlvRl zoC=rUp(1KaC#}_tBE1%G*u?R2!|I5WBIii8|Gt0*dEi`Z4oKJ)WhIJYT{S3k+<&*#2s z?k8T69RpuxuvqR?#?K>GwA<|uecoIEO@%R#JN1(9Yr6P5U;<|(IeX_OMH@An_`Tsk z3-|ia`fj=y$eqEOqn%X3Jz%?XKRnrMMoM8l(W{pKeu7U(C!MMwo-nd0KDJL9_ak_G^Lk6r1C?>mEjI3xqO`(n+IYSJ7LylwUIIB z)i;z4pyyOTjtwa=jFY3P&CBVv&sL%Dst6x*B@9?^M!A;{QBqna{&R>y>90V#VtI|K zG>4&2U?GlwQpd8lr^rW*aCmZm%3bG-ALF?5wr(V4%=E@_lY!K5m_s!;1Ig`j8x7!I z_q5Mns9%@mbh3Lq*7&4S(U@>VRpvmt|3ERco--23);Qx^L+?&XP`}q1+fQC1qrsre zM^j-NqaeESz9ZgX2L(1np={?8x)#oyy82Jle@U8nd}|Qr|IBdZ!C3fjm?jAhIUyF+ zOH<}YQxtBPPceSB7!V(g#(F+azs<$uCKtE|1W^*_p1y@x;^q<~jM{LKB=rj@d&fKK zztWnf6(};pI*j=*BSgk|bDZun9Tjh02pOLN_yOjm5Bf|tW4j>QpgUrY-J|MM8%awy z?(t^)q&SXVvhQtxJ80Maa8h$^ly%m9* zAsU z`tYQfvrHcw(w>rgTaHjVmxo!CxGUvug~4l|QF(t=L@=j!$=)s0@XZD_zq`WaA!p?G zKc-{MvkTGHLP7d)*i~g?=NUhmaH~I_1rK7s*)Hl_IEMz#03}-V6vu}ACEp$T)PGX| zX3kAV^N(B1+Y3k9ziD{X^*l56TIuT~HPqehM%kIW=(Qau_v?bt9=u3$v3`X(x0d&x zrWeG)n_tDq&TsY$e6P_j!({y4o(K~=0~B3$kQ@qkgWd6(+YV8%Y#&Z&_u4Z>j z3o~&(Y0zq2bG&{hLB||t%&)8@)icZu-Jym5!oP_La@m~Q*Tbq>cEdbaDmr@d%z?RU zw(Qa?A2^b^Bf6BcDA0Igr2{dQ~Bx#y}dh!>Moq8kIIwq{fRE-fAWW&+Xm`b z+APiu%fx(1I$Ec_A(ym6^z!^0`V^gqp0S$bU!hFP5_O=+Jyhw-vuV4=XxQ9h_I>g= zG779B*}}otpsqky$E~0y?guOE&Y}5TRAA_QklNLxFuijI{hihuzm{9!5IY0E{z+oS z%m;D!=^T=WpU!Iro-2GZb2;8g^Dd@*W z`k|_Uk3s!$+jKI;6ul(Pjzy%}H4&>{n9P2p0`C8{uc!46 z?oj<^z`U>~qMBP|+dfa6UNs$Yv#*o>E;q1jhGFl%xOTw^k@F{G-zbU02kzE7 zmzRsVV^k$`4!2XM;~Q#=d_kkX@cwK|Hu(q0<5ac<)<-8G-F7U_Jbpo9hY2bj^|181 z4b=?}LwOwE-^yg*zuJ!H21cBvvxE6fJ;`tz3sm<@$C*uqbg(rOBmc+IdAQ~Lwqd-1 zR5V1TsiIv(D)rpg+1^u&LeWrBN>SR`J1as)cJ|&QM94}c{E}VB%*uSPJy~I^TP*aapH$_9oW0mW|NWha&DUSje>{(Gx;={8V|gckClPe>4VlQwp=Gln)$0c0 zsssB6+wRiSi}5IW@tHoDF+;aao<7LbiMjQ);!E~n`rShvcGr$m{oyeX$?ky)sJXN4o#MTmb_Mcv=&e((ydm&; zU%>qENQC|PLN{Z~u&PHEjpsXO>Lyu~)-jKO6e(i`^HaV}ryA}N#V5K72bH6As@x0P z^Kx*3VXUrJ=5SIRi`2Fd`eTzsO8(juE$hzN?#Cp@KUX&BwP=*|;OEqMgf-qJXXc?@ zdc>W0mA|4eznr!$Sw}N|=-}9!cN8BTMzd#yLc7WdlesIcwapQW(xsf7nPEAb`ECPx zO(2t%H>lgDS)y`Jz3|%GK&MoP;q!MtEJ?jfogY$hz;&^BG&_;`=1Is)XEwfWBAy!$ zgEvNCN@xT9__f3F_Fpaf%N&U3oHKpuk&Ep{meAR`f`W^WlDe7}J^PrC#nVpHoJ>Dt z{u@b-zvW;wi#aEn33z-heK~l9<@oJzVNU(S-6gWuio@& z<$jvqYZ+O}NaNd^-?XKVIzDn2%4T~eHm@8HgK%Sv=9x<2Jq7ywP6m?dYohWRe~ulq z+36->hS?Ibi8ETxr#kAiv@>cuvNti-%ccBCp$qm`;<{)!eFvE9gjzb zcDVarFI@5-i=UbEMY)M3f4}!rk69+>u*LJG5ioGB<$k}9aJZ=hsb3H2*P=l8T>SBWL%8CHENKtym;v8v-jR}N0aTu z7?Au{(*FER%=)N@`Ex&z$`V^Tb1;>)koqHF?%Z9rs!dhd89aOJ`M#Fr=VU@0UKvNrq<`Fc%+(3?mee) z?`Ez`5Ck{$(2GBo|CseG<>9mFm&d~@=zw?1^>9DUdl=)r#GZ6l52c3Hq zDe=g$5g(adI5<~b+&`X4HcnyCz7YzCdj=@o=z~{33Ngd=oKPz14xPKaS3EQYvMY8_ z_R0#XUYL$P1qE0Ye2;#!|2=WcC)zYQ2}WMC$VEB`J*I@Br_wy~oI8ikB%P70N>Oq$_ikY3R}0^y!Q(6iUtEZxJimHEj|S|0R(6 zf5S1e;v`9N=Ho=ZEdHMF1(jG=q@Au6Ma<#y%2gHK+P!h*Vh~hJZJ3EtNk>#(lj<%7 z+-z7yC9Xy|%bl;go8JkS3OR~aC_w&ijx1W);&Pz^yhmg~>GTs?yHXm;t!bE=*C|Yu zb+GfbJ4WB|gXv~w1!^o5V^$_py~|Fa`S73kk`zyVHEH-7qc40v_e0y%3L$;1mJT&@ z-ebKN4ZH)1V!A5MM64sZp>l|AVwP*b7`j%rS#qSx1e;$aLHt|obp1~c+#Wj+nX4bt zZ~2QfCQ1{f{?n;T>o@A1m4O$h!Z5DZ1@~vOFC!)g)sOdyKbny^u_6H(=lFTJCKOvZ zqj+f73(mQ#lA1{YhRe$$Wk1ALX>|;9&7h#7ne-(~kNYHr&^J$nb5It#J>xFS^Yzr| zw~Lg&c%o*uITpY7;h46p`0!8}M+au0r7nbbfX`^i4tJ{BHwp$LM`I&DUuNZ|(mEMc ztoYj-FU$GelE4h9W6dH1q{o7@Y*2n5NeA0%U5##aasW*aG- zy=JsHpbNgX*pl-6PCDr&1vT|!WMJJa?)>>BSza9@W)=jIOqZKt;olUz`)LKEM+xY9 z_dLyx-6dK7x0ucyPR7=#W7LIv1w+eiP%1SU_mdl`AM@6xybQ*#Y&i_jA5MC2#?p$t zS0qy(Nu$M!=fA!^ps?#CoikO(h0QN$x^*|Qjon2P7ne$um3vTov?Dq%u>Uz!i@Xe& zC*l-Eoz87^Y``k<;*1N;jW=OmT|O9>j4d`hDO9?E($sh+y-y4377^(4B@y2q8c-|J z(B9P-w(PaPc>f_yYRSaag7I|XunTj_gXz)3Y--!Em&!j+gtFaedU8brEk4Ya&Z{K- zWftP~@#$iF%~kSin3OVQ= zn+o0F5Il+N0-2G~7`%!1UlDSA=gpuCtF8B8JdgH?QP?)`G9^XrklX`za|RTP zk>lkMqc{l~znB4^KAF$_b_gjXd^|M;Nk=BJ1Ft)6`d%w`lQQWiSc6`Fq`_+A@nii$ zT2SMGwpGJ%C3PEZiyKQfY_`+V&Is{dZxr$t>7e389!&O4qv_i>li$%Ggv89IqfbV` zINutZR`Sn}2*Rz$6VO=W&wU^%*c2@!Fa06VKfoE9*PIzJ7(*wV%BlQP4f(AY!?PS~ zYGZeq#8)4V|3dI-j5q9lSBo9r6sX#a9bVUTX;z=lG;T;IDN9yT=h&~bcH4Byn%PD> zmApl?5@+>B=h3CwRw|7S=3HA>nDlr=7bkwEIVq;h#cr2GS#PJ9XS?a)1QjfJcTZFY z^8T?e`=J$?J#|eLLGjsmbby~RCjDU+=tsBzB^$*1 zj%cj9|C+w~#NzflDJ(90Lqo>xq?SRi>D$msF)TtJRas{VH#u81pq*B@S5QgKHd@xt z7AIF1QnQEwhhC!TOpV$ zcaXa52uIyOU-GlyZsy5;SbN9-4N*#Pw2(*V!b8+JU_55r7zxUJOLp)5v2sHf1WVl_ z>lf{!{r3f`s++)hHbwY2ggAZf9FCu1yIFEHohFuqlFWr6n5c4+mhrA^Y=1W#@RWhO z!X}YxZ-A>4QY7(xWboexH~0@cPpA93!mo!tS?o~4i~MYSkkUr~MCOG(389d16&(7Y zht@%*qVDBD%$Ih>$$|xR#)tX73*M6Rlm1BAJplF>e1z-wKrvo%0;#6D!{|o<{0idH zeAFAM+S>ei&l7uXRcP+oAiPL>LNB^4k?eWzju**`N$0UZt63g(37Sn?ZaUxx??3Qe z9u>M;klCsMvA+j?M>mjitrec0k-^QZi*&J8lQ!fS!<~2FBDpWRo_E0QVVvc(V&5eD zt{g_cCyOO3h5xRuIC(LNXH7+@wPCjX?Z;wQnF)74x(KI~PT>XB6616T>V=pufs-ipq7M z#2NhjT=SWTBQfWp>veu*v;RmjUBO#ZtYZ=Hx@l2?$gau&>6{I>V9G-xsFnV-c(ys zs$(bB@P_V(CDg1Qh#7w!sQbru8oT`p9aSts!m%WT2IONw)D1f5p^Hxo zdt$=ey;NqVN-E6fX+0MQ+d1WQb*&UdWT<0Zln^srHPHELH5J+!L;18Fl3R-@Z^d;% zSHID^6?xRzz+PMXFdWRcq(2`g!}DGO&V(K%i&Q7{w+p7jFVtbgfxf%l1RbiVr!V)0 z;o<_GOWn@L8)bfvcm*Rs*ByyhYH0od2dA_#r6d=Vg2C3@Re9PE`-@EJ(e6UH89pPa zaeGMVcqZN`N#J+BFJ4bzj%wT}N*iH}T~2qH4KSCQr`SVtXgJ)KeW0ReFX{Lm9q8Do z(}(9h(Y;s}k=2^03s%7FIh&~7zn)I8L+zyFWL)dFoRXD2a80TRO-I%Wr~A!Rx*>+W zI17cVp#;a))`(ldiz%GasQ8-&*~QC1Ub2=#cges@qn`W5o9KjAvRKFWzy34YnBNqI z$3OTkyj>MmbVkUf#==yoo*sziQ!k*Kds}+yy5xT1k)SSF-5Pjto#W?b(KccVLZL$E~K zlfCarbne@1iHl_g9cO07Sl_RwwhSsNd>7(mkEPPHLM!qh-u7m)GoLnX^ve)N4_@D{=6tmm)j(& zvM15SuhS@KoEl!I*`l&XI2sJ~fN3fClX;XJHz*44U(DC#dF_nKC`oiwcSNP6Q?D&* zn8duRgJ*wJSn5g2$j^o3{bqW9N(vYL*yC*W3M!e_Ox?DaL$6mFQpO75F)4#S&WOU4 zL(iz-^gU`Au-j>;Zz!Bj&!Vx59dPsXLox_86n;A+5W6KtoG&*=_TBDKvHn4&szK<& zeUoE%(rHInBH#bF(S#}SWJ!Tg-`pUM&Co#m#(so~o+4w)abbV^7F|4`j#>SineqLQ z-i5uSZZ{GzZ+$m0B`p%ZnJNyO53VW{Qn9MDfKnWL|ZKatC|i zW34yY9*M)+gko}4+$ZYfPLQ9S9Evohar_Q*edZg8p38I4Qo?i8X{&^hhAU;=>FQJv zGZY*CxL|#+3GAu4E!OprMcDaRa(y6=`#JpY)+>oroiXB9@m67d(*=^8qm;amGkjmw znGs|KuOW`~`e!)aKl)9DTH4r})Io=SFw@U1NOE|-H6k;IV8zMH^gSycn@8!={Vf+H zV~>VoGCPcBXapRZ@mOtV>WW5*lKBSGozpbHv(F^sPRbe#q z5fzr&!h7X&TI`yK{38)ilSFa`p)Y6hUeZU$37B+?`+mdCNPUJU{;cRp^J-=|RrOp# zht7A>yhoc!v6GxE&W&MT5a%UJQt+ah_qUhsiDh?Q2$>z8cqY3+B=dQ7yizUo2sNZP zZ!gmw-YfG@lQt?_~KM@8sc?xf{Cs>M8A z2N(y*h-A+(v|fHb#pzE%c}FiAJd<-Et`n%&s!-ZI_zvCWdrXJB1IoT6iUHM*xPAW` zrJ6?~{{2%rE%#Jdm+8^*2uqlrTTQ>cy^uG-2GNICNM?*>&R_Q#V&csi6zLd<^*y>G z?Mw%4;yvq)Ab)yQxt;=~Vo>*BAieL@5|1dD>c7U4KD)Ta9}eU>?^r5n@xhxO@2JXZ zC=R>*q>K@EFeu9+*JOES;&v4`A4MZO`kNU3%^pXV2}yt|dmfnw*qWtCF=bJdzQYH# z4%{{QV}UewmTFgw$BBkGgl6oa_ScH2?6idA&t7=>>o-}9o<(|FJA|8F78*>HD0z!F zHu=ShBTYt-deRF+QhcChT18QS#{eD;}YT9*adFD)7d!Yzb!*-J4gEJz=atJBeI?>|vY`Ry|M1$Ru5L7Z8UPdcu zRqR??I9`iOfNIc9Une&C=~H;vVX7Fx+~rqZNWKw?HMTx*D%~Zf%XG)6&t=rZu#-M~ zI7aR|%FK%jpy&C~^inmLCcOzn*u`YYMC-S-J?jz4_4`LFq_W}W-;3`3XHReLSs^B9 z71f*bb0EN-&dyGz!_!RgqHY&ix{igTSuEe(1#o#e{*lJ&}=RI;Ntx?O%Cv=)VM z#?%4}EA(KKdrMfpQoLj~$TR%@UIp|54qV zR46G;lB~PBfo@(Lj=5_yA$|P~Z8Tg!<$aVOKXy7@;hz5OZnC&K(3H~Z^zkurqGYl1 zRLs1m|nDsemm}=x7(*8)ul#q#~=t+&N;~S^If?$1|8j>o*PM!_(%JYC z=Ra=#ityfMM)SSos+)h$$@PkiEneYqyBiZzaJr=!&WBL0qYHFUw zS!OM|yK)*VHw?jL$MtlE`$D&#Jf@e6na!}m58poCA}8)Koz1x_!q2T_&h$aj+$c}e zGKSE`_O9r5vVr1f>cfBST8b#p!JfL?6@9M zBO=wh<9$*tI?Lrmk8uGsRmh-TRu`MN=jAZ9n6?kjK(?_VJL(2vJoj4`)_Tx#%K^}S z^@?uudwUVj6;8KS(Qfm7)Nif>WH&CLrXK9F`m%{Uimy;eY!0sL+M?m66J#oLg!Wi7 zoZvH&T@M#r@9IaM7Qg5Y^J12+w1k0sKK^?A;@*lM1~`7E#6)XAW`p<=uZuAgzKM^w zyE+9%<%tdd{?hQAK*`bpnNZSJz?-eP_;zk44VY#_(I2~Dckd)>yy%H&tr9Ybx=G_- z>4?6U6>+z1HMt*hg!0#TD$>xvv!X%~CChzXp4Eo-bVasS8F?&g6iL!5oP{4winV$e zwtspJ~*XMC4!kOXVtSXr@6Qac$iXQrPxP zG`HwN=5YWv^3UFL@fZEp^Mw6J=2-D__Geu`OrOpBpv6YmuC#_;WZt2vtuY8Y9xh_4 z&8YmHBNpfkh8puaFMbKdm9jwOoGp@+ws8L;%?R(G#-Y)cec1^{xU#%LR83(&LGTyW zfgPc3&r0a`s(Vzwbgfu0G7UxinR%()i*(snlexu=y8*uVkQRr9Evo4K^fO&n)25cw zD&(?Q2IJyQ5!<1Jk0&(Yr0|R8YG`3fUuou)PsEz2<@Cy;FT5v(izzB`Xe!j8X?aN$ zX%&ow)~<+)+%G0=&%y7USK{`Qe^mQf1v4i`;%a6Via5*k?ZJ4=bCDy5ZPuK{>WN#v z+l284W-EM8#k*K#7>|s_!M?pQ=54d2QZ+-o+NzJyQxg!JeV2l*f03xDrj0s0uXB9L zXYeu_8kd4Lp7Xky`e1Q&3)S_xCu~>7;l!<2Jm@n=HkM)_B|DzNsnZtXfCWr702vvvm@;r4H!US;f9KGt7E^MogU$g^qYVEK4pX zNAA|o@92(A-40UgF#f;DFQYSwK4|~bL#T}$NxwC_)3;43>@D^rc?~y2jl54=0$S<2 zG<$sJXhQRbJ$LMfJ9+?yDMluo`&=p^ACrBj-YHA*Iq6g~Of>|emWFh0-pa;>7$ zpAYD-{Qw+n9gCy;J?OqyBov4BMK{j?l8QFR2IjKVe7sDL>PAE9zba~67DD@L9K>wR za0JeY6B$cf@M)PF?zX3sX7VJ=*1JL@*K%XXrGdNjkO5^4BMm*`^9A@Oe)CUqsT_ z`NL^&@^6~_>lS5H{wDlbKvf<_aPA(4?bdf_#oFcMIwuUz?Njj~JCFj+T1k3!7WVAX zgf=rR6AmR~&U9ZGjW(p6OKnibJGDs%rqk1R-$>_pG2L=bhV>eE_KABsRctm#_oEe* zky*~pb2Tw|-U9MZ^MGOVL2BcixQmq&jt{iKygB8<|5gev9Dcx#qQ#VcU4|Osd%(wW z8goTMaVkF_-#b+>u~Qd4CI>)vB(MMZ3{lSP_L_G-;$XHEVwe>wXB_f)4--p$-aA%J-&YJ`vy}vVp z_s=BX$E)b$4t7s5Hy5kUlbNX;Y;FW|7wobyJ*bT4?XPIc(+POfRSAy*;w7~=b(#Id z%zv36m`J<8m%FhmuDud!;XCMli#&!I4u!>DJxbCqrPtOg>E6oE8pU33kblYvJ zx;vMgc0{62hyv8>e0kP44EhDr(7R;>p8q1WjFm>=P&fKU><8^exZjw?S?0+wJi3&| za8JXHGuX5G$I^28=u{#T~y|NClwb$=3W5V&YMmB_fCN_?;F<^rQpP5&iKu}NwK{y z(@x(UF-v|EE#}>0Xr`uk6xTu4hfL{4dj{D{TS0bx3DK~8_->d%^A|Z_dd3Km)Z;8& zSgMR!>^W+_HV~uuJ0I6-jz5#Fs5SXCZMvLF1~P$I!5y`>NE>+fsHd%|x9L?_rbIot zAHu6^==mUJ;FPa;=KhD?tV+k^cY|^DWe-H|@rTE4BQ#01h#>Q9I4i{BbJBJ?A?=Bv zA1=&`elDhYzY_ipIZl2Gk;plbOmpnGZ#~-(`J0VtuR$+ zb_b?AN+wsb%leZ6-MFL*v-)`=z9d~T=*)jqZh4#1W7i9d9~$KPDTcnR9*5EaBQSr? zFjS~`(0>Q&$h_=Dtm48H3S~}fVW`^bW**xzo!V>S_v~s913IZEMA89jW?aPA9oi@=g_ZNLi zl#-07Ttj0H@tt?J6}#&CV%GT-++vpGV_PR^@UG;tMjYyQW+VK$94gJNx#xPA>aQNA zq&~gHrE*;yYMDd&hVIav(g)^WGR5SVn&M`IFI-+|V$X6foT%x~PVDvMecXc@N|gEk zaGXpJE+=h=GgMToi1pD2sI`MT!SNGBlyx1|@;hpWMj_%%r{TvjHH^0TOd1Cg>DRhZ z=vxnKqF zwl9e3gN~56F`7CmuZXAdzT$h_4w|$#fx<;$Tu{ zhQh7jXgoPT6wB(%sA+#JZ9Q!R*AGBFGZgiX-E2{O?>kFCQTpIjjI(dVtxJ4gA}Ld@Z8m9KFaEnPMVN6xsyedq$pSjkzGed&-5>@H4C9gc1u=`^!(5L#^i z(!t@*WWZg%=w0Rr9iD>Gi#^d)l1l4s7m#7N6k-!+l1D=>Wj%jOwG+EhS(-Pp+JfQe z$i2|OP-Z4JlGV@&IODaGV!oXgqX#O`&LSn;*vZcN;&eRNxsQs|5~EfR9WXvkoM`=&aclUYe^y3Dw zBUplG=Io(bHHbFNWaNB<313vC>Y?XP4~)s?tn(4> ztLn7Vo`Fti7(NAR{#R+OwF}&9@^GqxJ!eNw)3uzLPCHE5#k=b-{jzsKPX!zNJ(7U= z2MG(7x*?WJa>uHFi;bVBQ$brlS~qhv?$7!zzUI87L80!rJ~k6ofGrt1~IQ>jeu*lV@Uf(64l>Cor=8Z zTOf_fJw{komd*SuD{SrVz@Djk>gpm5&o1^DHryBe+smnw8Rdx%@5nFbpxCMXmMX&) zpnXqM=+8Aoog@&?*l{vB)D^|2nn+?)h%n!?Hu(v2gZ2kt zBzK+PULT17~G4UbXq8OZypN8C8~J$!*-X#T+{~h{LM^)s!Kdu zy6A^}{Zo*)%^lkch9b55J^CE9R!HsSp4=p9pmQ)*_smDPd-v&l)jT@6G?xaLgy3b- zZ^;g&;TSbzE*-vMh6t_0G+u){lrqfHBP|%p#E@EM5X6#`v}J}3R@*Zx+C!RpA301H z6Q7XA^B{UUl6j^}29cy6|IP=x(d@VYI}wdYfD$J?G(ePDJ>LoRA$ zswr>pI%>7*hg+WW=%vv}ES;f^UO}pm+hT>Q$PmGE35OOdEbWv#6=7JyMh`F=D?e9%}mGO86YQy>BzwwkKfM=)2;Fl_u8T zd@WgTe}m>7R>#J06Z+hJsKoAmJ3A=OTsCpLm8=@s!s2 zP8B(KlW3!ry_hj;zfe_MO_5ch^oR4V%EPA$(_XwIDC#P@G*r@tQMNerkTb&(Z^&z# zJ&i9PhJK?5NuD^nv*VTEbZ$Or9Z_Rn_+-$tTC(b_p*5awB~OyvsD?Sg|{&6=O&)L^2Y9M z%r@mc=VWFl{Z(W)_?~=3jsHSBxU1}~7)F`hvzc`zhbMv7qU#PFc(>i6FQ?3CYgT{s zpULha&6^b1>!`4Mq`?_^C9F~7&dC53i3YTBqHie1`NfgNaprz$JrTkABj9;;3}p8g zh=(hhsrc_sveoGWSvObgkljunPn+ODTOL+h=bb^-5 z8Q2e_)RpmA-G`LV3v{mGnZQRAdZ)&j6wYq-{r5zY!Hlq2w?4vq5%*OdJtg_TCOWLb z=ZrR4$Z>|R*X3IB9`%R9#9PvxEWt{LG@RMp4{yHSrIU7VNv2_#Q;t4Ad;C5O8{)oG zQc;miDq9th9?_q=PE?0zxIkaMKhq7W5F@qL)80$3DZ=Ui#l12VYjU*V*4{+jB8Flv zM&YaSC|JsmghJdb@p<7GcvYz*p?L#cd0hlG<{C}s=Sctje39DPn{-phip@Dw(AmP? z;Ezkh2a_ALr78gN^O=9ungfS&zHhczNFo~Dacv>zx%>(-dR8I+zLY|${uHVi(?@8} zm_>odElDn;Cx%CFrqS;PK#AFL)t3J`#bAX{cn+$o|*g zDZMNIo(B|><#-R;lrjN76f0?ar;1aBSveJWu_KHc=%JiGDZX>HHw!&{rmd0Psd1@3b<}fy=|eTuMyp_7o(C=}jYr?UZZu)B z6~7C@>3xSgT!xvEW|<@26lIBJ4`EV-JlBkA)GgwC{K zs7XISYW3U5XvAmg`TQisnD)W#g84LR>LvPR?t-y{+;Dr`8}UOwA2;9d?Dk?Q&3JT+ z(z&y7#Pp)LQeaCroy#ce%zkP+5RB;o%o6O-p&(!0L8kLrKt4yrjnbzLiWYnZxh8%; zeMmn>NMP7_feu<)V~1Z1-W6NXgnE0dvHV0WH+o_*z!DL=-d6=;f4bIC2N-(IN>wy|IZ5 z^_6Ju6E|l2g^xnw!dZgv%7ypED26E2*pb0JJz-lU+_9XdOuwo8B*>&?(H}>uP~f z{%dJy)GCVF!0&kfsra^4S2!euijN_eDCEXK@+gVGh|vZpqfIo^emsUW4-iAL4~oFH zEc&}OnRX|pBfnD{mtjs>+^PAdria^yD(UC@W}49YgFM2SU;g`;xapLSh6ZQ)X`T!1 zmesV?e-#B!drN;Gnot#g7h+{N+ckVC&GNY-s;=|zc={chbEc0(f%6OUoE2Vpaxc${ zCt~rh-jwnr5XGaF;2Lw29lIMyH^7*lCk2aBOGhE++C{z_O5^LE66!m$gl_#ELcK;R z<8P!CZhJ~2VT(V?yP3n}+C-EX6k%e>2Ws;&q-7g@v2s-x^kUZex|{s2TbM!D9o~sd zW}iOymBZ6_3z^5z4V}LC>Dl{r6s*MW!2=F3J2?QK2J?3+ZX|X(%c5(YAx8D%-u9bQ z)FP>-H>yvld|w^)tezu|^F8^D>tD&_xi{$a^l_*!;vR41ANpb@FHW2v1jlFnF>+NB zwn}%BmwOttJO^X9<205lnA8202Ze#yEh4rKql%TQsBJgTb>a*t{$w0Hnm>!r$HSpJ z`UcgOq>BsN^u_HNig-G+JB}ooB3L>euX(ojZQf>a+ie-O&u^y%Klandxg9hjdmS}3 zbfe|u#r>yx8eJa+hy1qion3LDz3}@LbGtjk$=fZtI(13z`Ouk=5 zokQ{wtsBG4h{se?&<8D<=8^-JQYahZhPT0rG+U2%JgO4(!g{KlodL^Lj>u{6AgD{z zPJds499^s)9EZNQ(&()89;$Vc$5lQfmkk*SXS*e2bg`KtQoV4A@7S5`>@InzOKWCc zr0d2%$?R~Mm3G_n7$ZyaVE`D-$?1XDu~kCF6uTNpakxIBt`b;-kAxMx6P))$T47AARXGlIZF#W z_z#oE=^vx;Y^V=z9n8m~6Z5Hp*_Qu3ct{;H;xTQAJ$xk-FeFG8Mpx4DaJc{m|{K9~Tf=`+anMlmTb=z@JYFGTjV)xt2OmQLQS6pw23 zVH&WL%GnLqV_Gy?`!$O5_G2-kZwBr~`l9Q=VBE=MpPc;>x;1z(256k3dpqN3!gXeW z-1ftqwSD+*m_u$&H!0|eA)Lk);ovp)b3fccOEwRNor(i>y!c6nkwK#lzo5q2+u~J2 zAyi#esWChZo26W#QK(LzFLNL5a93bw07ZD_E@n1KhW=f@&C?O}*PY6|!@kez`)o2X}E4uY4m zw{`YMQf#*Jwwd@`0ZgU=}9tVlg1MXlR8>+o(0e)w=7=aLs{2Rsw2MinCENiHT8 z8$;iJKiSl(;dEXq!XA52m*v{H#_zMxifob^H`AGI4SFyF-)xm!+> zG57KhJawjPD=c9*F&A@`o>1MsL|j|9Pi(;yY(JvT`>OZsN1RXZXY8i`s-=Yu&ot+s z@<8!`YD)j>MNVt_Qu41ebpGQk+Hw7rxb&!mrf1s2c8edGFPFgl?oWEXky&lChrsLK zU~G_yV+ZvJGG55L>W`<$Y|?hBmYsyOpF=VD6X$nZ(=lp+n#hnNj5_j?mZc8DZ7p_; z-3ChjdEn;2L^L0Y#XT)%=_j#I9OlsH9!U^qa}M{}Lw!x1Brm>iC*>~etnOk>X1&&m z@x8`^*BKD(P^@DHSl=99GT7FgM(S2c5}GE%c1Q`S8W})S+YH{Ob|~Xr=g7j7!sXQj zg!Mg3g`IrXd(3RM1kRF=;fxc{Z*#kwaqoPda5Q0W^r4O7EALKQquApar-NIUvvBQ$ zG50RNlZhGUUIv(83A@bt3>}IUXQ!fheT_J)ae@BoZt_Y9JkJ&4kGv-eJ#wL+yGc;-9Az9BQPneo9xoRXyrdwM-eeQ`+ct zxGx;<`oPHiFYR0Zhf?D9IW}MWNiH(~$WbwwXN5;-(+O=lzgvPJo9PsFzB}sDPYTTL zhn}3Pjo)=>*sn}Qr`-+TXp_rg`j6T8pFevDsbu!Hd+egw+jyre6_1ARAL(S9CeI6W zIlq*JT$3e~b1Mt(Q3I*gK?+re%yCnu7p^q^qk26%DE9WDcW)hF-m-=Y4_8afUKW$7 z-*OuDxFKO*Uw5{P(R-aYMAz}#vrj8FMa1$ugt;~%b3*}{BEIOc`&q217J`gPuO zTF~zo{jg`KIowl~m`QtwCYq%pjo%06aYuxFrK_mo+@$0}3H{*Qap`b5lG$jBTI09E zB+o+3nbtxwLnWyE$M?81pCzgm2_%;ij;l@Q>E&KiI33`kkva`b9_bapD zXNh0h$+%iSg?Z{K_;>#hNe9Jal-V=xqTD4F`#E%RWFpGth9dt%2z}Bpr_KD?yQ9`2 zYSzA?VrGQU?{|{F@}(lvG8c>MouO3N-KlzTJ`@h5ao%_cb$$Dd3dL|Fs-7Z`PyMmM z>=hSPH4$`55w1ET@xtE_r?bOokt+L9=kk92K?qufE>7C&!aFVw51Y@^hUb4MDfuaV z)Un4Un_;LQ(8>Ed4V<~goMypy(`Y@?oDqw|%#@OkdQ9v2jy+q`j=q#n!@1467*=8i zNrHqTC$PWJgnMtLTj}=1nRH)44^`?(7-(NbCp2|1GQ=Clmm89XdLNwIF;r3=e~H>R zRR~X;ceLa9T8h+PMyEFW;6;~CTFV@{8>hBX<_Rs>Uhj@VL*|fXGP^64dBoLG%qk9p z{b4;czuiqYZf2l<9Q)drKBisS)ijCyA(=TI_-0xmcIbOSckVh7#OMF3K5ESGU``No z@yB285Z+05>C;O?kumN9RhF^GPG>)9zl%XYAm0n4d~x$Z2BJRJ#X zn^z=v@*ADr?}XJ$zlezbpdlBSscXa?f-X~VWl;_F(C1z{bBH$GJ}Vls+3D>3R6M!% ziCoS#QSUVd%!QspQ+eN5uG~RtX3==Vv#hn*%(L0cu1hrwtc+MgVN-IT$o$&xcCx6G z4#C<;kUutao}JfufvIT+xOKzT8#i1D9C zAHsX#7U>J^Ez?kIT}Jws^(D#cK8wyvF0fnqgc@E&(yN?Xl-gH{%Exz#d1c>8^FJrJ znv8}8dt8DSKcqh{2PB)GM$z(FF?cakLX#SO@mrVYs20U!U>1Nayi533&tBj!>~mm0 zQ0X97db5prAzK^}aV;2g{HAi|Kpy9&3>Kl`NmMeZCtlyS!lcUAw0K7cDR25gC*}4F zlV@gdy19_{mUE}!(Q!&#WQ^4wV=?)w23onVxmT@;%Jjd9UGYlXQO|^vn>^&D7Sg

od~c=!Hf;-#%;Y zDM`N`je;W=Xwk^Yd{>nh9Wm1osX2}mPY-~b*K2zBs)`n{U+p9JJKAHb#f)Xnbje&1 zo-%`}+`|HvFY~B+;3C=@7>gMPo2cKr!N|1d{PP@bbmzZK&xL1bGv8Gc7x8S}X$rp0 z^TFqT%&J?uTdc3KM9{ZkkoH|cMo#8fv&0sYnK{xtDFt4;zERbO0xYjhr1d#dg^`aL zl_?FSTYvnVPRB2#fzMZo6^S1ySg(Y(WcVZUqXCv%m6Eq^DNW*@&!-))D0Bz#)4sbz z^sb<36$+T4n}B_bv@x1HlIxEGe(Kst=Y7bywm8UpCg7lx15Uc|ZvL}3-s~{IjM|xw z8=7_rw@O(|yzIj4Jm$#>E$VPigM4p2`q-sX_*YxtVrdL+uI4UD(l$CfQdOLv)djsr z4@COdIx1I)qz6GU=($@Hfm=H0&V5gDjnA((QS7|<&zu~`W@GNL>%y7c&E2{4C$&Wh zii6qtb9Ou=%vEvxn}|p3Qo1@g1$I)tSn)$0KKb*76?dkMT{(B{KM5DYe$X!K*`h5` z8L{tbXi>U35}Lf}bT2D(w2eojYz!p)uB+UUi&%5s&-2erR?>u8RUo^yBFSS5VHWpK zHg!BB*&=uHTfCA6?{}h6v%JY*WCmT^riH44IQ-&SLeG0w#YV?%q*Xhfeip4GWp~bR zXpKh5{4V%l`GhVoBgoYyNJNc^mNbsCgx|wJ8o_h2g$K*UZ!Pvt?FLypdBBOE8{dv4 zqu*G0iXVDPyj^vaJaos<-~Pcc)%+>adKOd0qE+-Oy^hrDW|PjPCff5kj*^svX#UZ5 z>S1+-e)D;(rFJK zYA34Dw4%EunKYu~0=+OgK$_GIud`lKZhD7kpBzdt2j^3@lsP=#_|t;^lSSbWW{;kW z#QR(C#IavS7$_f2uVmzqU=WJu>!Q*BO$d@}j46kEso9HSX<)B1Dqj6ggqHf#_TTK` z*=vQS34w^*-jBB4T0{1WQZV4J9z42LQ$qVLa=hIeBbZOMYqtaJdUxeLsUp4c%!JzH zP^>x9lNK=tYS~3Iaip$}_NmOLkT4HA;@FK2F0o|pfIai~KTyb4&i*{8BhS1>ve8Jv zridA|`f;t;INu5J=F)IV*~#yUW;*U&A~I%plI5a$y1)AbjeF5X_YO{FhFL65{P&5D ze{3VO-l~%J5%sk2Q6owG`k|mPlJ4JC6yXvnj171xlsPZI&O`wjd$^Nv+*53txQGnz zdQgvxZFJ&JF7uCO(eobtVSL~(pOH8h&y23;SHC;d+x($@GPclq1^5daT07zxtvDJl z)JmnOcQxtKCbDmg8zPw7 z)e#x?5%&+LVqDiE?73>stllDY_1Ht2-IWoiJsBUPr@;Bl4l?fB1Fu}uC0l&BJF+AJ zrrp#rJXIfO9ej}e(vbF+KA^{UV_-2o9+f}O(A7bcQKBe|4&JFh&UT^kx0%(mBp3FL z_aydG%PBMX6=h^xqNTenab#3a*x2!1pFP|c%$bvNO@aC!HN@`=Tj=efJ~+A811`>k zusFmQ+1@sIwQ>X&^FH*rW-vmooTW0Yuaq%eA9EJmqoyv?kbZtU{p-4v6o1F#yN@Z2 zS>Z&^P8nEvuSy&{lYzQJW0}jVi^{B6G1q7*EqCjWDQitIM9~<9QP~JF$fhKnNmPAh z2AvwGMV}`+LeqJdNKXr*>K)Ovgqb+97rE2>aDq6^48c9;2(G%{X~C#-w3(e_z88DJ zEieG4UKudv&qj+AJBgXu>hPxs4(@M+&xkfE{Fw%&052qNOA%$Wn}qk7L3m$mf_oz` z(xv0e=|caGN>PI4iuY3!tQTsU`9xZf$IBFQN99J`o~ zwnkI<`o7R!Lx??VfvyV<(*Gzr&$yi1H;f~ch)T&wrL0m(qIF-#(LyCHX-G+FFQp+R zGn6bwq?>d5; zQ*&sQAI!kMe%uf_7k@IV@N4S~w5jgTDVJu$Sj&ZA2g*T8L&WU3o?W<%;31gU>g6gRb%{VgjF`mj-)m5d`F#}dW7 z;URQ4x`mGFJy|;Tujm}05Z{JWqnp}T>CrNP)wWj`!)}rT7XO2Bo z51;#~T%#;A@1YOG{Q7FRsa%Jhdm>uM+<@D--t0WEL3B)Xla-bqxY{O~CEqqF{$zqt z4dcYwhNtM!QG~EwSmD5oS{#Peuvs)K_Mk0a`R0rq6F9H5vCK3TE=}dOgRC&v)I# z&(AKL{cR~OFPMj+-cC5(QHgd_hH~ew1jdcb;0SX$4~vn{bGtfJNf&_Of>9XXb_Ir6 zgewx=yhYHa$&5X|42EB}z~E63>u-%`O-Kbg+}?zzCKrUE)o4a)E)e?CL2#>d2S$|K z$Lva7yW86gurG2rcdz(Aw{01^N0&pj>?wAxek1x1^r61@R#7xLOZ03N!q}7-NY1;A z=E`%h(xXl!pEKd6IVHH?vJ?7`m)z3HwoG);W6lQ;M84S|Zq)u2Uu5paCPxpt1B|)A zDwR*<95JE9olc+4*;9R@beDC7UBM_SHB7_)91m`KIg~1OgE>_t4(Eg4N$&ezoK`!J z^dt||=>oS`2GV2BKP<_9BJ64{c{J98JA6m5=@;qCI32}*<=arVR_+8Jg<)AML*5Bf zrF+z1zLUapB_ehc4nq@(5=Bn z<9WECH-dJmLzr-(6OSeIVbzp67#VtU`=xGd)j^Yg{@uq`*(KkY9U)mAQLx;c!zos4 z;2~b3)JvX&fBY56I+nERD47(S-s0G-0NCaBq_1QnDa(#m=vSF9+%*E0l3ihCI0l(h zN^#`QXUtgh6}zVOX8d94(i?CHaVkEXzWR%B?l6M$qDEqNemaK?k)33p61*+(We1Zp z;&IRxeBU3y=ibBF_4**Ox=kkI+XeFbm_ameDRaU5BwNGSkSlEWBVb}{W_CP}_65Fl zH~EVbDHAyNq#tJ|TtMjk!JND@RoD#NjT-s0Pmurp{`MCG%$%6@;5T#&?D*2+AY$cR zw0ZUy938MjOzid>Rj+h;*EpUJ%}l9X6~UA$8y-{hV$_#dMVg)`*9C>JO_38VZnoi& z**np_B#`+ks?xc&18oaSaq6BIYi>?O_@g1RdvaE>A>uPGolT^18_9()mEWD0yf`7u zk@g2&@NcV%(7NTr4RR)Wc9klBTI|O>!>3})m@usBJC-}cB4{#sIM(lxeV^Y0c_HbH zVtzp`MYD-WKB$1-&=A_T=?g6b6F!|%h$lwn5SNDW{`{t_a6O8PvvfJ@U^s7EWOCE1 z?YJlNtQoT>bKJ~B%J0Y1PW*Ff}U{_k7kTVG_YyOn;-dd;oqC|ZK^jdi^O77*q zxc|n7VFf^@Bn zE5-X3!?1F#FE5&zb4_Fz@A{Q0){m5#FXM|yp0yu&``mc_j)IqGsc@p!X6e=T;q5A!S%Rj^_4wk7KT|9{P-&6FH>ic-^WSJKCb0RdRPwDGpIYUz zROWXL9HftHnK?9#C)0h*Tlg-t#xnc9yq)t-l$oW&{ezXbRJa8<4@!=)WXZPaV8S2g zT{&USHQBYh47>8vxD;i{iS5jJqBIdxNA%$z$@WZi+Kz>m@5QOQ3@#f{gKNb`%+Tz@ z+qYgJy1E}7?X;0FK3#S?Ch*sH$vi6<0heK(Y#%FJ3U>Bk5W#TNT7q$x{gb zV$5kbCi8-7G5)*tP~-*Iie5K*uyOApJdXVNa-{J0-IhR95(=U!x6#qe^6!c-K9_Xb(P}r(vOILb_?#S!`R2Z1rJ7?L%)71@CfM1(e;v(G2eoJFG@yDyRLLm zQ(@50Ls(q5MzpBuhfBwdWXDKFdTtWgE2kXWUyl--Q=FM+sLVw*N6_m`dj^%30P}`CWZeaTcHK8tl#St=t!vmD)2MV`x=jLI0m}W>^u! zRspXNJi@^Kb5DPcUSq8|miI@o<3MYcE7oJCv7J26PiC9dyHUSe4}-tRzQUqAxVB(E z>`cmFPElM}w3!JT2d(Beldn^i7F#;jyMik^#alB-a6 zLhd#FGI(^kKexQ?u zWERS;EJNl}4S0Hz10Sc(gl9z@%KNmXXVF>g2@K}9n4KcyeK8u29uXO5U0D0MUXe4# z7aM0uRz+Do)UuVClC(*jd?=Z9Do^bHbTH{W4mwUKn{=xqLjDY!aHZm}B zGAHO6DKzce$cVwL?K1*b7yZJ9t-YZ1RGHqgd)acRCKc`1h^@meq5ay9NR#i32+4p< z9R2}4+(LL;Yd^LR$Yp|-GVRQlV4fnI{~S#aA0`i5Mf`$gHFCyK*`7M36L`h#m+1L!1a>UAhfi-C#kn7*oKdgOh8faR zarO+f+t0+#yb|<_jplo&aCp`ZpmvLcl9#N^X}@11yZSp;Jdv59(TOOOOyWgvUWgX= zuS0Ll8%&UHwo4m~8J=N@H49VNzxM|5iXI$#CYfKQYitIB*vBFte@}$+T{CrTlKWDZ z1TCUjJLy=n6D12`+4188F)y?j<07}ARHGHu`$>1ZY96*oj`zfXrVI)hOFz>;*m76y zDP!#Dy`=>wEDYk!<{rZ4?q3|qcm&IRuJSCb#!^%1L<>))*~BTr|CJt-r@1n#qAmV* z@Zk*e&a`v+gTuSGW83m#k-t1q^p>B&@N0YV)OxQdd$U?Ryd27tkz?_=tPEE(N78$k zH>XT?rtbz5YD|?`$T$Q17iP!PuWX@IXu!YU+Oko)>g4*^V688j#x|PgPP1s zn$jRCl?TN`JFl`GxI54T`fIDuQ%4tL?(Py-EQ^Km`s4No8(VQh({fZEA!qzh;N<2D z7`#E7pV&4h+NGj_=?q_lhm^Tk}rk03N><1DkoHB$u)^^Lie@;@@(now!V- zFSp_SL=7DKxe;*>N6J2pDG#XJf}0|e%9($KhC;F%zd$zv@hXs|D~vLHe_&!pL94HiKE`pRMKulPSYM7U#5?i?_xPAw-fZL zzKZo5<-M%F8+AUY;qrAo;H>97!eMq&UqS;q5uSSLWd%q+0p>!O%O@!uI zThT@4w;xa2hgAl0x883E&s@+#WA#mZ&VGwteq%WG_X)+U31hggtP6imdngunyCHg- z_Tu#~zeK_+>DIm(#JlD4UQ@XYDqrT|!6C_n`SlUc%q5S!cCm<)j%v5QIT$?o2t#-Bj1o?Upq=~EcUXUua|D1DE`i&l*h5UM3jL5|~Z#1>S*_perX+p{^Z&9#+xoM0~Ukj~tjH7NhG3!92wVq!#%%($kr z)%Ech*kPXCw`?m|6nls-ze2Dx;-#4D`4*|0JrGjmB>m=lurkY!9oG(|mdsNxFUX|k zjWLYa7r^|rTgComgBTq70}IZjhR-AsT7D&>8hycG#GV;Hq1@v z%xk*#{8>Ai$CQR)$?{aYgArrdVth6)S4B~M$7GhfN-su1A2zhtqV<^GJmx7gRWoFE zc2@{ThqQocq!%qW4du4)p)7ybiYr~)A!^7Oan`|sg;q*jQRF7wSwpGn)Q$h#2h&^o z7GgE?;5*)$Tn-uWqhfB1v8x~;h7f-awH=HvNjRXoTx#fEuJ*rYa`ulq_yX~+%X(`7V6 z^sZw@X$Ma3aYvl}-WeM?hT4&uSn)2DExj_Sdgzzrr8{BDyc5u9=)$U#G4T2|j&)kM z6i54}*{x>wc--!V^u3YllQSuN*ql2|%q~8l? zuc@TZkSC)4mk0YE@5`r~o?=$Dg5A9@!qwFUdM>h8^Xn^AqFPAjnTni|jpDIEW4Rzn zhndT@x$ePS?DS2cSyC+L7TB}Cn;IX5ZG(o2ueedxgJIRhQ0?AJx&h`P=lFIUZ<55M z_!{)JJBhT}4{-EZq41q9XVISRv8(q44y=|ev<}9S+kOuEmHrI+Cuh|EYULcxohBP% zWcKnXBD!A2tbP4((#w{5n-bj6R&w7< zdgD~%NpX3XCLLBz#jm~Jkf@WwCk1BQIL?zRCQ0X_&wI@F@aD@yzwzhT5{1Qu!}vU@ zPHg^iLf%a^kv;S(!ln1Ie(imHlzEWOS-BF87EbHfuK4k)3Kxvlq#8Zp8t*fM`Z6;ouXfoqaHaD1R z!p~wi9B+@|?dwsTw{{4XWuJc3*joH{^TVU2GS};ISFyU)4t#e`!RFC3Y!5!{Cv)IG z@m9MfW;SuJ){HSi99Dih4q!e^4?R572B%tqV5Si-TdgP z8OwjU{kUz*Fs{rT09R`ln!dP>r`jE${oy`rr#0n)ifDeh*%o1?uTft)kT1vOqt0Oi zR9{V`ondqNy)Ns=GE3z6RE@1OJh(npvL7z=;Qsw3uss^h54zG@<{}y6`xis|>|2;y z$&B2Tu@oo$X*KgWigrF%#6>I7c*GeDlkcH`SS2)7i=>{OzVNKtD&lU{LaTc-PSr8t zz18w(V9=Ej`YkXs-V1j5@;kzXU3jaoY(G! zbr%QAzC!}DH2d*<|7qBeHx7o)ZTV1gN%S3M{;*|#`x&M#?BdazE&NAuO{>F-#lxF$ zuD22f`dY}$^b(w#cLsMicV)+kVccQ(1DC5~crK|un-z4!g1J%bYV=*)%w3NiGSeC+ z{fQd0dZCZ}|M#nv0)n>Vd7wU5VHnYcuYVNbWRI5^J=Q}y5$(BQv~>1uNTrao=zo!W zg?Fow>{&mCYj6I=x~-p3+ESMe7bRm!-eFga)MawBA2_eFQCPnGt}suLe4fomFw>|7 zt*70`;_e-|BdHIb4*QE%_TIdj@(g?G`|xb7Gp%IjY{r7s;?X!mHpU$i!M0=hp>8cg zWDnHWJ&p6aoI-*3avpM z54GpBaJnIyd!kk#WYrKlI7D&Ir89U^s?XWU_B_~pB%NI?`89H==wB_fU#IV2_LK~U zwRxU6W5#gR(V5UN zb75kz-2c5ih0AqHbbf8g<|dO7Z6C)M?Vq4$gbMYeo59fX4%(Tk)AUO@bWUv(+vL6G zMVuuk$KDp{^X*_UL2^wqBoFA{QQSW<7#+8S@#e=exd#eE=Px5*lmfo)FFgXUWOryr zQyzZu5m~)kGO6sJoO8CK`OUTHVKxoBnn?civLlGvZ6fkJ+fen~6ikcRq;UUrM>w~9 zttj$Nq{ed{F(oe;@19AH$V1J>p$SZ)K0WqKT$aT`G!BkJ@`v^G-Ffcd2hgA z+FzDDnIAQ_M^=^yr`LVxVZ8|6i4*YNaH%-+%$5ne+H>ZgS=f{n!k@Y;&@)wE=8*kx z!rh5qvI-To+lJDn!zH0Qt}}bTd5&}KZ(_RbMl@M+Q!FmHioDPFpe-4aitPb79vLWI z(h*$pNKgLz{9qzGWYx`bS$=yO{%z8ydAxKPU2$fI_CCBAbpy)-{bj1v3M=&FyD)SS zB1<)xZYAdB_WOjNX!kcOWPP-!&&OWMUwjjNb}}dM9qHi{+!K zP54pGm}TQ;z@)y9WH3h2{_Y1d z!41AE#JWIjp5C6!H^pOlU2>fcmN_t9{Xd06)lo(E*WTP1stW1{aKGhg6r8o<4*N;G z80^m$@IjNdlHGQ50#-lqq}NipcWvx0+BFz34Z8B|VS$3al7E>YkQAzi(~DjzR=YUR zp!hN7^pBE#{)t@UHWQOZ?!c$N(w99s3s$8~#R1t#a%?_;Zg*D7-`4S4WF> za-aMtV*zfan$R!jEDl-u@cTqno(RmtF8xkisFTFu>63Xt=@%l)4q;}~LDH3@Lbc|_ zFdexUNvF(NQ2QKBB@@MJ*J_-UUW_KgeWWwkkEch={Dz!|?;bl+vdBznTtbYD1h3s~ zhl`_SYx`s*hu#U}q$|h83~gI3o9H0Ej}L&d;}!(Gm)_4g6}Yz4gE7B6X?D+>SmHXWZ~_%kcswzuUel}e0Wb{JWF zgdr10@SC+{q(_Cyo*;70Jqu=CE})zAjozATDh7Sh;Hy$6-qv=b&dWLI_RvZ8gKcPK*OIQU z3PfAY5L_>I#?hWfk#Nb4{d_`MZ1@d!&g&yHxI(c=_&069;`x)s$eX@QZ#V)@kK#Gc|7YsUQBu1V z{U!UfMDbGmH0j0;0cxC3w+p`(NjCS{1lCria8Uda%)RTw(}TUKwnFYP-&^q9Hx03| zr7s^|t;M4jE;Q47jmv{#*?G-$tSJtJ=Ia8X+K|PLudP`U(1s4Hp1@S@a)hN94UGM{ zQRcpSTc1U|ZqVP}(Z<^D^d`&(w6S36?E zC|mX&J{FyihVaUTDKK22&Rf+>U_MMbu|BotM)e<9ru7SsI}GplwdjM}S>Lcs`-k{wKNcOv4QG>p??`%*#wSOopeXQ@h#G5z zD;0J;yJZMgIB&u3ZKs9hnd8{+)0a8TZ0RtgAOBO8jNQi*=_NBDdl#&L;iL74c#^{d z8B1`mw=Hbs9o;(bD>TB`ojz8a8@#nHb^JSa81$VrYT=%5Di#{$@OkVlq-V%1 z#+GkTl3Dlbb7huqV<10{yNb}ODqN!*%ZVjNaH>}rtCog9H|VSQc|ME}Lq^IO$0qE( z=f~$aJY>G18!rXD!&NtZE-y-xvr!ku4BB|YcVQ8VDcy)LTmHu5qu*o`^ zMIJ#{HR)=;-kHgZ1F-vv?By0Z@=@w8d~YxjtG=f3&#uGLp*tIIBE99AuUzz6c@0fU zyr3g<12ZieM9|H_;^$l+MY~g4DBD?q1(zZ?-eWRr;~$BCDY6rDsw1}N%*JS)S4h%y z=JU^+rGGY?J$|W4_iiuoXu?XU_jP6H7&(vX-HNC870P}3Q548?eooKl!m-ENi>BKpJOM3^=WSbs4#=pRfTLGLacl^2z7C0v7 zhCezcQ|(O&)Q!}c=5Ncn4^kKu7fZiZJ<#!KYi`}-OE1j`esZZ(^f;L&UY_otu-)C2 z=Wm%}(BHA_ID!!|czzRXk(OG%ZU zJn4C^)DQ`qpX21IMx;GfL*dpDyg%r>DAyjxsOk3n`zH_Ahrhww6Y89{O)^xgl0oU* z-0CA88hbh+zvR1^byWH`>LzjHg{flWcgcswOGRx<$%ax1qlx=8Y{}^Zt!C44S7x9^ zuT-AewndRDJ4pMjmZN%4DwPh5!i~rM#hP3<22T&d%+2<+KeH9#Nn`o>w!1LjXUWFY zM2uK8n4Txf;O}`>deeJK*OTN@{M>+hw$gK`+lg~)G^n#Wg}Z*}Nv_X9%uVQmQLD}) zz`YKsZ^*OfHj6sRwq3l;hkb40FgJ0BFpJgUWSLW6S@TTPm@N|ddXfu2@dF~J>v4t#x?P2P?*Uk~HJniQrSv*AnUTrM?nKrb&#uK!}rK7P4WPq(0Di3YE36S+>!Lm-GH_0CgEpAS6JjZ^6|+RV#yUPYQ9m%k$6w6@=U}* zeNTS$wWr$p!8rcH1MBsi>5waXay16%*Y2)pohqG1hAo*Tecz5jd*ME$x7c^QJ2wVS zMZJeTv%)usyf(uzM1Bvs=Vpj4P2y0rrVIC+U61jVPZ1^ga!!fq*tu{W4*d*gZ|{Me zo%mY>t&=XxY!A$pjG>$Rqj-IX7I(Ca6hNaE1XSfkWh;^F*@3Oqf)R0J1XsH?;i5G`T(e|2ua<@Kp`txMe+px_wX<+UX0#n% zkL02PXY_w6-Lr9-{HoSP`ZJ=L%nge4iaDtBeumTksd4;O4bK1Z3iCuOzVB>?$GOru zIAbNo<_+d~>AWp6>O}n>UFdM=26_!CL43F>Pu^IBa%Fp_oJi%D_b!YM?afIa-s8~` zXTEXFLbq$-IPyuAfwiUZ^$cRN^rx5(%7o4+Ll{3jiHs>hIJY65UQ4Qk*|KJQ9@>Md zI_f;$Lf)U>Td{Ik3J0WI$CR$J$9QfJE}lLBZ=FUl_MZHl*KWZ`r+a8Mv;gyeZNfT| zE8leGxwV?)VHKt>%N5aY_6eox1a^?QI2F4>#HF4^M~hq@ihd%JFJ`fD)ddk^v=2XP zv$$C0foLl^fw}fi(EDfvhx~2H>nz5^X<5wZ`Vjkm2h(-jV8)#d9AJzP$MPpyo-mT`#UA740tDc4DZA<#oc*O{{hl<+VCynarO9k zdUX$By38fFUp0}oD&siaHkjS8Pke1Ed)U!a%gH0W03d! zhe(N>#MGIo%o^*)e^=&Wqx%Qg=~ak@Ur$2aJO_mhC*khD111Z)vF{)0p6&J?Dt z^_jh}9LjG-G0)V2qr%ID_xnd;`|@D+UZ=+~4x{)erU9>>#IV$PC1P*L@6~k|@bY*c z_K=<4DSn#Rw%0@QO!6_`?v*0 zIJeJiJe>L!*Opfx;Ia=rv>ce#Q=Rs``$}I`AXmx^;L$I?Fi|lD)$MvyVZIupVkEmI^0BDA(iGFjnsLYCyGTo(#OS%* zIJ>A0(Pwrl`h1f6q*n5se)cdv1~ssMJsvCCjo02cF>HaH zX*>zQ#!K4#@J0n;>V_1}`{CjHG=wjY&9))PWY<-C8ntdYjQB{2Vm5e#4Bx zgT#st333OK#@s<2INw^bHcrUz%kMrowI`VCN;V0FnVfwOJ0x~TrgPgyPagST&WrmK zS@B>3kG+;1rrd$jrCtX2ZmHD!BFsQ!jnblH z#yd2O8A!2IMbtHpqN{WajBDSFM%x7orI)8bPY-L)$lCBs*xvH(3Ro(S7{Ef}-1DYXj? zVfau}RE%y!ZQCeLdTfrBpGI@t{fnYSUnL$(+aNnMKgG=>`HGL9JMmio*P?#$3^7{r ziMB*Xa??KPQhe8gYFmu>d&3xRI&F-ZGD9_Xn<0Hp?}252k*LbNDZSsTVDzjb4?ao| zMkkUO)ma6}17zo7R01`6B(SJSG9z-fqkj)g&Tsx3Ew)A1*bzjDv@5-h#4%ip(mB!^y4{%QAd+wFm(X87oJXz|4 zHILNzHBO0M&rG?$RB~4HRv_t&3BR58rNPOIcsZ&m(yLr(({!SkpA*3UI?DOqtIMeQ z70$RNTC6B;&-T;RME>#S-1n~~)O4bFV#_7WNt}g)-X9Pqb1l}E(=elAEw-<3$5z2f z+<0;;g5~*U{>4_zj0k3dV>ogzN69YeN4PKV%ukvv7N<5RWMG=klh>_20r%(lH4!e4#Dm>m@eC!0s`j<=T_ zaoMvuJrm>PZXr$fL@$IZ!N~Fo`pGPFqRd7c1?VxQX9pgW=eyUEqfs<=tLT$dATEDz zfudd2!X`|zc5XPJMPwctr|5CS-To||Fh%Z#CPI5v9MApyhue?lp!dJd+;#jXOv>(H zooQ1JoGHK0K28%uwi;tfv@TRCG||6Pb55)2C|Y`tXIZYCnQdN%COh3&C0&jk|67NU z>h;L)Tc^m_=E0^>Hf&vT8^2pUhSQY6TrwnvcdC`SvfX`T*|_j?%zIJjV9);DTJpT) za@7AThnIf{w>nwj<&)!zrq85jWlACzw2NXzuI+x=_m9}TElaFp5ke6a~7U&iyNNaaNIv1N-1X*`E~E%f7hA!g3A%H zx2_M5WN{30uu?(%R!cxgD`S52o zBIKXPyzVHhkG7?`a}~Br*VL24LbwLU(6(DXj@tG?@uAb0nlzAoM_&`Si)^^XD-lX- zU74$7jrh)LoTB{|n>OjgplB!uxS2EMgAcbgAIDPv({MER#q9+)Sbn+*o~smMz5IN) z4}Wg=;afkZ-G+`cd-K9q$y&cNf;VK&L8(B8VXw~O(m%=Yd=*Ude#5!z zR1e0sNnycBNB-Ly!wD*T6t-uciS*I{dbIXsU{V=8GJ3HvxDQV(S1|5Q2|8yaGPSY| zW9QkjQ0FbaG~ULkl1Awi|BUe=Y3%rQuj1U7r3iGB=a|Ms*0{WZtC0r}WnaLN0j9hd z*oou64ix?w{`}LSKQm2kW5L#XWPVqXo^8obeQAW8Lg~1ip~AtV4~S{gszgSrWI6UY zE`6=du~&a5(!T|8MP)RXsj0HDogo{Xb@)^A<`u_4(~{L6eUYFi&d zrDWIXZjI(Uqq7LvbWL=47KfnKh0y$2gM>-r*iJq(2ZYS->D)v6%?IH-Rx%H~oyEg^ zKQ_Df0xhT6bIYPQmhWAFrKcnZHbjM)Q@+`ceHP1^)eo`1mHZv*WkNe@D7MIMvcgjj zo#y*0ZcNYMqT6x&xu6_Q#ePEP_)1KcS;3%%9eH>4Sgt-L{~l$*#?uYx7MsNWO47|O zd69wM#qj&1V47k)5BrX0|My1}NqwIyZmp3lw`47r)W@<F0LE91VbRYENa(m!F-lkRiH6E| z+fgGH%llx^vkE+sXOQN#W%69yowM3SF!fS%URGO&>n%q!{*!!%4>4z#53$Vqz6OoK zGsK9Qg@}>8hHZ|Dl`g zU3A9|?RVnD=M^}xr3b&aS&Tm;Jh{2&G1PWhh#dRzR5|KJL$hJLy*FRnkGqTh8+uV= z-)V%6bLHdDRS4J3m*>6xcyM=G+7Dv;Pa@cZB8`@Yc$h;D^$8H5^dh;^T;g8aBX@U z^GVT$>9W9|_01hFo*`kmA+)WiZ(LUd(fQBkHbv6$VtMv*ix4ul-4AJwJh; z@;TbqrXDx6ra&z;KzbRZk3Os=o17XW??ah9w(2qh*Ze{!7ky4&Zb97KBAQ7Sv7ek> z^*`Q??G|;yE1An0<0iR|7i5OIxH&KUvEjd+az-pWkW&{A!=FJxR1fHfJF7=>%*i@v zHtE2*DyJ}1(}I0FNr!ubWKW(OPp!~!wwJ?-R?MF~h__GJieo>O zII3A40`B-w&u}J2E}^;kR2 z2=TKOa&~RWGfOLIc#*-3V96&yLG4aZp=fVIIJIK+?QkmW-e*)x)T zr`q9Ai4G5b`~tUzSkCxwgW`DN3EYYH;BWU_>})I-@0ZO$=(r|`J(`Ud-;KGoum?Bo zZ;j7!AH~2o+A`T8SN?cUA|3eP%4cm-GLz8&>nkF|?+tOA4 z94h8?;H`G&P&reLVig;FdK}XwH_s_L-5wY6f53uMB{KRj*vFX+u-?nm%;?OsfH;lWOMEih8amTsd0#4+hw zzZ%w#4KiENs5Ka?5>CSCZ79zS-h$Jchx7To4G5a^1(#m+!{4it8TcZEFK&Ovi{8gk zd?1K#wn^7loQC4wazJTz@{s=elsGhT z5me^2!KW@7JeMN#H!=&}$}yQI_C#>G>`^YdJ`c9Cca_@2f>t)_Y`H;)og@?J^FlwG zK(fGxI5GOuIIgv~L{8#p4t;wVWo-vC`CT&mg_+TAeLwEq(iK_vc3{nXHS}xaEblN* z{5Q`Q-{iSH&?^>&2kM0W#Mab`B9_>fA!?}}f0>^Ue$M3Nuxy%_%9Z)Ap&WQwpIy|` z84y+jtKk;XmEMil7d1d{oXmv38OXLnOQoOVm~a`~k^X6_BBH;{0N?6G-}ETf_S=R2 zJ>8jJ(3L~sDjd(0;*Mh|zg1atWSi#9ijJqjp&I=8F$9T{iTgXr730>Ip@Tygp31L7 z?xQ}e9o3e;@7_RN+lx(Fd-Fz&Hg9X@&~ZczPd3ZPgJy=<(JrMsBA%x+dE+T zK7wZLBj{M6t9U&+P4vi^Bsw3tje|~ZES4RJ#Y?T&Iyi`h%l~3({7SL&a(|YbmJVg( z5Z-zr?|CNoF=tG%OlZ!KM5awv?Q&s75tv}j;H z12Y#sm*>SehW#_)!{ZU$Q{NX&R%>yOnmT>zMscB^16E5;hkB7WVs18}x`Q=)pYf2+ zW9i}v?9Ug8MTqcezz|hic&A!pqh#QZXywG^NA07Ff^&Ik(gQ#Y zkSx+o#vkB)GK-($T-dQ|ZyKN4ju~rvNhZ84Hz-%4q1OvsYD{9Ai$jqe8|u<&q$_su?9msTe5E#4}6TCD!zNXQ@CttOaB4OC68=4qE>$v zueCxOP)PNHPyq&)tWe;bH*w1k+3YD3-*BbotxegW55#-@A zO7UIJRc6V4+THyh;a?p~H<{r%9(eundD*^Ykt|?mj?1mR;#PAFFU}f*VafS1CF~ zTI2dX=@IJSgZ1BrBc@WmD@9K{A2XhtYiIKSC7WS|dV-9TerO zpP>D4cXSy4SLoWzM#poL7(Bon%~EFzBY8LascMK9RV(3hF9aQLcBOsde~P6S`mpY= zGS2+hi}_mH(ep+$XY3A<9w0AXT)G++1_>N~-JKp~O}Rj2DOwg53-{JDkW`wlDC%$r z3)9j6S{W1-;p}rWg1a;l z`D$3Th-;n2ZDHhq>`Sni;>d@8LNTl4p!hc56kQ5FW6)v`=`?ZT4R006h4_t;@xReS zW>B6rmO|IloX6^W3#}8TOl;E?IbFv>+36B`eGbK|5x4N+kP=&u4^dnbs+XQud3BUG7Z>Ls(bQNBa(JVlo~BhYqEDDB@i;@M|! z9&?@wpU2HG>6;Qd+i9^|c_o(rO=5+8xd>P{g#G*_6DvLq%TDwZ#p))~A=j66QPx!2 ze+rAr_1zO6Ygcj!aIuYR2R>I6pkY{c$`4pdfkLrYhG zCd~IhjW=XoVX!#8{(&%jzC!%=xQc7vzMy`!sqhR<;4Hu4!uCum9o|HD!9hdveS8GN&JSR? zMqd`l&t>PDsrVjd&AfZ2?B8iD)hE_q_<$UiWdBB+OmAL_rQD&0(jujw-15ro&1~sA zRBc1!v=LnRs0h9`i^ab~+ALWTfbj1z42qrs2hRpPn-d^xSM0+^vqf@`SBs?2SH%?F zMPhs&j-@nzdf8}U)=9!g&1$yif5O4+KO=5kM9{o$AI39SShpJ zq4GSsQ-`i0+r(<+zU+S31(vs5_+jk?*0fuIj}b!TywB!tSqfn zc#fA29No>>pPDTBj+=4mwVatY2@vZduA}5yymaA=pyFa*3{6#{-tbTwu6QR*M=ZqE z8~ufCi5CNlf~A9@4lA-=VyIUHZCZB6h1?|eYbp6dXXXC=^&i~pB0Ix7MsmrGHq?Ec z%dVYzbL_iK@U#eEjy$(L`L|K%{M{rrnazZSjz9Y@Z^J2@#xQ2B2DB4Gm^`NkqB7OE zw80YHdS-IguY55#ryIXc3g@b=*&P3@2;DYAI(R4Yt!@KWTE|meekTUJs1aksTZ^)} zt6_Xuc8zZrVr_m6Tzd3D`Bf#3DD~%|7mu)6^45Q)Zov2dQFPw%T&`~%M+q6(D;c37 zLWua@*GE!TLS!U+MUg0Fw^Z7D?@}5{N*zgQY41%MDru=SrS!Xg|DMLUyYq#4XBy$Lj?2|1jM}}jTyg&F;hoJMl z=+@%~a-TH{q0ILTv2?)n!42X^*LZ3&O@j8zXJlq+jLx=!HjDDM(pR#t7T>vj8wlyJts-9w> zIT6G6KV%1q87}Y+QMcbekbIX-hTM`Yf?UU)rpIXyq9g0f_KOPox4|xACsrOq&`x9sM_X+pZ8)VSwmDYx_>vU(M!RXv4%K4 zS4pVtctpib6R_>+W$IMbfk8Jnyz68yM(KJ|7jn48-Q;x-Hj3sMJ#gM@mDvAEl@{)p zjPMWnD0H-;3x?`LzVLqO(CnA=VBSTc8TEl|+Na>}j1;`r7MzWkO7F8e=(fU3>e1$e zO-mH9jkAPZ7c|hR{k>p(?<=zoQXntcOTD`dfiB*9wEiWM#=Bagz z*dlBixRV)jT{IoH!RS#2xU+mdwQb13_q4&(TKSXAu5T3noCS*cn<8F)ZX`c#b`rbF zP+}JwG682x*rV6?asuLi{-AXmBM@np!afLRSVYT^eTWsRDs{2zi6SlfJ(4~1*2ve( zWtM^qzUoym&wT^QSy+(MHgjxP6bU(}?wD5Uf}96>FfTL0r1C7@{jU`DXrj6?5u&MU zJiOZO(gbFJBtGL@Z0RPdE^47ov8vcnYM<85IPp@jT~Wn!l7 zDD>f+%Wd-!Xz!HApsDIOzSox&Zui9DNuNn|`ZBt8#eS@yXWc66lFaeulYW_g74@x z2Quj4X(uS33E;kN5p_ncrR%l7C{sxaZOi27emP-Ad{0aa55!R_k{COwaJG-Ts#_D_ z_LmvEHS8&uQNppQTU~Bna~67r3E1eAgVs9==v{A#pQks`y`2u^9`#(z8r;N8LuY=sr@hguJ(8U}++F17(W7H9Mpt#m$^>&*$9$lvL;c}B zMiJ||`*CGS4K;i@N>zFNk>e4A^(&3Jmw1kLawbQ{s){~cw}r7|H&mY8O8vj=5DQwn zz$jP)m4|Im{?8Xy(``_>WGI49jYX4RfBI1Kkc{|z6*trf&Ag-U>}`%q*Zz|F9|zov zF`!$T>qv9lB{B}`O2@XQiuKFiQM}=P%2PT5k+vAieaj)t!0GiT4@(y4iUcEHx_qL5 zNBV_$!slx>88=-0mq~#i%uwDmm#*bUW2JE&MK^3At&`nhwrC^0d^i!Inf@5m#+_h2 z1+w^Yk#_kHA}99Rd{qj9N#038oQIja#13jUg!o-vh#wmOW!01Paic9~_jzV@V=6|i zw!xDf8f3`+*4y!isr*@YtVxMOZ$&TMpRkD%tNHGI-45&Wa!EFMI36ltR`a`KGaY-$y>$6=^tm`0 zS7wEx>#xJK|8A4;w$UV;ck9@Twwa2*jN&XnBpx(0yEF|NK}Wv>TQ7Bm+JMXSZ+S7z zQ#(R`>)NSv3G)&jvAguCKp)w|BJ(|a%~X2vJ=GAsy9-!1r{J^V1uC5IL9BgLNt=!) zO8#)R@a(Gdv}nEwdY|cor_H+5dR>uT?sS5T?itCLl_@CTzkd7e>k#;wXu20WJQ{`Rywuc?4^2f>f zZWP&tAE5ctQIxW49A4)BB-t0Ek-cFmX9x^wp?nOiF_YDqg~E#XLN)7`l&eis1KHf=pb|KT$1g*MzYO$ z6&388h+2zbI466C)+Dyj?{#VPyEd3EaMthq`+6}{N|%-o|0r$+tKvTQL9QkY!N5N@ zI8yeG`gN4jV$Uh?a2rmma^kUN)otNn8%yuL`a?fh8~r_UVVN}mbE7u#9U~6Ut|g8pl5 zl4p%4?PcNE_|%x)C7I;jt1q4vrqa#xLoq!siuCr{i}VbC_Vae59ws^@HLWkUT+xNj z=&sPiX;Hg_eW@E_;gvcXMXE(~=G8iq{xb{>Z4(jT!ae_m1jFV?)LhGip^iG@en%i_ zNeUWAU!xyGyI{ggJ?gGI6ndfSX@$2E@`}f!)nT<_@gVaejpTuT&o5=O1RCLDT7 z@cmgW<*ax`hc*p@%AI~tULA%WyJWDvFK5Ucxoh5+?~x~0x>O7~OO_wa`FD%gP2B(98r2cIr=C`h)^S!F*+8#%I9Jg6=(!>rS z6CDx!>@3y49VOt)4$@ETD`K9@?20PVENc*Li{0tplm;qJaYoaeN9-pyKty0XqFg5M zKhFRyygrh&hEj&*HtHYF4D-YG$O_;+y$a8r%oNb&lp=oEghHh-bja5|(a=0%g?m5a zu)sVH)vw}kZQ*pXahpNr2YnE`{xSPQZqu)NY1r!S5t~g1q4Fv-w%uw)yc7Fby*24x zyDMqtX5z+a_7@I{bXorAv9NTD#k}{?@G9OwsSaz%)8Jm08t>x%TUy_^;rRZ;7< z7*#CO^%pDs>q`a;x3m+hI6jsBH5*7V&oxv zWO8Tg#f9D&p2^?UY2hf|s6&1kT}0condJVR^ML(b@r~cZ9tx2dd^i9Jv1y{yLK`@` znF{yF(w^QXh;+0-su%+E2ty2eUP;43%BhQ^B9&iuhcR<@!ur{w|5z<-ei4SdhOdQ* zv=ub>N^ta~8WiS?#RmSpn)Nb;KArG|VoWdSWciZoSY}4O{vx_6XHcBfI-wRiPtrSF z8G+1jUAb-(m6$CMC%2fRY4>0}SQ-JT!J61{Ef)V4C1R_x1CA+_(}#1q>_ykZn8q5K zG}jT*x(DfQxB}@_MnUJMAEKVAi-;=T9e$O@nyp3DG;S#w)GU`2ZLwj7qlU0G=UWx; ztG((B;CO1QIJ=g8VfyM&a|Ke5}jEN9L-( z<7a;b&ml+X&81Bhnt1p<6G2^qV6(K6J0K%b@Zp~*E1pS*&)p+!o?#Bv5JES|o_>#D z2Ia*Ju{$^yeK+3~@h*OxiOC`9+QTB``DtPQNDZeh=?Iyg2dT29ls`&s)XCrfLm#I= zV{H+AxS))`-JeT>pM*p6DDQrpd$6}!72c(Gc$R67Wnp~35}f4?38qWGb_nUeQ;|JO z37OwypcScw$qCuWR^ClxrnJ*+=_Ry7X%xD#!zwq-g}XZLcq`pYTxSO4rLVoPrL&S& z>9V7K?LCU`#1?twNV#DN?x0YTtAp(Ze*dCw>JX+WFY6bJ8GZu98*0MQR!`@ zw|ktBpDKm&y{UB2Zz_hyeW$%;+MpjXSYKA zm_2bjshixQ#|wrc^`aWi4AO*BxjMF8E~S}6J(>3&iuaAulFN7NsCOMRi@vMEVsK>>Rd9+K?l$236th?sS1 z6??(wVSi&Nzc~guwtSZQx>IcZu!q`@6;Uwnbmj~W$0R!&NZI$r!;*)hy;~sJ+w(ry ztew2i94Cir=0hvI6jguwVB2Ub{I)QmJu8mT8O{^G)E$onnX;&tJQH5|spwYBoN4C) z&?&E@rvp|~#QiuCkdnfy5w3_knnZa=^sww#GVT|gCKFv-^5tC5v)cyZQCH#|Z#d3u zNu(oZ2jQnqPqeu#B87XqDA~#ho^u=M){8ce^k->@&VAQIxlJ`JaY*Q z%MojMUi!ZMy^vp-A!^q4Mf|-mjGw!Jq-3HosiQ?4nXiKZCpOcedP4o12C}!_MXi@) zFsMiNkg7_?pf;yd$mjbw&ZkUa6AE8!Z;??v{vW7E03_PxvotlB^SB z5LlasrOOjZ#ylP^tq;Y9#=k_i8MxVxy;bLxFs;^GGN8w9VQRctVtn(T(C|^gk>?7W z4Ot>~4CFp(X(s*4Y9*6TLHKWaIwqT%BE$X{b+`0I+8X9E_xL0h-5vyuMFpI>V~zw> z3C)~r*zKK9S$!k1_wYOJ_r#Igyw%h-=_YLql*Q+@?c(C=C>mS?W_fo(P*xlsz37GQ zg96}o>Ki5Xmu4PDDm$U1V7RDVwA`zqs~ILVASVxV*A|Hl%u0AUHUcRJ4Uy_Hf)syF z!Gq?_!sul_-diM+$_kzj+*^r5i+hU5R1HC&eK83CG#b*HwRH4PFuHvoAmkGkQOxXhLQi)x+79m( z#gkoex4@1Le6~Z(eOXkDRK(+y`IKK*Oqt%%81Xd{%5Uch2j+v;ZaP4HLhZ#JyAu@m z)&(AEJ4l~dJbSlU;hR?rl{zF*W2OW0ugoF4ZjD^=_ zQtYAyga(6};GVh^iNkLC5q! z)Wpls%jf$|=u_onVGL;f(vs!>F5730b;y&|QP^@XeA&y1E=r%+^9y(lEs4 z`H@}r6k-3JIaoIAG20x0iEB+TY-5g#-`|l~m|`!S=XpavIt?LYhAUe?Q@APT&k`Hy zxy>xe1}|B-M&$8sx0#y%$>P>a8yM<7mV8?pjJH+XSvseS6N8&Y#Sl3Jw!fl5>_Ks3 z?@TSb7_B*zu&DGW#Sh;|Bc4j3mzSU%r~MMEss2!j%0t1aUhImB#txruc-?avR`K&Q zgfmGV+x+0NTM>4a-Ep$=99?w%?s7l2lO~RwOC?}mbcZ!=XiUPkibr&H#VV?M#%IIE zTav6>L6F;*i+xFBQD&8eyVeuM?lv#_Ccjo_M)+fM@2RMCETHHcX?XbU9djuv>H3Sl z?9Cx4n7tLHV|cdND~QJ3353hAiSS$2M$JF`k@U!pyexK5^>+3#xyO)#8h0m76k0LYg$)9&_KVQ~M3sGq5g*3GgQ-p3K! zBHihLp*xQK{zj+nnL-Tdg|X+JQvNRHLpBHDagW_3x%7jUKI@9CvI)?oAt3o?iW{

{T{0K1|0{=>n0lR11r|3b5TEfJRr0#LP7wwETq~ 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

Vg@qx9Z}fgAw;1N#Y0THLCCN3{%yN zxb(0q=S!E(oDZ(Nn6?MiO%!xG?aNr(HXLDJDJ;~-@PL*MLmQ=6GO!bq6(6uT{&qyrN!E@0=L> z-ADRwdr8LSO7YCOBOiGT;w#;`nDxtvddaiIB*}n%t8^akBok!Ukg?3$<4N^7VRl)uR4_`XW?T^7u} z1-|r+-;SlbrYi0{8^F(@lH(E3o|+^IvAyKyz+1)*4eY?gKW4ug z%{bQZ0Ls_x5svO{xbAZ(Z;dp-mu2(d-{O&QJhol5%WcJY#X`OXmKvcLb^Hy(d%?!x`0bm#g=Chsd>uKBtR zTKyb2b-XHbza;QdLL`64x$f_go|u%TPIKi5E;X4ToTnP zQ^fAyvco>iSqv_5;EpBgI6i%cV&p2>uP?Qd87jfm`U4sBV>$*_{=lr?di;7v-W5z6 z5Th#jmkHI_n<;l}^YvKVe5Sw^`OLWAj7}>O`L05T8TR>%_#&Ou-E!E!O(d0u1Y&2b z8D89!o(`W3$#^N?f3wo5yvKvt_tzq}WgcIrdGr2@!^qj4i_Rg}@cjKkyqzPRnB5$? z?*0%(g4|Djo!EhyX6-rU;#5qm*5W%AD^7bclpEuM*nH9)EIc(6E8PY#^g&liLac^X zpg*$Ko1&-73UvG}m^ghZ5|6vmO392a)Zlf)v(hKpiVY1Zh*@XK^I4@rvtR){t=r44 z!ZUF)s1?WQ=~74D&1&wu^VMP%xG7a*)|7*ANFPV-e*t`+DEC3n{g@RU#>Rt_5K-5h z`=saOPwN&ucRWI*RV~GHr4a7 zrF{bUZh;C&smN^z>gWSl*#&egd$alK|3tCl8X+`=ok^~3_>tPHSk z;T}=9jVvFM!@7j7)G3(fo|}9{)Yt8kT^V`*n$?<<#>q_KsvTHaumz(_I?J=I7n?73 zrv1_==6`sCy(dhtUiNy9hu*;`l_5M6b`^b72SRnt4=j>%QM(E2g{XRjz{UH-;4bG8 z5EMYglZ`kR6~G~mFVKaOuU$}tA&FJUbTknQG7n>iy1d8SmYnVpHEXpv(*6iVdzq(Ftith9>7#Del8-DFirf>Mgwu2B)_EqmlfAvEeP=MH z&&y$bT@$uE)q+F!91*J05&FVRcDJV#pyBZi_m+ zUh*7J)%7Us%x55Fk~i|5yv5()-Kkb(DF$R*M)Hab$;TTGpJDm@snvl#FUJV47e^FV z5$2l&XAHSG#!#b{qh;8+MY(;$*E#XkTbU%%3QQ= zA$mnEh53V_9DhaLt14zFZYvR?BW%DIlwhEy+g&aO>EoRM?9-<~CIPmB; z-gdr#t#@_#Q$+AfuPnCcD0jn4I*8^IWafH!0tcR*EXJ=bgx|h+>DV_po~zfEXKH{^z|7hHZLFwwMte&lk!(R~-AP>$BOKp2(21wb8i= zJm;vxX>O87y;gG1J_j=NmMV*XSflw~AFjXOi01R>iKcauA+e|}_esXevoB+igd!f= zd>tDXKEktWdl53=zDOy022<6?Nc;XuoI9e))=oNfZgvU6Tjn-eC*et$1rT{NU~aT88hKN0(?n!#4ik6YDuLQ=lm8xDMkH4EGF zvb?wKdTK2Dnf>^;qKHqMxiNZIG&c7d!wF5#i+67fIZXE!9_{;!`a}Jw_Tri-?m7kX zzmCJCBO&DSHWBnxW=|Zz#l59t#?y;~RwQxo{kzz+U@0nN9MSvTO~s7Et+~fvx&(4u z8Q5$N-q@PUcWJordMDZHHnL+d@+RK)xh@7~TA``-0^I)Ug10>%3v^Fm^lKaTJT)D0 znX+@W$OJF9>T~m*5?pHEj1f7l@Uxo>M8zjenf5^L@-IGdUq6l~2OP zah=@`JkhfiCrj-a{iqge^PJhoUhcXQ^cFCRma4y`lT%M)cv$#Z+#(pE<_;Wj^cAt!c=TjJ56@o}ddkp#% z#iPxQ#F1t`^v{;PN^kj0STqrPE98#(t~sq@=i%=t7apj)i|9kr5paDR_m54c zJ2&Hrr-QJz@ha9-2C|>*#+kQ^!^7?6D5#!=(*}}Re0;I!W#dM-X4bs%y(yEEhhp!D zU)Y!!DdsG;m#o_E9DPmZ&?1P9oV6x;@Bs=cMq#fafnLIP#=3?&N)f^YbC}deRk5CKNGILkle2 zi-TSRILTMOTNX}7ZOvJ{ib%(t+U9iA8o<5My{=Xhf>)JM>{P5RMpPB?=XPbbD3F|# zyi&Vd6WN#G@I%;yTA`0&VJ7Vm&`8f4`3Icyy(&Tq7Or@LH!Qm^u zyTsvU@FAoJrZcKk-s3hJ%R7LUXjq=fFFCGa^OAkoUTeaYUkupxzzj6n|A0p~ZSiPM zUp5w~vf%dt46N~ zYf#%Fm#=+Psa`x2kutx!?MF-LzMg`2^6aVTpUqD_{!?tP7{gUw?YS4rG4aY&l-{ys zRiFOi#g_suX;pyEjaQ)S`Wrj4tl7^yfvtMVEQjP9nN3oGj}qy4%8)&Km~v3&KfG^K zz~`G;}VBXocGF{TjN7< z{Gu6~9^H(2wf0c)ZN$f)F7yl<$4ArR`0AD9-e*SeL?0vWOa2P)eCc62`xVdEhv9Pj z8d%A$>_DR?9C6%$o^LXlajO{HCKU2bres-tsX=VeT^xHcReC%wBmeVM@up7-M_I3f zqumr}Mh&InmOl5?sN%zgJ-FKCK8BuErNZJld`niMg+(;Y0uu4MRF@?~M$zX{EKl`{ zqVjHAy#M3F#%-Gv1Ezmhthe7JyuWJDc$|W(UN&W0uOS@udp4%VSR%Z>7mp5pD%QGQ zMrG4^XtBdh&U~72U+*GJ@bAsrtsBK=*>lQUZpjYGmCzn<$-DpKidmR&{>?bdxuMEu zhgxu~s9KkX!Q>%lE*MD>71xqcp3v5k0W@9weh z9^xJQvudm|#~91IN^WPK+9Z2y*V>C*j}Ukdx`^bnlKDNP3KL3Q5!L5DP7EFdy;(WD z89SDm@ADZprX^Qb$+^*;D6aA`;OX>pc=~WLVqKM~Bi$1DO>3}wj}_Z}xrJWOoaDwPE85XZ<(v38 zcrtvRWV3$x08W4L3K`PhT4wM-oSv>j54lSiDjD4cp7!F}^+*YKIxaTK=SG^$+E#ay zv-|ziq5I8<<^Q|ScfSmMi%9lAr$^^!O6;_^3#Z%~r7-w&2&w%fi!~HW?j9nT?|JH_#ll}1tOGeSmF9QWTCgMqxT__v&N8BoTFJ3CXLc=VP zqt7^rCer`Y?zSC&Ow(3`kMf|ggX{^6|A>0$pQ3tQIYKWrqEnp%AE|%B-53G;n}uw< zAs+fpp?GZ3lQGdtMgEd`IM-;y-^Z)*yRJV!Y#PM%^M>=;5p7x}^r6x7bx7?nj3HAb zL%IEH*c~{9=PREh@~$n@@5|@xJ<06w*^RJ*lOp@|O_;v&Vb51R=yWWYW5q~DzUT@! z$!49n>NgfkHs?EQEBx82j?M%7G4y2@$)+gcEZsDou{B}Qwr+e#CwirhqoLkNp4;K0 zcp}f;!8yvTxZWt(8G5NqK##<-RKTgg>mj8v>D$B-F<36#-wdT+(sPV$B6DJ+&!O#j z4TYu5n&zAKV#4sf2!0g_?LVjBC3`dGdIh+(!A9{*GHee`yoRMq+_6OCg(#oa4o_Rz z@jo?h-pYI~=IRA9Pv480V^ewOyF35<{D`BzGA}#Ufxn++y1%UfX1S-M+VCf)_)T{k z>Hi!HbX)QIrGvQNR1;1X;Q5&?nd`C&@1Iyh-)w@gOn4247q)B`xkmh1e3S5b{0q;iFD~HoAcXeZ~hWRJf*cpv1Yangv>J3 z>S%IqKq2&#e~I2LZXmr^82|K=?+|5Y{0x+R$BMpimYE&rc3o+;xM>;BX3HhO1Qplz-{ zugKrP3>)dnSu_>1<&NNS%P#y>D*Z`6vw2v#4>K#5;d8kH3G!KS>OvFzmU-~^=SO4S zFmHPQvts|~CcM^HdQTmGqR;yxhAti~GkQnhFP+8NBeH%p zr^}YgDwfxo(Y*H*#6M7Go7?Z@ zET>F-9DhRm+*>Adt;bPrBkz-$N}N8@9((%kl|Ic5nARkNG5f7~Y;jL6n<%|cu|4Us z(3g?QmxSM7Lx`2BNR>?Ti>oCsB_W^7jt)UUupwI-6tFh5UL5rsDSE%{Ai6I!!nE~W zxh7KbI-a{QSy>eZ4`1M_%{){c98Q}@zfnE05lu^b&_~OSNecs!(x#^vfA%O`U2Ea> zuPHMY#k1OX0ACJrV#MTQ=usJo2HQ(WQTC>7-4lHHrNRQaLu}!?4vo_%VR*E;qPdnT zrytsjoll0bL-BdsPV}QO4e)hk0soG?i+3vp{>bcg>>WLECch;*tPEwn`7OoLH)gCk zr^~1Jy{MMFPiwGx@?>NhwPi`ZFRx8*N4o*-nei-{cAiTW_SN=ie@uhE)&C*9 zIEVLYdrQxVH^;Sl0563v)oWAW9^Hlen+ser48rOO@hr>v1Lc}9cD34tn+FZV*ZQH{ z_2)gR)lwPwV-xbaw8v}vN{m%`hPC^oH{Eq5V&%g`S2`JOeg?DC7<+E}<;V9|J@GKB z6W4tO@2}n}MmVeyjp^;!t@}1ae5%7;H#c6HBxm12ahROco2#!IaNrDQeC-;+z~B3^ zZG4^d(aNrb(Fp{H7GvFBGyZHH%&(K={mQghG2@^H`%HJ>9hEz9S}u3P;lmK7+ld#m zWTxoQS=2XlM-OW9r%zu(y3B&Cj$(_c6^?wEfz~fQ(Dk(??iK#TnzF$RP@9S!W2;fr zehylVyNB5UpU~&OD~fh`-MQ1;jwQNdxNul0vfA|E>bB1j-A0vn#|~yQ|5hUGS)EX; z?@Dd|SadD`ol+m*($W?Z_t7A_mOn%9)0gq|jm$PYTcEhJ!HVNMy_T8BQHpL+H^t?X zL#5}ZKM$`-B`z1Ed**Ct&paykHv_rv@??C{(&B9INObl1fm>Rc*yA#i{U0^mO8i0seH1RB&LpCqu9IVQA7?5vrxlyNzvmQfD3>4d{$jo(Y@~*_=fQ zC73EX`Qh?DrEz5v4A##3pTnL9twXrfV;YRQ)uKXj#9TWhDbA=H@a=ZlBk+#k)@i{a zEj9%c+v&4FcKF*5T7&^xFG9%gu1l^fD(^L8_!V2aO|%oc)y??$$0$w=u%u_ld2nkz z5e1LhQfFRU_SBSJU%6vnSk{s)9sNgUiqSz^wNJ!QDV$GoTS#D5Fx zQDj-fAj#VG^Y4c5yP7e6b8jwI)!_Dwa=5mLWl+Rv5i_haV|TsAi5ptf2{L2kQ~8b! zw1vf!6gn4_Nsi|pg_7hrSKi5FwM}2PevmC;5^Wfzc^Ddtb;ajd87#|7$E%odHmZ!` zrjt5|kv`FTU(aJ?3(4lRsdC>v=%I)ZhlH-Y+q7Nu0tFkxC3i)adeho7;Io2$a9&C(B$ zHypPLQ`!345XQ^1{*97g?r&y*AD70l^uD(6ne`Bt7yQA@xAPV1p~~F-YBBcx3KLmB zq<=D37vY}=Qgzcq)Mn))cE8+nEA?k59}C#r*eRY&ISyT~Lug!j91F~4zo1U?dm~%_ zA4TWkh=tdNVJq1wJ6l3V8QJf7ZW1XoDmpkE^AdC6UQRRerFW~X(3-QH&TxkQ@;eGRc*2@HMjlY_k0>;JuAvWCh3MjA ze%5X26qNZ}a(-tjWfV8k{WE+vz!-#Nhj5;h1V)wKbM)|7OtXCR(eFMMhkVB4iMB8@ z%w|EDGbo?ml|)O2JYFsiroiRX@o*p*FI1M&e|gqWPAft}oCL}7|DWYjb8>3SA@i9n ztZL{e>{eb#d*y-zupf%~Csxq@Ys1;>;j{Q1awPWa4a4%88>!IR7kp$3C^BqGibwgb za9mO48LIuQ^dHalL`U!L=a*nn0w}+}ZCG3NwAq8DrNy?{_ahuPfLK57O*JzBpFT`1d z@kjDr%JW*sEa`!vEjmTJ*a7psWX3t{KR3<7_Ao1+X>-IKbrrNe9*rYioY}>5ZL2e- zaASHQ?8LuP-OCDMD=ty`&f7E?nu7Q7r%7=~E_6<)(P+C=B)MealH4Y`-T9oR)U0O< z7C7TubSUh*j?m?mvUuY=nr;XwAoZ9FnQxs#xfQEu%(pR+oN7yZd5_ny=_XaBL zVVJxs6yNxHFyw|WDjo!r-~wmJU*~R(B40{3^FH0_~V*bCfW@6{Jl(;wBBZ6l5-iEUC&3j-bNb# zLKjC%Hq(>G!!UH;M0}w@%nfg3yVm%l|B)2l92-uKkLS?^MIJX-dqIvmv#>t$I1A1w z5Og)QP)2GV_eglqPOnik-9{UG1_o*H$a0D@@1Zm^53C5ePnGpK$WHTz-w5uqHXFuz zWB$;!z*~ame)bXBKn*5(yIzRn(@FB#ggYqLdYNY5`AGe`vq;!-b&d+ z-Ps;h4fM$Er+rI@wsjy%n( z`d5C=v=G7N`cV{j{5u`m;mf>u_i}IBWNaTDMpwKHQNPlcneEG_@AWfLzUU2E?o-5o zl_W&3m?ML;k+qp-XOH7@E$hjhGgCez>8Tk(6M_6)=lYQnwJ;_-il%VX`E5jJp!qny7YK3 z7H@brY;_;s%c|z!YI7B})@IX3&LZxp=f6Y85SX~hvV%(&3+~!Q;HGv0JeSHMx@0C+ zq`D&}td-esQsnoe;e21;#NOu`Q#sGgrk4!I4xZoX>z|A^b)M_t>*Z@TKOD+(CmX?5 zb|%LGFI+8AV7ZhEZ`QLhyc;^TH5Ql6b752>Lof9?zx-_)7~z|%9NapV*U9l1bqlOs@iA|9I?tPtvNN-t&VC|EB6 zd&)ZLiuYV7w^$)Lcs={?uNmBCc_V03F|BZ#ik#PvNODjTu~~!Ue7>8`)EuPR&$-Zx zyF_MLIcUsv#aAt38Y8}tm3b-izVlh?S6NN33nxK6J_rWKchSzY1pbCG3*pjMZ1+PM ztP1BncDEeVDJY_!bGde_jb-jJlkny0IT}0t3H286E^v@Fy#7w2lQq-ve10Ws=XZt9 zjN|m+z#qZ$MFEiKS%X89YiPb~HTBJ1PAlXZ1kP{TSicDZZWa&1SxC^dqERqtltg^LDtx;6dKc)2f^ji;lzyEq?VO6} zKy7SzZ_e+|j*yAlNdD5cki5&iQ7_lioweI(mYfei%ctYP2}@`tIAF5F7FwU=P9N1= z(Qru&i80)jWjPdXv8QOQJ?GVWCqrrWJos%+rAUiOxVMq#Gu5}+-yE@kHdf3<*(O8W z8*7iNrYTtUxQILpMnLDP78K%BNTx#s=beJEd*m3H#BuNY^z+=&>Ov>LbF9Y4sPwWE z&l6-IG~NxDq)t;u=`Z$XQZg>qdSPtZ9P$+8;+*eI=G@dkrPb%jWg)?>{U2G(0OsrP zp747sEG>*i2=7=5MO@-$HU5J%*^k>0>NApZtJi z$LAv7C6#p0jS(RsoV{(P?4SFDVaBHV?vUW{V<%UH88_ly?ZBkRyF zY+~jCcF$R#yK1;2cxX5cuXaa6i#N`_lcyctqWCz8znN$rC+XOuY-Q{h5_zvdz6SHK zz($F!JFElwu5M=A-$<*L6;ZYs@Aqb&B;&@Z^pE?{P0GhHkF}ZzTyukGmA%oql)sBk z%16VU0vzD)XTM(S<7VtHTG)4;3T2XM?)E9jD6+-8qIoQ6X%uCR;e6x2-nd|AfuQ-} z*ye9S#-n1`Vn;pLrsYF3$)5Vxxx)6XEB3~Jpy>&#==&jmaCikQ`^4~W;}Y^ytYuf0 zpJ8&k`vli+@i(UJd+FgSNBlbAgAdpI>5#!pw7B1;y%q~-@d*R05)-AbJd>{b>kb|I z;szUEUF2IwQttGvtYf1Z$}aAu*zRSdxM&Ep?v8}f+0i)h#E#akt|H&;4my_gmfVLu zqG}~mx?|x8$3$m{{bxt>d8XT|J_y?{*pj~K3YvCn7|w4uLDTWESSs^^Y~&RXS;J6c zJQNcog>iOM8M(Fc_k~eIFpJMb5~qHo5YC$k*xXHKtGr>o(Gp8Ok3`xnPkgW+g$>VE zknFw@$P|jBbxQ|HrAii=f%*t?UP`--ERb}WGgUXcl4Xew)t(YzFW)?)# zPtZXJO&Hbxp_MmJ(u2%y$`|)Tx70Rja(BV;>;&{xM^o~B3xqw9htS^D^g%NVUS@m_ z*EkwGrg9%tjxf+m);2Y zp$(mGG0dAa2et*N5Puqr)#sAwNl`jp8(PEuMi4I7%)-p54;0pxiDj3&1s+3=lG7K^ zxOx$KTHs6(R;?`ga3I7DIZt)t2l{X&0u7NoC)wD_^u(saiD##W-ak(%RYItFmX1Fs zg)pXOCdsx&Bkt3A(l+x!b-4%fNcW0*dl z`K-*v8-oWVv$2w?#2uv8`$bUe=6j8=9~1pPo+Nwk(T+xb7ua-&ls$)%qHYPjp7fFa zeI3ocb!*7EB?1+rx6;QArpPXqCc^?LHa{W+<-&t>;J7=)JN#JLL<_!$notNkPJ`+~ z>>FQ?SGNY>?vorky|q$M@Yor%gL%H>uQ*w}<>&YoRop$&MUnNg5E}^L?9H!qa za%m;AmPv$<+%|gQ|Aj_Bkwx6b*${bdMCk`dq3nPkRu;O^>Pt(gf1WvBjXp)o4|h32FKl>);Ues@@Hfuk9*v^sby%Hl6j-jDU<%zvIIb(}kY(itu9?eX$(3A?QMh57BY z6kMy9qkA#7a2a=!e%3rC(_1aHZG!{ez6c`U9WnGQAc%hTNWyEuezMFJ;k^+@_Sj?{ z9p_BTy4SeJwCjX1y+ebEm+T>x!B152)Sh-noTDOF3*4LbhvdY9 z!Bz42wSjZ$PlRHz7oROyEho{iQ>3>%lBsXlN=iHzaOW=fu-=)6MM|e=QEUJTo~j{H zI1uSe^Pw#?20>B!R2C%4S(I(G=yEtIZ+t)!O>x|vD~Gj@y2)}}0xl&rF;8J7IGL%^ z+Ee-TKH(ru9v%*17LIEY+&j9qj$OJI1Fvl|c=$t;7GAtbN7jeXf@#V$GUWps@!=MG z-e>}a-I*vI7RhSY{38+0b3A3jXMk(M*l^Cbn6xe)zYT?1y3Y|>&KVdQrngzcwuv;M zZ7K!+|7_Ji99uJrsOGmOh53#|Z+;goaa_foYjIYuMLO0dJ!TKjKO&_HH>}fmMyGOO z(G)L>gx|B7;&DCBXm4U(d_H~rsSvyJQx7YWS}E1Wnw2Q~GL6jhwCi0fITv0f@rqrv z+G!?!-(V==?`c;`#^U*MH=e(c!J1t|X`!k-HY-?AoatDk@Q#TV=Td|_|05xTG`yVl zMNk;mLprwMFfNxzYpyZeEVGezopaFd_0!H5;<$Ke7P|MXq=JkQB&1>sgRm(GiP9zs zQBCB;Y@o$C{dBN2g!az7MH-xQ(k#1~!d?&3Z7CVj{gsdH&xH}`p-wN|`2G6bGSc~+ zL8K0j-qbP$o4RRJDN1nc=wk#t-S&wQ=X1JjK1g%7!o6%4Sb^ zL#h)6IOocJGkh-UGBT9Ogj-Q_{!(gk5JqmEse>{1Ufi(WO>PmZS-9H?YE$DK?$wg; zT_DHV|Gp@1wBX;ze2m>X9$^;;n0;9k*1!EB__|k`lyY;?8obhRgeK?L-yQ<1EdCx@ ze~7*>@1h0zm1J`8AoJ)rNXO+1a7j286;~aY@%wNpQuRX1eIxD{I!5D1wXmyVkD2cg zcT#M9%OVoYH{l#;kmxp8)U-0rV<$3Hx8~R-_hr;7ShR2z$)Iw(HMD$ zwnZDFG~E{0T9aUK;43AsS;~~2jKIHp!BpUr3z2YXEW0H}5>jpUZroEcr{FeoR3DFj zSvjPaI*)u+*3sIt0o0_*I~x})Y0XeA^1b1XV~-4|Y4i&we^wjaXSjc7voPFKg(1~e zNcG3hP%ZaNXooJN>6-DlDPstEGYJ&va98y6iJ0N1#vMfBSluH;56;?P{SbGE7-->b zQ3yOZziIOqhU`WB&GnEa{;3_|9i&WJ^=|>yIt)R4Uoc#F|F}I%0nbC`&`&)J?AW7> zVHsK|U7jjfdY^Y5T`!WZ<|NdSE$UW(Av?~ls!*0?87n7}^_2`9tu;WRo+Z!E&Y~hQ zPYhH(WY^pt2p)LNfa59NFD@fR%uR*3ZfOtYQTr&PWhcAPsfL4fL74HkjA`+E!2Tdd zY$%IC@V;Y?jUi4ra&!a@oZG`*mrq0UssKoD&coTgi6}9TBLR0+x_#ku4v+6_@NWUu zZahq5;>+1pPgCmur_7cQc|!f;JhAH8Yo1@#XBS(YaoflV7MrE`-o^dSkDgN9t0KIP z`NFmZ{GziN7M#K1Oy`<{Q2k^L-JRG=Rk708V<1D~+*$tnUx*;B>jVY!eoo2|?&>?d zffPKW*tQZe`kXl;LLEUDoQsyQ4mTXwvCO6m0k^D44^r%FbDkDK-a#wu6Gq z?2Gh3`ylN;)I#r^1o)bffcSNh)Kc5!Xelp(e@8tqRkDL@Ee1)z`E;_Y2Lz?o9thYO z3c=nwR>o%F{3jjk?O(-)jql@3vz>J0t`6s?&txIRmGrBwm~G24VtU(b&_0{9+;}f) z)fwLHo>0sF-!FRNqK^?N>L@L#CohHRz@8hdgZozUc-Q}k?^Jv?bf;%G$J4GYV&ro- z7o<1~Vji`mK$G!RnP(IgrST~ulW2b%dDi)1cWxN&@_D<3MjBPta;|F+e{)v|K*szw zau(qk7X@?n^86N>xBm*wsR_dEyQ!EhKS;}d-X`h6dRiL}+Ew%P1l+wb8)MxHpu0@K%&quL zDQ25{N~fI$#&TDb`$jvjKh}OyXaZM4*D0M zhxT4k$S0qrr|$4r_JoBqYzatYha3}E|Qf+5M&oRP?26J%{40!jE@w@ zz6blMcXJ%7HfmyoK>&uH640(9E1bMLNDTrv5;HPaVzH~Uf8Daztp5>l0-3KC5 z=0M}&b2_@v1eWhJ;i3G8^;W;6i|u2$zzam{^N zFkcC~FNETm#ct+*>;koRZes?MZ&CV8&xw5C1dj4*X%shD8nJnl+L z_a*!LGe~My4F2-9wX=*n&g(+hCf!hEHfh zpY6v$Gx#mtiT1`S8BG%G+E3BCpJ{iL5Tc8^*`Fpip6lK~Gxi7J*Vk);SEBb=1V2Ys zUCbu0{#o>IMFwj0L@>3S^M+KF(8kXy0dYYHsEbai3U+4n9FmRTp055v9JlwRO@;2{@z4(u&s_00dkh=w z7J=>04z@jUD9t&+=fVB|QNz(BjM%o9v<4hd_xu{$@H+x=%?H`T@BYa6&kt?GreUVi zX0}k-mi6lE;^r(9Om^q(ylWk_)zbvRc8V0epqp)2nS$ZY4FVJ93e(AvW*tEm*ylDBm-~1QRedHF?A%UA;yGW+ zE*Xk06Yx`XIvQ09`Rsfia$^mk9b<#?w^r2gBL&+dwvvVGD2zSS<>2FIj2nVeOmBuV z{C>yaO+<}g=dKwPCt;3*!Xs#}_DC$6Sj>*f4`a(F2}pjG0v>-D#-c`Ur6DWVu}4d4 zX}kO?N}6khb%)2m;6yiVb;?D2Ng^CV4ztszZc|9%H@d$y7&EV^z~S#ls#u$cTWaz6 z6MmK!tmAKJ;tu3xWy14@>JalDj>mN|=(GRI?gqE83eL3q9wHB&)^cj(xq%COhICK! z9R1uel;l%*)K1I$4hn1@c5_bocN!PkB{&xwNiU}; zLFG>m#gCbWiF|%K@Y@bYc|Y_%XZ9NlXR(JDv~cuIt>f=A#oYNPiR931jO;4H&e>BT zJh_K9FRr4p@+ul~TLRGNW3r0kJoEL0rYmir!_O|WTXkn>?fu*IAu$~zvKraPcbX_q z0);+Y#O|8vAUP!sy?JZsgnKo0iI}7Qx)hW|-HEN?{im!ksN-wV>$L_bzyFfb#XFcv zqcEBdoF;EaRmgLn*6b+mt+KAA_S+hy+c_5MH{5W#dpoUr)I>>s1t>S{Vl37ar)J0? z`EwcdJfBE$HQh8%#{jnrY-p>%h`oL9%UQ`IFvfQTzBYprRSr|n%5WIIQ^WLGE9swu z2zl=AAcX`+(i%68z7O*Mtrd5jFY6_?Gy&%;959d&jGZsl@ORfJ8eG^;Z<_63Ex1L6 zg;wYZ_Cvtb>6rGgtLP2GTIaduVd&}!e(j@HX+&Fqj0B9AKA65sqV5l zX5HFJkBkOr%DgPNKKejXs;0h`}zYf)qaa<=^ac29)L(y2i^eyf1|4iDi#c`*&mzHc3B}Jcyw0e;bQ{APE z-kq)j4UHE1X`sqEnDJ;R(Z}9y1$I&V37dbpg!W55qlA$fc&49-QN^Z65Bf^6vs`g4 zOPy!O256`KYzR!>Q>9A_Ykn{fbHB>KciA}7^5ZVjwNZj)At`7JI6#&0sc>kH!U>a1 zoZvIJVcj-ZC)P|IVivf$%@)62W}qdui!QDj&9e{3==Etn&m7WDZf`D=$JswLVETxi zTe+47tN0swx(C(?g|p>)<8i$64_(=oLY4o$5{y$frZipdS6(cOJK7Urz~|8C<$_qw z1rfBjnUQ}@9}Sb4ipi5X|3T>}xvF#i*VH zweE^4S{ZDARWwB}w#+Yzw7?Esl8>B zVlQ;*`89R4iyRXq4B_s9h1#eb`j|ph_>6noKH9oUmtJ4W#Hp@(%!j`tg_|oQfiqFh zMRkzIHVZoU+<|^7tfz%a9(ej~EZW~SQ?I)cb{XVBpXVeZ{5Cl{m4>5t?EN)P5S;MY$aF?9-uHDNJ-NfY>wJtA zrf1UX`UVns9iekN>Vz(7RDM542FJgV#)EE3^jbqI|E(tjFU}u2$=4}?GHrVCjLnLC zNL%|F$#;J=#>nz~=~ffAFN!-2O^4$5gBcKNIzpw_MJUF-2n&T{>G9by*zY8P;(Mcz zZMuM9b(yT!T&BRiDNOptUJ|xjLE7?BFuHh@{?&1Z^2^nvSlB>{X~Up4@i85}=g;2@ zD(LKqe4O7>&DL6s$GRKun2j{&0*&PP-KPgAexQ*gLq=lOJ6i~U^TYlF+sJvvUXs|E zhVfl{nee5t6eyx0xOZ?hZQIgFf;Kr!Uo#gPL4~Y1CIP2z>fpoMR(9ZJGpTH_z{&Ob zFj=gHBIj3hw8a)V&J*xh{3sR2%qCOwk)+yTi|C7m7?M5|OveXTrMJ_m;-7-AymPWe zqLZ~>$i=$=&TZ$pLOrc&z7@{EviF?l>i3(S)ptb2kvzC?rd^6NfA^?$K~CUI&Uopj z4ugrXwvI#KDrbmtC!JSll3>3mcS24{gy`gaTuiB@8<}c|Xn#vx?V|;9inbW&m%{4) z`|Q;(d3gP<7cimiY&Oqees4-*U&b2XQI>!nxrbp>iwCyd+(*_vQ?O(c&yp-Hrs4x} z%zuA7DSw`f7)ehwyK%?&{JE%z31M>ojbNYi|F9!<0<3yqz+D;RalZ5h9slh~a%TnT z7~(~{d3P#LR21e(wX{ET7JiofqaoSFq-oJksrtrv-#?0;2@k=MR~zUt=eqwp$oo1S z0Wd6fgn%;`bEPCnBQy*(58l(AKjBy#WCL5>S7ct%OilcrY=CJL(Y%<1v}2$)FPfe3 za6{teJ)|)94C!SXw|x^G7#oG4sf&0AECc&yCSdTpBApofmih8L zr|f_S8cWRKxX&I!!iOkY?<>zSZlpEu4fxrc_gfn6(Ng@0`Sp7<@A)aXB`!`Qze^%b zXgAv`DFfx(-1jPPK_}ZpVNz*Jx73p$Y3hvpn3uHVX)pV{>ku6j(;}(&clnvjpO*Da zM#Cf_?76p?XW{DT<|A3WOBchzgDNa9)Ee8b{KpFU{MG21E&{}7VN$g?(%d)F{YWCE zUhe!*<(}sFXnMf|@h#EsXo<-o8b3n};??_D;E^~~8df3*N9)#YeQRm%k%#ORw z{L*Bhz|dT|EKQ%rtRea6XMm76Et`XR~Uu93M^Nr7UpH z`w1-``-4h0@1yed)1cU(0uC|4kgnV8y6Y)gHfs^N6zwBBEzTBuH;ojzH}m#kGm_?A ztJhviSmCmtoJXo)+Uz~d?#xM&<(zCAiSIN$w~KZf7~}iMTO_uvmr9)PGIKwk(ezJ- zV;|3FSY<%ZVS=FT))Wl$Smd~>>^Iely5baPk5Ifc8l-+u5MMJ|^ryjj#$4)2(5DNM z@+jaG)k_s?sb+U5P5e6yJ{yYYN{1D@5}X5{bFZjfI+QarkCMlqP&$#5jk?fFwC3^_ zY8dl_J}L3NZ>b$Vi_5X2hquwMz*%Te9D>ft-Q;JVLT0B2C`)51WKK&W;D{^2nHc`x zZ|~wAZF{~JmHKj@O0z7AioddBycg@;@treKZPEX^fD*p%rNNA~bT)kgg!#QGP``wH zhNR-dotYHNv*v}bc+RWFkh36`vw2CUsKOwVd$%I#MvV-&w!)5T+Tn6<8`E+%g zB|;4skyc_gyJ}{E`IpqNUR4aX^;sy+X*9BE93q-Hpd_GnWq)8Pu`KUb5MIU?Zag&#{V}m(!j#RPdV;H@>Xv5C=aQ3rs9!%1e(EC9N&jt)I zcF+!5N+Q^H?gCB77RH(j!%*5lR9~BjEhCFbl;;wO^EuvBy5r57c%)wh?N8c8h52Hn zroV<_n*`Kl6AzQ^4fJMy5y>o?fj`yUWj|>tJ+BVO68DeP`YVA2TM6U%<8C(5MHI3; zuW0*m493a&l3A&M#2zKVBfpo{K3_-~wUZEZZZEZI_t3LR*)aKaiVkwt#`RW5C{9?< zF2@_7*LFV{hYZ2#>$9-?d=ccP{bFBMS)hnJu*OD9)20oNXzfWII8A&&$DTVPo%8x)jhQQh;p#dUFQ&WU!Kxe-ik~CVQc?U=;=ZKwABY!|`FXeqKWwDQdWZzQ zI`)HBZ9ha&g9aEO!E+;$D=FN%g{W(W0Otf9fmnYa~K zMPjcfK~!c6<+bYLkhn6e2CQKEQ62S3y>!9BiL{SSq}+AGP#_u@=ZPU<(s-I1UqK4fx*adR+0H~%RLP8IdK-GW z$TB(`!BUct)3L$xX6|rb{DUpA;12mLb*dk5!NxWb{92`i|NfSd^N9>P7^;jHeFhMH z=8m1iav*)_1KGCm|L08wDqX0Dfjg;qmf1vJ?y{V#F^}3}bg;hO9&cvzx#q`Dj&axc z+12QpK!)c^{`U5g%81X7M=tQJorfXidlcZdc?RI$PYs>(N%(vsa&l^Eb=41gz2h2< zQkz7hbz;bROaMI2n=;RmFpRA2q@K<=jMX&6O4Y68obQ7b%YYE+9VB7uPR$d-V0iBm zvlLTjJH!$Y7j%f$zX`!YtuXpNRf@AA3m{(PD7Y;vhN{vRR63!Tic?LP;7S^IDjuR5 zv$ynciVo%uw6ldVfL0vQVz#0BV80hoVuduG&1j)DW#X9j*A^+4Euq0(Pm>}~ zvlr@RlxY%)+8A>TD&C}n2RP55cNn(EE~JFk>-_z3JUj=&Fys7l!Scd*G|$PQ>N{>M zu{w)x>>3AE?gml)Z4Ga`d`zyBhGn!B#thn{_fHl19N^u^)K@fbjtZV}cfI-Y7{t2D zkcbTD&u{LcYX67a1*QSLNLiTf9glYpr(o@8A9N?p#+%n~*!sxxv@%}`+xTbH-Jkbu zukpDu1yW@;XGXT>qhfm}JF|Wf>l$278=fDhg~nHC>cu9(TsuG9>dB{|e+6V*;Dj6H zg?RD%5TB{|;!>?Le{(rXp06cfTs#gcc`wO*hc-;Piz7f=8?Q5^(Zlm6Z8=#qCe#Lb z_md!XwGeB*%Ol$+5Jz@t!Q$jtI7{89jSB)H?8MM`?~uUOZyxXA_Ym7|fv47u)cxr- zr9LcTkFlRMmS5v z=6WTxTF2w3BEP35aRx}!Pg?np5V$Oq`(`f+cKmgQ!^g=q?8$Ko|L-tUvp40llnoS6 zRwZaZTgFhT#* z5L>{mDD4o4PU3vT6TxJ>YbH)4+Cc2peVP`d4|CO@B(W%+>6lIA4EQ^2@nODa9pOIG zJnkDj6GcXk$HB*fdxBCY)4m1C-1|I~>YwQ%y~&PpHWkvxZ}P~udQFpmbke;6NtEy| z%lP7W98B0mQ@!|S?<(g*PYhweI&xGg;CYX=c>*;C!8vV*?;EX zS+FJo@SKg?*Gyv`ucVW&TbcL0TtujQ;YNHc>@EzYW`lStP5i(%rt`NErQxJLW+ppj zp$8ZBAGF}B3GeOrV9djtRHrTlap|%6*<3+JU!_Rbs-J#Uhrns%G`jdQ3+Jq+u*b)x z@ZKqrG!D$gg`zU-iTUrm4umspR&35wdAi5JIK3qG}}Lq%gXi9bo<-n(aH z_Je26YxsFTm9u4H#qfGgG^>9!kJW@%(}!p~C>5(i<1Zk6VIQ6SkU;I-0(_YNk%|-A zsKR%v;BS=!PW-q_D{L3Ci`L0xFQ!YI4`yLDXFA(gbWz`*X13g14of(PR?x@Y**myz zEQ0e#OsC^*3-5}rvk)lTZ)HvrfrydTM&{xG=>GV~JbmYqPJ|OW)k0C*(MNaBf1&q{ zo^)}e3VyA0Lxy0RXbG9lpMeyf{d{)J z4=dW!Aa{auhs&oVOcAaNdY5Q2^P9=PL>xE^T-ALz@%GwCTF>v!UMOf0N7dR;3S72|9bWo_8Y6i| zgR_-xYQCY)_o~=ZHyiOk#^SWe1Xvv9xex~>ie08dV-CpTm176>1YDt~$EG5nn0vkC zc)#6~`;wOmV5ob8tuKf~#0et^T`)r5-fqD`{dpMVGxw2~3XtOD$;R_p<#45g6m2gI z+l94sdW;two7JhemQXrxEc%B#;US+Jj$9@u=wIW6WX^Y*`|UaHyB$xjWfs$qzWMaM zB9QeNi(uc?u`qh21H+6C!EM(7911oh>%B|JWcy=w#k7vjFX29;EJ4$HhU>eQuQpA$|iRfI! zJI0lP@IE;ahuepsA|A+%`a#bf)d3?#e(#@&XU*0y{7($mSOAqOiLgnF1941vBwUAP zV&$d{R33GYuC6I3>jV1K*%A*AaWm{}4}|C_SsXZ(fzQeN>7{lSbN(xj-BJ$J(Gp4< z4w`b;R4V3<(8Zx1f4coSmt`Pf{6pw zG+OQhsc)&GlK*;WpXD)XI`x6lw~AuZ=r3eAubaFNPUcyDBT_bcPdS1>`dRr?5P6ZG zPfu?oYcqXZ`aT2tX9h@EeiV-V_C~3)9D4bBZM5VKE#RHZEVK!NzGRcF{3zy7AWKHC z$I#b|as0m1MeEj$$C=CTSXyo)4f6STot+7mz8+0;@|4l@q?BFXPyD`P4kz(S`u%JS zLbq#SZT~(}s~-uy_%x`hRkBJ~MgzqR@{_}``S4M?_jfL)PdGrEkM&UUw+Qy~yCJ&! z;-DnK8JiRC&}%yxOb{xk)qLLNx_=hwS1%#g6C?1)RSE}&4ngk|-mfmdO(Rd~@!6IM zz0yd6&YDQ--k^-;#4tzca&N{l7EJAz8RjV|axPM%-C)RuCnr7U9jUZn78hfn|OuRBa})Pht^lV^SWL)_xLH7_MVUFZg@W%?|qQ!!vfB zy4*V%M7QU9BW6$mp_Nu}<{l7{mk#K;C5rgXtLam#7|u=_jg)vt9KM11E0Qm5Bul<-99Ybqw-W?#xqO(KN9ChKJcG%b@w@jv zS4?%whsST;rR^F^TMyeHmG`RGHmoH@+d!;1Y)32qX2QFa&qB)`F)Q&4`||h>8`18L z`bBfFk@L^?q^u;VGvQFaYybt5a&n2u!IsD<(8(>1PdsDr=hZyy*H|kU*$@o@?<;K> zoq?Ec1z4G%V9{4YQL#H8>bKlT=D`*A%waMXep|*Oyv!l`FB$Q1K}=LO2^X^GK>Is) zA3Cq)d$$-|7mS5!O_jiXP=$LK0+}Jw;o?6?Bf?D36>q`fY`I(aOB$9(m9W;@2+l9e zLE?>RSSo7{;Wb^<_2(^H@<$hy!#k+uuo|`%X|Qub^XahcEa)D{z)A5Luq~;iOiz70 zYfZyme=oRqhVdQ-=c9^GhWUedyneuWvW3}D|EGi>Q?}5s3+ZsW90nSdL{TwuunM-s zgDdxG_zQ;Px`}j|cY_c9QNpE#@2DneI;Bn=PCJA}P!R14jpO#TLOT@?7d5j_1?o7Z zxs59NGw_vvwgcB2;oyiGx@ZwYYmBT&IY0|eXU4)*#0FWhxv1i^a>oHFJd$`tlUGk6 zYtA1UA`ym^vgM@sI2uhWCn9S}5cS;6gilQ~6Y}Qk-`~Z&{}GQBkKAx#vkn~8^>Aj( zP-y8bra@yVm;^l*SXqVOQIag=HojsK^Nq>)$sjd1j$vi`Gq8HoUshh|g!7)`F{nSE z9?0ZiwuwB}e!ou7`8_x8WiFns4uW8%9PXKT)5SJnfO=Q2ANNJ;fQB{S#p{)*CzG5}<8jhh=2}sJ_PMdB^sX!oOP- z{csp(z?fi|FYlrL&cde)cFfBlQLxafnZ_k0;bh%x(t0!&BQDIvho1$M$q#JhhurY? zj~ar*LU@K%iqDcP`TiSE;@_ii|Dg-Cd6(DW1J6_pQNo-1yU4N6AC5xYsifA)-`jcL zq&bNEFZU5s&4%=H?gQJX28Hx=%=3%ISxp~2=~sYeSvV&2`e0r@_k5cg(tEzc8_x|rClUYp}^Ns zle2UzJqWvYt0OOND);xPVeGIbk`YaX{&QJ4J=Lago>^gGavUNT5Az0+XAXTCS&q9L(3 z4Oa1D&>jDm-Wc;PM>Frei;u;A-tDMa%CkoHb~G#}1u-j*Q+#Sa4#Jfm-r&1=uuO$U`g0PW&wD#t?vWGre17Ojk9L30F5zbj=XHZZBc#*F0fUF^bmailcPXdiuSKzbgvmV$4Eo zdK1w|KfR6cG9(HA=@r1&+fML_=cEgCI7`->_w?3DqH0|#4hL?fya_Y7pF9_dFDHQ; z)#1`1j?4Rx(093Ra_^6X^hFUiH!YmL?>kKoUHFWy;wn?Q@sKiD7N*R3Lz=gnC~F+& z;H&eD5WiEmfi7uN}ENWFelv*RvkUauxGIo>Sp#Y3qXF)Z! z8l0cwkHW5D*x?h1tUaadN(KMC)fl5`t2E9Uex&>p(-41t46caO(=`QAyoeqmNP8+y z&3s1Zd(a6fEw(f*nP=Ts_+fmQJAuv9vVr7p z&Xy|=K#b-wx+$5;s?QWr+%io_kK*6ifFvZltzq^JJv6bNktARHepsf^m$?C`*kDUx zmToYa7mFX`j5s%Z7%oiK!=D?A=<_58*2#Gl={@QY`eTYEiuY;H_BuiD_dBdVu7)ZP ze5V8Q+IW^HOFPZ#=tSi>&f^Ni#H^*{+q{j|G)uzDkmo`#%CH5?Hc|P9L<|iuhv`|~ zUw5dDrJ^_*m6L4<%F}qW_w^lX#c@_b+O;HiGzwMdXpJK_5r*+-r;v z?niagsP(<%`#BOVzbz24%?DGqq>%TZ5BC!qAiqc%bJONi&R<8kt~p7*!ws;$!wh%6 z*&#Y?G9L6xBE)qZ!dEo0rfEYEcWO1Q+XFh7F^4|C2*>G>4{20QO?b?G*gI_mgJ!_tK|lhIk&;N(-_J5h=?51~WI2rS=iZC{?1Mn+DkaO$+b* zMJaU#f5%FH&MvmyrMd672)c6RVe(}>0yY28cEcQ+rgVy#-{FoL&pgCb2f&T9^h^Wz zTgr_ywCFnTU`YAFZ9xjgIqjlV`{P(w4xi(B52Ho){O|94fiomhajP;G-(o#bb<`7+ zym|LN?K+9rq_SYn;<%)-jPz7p5mDj8qF6G_h4_K~We1DS-$dSB<+NZ|7^Q?9r^mNF zsEFr4o=_U1v~+2OVwXT~d~~7l+QjCxGp?HbNO4{fup`S^s%4KR`lTvrDWFs)s`fx zMuA(UsCk;IK=3UJK402scZLv5#iKB4GG`cNU)-_f z)fpDP-vO1+-05A(WwLue2Mt@g=yvN|?jMjwRNGY4gxE6nJB)=?SFvql-chmQNGuz< zi5A?f5p3e;kRwYS=~l1@>(sSG$NqHK%Qez)OH-6iT~GPRduYi^32Z*9i_!!s(&E18XZBG@_`06$Z8xLGl`5E96@!OsC(sx1 zL-g>p2^Q??p+4@Q-uAMTB(hIZ{+xdTwOwLtOScGVJBCoFK%UK8?vD1qrktUsNSW)3 z@NteKccc0ueZ*L}sGb!ZsSn26jU{v=#F^g>vT#2l4qn35EG66p?S5`Jbt8)JGgb&t zFhmPwtnWWa`U0>vpq^*+%eARiu||IFB`d7&FYBowTc~5sj92DecLX6)h-%cqbo1fd*^F6aM z%$)b3ibL>QvVn@k`Ch;7CjW@~0SEub(Rl~t*uHOEQ_@h8)zl&yn$&ZhM|){%NGe4{ zLyAgUviF`PRHCwXBC=^%FEX;pCM)}Qet&=a<9(~=x$o;b&*S)f^w2J4iN!ewDYeUB zjQDRe1-aazoOlH+jhsnmc6zWYw1jSCIv{*L|NB;RxOBup!~CGb1Z^Pu)qaY48$$XY z--^)j-O%;eAgHx#An&Ovogc1CYd%}SJzy#QJTVOoUZ*8HU42pQ9f`1qkr*FliILrY ziD{0p2>r_Q)vo?DW&Bjs9C|}Zr7J{q!%z$#JA!T|=a5a465b``)2~5W=)w;E&YjV~ ztI`dmKJN~7^tC`x51zH%3&+)Q7nxBt68rn;qP=Po4%-J~%SAb?IJ|+h&rC&l(^9hB zca;w0mC&3oE2vfT8uh*2N>aDj9ZDa?<{KfHeAa?Kly$IEa18nmjDXf3eT>-&be>yI z?d*pQcy^7XWmWO+mKBPamk}GzZh2<-rrwzW&kiG8@?eK#dYEuJ=|LaQyV0mC`JA`# z#kyQ&WEY0esnBQ=Qb{m8i<;H#V+c`dS~(XWqFXcAt8-?)6lSnI$*&xi$ z?IwMW?yR>$j+YIT;+D{;wh}7D7x6&)BDH*xg4uFkSZ#Yw%c66Uy*LcDVbd^ecQVCa z>yL#KjL0x@J{7pi;&5>p-J5@i8q+oS^Pz&#GOGJx8Co73krV`2Cvi05_vv1+^tcGuU5+2gN@?7pt3oWFz~j_!|* z`Tnqe(GO~WIa}G=25&ybBY=B=`f-1RQj39uF?ZQ)uJl1yg=qHmrb2ULU)88Z<)4Ma>o7Eg8zOK=i;y^V(Bfr|q&&YXT0dBm<0Mt~ zmz@^(A3NjUn-n;kvqynD4U$LS#U`PG%#x!Nz3HGhI^qWHJ~jzEZM&dAb1})W6YRzN zTa?ya3J-4i!{M|GhVWkYbUpKq(z7s3?Fr3n)Is;%N%&ryjj>vmIJ z^#52+SIP^JK5i(kzPKbpRn1Yh+!vOp1lE}66C1dch5WotpYb(=V0 z&?GUs*%!X<8Yo$!#hvXXqG<4blH2J(bE6iJiKQ2Um^pegd#wV)V162XO=>D{*wYH4~!r5-wX8m)pC zN96IQfirV~{En{ZiN%jcQ0EM0<~%9quKWs#&D@zZJ69U&v-*jrd!n$?GE3~ZQArx- zQ?bbKF7-*Nr2Qp|$W%3kTVgYfv15lqnJxB93#_{qgv#~P@Gs941_PR?_s02R*-%+% z_2gdcOHZD$O~(==H@L*xquwQ)Sv+nq{Jl*g`D2LK?K7~dCX3Wgd=(Z$uhKi8o?`md zQi?0(-hKo37p-HNv7Aj7D|75ye_zzua&IM!A zmeRoD1Ch|H)Tgs&77McwV8IwgRLvhp8u~BjOTj!!bJeD*&o#7avNz7BRZ{GMRU%=n zE;;je>q_Ye>`pvO3w4Ugsm+xdBd0+7vMXMFO+d+RC3M~Nkc@c0r(@j%VM|nz8a@CP zGVD00Rz~a9)AW^R1*3qB;9vWT@JXx#(JnSbRzb zR=;+Ua)U8uMmy8iKI|D8eUKW)-Ie484@J9)9aK#k>F)O^tgi4wMWZ8PTcdDYc?Q*e z?gu4(e|EMGr$;-!voEqQXR3gV2~l{FtcRk6y`e{=}3!`L6=EV)O%}#@Mt{m#5NDn?Ul~AdRulXVR3|I?5rT8;&7;Q~e$Fn7G=z9!jxsKlzwS_}* zIGks;KU?Xg!3Me+;f?GNcJ3WFpqFD}a3i|_CuFNhy~dGqA)&b1%L#-3e5A+Id4EzC zfszBq$k*J7#=MCk$G>5aJCOpf&Vl^1KcIIP)3Dkm2x$?c(70zb-@khbi<1cmj*^9k zmq560n&gRABW;=3O54~Q-2P%co%Fp#bw{_-&q0QWk_&)bXEvr*Jth_I7HZlgz`XA} z^61FHo%m^#e_s}R9p&(PRTJIRj22tG&XTJoXQ6-R!O>tIty$_u@0HkvnO9ExVh#J316e8#!N%tX4ET}G9E6VQ~Tfnh`2#PYAHSlzcbZQc@r zsjjhTWRIbt?iEqeM*#R?}t*ldH+?>V&nF|)1D5G?u}JI`%!ng zrud6?tn3YsL(6GzQjxeZTOO@r_fwgCA&qh!2g?WJU^>$e4$LicH@HV#rt!YyJNsXM zjK)|!bLbqBLYmucy1!l}GYLwG&&XygpI5?kaJaOec+svx=j80+c)^AF_{m81ZkC*k zokm^z)6E7V^g$!(KLOG`m(f|JUnF~f8I^^vqPg`c7%68je(%V+d|9(ti zjS5(}TLWPhF_1Wi<4TZ$ko^^hu+$+?C{jSvGz;4WX*>A-hy3eAC-6~R?PcC+h zgIje3j(56J#=IC**kxnT3C`@4>!R7(UTpO>f?jt;y5C<4E>^r3n=t|MnjTcCbDz?B zlu^t4B+Ts=&8$sV$3gqXLAk~pqj=W(eeif1yeI;idRu8&{VkEJZU*(#f!OwKE&bT= zk^cP}Mkl;=`7;`XZ*KOKw!Sw!Z>J#rffbB)=86T;CrM={pN-t>B`J@zp_0Ve2lgfX zJW~LJ9ZJmMv%suL->93N2R2?dM%=Nd6mU%rp5O1%G9xou|D=mLM!O39mLo&O0#IOX48fb|OyWV&{q6@kh z8evS1FN_n8ks33aZtpcf;>RF7-8Ytu-z3&xI%3_8@9W$lOCG)qYdi= zA<>mW^@s@~(DJ0@aqtassecMy$b{pW(l?s4(U`9N*(xIbn}%S{(al&9h#{7~sIlxK zw*L;n!Qct_+N&P|+BEqd{#VjXz0RvSr8 z*9JQxt*By-9#kak0G#fO&%GTa7m}ser#2FSMeHMxq@qVzxY#F2!pL1JnEhrC?QYA1 zPw*3(uDgahmi?g1m%fv~VKzd4Ft_B|Y008C0m*MaQq?&`?tOOAO=h`XH`OQUDPefW z{E@v|GN}3pv#RyHpv}JfZ|ddjKT2jM^I3`+SVKl$QWRO2i`z}cC^}bw#Ih&U=iCsq zznz4otG#L7d2d{~JBHcz=eQRVM$5+v${q5Z_Rou?eU)2C(aVTurB5i$gc%RJi9Q)! z67tMX|BqR_f#dE_(sMnsde|HJzWXTjaV$!WzB}69FoC;kceedj&|A1*?nftzJQ|Jk zXdSBS?S<$WxtL}jfRE#*qdY1A_3rE&@6{ilyK@d;(RRv}+QM!@?yFU6&~?sPA0Pfz z9LO&bOG}>7t@xSb&)Mlu%ayP){XO*@c90wl*h}%snAXl{lnin!rzO9WFvRC61>RRe z+Q*$D>hxjK?yyBvSTxG!g=4^lesJz(0R5RJbjaBoMn#^qs`0br(Q9)gR1bxIA@^AP zBB+7?2Gcn6^lXka&MMBLAB+6(ZLq3D=I=M^F6%~d^$&%|<9KQvf10)@n9^~5BQb2? zFp<7gfzQgaJy=@YO-fw9=yF8ty1frPTwgnfLlcGg$694AX_g|4%;b<dcgv)HzJRA~kO)ezSyggB1SD8-b^DbdVz@;hp>?YTkO3 z79Ac#^Z1^&ewP#`eP>pL!6hwLIB+(`B9|LDzt|7g+dfn*!IN*u{c#&%|bd{G=kF|Fq)e})#Wq*bs} zONsWFFC}EWrr3U#7^E+anTrcW=b~}6yBE;sXLq={Todmf+CawqjL?ltL$_;E9MEaDchSd>CA}oKQSUh?*9bC{29+!XfS>z0j z83QExb&!Fc4!+e3eBfuu!l(^o-dQ3Rc`+N|umm@lPpMoji(UaYX|vrZ_Wa(Zp!j2S zA~{+t%87-8S3XMO7g1RAYZ|_ly?k9}(_`Ci@C=)dVe>9a0(f_K{rN`GxrH5}>mBeh z^BhIhR0+)^(=j5R9j}dB$@u3-G5KCPGt$`y=gOX83}xr=Gb%nc3XVhS$vAx#{hm95 zXSxsR@#F=xCh9)LXNE$yaxgmX$77JOAqL!hA{ve@r|rH)G)Pe%+n=>iQMnnWu75*Y z8?rIrY${pZh(&I{ZYW-$jB3a0WS(tBvzP^ad`KLnFSp=*btHOD&cm0-%9uEJk9b(j zd-Gw}>6zjQ+R;bg#@}{Yx3^8WoGhmB%_ewr*bBanPB1kxr=g$JQK}UN+l^)zJgO%w ziGP=Oxu1}Km;9zgAeo;vg${@4_{20?IgK+yY9&JF=N$UE^^fH1ULQ=9<%~xYyMW8; z9X`xg$4WkXxsRI4X8~KX88H=>&E@t8>xwTWQ{Z?UXeSoazJ)*!oV?>lzNc8(Vpx<83f?ZOUIHUx_ppOQwd>_O! zISZP8confBD!R2;c~h$^=nrFoBbkyUL^`l`A}C?u?)PhB-o%AA+dBgtaJXM3ox z(7?W!rJ}vZY>6s+d*1g~!ijme=tR;<8noL4&5<@J&sFFB{Upp&Pes#aEtuR*5jzsi zI3E=YWiK;)(cyi7=R_>%WlXo44$`UHL3lPU0F`Ig(Faw&=Y8Ow-i^u3D$WvZ+v3Q$ zvt44`y_#Ng-!J%N1Ff2_OeeZp!0~D;!FeElj5dP%>bZ2x!yJVdrLp&%H5&hTF&}#~ z_4w65U(Y6zgBR-z&%CC$vj;dNa#o;xHSghbZ;6bN~`EE~j4UvLj zTG-Nem*~Ak0R;+=XqaRPMY;Cnzn42q8l<5V+)A~Jq;T*&=RPflKvL*V>HBtx@!fY( z>>z*K+P;7)i@s9YfF-1HjNMvc%GkQ+C|RHUC@!#1$1^7kvlf1)lmB@3?J{0y$t@9s zZe>vSK|%Qb^)B6tjv$R^-H`m1-C|?@(tUelZ0bRD?@B%?Dtw`jr<71r!g`3y7ipK8B0J@QD2<0mtWRRGW+aD^;#v88 zvgtAw`USOOv~4M^$PdFW&B5YHU;ck>67alaL0i_CNy6OnVWqo?qSra#!$lQlM~7qW zis4vbzlC&|?_rX*R=gkX439Nk@M573C3s9gNAe(SE?X!upWs6>!F~+xCng`&qxPX1=xe{0 zD%Z&%$?G@$7Squ8$4vS*!U3BHXJhYWo`qi9MNf)@AnOwi!RPiL+@ZSc%=6u_|0oh} za42yUnLl0eXWeHJ_FEmXW=g`he41qNzV{+)P$X)0OJKdl7HYAmCtd5 zTSL3J>e@oSNmuCPqij)n-cZcy9F47Ka#3v8ANvjjG4r9HIP39|`;Tt;^PnGcy1T&V zUxYX^HWde=Y!UV^1;^I#=i>Buay+OYY0wU&rZ*aB+EYt)!`O{e*_&$e;;7%8Y>F$l zrq$b(q5M<|`jI9Wz|U)wqV2ROdIep}*g-8`%P2~c42z~TNGCAIsA?*_*R}|qXJ)w8 zra||XEEiQ;KA76m06Qo&B4>an7%My4essp!y^5&g{die! zA^A4Q;y<};yl(C;dWB@dbtGqHd!*y`wzu@N_J&w;vXttXRTX^Ri55OpMPvr|oYpem zFE<2+Nj^AR8w``mAdwstN|)A`iHQfIpjRD&ToX6cXI!9t4?9S=R1F_ec(*!S3EjNI zF#hU#$EnQoHtqV9W}iAmP0YQ`h zxF`-u+b`1Srh&+J(3j{3cjx=00b*AS!QYu?aJgfLfF<3am^?{hpEm(X+t~Lsb_zR% zshp9zZDfcZKCy~458=eLDy!_WKaAU zJWOWZr(lNa3v1kdFdCXYwekCn0k#d90THK8I%7YOf0eR`ea1d=&k5LdCK0Y^R1&7QD)joN zvP+BUE9dZI)pSstx07yV5l+?Jrp$^LB4F|)NS5pubEZtd=rVR>{dhx}>k4UCOBCrn zO2gR5L5K-COGA%cA)}-^YH7Vnhc`Gw+G{rDGH-6RHhbx99!T~D?4`VDWx9B^A58iC zGWu&3Wm(7LP0Mx>va=U9ajw($(JR{R-vhn3a`y9JjpTHAchbIXiC@3ijl0vF`G3l2 zTA57di<7YMzXQT?ixoz;axc*$h~BDM;`^~I1a2%7Vplq<*lE=!bCx1+rlH{gXLgRi zr(&NHpjb)w>e?Ww(gSQ-Y3cA+cU|@g9S+5q5&sn^pq?3V8W8a z;+Ja}A}43jv6Z>>b73wXJG$eK!gXre|B-IZ-b;3z-8jJgwUKk~it5T?%yHW-yg9${ zdFCrJ7lvYf-FTWhRt>7Z=TZ9<_K~$LBH49kC_YgWasMSlx>qqZJ`dyB#zfNJ$LAHp zSWzzjM6xWTm^PlY#CB!&T=9E-Z$UF94Y3me5t}7)LAIPlm!rofgAjFe1`b@(r#`ZT zS1%pW#dHBlmRz8Nx)Q9{*G9i3*C};JDwe&9#uuOG^tx1ylG=RGVp&CL3Vqg==ZAmUD-fejQ~dDm*}kIHMN7`@3^QfBaq zuKsX@|EXtm^EL0y&-D_i6I>ykHJaA1GljHbx!B+l2fL_ylvr+x^&hNot0pc?LSBq9_E+mrMr=Nn4D3xV zwaKLSVlb}G0@9AHqR+Q=>C1d?3X2NG{98_FbmLr)(g{bC3xTMVIYN7PZl`};deiv# z`^eLK0s^$sFmm`Nn)8FRE`KvoxJ;4eJyWFEEAF`crCChAFay&oreX83Pt>&`3L9d^ zV0Zf*YOdHK^c4qUpWkC1i^`y=@sChET|v32qbX)n2HN`SQ@~pps%%x^JLDUB(tQt& zP#OfN9T8tf1VMB4PZ1WmfYd*o7m_V+1S^whLemk6j^Atwy!4*bJ%7+A^n>@N(Gt~> zQ|PXF5SA;Np~je>@gL$bv$i)@d{4pWQ~T-kslGx{)&VPZdSKof?gRemf+Qnn$x&qs zQg`YD6AgF7H+tZsn+*1@8wdY>>?QEHLo4-W(MtPTy}r>S8f1Kc&>e?HFaWIjwVy9rMX6Fb-NyWj|O z6%9E{&Ci)!=1JPhdgJYuP%L_41Ml;H#mD>U7&2rDdGv^ew{aX9+RrAb&4W;}{}(;h z>jHOv_njS+gV;@q=rf{#B<5pqfuFTjTkg_N@5MBbXQ_L?g<|pqRqlaQ(Z*yscyGTY zc@{Mir7tYR!)}{sX2EoJ!gDTon>T&`&)ayR z=X0Mda zu+wG6FdR7)E?!IdK>2wu9PD>pZ2fnLEF-(nm=gb4OJa>T+~S#h7QLojdDtHnZZn> z8zQp%H;UODiGA#v$hCM(ma{wQ!S0zf@lq&_nZA)CvaXR?#}4sr1T*m+K2mA?CL!lt zOdayA^e7?|e`8M4a+#V*oDPn~o^&%T)G@d+ULH$^CaCXZ9b{tEm^L&+0Ndnc+vB^Rv+Wt``)OI!Nh^ zHQMbv==UAog$&Mssp=jYI!Fd?PlK@YpcH*>SxC0seoc8;DAAD4A7qzYLcIrH6lEphsQf;F_V*q~ru$-t&_b7 zM#$*tj;`u+#f~jcL`~NMoPD8&4E2X(znR%w?D1B(tObMO=}#EZ@BcRlcc#v5lc!|{g* zKif!U3LAu6!UIX=ea=nGtf3ckN8;tnAh?Cjqjv=(@$Qm|Sp052Z6B`$S?=nO-7JlX zQ#tDv@sM6`;SN>!HOdlsFyzlucFQ`deJ4m3wDM%x`O~Q}X{+O8*kBQQJSLP0xY4t$z8M&F(BoRzp3!vEl2dQRjplzQuhHa{$ z6n2za<`;IfCSw3*BSg4%($M9b&&4YBo4i>Z`6|s{BAK8b1Js&ihevs4o3l zRVP**v6ncHOoqKh6r%OhF(bH*p4BfGT}RI%sVDu&;$l}AmrTZPnJ%~%u~Tx@`Vg)1 zRfA=}X!JXs3;UmE>51+~+I?Auj8dmko%>y~R6j)V?b?uza~Ityk;!qn{Uwhk-l(J(?r){lVSMkF70vZPD^FvQT3A<`f)aN)N2}S zgL}YBUy2?E%E2)?2brgyl4NlWeRSdpD}Sc~KklMqK9_0H#T2^ow#;$2yE{s2{Gl=? z94|IJ7I{H$X=1)A4$kU=@H@9D_8)tLZx~=iwHFR_W9Q<>TnwF`!M(=mSZ|w0t#5+i zv)c;C*wv)@(~VA+nTkUJsS?ZJTDtopl!lvopx29qRGa38%hGCCzvU&F&b}%dT(49A zr3TQMc8#`Zhv04c5wU6Qa+>`l&GCZnVp1(rgx!&46eypLYdwC^*Jn>-OO7aqfHXhDx=ing}GPlp|(!x@T}D~h!B)))%0$UtOdt>n9f zCp?U1;L+A{vJG2JPZmq#@uD6W^V^WS=9BPNO944H{9N7P1;^H7jvXP&^f6JJ`u})L z&AU3O<=`fv>i$v4Z`dVvA1Acj*hQEAJd@nj8;1HGjx^&zm581<5s5rozv$?U)iXEH zzquB;*Qkdlg=%E)wv+Z=_r{_$JJ{~>MO!O();Z(UZ$F?mZBjFpPZ4lgag_JWP9QL7#Ul z@4lR&&~8`At|J{wc=ldDsYdkctR!M**T=}Eq`6I6q)aiSM@9Fk^-wrG&P|uZwh<2U zJ35x1o9~(w#87GW&dIBiLIL->zPmv7ssa52^B zz@lvxG)GYtr+DY#@MSBF(bJ~xwG-g9(OaUjJB(_Q5-_t$gJN_BVqB6LD)g0LU2%>~ zC)px3IRr{s1E^t<9<=NGBdxeuto@KKG>`VjX+NIDL|mk*sxUBf6LQa=EO{LnPi z10al2wd-pa4F7dE>MK2S0dDE$Mb$>GNdk>;vZ-6dUW{0;h8Swe2B#w?mZYd zv%}XT14_SIs4B&gj3&m@p@I5zePTJ8wZ5ZX`d(CWo4Xm}I{9)h;ZyT+y0iKP`HWad z2iok|-PuH5hc%#bHV3<#Ez!uce;X@P+N?7evUiTsffXr;j8h~n8DMahEZk;$lk58| zab?{ydbHVyCM!44qJS?#Q{MnK^IItXOPX*E+)OVTE#P2e0EI)m$EyDzS(m2->CP+S z{1F!++j{`r@-U|#x^v0Jp8I+O`eNUXe^hvyy;s$8RC{b0saJZ#)Kd|)0lZ)I`$|6_ zmy=Y2z|#VA==qO8-Aoxm)NsmK-ArdL^8Eb`yLhUGV_DaI;?tg2)UcQNxZLes6{LYR z=F3IQ79&h!PL0&X{#3a=1m>G7X;r-wwOoBJq)qmU{eRX`ucM==rcX3wbmf_qzl4TO z^F?r%W90sCw=kS?k;;$Grha!apt>{$@1Bf7k@+7oO$ovS)32nRJzp|Ow~%!C--j6J z;atsFOy;h7m$N@9bH`hH<+_YKYOV3oB@u}y4%4o>!B}Myp;iH^HZtcAo8u zBNdBDsrO|%E@LOD&>n=|%`$j8#6-BvE|=^ayi+n|@gLgDz3MwWTj`wnKq51ipdgXQ zt7d`1&>3_|!gmDDFGySQcOkte`mQ}Kc`fCK2{as`|IDy!y&no5TZrWs-ciL*_GLSa zL5)-oD8wjmzsDWVatvtW!6ZrxVvqAic4RNGLvV=-o~-etxS~(=Q^gE*4~J0mizzf} zUo4WQO(Fj;5jeK*y~Mm{9BFziqC@s$u#7upEe~&zUy~~2R72seAcZsTj?`)4fpN>D z=(|}m3P8J-DeTYo5j+e(e~%2*#-fL^N#sWtwK@Hn)ON-h?Pv9qUO-gY(A znvO@%Y&jS?q~Q6#`Q))A3C&04#FUUEtTdmD;XHpHYWUrxtYc87)9Zc#FwcPw-4#I{utlzv$k^4>adKe3T)YD{r%rvttlYv8JG zZzNWah589aIF?Su4^wtW-Cjk0di!ZX(tJr*J!jk>8%3|JtS~M-Nn}*^MRvh)@nXIc z@@__;-}D^vO&E(A3tPnAUV3BN?wV$0c3F-f_O3bJg;;<+KbH3wnD>3p(cR&`=t10|d@ z5g&LqQanErr^77Jb>eKH`XLF23lvZ^dJDbwZ6VVUT9mT2KOH^zSCx+a|f-LbcgPt z657B$&D*PevEpYpVg36Ut&aUAjx~XVgUP36qd=-4g?tA@^+B1itI8B^S*!(fx2AER)_qb3f*gv7{$eznzGJcb8Zl zZifS-ZTWj%ML*icla@blZ_rALw#$T&_CpnS9`u#%G57H>_^<1VM|KsW*AR7>s5#*C zS7o%NTA?yv1Lc(6rc(7ZjGps>{^NM%jha5<^UJ|dIH7?{Yr|lz;!R_nH8H(811esd z=qqzoe>yAUYefJB6pfbLQQJtab~fzQ(Zi#cm2`X`XT^8*VN48Hy&pi*R>j<7Lw(SS060l z&P1tmFx(5i(&8ayR3)blZ<}Iq=~4vF-St5DfCl>QpMV`6C%8}I2*WM?$@5@_SX8%# zcxwSW3-(&EH&Dapt8jif8fwf}vi3YrUd--`bCKh0nF^T(^rso;1|t1~G)}t4!=+^` z#Q0EgXM-CC{pW_7DV}unPb=-Zoq&M!!2^v6UPq>}KC% zKL1VsbP`>r4abH3cPaMyeUce6momQR zV78YvUbsoo!HzUU*)iWS=bo^R@rCY&?)aV;glXH4PzyT_PhSs1KQBw zY^I)Nc1R#!l$)pGc<%(PU8hO(G7ufyMKY^fN&(4dL{hy5ISfidz|K6;rr`%yFF%Cv zEcx>L1{%AnJDyD*kI0x6RMPz+N&ntY)ntv0KBjoQo4b$+v*<~30qUiKsXynZ@++k< zqedHFF8d*B?P*cTnfvg^qcE_`cuZdZl43v0p}H^6GM;ot(6d3f@!Abp_8FwPRGnE) zCiu<%%u}xy(wcp#)INR&Wo-K=&K;^0S8V&!7ZYo7&!!)F-*83h!KqM`yG|dkYh!?U zH>!3q!oI#$bkz7Ko$Oytitk3Ec(Dd0-8@N+Ji}XiY9<9zK9+7Pp(4{f47%)rc@h6; zXO|pwcpIYVwJc5zibL<7pTv)XJk;r}7vcBLh#L{+s0#AKmN8XS$DiNIJ??lB&9h6T zA7r!N7*lTWY<5{cacXt}!g_zAi8{SdzG?)%v7_&PA@cw}Y$b!P1F+8eCEYKqcW4@_ ziPUChMGQ>AfMjp%(i)9CrNeY$m>j~KY|#bGePgHARy_%(-kL~x+2gSKRx9Q6@7z}D z4GjUG{?6eV{%1_0P3jS_f?JkwVX#jRJ_BF1#=9Nksehjs(wTpamM1yE?N={)%{;F*=K{z#xZzR}^QCHC@N827 z6;FKQcM$^9&eUw(!>R))~E(@~IbT0j>yy`g+B6AgOf zk=VAG`e+&cKMQuxX`XrV%vhe;_gAM3!K-r{=%r6D$RW7B)@3zs)SbHQMNWm=k1Jvu+ z0Ic2BRk%EUO>++qfX1B=Tro}p{p&3mJa7j!c-x`qGokvj3Y7OBq)i)Kgl>OjXjyEe z@Qf^|ms%r!*DtZmDUY&-uc8on39L(8(Uey$3~p*VMEo9sh!5#F@~oXko5$e0#}T1g z>xW^6oSUDupG;Tt{6@u|=JZk)b@T3tG?!+IyYp4V{K~z6f@ylE&czNbqjvD3u;uo>7>GYC2-nFlo`0O2W2L&fntPSjPv^_2_y^&UZwvJkLy8r10{bBO-@+ z;_A&a^qbkS>#u~+8r~hRVg~QvH{ZplHR|-$kk4wPOhni*QzQ->M?o9d&ukM7^~N|{ zy0Dlmr3>gw;2qldb_LHax}(2`JsQ`@!Ym>VKD{PGWrPj#&JROc{R_IYzzuUkmy!GO zKuR-jlf+XTOl{m@$exv?LG?6aWxHhFOn!Ie`am<)g}m>N!x)bua*&Nj!m(c1{!5KI zrt4sn8Z&JChoSVbz-0|J#L8ZvJ0<(*ZM7FgPq2i~R-SRLmO=lU0jR6)!x>c{sI<0| z(%-{0qpv#}HMFP?Kc`i+*^~78xH!{eJZ_ktA=AMx=;E6j;&qA+US_*tS@dtZI8_@F zFO3lLB%T@vPhrM&C~}o2!&*iGlfOiAr@x2_rJBWzozjN%_`H_UQ)Vow>p~?Il&MORmO6QNX(b;v*nBn@C zhKwDF&x<$G&Rla$U(y2uSJWLl#2p&(P|h8%b5mpYApKqsP%6xYx$Mp-w}*(e}U)?PAhMxgqvNdr(XH z2ii2p9IM|Y2%jsZ;^mGxNTy)IRd(Hv*UYpK9y zt2^Ev2fBJKrSQx&(w@FaRE+40$FDHB|Yy>a?#Vr=*f|&;@t5NX09hJ zU~k&=>$HAX9GRZWqi%|YwD92!+>nxo+`R?VWkoFCr?W8o-z|FRf0!<_3$Qt43>`4H zMY_~QVH}lBFPcIjcl@ry{ECa@!fesHNipzbXO*Hv55GU{rJP5K^i#ncox^KIJ##Gd z_GV#VS3QJiR!~RFJdt6qiavAikkJVnnsJdGJ2@@%`;rnu>Nir=Myy3>}2bA{uax03eJKJajujNG=K zWPSzMD8g~MrAWMHF6P0=$&_U{m?A!WmrP7#KRYvZB)#i}UuY1@~I2FcThoiwA=62pQ!#E)|>coNeM8uIM@v>SpioVU#$z-P3Yu@qxeLT*Z- zsF2zucC(Kx`9~n~BX5cQM^=gCT<@DqHI4p8u|CMrrMBDBt4eBXN@+Hi3W@m(iUCv%-6F572jV#(HLowF~ zGOe>|J?D;gn60O2Gz^OeKcs8FJ2?9jiaK*ENuASP$-X9TueH?7OUL)s!53r17WajIX=dsm;{;#VQhx$AW(n)e>R zuGu2SCyNUG0`O>NZ!B#vlh`VMqWcLlc#|HACvW}Hh5Pp&KK{7=)&YTG`yEPGJ{6;% zt3Zdl^dsLXp*}p6s>a`-7{AM;X3ef%g;GkNt0r2HY^FtlaYzkl7YQh)XAk(E_wx#k zT$7CtJWudHIUFrj%pPfFHpaJiH0`?|q@6ACGo(Ahn5o;?Ed?)k_olB=>F}+5DXPzL z1~Xq9O&Zt8=*mcVYF?yQ!y~zOeU2XHxgqu?_eHPGr}-gD@bL9Q_PGz_B|BKOZW)V- zmmO)^{V0rL#&Bv!J+)X{;<1(z^m=TdD35&HGGpF|Sq^gNF_-_54BmfzM1Rr@Q1h~w zb9Be)RlExdvbc+?;tqwUM(}d7hL&x;c(Yp`9a+V+Vr5sj>u!@=Kg#`16Xq)RaU&03 zKU~o}^QwTlSo=anrpU`c!4b*t$9fd91CR%cx#dFPb)NSN3A{!^v?^X~!y5y65K!0S# z@PBXRYZ_84q0>K=@Fgag&IMTE(V-5K-p1^=e(bSkSL8DJAvEqGXSKiVqiLS*G??dI z?-$Er74mJI^^_Wq z@VQq=y2cxsGZLUZ_AV`}GhrsDn`klT^Wb7VN&H;!*o8wj7(FvIF<~XPj8hC5vS^jT|PR{5NP4k^NGmJSw=S+!^l>xnihYGM$013 z#atZ)tHZJ|&@;x7M^#i`J{B#43U;+No3uV_Be;Dw-tc|)?Df$-Shz*0{IL8*N##=B|qZoLp)irT=ebCnQ$^b%FqZ6gWGF!nyp z9>T7lS@T#AbT}zO@qz~|IFDP}E{dObZqT;k+tjg~d$Jy=pvg`iSF=hXS3XEG8YbLJ z_=ldH<9-_D-RzZl20rTA8tuun>CZXZaX6P<*G{F1 zV<7jjCbWhfpby^WSbjs23jUp9v6qj~Z?7JzJ~stz;W;!;H34-IiWvXH4x|+46nFnz$UY_-_Nr-v3J7 zV`MP&nIY`@@3UvGrz7q0YzY7QO}*I24jvyuf4KK)YOEHOJfBCd@gb0%7ljVqb;xb; zLVRWhv=12KL}erv>vF$eiY}T0)N$bHJMy;G!UvceMzn3c_hcxJQz z;6&&(aaXFkIJ9)8!Ti7svIyNqrLG-JuhbY%+#azwFMc=R`(b@wXM`$_fZRbbjC|fe z?ULOB?F?099(YQ7ykxQ5yO#X7s$!wlH`!S8~a_ffW X?jx-ls9$?bYoH=JNi0VS)L^Kdq;VHPYFM7U0~NsFOgeD8az!V z;eVY{AB@d(hy%}$TY;2;23m*?wRxK!h&GVRN;5@{^fM(^c32^Rtwez6ERs> zfX{9LcsEG`H$Ft6dej%e41UL6^kX~{hB#p#pT`@>-K6dQJl|d+jzc?2aI3D3PJVks zhQ)*S8oN_)kMor;_j{qo+6Y@_^6ZErpZVY2My#eGK<8C$>2h9y~i6 zJxuPQ{NhfjwYXA|Zw=IpLS zU+7$A=-XGr?1om7?~R#g88sRo-^d`>k!K+OPN9(10?hiem||12pjCXIRL1e{f_W6g z-)abad7d@@Nhs=V9Uzsqi;aGJlsqjs<3+lT&RUz0Pp>OH#+qX27axJ=#!Y0{UWAVs z<2YZ)7l)iAvBSX@6EoAXWg_9xcSoX!bLo2X7Iw2T94oC1>7t%JlT_Kr1R|HH=2s|K zEbq_viX!Wj803%4qk`KB_{sN8vG&uco^!FQu5h-De;qsfXgi(hHbUFlC1klOg561W zrv9cmwDPbS#*}-Y@2@N@W0%mTh;U38K91s~1+dbbiaVXkc>mD@S#@D_PR>M7YCQtI zjt!&`*hH$Hg^+N`!@|h{*#2=NNjPNF34a;BWAs7a(amhbYd_{}t&dMVt?cmTSF|s8 z94pM+NF6_9uh)mL-IrS-&dtv({!3Gg?NR ztVc!0{63nvfy(|xBj6st$F&+D^VC9Wk5j{)B?np0UY=o@Fa|SL7{g#I_rmJUry7+c z3|9(-_S{%H=a|EMDqL)6_#)0;_D{mX;%6&MWSI_T4}D)#Nm zYYOhJroC4Q-N!-^Ba)5N0daUfn1>z1@6myL&hxzcguYnF^Zxq@`ux!vGcC9Q(e)I` z#Vn%bhh@-hxRMSm;CU=>709~=L03;1OL^ucGEhx$Px=``~gAdbD@lhGYxysnv_m%nu zs@VN^IaQe?BY3SFcSM@|bm=}YRh9?vH=6m>*g2Ev}-o+ngv!+#2iu8bEPgDEH;9 zBAb*fxWohh9EDhd&Twon^+KLrAH@etp^7*2Q~9_&Fd3KqYp616ImvFF#X+NP*B?%Cgj93D^6tkiA*o9~rX^pz>1MDGHSXsgCs8R}5%WZF=16QiG6811 z-_U2_gdrc25x6gi74U3C_?A>uGWa$ zeJ-$TlICu)lVlgfog_S`qcm{>RQ+`DeP$=~e2`5K*m!h(*Tt=G-sJN`fFC{Tu*-J= znTcb>y>xt0IZUa}Jg>@kW_mn#qO|2d(zP51$8i_z#paI`w9Q*ddRmKEQ1Ba)t5?Lz zt~YGI;RLt@^NjiSnRb8fFQ?Ru26Ff}8;!m;xF3F%CcT!0c|bW`*mj6TN=?SPcaAWu zh^CT{?WAU=hwHES>o0ePr)Lc2Z_Ng6NoU3H4EapYn{tNyBI~@>H1IT)8r@tGXcU4a zcX=&+RTi%B9_mlAKvu|SPVT(-nx1)p4pjtk{*o5j6ZX-3*CjN6*nN7%x!U)SRMBEl z8@j1wh5FZ;7}2GGcdt{Zlh0y5#?7Ix1GyM5nhgCWH>?~nhh7G@lFbx#d}}VF$phiI zejpmIobRvAzq7{;8Hu*u28wX&r_=o@^!i~q_9TrZciU$6ZOIe*B;v#GuhBTu*uZvm zE~eM5q-0@iUYvlW#V6?9@)q*Hl|kaG>=0!7lfKO0*?c?x zek@f&+p#CC(qtQb;sjX^*c7jQjOq*u0UA;&ZB{ z=5Hx`X|jF9SrbH!_QHzrM!P*TN3s(e){tqycX|<#gOf{?p&v8}uRRp7;eH(7|BABX z%hu5Qt^=fU+KH}5cF^+5{q!?K4}Vx9dfHs!d}B9Fetwnwk_s`m=M*z`zE5RSEvRQf zEpy~vdGUx0tXFzX>Rnz?s`-zC^5t=J+aM-w8(FXX4n| zQG6a(N&BUyvF(2zvUSPkG_Y3r!(YXRAPPNIzg9W12xB`xFqCgIgy z+-H>xm(2If=Uf2FPo?4UF`&=X4b8hf1dR>*DCOul=#_n^mtkFkR-H-MlA}UA7KgYj z8_ogwNUBEKs12)Tm--bEZupRypIlC%jgz3RmqANzXuvf}nO2Yd%C5I05Qa{`{@6?;^XmSAT??M6&~f;3B}gQ*gK7~E@eWa(U&wuGycVYg*qrCx%C77ys*vSef* z=j>uZxj4>;Rm3HY5QO(}&-LO-Fjc6hK>I1kEK|hG@F3DQ_r$D9#N(Cq~DLct)ggtKj#kc~rUc5sep|AYH2> zi{ggCdRo2X zA$`=4gy@KQ^kCHlo*jEb(gWOo)hdBRo;4lq+sBsNyU5)1`~}zc1dt79`a3z9kd@B` z%KlF9Jm^Xub<)_@YJ-z%ahSw+^dF*s)3~RLs4dY=z`ZDR#gk_OA9mBKUp}ZgP)o)s zuC%JziYAO#phc?+u>-1T3X)+?&eJgdy9qv74keFjWjOI?czG=E-o7ZLrhGn|F`veJ z95*SmCYX$l=E3Ze4O=FWM{f*|(wyn;81{ZOx$QYmi@L81gtd(jlc<3Mxj(5_B^=vJ zxMPK%vy&fwquTem=uD3yr?uQ0_MQKXjvG#?OvVdMH#*ic$QG@=#p0JwhRq+&&5l{f z^b>+$-L;J*i>1*hHxp{F%y8~qH2sxXPb)1uNk5l2_uoqf0(QvSz z`OYY$j_$*3hT>Q1FjvI<`<0aS@*?@}H^z-+e8!z)jxkHBn9BuQ8qM$5yQC{=)TScl zy<`@u9edgKr~E8^v=AHba__IoQz||-1{eH3(&q3|n1$x!Ld6w3iMomWIewBmae24y zTs6gT_A!?|$Y4puBc#RD$P)NO%*S*+Sw4jv+PGg zGqr6>r5_J?o?6-rpF|$97aUpFh_r?xCsc@@K9Pgj zP^!me+K#CL^tcRPHbUqc)m{!MR89_t&dP{BQ?i}mD)IUJz+Vd&*lRMLUr;uEa5WU^Ijf}lG zFJw;;UFS@dy)OyV+&TYZwJa8Xm4as9Rl&z;Td3-=4fl-LLOp3VL;{DA(Ct!K?Kr^} zj{Ze|cR1th3nz3e6UEo%8|lX>-t*wTW#4vRi0MzI8-gSVJzCFhZdpMh<9KJry9j~P z>!|KcFcz)wVF7cvH>@g~`Y$Hn$?1vY)MbqlM^$dP;|!7=Auvt0;?E~-*edgG%bW2~ zo>xI*hj}Am=VhvF^uWJi59pj4=e7sUp|=^WbkS!mWj*8k+w=VA7rvn8LkZA|R>t$o z-1~J+iJsh;h|9e>&>Q&2p2#>Lg)`&q4q3seW*FHRE~7H}PSRE`MpEEDYT$XPj|11p z*&!YUX4~o05YF29V2F8HziF^h8U>Pv$a_o$4NbIWRz|h7${~y8_b8($x}J0g3fT%{ z3yj}8hO;?U(erOFbJmf=BmVjLdT=UDPE^LE#}BDVc@vZWY05h^JgdQGW9|gLKed|0 zJDDd*nD-_88gmfvF^r@~gkwjSKECu^Cl$_B{rLMAZ60G!IWC+9rdLUSLKah5a0Ci6 zXJJy1H@bguFYnzxy59DXj4pCFRD(TKdxxNOaT=N*&tpfva_;Fu7fgH@h(qSjXfOA& zHF5{eDHh3U4;`bWIveSiZ9ZBogi&kej~f|IIMlv|i5Z9@=t(=xD5;H{x$~_LVC%6u!42`eM;xwwbI0;eKg|0U%J5W0|A4ai$3_9e!ZT8T^g_Hnxi~! z=gKZH>Bs?e24l_5Ak~^qO6AZ_Kvp- zeus^O=?gnL+M|c|Mcb)xnF=lxTl0SOUxA4ox0*r(ML zS`s687P@|5I6J?OI|8m(2;y&VAhnO?__?5h*-vsn&L2g-U-5w0rk_m2vW(JIc+Q72 zF#3BXps{!(9fIO=+bJch)W0NwU4(bcfHv9z5$M zvz?c?Q+g6w)QJ_gYf^DU8(BqaU~Y#FTXipvqVg39qSf?=vo_V9J)%7B;@j8ql=|d~ zP?4xkAs>0~D#e-i7D{n#1mQ{TF}h``i$`OXaUg`}Tl;)5*-{c+wQotDdok5kIl)j| zz)G945PQsq#yz}8t+(uPF4u@^U-I9VOcEyY^ZSE0x9D8PHzxYngIy8bERfX{M#PdY z0{dTSP71Pv+rIQXk2CYG71f683$T!I84h^j~oz<_PmnFVCCk^E;w6 z0^s=NGi9EsCx@^J5VQPaFD1f#yu)h*6Ne4Z>2yg9EWN{Ge@w>)8)qtYJQW1q7v-!6&OA@G!GM1Q8+$Vdz9BIb^{JIGutc!gVj_0`xK5hJ{5e+4o#vj) zIGfl>AS_kK`Vtc;av&LcUKX_L_$P8ooklmuhCryF?|DsBN##!%44;*pzkj-aI@_)X`Krs&(D(BS2QRP9CKj~QKKPg$JJisz@&{W}a>k42#UfdWRXP{&8D#dLRJD9f$dN^^oe zV4b{=%yW-3!x|YjHt!dO?gvgTT}!9$v{UEj2-?EAN8*ns;{f*zYp#r=D+kpvt&4ZN ze+MEj)D`=7nDZ=eD#q<=qKn?#ttbAAbOMGV@u>+VeeofqA>(nXLkDxFMKi&1SseZi z*l&Ez9&VY21sms)&!8jz?ahVRNV`EBxA?LZ5fXu(0zbD86Ecsy%Y#ZsUnk^A*H6i_r7s3_NY9rbk!run(KA z(3?=s38~Y<)6LQ79i2y;CiYP(?=b21Po&r+E9?o1WY0!Ugof-Y8ur)?hQ;l4>8mg_ zKXKp6Y3>)uiNS{4@-FEr+${aL>)1`n0qt-Xi}f;ENVTl zg|#Q0VmjuGs+JmJAsd4EGB#Ly+YG~c+(HNbIQu@41&y_~mT+kj+TUEEsRL zw2{J%srIj@^Jm)?eO>@}pkua|Y0tJL%=%Uh9eFiCrF8+QIJ}Ci*Yn&~SUmda8|~xw znG1O{1+%#SWaj8Rm^*UcR_<6#RxO~F3dfnwLnX)vsnL5RP#b8eOCTeNQM3(M5(u@s8R)+%55YK@7Y!fIo z?zG?S$@lW-{*t7yJzJ*4xmTOVqvy&1h5H_%e^zDehl>zKbFOT5xGvQ$e#*{R8R6F5 zaMY-ZKw7AihRA19#~4jq`JBZ1%|&3Xa+5Yh8qvKG>bUlfyU_W}f3PfA&?3Eyek;6U z7p{mREM6MA>t*R!haBXarI1@c9BSWEP~RPjW1T)&XZnN*>!hMz&_d-W2gr9P??cJ2 z;eBsOG+*OBt!v!za#kHai4d@D8O(iDU1t#{%zV!pQoezzyzRF$aXp2jl(lpq8nQk|7m&C(|RLFB(!{ZvL zNi7p%F;D5z3jUmb?~nBAF2U0!n`nA_In7%;5f3xMuy>ChwjKIQNyPKmP094nglAzI z9bqtRD9(lKrpMe>me21a+TxsDG%yT@Up!>P>jac2=7q6GWU*V)4vI&V$jdnsD{X?X z+0Gw-GqRD!dn0|Pb~DLW_7J(Ehx!v1B$9od&3JD?<`qt4V)Bwkzs!f-k6Ac=&H&4K zAF&~I7b`lGjBY(q>Qw1xV)HX;SEnvrl2|KPCHj(Xy$^wFpdH3V=VSgfRs2}5MyH^O z>q`83eMp=4@%Xb*tVYnLUW~`pHv~@I++j1dg9$iu3ZG2z!cBy3@}0wyq!d>ECJUB7 z7qXnZH`JbekD^wzv+~M3cFI=`c1d$-SiopppY2J7XEn)3D;?J3zEg@Z-#Kq`N00Y@ zJI|l>l%K=rRbPE^cAFU1jLO4Zz6a|+6OTiw8gQD*vwBs$E3;G!nkIMYlhS3nvd$9y z563g(OZr$$b7*iy9i=al~(l9_zLd_%U>s%>47l6C`T$M#!xhWc6f7c`moK;cz@_0-R9q8vD${zRv?7RvXS`J z{E$v`tK&tUD4E5NhX3DSR_W1AO?UbEB_)~ayAzN&F9~MmkuW{x&PM!FgLxTeO?NiZ z>Xh?>xeIKORb33lD+;vpnFU7hJz(TB?t^s+q_p}5dahRhr@s+`v?wdgNbjS)6$P+R z*2HArGZqj^$wvi>{~e)(a?b8EC=_hqzk9JGx%hhFfxvc1 zKRxdYBQ1}80{xmwTDX5XnHx@opKu;M7WPNX)i?AsA|3}!I>~&$HxH6Lqt#JKuq(`F zLtl}8kku!9DdQ!Fuj+3!X*d}VaVt}_hN5lP5F9q=|-cQ92 z@~Ab&#&#{v{76T&$P^^jEMv7bw($POose0#Y21kEcUS z{JC(NR<29K$-#Isb85RcQ(R#_*e8*Z=Lkf($l!y+1=6!o zVq0{=8KVpw4-cW~flKKCXKqD)s3RfuG<@b9ugG={YWI>*n(**BMMQT~pQt%>g`{z4u?*CvKcSq(y0GmZ2JtJ(i0juDMBF{Y zhPUP;a=SE%UyVXyW(0a`Wnk?ZkNc+UiQc%N;-DjxoJH{RuNQty8A+$J%%L2&i9Ser zBaDPGV((NOPf}#^iyJ9RK89KXOc1NU`)+qva{l}l^4D;Hfsi6g-)D(5<@>DERGYPY zsAZpPwvtO?6m2^$Peq(>`s>$2GCY2RvPZuoe|ZzQ?ViD`a$<4x#c!$?(Sga<1GK$; z1}1&!p_E@jm}7C0eYsVNmHS51G8=Pf+qmO|pn@g_0?5jYgZ1T+NL=DWXJ!YHg6v+-RB=Yv154ccAWyG{8$vTX7Pd7Fq?Xu3 zx#~%nZ}MAk)u0ruX8kl*bpg9^Mu3lthT!}$?mV9Mkf!r2)BMR9*xYAFtJQDO9%DQzvBYUauTJzvX|J9gaf3yDUEGeFp+d6 z#u0nMovuEEKn;A3yKrpf>=xye@?1 ziW)((t%}^UmXm!M=OC5#(d*aV*eNTGAn|b!_DDg}`Wo&?`$&;@9Y$3*SPsZ6^Bj_XsL**Q2REAE$%6BSQ z87+j2C)a50WzNv_N)X`^&V?QM^i!)k7zj%-o z?OK~LHGgi=HcZ7xmlT{G>|-Z$+~78-3inxI=nLaJhkLsz zM5SI3eB&^!;91)dkCN!c9T)7ad?;9vDU2<8TRH#W5IsgDz3m^MOX0=n`0RyeVk|XW%Vd&a01<1KxS>UgVv4u!g**O_%drIHkb#|cT+E#p8TEU z8fwVJP!^-4%n>w-(RkxZnxMOf#QXH9VU!3w?*&ld<$Ugu6-Dc}R8-H^XHMkq@|AKf z*<+8;dP@H9EbB|#L(j?;@qV%blda(Xi*x?SUSvUw7AC-Dem!-qzr(V)5AoBy0?xMz z!C|rgs6IkdpcpVfzkT!Zm$ShF=85C#99i6P_QeL@kK}Ur8Ld+LN zR?(#04jw4(9*3e~_gM8DH8ih~K)H$)4ZHl744#zIo)*s8(2#)0Cq5fWi-pz7u_)C}$JH0XXc^*# zSv_uu;(hUw3R^Ur6wu69X7u}MB#d4~u_dCy5Ir;s;RU|9eou%Qf6u@H!|9kX=Lh@z z?l$?%TSHoTe<4~AMI^2;Et^YydWeNjfu_2V%%Y8-Y3i_@b_ zX>#*!rx(Lik#Oc2*(RSN8THq+TRw-n51C@wl_;id-~pHQDX`wFhM1#_SJQ_;>XIhR z{#~GD!Vf5V^>kK!*dF(9tR#K$63Q+T$M~Z>ZzRqgKq~`ab#W~Evh>Ne`5%cN_rvft zTiLQtBd|PL2?LQtQ`Y7qI#QGFJ#VGF-RhVt=0@9oG*f^2a$3FK2%~O4q|Yz2(Oo>9 z`^YS@eD*Sm+Q_-(`Qp%cpaUtte%dwC24@O~V(eP({$azA?{Jk3Ogc)!YvkzroKd*j z7(x#QU$7+Zd9Ui5imAtw&>ggwszlDw-WEH-msxX3PL?~qC9G-AibT2~6pUkG3n^G% z7(W~pu!s9OGe7gp_-St#S{jX1q zPQ$0|gKYh5eN0P#M1POnq6tbG&<>x0mGc)++hxuO3V%o*r9O~~OJ`@@%4zmp1;j`n zU@QE4X?h9I1-uxJFFcFzd;B*N-=+^~MlZh~y7U!t^n0wpwQe#t|6E6lccq|iVgTZPN^M^?u8t7)P~b>elK$VHG=L&y=9MD^kJx&2LD^fX&gOd z`(AVA#mW%2c&QK!kA+|b&(hhyYon%cBbs`P(9wT_Jl?LS#rLKo^qn_M4rpS0OEk^S zO+?keNXUhKqA6oG)1$LGi1I!}?n-SeUi32=iiuzt=Lb*g`9=3muA-4au{0>VPavCF z3NLXfghyz=@BAOu+c1P&mF#f*bO5wgxMA1>M`Q-3!ms&1vQHQXLEJ2C^va+gM?COh zd=%2{x~Pj+Gj6jUfg!7)UoIx7S zn7#BR-e)%;rNc9^&Oe*hUsA+_j%74*!#C!y!0*+~CD^ciI7*5i(eCM2DebR40?QKN z>+qK3LbZ`qBTkBs7E%oVI}Sge#C}YUg}rku^okv@>|!t+56hF`lSlONpBCEY57L96 zM%uEnkY;F2z}bhMxOW_wYudxEEwVv*RV@3Sa)vHz9%N@OjG}Xwc~$369b4Xbgl;E9 z+fQ56M?HEn_`Ax2Iy_#mSI5OLb4d&B`aYFfon0Z4KM8GDBC&bNDC#ir#Cx7U9I~v3 z{*~}9VXhjU8aQG1no(HbeSsO;-IJjSWNa(x5q-My#{hJ<^*^H(s$@fX-y)wmd2FYDZul=Opdtca@YVL9HYvDuJU9^4cD^?t30m*eGtcT@6b36A=j(aW$ z_fZqf@|uL*+$p4`I+;`xl#pN}jvwL9IJliV_Y za-xSOj47mqb5r>_^D(=6GmL^~W#vvF1_pTcEk?hJ2R=DvqiEXl@ zX_JQ13H>qDwKNko`M)TTcPzWFmt=$}{(wP0s`pZ}gGESt~z&sKctTgv>)cuuO9{Gdg#ZPA^$OPoCJ&EX6W5OaBl} zH6Dtn#e65t`EcW(mcYQz41Te?d>7}9xAQGfdtn?7?)k;C6HZaxg8&?`{Xtr38>!rH z6D_dWa+L?JlR!e*Wy5W&}ywRnobc8f@<$Q*>=DXJ1oop}URed}}3e zjDKG~auh|KU?QdEPr-?rD$<-6fJOdM^!}p&Z!5;ql@YP{Z`~@|%Fq3q5BN~A#S9wz zcr!a%zLrKg<9!dhjV|B#RIJr%V3W;!;wDhQ+# zX7ckT@Z^Rh0>2hfjO`ed$-bvvJwKHB+oQKE9xn10_}V`Nmv>oE_M&ObnD+&u3#URT z%Lf^@2WUq0WZYE?gR%N@R>aTdrkhKk@^O$vn)nPV$_1G`8($pdW#4r)3xD5lWREAf zVT@WVy`39EXRaJ3an3XHH*mrJFe#G48u~nFOwBg;NqSzR-~eY?27L=<2gcZ-Cut0& zEFQ~y@Nu{}vY7j)chixArEKSA18g3U#oKyILC{`ZRC_64&FWJuTF4b$JaeHe8i}{9 zwWQds0k@u|f_a=vkk=guml%EqN)5tMiC6URx*K{9)zOi+t4UTa5x@8>>Dh#SGF)+u zm{v1wIcdcV4s&mj#%@wlv*C9ENxbE+b(rQ{dT~aEXXMcIFI#A!4^{ghybIaQ*1b}NsKAc>KUkHxeI|V<<8!fR0{%JRE>qF*Sm{A@`dthv z2a2)cORHd&^EBFRAO>Pcl>!!T0t7Cd0Yr4{vT{Dt>-wQuU#N<6d~L z%AKE_k(CsiO1fo!h*m1Zvs3#iXxnR2yspdLy3KTve~z9H_r%|O6|7xl2U$MJM*ooM zXmcchRNpSm^RuqYux)Xl~d-he98-izdqWawiV=UP{u2C@)w~ zNkvm`9{s(SgbC00k`M2CE%z$~mGDDXzy``Vu}pBP8bw>`duisS>wIK`r{nzRIv-_-%_p&x8*wXSJ zk0^Y{KN`ioYWiKm>{*u_6bl})d2XEN7qEi{&Q8bn-S;O;k7Jkqcy zjjK(9Cm%l35icE7mGK?nnqnGeYffE|;0!!_yu0^Zz(I-Zr}_YEJ8K5vSv#4vln5?{ zR?zmqMDnXMrZFyIki0t;ov*Z@rPNK*PlV~ER2bBEC_-t50xqqU#IoV`7)V}8WFo=; zzQ@UtpCMgm{-*1jA~@617`aBeIB~k3{(KQ9ArTW~sPhh5uM!#zG?BVqj2fP9A-lq1 zD9JU&TYDjP(&h#4_{`+rA=*&N$)yFKZ%~K7BN9{huqnf%k$c`7UxosIZVl%>BzIin zoV@j0uh8;+LAbblI9(4er(b{WQME+?TWj`~Emu2DXM%3h5Z+ynT@-`R6QAksgsJEa z8j9h@PN#2frQf3-GWh``tdAAOf^{iymA=ioh7ZM&yMAcas1&T``|B6Gx3e>A zpRpA;u28qD0St$KW7+zQj{XaP#eF}tZHY!aQ`TmI1gSGlOYeBb`nEiLTrw!yps zzJuR4QE*R{zK&K9=xxMMlRKIZ(esXJ-tgX#37&Ksd3<8b;k=eM8oW38VH z=w;P3C^*i>qCy#5pPmepU++l$&`91n9fu34!Q{euVBDaCORqBUA#?+s3)w{)P93zK zcZxHbi_mJznbsA2hUyT>`Pw3oIqAkTwMPV<`~K3GqdVF3MXOo0S33!GeXwoF16H(C z47qPdQMETgYtl%Jxl_S*Dce%$cptdG^5Ofl!&G@of}ZdBN?jkN@G-&}{Vv|P*0Y!5 zoX%7Fx>L-*Y8+N2m*7{K7j~#@V`++En7>pM&N1T=H_MivQN20;D+L+PC$Xv%e16XR z1n~#5?2}7&(8giM$#kSKgr9p-L}dy*Rc=woZdqhb)xrDCi|J>}IdUD|O51y~SdDuw z0vm5rj6^iu{kD#V>}aIz+f{LE@8}wmo$e;gzYI)E0 zGKqyqv96X$Z2pMP%%Vk|KevXk^{W%$*M60x^R4t@&CEVn@TpIL=zC|hD<9=Mmmqei?iQP|^aY9D`9K*azW8c12G;ivvPd;?JR5q%exb7u z#Y$^HUdR~Re6u0*)r#+kYRPMh1!P>-lYeazu1A%^Rz?S1b|H{dSV0ETX|NeJkLX)J zmEGZvqaDeJduYVDa8>q|CJ9*j=>QFy6d=NEG(9-1h>ir_A<=rqoX^dKsLBG0%d4PS z?@ge?S#a_*l#rFjyNOMKSX6UIup>7aGi9@Bpi2l+4y&qB#cRKavP%=~u|w!|m}}n(3XvbJ3i$a#xy$75t=*bC#H$pNksT zlcf2^8Ezq(@Z)#eJZ~k;R+WMM8_w;P*TbPrOR4^-5il_U)%pwA#R(VaQ%5KLk@pv% z(Gp80FQN$>&(lL?WeO_cyl(Bef_49PQhq@TN$r%ODFdYle7%aUt9~N+nPG4%pM<#Z zAUsvMO)OlKQm;!>ZRkBVmhUO_S5#4WkpTPDcT=bKG3Fw7l|Bhcvj^omrgPsr=i4o=ru26a*rC0KoL3~#YTY%I(C34+o+7N? zaf>Ya)9JsLU+BZB4tCz)2y=L6iRs$qG}3SvT?vkcl65W(9Mq&MMnbq^mV}F+^nr6aapC4zD zh7Dt%lKn}4IH-rhtK|{zj$bB0=xE$J>q%SkvS{iHZ>mZvB{Run@=!WR>z7zStYsDV zZru<(?2^T+SQ|dulfmkuJT%*9Ao6St4OP|QxeYIrZCFHSyE!ZVc@`#DaJF%KFxHgw zz1j3QJRB|0y=FF;dfy07dK}?pe3~xvUAgq{0@ysAjd9z$*~*SxwCB1XPV=2aNz_^1 zfzif}x5_BjbD~Hs1=!~QkE8RB>#=>`cqLNOqSDk-5k(rR&vhPYP*N#LX(~$7Xi5Xg z%*;r3WD_Bqhm43)cG+Y^Wh9&5`ThO-No#%19-ydj868lOy|9pAgJ&`%i z1|6}h=xclc{s#V~l_NLNljK5b$m9K5?`|-UazkBRGVC}j`{x3)(D&4mX+aR$gQijv zbEf>eY>~X1^?;gMy0Ytm^GLlX&{lP3BEM4S%jS2wIUx?C<*!lXq2DC4=QDNpuO#ib zu9&NvhY`Ji5i#Fs0yE8$Z>YfRSpsT{bulA%ETz0Pg)?Vzvz4u&eYOXxmj_c?hqc%; zz!)RioRGo{(KX#U-?~AStOxNoIARld@)`OX&z&A@3qWV?KKi=6gENf{#AYbHKg)`TXz1-~i4p&@3*6sdymf=P2;kxVr%A-%t{I07RD^%F6 zLcHg{_jrv{@Ri53V1Wk(l(v#~>uP%5O$(zB$>ZsWFQWXf0^Xejg4v<9=S(;anN{N` z-U!^d`7CL*^SY~~%6Aw4tUZz-(_}Qh+Ahh6 zoI({BT`-orxF7ESB#k0dE;cL!A8757#SJN|wko zcimzi&4{sdx-)_u?qQ}F=4*&9N38Ii_khcDf@$B>6am?-jTi}IkicU?N=mT zK8eGo-Gk6|NUiA5kAj=i97(?0Ns&HaEY0ojhIirriEaa(5wEF%lstVr$kxDn_cAeP z(rN1Mb3;<=HH579A1!$P5nrY&Mt_UZYw|C)f+Tjn>P?#KJd4Drq~6h$&M zH0RDrn#Qcu$Y41#t{E?`m`)+fyh4&q^1=eX@4U=T$EP`?aZU9Pit)?4M3G z=C>)+cLZG=q>RjxDQITaS##Ze@ww81R6?`JbsypTp#zc+%Egk_liz6khXBwf?(8?u zrm>fGaeVku+SW0jCj9P23*DcP4)-%A4WCJ$uE;@u%0eT=kK)-Ky<8a{y!%a=KL$IU3}^x0R~84oBlCngwCsU2?kv?p{Gb<o&2xbI!Z zIp*5w5jgqK5wFiy(_q5{Y?;Qr+1H!s>%mbNsog3J{06{(7{_jVY15&D%vM;|19x2c z|EG@|_JnjpC+9GoTjT$K_T#fh8PB{5Nu7CjZ7)|-$#pdpzBeP%9D!|xJTrZqhY2do zoMi4(`=aUGlh;Rc*O%hNf(P`bXE&(W`XM=WE6s|@WB=#}QMS(#rZfA)-S!?O7@H#2 z{i{&n%zvu35xj0#;L(I-!X-)*zh3KNrw6bEO?&;7b{Dcoi8&F$!XC4dhaglj3%}NviYO}=eCWmZ-2Da^a?*=b zGjq{eHp^tN-o zr25q|>T=DJ^R&{a%Q!_@2~n7@bb?y$Y!^ipuH0{5Nq#?hpVm23#2?g$vm5&e_*>~8 z8Vnn)uJmqxhxpv{9(C;-B9^-C=lxw0oxk=~*tC|A+Vwl4B;Hm0NXo(L!8-V(q=akj z+$)Y^r>tLpxR?z^)r2W@V}utuuMfuXbIg1_c8i*??xvtc^VwxNpZ@JF6F1l)l=5#H zmQ6|Lp4M_P{@_sfx6Gpt8EzQr;zwKk!*KF#E}2&Cqi4UoP$=I(8SQV#^UYd%Tj;`P zizKWcs)VandQ>Bn@O4XvFe^AfEhpG-aqYOUDs;pAeR1T60Mz;%5+hnph?Zr{M7XR- z9mh2hveF*U)`wx7$9bwWV@I~>dOB5dpG+0>a4z;d757u3_d90c=JX8sDi5GGb`+$( z<=ITN1tt~O(e26JxT~{@T4rj)NB1_lC~gyt3p6R|`&vrS^AlV8JfPbpSqQk4h`vsD z$$ZXCkrjWD+Na#7pEXnQ13+Z$SQN!Mp_l(lYPk1+EH})+{IARaQVe947N4JXFrQDs z0`EdCknbUlZJUx2{w)>v{HDQj*;;Yf*#`sFY=#{&I7K zv<5p=Q#tS9B15S+-JpErJb8^!#u1H+wC>$ndaE`jvSv!R1Mu@RCkx0F5BA!iUhu8#r z?9+V6-s^6dGx8VpxfP1mUuVegAG?W`eW1nPo`}G{+OV&$pmy8M;_k@fk{ow%pEwtb z7FyA}TQiXQ@(y)Y?4Z=#YgFRclj=r><5t-cvN-*RKF&}^aZm34RuSqAGEkYsne~`z zS~=4SPd|5s{gB6EdXY8%eV@|kC+c*}WIJ~@8|hvRd*ga{XIDq1X!&k}l0ZKnCAkLZ&(lXHIFM>1+kvTXBP~_I8D$B7c8=>ELKsIL@-es#a)L-6DdQZ_tBbNOC$KXfU5xgv|hdoGC0x_YvHu?~c9fXR=7PN6(HM zG!UU!OC`)O^x!;2oYzs>^=~z)O|nMBYjt!SWRBYz891g$Q@5k;2z`=-9!UW- zs)dh$e=XoNP6L73ezeQz0XfvNSM!rThRgpURo+!MgmqAL{5EPm_L81i>eG?4b0|fz zKfam-i(Yn0uvLn~jDv>QwQ&!ztA<37!2G9nO!LVeyS;#!5Y5 zu}2pL>3lZ&Z7afErf&ek?i`0`tP-cV28Q(rM>i+nLUU82EcXP4{{mefM2}Z+Wq4p zZKz-m)H-7#`Pq`~e?3L?V+o$S6qCoj9=P3po@Xz6X=|Ig@aun;-YACR=;$oONTp%; z`g!!Er>6*?=Y>HYHZ<~&3D2Hpp_faf#EpB9zju6QR`VOOtjnO}yGFSAXa+uInUO`B zJcR2YMEmRFmR>q~`jpdVrEL@&Va|NjMD&^=h1x6pyPe^U+(r*1ggJ8$B^aB-_L1@* z1GsEg#gdeHw58q@^X?Wfj*;aKXreUWgy>j%}r!)g2aQJC+3l|Gim!?3#t z4%}0w@e@16)0TKley1ipCVJrO1Z^^nK1F|&7K?GyV(HFtTgdlR6mg98~*5#*6A{GWQ`I|JmY~+Hg|Y(3MVqs1hrWrBUaVDlxw~kUP@nX?Oe( zl9o2dG|#8B@nr*rUy;H|S6BRJqJzi0-@1G@7N)uEd9fQplTyN|Dqs~g)eXS4SF0%Q zzB+R6kANgA6|>TxbJlqZ%p-YzrXPa~?gr@lmHpnFYn<*l2*(>a16VN?A~*~4BhsO^ zQk&%R#=zTE3L0H3NTIBQN(;8rC8KPiYnO({Iw^P@)E^<4s?-o!Ob*t`&}6TwZgDtv zC~P8`A$2tR?rNuv=VZt_R*P(<3rJcw1}ZbJQ~0`SD&D~!vdG8OcGCv;e451%HRgT0 zyr8+`e{oh{4?@0(Jg*niDWCOXZ+#>svIi#Ppfdg&kT1z;RY!Q9H^k{~*x{bS-Rp03 zX_74}Vwckt&s3zX=!g1NJv5EjPLl()|L5~XYZvzX@prOAZ96ScI7InhPtpkfU3Cd+ zk$gVZCb9mLi_WRW7;sq@sWnx?t!)$*y$+&Z%u?AGWeUR<69it4g)sBR+ueHXJa)x` zu(70kuaMk&@$=05&{A+0d_**!geH+?L%n!-e*g@&%$01~jJaQdkymGqoJ)oY5Vi{>$U+?6{oKTguuEcWSm>Nq`4_r>a_ zNGO;VQ+IMCkExchqXx23&_e&CHqe=1OV&aE$g5i@jm%gkCM(y`>=_&ARdyC0Olzha zXRYw?WFUQWNJH!XWi+=_0nNHoQ63}@lgehvE@tI+^z4g?_2`To8jG?rAXB1F(FKO~U;3eSxec7O9LV5)3UW&i(%$Z0sRYc;b2~_zwmuMVu9k`CU-ye9vjL zrde56Y37}8lryd$9QuDJ(@1wXwHwj74IfGF!gVojO(4AF6zFktB`rG{4-LN<1m=Gh zuA`=7lW_;dU*o&!;0xSe%jQ1VBy3WUMXdcGa>&t=Oum?jUp%i^cS2zQLJgdhEtAxy zdeGGLUNoV?3{}idJH~gUlh!wB=3ocf8#6-eZMUYiFIJFJ-F$JJdkl+`CSl7?3rrZ` z4VUW!(7bCYg?NWx>8M(|xsBHi(Hi*NT@PipM)0@mi(`i}$VKP1BrJ9crnm&58T0Ac zZ01B1_~MDV4nA3V<3{r|>cRbc&z)QObFr5upS6Lr?ItnnOp`c$eirT6riwq4U2!S9 z7q;DaPYDaOk@n*obt!r+W}M@ps>v16sg_1#4c5c$ZrBko#6Am@n!M-+#sr2?t$t0 z0rD$C{*!QLfM)>526^_aHu+AH&WL60E^U;!xx9UZq zye;}9ek4b=TcW~x793VvqBO}0|E+MQbJ-6hseub58)n}U|Dtp-{m4qH*)x?{^|6%r zo0op3W2n`9Atj!^O`X3zP{6$`xoGZ#mSiv!oLPe3Ey?G!vS^ZiOEaG})A{CL%H&S` zz!p__iCweKj}-!>8hWcSg^2YzC!%}vU>)IiU_ z#iQ&o|GSc#MA~*)I?9fQT@jqEj_!t#AX8kq%6%;VH8fXWmwJTC(D=t+=u~VO9aEJ< zl5QPEG4H2fd^HX5NW+EGhS+%iv!ItM;+cCgvld)1?tvk8#BURSI@lq(p4}2z3q-iA zDNd@qqw#zAJ9n9#(cD+N8IgsD^VF&HqB9~drXzmsP<}V0lmEpWBwhJUKPn!Q<y zTzvq7qB$p0!Qa$PA4t9XZ+a>8vD@VzMUVbKSHJwE{G&smr8k&vu}i{4y$|V)Vt!H2 zowO*mRm8LeG8a>s8n=yx$96d^o?1fv5~kDbpV9dGQAwzK51`{S0w~0((dpFCLAZF( z1_3R)_}(WKjS*>*6zyz^Vt4G?x7Ii@Hw`0HU(!pbE|^|wON}qBaAIQ)Yj*3Yda}TW zL4Z#i&qm5m(C%kO=(6Ui( z+Fzs=StR=9oh4bBzL1Kp5wor*KtGi4BiE;qe@O)`uDnXFC&DBRza248Q3bK_)A;XM z&Ynx)Sz8QT)(mIIcMyj2d}>s6E}blkz`bZS_@5q%IrCQ1m3<4DE9;MRzRUjRT>h0) zHn{dMktX=afK1rF_|_Jo|FW>aA`_L59BJ#6G^iEo(7uF2LQXRinP23{y4sT54MtNm zyYDU=ba&Ekng!ns{w?s;7QY<_(1No?q~$yYOG0}i&Q}+MlYC&ed>qu;{9v=3yBz_2 zQFmtt1zD+LAv}@CZnSs1Z1Bi&r8qNfCVDE%P?2vh-e2-J&F`-`B-lNrF#-#FXF@cX z!)@bgI-=GG)oaViTBlun>ym?gi>hd4&Q^-6-AY4Kb_&A-&b%k_AT^)yq;!luGHWi1 zZRM{dC)u%?+%ku<$N!ZmcFc7$+_Q!L{_{l^ciit-m6Mb-&+he&DEf&lhW|}Kn_m|G zyH-FwuC$Zl?Td8d@lJB!S&`2V7yR@(DsEp^N67BuG^~)F%^f*HY57`FuWo^zb#F*& zE_XPXwP&)P84JJl*d5HS_nXUT|Ey!QA})~s+XJe8o`!PvcP=u@Mn$)?1b5ERUn?St z=t`H$dQ-+cZLuS0CwVLMK)wD@%&IS$4mB__)_+W zW{tJSL@Oygn;`+-9iuvjW}4-hL_S%eC_i+F{(33F`Zv!b{ktJ@S$9NpXDs8+LGu6Q zj)wPtXhmQxjhbzV6)Ma;XKr|7o&`-i*DCIQG(xF9?=!CKqHEk4mAhz<#Dqq&w{pjj z%gLzkyg~V!+9f+TuMv%TJ4B>MGO8~yzm2;RJNyDMAa4M)YF5xKSzpZ2_lJ@61=?Pv zLn&1o=!P=$r{cp}55yc|bf)-A>0i zUu&^-Q6#D(?o;&l2)G-K!KLD%RQFvGVdu8coc=Fp&STChsLRsE)$yWyb{}-vW3n@8_&~&;9H_ZrG;*D-*nNGv-B}A4edv- zikD6!@l|6Ud6wtWSf1nN*PW$)mU;AQ_CG2)8I7N=kxmNiJ=|BIjBnNK@O=M|+y;2k z#XU>N+|L`%_HYvYJAtq%&i)4{bSJDXHT5 zsr0oBXQgOQ{;5vul_-Ch=eg*&X#pz~CioE(Xk z>ANKL>@7{#azK*oHhOj;h;E$uME`X@p`+{;J{bO#b}g{ON|Qip;2e;`h-FkzQcW*7 zGb3@f!s66n$X3}XZk`!Vexr|2=7~@!oKMBrW*IumdCUzKL8x7Cf=pF23go+Zj{0&k zYIeZDzDvbY{`M|$_($)nLdp2Wb^57pjyKFfKRm)p(BCoSul0={4vHgtz6(2yF-0o( z*Dnu9#6@o}lKQ14n)x1fN_Bx`|J-Cud%ae~yt2auIUkJEIZvyTrr}URJ!NQ}rB~`3 z#6!<7wEVOdHi{0ixHK8x0}%29yK1!mhY3+`DT1h0N56q%`z?)g$AGOssz zFXyFS>)^*=V`eR?P*~gq(s-8!m0QLb_$-!U?kS*4@G#7_mqPzTnmC}cn%2yEPrqHJ z;@DtW?!5bpVJ4<%RN78n@_n$kj%QqzhA?C9{*1<+}d;1V`LFdX)Z* z)Te&ucT-YDSKM^FOWOSng?E8DF0KzF>pk^!F03!M%{@&#kzJ6&BL1g~SRkO^-i^Ha9iwBG|kt!ZTLe}@{%r=rK-NigDiOz69G zk@Z^x+m^o|i;r2jA=XjptPkQG_XE~b0&ZUSrbnl4(YRkcw;APvdHJ`fp}-bnrw7sO z``J)$XcXtZzMxy{*;D&Pnz`Kik_rcPe09*o_Jpp~!^#bj=CaIhOu=1d`PsP+L6?8b zYj7Nf6;jN}Q+1H|TYaP(KjdJNGKF{NdO|lX|&f$@hG5H z+z*(6P2YQBf0ZTjm?3@D&JRH%QKG0c3%XgEF#2hP&*^IPX>m4;ug@d5Uk_-+r8jhq zJ$+Ks-7w?Db;;@DIv8Tp9gqKJi0(TQ5OXOUJZy(ct9|jdIYhkNyPH0pm_yFr(`a~~0jOe+op!Je z#%jBxJyBjJ|Cs){Ox{$n6Hb%cNrUcG%Zm;}D^Vjk$Huoom`&f{wb_?0d zxKjLDXFPp&RAe)+>8Wfd{p&FZr!P)Ge04beP^zW%XI_&XGsC6EPQ<#I&uIVtiIlxd z9*$S9(z;qjs%VKp?wL)ZWIz9IJ|2bkKC0B^_%@2pZKt7p=$83C83pWH8&ea4x-4di zG9Oxcyep-cO(6YQR&bih4E~%R^uA&{tu#o7Wts!}Nc|KNcB@Vdx=lNGvQMjE#6vMVfNY{P`Q|eD|0T> z;+=!w_SO~4&E4=k+d}e~){*qgjns6|0t@c*{kvKPd0(dC_NBc}y4t05eB4md_5Vwu zZ_`ld-z-i!t`d_Y`=frn8XnrKVv)Kp8mk|YVkh$r^?wR==G%XLHJvWs+DjK)a>(yc zFI@Uec(`#KK7My0qnR3L`a29glT>iu$QqmC|518w5gAymqCp*+!Y$ha;o}cbMUQpl zZnBp)zX_oS?e#SGi7!Sj8;0u5*4R;Vn~WzNq}s|Q!eX%>_BGxX!(7c^`CA&g*38-R z*+Y*`?4oT0M?;OBzpg=_M5d1~8jhtv)?FKyehoqSxFjJIi^cIf z?zub@H5&&akTcR2%DFV$@jm&P@bA(~i4ZGuG0h_qwJ~y-lI=?>zG|@eH(&IP+acKy zs!GdGE*F`fZj)caK+^hZLf!`JDIz2W73bEAgZ!?TVi$>|qY89ml`L(^&LH9Nj>Nuk zbW=l}tnTXI_@oaGI>#bm)b@pcEgYgRh!3pe;2KQhqO~?RgN&`kkc_e9lpetE7whJZDc{OFtJ~r_$RR zFm+@W(eFQE!%y}SU)I2t+r|{uZ4^7=-qQr;Rdhe4&e?vxF`$zeBTj8uN_I zluWW}h0axGOWh8Hiq|~RW)TYmvw0Mgdyh6Q(4ZDa_G@h5f3NFK^69#ixi%NX>Z)`k zwDpDJ<1ymGRsp^2TeL#0C%Q$g74eDlXl_6%wmeNi{TBxe=CfM8UlBc6^_a51PUH-l z1ZiJ*?(?e;+BO{(r!NK}<906oYVr*1WxnKZW-MMbzoLF0rG=T&Q0zYGh|9iP==|1B z(T$maZ{OsLf5mHPMw$~A`V!u_G-8PebJ)!?{!4!?KVG98SM>`ypax2L(pu(@ypq zKP+{|>OKkBxT}qilvhpPBNkKegR7D%s~FULiowD8@kH^q zXi-}#u2*rE0LA&t0<$|pYW+t;Cq0Y1 za^^7kse`FM^I*qp^MZxDB^pz;;FV{Byxr$1Cfb`klLHW3qk>fK0F7>_7GcaZ829B1 z<&99l*?Dm|QNE1c>^LG$_G=ce(s}PzeTL>64n(7&I~+PAAzN{lW=ij&eJT5?=D%?I zw_FaF@|e%vkxqY>gwe_GQ3zxf)sunN@S3ZHIgiHS=2RJKcM24DZ?Y#M>5rI|@?E6= z_$`JcPR7@=pLDym7Zun1qVIOh6PWRbevS#DMMi1Vc<2so&X+?-m=+wI6U1rm=I3gh z62p%BIe3(&54lcFu2J}y-9l5NKG618+IamY0c))12xY~&^xab(&UW#z_+=%jotO@< zjTx9|lZk8Be8jBfpXpMYJJb{Huw;NLPD%;bSxBS8q&LoPh{BcUynAlw1LGdH(0)}S zn!GD%@8BvrsCk4l$bE58@|ybGxG9v!OhMoJ57gr&A-kW1jO;Fx(G+k8_Q*gZ<7b~Zd@sN|$EZ2`d{9ei3{o~}_Hypl!ewg{2XL@ON zIMB{+oPnoAbA}oh)VN=n&prm%(YXCm4Qmhe5lf5T(Cc?+ow}`Ur^^Pr=#JG(T3hNt zweeplzEcS?5q?;q=tq}Ioy1+&AC&SnfSN|c(_hZbXqPRd6Yfjt?kHUZZ$3whGD2u0 z^Nc3-uN93(Q%E|WnSmR6QjQh(m@Xws-o2QKC6AKuW}6A_N9d69t3V{WrebraA}lvJ z)9u%}==M2^Dw~Ni22Fu9f5%Qg3Wk!?SjyEKgp!=;uzRtY3O8(~sy}Ja8f8GOoF!S{ zo<&R8J9XG{x~QpqO0f@vXbShuvR-D;h5bR|?AitVZWQI8_K3odN5uCc4a_osPC8Heh`;4&*fYnN zCPhu6frUjhxqlLRPgKH%-?kVWt4p_s&BU4CG0aLGi%Cs`aP_x68eNXi?Mc2cU!93Z z=USb%{nm$!vjuG36tS2ctDDDgKFwbns~>t{YDO`se|jkX`KO}9zdPC<6jP$yPjSpt z1NXI-lTH5{qSHH=eomZ(e+?3Z?(`M%r8xLEU%YTN#_n+@* zt}l2=mD(2M@ntloaPIDyeIAOPiph^NWED+%bocy6qCrF8&y3t&vc%oSzvO($8GGjE z;qHlQ%4qCC@yu5-+-*X!ldI^$zYu&=3BfNpZ#uTC2QJJvf?U)#3alKDYj2FO(#Qd^ zRvRSua=Joe4KpIFH`7MuBtN(jLUNoXe4IZ>+^l0qSy(WQU|x0XAt`K3Y@lo z@PN;*d4@44obZtLMAp)}@uwt5TAcAq{xk@uuf3~cVu8&sUwZsphUaA^`V+^nL_^IJL)}(xyKSE zoZ;Ebn%GcD%~*HLJ8*>FH}uAzwkhy0y}+)c!KlDiy6uyWhlgWv_|QbU9vwsW+Kpm+ z$tVg*j>f6aVYthg##qkdOy4>X@9$rin6KGFG5I|Ze%S?emlSaIxEjq5X`-+IDLU@W zJfQb{ZY#P$Prb&{#ko2tP-CxYU=(yilhEq6T(V%P4Sm>LNxm}`so1{@l4ojSyj4#$ z)Ql0&PMD#WdnKU{t zj5Hr{<{*;4ttmkidT%xz7U#)uQ6D%oFQzT!qmcMH3rb#d#YxWuntky;(Z-(8zIv2S z1op@NF24BlT>(d1E|5>qGO~Kb4D^Q=gx{bbblCXAZF-G3!u@S`$v}!|Gb2gdWX{$M z#>T-usJ8UNsqzqHf4xFdmHId}HyrwxyHQ2o&s6tkB%RlqOL+?)k)fF;xuj0R!7MMy zMqAD$Hd$iWdUhwv{-QG@Y_OBevB=XO8OlDSJYSX>r}mH!eIovt$m3RD&a})qLD9Zt zl)h&GM*nohsD<`ekzkK|-Z`k`Jh;hjJWDd1p7n;@UyQ}; zp5BO>n2Lh968ik^CM}+;K_@o8C7ZRAxsPFrfwG5bhOs7nA6-U2_WdQTfj&seJnf`9 z=eKB(T}tz2*)YFxDk@e6i*8}hXzKj2@C>y^&G{zD7sFEeyD$*_(v?Xju9g-^(qTQ) z3k(0c;(ICgj+Svw(`5nOUYRKBw!~580N%47h(zQ0TeR13hveH@e*gYh3H3IDm|(+Q5L0^p zqMF7U4Z^RToDphQf%=#km@>zjrtz%BeO4~a^ScQtk1xVQF$rD@%*67M$5>`Xh1+qa zn)3xmSC)}wqXe6GS5i>v3Gul+kQqGPuqnkF1H1XdFvT3lckrG&XB*vLm4*I4U(xl% zd$i8V2*Sac{Frs;xw{VvIP=`~?F;(dUy#f8E*L-TEF}&&PN#ccBZl74(}E?m=dd^W zygEx;M@|zp#hj1X%-*l};n?!w6J3dj<9)gemg(`{Sox{Y$(%1F=Jj-RO*yIe3`3~; zcl!QwJYJfnQHM)7B~RmfuxAn7=jSd&Zx@Yt)j(1-l1{JrPMtCJLZPp$m}pSwSgcY+ z*Cr2!)jjsGC{@zb#$H&tdmK%&m`sx$dm)s6o~D%{c;pld%RYu^d^iPT*!OVq#Ax;+ ztrH__@@dTQYBBdilgMVyMT(;|PRZY;DN7sZ-Tsj{!)NX@mQL7muR$_niyGVtTIp17 z63N%cKwoJRu9tNo`Cmy!Wp4s zzLW3qgX9-y#yR7sRBkf@vA5MQ^GY1d)kY)U?y-3BV5%6CbA@&?zkSF)bF5XnLEZn| zptvK|qO;Z$qbn@vd*KeMZGS|&rlr$vKEMAoucMPgoMFFP1O3+WUWR=e`^&F7BJ?Ny zb`8h$Tg>TlO(i?#xs8!FM&=Mz$@T54=zyy?cB{RmPKTkmw~6rbP5AJIof|`zDlFGbnG|zoRU0b(F%2gMVF8APm z>1aZ2Ng;h6-yJ~(FKBRHwdlLzKF#-zL#gw2=3RBc`OB8@8I%mUu~yV6eVvZiIpVz1 zSgbkf3=2KZ9RA0yk|jEL>&yF{Q4`TqDw1mUYhu6pCz`oPmilj1ht*#@9B*NER_i!~ z_{m^VpPe+OzadR--Al^Ns@QVD1T$7_B5(FtOiJ>GIkVJ`@Jwi7*Gm+>RUg+3Z1FJh zB_$omh1m^7Y~L`6h8B0w)SI>v+iPRtqsjf^*P}4v+!DoEwUbc+DxiKo}(Q=g{;@*fOuk7J;kX=1;rIKE2d*O4JJ9LhpsUwpgNm44a;1%7E z`uAgRb51>3I|7en{-aOwn$)y;JfGdy(2vy#yvr$~{OR$?dU%9+|T9lC}Nac+OqRDZnlx5xQcJYNoFFUO>Xv_e@1 zC)?MOba;Pu7?g=ycYG0(osBK)qmf?jWC&xzb{T;qQ9zz5gqq-PS&dd-5}EF)w( z%);wUUD^LDg`*wvIHV9os^i8WUAu(d1pX#xCkgicHx$y&;m|gdz~!Mj`e|Ficub-Q zNza3me;HjJr9h^Ays+i5C(?WVp~m1q5i;%@#diy%8Tne+KY0pH`+XBRPr6_jvu4Wq z=T{q?PdiF=sis^Sp(Dz~{63GURC%wkE7gG6pqZFCBNetMJW+Pg0CO*SV6NgDF>qD^ zCG}#~REISrHzO#aJqRW-bLiQn3@CSbEQU#Gfs?e9$bGO!du8#%QwK`}JyBrUAe^6k zqtaXKF0^?-KGJ${*4{`->niEl?k`lS@{9Jmmq}g@_k-_~3F2-qSJHf##@()Bnm*N6 zn9i646Xt!4syssx?sCZ9vYFHy7Sg|U>PX(92&0PenDTLs*p!rvA5HEMA0+Hpz9V+6 zm4XNzg@rraq3!jLw((tP&~;DRr9A`7?ms7gKV3RI z<uE!*o6_6ho8w49+w5)f&N+!}sg- z0wuDT+{X-`A zJ1EX(33r5@@OJ?FE(SiJqq8R9mIx)`v}+^z@O?=3K^(HBRW$ zO~a|Ppq{%~Bd~dAKlFby4r6&|I@9nGJquVs!{w^zsKNkj^~=WL*IAHKuB0?R8~12o z*L3DzlC2&@dO`lMS>!?yX=jCx-En$x#FRU4j!4M!C;#+tY<{kRc=Jc3aeOw7pCrfJ zqrsT2m&n~B2h=KdMfDFo)JY0R{zW}$8bo0IHC=4{{gjTLn1((n?@0RQET}NY%i^LI z?l~VMg)`?Rfvf98x5h!#(u3bgjsHnWXjS>5p_uoCu7LyC+&`xvi z!AiTJd8i?x*uV7d9Q$>H2~Mm0aBbvcapUcFQc%~TKhe*re^L%r{~iM8OIxVh%OotH z$&7fFowSa*plNc7zvk-jqLPFnmXMK}mcZ z{wOS>dq#&SGuBP4h+&4&Ru%f0e%0xzNgg>#rNC_myJ-4!(y#(%gYaB%=ej&BK3Php z+*N$ulE^rU-qbfGTWtKhlJol|C$~$pG6yM zH#nnt#(VmY-@(1Uz7df=QPg)S|BS3{G4Pu*hT5v);f*}J-`kxMdAD~bf2qW>(Fc*i z6X{#vF}hS+MuoTEi^VBcSjU{Yhs*llo4p?5t=uSz^WA@v;@~$z9rgALMe3G*JPTPY zPB*=v>X%Az9pOgf1DHKLu?M*+wvhwhYpPY(3d6kpbh7me9bj8plHOX%xRHg}=~2)K zWKZR_Bq$kr!yXni-}e+t6*quy5 zS+o!(@+0wXRT|o+F{@_}b1+6u!oY`$*nOHEDrvgN_*6~-?8Pp4^@DyZ^o7CkSWFZ; z5IbjZU#=GdDoaRSsfOH|qY(N+9p&7=!I4;=Ew1GEjS=}d7{mDOKf32pOF1Pum|OXP zt|ZC8R&51+4An-6st zhk70N!U_^`K5rbXwANC7?;w2RSxd!k8@gAl3g;fW2q}($I_ISW+SL)Mnk&}Hrr~~D z9lyh3kPxek6*()(Y*_@HSGG_WZ5Ql+C53wTBB$%6)94?2d6y6ROPl?|@z1pja_xfQ zHR%zx&76j|ZCZR6pF?F;qcQuJ9Nfk(7h{HcVf&~M#QPh*U4a=v? zuNp~>bL|cskSFKNsdX7JWmQ`X-kq`%ff`i~mw z;5?Ofb2@4>&WQVtOQ~CYsL*TZPd8ii@!@bVj%g0Y`hL==k}-o{mson1$IsY#K6@TM zCEkn)hRa@lw_n>OnpLbYljr@5<65X_%YU?QX@3MfU_a_cc^ddEh|YD&V(gmh^scuy zxgN}?y_Qd?a69KDqDsY>$=@h!TO8J0Sx!5*PbEjMeptEdzSB}QAAHH0ijp4{66x{E z2#)H4w4e9r__813NyuMX_b~~F+Y`|m7L8p2|B?5N5@9lhJ?EDt_SU)e$4GT z>EuR@d(KKW&o+c~I_Qf&&%K$|nLS7rtIJfOS+kEe$oEFTIa$2#njv<%Zzmd(hN@kw zXkcjvOie#RgrB?f#uCDx1W|N_(W+Wnt`E}V(!WrkC2UGd6O(1v;?koF<+;>j|69(`npOJshr1!4iqHNPF>y zl=;=F{Wa9&C7c4K_DzDBjpHv?!Wi>Rw@M@^GXrs1ymJ+}%#i zib;op;E-QP?VHZDmj6bV+K2FW$qX!Qx=iSqX>(zX@T>Qf-ks^B=<2%Du3?6HNaU3q@FS6zso< zljAe^C_I@_8G~7V!$d6DpikW)?RdNJIy6pMiJ3C9d;VrF)$hn|TC9AN9PfjeS9&zP zzZ=0#=Amh|{H(jHVO3Qxv~KB#{XIgNZYZCn@3xAP0WmxvpWz>7mLNIr4>XLM^3zsT zuFbRL#w5u#9e5mvn@b-}GZ$?5Hj={&rRS|-B$uAkrbkAq&|i8P9MM(G>And+6C$Z@ z{tG3cg8J1#%q)@j)>ch;a(f=`&6VBQSJFmS-;Z|#FX6N0U)(%$O6b^J6pb#?IGfQy zvS>W%dWoO6ZxKM6bT7 z?wecq&~=aw5+~PU#GrC4ko~4_A!ihB7sqjQQ`y^>9F7wuPMo-DknGt_7xNpV=(H)3 zT?^v*wnZ{`9?YX$&Dg-eSL2SMq? zaSRxB758RHCb0h-sEoDa>o=Wo@N^NqH?G8&kDY1XQGwO=uISsXt=PTi0oISxk?esn zGBY&~y9X~86XK?b9qmU`d-_bp>w@Xf@9+lK^}?tw-@o4{rtqtG8m87|a&&B*7%gTy(hdFV4SQy)Gj;8zq zGX4En1obNswO{plKr-dO$$dq2mpI02>vMmyI)(>kaM=As#x;v(*@w}b|NJC$3+4X) z+dvvdHs`^!UvNIG8ZHOt<7Kx{tWF-zJyDVcSUQX@G2wi3Az3;l&Y~!0I4|C}X3KRY zxb;ZxW?XzY_p97rm?bMtI3L3*#d0`}PsO|GR@}X-94Fo%9 zxEMc9j-?{2J1pi;5kq?!G4Stccsbrc`Na|Z&_s!kOBL+jTKdvEf+L6PaOKcK*7&#O z{aZhrOhkv7%6L9Xhg8az*_>|tuuzqk{B-fb`mEc8D=B=Gz8rRK zf8*93GSYQ94m^*gojkwLrX_p+m(Sv{>qYOuZxAK{f4L&~w_lhT@M839K z%vy>?nu9QZ=0P#p=9`G|Ponn)Po8~yNYs5e3%_DzW|yu+;`O$OFr0xQcN1WDaUl-e zPUYb>-D$3Q9tOWw;LvyzF38`Dt7faA6w{5}^a42KxfbU>^(8mz@=xEzu-@V%pVNQv z#UY>VE%MQ$y=^>ki{SVKe(RjJ!gC+8Whum>47t+=J5J?5md|J3j zl$}3>oum8ELuVRBTnOe2jbOYg@n`FQ6BMRO?(}cj2!rV|r*K42S5Ka~^{!%H@GC`9 z!bp}~{EHcW=^Rp?!|7*DX)ilik%5+S7v;-h^&#+R`_aAa?VcQR>@e21?ZQV5Ie0Ez z_dhI`z?;`SNIM#NvVn?-kFk04*|7je> zXy1R>8}3RAJ3o2Hir})P&qSY!GKHI*JJy(ziGgu!wOX5FW)7v+6Z!Z3Px3tMzKYzK zZ~-=Bp&m*b0HnJAE-8SB&WtT?k1 z|2;_O;<9_N_cP$YUcGo)=8&zersJ^bQ+UqUB-)mON0ip$LH;`N<4YxCG;^ukc`UEl zs>1!{7tCpM1FNk4cv~{cCbn^;)dG8&G0fx6XXB_kyE7BkInnpub!^i~P&ide@2%Ef zk=LmOEKb@;cB3&%zB=-A@km6=*;A6E%yP-!uVW~)W|}hR(X%)AIL2|)wsKMWk6izF zImVoP1@Cqv-IuIg1N9bicH3mG;;1~A%$H21=7IBt)?7WPHPys!167Ro5OTjfjK4FU zU~Z_rOxu}pVB%&VaIDN)XYz<|FsDwOfrX>SQd_>ytEP2lV(3$}`1=t*r{zdSxfUCG zj$)S$3g%yT<^6xAytnlMcAnaePtWF|Ssyi4=l{kgnImuLS%+T-e<6OuJCvS}=1sF^ z4F3IHd|s)|t41T(+?MLZn%p5^KJ?4`VTmE;|Y8c zvRU93&j#6D)tKLdr{kM&oaI6+y>;I``^rL`N=anR>~o4-qx*Q+(wlLHV|eUIr2LFI zFrr-y2WC{``PLxpk$G*U%JsOD=ERx4-MOgEKg=?X=f`k4H+G*b`hQX7+zzSCIh;eM zsjd0Mp({c$TPzSqo>+MVUT(U7A@9b-|S=#J$y|vn7<)&nk5ZQM=XUK*_@Kc(5sk)72Espgi}u*&f0^syZ&I6;W4>)l%K;vt}LnRgv=FQJiR=SVv2NV zdp5%7`f#4#vJ{8pOg2Ly9eTs+#qPQQD2m#^w8EK9bp@7eYQ_eGe(ZUtGga<8<49Q@ zcKZIr?X?P)=cQxlr5vU{oCc3$HuRe#=S~qyT=c5He70+2@%0z5+cF6UoY^sfg=Zr9-m?$yb&$-3w=EPWP25GkLnbC0nPBnO!Pq~=f@&9}H#ct) za?`Hk(4#2MlTHuQ#z=8+afukd>nQYJm|~B^L-hak26a6j3jcPgZ7cU$nLK~coLvTJ^Tq0Zh|Xj4g3)+iyu5GBy|bLSyB`_& zWF_wRH|DahH6nkHIsFVTLE#c0?`J7ue(w(ax+91S2HnF>t1wJ@8pNOW=W!{&6|??n z3lFpA-00Q}iQgyU>igwb=TyL?CrOI>n%2~iJ%pX<@=mujhO1-ceR$Au?0Vgen%8fk z+dc(jc7H{FtMM@1b5|TI9wM5JQDg4CNR%E`;mO8+O!E05e&r1oZvw_KugOew8g7eo zt-!2-PP{QHhKfc79me*-K$RY}?ymu>rR}-O-HfMeW$)9;m5#N)L~u<@wpS^}Vc({l z-d^T(rhmttHN$XAN4oSX%0+MOJZfIip>DY)Hzj32Y5N8k%1mXn^l;v&%NA<8I&eFG zxTl=03|{um4B{|0u%;m5#`GJ_F~ghOlJ?aA(gw?45R5n8&Hh z^Y?3<9o31WXB|hw%sg?lB#ljmNe=jAHELtG5L+yvxvxP~mh@8??(fJpp+k71&l#wy zhp|oeO1yS_i0XU`u_INTDXQ`uvH2Ss?!@8xp9mN)T93Js`*m^MHsO#E!8pG|Xg%pA z=AZWF*_mA>zxp_AB~!Ps-4y8wzbELU1d zl)|ifD0+<;$Vw}Bj?Xjax$d^ool}I{P1~{AI>{)Ptm2`kdc&gZ8YUVlGb1z7eYUYK zjRJ4s;gv#k{1}AKRz66maANB%CoppSUu4}sjbY&{h4l!zcXUc++vn*lS*#D`#%xZ= z?#;hSF1+7Wi%q8PQ>@GK-vuqH(MLMkD&6>HXejCnRK z^hZ}JJp97Byy!6Q+BoxIU_86a*=x>T2bpH#8(fRN>HE`Z66C!sM;&^C%0pKV!r=n+)nmHpi6g3XF^21(%|ssIa;L zmH+nRi}i45e09X4Q_?5XHjk>q^w4TaUna`#@hF+UiTziGH9uqFHqvi9{ z3J)IZ9)>qUa(14a$AGUZuq@6~_Dv&s!%~yuUi4?Jg*_H$bm6|yVQkfDp4ccmg>5x= zVB{*klE86?ia2!e4LDqrv$DoMTrzhEbLyW9D|sKdVbGP&918fTO!`Ij ze#1C3fc*mMVRNb%TLnok_B0i!rjNnux869`DV7fcE0HnzE81;YB@$14!nawVnd&*w zz3iu0;WP&aBW3sR%mX;oc4K<*8Z3F~$o@tK448FEF{RoOEhn_cG_xXp2_1-d*MC@h zHAl{|?unk#$7mHAj8TtXBHt~6P3C0LbA~G&ey@U$t#n`M_T~LvrZ^5Iex7T{9yfI5 zT+ti_AEn>5jW=T#C}Z2&L39dj$+S;xacWU8PDyUVj2q{$Smwp9U$9})pWgU=rht93 znsAxw2HgCZfgbMz;Mb|Wxbta>pRC0Q>RzYZGK!NT*FwD$~{)!&dHU+Vq%#Z7H!_tsB7Yi~3Oi^E=E~ zzZSNwB&*|SJb!;xr+>*1{wMn)7cynvqW?Usk$H*yRbKq_%bk9{UXm*x%!)D%Oo@;? z5GvDVZwWBQmZn=$5xmBSmfd?XdC?j%dw6frF}^u-qkm#@bLne1IGAP;39R!QL6guz zdbGSPng2$Ju}ovbEnmL8zXGml7cry8hx4b5$Jno@5T1AtW3^XFmqSk~w#zK{o2_pB z{ojfuk`XA}Tk*E;GQ9ob2Dd5F!M#-Ly^d#?(D z-nM7NjKO?hV9mi9{aMjwA9h-o;Za;3uWq@BJjD@A?0y{`&Ae$lt5j@0BfU5=Q*d&i z4(EIPC;p5zWLS9%wvKrLZON;pbW%J~>(3(h|91!5^G&7$t-7~n`$!u(b4s9_a6n1V zVGQn`AiL5QJRHc~6JDSC047I!DF#VS$`Lm;v`QNfoyNJsI%Ye*9Q9^~ zu^WB%ZNVqKrc7OK&(5RfxQG8~!if8`70GgESsZA`_kop)kTV@w(zO{k1x7&qcqb0& zlqTlr7O_D`z7MoIG1Ehpvj#`WeVqYRSG42xq{pZT`JnLMD0kMDKd@ut0=)Psd*|xK zSUJX%Rd-56e#_SI{ZfSP#mk{Ra2M`!GoIWr7m<<5++QU*u=0Ft7NW#^gL`rR{NBhp zC#dHj=)Ovuejx++XhUm8MDNAN!{2cs#tXyS^x>t2qZ#tSkOL~^z0E>$j_RAxzVau~ z^qFK29+qA=Z3bz}bFb`e8iZ~}%18_LIPwUy9|tje!AAm? z&P^o?_RuY)>4vi+PeK1n%|v|lG#ohP%XcRg7-iLwfBwr53!60Hbb=SBZ~G3b*bPE* z>cq^=meewvjiQleC$6S6_TEH|1}+JE*E{&nL>diq~Cx(nC#lKr6Q3&z0dYJ~|oSR*&V_ zIa4sWT?cBmu5~lMo6gtrex;jPjR#{iIlQAk%A*n_*C386BADH#3}9s+TaN9L#90Y- zFibUPYLzp;J^SKrU^WGwO}C(TUJ869Lx_tKk#~3?F9d6&bAinE#kAwPMe@$KvJ^uq z@~C27z`460qcGWm{X2gU^N;VuzQAs*zMCOko|m!Z!7zTB>du*+k14(;`-(nxR&ZGS zS5%xV6SL*#YI<{P?%44gS(3e^ZB)b)`VZlC@eq zdb!ZwZ-relXXE)wGTcJ@@o^UqYNb9wt z%4ScrIopznkDRzDxEj{;ocLl{IOc>#(>_o-mTK)-P%<3}^_p1tJc3pElNB?n3z;0) zhO?I?ipR12(eAsZ;?hJzvGbkejy6l?_C|jMdX1o=WMFnzZa|UpF|lTU8*w}00@lXa zB5xr%Yx7)WUTMnTk5c%|x2xi()(yb(m&iMx$NbNa#e*pi;ansAsWKC8K1`n)J15}v zuwwCUf;I}b8gTNhrlRIjXPM_vFfC;f_I?~fM>*T72>dC!)yp0C!U2kHGf(69kl9dK zsV1gF_FjW?(DA8c&fMOB4z~LA8!!^C@sfMl$^{3SEpT5JTqf37NH52brEprfQDG@( zIEyud>2k9#a;mOkoL?sYo@^pgo;93mNPW8bY3 z(bb(eM&`MvneIUS@7~mKFMyt$z0Vpg^M;T9;YrB}=v5Z6OPe6~|5D$I6V{ou@^`|G zgja}|AHo$WHX=JKinktQa**7&c=UcKu6i}0QI!`R*Sb3XnYt$?GMlJVox|bwQE3u!2=vxyh`$O)(I!?(|A6AIA?yj ziS&*)@ySGq2{L2TZ}}K}h?igGZEex>gck=@&lVO>dr;N#Csb>vV(>Y2$)I+o^Hp<} z+q7ftx~<~Xt2V-Tdm>?$&COwj98i4(D-$}>zIY^8KA#1Hx7koqGQ;uX^F=#j={-s{ zWLujKJXjY*y)DJSJ;`Ht^`uA68f>4|9!q5pW4GT}9;?;hpP*#UKX4pgJMG-dJ$@s1 zqnCIedt9X7zlU*)UZVe(^;lB=5Ca|;aP*Gf;@6vnNV;-E*l%mkyHu-aY32Vr(3bCa`STHFWG(j2e#!)Njb)w(FUkm^llsy;fjG@#5T#qR9~yfSRH+yzB-J%2ED=77QHxUtOfS2F`&bb)_73%3;pl@ z#I34aUNCLNYjY0cnSloV8Z$XFY&l*I?8ifS{iqYKNtKCxkSS*vo^npo{g&)QSEs^q zZ91!V-iOP32X@(X6@|;?&$?_r5;LA5XIys?r%_nT|%;2<4V1CYq90h4gJT$h=v77GH&0tyZ*4D1nLG`(JjeLYl!pOxPVKG-qgY_LINjXRFuJ13sKp z+gIbfb_5R{xQzwFqj0#*NSYpvZ(ai27+!@z0D=Zxiv}X9K*>`!lTnWsInO3hN(|uj3g<=T05Cs7Wtmk2gTn*LV1~ zO@)>|3NBr3#Qb%s>=Y5r#+R};XCZk^<^eo_mOQbu8Dp}O_}b4E<2pI8gWDeb&i3Vz zzyVy|EDmQ!`qAfr3iJ2_a~CS3Fls25p4CU)@SSL$t)^Jo>@k+fIm17zzWDt85bpIJ zjzu>OXwq8)4eAA)v!pwJo%dy8nK`G}X(P4Z8uqRH086`G;_mX0;JFP zPFr|=_QQaSQ*hv96q4`M7kHogt z*nP_hoi<2ss`PSrntF)NL7T*vCb`V1+=J<>rOPzekNxCaB6VCJ#>@QZ#jCC49N8Z} z&K7KZE!i(0O>j!9H!tj5fvocNFdex9(bk4yx=H}W)cJUDeh+T`Oy$CJl0ow~jgb71 z*x_kB`Zk&M2NO7Ck1-Mp;xNp;fPbC_aNCSGm?k=~Zu(^WefSj~KN9F-wq00BwvE~f z9W2dyj(hC`So`9$5HoiPQ@0JG$!!M))OL|R6FvT2;V+qf76`v9zdsB6Fh5e>cht@C z;*cc*#vB#T-CH1Ua4?VDSqq!XU&QXbFzW6K#(_cYMWo4pD1B~E1FdZCY21Q>@(6C6 zEaynFw-b0O1}2kaR&B1e+>Lv&N39zwyBE<;X$7`r2e9#MPZk-?L)!X#7~aB@eH-d< zq@@$DX!jOLnZr2l*hRR`>q+yGWARl>;7IjbRGVBW&?2B8ZQYx;clg!ZHGsT^W1G(?pLg6LdQw29hFl96GsX_%UHxSC-h=(0OrtZdq^vDzEOKa>PBwfc)Ofb9@aeyFr|>DVu}aw5EHZK0o$~ zqjt+D7~CvW4DFvoE#sGRXJmslXJuY$(LBXfN6COlslwEYqu5?D+m`I@D@N@(3?n)7 zJKMhu^Rkk-c9nF0Z`Xs>{sDBkYR`ko4=_b}Dg2atxX|l{@E)$oY}q~az5NI7(c^I^ zLmefzt;C+}cHD7CK3CWE=kp=m7%Q1tS^iBBCHpT!cPH`qg%yYiUMUpcjJf5r0=o`0 z=RL(4WcBnx%Kb+u?PkxZC#5^B^);lO=toyo8+h4AGh62R&+42&bg;MR@7btOQa9!$ z%MmQm?I!d2ethb!%?D9q=sD#(7T;Zsjl(?gy3mMr@=k8+*p)3W`(x}e=}VGq!+#SO zLVwIxT##9jnkBVx?`1B+^{m9}+;rOBIgeMHAIdrXd12MWTQqxVj%^IZ)<*XNU(0YZ0yb1R7&fc`WcJBEFfys8n`#q+21j zxj##84B(PQ-TBO<2S-cRq1A;pyb^7|X&nvebkJQ1cw8>Kc(JOqFq7Vrq2plh z>?gBW-^KZr*0de=3c;R1c<5*-0#|>-eq}wDc9iG#4&C`}jxzVXZNnjb3^+jV5?-=^ zDGyF!VCV|mpK=f(lBH?X?irf()#796dHWRm3U*d6QGB>5*F;$G=kXS_l-$29EAOB} zO>$(eZWCSfz)s%nSgn$b#(eqT6T0zEa38GPvD^J;7c(@K9kW?arKgOU%yW|6l5_oe zef>m*Yv>U6>hKNb-y*r8|19|3I*H}(J?QoB1{6(iV)PJawtFC5HlsIUbbEWDR&)w_ z&939-x)eTk@5&UJYZeb}cy*2^dK63-6(P0Q6xmKP-K=HDy)PZhjX1TfE_AQmfX%!( zuCDBbsn0byWkZ0-FwCdtQA=nv+bvF*HxZ{RQx>aAhgqDuD8(=71`b* zc%?b#KD6efQ!)qq&z+9XqPhD>7areu1pUVyL8hJq4br->bVC=8`4Gc4l_U7C;2Wt!QwI-kZ^gz01OZY5YDc(Qv z=W_cRtdjG;sxDT%_)2;N_1&1ett(A-=x{={6xiXwPUF2oa zumVFa4dKYA?a(j21`A#fXMer+bd%Y;*`MUSVAvPDa(*I|dac1*;~-c~^}#eD|icb#6Y~;E^Zg|j#2{RR3P#?pw zlEHj@zyB~{G6H3m0AP1Ph|+}hV`Ji@O-`r89cSIL?tA=8Nv(@_Fh_<3OUI`lO=FKnMC}Uc5Q= z07mAFq18{h$GzSaT+d zi!l?CJnbR^zxJiCaz2OO=#4RkIjoiQ+{H0B@xyW|B96^OllJXcTxZ47FfIP9x`=lc z9wIvGr{dc2Sf2aZUOMTgqGVYvUaXV8oVTWUD!=Px*JQ`--C`_jqlL|S;e2*&FI+Zv zh1L|wZj|}5ef~MficO+kEvXW-4hHAkX*MRGKK2^ab6F}D7S0uFcNb#cAjwv3Ok?-P zt#}p^MZ+uh#CqwkN}3PPC4SgbdOJ<6GGonP zOeznBl}`hbTbMIec|T@;=tPY_^@_3byq_=G;Myx6LP;l?2kjJmIVG5h590A$dgom& zpGzjwGlhunjlESq9IJB_TQ(Q+X^`}RRVzf(`(0QlJ)ip<-(&RZEy&w+4bdwr;5uy> z*6XBm`OiMI+4oG8Uq1@naS6O9SyxVyAHUewneQc+z`kJ(THlm=C6iBR9IwH_w)I$} z1@;@E&nZ1NiyKBgSUfA0Bi~JcT9;xhxMt4ghkJ2-zcEylA4TE4?MRuJ%Wt(?5GUDa zQ9sqW`LLk#t#x{oW(|sQ*ul z2st3m$$YhXaQuccE+~{)oJrqxFVda;Fcs+BfXy$E*$e0Ic_p}4Pf3U*P@w4#!SsU@UKu>%< zF1rkQzs2E_8~D4sFN-R^V9m!OUY*dFez}FLT(lO-%eTTYBvR%COl4QJ1HJp2a#PzT zFuyS#hrXYLQtxq+x0wKys#$OjZ;F4@ZJ89=Q+j+=xJ-J?Zp$-+x||=sO|xVA346Ii zl`fAmneiQKj)9dmIR5TEW;IihvzUBZX>{g*0AHA%iswX`32)o|uQ;Hr#B1}%amlzu zB!#V%9U;kl{51r5w|*#kww4{vh#aUqmOaUfxm;zDj9Vun>GAeGvPv6-c~{92Y|Q71 zFZqhj_eaq6&}2o(Q&mRDS(o`XTQSLd4zz7!dDddN;%)YGL&r`_bV@sl_t8yJVvXY`O@={UdqAB$kh7?vY;FPFQj} zgHCqx+~euU=VoRcCf~&$7MI|SV+zz>EWz8K8}TQ1mtvWPH|I!a(a$wwQT{2C>l+3# zcvB@b4@i&CnA2$RPU{giB0 zxmDk@KXF8_%_qR$|-fT-oVO zVA9K{C|q>_vwjHXw|jx2_Ag+&$b$YFGC%aILX?KYGJJq3>)QlSWrH0O6?ypfaS+TN zrL&^N5I!B0OXpcKw{2C5f?=I8q}o8SxpxXf*DLs~SqdGKyP$qiPtF?U%+iD9@W0{B zKk^*6_V!%V2eyLQvMSt`JNtxb3A~lP3^mS^#E4}@gvM}McQHqBqc)spsnPzhGySh^ zl8nINOsw>Sv*a=xd~7ObIWrI@&lAsA*z(_%4%BGn!C^g2kLsh7D zse<=meZKpc&oLWAp{b;UefM4Xs#^jd$*#kRA6Cpt&gVo$Kc4b9gRjMwwD`FiMs-eH zGE2G^Yy3pAqdhiA_C%F!50PtN#{0D;iuN(BIkYI0r_Wvxr!5AdCcajf_{Xq=XO*}+ zV=K0lO>uYlmxPEdhLRJq6uJYqzsbpY?r zT`5*b#(w_~jd*q`MRIBUxa-X@9QybZXSW_wtWxa3W|{Rjx-$?RXU)XwZIT1`Wh^i6 zABN94KH|-=Oll^F^OT%3E!cS%A?^KfxUCmI4hV#Az+d!~KaUl`?fFS_I}X?G!qv;l zxOiTRTAi=pZ0sa-*SD3s(cLIBh?o97LzYE-cB?zlR~!hq30>15Tq)d-Hq8g~da^ag zy13HX+)s9GlhLbYt@v^IgZN!>9j9Y2BfM@n!P)Causl+S9Y5wGdsPZkWwurfYQng;Z8>Uf zfA^`?rBL6HEb_AD9H4l!SiETx0$zB!E6M)-g6}%a3G>Gc-!#_gbz@_LuY`vsBAdFI2W4~rBhGE}gtl{PN7 zDO0R#eGi)PnfQC&Q}WIBD@vO0LvC;+!!94gwHt4b*@dd7}kvoa{^Y~cW zgiTJW@ql|4V{(iTqOQY+&@9>2EJHuZmy3QoidDcIQ1eF zc31&)GK7b|l1lp-x|0IpWc`DIEghGowdL2H!wUylVS3`lWLJa`pvwn*m3?H-a@;DlBM zGjO_X9#7xBi0^lYGGFq^7p&>TQ!_tfLdZF^Zao@P?_@Fk@mQ)EPr`&-t=KX?2?pg} z?CRHxA%5Qcur3M5V=VC4ZUR(hG~Gn{T_cLXee#0=aqYE7>{i!spkmCktGHd%zbkYxFQMdwnM=iMKbzhb&l|CK0EBPCx z%pt4hAbYPbhKK)x`U(YmP0r%u+s#Ekt(%BkGKN>qPWs$)7&os3U(fn8k2jA&F#e1H5qId zmPo4+;G*w0;QUQ8fojZ=zRixu+?w;iLbtI z(J+V|B|=OFaD(|)VL5*qc31Dm1Wg5#z767k*~?{TZnHW}s9J8mgg!kx zGXGl$FX#5=(@Nwl+S@l>Eu+Gve6jg`)E~9V*Sy5Vb#K7pUt7 zv8cv_`|@AGQzZh=4Ko-lY_R)$d#0#sFvrxB*F`59q*o*Ff&6^OXP|qvFaDZ0#|DdL zjO{iBKjc}hP2dUmUCP0R4sJAZU5Ot5BxfQgn%C+th-K%zct6LM$oq`lwJXK1ZI{ra z*D7RmPRFncOH|*k6x%{1U%5?3KKnl-Wo0*aL$7BtgY_B*4YPJ!velel9u4R16iu$Pc4L~d742jOrT=sX7MQP7gpAUl zOYJu}dur2rVJpUF=ForqNT?R>!m#Q<7W+!3s8L%{Hbswf^9G3AMxf`?`J$WL(`5%N zk#o$ZJQ$mfdv#jysR796!Ql+QIKtA5@ZG=yIi)j8^1yU2&a zzk`^SG!4C4CNilqklW=w@z^YTUX2Rj8V|YiJz1`pb8!JwuF3s-4{yF`*??~~eT84N zBZnK^!;E|j-q{o-xxynjR`N0Wcn-td>LNy)8)JrO!yTdv!@SmthphLBHA9<5MO%7IC~#Z^8YkUD&4I8*%QM8shK^Ej!wyYMwHJ)KsYUQhLfhAI5_L zkFcV~oJ-zjQY%aw%_Pfu@0fi!7!l7819Djt+?l5zbmM^$p~AH!p1WjzNJZYQUuunJ z@IPnfpX^QVGG#GXG8iX)dMz?k;*mZ&n7@y@)B9s6`&^HOW}9ciu*GmTdk|0CUd{N~ zV-)Xp*n_N{GN+v>-Cx)#9U zMOheDB|Y`N>tS>{oA;*qVZ?cJgtnQ9ou3~#^UE6v^R1aTRv=>VXXq|%!VwPU)Uz<+7sCiHeg7B(H{U?nL&>VW zC0&rdm#{1A2Q;%?am-np=i@DS)^8lPDOcn27!&rr{~dG374Sd@RVEISjxx1e+?uT` z{VmR1RH4JVl>_)X=O(VzI3np=J6OKe;+8Q7G5fF@Z`96(&e$ZLke;vfW4?G_y%L-I z9>x3~o!MgF2`o~Xg2+!_QPX9oxX{)K>lYqGr(Z_gp*~CAL994kGH5s7dyJa*6Xeh* zkZO)I69*cec+eCE_KTr6p$$8B&lCGkkHqxH$3@lsKK$er2DP36oYm(8 zy2pRT>)i>oyz&4!r~c2l`~)+NCnyXa$CEa)FTHSsh}qVS?G#F^9a%u{@FQqCe=;)O zJeB8!0@3*Wp=2XY6Xh+Up=*`Rh@U4Av&{#CFNbpO=AQicw$gn^YuRa+ncyXN-FW4P z4k!M%AHB*oXm)lit=^TPbo?%O`=rx(Oq86nLFnEr#MHy1dEk@{|H_QYZWS-q&X0nA z(08=n>cRmxd}vhnAMUGu!&Uh+oTf2L)E#?_+qnju|4oZe8X~dBD*+vbF&#g**WQ^Xw#CRe$wy#H2^!qe*@TO2tVLRx8{6a#rpM6^%=LUEblj5I$2^LjiU;oZ{zuVy2V(iQ zVVJBWWJCyMWL1*QdtYai86`3zBSHfiX;^I~X({bQD($_8(xRoML0ekdGWxZ?>-(!e zemTLHt=EOWhZG;Ao3Aly%?HbdzvN;p;7=!e?#S zG4ILoLnyB9bEh`PaY$%8Lz(Hv#H6qUXdj%6Qv-Q7zd4#D%+8ar_x`tX5)CfsM|q$5 zXVD#mi=Uj~#!d)W{Gswc{_G5jrnEQR5!f#Qo?QwkxZ%C1T9Qxsr?%1aJ?$cAj2iNz zwXqu$g-hg8svK$p=^P0iv@n4rq&LzAxna%*Kdjc0!gje}_NrQRz9gTQGB0UW25hb+=GSHWZq{%wrBaPtM#Wb)A(ahR%6R9^nr7xQn3blLOiP zqhV(*4c*Kk_`2{lamYg`ESpbDa@LA)duKe@%5EaX42=9@0&T0Mv~tI1F_9UE4_8hV z)4k1b{K9(LzsVhozop=K(Ri%qz2W8iF1YnJo35n>k*Q;aSVK)a*W8P#sR}w3R zyf{a{Vkh9sT~qvuvVy8@3EgV$O_TkDCC?_kA%$2wn8|OWy@?Yg+b1|7z1KqeI6R61 zgI-d%?&E2Plry^IjYXL^&xlJ%1Z~VgcWX@)Eo6tMXB(mE9`zh$fZt0Ni<`_)D*53} z|AzQurt~A))H{ZEQiDli5sq79Q$*Kw>xAy-^Hg#Fy$Fpz%FH$k*v0pQQf3G?`L7X| zcgx_b<#bG*>n2ILI+<*%BGAk^D3xAj`0tM^KK5a@#_wuz?P~zNvvMNeva{m3ofAGi zc`fN0@R)`id`aJPd(fHNk0g#|qoE$YLBt*WkLoA}Gn+UEzRUx&hFQ=%=7B9T;&VYE z_lIK*c*!P5$CU@5Q_quP0*$eRxtj*Zli?llox1h!l>Ck1ndVoXadIAGb#4&e&Ff1( zPkzv%+vDJ)DUBZw8zlRcco%i7k#5J!!^Je8-n^PeLsmWzy3BB?>bi<9jN>ft>~QdF zE`GWM;^(_PbY6QC)qUMfNsX@5Cr<^p1KC&1y^2L^r(pN2OJaiTBr@Etiba8Oo=l+JavDf0)J$2NM91oG=PJd!vk<;`wR3mvxDrftmqb&w5a+7FOaw76{qtW#B zk|cs>eX~>_(}Gj)saNn``XYBj@+B@Fqmy+-P7dd(OY$&nT|G7MJ6YmRexB^shThiA zjbhcY;hcfGL(|T3Ztjw)==ZW#c%QpX!@hLKeReK4?rmVu=Vj{8v)nZ0aJUz@ zN{&x#plt!y#Midzcs{?k$mSh%@@rf4&CNu0yA!TgUL4jE3Ix)k&N3Ck2gkAxH)r)(A%ksS1FuH_~9j{ z?`b3R!+Gej?yvZe6eu3-jfC@=TcTsJJ8gQDPrv4mz@=D!yzcXne7E~kR%%a1Jg}eT zi6$(@Ink=&x>%6LxwLJ;sG2*QCX}_&sDEdq77e* zXB0kD9sR4B^{B9pCKRZnKGIdx?d^$kZOZ6OlZHVbV_aCRhP4}~KDHZ4D zHc*8(_j*^ap{9}U*tPmJg;=f>-G}nK`>;?-PY6LoEXdsyHCxxIY-&eg@zjKp^MFL>0q88Wv=()eD{1Y zca}1Z4Ru4=x^W^raXIyHyGQ2tK1tT~b3={BX3Dd%M{d>*As@GtX1v@_=kld6bm#~; z{_us&^#*F(Y=N^YBjEIKDeb@UQ=~q7CjRxQ5y!s17bPF>(^HLZ^f&%E_5Bh{Pnvq5 z=|VSVF_h9T%$M{PQfQO+<}*bat^_NLh{ z`IjTq@oNI6tB=Rz))f@9Q3q+k-YAjh?~R;4{p(1>f(AwEQk05vX3+dpU^i2BE{x_V zBJfZbY+vUD7tim+-bOK4f1Mb{Ebz^nnRnWKq^q}{74`Tx4ojjkFeJbmp@j6s$5pZ=iD{cf-^PlgN~{7{>DOU%`0k8MyKrId0e?A}9qTOUlVoDW|)XARZLvnr~c z&~2CvzIw~i)rrkwc#0CUF(b*T3;SG8x#4Jd4EDeC#{7M!3+3?SBQS~+(nMzqmqM@M*W+b$mRtasbIFrQHenuOdVd(h)Y@YoS8i5 zO$I`J0?(SQnUxu{T_}w|F8212$Bb#QVvXfgXe6q@p7%coBF<59TP$t8w?G_InM5VO z2jT1JnMnR~o_-HlC`PX`z}SkV^rSWm^`H3~3<(q`ivlTQT^NjF3WQ^b8g7l0!JCdM zdUd;1OmAbp8SlhL^*BIX7wbcN*AgmSc$8N6oQZYeYPe#ig7@7GC~n{)3jF7TDARTH zy(IfJ2@gGWT* zizEb9qa%^Fw+lKAUed5Z=qL&M+ICWQ#UdJdq=*VVTWIYr3tG7$i+=d*7uR-&;kb=9Zf%G{;`TKZ)iqO+ zcEFgPy?jNh)CMs}lv%o0jB)$+Qc`l%#5lJ>&~QoS`G`4QjNvX<(r&Jd3&MkU`7~2O z9lKNtj+j5@l~B5>BV6vLW6|yu>czX@ zC7Z3`pW7rdeR^WuS!a~;uJ`gLg~`b-aG_9xPxb?+sS## zb@VR%0ezalGY6@=G?Y1Q(gXWob^CEKZNU)o8#0eBOx;g=OgGYkPdvYvvP-y}I8DR$ zDKH<3InK7@amm#idiS=|IN^zp%vxzt+)3qYxHQci~9K>DASIW3CwpMK2eVIJ>#=z>`7MfAllfJulWlowCjPG5bPiJqi zqeKUuS34->_8LjImMAoho=D>=T@Za#f}ca;;m14Kt@&9PH*gFU_{!nh)PxgY%P zBQdDx3r$ZnMx^a+-UkeVuG?nHKfFug?#bS2D?7-I&7{63tLej)7LxmIgz1aiDAhKe zg3_5``MW=!9{wxLT0@xiAPsL@PZ*5vhexwUW0S81zDV7q$3BNh{qsF)D&UNMR4A60 zX=2?&RhnPxjw63L|Em^(yLZ`nUcZO7vF~T=vH}{&p3;j`91y>QIbKifu(*5}`QE%N zIzPUn4wpWVd9lD%$#1>baytl`SFg~=oDH;CDF{glqw%0k3zaEp>`a`7vrh)mb=jrl zyK*K?&RZur-o#x-Gbyqd&JEMj9$4cL#IDZ_v2mV(sJpI*jC*gT4C8Al`oR(!IqHDq_n)`byG%LE|viC5Yvsp_|oBJTY zr-Yh9#xYmwAhQo=V12a;rQB$v1=knT!ke5$jjSZ^ncszOg%OGkD_s|O8)CM0mG)4vNI z+^(mc#WNdgCD)QNpv1@8N*0}I2hOhr8n>FZ$_5frk^I0&UnoOp#Gj@;< z=3Ti#W}`-9bDAM;w7bK^gwI><9VFFF4K{yt@nRY~pwpL$6FvCcDmRkWN%cn7AYaVl z?~9vUD%|~^Q^jyg3}JpARM9XFj03!(z+CJn=yP0J%Rap~esQ zDRaUo?%rllZ_WPb9$=4dnuT=bembJ1vvKJN_X51uh#zA;M8IjledajP^%(OWIj_I^ z^8u1=%7gPw!ou~dsd_bc52W8xO-QS#l)Wfv7&#IWm634jm4E>Snix8eS!ex;mXyy# zip&HtvqwGI)mY-wiu<&-<{`~a(Z@b^X&F!GNzr!obluUPd=+hwFfJ9F#|1-X&o7dC zp#hnG;=lSaNbWa+syr zg`IU8d4rHXKm+z}g*2h-Y4Yf01pgQL!aVQ`{rBZNEe-R9_Szy+xF?UK0|TIx#{OCD ztE5?%j7wR<6T`{Is;wGwzds$qAsAI7`!T+gLH-G3wtr(cESo9m5` zb9|khIl{d8o8)Ykik|Z6m>1VU)IXN~&CP_!*iEm`9ibPOrytk93<~i zhT?FB0W>2gAk%v_t<2WJfT>2fc}5F4+HzQ7bDsiJY-oX82EM+VOVg8-khwgSB*`5# z{DTh${ffaZ&I21!-oP%Zo^V$P zq|as3>33Hr6gs$*(%S<1___zGCdG*Z9+8-_#f?s^%%&B?-4Mp_Vy)l4k&ONfv@Y02 zpZj#fzI$EqeE&dd`T3agFHXhqO~Yy6byj}8OTffjb2t~K!2b9ta*ObVv8o%blDZ=t zjek+V-|^yD^ii?fDhjT<-_wu&jr8#7b*gHy#jSEZbRU=uqr$OR`|b&Oy=$Z|E+a8| z*GPoEWe$<bZ<6noSHzU=laP7Z z2x*2%kXT$1OMl*>Ad@K0^=o4NzGR`Hc2K_5^+!DPV}Dv(9xiAlBYLbNF8&^i!{_ExzP%-e-Oh#dQzK+;n~F2f z)sWS$iyLRd#Osv?bcgbg*|3GqS?r)%=anL2fIRLQRtS@~`glr8_**a;Uvim=#oZ9K zz>yFqN8;8^P@58a)_tbnQ9oY=Yl*veWIo zKhEy!hqnQfQOWbnRJqkOcC#i0a~8WXJAux|ucQBLM`Ow0KEMi1{Aa+X?pxo$tl`eGtMM|$p;Y4ep3Y`>@tH~HQu^0r5l#eMoWU_MPSIz#T0J~E46 z4yKjXI3GVlywL9pgHK7Yl#PJyU|py^kHdeH$I^fqv6$8)gbX8ENXPgixfv{xEchdX zWs!SH#j=Cm?OHBET}PuaWiSTn?;`mP1*E`A&q>#x0~6Zcgy{Jkw^=6ch=gh(7( zKACR!)r9$;OY~1umA(&Dg?)Pz<{w&2YA*w5Zt;D3n7)*9c}MFz&lbtD9H`x1N$WkB zACowQy8u zE)Vq9uH_nWP;KKMUs{F_DgH+}HEKmmQ;1YlV-dn&i>q^-VL_^@Ox`90G{9`|a( z~s%=2!gUD5gUbLK;mS5<_Rg$F04gD|<@9-%jWD|IewB1@%-uz99RWBeRAL3)ga zoYJA3Tr-7j=jLD&z2avx;t+4XD>=jF#2A& zAe6VAc8z|n1-XltMXy_O7{;DRv%}pvN0NY)_p!Kpp+6nSE)k&t8SwV97ex(v2>N}3 zdX;vPd59{tTFOH=c{>f7I~twW8tCrsR9Zhz4%Y@-q9)P=TUR}#i!nX1YT*`AY{@{` z+aHpq_xv|v=hY2K7^X3E#b?S68XK#EmkoU>$8I{T=Fg`8V%THHoT#{Arg#+=i97zB zrFfFgtdOk~{&BmwbF7s+%gR7UIz)2$Zvc8o*oV?Z0iq%p zeVl^wC)`_qL#Y1rDZpO&9-hIj34 zT4<6t}G6cyawC$7hT7T;gKmn;i0!MSIy z=qAUEg&(na$$gkqJ9`v|WT8poiPWG0_;z%IHS9 zgLwOeIqNq9;c#yf-gA%k){rCO+TduaKKX#s)4#Y{Z_>p{n`QK9vg0Af>q#G$o?D4rq8O#y5U=j}NCI0kj=bMN<~mA|E6V-N`CcS?|Xos8{Sm9)W40~_uV_A+aF zk>PmKy7XO4`<6tvqs?IATp|=yQy_`=1l%{NZfRI zZnc3N?m45UssTvb0%uCP(ZbDDV#+LIP~RT34C8yNKv^1-XGtAN=%QPHD zBfK!Z>=8v@jl;zrdN3bbLgn2?V0^R&79Wq`-6rRQBmap%k939I*8<)*Xkw~s02b^l zpc`SY$YStIy1B-QxnTvQ(&Pr?w0!D5^#}V~+%Y!fok-apgz*=1>2FOaHeBP5VfT8G z_B6&-tBB_YL+VI*Q4OWM8w9z_Q!)EZ7Itol!$J6LI@T4XBO>xX{ostok3PD1r!bxOa)Bt7<{6Y#1>MaK!~K6JU0=P{#?hDB zlycse>XT*g_J}*SyqqJn&&|Y_%kSyV@m?7EK?hZRnQ<5Tg^J2KbJ(JYAx|^l%KpPq z;rb|^ds6KBbdD@eXh$*8W~5pYb}Rrxzob-g)Fw~B#0Gm-jE6IkE*qr zWHM>Cu({E~%-sWBb^;Jhmw2P z;gXsnNn}1y)twLGL@;Nw)GV;^6yNWczoR{on`k`e;uJfsk>cuN`Zl$lmX*GvX~!z* z;Lq)}jNi=)?!2NP`J+_Y^*Y54ydt^F_n6DGt0+jl7aYHSrlf_@B6PSjM!q>LddAPf zn1FIRru>+OZFxZ3#tPK>#bZgbGqgGT?&=VPM>@SRW7`+{bx>b;{z$=~CG8?1`uV&HS^DDiq_5(2ktfaTqd=Y-@<{Dp zKTJ|7;@@DBH%-$Q{4~65@ns9NtmjyCcyI^f- z9_;UE;G%S=__o`a>QYka$jv15Jvt2u1NKmqgDM8!;~C6xS#-|YMme3cxpR_=D@os| z=iVb?Uc+*ccG(hP?35YGeXsnHy~);e4W&0Vi28PR^&Mp9wzL_|3kn9}oJqq}569#q zNcY=I;oP5hGh3@^g@FwzFp;6Y9?{GG%f!K)R!RAi-!!A(8099~Aa+t8)IZ$m z8e_tqC%?56H10gz`3j7G(Mr>A#Xw#@7xUK6re@36B)yFp%6e+p`_O~4@$UFOsfcDC zFC-gPLxjC(q?22^aQ=^(gfaOdIj;x3nZSA6Ti?j5ZUi-y5z40SqqWREjvTy(K6tZB z>_r!LPbvuSqc_E`tGj8`-Np2Woj!phM_`O{G)(`L(kq)!6u4IvP0BOLz&-~-n`A_I zQ!QON%3aP~>d3z+D;{+$63^@D%lF)hXj z-k0XljGf$L>~zH7l-tY*34n)sCMnHke&%frd@1y!nua#o;kZpCZkS2NKX`X+rH;*< z4}GBRgx@BDy9(3UC#(a-@jXShn}@iUyI!)6_h7@Cdr?nY8)R>n!%5|?i0yfcZ2p=e zX3lv08E}V&t6M?&wIdB5*v@lUR!>YkMyYS}(EQJk+-z*WX^f<&`{}}9V2Fwn zH5R#XPIVwwJ&J^ih9M1$Ou(~wy^v6&0^P(;a_)A4eqCYaG(TT*Px*;Ni8b@IX5k~h z7q<1`vxn6-I=s4&4ju-q9Bj!=Y9@4qc1 z8-a*ucf6_hLs}{KTSsc+MsH)961jm6Ihs@a&Be6zZUp?souyx^qQ&3?_el4^Ak573 z$1mr0>bJO47)Ku$mfv;gbAUf>o0MjYPv0e*R0b6K#To;kP{uWg#YltXXND*J%&}Weu?zeH~cUcm;XgR`qf*e#ipF>3v zxV1eN@(p&><%Jr>jZnpaKzB42@mb!`8XYqt@M-24WbC_3>uxABH=zfXtL-H>$0uYk z@F{7%aN=`(s5s48o^=c+XyE-&>GF?MuuOxhNBQA!dkPuM{6upM){$9YHOXw?PV;*w zWX#$_<`2B^yw_l4YV^RA6aKV8W)6w_f5kj?OX?V;k3Z7PUC53{N>K*=I?@H_=B1H! zPal-s8-fUKd^q-z#_M7q{J$%F+i5r)lIM}Zf@$>dLO6LzZ6{YHcdR5?`nq?H*xN0M zJhYkJQ|ADmIo42Vbi;T#6*@l73uUh)a4d|%!X*L~^V&sY^DbJofKabvK`pndD0#qA zG2wLt=6POaSF9uc+iAjGj6`@H;;iEXfuyor$X>0d{fa@jugK7zD^+}UH>J?Un&>X| zUi>=e0Q&Qq9xa>>dwE%5+qVY{(ic-*=_Gc845jkp9(3vS9dRMHke_2xNZgQ4rt8*F z#2No`-tDLYVCk?w*y(uYq z3QTm8d3N7}KD;?dzYofx>epXMCBJu6%pQV=vCWjEo{38z#v|se8pe#C4E@zlMS9Cm z+W&$5TAj7zT$qO+pY1Skp$ug=J|fLtI=JRsMV!Gxyp}mum8_;K20ExM{7O5QOhbsr z9ojhKDzy(z6gO{q;=7b8eadozvs^f5UHW0SbsRod%)*Kg1wTY~m$CA=qLwajY&_c0ERGm2~5~M@$!2XqZ z*?%N=f$OQesTJ0Ro#Xw9137+-L!U2wp?u32*O(dnwC0|$ai5Me{!wE6YA;Ng;DbL` zX4C5xi`l_!M`vY2Xi08A3YOJ^X_O42F7nJd@{$N)PH5!H9I=-CaXM!*jIBC_msvA2 z-BfVjDH5L#=aD6MBJN#{N4C!!ib^~}-H!VqY*!)ez0g3DWVh0&mTjaNosO$(?^10) z=1u)Sqq{8us%KK*tW+e94z;3Z&TVx6-V79;GDPU8ht!vI|ILQ)X-G~Giko#Qe2O(4 zSYIo-cup5~LH;;Z=>fG9pwk1?ams8LUGdOk{+|>i57yF_ne0T@PZ9ct=}2svgal_( zY^nQ1|8^XuP78U&)O3i@gP+N4Of7kD91PVx8Mv4tORExV#if3^s5)d$Zzs+b(tEfw z?Bz|1T?zBnx6%xD^+tr2(#X{wv|VGE2zVkz_6me^%d!z*!fx+hD=8_pD`M_s)6b+I z)ETswYS(Mf(vdolKFZl@dv=`a?V@}QFO*hH!mwjKanxBF9x*{QFu;h<3;cZ0Oh(+8 z{-P>$94@)|q26sTU7K@=JiINDURfzxng8-)MHg)Q&kV97-jl(74-8V9BT>s{F8;-7 zsGt3l5*vcyq<4|t*_h$3{d0=&9Vaf!m{XwNVM_GK!>H8WaDK6Zesg|c)+x^So$ZIk zCH!-2JVh02&rwkk&&jT=psCf9(ZR{jsO;DDhx2>=E@`6l_)yW;%N4IfrlbD)W;(s5 z2YvsniS4PaB>#{*90Stf%>TX`YJ`C~AZb=I@E4g~3yCyg%mxXAQ)F z!gw?`kHC6&FO>IEh2`%Fm@`ohN3!pdUUV`J^%NMAZby3`Wx#9A7(6v?7D3j*IAT5y zn*HtYMc)vgZ}B{`t(Ih+3DOs2u;xjNWR%1bk2@@=QEm#(Y*9jJ`*%{Ayj>`6a3Y

LW)+*FO5pTdK!-Mlk8S0Y?17aJugnZSnK+tJc0gYIbv_r zW$~!f7ZqM(Ip>{86X$SG?AvAX$@J$L>{HjjA5}1By9eCMW*{f^r!cy6RzyU7rjf_O z$ynEuq-JwRtfUXF%$G;c-I>geKO(|={iC0idUze7h&f9O=;GLiNb0?MjBZNyyKbhA*D4s9VfqvVGG|SDhVjp#B$iQQ`BbQ=OzdX)WFO zB}h5^Bb__vjo)`Z(zdni5xQ@M7s{2Q&(S~(?w5)#GjizM?NJD355m*H3i={bLbG%$ zsD95h)Qt;wj`FbUsZzog#FW#Dg{&i!P0I`?QI|Nq;CP1GVf z=1cTb#YhGSXQ6N=)6%(I2{L+(HT$tq^4CgLN_i{QEkH>{HHudW!BJETYa= zp_K8S|Av`|=_2!!io1=$<$sSvK;(F|o$#dR3B8$D3G@rsC6yo9(EIIziC^DRj)n@B ze(^>8-N88MH63^J5?~b-kDp36sI;Go@Vl%DH_r>yq#es#IX&EYZH|t8afp*)nqAFB z;o&d?8Lx-pi*5??A6lX8nK6#VaE4%}uXx0Js@jDKusEjzjqwUtHo6a1>g}eGAY;@O zsbM)uaA0~5oRRK@9Yx25=>u)e4x^b%txob1V;t;gB|YPR^xv;&{u@mb=3nm%S>EHF zY#W2K=lFNKZG`$W-e|e0gUf*mm^f?!4f<-2J)Ft7-AW?kANv^3rP9a10xF0pq1Cok zq%yiU#gCQ2Rc#3xb!O4x`?eIbc?x7cPKS^2elc!~NWYqR)rXXgf0t8};YVm_Kodm@g%=cdj876B8U6Q7S6! zmq{X~&Y}xagUB#a1KTF0qw7f}R2+^K;@?I(F)A6Azj(&>*9bA2cwgA(D}A;0NB7!E z_^_NE-<)f>=BF=ljK3_L`oCp<-CWudor=0YUZ`<7OeOielholISHwGszWOdYGqPH^ z7%Jh{ReS1NpNPLNqn>mH_CHDWbpmOf>^}(-6-)VzY26X*Z(eQB_ee>pCVD=+g z@be)v-xra)@^z9#Wh2IWDoqJ4mSo;jM%(P)!sXjoT9C%PwIUzHamTLa>kgX>c;R zjW|mC9Dh@Ve;9gS*+en3KF|@~$$tvmM20qg5>>x&kmDu#`?yZjW{#qIlf^>DE&@51 zW3hA9HF0+8cd~!QyRi6T(%U)#O=EkbV}DoN>B_T6i4X0L8;cLMW5w&BrR4wS7-``d zr6l*Kce%{|((Q|T%fsn`ix-tCcA+bF7TESK7tRUg;+6R{G~`Fq9%eb~kC{v>4?ENO zG!sf-j>JbkzuGj|VBUY`kQzIiJK|u6$Efs(3plK=jd z&bkf66YlaEDy1Q3X%{?u%6UrOeH{LKTNKG}a;-VFN;vN_LA;t7Dizf+;}0`G3a`?L z#gR1S+H;BJsk=1qMyv37JclwKjl*ZZb#zo`HMJJcCH+<(OkVhj%sJ~A=V~SPo9L1+ z&+RANRic5tQb_6zJEwW>t6FA5HrU)o&#qn(WkZYUaq%O{`Z5Y1bD7E3Sw;(oA0=Bk zD~yu6A_D)!k?m-I=nwf!4~DLx?d=am*xVy@>52k&9oR-UIk&kd{}*j~-V0j{6-eE# zlU7X9r;hv$^y#=i24CbHXh#B$oPJE&u@)G&*A*Kw&Qtb0?mpewPx1FkIZyJNPRS0z z_Zb%@cKt%IhTplG?iiu(`CAmVR+kROWaGk!p$P4wM#05msER$Dvv)XP zhRIt}TJayvjB!D5%{Y8u$DH5eaTMCe4p-)$rYA4WU|!KiE@`94y=e%%2C~a&Uk!B| zv|Li1)JiJ3Jy7B~3vbpgq?F!S@QSfVdh9Z>LXkh~xV{KlDT@)~CZc3pAGGqjxzYt4 z7#4L!xmgNr;EsU5ViQI6_(*b(yy#fQKeCH5#7c{NVHQ;(G_-Uugt;jn2i=gUBzJ)| zcl5_FC+I*CAvrJs-{;$i`*%!f%y4EqPQf(F5xX`(yopXqiYetT zLosLNSFww`aUxLeDtgK!VgK_VRN~kusYuDEVN1rq`)wFPtM1UI&NF1IJOi?+`zb;1 zjOb>bOov_1v1|Ga#Sf1VI>8PIl;qJa8}?W{OT^Zp2PA83tnjSOM40zeM`iH@%nOJS zKU$}uD(Ql_zIcV?dYu+*`x%k;Y|c_0nn|;sZlkN89ig<&0-ZaYm?Ke0VayJ?Se{Si z;R!I{IpmFM&O=XJEP76g#%*>ROl@GU@b$qcid#eKtMy=CV}VB#LR?kK3h9Y&GzfOw zdEkEN<~;oQxPktr{U+5&M=Um8A@=&~;bHJr^6Y4&?dr$Kuu2hyDVcaX<1u~T6Go+r z*gYlxoObN|MU(%fV);Ps3$a&P)*u#RwBo6H8GC%nF1vbk9f>0`sqEzZkH$??#ua|I zP;(oHY=>Bg5PQ5)*h5*r&y!r}K#6nfU{r*+(&eecsH#St_x8)hgZqK@Xn zBhjL}Rt$IehfpS;TMc&<(7w+C8y1(p@J!*|DFI?%@FV47?Jfo-uMo4YnN*R4pY3snjNP00CH^VYf z8N7;?_Z&h#DpSO7Q}!Aq-KMa73yN8*iiJbj1Gh|%v)k8&MZ$2hkpNqJwNTpTg*5ht zzNA8)9Wypbh`RM&Y&zc!zVdO{TRH*-F$Tg9HKe3^g%afkVM%d^@LP15^Lm5n$gd~t z6_cU?x6@D&HU<^yNp$q-L(2GahF&NNdbckPQV#5RXltfQ`#Y4GSWOX4nz%48mDYXZ z9ca1&J-z7x;|AuZj3Nwhip4Vb7s5a`0Vi!s#Me+CN^a&e_o5EEd_sbY-kd*4G)0$m zeXPIu&2#HB@5y3w4xWE~M7tHrNLtkq?N7SW zy(czs?K2e*_cQye*9ds_mByI9MmQPSUo5%0n7kBHF)uL%OD}Vm{gXB(m8M`y0}o=4 zR8Z3Uvovdp2SNv#L%n1a*1A`7ewuR~>)%o1pkovs!(Of-%(hvdL61w5U{|Yvv_Kyb zvCtfI%Wu%4(|<&n8tfO)1Q?z z>_`wg?i=F84tD6e+0o{v!El~86&2$(@MecSrj?A77`3otuD3Eh-O&{=UPRS>Q}E5^ zr?7~vry^2hrdcHYxh6}27FEJ5eLpR%Wmm;s=CDq?<#Ng@n;G((X!yrSOyi$-(J?dT zI6tMAVcSS%cOy-bYNu~JKQEbIOhq0S=!B6hrk~2i6ZLlLY`4co?(vzX&nEr3Dl~bO zBh~BursVzhWcACB3YMIp6T=k53a>csUZ#_>fdw=_sgT8AZ>&F`jZD8t%)aW&jDT?A zfLRDzA&sF*66joFw*7}B^zwEQi6b0Q`S-kV8?1o$YQVQ=cKEkCfrg(Q4#|8u$;Ezo zNG_R9hpvx6_m|wE3QmM|SZ~s9Pr(H1>vZPYBuV=FzHmJigzM8Bak}d?Y}|HKTnUq> zkTPZ(USmGrs8y0C&dBccuH)Qc4&HoJ!?svM{Fog~@tQgKWdE0bF|#x7Lov-~=4jo3 z5ajps#K=*XIe%9}Nu{~s>{e}hed`LHj8KBY&=TsJ7Y_SyNVzFC?}|j|?#Y;=#5~0Troz3SHYV$OpmLGGA~iYu`e=aMi6K~#n2V`` z`(UAjoCQ~fTOTLbehP=z)dQqb+8vXg?4?_c^GTEWHlv(1P?zlo>nMBJu&->nN+v#z zl*OvwYFLrBfiBp1AW_2-i(0#i%({KFoBNR~h6Q8&Y(RUCF6z&6mQT(L@6+ONUd;tT z{vYXKgbj9;CS&=BAL8R|?umpC!@j-)VHDCEd21S|njM~>uH~U+(_X4pw?((p7peYG z6f9;*(Fu*ol;H4+{5{^#@U#JB(PgRFz2UI)oT zK{J`V{ZF(mpGR*TuF)x@C~OM%z>rNTSbQi1o$Gl<&=`hS&V?dP<`qf3DiW(s zlIn&lK-G-DXZbU*^OF(Yi!hqFBti0a*(&zd&A{kUzUZ$y6hHPHq%d`FdbQxbI6N`w*(W?0?$T`>vvwD>Yv*sePd&OTmeVwzIr`_OEmqh<)o0GLoAP!a^CYih> zx|sT#N@mW$G-EB&pQ?dCc3ixEGn|%8h{d57tJt+*g2Bu>wA*ish$REb#?uz+JB)Gj z!VdcQQW=UP$|aK@PDQa>9=fbzwjp!r1AlAdMez+X3VcFVzin_^F_-jYi-pCRQ)HDn z1x1Oj_%_xQ5!y;vmd(7nXPc>FO)TaeOU94KI&`+SKfH6I$ew%7FXU3_+J4S{#!bb+ z-N&h{ECiO9hmiXDX*4s|9Ua=GbeMg72OVF~>Mk=yKx#j7czc)r*3YNmedmfUM?-OJ z$W-Jem?G8uHf^-365&p=qCm$6x3qiWr&Kt3ca_24r^6%%OJ56%UT^7uj~iy|@^fEC zl~Vig%&lyys18+viIfXEm<83*qm(`r1frJDXZPFU(KBrZvdp-zb=U&sfB8DGpDpfb zWMOi*-6Sz(?{z%$`8sRF&2feZ3Mr=u2UU9hVlpOqSmEnsS!6p|la#rtuwQVU?A5Bp z>Y8nmVcW*RGLvU?iYvsWe*>{@k2^a;L*X|{3cXKu#{y;!P6{Ec_U(e5S{aD%?F8kx z?ZT(uEL3h}uE$bcanv>qgUt$QDR(aSaAsI$fxrX5k*Hr(CoazYB&pT;DCxp{AotWk zr0`+`@5+~pvVcg`dg##s=H}c?(udjHI?B4ykLLb0rNhH(XuH)n?@^6#&`MZ`$w($G(*;W<&4kK@{LMqCJ! zZlu$_VgiO)yYpgy58-*o8)H8YW_JHL=Zw3abO@Zt*IWJgd_jWZve|xoH_j4gFHK;o z?4UFo^8r1xz9R>+@6=b93x6eZaQ;O6v5nw;Ib+>7<_~n%OAld93>VC8!Sb0S*bptd zrNMH}7qJuQV8zrPk~?CP#XCao<3Dv~u*pM|>X=GLiyCi_P2wlnov8J;Wzi_<)-c%u zmoe6g&7r=`rgY7`x`0K&QTTE!jlVVZx#@8ThlZcT%}KMx49QNoW4r?9(%aI0*DbN6 ziHR6CZ8lyNeMZnn=?}J>D}1VFh|IH}u)3!vC4vyvHqPj6oGO-2C{xjkDG*5i;OhWnKJ~VTS=ikN%n0@NNb+T{tttN_zU5{g@n=9juB~!^d zn$uf?f7%70Y(os~e)r{l?^RfYOeXzVEWZ62!z!8i%GdafBYJ)KPCjb`dY%*AyJ}*xKI>`2(OWx7jYj8qL1Rj`Tjg|J{{@0E+}?&;!f*kOfSsh;@=f0HXXuU z=hmXt#2x{z3DiEg2v-n#2N_LfaaI(y3@9Vu2Q86jJvt5ss(_Fc3eM>~OS+6*l zT!~>!=a#RD96RL;5^jMF2hz~-Mif_kHskw2@%$ijhr80X`Low4$1`SSA^l{bb{!}GDhZy_FJ4-=+SIwP#H4{Oc((`ZZ+iu^7dBeUOjlkBOy zSLQxPHQT50l~L2xytw!jAktr?JYtTYqVyd@~`A|hZ|wyr{7}fmjJeleUBbn z*Tca_odG9zfimxSE=-kGO1Zdr`AhmErQfI2$w5$V!WaC@@u_yX53%_gIYd+`bG|lRMze z<2grWf~JrC3zskYIPvO>nCP?+7e}VyecV{|emzCFdwJ1tsC4T2%DHZJrD&@kLDdcY z7%}y<+^+_6+KNlaS8)}^@?14YNx{!+7b#NZZX_!CAX@IqW|YMO%>5-fQ2(6xz`v>F z1o^QfaHDfbTp2p_IFF0PI=t|15N4XSVx7#&1q_?WHmQ!{cHSQJH4kRPx>me(Eykqh~@J2U| zRDUhsF%l>tzPtG?i)0vNNmNQ}4PG%6z+tMN4j=HXUv24d%C~5pc zSeZAX#z!))FbS%vCg`aqSzfWSkGQror=D4lQS<6BeswuY&qlHK+6w13^0R1ZtAc^X zBgF5>Xin9biVd0)Z9P(xW?HK;K+dXe$9S-b@&hERrC`?#wmmQ{rx!c>vu2ej;a*1+d1O#NEgf~ zknWZd@#0mPJ2i|K;+ydhew|o>8$T*BPj+3$9~jKj<*Ha7bO)n1T@r~eBdL9S0J^lF z$RiaqoRcoxhv#o^&g(LnXDlD0u~LKgf5)&wzb&&y>rnqyF>cu&MkM8Vd~*)FM|$w* zmSUJ5?t+(btub!#C>UrfA<^9ih?i`+$r)UA!;(JkMr<|503nks>Dx(iMaCtw@VgCt z8y8^aGY`01&lkDZ8nE%c6G!jxr*F1DpM_iCMTsl5{06ewoBj;EJsrPR8nW)RHJAKq z&j`uy2!3+_cRkuM?N)d0NSA)sIbAqO@;cAweH0t*RJpUYFN@snOD=63HalfAJ*Gn3 z(zt?p*&~15X^rC0Mwz>Lt;+>_r5`NPhwGoFv(QWSA?HlyulyS4TGenYou9?SM$Q=F zasmT0DzK#V39`2mC*P}aUXL8Y%60DW?jyKNI8#Y%(&V;?VWkM4^opu75_q}jV z_c<;scH2;i^@G?D;X=)x@7Rm2G+Y zeGQxj%4hlGYe=2(8NpR!;5sj!(<+){c`Fz0=qdejQ_qSw`wB3&l_pzstisd_4pG9$`H(fDsJt^1hsoQVgo zgykdf=N$3CY%+@54Prt0XXutS;@ve1jwx-4KHfV}*;)mSb5_HL1z55FJx(0@1P>Fr8I(9&+D<< zKUMllMt--3N9YtG9i5JnaXz~>Uu{dIwqq?WeR?dC-wtQ!$QXKg=Am=k0(^ATr)_is zCas8MV2`6>;L0leQ`h3251E`cVFFvXk+Z$O51{e#F2?UYg&fIdYkFM%9pA*Trb?f$ zUn}?_X(~G0S`E)D>C{;n49x@eP%c}EXO#K*uTAB@L3*ro?ch){RQiouvihwh$H-h- zGlK}Uk-pI=>CkC)%8i4M!3N$CQ6+dS>ixsCP!Npi+6q=R^?So2krgRX? zmZssz^mDkdC6oD@!E{#YBDPJI{@26(WY#_nHQBO1e@L=}pPf@E?a1JAnQ8BNn@rS9 zrB+1^A|~5Xd4|mEJ$9tQxk-F+a|F!lkK@;K$&XFCjYoM-d{P$6&ov4zC~>2PspPsJ z>A}Y%=VRyUn>cC{BPJz%69vmvcp%=8!DnTky_Xe#jWOqFm@%km73S?9&yW2wdH$qi zxWAU?v{id?W^XiKy&pi+nUd`)XJ$JbTsT?TjI~A54YT10(yl$i(N+iK{>%yG)#G{T zu4HpwT!q@Vdl7rzSF(wFi(5bXi?ZjiwW5`9pSCJq;OkMxPVz{l{(V29wgSiQxG^g_h^b$~oR021i{VKss6GDyX0NN@ zA^mgX`c6U6C`0OIcV+wyaGE@eKWVZH8$N~8Dqe?e^2T$k?^M)BjKRh=864vlf;Vxh z&XZHtVQOzBnVU1^n$J$MgOJYj(PljAeFECwoW+Zs9^BV@J~{*F&e7e zJlLAEe!0>3aZ6|>ypeOQ-NN^9jo9=}i{tcrh~_%3EUE3zd)LhP^Q&YsU2tXaYGeKg z-GGHn;)lM9FG(b#t(~xZ8ap-I7##{J? zb4l4)xNRx=rFInBL6SKhwNKIPW)oH{^Fi;9A*hOdfiE+X*!5o^pSSSCmhs&fF}@8c z`N@^PB~v4zGh91X!p!2E^lDFJm7IrnD!1X}lsqV;8>d_^1v^m)CCmFUPQM?gg(lKocEonHjFp}FA1GaF!jugU zFw*^wjd~V z1AG)RdvGU{lh-uo*h9-P?B`|lZ=%fCLDw)|!;Afsy3k(UoA#B0A>Z0iuvGuT<;L{qdD3nV`klPwK_AG|8l__Fz*#eO@^>l1*Mr z;P~sZ3o835-?nJdv%57nln>*lAtM-mIgO$^4-2vvVYcNqk@&2&%%i2UtRS6QqCXwl zw-no4hx7Bs9JZSiENbNpz9!a=A^&IS$a`AYN%^@M+(6F-()l&riWS>Jc=PKw9bdTAsP`jGTnbk|t_k1fD&g#Qw zq22JfJcn!3mGJjgGu~bP6?$Y&=|WUXdVH zY+i_=ZiZssr&BQ6;=_)42l3{D7jA7-qOq+Nl}&5lraMJ6>7K~X#x@)(S=g>~T8M=5 zHXPSwJZ-z}$MOXs=%M`#rR!8^8Qzsnvfr>%z8CH9bj9k(f$Y6Up6mLKL-sRgxTGb~ zF6I+X{gj!{CW}Or<$L5?nDJ7`1JQHO7jdYvKW6TKj4AtC@x+mA5%YfOmrO&cLkN#kaQ#r?#i1#no-L#i(QY6<U!gu9}&jT&3Y-u!+?FK++fDtfo?0N%*p)y?}9MGY6=DZ8f~ z`a^auT1y9%1Xg<3+n>+Y3e%)In zSF3TiWdFV>OJ&WeG`5#49*2rGc=KL|TQtAm^%Qs3{Axz!@Zp&4vH&Zd-h}UlHdteB zjE3v-Zt|>Jv=ftgd7X#o8oS$BaYEjo-$%e@oEOKJ1@mv&AjU3UEcR7M?s}&#s4L0k z@#8PCcK8_~E(;VNNM!ITFZ$K==ZK)@m~QzT8T+&`NI!>_^Ecq(!<{I(9LXb>%VAx# z3$NuF=3uGp2KP$fdyi_gyZ#E3e5DWGbtP_`|0fJQ@^G$wIzwO8!Mu+#qxuwLcUF>WG<1r(fjv`V0ih6;=||z$ZH~VdTUmpY}r#q-PbZi?CUIZL9fM6?F>HhXwEwW z52CN!QD&d-fsdKPIC|1CMcLAF)CS1R^aoeoo?k46#0=$(E{=Q?;fpjEd;Y9kj)4^( zd|cm|YxV4CvUf6#s}_o1A!?|wGKFQ^raW;!9UG=a^3B>wus`t&tqsO-(W(}l;km0@ z;WH+(CN8f&gf$zr(9-WRW+vRjpf@eJ z{jVpN?P|x*pW?Xt`%~P_EyPLb@Nk9_Plmk0n&+$FwP}jbdL6)s4!WF}G?dyu)v)33 zVa!<33Gu&I2)~M>C>T3}^{a;S{G|Y18#J8txvq>VGvdqA*0jI!U5ss_BK>klu_LAp zGT+F4=CF0hQVQh&>3=#U?^D@Ll+nZ2mzsLg2b=!^13w)V8gt~nzx)DL$oHnEat|(T zb`Y6r!(j18O;NS;4}QcX%lzb5n95mpr{K$2ueC@{Bz&k|<^h{nO$I*l=bP7lRN6L* z$4@n2Qd?hyBpNU}yfqu+pW|%hP%2+EmG!)jaQPO*qbJ&6l7sXpciWAdn~mAcahl{J z4dm(0(uJkkh^Ukd^jnG+nkAqsT=IhSoV^{?hZPU3C=s zou*=A-$YS9S8&*VCBB&x!fj1^qH$8bkj6W4t+!-dug=Gx94*G3k=?&BC!xN&13jjV zLG+Of_S@8mopUE+c(OHzxo4p7%3q@OnZM#yUzxQ#-9wgE10<*F z_!oJfkxZ&H5A<04!-N+?)Y&HN1u7T1Q0a6go^@#|Iia1owAUQj*S>=4LKXJy`vpJ8 zWJu4wf#j(FhhyzhxhYPYoz-O4cI9dD{dkU?;q4V0K80a)`wq0epRZ7=@Zq)tQM~Wv z%Y0AC>GAuH0V_>7W&I*-@G<9`j&IRVGDx@Wca)!*^l^-TE4JnPv(x8#(dT3cy}P6$ znl7UGQBvAK#e`V2~>UR?@@t<}bhiec1}J0YXnT6}bIqBt~V1YaJP{0<*Kv|j1X zezI?Q@v}Rl_XP zv-0I=Be28j6xo~eN58vGrL(&^3a&N9rP)_-_is=7tQvsc9zAfPZa${XbL0NfQaqI2 z!eIlu3(HoWx$5^$D6i1t-@0ymzOf!vK11lD@a1ZG|2rx(_@*{bFxIyUvp#OczUqGR zOln9|!|`mrs2^QJeu_^j9jX7?g+~%6a^}LWtgF7SSRu0-{i_4GddEgZp2;Ly$~mz9 zap~1aPZh76-B{eTD`ypl^Z5AI(gipWn{VhtY0Npri9Jhz7uNFKX@v(1NAl0Xaukj} zElwCn9-Nu< z-9=T}0#qghbJWr8SQYBP%=l=2Ic>zwFGq2Ux;5)op2mp6c1Q`n1(gCl4wB4SC3()6 z-1Q??wsfIY`XCI|wTI{Jd+6}xsrdTbi0X%vc)v#&2er$BYkH2z_%IvwIg4@l+Dg1n z{12}ddNXX!RnaW5EzRYuGrj+G(Zf2GD+a04`Q=ei@`Jl1OvKb=R}9_cCIUO>qjgbh zUS9DU9xg-hv`KHy8YE}`j>}-w+ZnS;>v8$A3kOeYBfZ13@!Z&iXOk8oW%**LKidtB z9knoh;ZD=TGqHW`YT&wq^jyduVDnE%m~M%RC7M*dDIMuU3SjoqM*cZFv0ZY@-_;Ff zNW?$k<(0`x)%S&FVMor(GiRHhmWtC87NbfhlAE&EAR^z4=b1*ofM&8Qc?vEvqZhjF zG`@W-6?cc3(;(TOFFfzV|D`gYd^;xMSEy2NTM4|{XVW302@hJzjQWL0E;-XnQTeS8 zbfuqbb1?X9b1GY3HDg_<3TtaxvsuF>sTk}S>3XkrTUS!W?jBDM3 zB`;q~cW5I2t}a9GkzrW9;0xYGY=VQ#sJANbKykmPh}LpP_TO>NAD@IM7CkR=y8if( zV#p~KW}G;Kfj6h)Zf`rhEt8C-4{h0AuTgxG?u8(aVE!rAdsYZ1ubkk4oNY@vKOCggPUq!v=f_oIq#!U2xjg z0rv8JfBCKnER9ZKVK-F-oX&&aWFK~@w!qD+j-0mN9UWU23!`3=9k$z#_x$fEF8IyH z#lwL#TIbG0<0{P4S}5biwr0?6R{#eO ze>|M0gVEhSiMS5h3=YfTsr7D1s_ckB>61!t(BQP6lCzUNnYrzTFfvFw9E&C>p0Do1 zUlIczAa{|*1=pZ5IthCvZ|{`4nWATh794a)GUA6xr*zvba<1-)wS({A)ki=2hIPl0 zRz+ww>o#1*wr5qF^(ar2Zihc{wAXWD#MSPs&RU3{*E0CK#clWxAI@NZeO~^T#n`d& z)LuN9x7;lFDEJGu)~^>I4@~B|HX}JW@B{R}c4M4UKe-#+gn?0-bd%?!2N8RPmW4jm z?OYJ}xB*$tW5uz=4s_`m%$f4e{>C=}J5$ae+FJUIQ=BmCNG5HHJZais&hUV0m_ys4Q65Lp_Hwz6d<&5t30R9?bi<0I^ zRF``$r{gNr)o#lvC82a)@)H-`l8}2hR`i~$V4>f8EVIaF@GQxBy_Y3ISIQp9iiLP+ zkt^?pCE{wsQStM%WKc9t5f>KS7VQ>~VB>-SKGvwlq5o94!LvJ;Ds|>(Rq5+Ev>W$~ z6};XzkxTlu;LuKLoH;v`^Tr)On!F2J%|3%6#!75Fp~D5a&k$bFjV+UnIqZ8iHdjAI zRapXhb)F@Lge*Z>y}XaNbL7;be(c?;9S5};E#EQbT-b0Oz0KY$CUmXAdV^s8ljlF3 z7tauzDReO+Z3>)sUdE>1%kc2n1%$TIQ5$U9 zH%3u>MP{M%BnLWj5s~~BegIF67)LF08)}DF;AW&PZyb0BTNe-hDy~K7>+QHuyby;L zj-yfAgBY1&1iQ+K=-cTB*2W3G_tK%4va{&;XAbi3^bsvCc=2nFH&aY@p-FKy{z!hn zlGq%+-Z6r~4;^_faVYyQAI!Rkew?vB4Ffn_jJ!TVx|&Ql>yJA0Y!@L_$C5k02*#v* z#KP`+RC(yn<((WM=G_$?_Fl(#&Eafa)RmDr523%a2j^L}=aKmrQEnH`SNf9gG<1O| z>)wwCWN)~j`!X!(YYOX7SFv6zm&a~PhkAQE)=$a7pyw9s6rjPWvX2{J>dajy4Owd& zA+r+xicw0bOc?M0I;(r}-z|9t&~v7??B<`aP{P!Kk~uWMmlI2(_*;Ir>+Al(>ud|GiZEpMZkbPxD~HCXN!(O)7olqb%l@{U z7aqZWD|_RKnJ1(4DiCB}EpFFM!QI4PsC(XsPU`|V!~U#T+w>y*_qX5}9eJ&PIhw&1 z@_QI-#hY#l7U(EY*dU!+<1Zsk&z$9XDU#Ws%(*qgC9CQ){)L3lW64(WqGg73&Mw2e zQIFuVrWU>0NWav95uAH(g|Imk2*ZZ)a!)ywzV}l3WaeOg@_s1t&$==5>@v}CE{-Z| z_uzNx0_^BqrfA5SjX>8Z5g+mbizG|t$^Q&S&Dr(Oa27SZ!0K#IDt_gZ(-49 z!J992vDNB{sQ;;u{HUkcRG*5&v(nJBh3x%?s$BIF-+VWgfnEaVrAl?o2V?t$n zc2)l@tcTdJ-S!gUWpo40zkS4GGjoP)zlHB^g5`3jv@mKpJZw8N|E@oG95EBV<@b>H zOL8Up{6R^LKle`tmMi^+LgtTlo~;&+t6yWje;N}qkDxI1-#6t+TL)&CN}p_DE5288<+vfuX?RhC zR=s6ksH_D&?`v?xhl#Z6zaC!hi7cy|E8O}VQ~2+AsJLW1j^Fx+GJK=V0h_z=fzB&v zR}Sado|cSm_8(FV-itf={&;)binXVLkgk0JN_vfG==lXYqD{fI{SapV!Gs>zv@3ny!|~wb|3Z0 zE0Tf!)If3P;8!&CNo7)=3ood*!H<*abW2F%mlLvo+B6=`V&xqCaxQ&-U4Y)-bauEY zI4bObh*Ipwimfv1GOR71H8h9yl54_p{}XhJa+RDSxfeeljQQ3_U=`evuHBogO?C;Jx4qHmsSgSe|JLE!%MJlUc{{t3E<) z=Utf3X%Fkq-^J9_Ky)AM%}-6UdBNY8=kMp^b30x3G*ZEoDZ|*`eIiGC{YK9jpB1%o z{$1o_BbnI_JTWMm&4VjN zYohMpyRJPOTP4#{_Mg?F+OVa)HNPvJz|KV{adv_xG57(_e2);0s%DD&m#)D1St_Gz z)!0jBQ}i_4IcUpAR8LHhXOfeW;Z^~oPVM>Mr2Y);Xev1&s_bcF3TL$h>~AY)8n=uv z^@-#g3^|PhtPBN~|^3qH2m{oIGvL+YU7-kcdl^+(r)uN zaiMWMA3k=b&4d#eHt7k@_x&usZw5Dv3&r;yzN{#pjNhNS^Mi#azckb5zmwLmdGG`I zKZo+Uii_fJ>_s?~31P9S4c}J;@IlKuH2&zrd8(!mjT(eo5c@?1GSe)G*VSHP^2>RM zTWHJ0|Ga5?RQ&ymZ0*5d5+9Y~RR$2|RgvQIDve=FKSQP-9|(?@Z|WWip&)A=%? zJx<8X=iqlEMBzvioGEV4QG2!_>0<{jpBApLshK5uFCtsj=&+=N?426s$p43CyjKvx z@KgQx=+->R$+W{2`F&}2H-U5CwLqsuv3w>w>wUue2{oDd8+|-p)QsArnB}xiB-?c7 z$!oju>hm73?Fh!E%lup0@jUEmfg5Mm;n9g?8fg||)0T-CIKBfX%Z$~I&>Vi4Zz}f{ z)xxjM18h4Gs<4@wNP#2RTBRy{esmDGz0LSCLvot$T!!-4LF~I%7rhpIQat|W!|U6E znJxPbMdflv{C5l*$~Cd6^agU*Nq^zN{?OCffhLPH`Fq)ZIL5YSxApF;GsfgZBGDoNIR(g>U*wkCV)5 zc9?;w>)^0N`r5X3!}`r8T$Ps1AA>K7w?ORuMicJ-3cH#mW(Ywp3X_eC^$ zwF%eOeZlQk3y|7vglxb6#Lx^KSX$cw#&fXakTtbOR*JRqIkDEpgGncS*zLapu}0g2 zOHN$Dbl+SqEAf)PD1F{3G-SBUUQ;y`oeL9~R<9%evpJ5^jq608f>OD2nl9Yi-o~n& zY^FU+V%9x#%#@5w%>m~X+YgmNHPe=_ybj4mRaoYHg@H=l^1O-c(G zw3KZ7FBOU%@0;MrrmgsJYbj31p2Vm`Yg!dGrQPYa92nUP|KxmreadD;FF7VY$^7#6 z9W7v`C>9tZcM=a;qM_R;_S^Rt^ZM+>xsR4S;V(mn>mI;1Rd#_-lHs%dVCGG^i<0hd zwI4kgZxPO0Jst5N+MTW?x=eYt8urEVd~ob3&fc(=IS&`MvbiPCs+t^nYJ>DPoJH2> z&gj*CG?se(RTOtwfN+_;G1Y3y2_~MRTAoeERzHS)KV_a5esl~gMd7s@==wbeFBe7N z{o|ILyR`{aGF;F&=9^G#QO2Y(p*Z(5jjMm8aYUssnO81CT%Eb;;U}2` zoGE?RJ5XRXiizRo)bo-o`HXCdH%{c9uaeW)y(ur{4?*3~G~Qkt!uxA&m{Ka=Ig+`s zp<`#xY@!1txo4cGGZX8I)L2}!TLd;-SLnG-lJ5iyRyyd?B1v-So`>P9=6&#QJM7GL z=bZl@!?$S*9@Y-z1J!33BA=0M=YPP%06Wa_za)NzMk38*Ke`=#3pL3mj;nNL-p`#V zNP8pqEax$yYduQ0NAuloSL)85fv8WLg~9N#+;!K3x7D^tR@5fsZuEq1o}1Xcx-Si% z_$zSHiT-a4sMPQb&evSn`S^P=II|uz=2~+|<~BHV84k4~1&-ef#;!B}VPm#n|b1tvEfC>59A2;Q1fQj${QWtJHA(S&JSvfI$NSUomKvMN-t#z3Wn7W7Mzx@G;&qG9qHM3f zIMmgZ@64LeQBLUYxGzUW^E-I3=PNqAIgC4fwKyoV2{sNN&3RX|*`lrFCkE&6@`QHu zTp!2sq;{OyDV8HQe0RQ4V#mVr=h*a9_BKuoWUt>>F)gtQcU;aP&!`wJ$31{aP$Pz| zYrvrgfXb4M3cQjGgmlT?l>y%SOCI9dnL#u<6D(dfHIjbYW^{->fY(Q!h&!)!G10+| z)%FJBw@a;JtVavE({0bBO(BT8AIP~fKe9MFn1D z(2_%*?i1VcwuoJi)TtMu!y%sPd^^&X+F|cdRv}%R>e=`@;sajY@5@hHcVhmaqsZy) zgvB}=g^gq%FV%G5*APRlnK>DoWQRR#{W*NT){h@QtFoYQ0AJm4WUQ+*`da)E^?#;e zjL9b)f7Tq)MtPW|GnkbPsW?BV04ZBFaAD|LgsiY7V^L+*%AJTnrtR$E~3d?Ii9z7vDooEh*pg6sRGar}QARio#Q=JZZxqWLIDOo^oQvjo;^x`p@_1rjr zFfW=smU+OjEI6FYlx$_57@5syUtf!G$&OgyoxpzkjcH!co&}vVsU~+;4s#o^@1Z7r zJNPg%pdRI`1DSe7?r}X1VVz_NP4IpzZU%pV@2Qb2{cr}CK13t@#$@Vrsl(hX1(v6K z(S2JJYWpr%EKQH$2j6i>m3@z$rz^2zV@qC-`w6#m4vJq}C$ObtlSYp0$eZ_eATK+M z6UOVY)5F0mSu68|yVi5)^JXSgY?>hQOj#>m4mU?i$ z?Po0gIg&y@mfg3lLA_}kdKV27kD|a&YrPe%Ba`X-<&~(EEX#%73lLpF?izj-S&`{6+Z{aeY&TQ^zQ_4owCek4jm%?b5!F+`7Hcd)09Oa z_PG5(x?-OGg6)!p$nKWREmeiWC)J1V0)2RAdQa|6euO2*zr+5P_P4M4N7Y{__x zq-D}#`TcZtF8E-8p`*q!NJtOL%eh!NY#h>^E~3}ttB5#g%z#fF`R}UqT)OCr!T>kg zX#c|P>y!?i0`$JuO3wHvF)aDDsA%cnho2l?-rf^b48g(N4B%lXV;5;`5cSH_LkByuy`fLpU7hE)@dAbi@5p`-$`A4V zq2iUrfc9Q2U*gHynaQ-emMR>kv}4`iNW~qKTeu-TmxWaqaO6;Pj<-IHD<*-Qy5OH; zp3F5)P)rl!mYzlGA~ozxe=1644xn-6I9gwq_l3XmEaPm&>Ny>7cUrtBMj+Ze)I$tat=R;+>0iXLt(EL^j;zAaQ zs$p@|sl0&s&beZwqYi%54`y{r90T4P$+KC1KAIpilx>3P@cpJJDahcIX=CU*@u>5A z+2Ne~pjcEbQ0I`tK`iLsmg!ofSo8a&SZ0$()8+9julRtZg97`0y%NI)c(YPjol|}4 zgk5k8VLIH8M&JKp{SkW>RoSE2<83J0+L>y9rwKjvV+t$n&2a7(#@Q_%Ay|HY$8SG` z4MEvdaf;!26LoR4(@0jv#)yV`Ek-Xsf|Y&ig#FMFTr~eRzTAF_+^_+hHpc?xKcq{( zdmlzl?#-ni{vqviGxpxwg1xfOL%C}Ymf60>-O-!jSl65rtF@6@{|fq{<9YCdf}S(w zoNi1a|848Y3oDbUe9WBBJ}ws_>sKKDXD>|A9}DGA(-8GDlW|GQ6$RU(a4F3MUF#Cq z%{HCUKU>1>{wfTSGb-<^tr#!)&)+M4!Ardf&(55Qu8TS|^0#E_*p@0vG;Gk+)t-Bv zcyOD)MSx0^}?(z=ggJBDSj%&E9%5dX*-p8%p1hV|UJa+8*uu?m**Z4<;7N=YR9wi0#vn zt^Pj4HZwVcc-V<;J$H+rbC;v*AwRa9(vN;SU*V$5Tx6z=WXk~)k+5YIR?F|JhE^zV zyBPDv$4Dw&yMWsx4~T(>!&s-(hc$Vr`1dgw*XK=@d6M=VzTBVR+a==10e`qp-h%@(#SY`xAaI!U(Dq!*nPLslHY=hY#?X{R-4(v<%BClNW% zo@<}wNax%O=>F(T>zd{ajXQuHYaU?t2RnMIOklUR`kb?SIGcgs8(y6=NgfrYfAabrH&;QBc?d#n*#e5>`w2z|IH(UN4^%nLrhqM2d zJ^O^+5j6{PG2rnQ`1!s-MAZP!Eeqfsbx($toABmGIiouJ5fii*V5C|MYQxsTY=9RB zRb_BEW!50_gd$>f8gq1FsXKEoZ1W9RnATLzkB3wD)K#G|{*h=ubpi*=pXtrJyD(Py z6i&4BqxRA^bhsNxpP1hmIxHDZa@N_Tz7YHGH0P@!@vNOYm<>gh@LQh9grg-WtJ^NR z?U*LC-J8(PU9#IGd&6#tqp6;G^2ybM|27;MV{|OmUpdH?0J>Um(m&Cd~7<^jcj;Z zNp^ta=851r^HKEYB?c|~2b;aoP_;=wz2pHMcIyS}aq6tkD#M#CDp>lx9gSnNI3TJs zgJMQg3P8Beep}&G zau>1rF;I_6<+;p4#la@Ehz=VFKjn6uu;Cke%V+w6Ku6r0BpItWq=)O?ZpBP@$t-nj z#NgfF4qdr_`&*8CY9^e2-;={js&P|II%vOi=kZy|80{`+QQM-}#G)IXFB(RpsTt^& zAz9VW3(!ll=q~Ri_f6Mh()w|7&f1&1jzuu=YAFoHxg+I=AqUqKV(ypYh?6pH#k?d27`CWndL3%b-a5PrG3u|->b_oam0RvJQX}S(yfq@rNkF0}tE8KhgBv887P zR`iy8CYeJS+A11*6HM69(?m?4>CD>I?N}9)$eRy~Q9C4^m&G{hnRs#2iR#^j^fT!d+>B?0yq1ZiG&>`*gt(O>K$@;OVyVTXPUD6AX6OJ zYlHdAOxPxP19lF03G^_+nHyt-a2tfUU00;9afjG@aEhX|yACvRyKrQsk#s=k!}x$X z7Z=#kO=luIO;lyPtsdWo9#O>plWtU*c`3Oe^Q4jSTsyKs7*BVjulWGpcX}x*VpQ4H zFaf*rAn!F9TpFq=x!&r~>e_;;OS-|LrXPzXKQL)}F3%~0i{v|Hm)zTZOFM^{kJ(JI z{evgP(&J&?8d<}A7(3|$t}Zdg&7edcmi_N=mnDke71i*S`HzqvO4M(NqW+tHatAE$ zANtSXR5wQ4x4DE}es^%ja3EB@zsc<1K3w%q=GkjQ*>ciY{+F4}8RZ>$T4=+j*)0rM zw+Ek&-4Ju5a1_w&9XFJ5*URs7k?&5K8R%Ck$VWG-A$6^qS&;drnwr^OH9juoba z^rlX%T8CzD8W7|wcUq^f;^bH9R+n>#9|v7&`E|XR_-7BA%u^DDN856XpB3tCyHM@@ z75ryWjIUv%s5|hI&~#`*zmmVOem4gz&M!feGal@nHA3vu+=m0Tsq}AfVT%p1ywXqz z>x&)n;n_K%?k9cHk>AnUWd!{VTXAxEOIj|Jep0XTSQT_vv8J#9&wAX&MR~^@(?WVY z_k^(c)_8Q*?Z@tKGibe5_CrILq30EMk^1qq^pOpt?eiF3k*v&+rGId-)QQ9XNdCKK zBCXWAvP z%((GbYOi)OU9&ufdScE@wO>LH`=jr*h2iL@J3+L1x(6|V9|?0 zB>opdo6HfChuMPpbwg?4h z(ZB}pv7A2HgHvV-mUhYFH~VAGUtFT)Tvjm2tS8?**Tu9gNi_PR!HdP6M8e8GLh-FV zaBRHT+n9^rW|{w^=sW{*Z2K@?R9Z?#B~58ci8Sx?IJ8JU`|Y8U zIb^u2o#aF4bBE*$OxhH{MUT&7RItn|JGGzf=^g-llEfLsDx=_7CsW+}4x_SK;Gt#StvRiY^iJ7RdzoX7$Yj&M{=KZk=?6J>Dx-9$iR1ZHEExRJ$ji$6d`U8<0I&gdA zX4pN~Wxk3EYt~G_v%ja%UGm)51T^ROPI|oP)EbZc=ZWBVZ=rYDgoEY<@}S=#2)|T{ zJMmn5aiquzGQ`1cLDX8F$w%iic=UI7&U&Rwx6B~PLGhxQZj_X|_=)MeQn=4;6|Bl_ zdGy>4#iI?wd8qFf(QK=S+)-~6HLl1HwX5PcA<@~ z9#8F-Jf_9lanb!OQr}C5MXzEpB{N)}hh=}%&X6ZYJwx^Bk0SZ>Xc|2AbLJ4L93grxEk^X24H)SDR)mkQQ@oNH)HSmT#1k(!RPKBr-%Z`Q)Akj@ z#}DSw+r^^EkAq^=iDYhB<|Gy;N@w-@`;w2PCfS`v^tLz*)y@}i&$lc56ZfO*!~x>n z!0TdUfiqqx2Qyx+qd0NP9v)YG8P_o!A52CFpBtBub;=Ek3oO|yFbsBDUDyQJeJ~!Xy=g43fD=^E$@F8{k`| zE+3a@Q7JB(oh2JH+xLa&{c#2CX6rFd^EmvIUBvqAS3=1yn16i-vCvGqJX4irk61cD zLeywFA)Vh;dh=fDZQSpw%a5BanJC#Rg_5)964;8d>z-nr-hTXA`3})CySVG?7kItB zC*3y7aVJloC;koL%!dnLBw78dBe;M~F)AvbDpz1oFk6EyhEttnDf$8eOwms(BViD{`NV&7>;EOAT zekP}S&p`GJ>0-Ly0X@{3(?dwlu(CBjZ5qH=)-&)^^6M)NviWeBWLL_J-|0^)u=>F? z4C4-r&$|nwKhJRA?xI+0wjCnr3s$^u${7yv)Rdm|Av#|X>3RT;caA7Zd@PW~_H5&N+PpOgJC&T?yo*rbMBX`82;K%oXVI2D>HMB4rrrz`K%7% z-jd@prXw?3=<>7EbH$V+yM;vyJ%;;xF&Nfo3F;Waaz2;_`bM*I)f{x$jq?SVT_P>*OrG<&}Z=wW=|Q+8mIH{U3U@2 zI?_=x>^8h)2BoLkXzr~YCGtZy!Dg-=Bc@qnvh!L*?@FUu+byE0bWj+kM$>3T0J9HU zGfiiQhUP={|1!m3*?3|)K=3*-)|akJcEG}q(Q zei0~q>CTgzhjB)NbP$+naF^+A3|4swwkn zqt3UY*1MJRooB=!Wrn;Oxe6;^6tTi_w|oZ9D>`i(N8NpTbf_7@n@tLs_d6IqXD6Zd zemKXEP$P#({*+}JkF7LhaWBv_Z{aN?98EQ2=8F%Riw#|}xpriJ9@u3IR+)Y>? z*p@R5Ot__6q*z>b6eof$#JtwEiWOl2Ogb&|%;Az3FLSo-8Uf!)Tf2ng&$zlR6VOtLhMXV*ct6FJ7j818FzxPQd`Er0VtryNm!pG4}@aTh!yIx>a#(A-8avIKbJ&4rF zu3Vivzl_&oh>-ssUK#{DB{QE1uRirgQrthp~uN2{<7MJ zzKy$)mE_M`HzRpZ<|-q9rEs3)$tpg`b3xN|$to-rKH-CSVMh_4rW{4qn>@Df=FT&_ ztyuoIH@ll@)7$C`4&9bJ({r9ka`WY-z~4CRJr}p14Q57SGoJ42%TbbfqS4)iBFmVQ zr6VVQ&>S>3Do3DF3+g^8q-nr#e$(hluUAv>pg^G*JfSbUeJhkc!6DqH8N;lnJ4DEm zQ&{(947&x!aGq{kx;tNk>y6E#%d{#~Eov?qY^lg@K2-Whn(=PwV3x1;p^;5LF?-Dx zCs6L<1iaZ2en?)>kzUsTEFj_Ii#S@tBEyP7B|)>>zvRq_j=STF-?ToRek>jYMe(dT?^FHRe&gGJXCqML3g zZNA9e7fVFJ5!s9WD!s}-hcWu!9?`IE7(Lvl!b#^Hj(x0v)>uF8Tw#aU z^~X_qZafkfw1bNXf@Q86986>%{n~vfO2BiiJ(;^@jpV%j!smw?+)~w*&DW^$+~N?) z+dLzAHL}~>q#fss@5IpEQ}Ca98LY0IS4?WzkKseQ(teiAlsD04`McBjK6<-Ya&Nro zJ7&G8@@UD)20onLB$bY9hVsVO|HS&Mp7`9{iMuM!LAR?Dm*+Wg`&}*W&zF4da`JVR z3+;R(@i=lcZMS*xdgws@zMo9T!N$C;Cfz+J0>$Nja?d2as$vc*trXFQ>S3O zg9)QMN+0F5eBQ0gL4>>q@BNg^reT9vlYI@d|MW!EN!cgc`yO*0!Z~JUF&y_jhUid@ zOJNtFU)O*h=Y!dJEtJLAL-_lKLy%zrjwpf{Qj{g~j9V#m0_Q8{r+D%C&FyH` z+l#fb_c^+>EvvU}R8r#fV4V{Iu?r%=3D%Ox_E0WR7XjMt45-FU1sX3&nQ- z>3IBg0PVe(zf7n`uq#$29V`-|!yT`3x(IeNbAH{Q=;!?#dwdVU%&B&&Duym&TF+=pL# znlR?!4#|rQfnmZQ(e-D0cJ=8kE<_&_Qzd6GbL$e(Tq}X6Bp0=0_8Z0FQ`Zzx{x5L7 z;VSld&Q$1mea5NDEtw}X*GhvD87MmxDo>lzW@o*k?JENm21}nss~ASe`))t|u8cJa zG1i3;NK@7DbN!I+laov3|sD{dst6Y=@WVU`|%f3C9;kb52; z(W>x>k~`>=lJEO*AtuFIu}-pCP45iE><@!5L){;rrksL9NmnfGJcQB)Nyp@w=pcQe zbALq98lUj}s$`jl4rAG^0O|x~u!UtSyzI3YhP_URrgckkc!#|r<4rtzMb;yse+|+) zq$B<4Fdi?>;=Zh0uG`Zc=@UxPM9yN1%B)~udJ$8jteB(az_98IX!}`5yl`#HSoJV` zkn>yGHRt}PK72Ez03J62d8E}r9KL0S>6%wDDf=vXM~&pLm<|Zh7>WOmFUO|GJD@sr zt3sNxuxgtHudUPJv>Y2cZv2je6N(V8xf9E^j>xmaVw?$`1Q8_n{|Uy_)V~LHnQwa_ zoiedI9tu0@WC)tF55+gupg7frePd+SU~xR=w!bX8-qhhmt!_N+98}F z9fhkeVbi4pTcvg3g$Zw=D!Mc4`%c`OKZ>TUjo3}83X#a;okE#&yV;1x_D?WAXe}bG zWruaFE!vf5uzcxRVW!rNRyqNUEz)FsP#-pL)>_f+@=|1N7)6UVp0q1+VuZ_RzLkI0 zMC}mn>i9@(o?d~}Xib)w%K1vYA6>1waCUwwBYx!YVwVWEkY|In{Rc26bsSTMTkzYi7ujLBq<#kbhE5PGWv}Vu^l4Czb;iUHEgq0ggs9otXd4pG9z~`c zX#7tEUAiKU9qNLCZpAozKxV3TYx9TPF?^|t<)fj3Sq5eBd#%D>`CG9*=?5~b4#L5< zCF7jZsJZSWJ}J4e`A(TxeS1{6J-81xj=&Rz2i{HzLhheBs6H6Q$ie&YW!?>uxKMH& zT(Y^$O7;kvYCxy-FAk1L;FFhim@|F|vmUh;cl@uzUVW43p(hzbL6LmAK8(iy?ZlGK zp70EF;H`HR$eEwPNg386`gR+xf1kuS*@fF0ra{|vY3RB!2-{D7!KR8%>~r1)Wga6% z#rNJ!da?p*t;Y(pUmY<&bw6~{=ZQmaW7t3U8$P7A;|ASKZm~?nTBpw39%RK`OFyFX zqGEji5W&XBi87-xlE;*eV3)VGCw><{WweBFx^?)pr= zY{RwNrN{BMD?eOGVp^n7{8+gX{hDe?$Bw*vT(IOQWd(~X)f6exmw6&53$D$>VKXp; znX=cqc(Wk`zyA{7SN9NVa<6%KbQll5IDsEN@+>uPy;rHxNUlHJfJu_ulQGbWhBCvs zeWC-+FNX7T|9IxjlFV3WQqfxW7gfLGz>wECa^9b>mP;n3cQ*{r3FQ&VSu&k+8LK^Z zW59mNH&01q;mcCAm%FSTC1V)4awG#5rc-~{AR0e6WR2_{YPxH%eNDZv@HIuoMK?}d zVMQ0YGue1~JqBpVJ*NvDj;`i#9K; z%b->8HncuC2)YAC!r+bpM%<7NDVgC)-8dO(3%`o~+j>FiNelXJ8-&Kob3|$TF^IgZ ziy?o_`D@1-99`E2MTrrJoIVQX(iwZMiw#}hIiqd(Fg7rVLk1lbAI6U0;_yzKGt!-Z zRh2Qn>W{pS_GQu>9mW;xK<_73vXfRLQlf@3X_-ArGp@q={zxv{xF2VAS7NF0N72te zhY9};U}nc$4osMXL7hO~4*!Xi7NuDCd@5`U>V;8;3kOTyR-~sNvyFcs(OY^*BMiBu zlOJ!Kl-x?+W;85bpt#u39>*K+V90R`!KSr15E6(9Iw8#b*pDAy>+{N3>CT(^4Smc6 z5BF%mUYWIi@3IibD{@4n^=q-mJ&JoqXV7TQNMugBh;`;!Tz0~Ys(n5nT0W~5-xiCA zxsSo)2X8(YYCh6*0#cVpvH$sv~em~Q9n#SiIqKY2Tf3$(|< zcCt3t+?ye4J{2%T{_H(g_@hy!35%sCb>l5}CZAN1vv=9wyr7GTKWxxviyaT#>dO81 z4B0~R3RjkPWR5&1Z}0tETv2MpNOyBCauD*~mCYIVn(%pUE&6>Pz*bWVrNg>F9KI&| z=aT=hw}Y`_^6@wxxigrmmRB+6@NkxF>BfYP_I&73F1q>W^YucYcVrp1 z^v>nVnL98s<}L>P%!S5WW!V{vX3VuY*t%*7`q;h2-1#YZh3+x~>ch$b*?inv!Fej$ zyd4mLzn_{T)4dBLd>){gwPd`X9foe%>xJb{ANekMhSfbf^N9Bltn&LK=V!Yx%&cnp5f7#J$9=ibJWQUb-G_eHz7Wc`n*g{~cEC_d90Z#_ttF&;c?vtF~Q*ntn}iU{YK_1MoI^c+i+oh?mjjR zeJ^LxN~rH@NzbK=@H^2%sJ&F-hU@aaak4AN_4lD;bv*A5UW%y|tKp%W%3*fas4LXu z^?vQKTrx!KmfVMOne4;VnR4E9KgnBAmuzPfF3L2LEWtRO4XqI!WmeBJz?rW8k1_bs zAraZW7eBb^QUBr$OiMCg)xb1P82*TCHD!jPYiWe5UO@fZq|Tfe8ypur5-~XujA5mQ!c)z zpoL`AeO(jHgK-m4y?7JU_XKcU?F@|5ER~$77}n>G=ECatxV%z2Q*ztVMqhG<^1{Ud z&#TB>x=x&Ju@vVnUBjcAU$D#EiT6VTcw&E}^qPEvjpq`UK`NMEtH7(-MM_in}z`2YJBfB7_(08!p%}Q@=nfMyqE|NR&k*1kJy z6Az=ZWgc(34q#%d0n*hZ#z7F+4{;x3a6Rc|uId}$>*8C-Am)E~h|9GXvFrCe(Ng~RcfUyF%`a(+DNB2^;-B<<#)XO@qg-*& z@I0EOofH4O%-GV&Te8K&6gM>gyjcMDrvNl zPJ;Dl_bHCeY#bQebB0jg)eh<=NsO)wkPa?CMfcc$iZzop@l7aW()7JZX*ZBLmC^<6 zkV?(z8SFb^F?`l9z}fQ~@z*n*(~}Z-NjU|Vyd8PBr)2xINWzo-@>l*r(S7Q0Y$1~dzbJtI2GwHK7A1t07;*o{3%FiVg`dNIi-C3H(Z0f+iP18*o7|cHLA73Ew~Upn z+U7jIr;WUO6{6AlFrw=P9!xBh9g?A(uqB&E)SN{ZSK0B?Ymkm}9q#O`0;B#BNPb>K zf8QviM6XhyDi_rs_9^CskLK3!deQK>DYM&VaLJx_l0nf{dfqK?qWT`Ld@{#|HLm=n zBRv zxaNb1DL8_#v1!DzJa&qFf<3a6c6E9-7Ff+kJHG-Nxh};8S06;xSL{l)F!GOs21Zs(Oc^2H^|!!{ere=2eG z|5QkQjd*_dzM;5XIS-b*UWv%;04BW3WO=0rM=$8euuU;+unOZR%hCLtuFu&zS436g zL1aodYsRWrYAtOkrl#p|`OOqMI7D;vS{qs=e1TzR1M*gzGNvSj73pO{ZDIlsODCR0 z2T51A1&_-)rumN;tQ(ZaA?c}9`u88q{m9~TuMnSj7WWQx#f4|NqOQ+QD9`B2{OOM3 zON|+BZ}Y|8%}2$z6IL8)FLMC1Un&mT+cIIt09we|;}Qe7Q9L>`+;r)lrjt~{Z81?f9f=$w|!wOy0=xZ6L)Z^x~oP@BBv)tld9rMl(S z6tAcmQ{`Q}DUI)qV{q|Be7%(`=0A(UBFUMHYO~a9eW5K%O%CEg`3+Qm>CXv&Q+PgJa>^tFxAm~qC=F^WcHC;q%sIB)>~j(E z&Qp-%s>N1=TzPIrcR0z;_fNGH7OHjRs{=R0>7n=0Q)Y~M$?sURU-D9dt9r$c`JaH@Gw3ZdIpE@NW3uj%RX^%;ume3qOUkDtW$m+oM7pEa=Ey z&o$XI)B~y6eQ6*nAZr{nju=MYon|Z=wgvw}9N4*QN9eS%=i)&NP#oyZfmV_$l3t4& zuUoR!B4w1?SyN+5JkRe@lHUhInAh5Yc8fv~Wf9MohTiOd-5gmhZ+c<01wH&7xL4-> z$_~pNbZ8*9zZoX(SbK8W`^}JSHt}_cGuw7stoWHxC3KQnNne$cVt(Zb=|@nLynIu> z`jpRE)v8>7DuItxt%vT?WDT;M7OWg22qUdG!AN=JR z#YlTHxGzUAGahUUN5pcj3QJ1o~&ixvG%Na}ieO|1S8J>kpR5@bx z7+%nR4~1qsjxqa(o%0HLYiu{^%XQ@YK+^qoK0fuEgFZ`Ygjwzi#7Z|o_~mPOoaQdQ zpj*YPF8y&|?v1`pF~ZOhws;i$1k3CT;UO6um(O>n;<^qUl?>?6*pa4{%Wz3~JjU6z z=B4rKT;*lJkxLV}Z{8hjuX~Gz+#JdL&1KwHbA|C+chP+0Ba}Q-XRx;m6TaNWa_RBd zanFZluHMvsZ&HFIHybO(lMKYfVe{m&jbwnG0)rp}+M~oUsVvS^1tGQ1eZ4g4=P& z;}9rjHkbLRc*TLkqwzvIxHXD>Sv;>2=Kn23nsnHmSqa`zSqk$}yRqo;1L+b4bVGu;@X*9HaGXTs_FSonT5!oepUS>N8D*E{#& zYCCV11o^OSKrmRo{?4XtPKw4B_;Su54Y|Q|7{(^NDXVVHT!kHF7ouQpN0AhN1;Mul z;b@a3qE^`o4-;b8`$07VM(a@jQUD8H|Hf@KZETV`l~?1Vc*0Ac9fI5t$e zPmA0bm?7_j8ON|h(jg*t<{@qUQ0^IHN0l4H6ccXs;?4XS@Q(6A`$XwYlHTY4{4HQE z|Nk#e(dO)%>4XG+cWd{v-mJfPL<>CJ8LZTjb^0$z70Eg24{OZ;oG`Fe5o47v4!$| zZR^P4tu^UmkjDcTwHOctm?Yh{3yvQ;c+;hgL`4iaEYXRCegchc)Tk zd#1u`{VzvceH4M)Bcx9iPTY1$AIV$1`R?5_G2ojr|J=)`=q%4zeXrv2<5=HmEJtO1Kw{^c zSoZQfhKJd6&*W}wSg;C`XaeV7_prhKHS#xJM|y)`kn?Kf&GbiAb-gfY+JMf*UYtHD zictaO@*Y`@_Jgu{w3oG_u*W963W!FUgpFfUgJygbQ>54*>A>1e&+uN+9Q~VVF)d38gSK?W{rU!MK2a+>%)Q0- z-UHdts|hO;2IAzFAjvBVXOn$FTzw>t+Oz-QlZGpxHY=Q6vZ8_xrY3YR-$@)FYyd~d9pPQyg&z9WTEgwr8 z%Q5)YOBw5x#&Ky<13FEP<2cFI{_yl0Zu`H7aqetf@Z6yolV~EHX10>&(TTpU`Fyy; zoqJsq8U9y#Qx1$rNT3>)#CO1nxY2wiEG26tlP#x84`f*@IXCLd-L}Jc_Uw4n%l+=e zKe4Rz*Qeihb(wi{6KU@DYtU*~5l2q+0L9|9yz%e>c2v z`J2po+9@!ul`qzp=26YYpJjbcW2%`62mGGrac;>gk$cXFpOZSVlWAv0y-oG3c9HiE zm+Q!Crb>_fr!XOMs;Dup7r|%B#T4f=u)8-=n4XiamDzXEKXizq^W3Hkx9?65-Ph=` z)|A3y|lkSY{QKqhxb0AwC*n zPX|kOZKmLXcaChGn9UK^Zfwy6Y~8s>l*iK4BW%bIyxHh50mW zmc)kgYK3CG8shaTMaI1OaB&U5I`558i;_;#*qi9J^{{9;c@;k8_Z59=-(qveaZHz= zfsgw}a+iueKOQ@ZB{FL>d1(|o*~jqXmY-t%I)6qy_vM_gUy+_Kxl$HS@jPh|Hti~8 zyvYc5Z9SMSADb|8LK)mP{6eLMg;O<&LfS%Ly<#uut^5^aQs(mSX1u=^vW5 zR@4j~gvgc=?9$;q+D!`KecjPqxz`2frw*fiMV+FsYC3wf2#^liPIU1)CMI}lV7bgo zq-RGk_{&<^;`=*{AY27L8ciMH~2sQvRE16EkV=|i0ey3>=}l*Z%j zQ*#Uml>LC)ZILvkGymIJjsJR#LCKd9{F^UXRcJonO*+uEL1v$C`ElB! z&6pq8lXup);HKVp;FvrMpT5~K-t;FXYOE6#&*q{1**_?69*NFp-Dnpa!^l-;T--7U zkt6h}{Zj5%PPIVTwI;l0VoRmZGts2TmIlrathqA=2h9+k|1G&B<2q7n^GR4X zn&Xn}oOq2WM~3W14RH$LjXyakKhceCD%$dLeL9;Q>%>3Gx+3Cz6)qR(p<$%~|HxhV z-n?X-Qm??n$D`nuG8ePT3UJu81~d16fz9zqu2nq&OZ%}b^X<-4S$0UN52I#H3-GxX z_Mk1QPifO>S_fW9dWD&bx-cVjFqQ76bAbFA7!2Hldjne2zlV@&Eg`qmha&XzwB`hJFzy%kuKZMBcV{82?sm!bp@ETcrY*SzmFziGepTQE%tkG z306gE43qu2B_55!+jcBP)hF!qTL9&2LwPJ}Gma+Q7u{n&3mdHv_=QT&Vw>Gq_&|D; zEaEUxr9r&Yip9V;MzRzC90%l_^wsi7VpiH~Ojl9oy<(a9mu|+Li{fCUT7lf=vvK)9 zC+TJDz#;d{`Q_IkF<@vMm(7rwMRiNMNiT-u%2Qan{fAd_OFPL`3}C-$M}*qjQM^;t zm#W?NNS?nXlWgDNNek&De>9lezyC$iGb=9gmo7Bz=Dbky0I_QW7=2@#xb(a=71H^Z z?5M^c8)l1vyU(Mmzs%E4Gh+0_HrQ9@EWIF&I3@k4D~;xgWpX|~a7;5U2^zv8nQwd> z{{cf|0{Q%0C$6z?!SsMiM2y;iuk+RkBkxx7+!@Ey<5oa#Wj;RV8gO01F)VxEo1rbo zW7>#Oiq6)qvV&>I)-`ufxNi}z$jq@*s0WvK_=If=Bd$1x~cyCo+mcm+lo1+ z?U?41&I%pLo(LHnOc*sAc^d}NDockO64k`g zPQ%%lqAc$?o!NCy7j{wY$s!N=J@CVT2GY4)(`r1Bw+a_ZV{zoQE?3u{#Y>rMZJgl5 zn|~Xz8< zZ!}?tQ9r~y?VFhY!G{6%PIx+Jr!Z)6r}vl%ifcI?6rMK6d=pOj>MR$QC&jD{EtsPm#=A{I88hCNuVNpFRo&vaA^EEaJg@+rO73G>^CigD zE*Fa>D_(IyvXO7fZ2M&=mixFu>$NHGX6p#u-~sINXO1{J+JReoKl8Hqeghk$kD=MP zy%_LjqQX^v-~9G%&hAMk(9gCxZ|WIvmhx?QUWmb-C4+hM=@IyN=CQ7&IbDlq;mj*v zT1ys`Vo-a|Z8`~!1)Vwlm^C(s{6cxOyJV=Y26jq*WNmjSR>kpE+vnoy2~|ei`iCw0 zO(Y8=pZXuin>BLdDa;SAFnb)HRW75=gs-$;BbGLigr{^Vi<=I^D z#GHdGhbitoIS0eb6Yx^zQ*-OqqHM(xMSX&sDAbxE!c{`Wk?uJ-=lM`{iE!ZsYgKmm8^wfu zc3dfYW!m$D5a%?Q^9%;VBP@?ww`k&kq7_l;%#7ykc|-PsbHgW!;QI-@bt8qn91IYg zbQ_abrNa7%2luQ_VgH_ec=r8jOiCCc=FWMBN2;^2ti%h6*EPAczk=1CxA1fFFd8c) zbMMtg^ct&<=2Oii-=z}QK6-F!RH=OD7kiCUACHa|f1v#^fOYkC*j_o7?QVAv?(?Lt z*~<<-w*#@Ws3+6p{->{d7Qde^gUx;?zFFFqW|Jmkh2aQjE*(gZ&=5@U^}&Oa0sPZJ zx((u=!E??uxEwQKw&Yl6q`tw{jm4tZx1DgY(TAaqGcV5BgoI7oG5pO;acy@yJY5_h z+|!KMd(2d<8PbYxeh?9fV|lB#QN&HVE_ZBgd868x4}NTdw`V5*74_kE=^j=)unG;| zM)Qur1YuaB$uTF_VCBANiowZccoQ)NPU`E?y0I?|GAF>eS%03*3!3DVI0y(#{@RVJpJPjUM)QneuPr|A51Mu{g2U8rhIC!S);|}OegI=;z_|RP5 zY1fK3W>M(4)qyA(Nc}6@p>rgXB^OK-+Lv%&;MHaf6df(xzN$-L)71sz*o5+QdA`SNR5-mj`e zecT&(98Kc6F?V4b8Z9o57{;O_>+t&KNri3IX{6`<5t@u1AC zT0TLfbpOQe&=s!IJJCk&a!T{s(x^!s`*d;Tlg!J`o{CJ#oMZCJTz7oH4t zM~kC5wAvBDNn=fEwc$GMm@mX1^PNx(Fk$CqCL9(ZyXvZsk$1e()R3E+KUt24vUK;HTiqbS7_ZH!xq^E=Yg{s}(eq4(Do$Zl+K~3gyKEdkJV{~l0Sy;!Kd#P<| zLY0V_(Eb&{g&(DtMLN5xEKR9jwG_3#tucLAf7+=G<hbk8~NFI zX-FTr0~n|C0ORLM-?n7)9$#96xmP=jvuR=6(|a^kzb8rlcN}-jZ^DW$>fDg<9%;2f zd~qrU2HsuR-|H)OKQm$0vO*TEk$sX)V|XNK89J?z&XUVMT#=K3OY(C!-K8ajXBazp z3Pn`+1bVFBp%~ormE@A!!Nu$?&fk|joS4x_s2fPriB(W4X+pDk^AIvAfK_Tv)NgY| zq54jX=?R9|u~6nvi>vXjG?H%z`eEz<4fc3Gl+V{a!qSud>H2t@BL7c3FLc*ojQw(y z>d!=UXrNHimj5O#ZE3tk9e@9Hp`t6jyxK={SZ!;5o$v7!NG@?lIVN6#y z!8+e%ij%tc@oaE3+sh2Yd;>kU4ETc^$-_C_)0)2Q43k~*k@p?J@GVoZa)1-X(j}O$ z>r2kpN4YMHlJd5SR2L@xT;UQwmqlmln9@7#iBTB3=^7bAjj*e%r z>4;0);+gU=f|sI?qSFz1?pv?U*{ZF@*SAGfi5Z2VaceMZz7;RsP2s>!6U3r7n`Oqr zjPo>Nm_GC<44$4sb<}Xal5?=L&u2lup)>jN6NW5$AQnj0!Br<6-s`a#HH!o2<70<6 zBjntp%|wJ0`LJZ4AWm9w)32!_COrqy%gFS*zl8FeQY?+_#qD9^ad%iOS8cnE#a-rN z%*A1xwfV1Pr{>fD#~{YYJ&>PjGOaJEbIa{L_|s0oe}~s$cn@=0jqWL)uIOC6Mmh!u zar%RqSiG8NCwf*PXp=aZpx;z_ub_13a_2}J1|-9i6%6^gxxQzy^IbQ z$ur6}^t6$m=YsuWxk`f9{dG2?Z^?2@JL8KHa_+AiFBx3Fw3(Dv#CIR>h&~}M7`kjJ z+D@xMm|dl4E%RrpbF|PZDwiqK^qA7G6B7Q5=2!>G*-anDxfLJr-E|R`?;psXNyjly zxQhM9>%|{213K4>u_|>w=C^JEqwVYQ0R5y-u-wdVWi^;fD<;mDl9T}3J!)+QfaBizMMmGDZ82>i`ni=wa zQjtR2DGuzFx(c1_{Als3Ipbqxu3T>pKEH^-DqER3l#Z^iUks!lY`S=s{(qKAEFI92 z|0<5-*|BzVmgGyPoT-X;Z`|SCmvtHVKE2qvvW`w?!e)%O!&Q3D0iLJL+`9YhQ7;W`yS8m`jG6jHQM2M<3z8TpY^zG z>PP$0pA^fV_hj7Rcsd(C!|p1{Yr5gikJtYQ%iwmBx0gr*kNsF~^bNPBWmEHtG7GlU4d1eo~ zI`?FboLScXQ{tQ1mxS8ucU~`KN2cf6L`GP-VyEoa+$sNnfyUJ^yq(IY$F^hXj7=g* z^_5Wl{X&e&F5=DRskEqVEANA4SXzEg{0WZWfy=W|U@W~!Ee6oY?`m-??jP|{Eqt8^1@ zQuiv%so-OSQBC9A8rc1!ZcFK)#o{{{Fq zv=L`z7o%A1FcO+<#_?)00o3@5^iWQDPvz9GWhEw(HGj*UyWTvrF1|QQX7WCzadG!9aPaMeRt2Xpc8aa! z;YyeM@enzWj^L5Y-PzE`NqpV?OALv51C>!~nDI6d%g;pd+nC{e-G2ZgK%plKhJ|D-(L5m_^PMDckJj}swfGS9?^+-ZIvfZAB)0d>7Bh+dt0&WwtTm$rYo+>J(^wCS~R;P z`iAr2lHP)vvbTz@Wxi}{_ZlVh{i&3i zEARE`Tp6b;yAfN^a!CYD%hsTDK|lUcS&k7Ga#6b3iIbmR!bkf?@n%;XPmPf*<A+dQxr?ZW3^;X#>)k-iDmYjSniUF`mG z27k@sxPPWD;~noK=Y)cNLY|3&tV5nbDm7l&7mLvL%S3EjGg;=@R$-`&(NCPo+FN8tS@j9&Uz zuwmy#Jdr$Ii(-4W$(@4#adaMjIk)c{uQZXQsimP(l!}zPuk$F1mZYscR3eqqrlf>y z$=+mTl}!kd%*@9~%F33#`JLb2AMiY{SGW8Ae6H&}kK_Gbv+O#VKIF4~TN90AUfoTf zI3&ynz$j*cY3xxMyd;74*zXCD78JFH(Q!4!i5kX6Zo z3BS8WEgXQiU9ZtHm+N$3Zwd;$Z&TE&r&P*4@1MOb@Luf=eV*`=MonE#P3^&Oa!uxE zivu=KN+y{f*Tud=BS>TaLGty^MC+R(M723VFUAxHwl&hE$M*0E?}}B)zVMxw4%voO zq)rG!Y(Z5shMSI&`c4#C%3Q%K)x8%3{fpsvps(&V?YNG~@;!)JDR3=S4qcjt@j zfL1!eyWHiustEkl1*&)3$h_q@DO@R`mru7!hUF}$C4Ih-wzMnsJF02(!eg{q#)oG; z5_X={(%A2*RCkD7KTfRisHej+h@l!Ld)^>Y-o(D{rAbh9 zRu-DG#^HzZM*36}N0a~DAot*JG)ejwtsItu=hq_eELoFI^SP+|rv#K{Gk4Z4o%$LX z;qO;}jL2e_^NtFNG9L@IxO8^aoup;+3b2E}iyLhQ!m2;BXbzXqmDj(hS049>I2+XE zbt>oR%BW(3IX(UIo+LA$iKw@uaOit1`oI514ZKTe=8Q?>3<3r5OP_l%*#$0NMP^E?Z_t~Tdp!}ONdKB#^ zPw4`5lrEsmya7Tt`4UAGD&fb*gJkB`19r^7E$Go3xpMmA*~;&9&E*BDj2n!fK{E96 zW9_Sf_%=4xES&|@By9EpN0~vdJ(#PyVyB=Bss*z z;_^v9jQF7<t9K)l`AOSnX`~y*63`nr;N}KbVZu)W&BxpE|7xkWoOvz)P+axYI+s*j5c+e zAos1cD8HbAe|l0_9z2F_c=60eqd!*tjzaN?sYuHFC4LV1MkaL+$#%z9dS4v`Ls~{N z4=6!o7K(XR+eK10 zPgG1jK^N!RA?al#*}q&*)v3LacCr_()KDOqf-OR$RUg_i!w^>x#~FmLlI8yzNJZv6 z9ovyd>W0&BtioS>^y*3V$&YBylrX5wx2AsHPbo3pg#BmI(2eg2ljJsv%5Y$plrE-T zmxn|DF8JccOb-KQf=!u6Ggiuwz4vdC5+Xpv}t*6zFu{d?`Dy7KufKpR5 z`spZ>`Al_M{kxDE;&W)uTYq$C{^qtE9sK;&Bz{j*g+j@Gdg-y0nshf&<(VJUxMw-l z59~+Ur#Zvdc#JIWA9Ws@(26oymq6quph}=;~O>gH?;B7ChWGid!qbYV1^o$CY15Cv2Z zalwkoKPj)D1~%UchtZXuxK-Cm=Ilfhic3WJo_{oK+%HP#!TkkKU-Ul}iQKa_l159O z6A#hAk^SMcJ5?W{{O`Q0VKVN`4(6QHktHc1OuiN6b?jh0w&| z>>$fTuiko8-aUzT@^^%;OHYy;6o5=;JB%4(BNQ5hm{K?zx8~~Lv5g`QRq9~uSY^EX zevVcr&Zc`O=aKBoVZyUE6295WNQ#wZ|HVKmS0Q=aEKLD>kqbwQkszfIeC_xtvx67MkD z$y*@;E4d48CmT#_R`e&kMd#^!c_vCO7~uPj47^u#!{X&hh}*G~0)FUqW6Z* zbS6N!Ou|q#XE+QdxHZS%tI-o@)e!c`sd7fUJq@4kFw?oLM8pqyK>eS5rtI*iWW{rq zVL8j_K(mrC_{*-D-vNA%uA@ICvqjXrW;%6a1m1DpBVF$-jem89?)miMo>CPZe$*_+ ztm5y?n@B!`CqqMFk@Misp;SEhIPEQ!!srL)G+Evi!!$Q=_ed48R~7LvEDVnhxqq<3`uq#J6Ol=p~~(yc(U{}Z7ODNf5#;% z^i`(4!{YI<)eY0y-c#UGZ%Juq4jtn;?=$A?98p)ogmq^K54xg=cWV*cb5D+9m%{~X zex|YWX2ltL_DNTG?pa57wNmikfe5JFvxV-zZ04Un5gNxwpwM#&86WS5e$MJx8XAYn zVahx!w}(=zIhLsLEa}Qw;l#Os7YBUkq;Cf`_ccQ+-*cWP-lxz~PaGQmnyM17h@0Ln zsNT7ex}Q|U?6+Dl= ztSCmA`Go6tk@2d0q}2*O%U@%U>KQS;F$P!r*pSIjX? zX`)xdS(5yAK;X$`56 z(CVJcPI5bRZ|MS^jCqod>*;vEzs(S+Z5Si_y{8yVa|JU*N9$Hjs-J~XypxX4_uh-zkKtAD;n z{WmL%C-+0)@!|#+r4}>Nx8y-HE``b(+#x0m$Nowk zA^o_WW?HG^t5zc=j)}qcUiazKP1XO+7qM{tWoq*B!FA&eLh;&F+J1F3YFpB9r6mk6 zd|wOoJG&)CDcTaVGDqm955%;BPU`+n1y>b%Q^J}tG-;$F!gpf| zu`@EJMw7&cbCvx!Q|jwubl37E<;{@8YR?W*2s+Aedb@EyG80Rv~VIsi+=g( z(XDk8kg0!!BA4Ex{$}!2>U@)0__w7sk2?nslCinu8HL&o!P-zM5v=xr#$M}+;WM(a zVC;4pkuB&$Q9NpvGZXf~NK~iHrpL_G*edl$lJ74Cn{}tC%LJkV-mm$+Tud(%jl|=L z^T;4q9ifg1i0xKJg&N)H&Y@t8nDIeazpfK|`MoN2a}F(=ze(KvV2U-nFH_BgG?7}H z!MU7JY(_f%+ptG+y(5J4uYV|aR1PeDDx!DkLpl{Oj=G+c!Os96%CTvr9xd#C-t*O$13L_pEOFoY6peVn9;k0asIa1$ zPRbvpTi{H~pcmrqR#RB!JR_TfafpZ=goIu{>9Dc_Gpr>NTi)%jv5lbI$Df?L7fr*O zb1UfCv2c=IXojbpg)kb}59c37V7@i~&L>xh^na@KNmqxCK1#y=l5oyceWF3Gi>Y6G zH`GYqr-9tX-X9c=CiZ4u&uVg>@18+^?Ec#5tS82~uA!_e<0#Q27?)l>BG>0T=_+&G zR&8QF^ejij&3G$e=`6;2OdvmI1KbQ+LMzk!Bqd`Fu;2!J!+*P>uE#q%Vq}hk{ey7p zxe1lC=S$_wc>Ef~_X!uy>89=>?QhdiW1+4%H`U+2uRb&o&YtuO&eJmOCzu=C0qJqtxZXK#I|>5l77G>BreXdb75UyqfyM zv?&;BhEp)An*~Y5nZteIJR03Uh`Q~q6Rk-fBsaP#;bY2BR7ppQOV8^_XPYBT&pJTM zrGfs2zopVJdsrw2VzVuKtGDMt?R^u4#fC$w*aas_eoEG=*<#!GMD#WLOyh5M!H`v| zXq!C(c{B9Tc#bfzlNq&Vg3)R2A-uz93LlS`cZD>tw{c%gpg7H(SM!W=w(+G#AV39 zVn7=u{9(V~dQNG3-lUaTSEwaqIA{I-iSY^MFyH?|6a;Uh?(75Z>K=>V>FhbVtVpg> z+5Gt=;&gp1v@5jn-O~kWlSX2#bvqpkvY~Y9I~VOAVu938sXps7I_NsiQ+h&DmG&(N1 zer^Pw-fN?QzBSaCqbE^6bBIDl?W0AzOz~b}Fa7nqA|ijeIP1+kM0=ZFimZxOx<76= zB~%Z==+WziLzDw3xhGl@1x_w6fC29SrrMvT9(>N*U~rja&v931zZYds{!Lq+a=+4% zpVw1*V6So*ofzRlDg2f9&yOcbQC}q3kHXGpnOJzQgof)Kp(~d9?1C6e0Vg>Ve2MSr zJD*Xp<2*rpjyU^K8-t~8a98|4anxA`YeKSc|Lg>+9s1pQ!OINDTw6tMAN(l1K^~!; zN&Pv)0zX1*ux4J>s1~Wfx#WV8Q8jMAG zrBu<6?>i^#QNhmjfrC!-eAO2-ILoziXDvOiJxq7k7gJ>jXXJ)x!se?1rLDKczWWKd zuh5e@0u~gU@P`&fbz73;)|U{> zUe520wev~6`vOY3K3!7qoq74SA0(?crJ=WLHo0qCBYtrPVx7id>hUqKH&99+d4R`43q+

Mq6yOz&-vpZ=kXU>iJ`8CYEhWz*RqNJK%bRZ}X;XQSzNIDzQomVJj zQWDzaB2oHV8zpTCSh#yIB+Pvci=0J8PmHi_>mf?yGuX1dW3m4C4XSS%gF8b^urH8( z(Vkz(>)$3)NDG7SaeefZ@SeK=XnHPPCv^57bUxTJTU0B(r?j|X7&N$9;$Qhs#1H2_ zskSe5+Mc2hmzL6%Tl;CiMP~fg^hW>0e2fpdME;-LVeev#0M&d9xWIFeG&|bb5`@xY zMMyWUp$wxph`fD1opNw+2R`SVqBZSkXC zoME3YSw+QHtvLtEv$YxxoC($zwTs!8{Jk%wmtCZ&AfRFRB9Xk&7DIbTqnp7+Qd-js ztDHvT$muBT->QboYhRGX?!_X^Xgu6@OHm(ZW|Rr`ZOHAV8LBF{b-M@B_C{fQOBRmh zap(I8&mtRb(5R!$y-Qt;JFkXo&mCYnFdk89Civ;DD4O5gCS^13z1rB3CTH_yqTHGJ zFNIC#uhaD4-jE#Re1NqEIX5PuxpOj<_A(3WVIVT^%CVHLK4 z7BNS)>kL(_9Gs1XkDBOnh%%a^tZ_FcfE`Ybn3>g1`2k9lAAgB9tmk>i)w^VBpMyGI zcHBPe0uSwNbVn;*^j?$5OpuNADk%{me^1g?Uk$upY0Q30Iov}qE?gP`FRORL`p`7k zhb5uKqLbE-REKeJh`9VGoL;?`hUp^Ciu^G|xydM$rp4f}pBlos8*sFB5^nWU!jZTC zMC&+HWXHEt!RlkeXy#q|qEsOyYn3re#Tbfqfy}b4l6>RN$@rp;bpO&?x_aCjZ_#EhqnO%p#+A0$^hk*C9w6W#ue!Ba@o|gIs z3793e|Ay$Oamr#D8<@cQJgV9@eLwA^AV`oU@F;*?t~0 zsbUILubR+Ew+M3gT_#TRy|%EgGuGxUCx@xS;e2T$g?z}walUWtm}H0Xzm&12o_!Z1 zT_At!A?M0NDZ7(14s)w1DF2ig`_dFk^f^~zGmvvZOKEtBlq7D(MjGtNGm!>nGMTE8 z(;g{g4{?OiWiN{nP)3_09G@jXceg35{~16xOP^{Md=%x-!J0;;_W=hg>vJ~kqM`OyX=p}eZ;Mgeg#~Nc~W)tmoTS!AM zU!{AGC*y-h6-Dg%O8*%@roQD%IOFb5HOYG@@9z%b)P=bZr}bcK@m6^D8X(j*4aSWx zUMPyx#Qe=Aq(0^ty_@(SDV$qE-Qv9Axz7$m$~CZ-b4XGqV-Pvj6Xz%Pz|8G=)N^Sp zMl0*X_t7i*o8CfkVJ=X7$ey~j?BX_2fW%7Y|1;@DD{JV=Fe{jCE~NJB+i7@C6{RKy%>KEKt#Y{!YTr}7MyyO^Vn@9v7_U9p<85H}m^B+2bg_+Gn5 zxSuShcX2bROMC<{YAEI}8BBh=x+BnF6-^Ha$Lk}%skt)|2i*K{Uv3=Yuf{WL{xaFY zg)F97;7|8j(jSoyGxKbWT*6uB3$`#H{EcpA8bNiF8S*ADH*<0_n)<8Y@b(excFSZw z^9AnN`4gIa$xD)gAKXi?_q|HmBYV*)lNiK)x56J;eR6uiJ)W=A_*oP#BJRDVyM8gW zvqqMB7#7fmH|Hf=toD&P{S&@!!Sp;s34`>V;Am!!-tO0gntwj3+c@VuS{Irk3MJz= zijoV#n9&i47>8+y`L&H!tlTJ`jSj=Lo}CnAf1MmHLxp6wHd?rEIAC;lD0b|VyiL9+ zJjZ6h$2d~F{F;CTw|URK^O8uJGZ;N|e36)+NrM{(Q{ATqx?_|Cm+q}p z;5p>nP);8l^l;R5wg~y)3t^B0&vH|I`Jg}x`T5y$j2*nc2U70L!?fw$NBS5zjgr&- zFrOJ*nZ0VogXn6~tnWe}{!`-Twkb+ALJ*wKzFEbwII-`lq^!-1_I8WF)u&x>{_rYF zJTeIb4&R{c1wr_>VhYBF>EY`~cG-7-BxGd=VO@rbME-BUYHVH&e|QMI2q?irU&rsxn|$MpLyYYjS{`Qze;Ac0|!?E6j7^%th2Y zNnfd6^sP@{NLdu%@h~6AH)>L{f*+F4T_de&83>MIZo}sx_!;er#F_e7)8imL@HXRr zGku(rPC)d6TB?cQJTl+!j#-(CXSGfYhpMKL^#k#GUmRzEoe)F_^q+c%ImOJsEa6M+prB$>dCT>|Pxr)-5u_bIzrA zIBCLt4WZSI@8;+#5`MMNW0f&DaN7)(wRyM_e1I042S8V2FDYjYpc`%yXGdM$udY2T zaUU2%a_i%uo-U90DrH#H9@4YW$1~lbxcJ73l9CS6^h?G3y>_Jh;fqC^pC>%e$)h$c z6pAC&Na2Scc54j5`-nG^mf`X|cRDNP&dw4l>fSi$C{15@p4&d)n;3dS+u6-h1s2VD zn6{a-^SRk1JD)RN1^Ubv_)jv>q2#&KSqsE!Qv|l*!N9_t{PU*neN3DpV%O#9RDHixN2|)KpR6i zBb)H^G4*-V74E7Nv2pcN%DKV55bJ%k@U{sOS=sa@=u1QjLL`guGN&ei zfcBKj(%uIt$m3m3+$|q$DKSU!@?p3ulSenrys*&u0d1YtA5~?Bv}E-dlub4k!}fTf zzO*ai-t3}?lvJ8?>H_s;#;0v)z_Zh^09Z|Uo+X!Ox6!p5mL$;vGk?MEFD^px{9haKrcc>%U;sHT;( z4^jNY3`Fz&PJuJc`dZG|;Xesij};)d)*D~fw$R1_yX;LlQ$(@x)<=R2R!0aTPW2`# zv_GNMlONH^)ecyDrWdBG*yGov?y$UXj-QWS#lU)RZ4lIX40HIeg6L_;n9%-Y+S=< z^D!>)eqJt7IckXo+ro)PWq}^JqZhJpyYMv)ncf|5Qxec$sa&js8%kVk>6*0_7P_7n zy)}p9Xxu&$J}!8jJB$3^KA}_64U~RGM&c{oBzn1ZQqS`}XvO*-^f`lfhcAAS;{M+x z>#ae4*ROL1t455DUrz;Lxtx$yfcr%sn)}{rB?DK+F_t{KCJLAYk^(bxVT1~S* za+{%i1nIdc(fn1DNPk)mPA~0(+T*{eXqpQYm_IsV(=6&?xr7vg1&uk?Os?m7uN*xM zA-!f&74ywYKQhnorXoyB6mZm62Dw!xP*(m$cZwd-Etgy39zV}2zkVa@2VOW{6pi#d z=V>M1<*!^Q#F#bPs7XtTnRO{-``Cl-Z*3(-KPMzqnKMJ1S%1s3ajj!6y}s&%XTQ`S zXSav0YD{JRi6V13wQ%?4036>wj8;6TrT6Dv)9|nkl6`SoV&NKuOtsxY&u0Kq?YiLo z$#&)=568;MvLe+-h>wYOn7ezgFaz@v-DKD`)&*f|?G!XcpJ%_ixcsLle7Pripe_XI zC!{Gi_$1vPnJ(Tj4>)I+5e_xXptoC_DM7Ov=b1E79=wI#yzK*d*@@USJ`G;%K%19g zghx3x__})_et!8#AC3p$nto5X&UeFwZMVdO;`JnBxs(j;JdiTS7n8lD5zFj@d-Gq= zLEk)DI^7=>dBHi=*aM4r|6uk+lU~hB#0lL$_+*W457w6#A!lktPHfHNblV$?lL{5#$Ibgg}VaU&KaU{lNN3+5%8GUM84;n=!Zil$QoB)DKhP+fXd(V}L=&(`djw zXLyX@&(Z%W$-Ut|@vBtqEv}>i-JMXIx=Ugi)B{JEjk1!N`fHz!#wCBA&zuo3aJHek z5cV+^t)$71%y1>ej_2vE!j_-A|4zN8yIc0qgjI%E_VT&N%JIem51w~t3`T1I@1%L7 zoaP$I;Z50eQObYU2S3i}+?oP~kah~+mq1C5zo~nz1{!CllF73;99ND*r&2C_zvr_P zvdk&*;Xdbk#}csCWxV7Vdoeu*E+c2Xr;@qLRI(eUwoa zZjZB*yJ0~l=S|0{WBR>|TBk>$^D~aU6i3XXArzwXVKDL z1F=+rS^Ud}(j1ofO!^dqj4{0D%dZkzTij{Q!5#E7cOstb=mQ;}T1q=01!HCmHqN@u zv+Swpb?vQ?=f3MI{;uwt+&}@_laPLfdm285ure3{Q|^PFGS!5$bRdlXIlx;blJ?Du zh8<`AHV(;^l%$8?Oh7yeX6+_}D}&&u-2|lgdL_Qp6Rax$h=im8nS!6}h^PTZJ za1=TQ=h8u4d3>0`xmr0(lu4Fz7ilAzn{TIsF-QY0 zJ*AjSoPd80Hq@_+EaaZ9p}fY?xa{GHPnX-s=tYOncaB7LXDV$!nv8K;-^8D!i6|bK zjhb*B#GHA=oiV`EFbX#xKPRKC7c{ZxEJcl3>#ROUg*xlFyU>rhsl}>DyO9lfQ+ZS! zccqP18%2PGJNh+I=slNrte0)zopW0#uhzo*8Y>J?HKamSRl1b9i30G2&X3QheMh;E zaAg6x4>v%2`#!3TSCiP@iGpX^Ch}S`6?fh--#RT7htF*#lW;{?Yb8Tw%Q#$;Q^UL? zF|=%jhD38)CK`8Jz-3l<#4vAX_ACv2Q?McR=y;?yXd~HJ7fCCvDXz+q($8eTJSYX5 zF3u4z|7OD}I~|*1KhV*s9YRdrOv695)839egG|{cAktJ?)JZR?HkZu%E8;+^Qv3Mp$`S(j1uxvEl4Q986xy!a8jgo;^L04D;!Z4?CIV&u2*e8*Z>--`Wk%?*5!wD!KUhD5?3z zV7J^*?jppZ-w`*2EmVi2!bpU2?)@M9K!X-q;|tG1YO8}0sc@Z+l;(&| zpC($`yI!dL;9OIbGonK|_m}aR{1z+VMTHj@yJ#Z*Up*aK(JF?NZKgh)#heqnMHtnv z|GQP6))^b&?Y#nhtDqNEk9XJraFf7>-bPyj+e)s6%o|$ zUoQ?3XNQHw&sZ!^91q3$Ay{!x zAF{)=5I2jWy{fNQ$ZS3-UV2u#|9r~}0$Jde!v9oaunylma^Jt{2 zZtB!?K^BreKBj?-n`w03DCFGei@yWj(dQk@*<(5gUD`I1PtY{vJU=aR=4nGMb^*y+ zcw*K5w^VfI04;4cArs>eyj$IaHl8lTf{!v-=3)tp9oBH~KR~i1lkd#C$BOEt`x3vC z5jeOf6Jrj9;~8i03I?W&!eJd0eanY>N8M&#uMNsxCzFwmv?yXKo0#$DW`Ge)z`K-7%dO04KsOJ(MQ3crN#6b!gOkh&{j#f39G~qj zxw^uH-$nK?4AG>+THV-7YlYTj%$0xFOx|C&h?G}3l&{Agzb8&kCN;)FtejSz4tpPVm|f6`lUW_DjJ8NKHq5Q(??>C(`VXY-AOaQyTWP6aB*{8 zI`tRTP-m1N_iR}PL2ctmRkTSF@(5_7Ll!3|v#k?h?Yd3lC7{Bk_=*5WborUCq8jUhiZ z2J1X>x!(|pxIK#~d1nvKqHupr^O~rVuA`)i6eJAjN|HIbSiD3FCcjsZnQ1dUdCBLc z7X?Uttc=^WUdV9s$5zYXn9KVGG@9eW<#*)q%@vQ=7r}0G1UZc0?8Vc!v@>ZK@{Ww4 zvYEE13kpVMei&^ESw|PYagJY^sQBr4%-&%{HgegxlTsw9xj%s2yTzoa@|w1L>C^Ic zoCC-iguS-{a44afS=E6E{NjwqO=e`bFcN+1jnQ>*Fy;=A$MX{rm~r+WEiCTEE(K2* z`S3G(&O>Um8G_2j9&~V5lt}KoSW-FLhVReQ5Y73hhL9^1`8EtzqrQk0L0wVSbecA* z&!;B^oC`fQ9DB-jfx*f!Qw|iN?7FkzIc#IsJ5*(}nvNXNh2_DOVwV4W@|Jw3-Dytj ziWX2A)&nV}IxuOe6NVi*lDtod$7(rwEI*z}cbB%)Nf#*` zx#5A1j|!YC9FEe%`9ddLg0cg*X`1pnDxEir791T5xkKFBPv$+Ko)*3Dxm>tZcT&qn zX7+8(gKw1uUUP@J;$#YX1zr{M)BSMveG+!t-5?$Pm6U8~Nc(mN@qL0Bi8d{?Dv!eN0stKB91?Q0g=ybEf?`!^| z_Vz`}v7Ai79YjxmNTc6%J5t_b2G0#f>>2z(gL6!1Nzy{zK|~_NB$LLa1c_5t3Rq_u zC7EHGgXEkD1n5SQTc0l?C~GR78`~l6QUYG@;Et}Hg#5Q3qW@uU2`HQzj$?P2#e2%#>GZr%tQ`$(SUestnxm0z8cJX5s>Oz0rrZba z0hPbu$jQ4&wlA`AuO%2?9SJLzbP{SdklXzy)J=&Qc_uuA6!WOp$jNwq*PN`5I-{V{ zSsc87j>uUJv(?wo9i=m5)}5KZSG!=%>kT5=F&gol?Thy2tkU)yv@7h0*z;l>Wv$*R z6mpf08yFCyMc~=Z4te#Vz|=|Dp~241dlN9zIuTnJdn0SoApBj}1NHh+H0xx-}6ZiQbu+jmrxF}J-tSCz3E9uu3 zHS7u1;U2_s@oT;Zb4m;7iaz(F$_J94nK!#(*sp8-fn4W%A%E!z*!R9n=DagLQXGd9 zedHkL`Cf#q?M7dgSCegrHdqizSrP1KNPR@V4y&WI&67^wmBxZyyC`Hp5VQunNDQ}k zL;0IZGXAd{)|4{S+F~y)%jrfcF9yS1*8n=EoO6}4BFk|R2+0|RJEDfhb7$p6xGNkd zmXY_o-ps;0Or>(UtZ!CB#I#dpeFGL(DCt7t%-CiW&IqbzVJ z%1;lVrwh~YD2-Vhx2Ka~|44kYS|=K7*rjaHB8GK+K%xCyA-n917*x+WBCGD?d&CD5 zwMuB$pPA(0KLrK7+0CW@iGs3%scL|P`nn|JzaN#Hs~-iIE3+uF_$e*=*q!eF?4bCJ zsglda8tj1gL&{+vGV17o&8b?@yk-HDR449ajz+=UFl;wSA}1voXb(-Mb*AIVfOF!5 zP6R`Fd=pK$Jeb~DISIozDkx^2`i(#xTrg-S&4>FW%||O~`R1jxle;3h%oPu8xk-<` z6|nQR3=TZ!Jm_$C|C%h2)<`D4Onm^TDUS7O0sS0oUPbD0a8Rhuh&W8Db~t8Jmm)y{D6f>OqQn_my`nTf}r` zct4y1308${lh@n5PVLtx-7ho}c@nKPYnR5AsR)#x8P8zK7nR&X!N2 z-bI_P1Oz~ny;Sj~Ep**K5Wk&`seiyXi5x$>4*uqptdRyHb!_qX!7RxyerLr0i@@~H zGUEL7kL1KTrL6{i@ONH3mew+7RAWEYue`witg%?fy%vXMqu6(04xP2SFd2V@LWhr{ zOTYSH=cE1PO3~QTFAm>1Tjn-rB4ucXac66e^9;^i>`P(>(e^WB!_S>g_F5~Z490}Y z?X-@nX?#;L+1@xyPLmvwG(8Ce<;UU1GIbnSJPI2g#!%Txg5tzHoZXvUBklvPXl$L-K@!wj{*-0A+?wRB(p1WjHy z0L|N@#D)#32>4zs`OfSQol`}~P>e%JVP87t-VLYEED@7$NtngWXT9@$c6!YY<;*e2 z(%eeBct7R#=Ooqj>4B4-^TeRQSa{q&OmdS=z%>f&4O68bHrlAJ7>+?@OSl&khCYMU z5VUF{X;o@p6fI_d;E7xG((FHa z`syBi51&9gE5oRzeK3{ub;CeiYlQ9z#x(sGv_O>^a{PT<@o5xH;$2~O`yXAK=S3MY zxzy|+jh%Yqv8vn{Z`;ag-!wiK*lwrTEwLCkaf8@7SQRdL_UKAO5qUToLw~1X{oEgv z_}v)|PCkgsn?P0E0cpLyn#{EdNonzZ`eD(VTv`W_#)Ar~U=E@OGEw$P7Oh(|F>PeK z_yR3b@53xEojX(%R|s35cvSE`Z|2-YN_02Je8*Zbqaz<}pT^gB?9%Bp(xr4ZbTyqs^vf29NrUikH|uM4E{XJ$NKesXziG8 z7;NSWwJwPWEm`Qa_jNWcNqr?^OMBD6UQ_V0<}8J(GtesH2)q$`BIi7)oLLeRP>PEVT}Rb7E5B27L(PQJjlj&hy9^(Skd(< z$qrW{;|F8OYK|N_`u3()4Qm)BYcR(#34LZ3*Dsk;N()ip zVMC2k6R|>$KWld2J(r9@r)&*#f!T@SMzXDTADT-B1~L9m}iW+c(a^yPoLjV=|v~B_b9~Boo@8%&2ZW~y_!lc z86euWPOKcbjB*!;h{*rcQ2L>cHVho@Tx_~cWJFp*e$r6xs;P5#FBQcDZ17<>pIvJc zFiXFcvZVLWtb^=m;NDtlJZHLovJdy+GPrv8T!b7s?*e8Xpa<3$M ztNLT=5`TUre`n#@O}Y1bEi)98sYk6<)DM_@Hr^ zwV;N6s}JWsWFFn$q={C0U-Ia>NldZ+O63{6BM6*9=@ZTi4WoGUj0mL`-icJV;*lY9F6I!3gpdtDl@V9!94wxuL}*1Fv{**zX~;=Vlqvho@#Dsx((j>AFF*uIVl2 zeCnXEq@HM7HdFjD^rvZaW=ITPZ>B4*I}NQCeyfz?r$VlH3FD zsi|o-DY`h*)0B&pU7kp0>+@i-x*L{sex*~v0VKQC0pINTeDij@^PK8UG`69hr2GQ0 zs`L{{z45~kp7+}6*^ticzohy8AsysA#f>A_~kFklD#y z{QQTa&%{^^R5YR4-K?PNx`!e)UrRo^9--)ime{@U0cnei6l7UV*JpNxWu_{=?A$@$ z{Q;>i%juQJFj9Q42_&7PLlSk)%q^oHU-KbxSEe94cZ8hXAle(H5MBD4&O6?t4N1&d zOEJXcehxH&y~Lx6f79IdOvo`C$|7MLZL5w!W1$R&d~Bhj>6TdG7KC#XmEooqL`N2_ z651=+!NN20n}6bPMgJtZoiu~|N;&aTITokk_!p=WQqVrzFD zr0U8ddqjk|`ceam>Y2{+7eZ-vGSB%tmeR8$Hjw-2f<10;$({RxA*!du$JjdhJ;xr# zE7sA%%eA!4ND*OQcacx@TuQ2s!_N&Tgp=M_i25m1=ip4bF`Q?QeNA3zqv+(}IB1@0 zpsnLqlBf9#$q%P>)Po(xt`IpDZRZSZv@3X~c&hdt;f1~Bg zKhwKyM@Y%dj=N>0FUy!-l~;&_ z+dpXz^DjQuM6TGj^K(+%a#&nmt&5FL8tg&IqPnZc z#rMs+n9X_dzvJ8>k{g)mGMAq9^ObyN2jg-%CzLC06mw&Yp}(Pm{DxS-DP%n9y_ky3 z3uev_L$1+>G&$s(zNQOyuSG*0=Mt8W5EfJNDdtBYB3`i(B}ZTEefZxJ~Fuf)E;VoAM zax`B?ZBK>^3rRQ8Iz|GiL(Hw=-p^LoJgk3jhwnkcC+z~0s6It}? zKYQeFO@Q(oX13>Yu6XG~+I*6ol~o~_wZsSeq?lPfpg)S_xPRZUie#C|@M+aEDhvVp z|3WC@{z&?-Q42TrDZ;MQLiBlOhvwDsF!(hQPQUU{G?z0p_Y7gY{vcg2a)Kgf`9|N8 z#<=FIG;FL4{aCPxij2K+vzecJhGUpzJe^tx_7MG-^+(z9vCw$pg~>*%*lA&n3;MQH zKjAj%L|-Bi6a&>ROUd<1EqSw}YhOk#gjO`#BcphSx=YCKt|OX2WjHCg_9C?n3&`P|JnR-Y;y^M%?)@NWrv(LnVa9ncZ)gljXaCbadObM+ z8CD2gpi_0&;5J;^N02NRPXnFU)OmaM=f2u;ffX2O87kaD&2GA zjP;*tsBX%K@H{6=tW=;<)slShPMm6W0%t@7hCLeorHRiQg(FO99T__ zrXdS`vG##3-hQzngC9F6-6<8CxvyBl-B&yhx`8}4#o>`pAdBL*oI{!SXz!~%0nV*7`$7L+j!4Q`W5_nhO0d3nI zjSD*SpjTH+T3h6}2Ymrd{_zfvU@YD`Btt!QDOr!R#tGFdga#-g*rSb3OCRA(&1I~1 zZ#qqpmtl)gzdqV0MWif_-o<>+JsYsVN-`aA>Xv7Bbdvde~e4^LV z8Jm5~>MUpFN^PcXrC~VD-3O|d)bWRNr^dh8O>0)~B%8Oy40hcUn6Vs$y-(xs>Cs3& zHji>w2=FV%kuC|3VnXB8@HIveuTz83Ic+qAKMkW3qoXjn`6rz{_LP~A@W$V60h(%g zH!us` zWDUt0`P2NL>q)364J9fL@X6N0EBD9bIB3u)Y#)lU06(#Tru9#KOwnjFJ1_)HTW*OO?ec_?1W zxYOr;F%)0F!k$c+!~{?H^Sovc9Zb{1okhj;Kw%mTM2BPM5lvF@zDfSa@@ZY)85)^j zkMKwCB;R?KrL68CiG5CV=UFCHAG%{*(JgA``MG~;p3t$7rHY+47@fYFtPZLmr`j7Q z&&`9_-6GO3_(;=s@(jjp&VD{PmTLa+4#WE{7XQ@@6LuAmhsAhYdkr+yDnQ`F^N#;% zL30Nq$*?=TCw`1hN$K-!Tq-iZekF-G0WuaWq3zE(=Y4M>Ra@pzSzZd37w90T&ygk# z&B1XwHRh9Zm~8tvH}zrw*{G|dE7}z$JVWT@W=3j;`e>TK@8AI)f&ynHw)<8*mGD{0 zW*g2LTO2~~GCr{NSLf29>uwM#W{#9V2hxwt!_%)B6#DNH&EO2w zeH(JoU1&-NS1l)X18Gzx=a6-oFuJ=x(!nREXv!=(1U%#%-{T^Pv)93+3N<*_nZQZ^ z1R0F_ODDr*sU^spv!3qJ5o0@&id)R~4x5OVLYinX*QWky(MbDU$C@ifQ_p-6%9vU! z7|!QGPLD+e*;i-r4&^TzrV@hC;SKbae+?%lDB#uKBnr&mO169Vu?CyxB%BZeU+)tF zN8VBXF#j=oCX$Q#c{#ZEauU+Rw+cGc(~+{fmR+4X1$Kg|%=K0e{nk3c`Tp88@HvjU z&RH>yyx4R%@(&EY{)ZnGn@HO z4#~AK7;qH9)k8j*{C)^#X(^!Mz6h*h`>8qRFI}896VvD1bI@994aZk~q)(Hu@W6P? z;~DSI{2bG;aTiHE=W|P*yUN;}LR+i3e=EGpFM>$ zT}4T8hAmXh$D;JaD!~;#tK3@tmliNJk`L6v-Be9zEJ%iLs4+P95ZQOzX!dN-?HA|i zvgRZ5D|Lb2%ER<9F&bG{WB9Q%HgP6*qQg*ayt#tOkQu#08~ z46^@b>*6ox7}==wIAj^CW8}bih?50^?mnhk=R~p@HW`uptcGw)`134b67OxViEAKc zA|{yP8HZoVYPfgsIvw8Yg8ZNY!6*CQ9}soDHRx zczpZ9=lLeQV^)xgi7C#g+UWz8`TVmym4%A*2nsLL#F%!@j9x7R-@oFR<$RbrIF}{o zp$BRHJwycw>u7p%7W&`ar0e(iTsvG8&fJ-;-(Z5J{QUV}&qNA;*+|td?b(sLHi*t2 zho7&8A$GDfDma5w!t*L^m-T?|(4*91!C531&(p&fgY0|r3}{6x#F-`$`a2*7{W(=+ z`Gmi7!rMtsbO;SP@1(8`yGVxfka8?HlWF%?HhE+r)2w&LhD#;XwV;mPY}`cb-*7~q z%SLN5_e_jiOdmV-alMoKEhX}BOihNq>pNl|qR^UggRU3rQsTQ{N~@`&!uo6Ex>N>D z*FJuZI&9?y^FzuwDJp>ZHoimKxroe{4aEktyR^)O_v!Vf<5R&9 z%=eHd<$i69t$)lyjf7!2Y7bfQz1X2?Nt99BN|y_NakkzB+*r@|I)igzqVI%x5g~BO zNy3E;E%;3?px3cFcq&tCi)13*`tKzj z(a_=|U{yS7Jirc=5TH-4aSka;1@NQdpHW6^5lEuzCNO?83t^vVIfA8TBx+4I?4B<0(mUzfy;9 zKdW&{Lk!O{>UqcEnq>+GbI*{o?OePP8;Z6-Ynaw%W0zYvwhW3wulFmN?7L6TWfV|X z>qPa<*@)hAolcYuLH*0kY~9iy^zNz{BJygeb<#+r9pG%(qxm?J7z=OFx8&TbgAkir zboRV1nm;vAm1Z}KG`mC7*ALQ-E${9Bd=B+5dd<7tnU3%ew?pxR z?Nl78$Nft{Zigv#b{O%o`+AbD7lM)PeR?%<1&e47!TDe-s_+lOI6qyqHQgtn3z7I9 zI>eVWlc}WrN*coVYT4>> zLU5@YkG>xToX;qa5&ZdLFqY?S%fpahxB!lPcDLnP7>4!mUEQfbh}#sEUQg%YyAIV=OcJO5%|!`1!;cB}1f1>}@1=uYN(p8qYEh-aWq^5`+n>Hc<}e zI2%-2;kxr|h$t99tcUwrdcyhst(wJh)-~J%pnPcs)tvc6&9M`ZequD5?@y-JoOLE= ztcE$4IbTU`7h4kei|Kr;rZ<;ILT8^P@1A&I*U$*WnHRBBjgl6pdaM$F{jEA`}2a+TR^4y0ux zw+nu)eZYo#iLlcfrDzH7ujZ7UbP4cs%SJ#Gl|D{vnG1u=fjq6ngwOglO&@UD7cd~7W2n% zqW|vBWy{y!rjFPv)V;Hp-R_=*1%DT@_4|LY?$z>;gFQC?;U4WO?uKN^wBLRxJkKqq zbrw8(^>PE7-8TgUib+v|M`#+M8>s;-WqlM%eMFOd$2+A-mDuMsvfyQ%&~*JmUHB$0Gc* zZt7;fybrf{m^=15rXgC1dvi_YF++DE)qZVd9`cqD^a&(KY!Ep&uLvBveUz;0VU zebsou)ch()`Asr}`8;Q&o*%q;hgO+qG<(DD(u^vePnxin{@zN$@n%!R=15@9Q(?NJ zDuU}mGoirq$U=IIT;|WlS>L-fIXf52BVRFvE#V|>%(-ztENEWFmh8Gsp1(ElHGe11u{)xOXHxao$WfwT0wP@E;QnelJZc^AQm&e`2R6_m zo1X&HknQxDGf9tE)>3<630=Or0OY(UJcj1!|5Y-{N)D+8ajSTYRZx+jcttqShh#N)pK) zze;{H6L7&O0}sN&aV5pwyAtVf=Fz9m;@I!oO}?4S=vwDJ!KIHTWLi|qM7Qzx|F$exXV1V(wb5vQ zF3h=yAyCa4f{R-NAfot?oy{Gf&AbO!{i26Xc!?p2`&@qU?@haPM_FrSHB(wwK@Um| zVCoz|y$Q=mp=kzIC>m4#L=RLgzDCjpyQy2+3rAd6uybjX;e2Zqe_lSI4I6U!d-yL& zwK`IjffwdHyv*#T$CGgW3NmxP#4fCog2_WeGMCiBvA{L-<34v&PmzSSpA3IDPeDnv z6|AGH>B#BvbaZ7LK0jF~u(vA^c=NmC>81DRr)3X)^C>5p;z62vD+a@pMPNIWJ1>;Lcwy_3-&tKBVSr#O<{}7Nc#8&)4#h#?e!6w5ld8LOD9I@q zdJ5MBzxX~cwvg{t=G$QD-?b#^)kA-p@-TXI8wGOTihe;DJ~#?6EU%WG*56CB>f)h$ zc7W!qUneEiqhz)EDqA!56J`HMz$?%r>f}B0fL{vj#RYY5ub|_+ly=cwXrs_jV;66Ji_gjfWHG0BkYh zx#b6T7`9gxc468~dtNvFl9&NO$6ea+V5%VTt{OJVa)zbrb^1M~jHVVRplNOfmejwY z7bd*pJZvUzK9Iu#Ien;GOn`=8px{r87A)-!Q~M4-T>O;}xBqf5GV?2|D}GOQ8gtQY zyqW%SzsZY0VI-=HXK>40 zujj(HCaY_VCuNCdsx$bolLMWv>Yj)Kl4t$}hC0g3nr#^{Fc{2|Ep{m~(9y zJQMkxZT%^7={ZP6_qpGhcl>%Uf1qcHGf}d530o7w`AaFC^vvxJ%OM5m^f)8IK!ZJ- zp@_#9^5}!^8q%4YP4&E&ImMp)cdlw-u?OcXuDQa#rzmj0n+~}qW+BB(m@3}vC$FF@ zbZFsGwjkCU&pqQ2wJZ#)%?{JPJ0B@n!xcwstLd=&T7l>fU_*-^3c%B)7ueJ}SLtnnBW;t=#!WRV`m6wQ0}0&&6@y*tbICohyx>%;jd zZH8Dj$g^q+<#bZ)Dh-?)Pfw&c7iRoiNLOXi7?B(djxa^w=OnuGf;$7P3aEJNY>4yc ziS+$s>Tr3%ia$+7kEt&??F~oS+*Rx*&ybAI;T((Emzei*-q{Xnp{_nVs2uXAl2uD- zgQy2Qr-wq`y@Bk8^E0ge5!%f;w@+&KQcKNV3i})o5qv3x^?w&M>IT!;iY3)FAws8V;1v z;hkBC9e0RED7zy{#RnQsuanDP2aL9VKtGH6DPHU+u#UKa$WW#rxRYfhMGXgC@q!rp}f#G$#SEBz-VGd?@1PjiXVe zpV_t0Abh&+i@`!OymraJurEg`L;WbtjwM>F`+^ofwt`xZFKtzyjAMUNdA_fXwks5q zj-4%fY7DSD{3SKo-QjugyX?^^?xXwplooO>VJe^bAF1_2lYNuM1;`%R4IMcaZ+=>Dd3;1d2n>vI_s* zY`3==XHC4LuE%%DY_pS~{D=rDpXRVJ>(l6S`82ei*F+=t0JTo%=TSRZy!m>byt?w~ zXKNa^?^sOHRZl4HbPi@C3~oHHyU5RsLT>RsOTk+DV>Sa*BTBjFZata5G{%lfb?of7 zgYHOw^o<$MUf7nhlPU)(*IW$8%rp32D-%o39i|dp1)MhE-Xz|6)cR*gTOS@}k5d*i zpR3pDICtsUC~@cZiBDvwsleJj^6=iZkMb6c$1n*iEU%o6jqwu^nB@oE*LryW%8Kq? zh!$L|(ZqSq%?^9Wo5VNo)9pHc2z}4QmDJnx_Zxq2N53I%Zo{3=B3R?JiG)AwqJ(k} z{{Iie=DF`lv$C0)CGyO+(wMw3nNm7KC^8`#gZ8{L`msn*U26`hlbY<&^6#ub#Rdrh7Kjn& zXDitn&X_wY__#-z9{G&LxNCOsb{&Qh)44m_x`7=|wWLumN~vy<3ilo6qF2id>+6MC z|JHj{x-}TZ2WF$Q=qJ_bPo_k1CpO&P8Wv@n=$LjcZd+y|HbWP8GhfiLGsfhwAs;iw z>0ni90G;$`BGqjL6wtemd6>r`-%<|hJo8srDaZ4i?^%S$6x4ZLppmDAF?8`fuuL<0 z+0@P+C}kkXw~MrPyr!4=*|_*K2WsP^u6kbc}VQqYFoQxgZO~8_aF?rKG#L4|4-CP?Kxc;D* zC8pSJxSzz&xjYO=>7(c3bD1L+Jnm(&e!=h#pNF&DSE4`W2J>mu z!vEX?-(TKfkxy<@AwOFit3)GO(U`le#8J&NgwM$lBMUk2PdEW(_oPYEjnCkdo2Xv? z0hMk)L!*C$!>?8e3-8ZH!7U*?7++5fm#Yc;2WZa?VTk*3m#&OI+&QxV6%PgX)oLkp z`E}|$rH`9Y!Wb{*M2?NoNI!3ZB)v?sv57!G&!bryr((w1;Z!LK&=Q^z_&6dB*S=KL8L?jHM_*|dPRbt zGhtSh%C;-T|I8`qmiwykTj`aj*;_VteyaowS_dHV+x%tnSyf#iFjP03GqGK$W2lfn`iW} z2mA7IYr7{Y-@8MuPY+PySI(SK7vO>&@3%c2%dY7f;7|H{a=BPa54sc46je^k>ebLc zVFeA$9zsJJx!1?~1iRr^!lY-7r~P*}vtx}5F)n;MR&&<->2hgoFMZ99nazgr;YKRf zSVr+@d2ZG|mc2dJMibS9Xh-p1YRK=QpKnUZQEW9`{`s9g$0eXRAQ*8=L|_`LkE`|N z^rik73BBd+xSA09lYfJ1>yNVF^sD7rLqAA?b<2BDQKXSo>)Fba8A#e#PDA~V367WB;xg|% zJy+MpibX3ZA>1Da>~^q`Q+S?I@&OyHoZwKfCl#+&w@}BqNoc!#jI!@9z+llByqsbusyG6NliX>yqhlAxR&!S z&i*3xQ9dX$tfFKM?qQkF&saAlp{XZLYun;()%NqnOI*=QPKyi%g^EVfUqA$ga9d5@o!XmKKWYr&Ex!!y{n+l;bLdeP~{Ad8o7 zhfx0a24;g`u zziy~F^qU&mxLbTMgtYmYD4plkeiUdTe%&uxE+q#u&XKD)B!Nx$?o;s8NKmT5y zPo;CLasB*iCenD0&JR7}P}Q@Fa*Zq5pSR|yd#8lQKb%qKwVMWbHa$k&5zmvwIKSg6 zwcN--{CG3^dZ3wt`?OJ1#ru__(sVst2i4WOe5SF2=B*jca~LKN?)yO=8*i~)``W2H z*ae0M$KyqV9cEAeMz?lXQQlNn7HO^H;F8l$lV>Jkd2KWGx4vdk_tL1GvqjEljmF$; zb;RA^xi-qe9OSTT-1oGm*b0r(yl=r7vSRk(C`fdHjnfd$nTv-r&t05fDBylBeIkC= zv2o?UezFjMo*yE;ahcR$YlJbA(rDlj&-{*f!zR2HrG$B^kX^r)3^KRTtoXh3>ey;J zBltj5n(i}62_Z=N4KNWizC&m&V-07E=}X~W_TR!-mgF%9x4rXG+89l4Z+S1)s9xay zC@*?A@}oJ#`jN&j^QNhaL2Mi|A?EE823VgG`3yJ1kSk zM8pmwY;)L3Mi19J9BQd16~1Ho`0$(Hh#Ake59PdxgEz?MRXplH0AtqWl4pJm`N?zU z&l29L<-2Xcja&>Di9@urB{rV6g;rxVmAt&ldE-iuIU)(0d-1TY`V6?ygq!Hb!A7AeyJP0 zgKKD8s~%3Rn~D*tr`SPv2e_;Vgz3XJs^;E{^7FT7)x&+H?S7h0@_p9b)5qv9-$O)c znNyy{TPl}(&ECG5%zeWb>E(wL>~?4bmG(zMO{|l&hV$;-VpsU{KE=2i?z_owM2HCQ z5AEW;rJGksly|XPoX23rsOePfDo*l)cgUfc^D{a7W2D{zy0C?x7gl$ZwcjLs`Y)4W zM8DF00}cGB%%Qq{j$kpoA1E(JyZL$lQ(P`irtvw7ViJmwi{ z?+Dgkcz|?Asi4whG}iUYL7*Ndi2D?{d=L{$X zP%-bF?sAERxDxm2$wuSKrBF7^*baAWGZ4dh8QvA#-%dm6+DgJ`jr%0Gp8Na$>Z1I{ zR+8T}PLOcQh^c>B&aTwEIUMggOucR+(Z>0i$qy6IwqzQGBXF$#+VWchtK zh;xE{k$51CWevfem-8hhe0f!vydH0nO ziJ|#J4!w);$Hs0ecJZ76+J!Zs-+G%WxQBH7EHjj~kEM%tdJt+}%j&A^uy3C-zFzxH znODnc58E#|^2LCjw29%#(O0BZ5{O+^3o&c+A6op1`+o-HpceXvEdQvYS;Y~SD+4em zoKQE^1cI8eoJ%nYi)V_XD`_D%s(548$5<8|c#u6*e93lP{mAn>_XYDC4e{$mJUlP= zQh%W_xVjsb|9K)zdkg*Q>ZZQc{CRRN7b9Fb8#-q)KFSO5*CH7f|ILL((N`vsN?2?t zg$3`GG5Mb=s@Jb1#kH>3IW+@shV!1Vzb3pRq5vI9Op5!4^M&VEyP&vQjx?E5lfs3;H6-Fz8*-`XdT6Pf|N-|gg{?TrTIXtX!=QHhZ&KJHQC zPWdsciu;?Y#CMTO#Vi~XJY(1R_dsuW8Ra@xvRfkjUT9-RLCtFfjcys#@@yLARg^NF zZoan+IZsTS0(xgce1eDO`N^0)*!2vpeS$I5VXUr1ZNucaqT zS20NiY0|y&i@A8rfYSVE#MTT!__0hRsgK5@2WM$Rlqb42^l>(=5Z{@c7tE8GPIsiw zvl%NF!093Pg&sIUK^ER58#EjpI~f%Xn!;;_0p3lzBQT4PK#Z9uZk;Zn3AJ5Ji+d6N zYvuoj>U)yQEfo~n$>IE?01};J zhV=B(XELc>L7p-R+&5{BiGjwvW05P6=6_#0&4Jz9Z{*8&TDnnBDYVQ4!JOUo+3`4w zGjWI4W)XD0AID}$EAuS8Ezg(+(Y6m>Ft}bum#pUCXYeLwdU_1ihw*&x&J5Ho&!!0* zBJh3#|DFzY#T#!6xV~G#GtDumt&*be)trI00_c8T#}514Am3m$v!qhs{@x$Cqu-~VaHhH`wyy#-at-!_qys&e-9@3K)F>F%~^tNoHe|v|c zHs}IL`Ev)`=FLyRM8Tj93j#F#M^~)^!eY%?_$tPgZl()3tg$Aws zv&CVwUOkh4CW+2p2WYG&&#(;BLrlOd(m5|jWo!1b@~bkq(xL}3ziM{=_*jVM-y(H^ zKP8z)Lw!mO6IWsgz1~faGSe_vypoo#o`SaDyXdWa5L__ksgv*s_sS$bkb;9 zbsjcY`mlKUxlngdVq+phVWeq@xry9o11R><2UiM1j-sbqu^J)S?6vUe|`&3;L+tQ?9LheA-aO_b>m45RJZvG}%S2DV8y zGt;`WY*%z7<(-VcbVFHOTFm*@JU3!i?uslG7g93y!O;T>xUfAOE~8$us@{t=jN-qyp#C(y*w1|%^k{rUdxHIfl1k%r?;@xcxI4`;?I4BcM z7wcA1Rl!7hpeBRurk@0PC%q9O(1-St6iTapMh`C>rWFb1^fEL6@%0%Loba7>eM*NV z&p!6mub|<2QJeu%ZMT2kH*#3iN#@Fx^!V9nT5Sz? z8|en;zqCx{4mRg>e2=lFs^SQKruj|-HI4}0@QMC3imO%8TNz9WYrAuM#1Ea`JM^36pHu}@_x%?}U# zf8XAiX-Uk}bQpFPjl$d~ku-dI1@{XkqrX;F0Bzl%;Eo{Hl) zG%(nnfQ9v=Fnv=9F6SuWy7(~`V&=n^?_3D$1u{^2Dhc(Ho9v2aB)cKBg#EG^BDh+@ znQooO*j82}SX)=>aNsB+l+WukF4t%FW(VtoP{uqI^Q8hh{KSg_*E9ln< z&T5daq-|Y0SiQY7bhG2AH!_xLEj;Mc-5kgmWMkO4lcW)$gGHQQDK9<-yVd5wk!KY1 zlfO_p@8<2`PF^?r<)r_oo|bMsBp6K5g+rYwRR$E%ry6@0xLENWKsUXZ`-MzrF5#>j z2IoI3DI!z}-4k|Dr+=SS+g6tKh8mbKbHptQnKIAnQ|%wMb)lzZJ5BuI}E zhy^O)@4Xz_q4A2IR~f?RWgk6D;!fbHvM63I1-lD@ykq)>{;l;xd4vsq_k*{Ro#m|pXfQhHxdXKN&8)$O4qh5bxakGt3%#V&Kln6{ z_9%$rhfEI4ct&@&xGO%d)1sA0*O^D}bZj0fOb=ZpaMni^I}Rt&Z^`*^4{ zobw*?_!({61&69k&YBu7MK-M}2%pl!s`l+8C#}cSJimvjI>n;!!5|IJ@S%A|PiSWb zcl2z|qL?cqFpfJQ+na(A{pcIB=-k3;BIaY5k~iejc>k%qL-4kAB?=K( zI~xzAo$#^N9}5R+DO%!xW{B4bN=7G zPt5%h&w%@6V~Lj$Ny#1~PtkjHV@?K6`GxZx*+FI*l7{h*Ot7)Z8MU0ZG-=5`>Rg}* z*=NI8>j6>71&)B~jLA^^H-bXf_+qrjb#`sIH_z_Rrthu7FkSPIOqOzgyI41Kt_p{~ zY8)-nFQ>6HEy?<_1cpZEBDAZCHhi1~&DGWrmd(JkYr0q?8h|_>H8@tTCwYmPFsVpD z-z0zj44IErk9odtodE_5c&5|KflSwp!tUc1s9FA%?!_BJYkDWM5c)%@E30VU2L5yE z7KQiO!thWYO^eEf(RgJV=C`ZB;N@R(bSR*R(RL&sE=`H+UeL^*Gqg@H9#2}G;6Ct! z<;H4bBO)Q$WrV;Jt!(tzN~$@M2%}Xp@b_pSwZeIr-M0Xj4#!}^Xbt@Sdz$X_$Uu5; z9=?mNp|d?f7~Y$PgQnIvBJjb|JK?Oie-vqo5pG!v(YVB78j!d`s+~t@i8tr#DyUFV ze8zr{$ecH1ToM%-@Uw7{%B~k7$Ex1WPHuGM#CBx(|s-%*9otB7h zAfNT(2&dqDYE z!YaAb=SjQ_&NdIHw%V(dALxk_cdIEYdkFmU2&*l|vX+KR4yn78c$O;*FAUz1b#^Ek z#=F4Rf+$xw9&& z=xol1%5Pv*oIW0YImEjoqj|oS`%6~rrsiECn5vM739dX}%(GGx4=$qmi#aIRw3>O2 z;X8>iIV3$y$DhaIxF2(oEq?+QyUrTvOGe@RuNI0N&)wtpGKf@nLraPhKIHMP^~tfM z+V+l4LzRU@mQ(DVJ1mdqk+)^N5{{UGj_7$S$KQ4@>Bo=R#T}oOW;~r)^jrjnSTfrMbnV z__&`-To)K{x7H7m`@H~NE3^4sHjHIiZ>I*+hm^1( z9THE4AzEg~^Wa@{)-4FBcY0WPVIHcSGGTbWfHfU(!*uzXB)@q!S&ra6k#k$w$D6&> zP|Vrejl*EKK}2A|-9YVwXXzW~YsB_NU_#FVRB0!{ZQ~T!e^qf%ULQ+iou(s1I2L32 zJ+Qkbg-JQ7ur>kDy9JveqH`Tx=zmT1>Ux6TsoFTEJee~8NnrBuR)NT1I!reElZA4x zAnaTUJ9w*$)!tP`IPWXf&e}!mdzA6Qhv!X)$3nV#4zy+4=~;dTZbwF+b5WcF@;X3{{lR^zLm99B(QL!cG@>nkw#qAhkK_M^23F2 zC<65ELn_|z+{60|JIQ1H7xr}nf6w1$$krcA1&s#;Dz5_F>?1k2wgQ2qu9TH73l8SN6d zb$B{_f>S8*%MQxmjEDL)cSLNzPxor-*^|gEbU9%JDar+s(PtmnT@r$(_ES>f z96Y7ie`M;Whu6_dsW)mjd;CunF}<9j@ir67G+HU=VE(1^R};Z^CP5=c29}TJVL{+^46HA`NJ@{S;a4pIm*+XSy<#|| z24-S?ZX;We+CzT1vUon&&aTbTLEhfG@qTTnp9ANr9iZ_N zOwg@Z%q%UT1c3u;phA$rdQs?9=})NN1i z!e_$UXg;!LHBwZ00%9)s3PNwWqjb+E3b++RTlB2ZKQootciZz^0N)3dKB4=cqcG;P zAAR6GN1@Lf$)rP=a@MaC{1cvt<2+AQUA>!*X6a+mnbUMZJWH@?`~|8z|A<8PA0**z zyhpHS2Htkq!;^O-m!)~)%5fcx1sGds!sozI_G;TFhiuIjdYj32q*7y`vV*%g-er-Ktr<#r z-}Tk%$0XA9kvr42)BErdRM?^n2VVh{=ex1XZ+6j*X{Slzkt?%(%DM45Qlzsr4YwAK z<9^B!7??f}Z$EV~tjs5`b&p8eMxRCAHKhH2bK$&Fl#F)VrgN`@>F+)#qz9(JdAAf| zM<}qQ^z(G^junPzR#4~USa|Vn>5K2b$k1;e^AF+vA487HE&N1bypz4iC>J|@r0Jc} zJdB;CfuuZ7WVIJFZI2!F;-NWi@%zrYLmkxDD32oxIdgC&L*(XtjT`2Juhbf=iZW_CMC{d>ornkvKaoC%JY=t9Otk*s8N(AHrH#kTD)?=61k_xJbvkN4?$?)$pV z^Ef`AWja{gnUB`dG4yCw0Tx^~qJ^c&c&_(A6zn`i-PS+knV~Zd^4>*P&WC!tE92r5 zYv#ozQ1!9@DCGAb8nVO-HH8zgBGnSxei_rNVVgzDcjgfAkA4%qCYQqVVsX_MGIC5u zl!Gp&ZW)UwSNq`7?q)Kn>L)pNI)D~>OR#ckPpaA+%l)w|@?GLe*6v5dz|_km)!~N3 zK^62mER{MgyrZB}=ASQ4rs`9AxN_3~l@FN1{P_*-Zk2`SsR4K%)J7Wl1~B;-K*2_HEKS)$-zNv)`rZO$)Oo=-<_Y!Z zj`)q`2PHA_9iqZ?CQW>6Kx@`?6F%H2p6w;iEY8Wy*x}jzXEh|%7ShX)M`^mWDmn*# zrjWPxxczb_*{`+0&Uk$|UmZ?853A82&KgXnX3jE(!)7z{Qn`P4`nD+gr4;6< zOGCYgxgh4!C<%^7+eag8>fsNyh`n^EEC8NPs?4fBO5e5fU^7*Tlw7=^=h-1nMvp?} z4rxqtJ4&rxbg)FT8wOv=B3X8XoSt1pwwoU@AEb{sqc4pK3wY1JF@-Ms-=)mBc;vr4 zMs3_pI5fhL#&I8@_aYnKAq3E0tJ&n09fHD8Ta-i?;7rR%=*;CkP|gWj-zx`0&#*If z3$s+Cc*k+coBdu9_>?tHa%!(B)@Wa(L;bC2Yw|v)moNK~Z;vMGU2%b8eCE=sv-v1e zo=koDwrOYKM2A1gzq=$ZNb+%FSu!+6=n!38Nm<7KDBY}s+!kM_ z5(%(%O&_j!79i@sJEG+3Itsqv0K->bXv#iY%u3>UMvJcSG)YAl6-Ul5q*0RbN80__ z3Oc7+L{Lcp_4{?gaYAu-{5NX=e6PKf$c5|ReC;B-wYU#`TAGQ@9-Qx7tb^odhn#A< zxJpJ|n2vB$cBOsq0V#hO1oP*xeeDTal537ZLpTFvI~eJ`*=-uuk2}&PkYqlU%*|Ov z|IRLx)JAAiWrZGA@qByu{0h-yo)wLh~Z8+82yZn zu9-@MxobTqqKKK~dYCZFPi!=qj)8-n5n%04lZSTDBg~+o3MZ&$w*mdQ`J4(9)v*5L zdosMMix3^|d_TS^ls$WZ<9rxZ7l)x2b*ZK(9(&Vfii2=~U*sv(obrSRoc<+fcET~9$5Y9V=M zxZf&vML~Q!t+(tT*COtJm~fx}MkuWAOvdR+BRRiqh}w;BNIIGs$#tV~d|nV_eOHm@ z!drB8{R$`Neb*@<(E}UKyWpPb5urT8jm&joaBcrcI4^AxN9_00>HY5Hzk4h#I2k33 zbYrmRz+G~l*&D$=qiDnDc&OVqQ;$*1F=DRGO+RgXD7J-L!V?-&tc+(zi|C+fe_SCG z%sI1z4h=M?1!LAz|7+P4`E&>x`bHwBKv3MjI=aDo9rtG==vDkon!8XD)3ojrDi1iO zn-`$?+W=~cbfJ9-=S5N1Cfd?fn(qORX{YUQ5m0@NlC@8Ycbf)b2InX*t@=SOmD6$Y z5_=uKXW-Tvo|$Y2hSjx`BFRY_Kh_R`!79#-&U8kf?!lss&lT(ahTt{d6%P*0MXf3C zI^0cQHJtep`zGP~fMM9F%Ur;c|HwYEoJQw{;^y8Ic&#oLZ}rtsZ^wJ=FHTS&Gnztk z#$o5ZG|X1GK*YQL8O+FxR5r#>+5c#dt|}rg)^X0Gi6p$MRNG%hg|BUKvR5IzW;Ic@ zUoyR57mdb>Lg8boEnKOIJ~>aLoqwcJpRa>@LvqMxIZD;(unix}_`JFK?wafkWxEl@ShwPshgBRgO~nKWKkIAXLx35ie%CVG`$} zel&(*^eacG1~{Q$E%WD1T$!_+hp2+=nz9i1UAJIV-+~ z){{Wc`2je&w3XguZlcMycgR|$5MSgaaNL%RG?VT~KW2hN6Lun&E}_dEItbdSgG<-P zQ;BXP{Vq2_)-Y|jeOw~RTNQ#uzSdA&)QfhLu0$or2bnGgl10xg=zQ-Plz8SPomg>- z?)8~ZKJBu&!r#RN(+u&4eV+=iuhAgOa;iP1i798kP=rAuY@TP~!hkxO&U?H??rzwn z5J@t+^XP}37mch;fMk8K=@%YBy*zdD&N)C|6HE3irs76V%=$DQ%~rphVwfeke5NDR zi$7B9$SveFzn0`*%hTv5YiZ}gG3Z*a$$YsBLP@F%>8}YPrC+v~*XtgAm=b_U&6Tur zt|5#!vn%r@b0F98o$IOsS!vuCPu=&6HxUQLw>d}Yy!ALN+N(-+4;w}F1wUlAB?$L( zso2AA3EPZxgnEVI;_ha#dlL857P~<|XBuMqnnSH+DRZYgX?8#dRV`43jlK--`l`d! zNuSpLeoV_-l@RDDVFvaedT^5O50@rlqC!4)e#${;%X{j4s>J@PG(@f`r(Ng9<7%=a zId|>ocO?MO|0kba`cF3yZ?!r0p0|cd zwRvxD$vMRGK>8A0$m~u+VS_A=gyteveI(VsT|jc8fRjC?DW}SnIts>DMOieRjp#bz><$ ze}gEXZ0ac;JcyC^8&ERWOx9NP7id?yU$eBKaAQ}-r`xKJPw5mBh{bAh6H zJQg=H8+Ppk<~k_imx4feX&uS_8{(Mo+{Rp+I!{P3o2@O?s6gG0V;PzAQH?`1@ zsz`F4@*nNIcbjytSzzwtFf15viJSJo(L87RF!li*QP)CB{Qxx2uczWp zO~mcc0lH~m+e#(GPc_8SGH)1|+rv?21a|#&MvIpx?3c-i_U$q-=JWm7h0Do6LzpBYg)%MhVthVsD)fKO{7~#@RcU;jrK}9l#xHfVu4h$|O z1>T*mj@(3V`hJysDY3$q2T$q72|e@*O~>z)QtC|KN;7tu)1@*Ee5idwy;k!x-fxF! zI4q0oA7^N8#ub{hV1aNi48|A3B>EZqmE@8VIq$=4=p{eMBdUX9cy}80?KlO;e-%Za ztf}7|-hu19p^=_0n6cIwjaM&;?&q0z#m~!ifAdMV{E(>nsl@Ccc4%!-!Ob(w7Vl{a z)59*v`^wKQi8+jFT1D$HUxXZS#uG?6iFn`igA!^6BRcFFX;^ttLcu0_(&2#-4v(m6dLnJ|>p@MQ<%PczO$S(MGS%%+xe<*Ws6SXf<#qx9; zQfTUrFE=yE?__VJT~L6f&3qc%UkaK>|4Jx(H+|abgl0ZNI!bPfe-{<8uX8xovUAkd zJRd(bwXizg4#u+*vAledFz&XBd^w|N!rtz4Ed@y4KM@@XIrx)xfMlGf!}~x8WWKr4 z=UvHUd~kq}|E-JDxktrF=NQP`FoWuTDSBiTPM2QV8f71$Q`w5ezNEsa!s=Mbbkyxp^wJaACj+^?$Ny|%tx>=LHjUQvRJ-Pr2Y=V!gsY) z&4>CwH%u`2X)e8O|3s>z6!7fwI(nX5LnHgyh|xVGM4`M3&W1{%?EPl?eY7{8-c!Q# zOwKqRO@z{*Zg{loE4`U|M$&R|F$FBNUq`t8GYrh$A)omUQ$Knk9y<#cXkYY;9cCOZ1!k%Lq=5_DQ~kxh+iy>FHVA< z(4`wX`zfVR4{D!|(hUB8k<3s;F861@KMzA6+ZWXR#T(JGa0E6mXHzQH6-Es{NOox@ zy$EmWC&?mJ-7YlozAF0q^SR^G3To80#)Zr@XzMZG``LfAX2lZ_G1$5ORK5z3cFaZtf%{f#^c2oJp>J&N%ekh;@K2MK0hd8 z?>GZIl;1^DO4u#)Y%V#t+9BK29kZA5Jdty{AFBGm%I+&I4UmWL)g-(z^@N)AY6?`k z#rcHObf%vT%==l>p~m^-HmaHSyqt`FbI*!BpH)TFQy;`niNRvSPbA9>P_?STXjwNF zTYsrRnOT=kF(cufosQEtHi^ib2P6h_?=WNorMYB_c=c)I@iQN)y?%@F7G^jyzFo8r z$`-2**&!`lz`ZMjy>2lD)i9sBdp75rYs6O<=CQ}AQYUwJy0LTfQHC7O_lbkw z{2;tZ;VzbMe;w+VFh?#fFuotk$xy{AAz4o-coPoBtPLS;Mh6bn_K>zrUzdU zFIHqyt&IcaH$0}x-As@&yq&JeGc$bqTpIPMP27-*b-H+x-}6HVAvtrHNg9dE5x<4^ zP9r2e>JZUm#>1AoZ1kcVS+3+>=Z_5BYc+tPlP7w%&7`>fRTOJzN$xjWML08m{!G-y zX7;z#-;SWO!&P9n$p{0Vr6AnyFwIZ6F3$Y+L-ULOD9QIJ)m5LS>@67>8*2&ATkS+6 z21BP`sR)m266^nt#qS1ttS;dWgXL7{YU?A#RG<5VRbt_=38?>FK#P);keT(H%yi|U zKhg^emK~z`>-wR&j9u*0i%9qJeo6YR^E8YzjZ!ThB9J>AhaXpqjCcQuyS&Tv^qzoD zMIHLinW-vy1yCyAOCR^AE!&J>66qqeWtUQq6@*TiS!6tI6Wv(r4uw1o$PM^HhThkN zu9gan>vHh;KG8qxNc6bBk3N_ml-w`6MMJ{s=qhJw8jpMPGx&p;JCAoryKYliyEm4* z{v-WD?&n;YOb)6$N#6T2y$*Nh@9t)Ym231dinFSVy|htSI|(M`JLr678$EnC3b*Ez za~jSFV>h;nN2@|H^=cc*e{2#`MV8dFy*r{j&IpZt*PS-Z<39C~7qn-PE@JG@(@_6c zLbY}-#cD8qxgAJ}~hx#M4SA_*8GDnv+@xX<0|BcQPN; zZj?l>_9w~mJ^Tg#9-lFLXT(P*O6Ie`cduL2p*|4H6wAqzGdb_~%%ka3q;bRE8LBD$ zk8FG%ag0uLtPnOcbLk{?^Z$W?07hu`mIy!n)f`!al`&&5<9p!V#EQojO3Nz@r za=s+fA|3zDVXyMtKFGD%L~6`9a^G7-Zp_r3qdN-9RrY9K^n=a~9SrTB15g}b1pUnA zRCsSc-AT-&j8x_%^lhcP)09bd7kdMh4PlY!hY!q7db92Z{a0c~zh1`B&zq;n^ZFmj ze>{^=Jj`8UOFP)t?x2m8pT&csRIHu*k=$o8+dudgcMFe*hS+>M7d`~lYPOiTYoaLY z_L}sZwQ#s4i^@;%{rgnY>`^J|hFYK~?m4Awo`6#|jnsv+-TSoWQ+cn) z^i5M4`PgtS8o1GOP2NFD}oi zA+3BDT>UC=BV!D%cOQs%st)Xs-AHekEf4c`>?@ssq%m$dKTwLf%fnzkXbqVijmDZ! zfzXuYT=`FXc*w+yg4PF=H?EbIEgWM=$C zSUnt08vKkukQa;j+f(4{k%gFLWi)V`98&)c$K8hCqVcyeoWrlvF6JG4xOs_u=IfzW zOHWwzcE+ikskj0al4)tDpxPny)ov1IIgLY2$#=0Mz84kSGhf9z4&~~-an3^-w*B(4 zGGGp!DqvQzFTuvq75QR6a|y>_>$PxE{4NKdn_8JA!u+R$-yEAS^~aeDi^yxjY3k^{ zk<3$c=#{h*iuvs; zU(4d*JVz*%vA?yK67pyAJfQv+`}Q8tw<`lguko#98~mF2VI6dOt_Mx2NhXV7?35g_ zpK|u9)78c{ik@Qx=MQ||?@QL#>$6qbP?B{QRC|IRQg^l+%3gL!`1W8XHH)K?(|2{ps06Guov%>g?e&y>_GmY`qME1Es}ENx#C zidlv!q?qSQ?|Sv3`IFOOH1h`~eZ50A*>3b(dOaOTC?UJcrDDYmb*Q}@F1F~YVw8Uc zOPHUZ#M1t~kSY zdW*YibmXNKVpioMhj+rMcka;D^FzdQcEhEVuaIO`9uSQ^GqB~U1)?`BqI!3UIMGLw z_r$~bJfZ^CH#fz^w;6QT{wrOtoeJfSGCEWEnNB`WLP>4`<j%JTMaz@Q*k`el>9S4;fc}&`}nr6%_76%VHqNsx3ZH3P%{Qg zc69U$gIk~-#-zl;;E@)7Jh?`J{U>2h4fmam?vYY&W`k+EVd4Hpk{$8K(Y1Gt#KGDU z%QPn8oJKY67`ITov;0Z7cYG89y`r&PqYzC6!T3++D(xM>UHxghNJMwTwQT}z-wxB0 z#{M{+(9V9yc~pEX8rzae>DCKoBki9@n#G3HdvGW`zfDKU5k20^ZKNR;sqnk#0r}f} z|GJ|9)%=&#S~(EUWxL?f7qwN;@ktsqyN?X||9n7uw;9q;xn%NVp5vAK zez*~l1GBy(F*vk=LN>+Y;M)n@tz%w8b1yeSLk^!?lz!i#!hY8! zwU%-y;aSR$1x=*=a2KtS-bB*M>q%#AFx(3!qek70@-tPjxz|(9MQ@n4bRA-O@v-i&~zDmlTvDCCC2a?t#y#13)Cge&|d|zP7BAAA9G3W@_u@g5R5w) zHQ~v7$r~DRaA1ePziDY$$iBrfI}&hwlAM_H*9oBmC!?pS7Ph`zC}e!{*~6U(?>jRo zs*Q7?0S74Y>1mRiyIYjv}L(O1Q zWr7D!3Sr+P1P8iXBewY*B@B|nmHOWB+vkL_^S_7_Wqm1Y%Tr3)s*KUc$Kv&XQ&hPk z8T&7;pu#`Cc*ysdGY)dp<>(L6`X)`Or+$;-DpxwOBMK7>M?$WtfhLX}jq&R%#d4_{ zk~{W-dEXAG8r&bQ8Sli54~1CzD}`bUAJB#Y1vtw+v#>k-E^Fs5%;Ewx#Vw|@mTjca zB_1a3|HN))r|zCR7ODzw$h%-Xiqo`_p{*>Zf4h@kiby%ujWgHYNWU-%&Y?!g zI}wZ0f6r++yPwTZPKV;hPVwzKyD8h>N!pGjq3DSVe!X`l#T$_@|HS8#B>o;T?y}K!QO6ROI6EXC`;3llXJgnZTUZMsl!d zm6XqyePZkjyc}Aapup`4Lyw~;#+zm7S#_# z#(7h;2Hy~JZX@XQ+8})TeUtiLa7ANF41QQHkaWAxdt&!E=zWpK+oBBmR<4fJw{k-9 zfD?4Gld%5g6ns3Bga(~K$S#^Cw(uU*p3j`81`Nd+&v{hWbqaR8XYSR^U`*XU4taM! ziN@Kz@or-PpY`?2acd|40g z4SUm)KC?uAZGhAH^ZUu57oRQsopJHOO`82@IgL{k_{-gIrvd+{Bv%e;XY61XEWz@u zTjaQ)n&!^=N-c|e(C;`a+Ae*qu{+s z23CjDv2T$ac2)Qy$yS;>%jd}2!iM}JrqPJG*Qwfo+0&EH)5xqn)OtAtJ12LA9iL%m z-*@8g#&}qU<)UUuE+XQ!@p9%T@t5~5-T3z(>@kx4iDTgXC>@Qje6gvBUDKXwXt{37 zowh_oO>CyqnO=McX6MKJ7|irOLKaT`m{`SJmOLTiADt&#=3TTObb+g8J~~GH68AE8 zi&uj$(Y9kv;%(?y?B^Wd(xu$-TA_-sr8Pv>*GTWX>9GF{tg+?4Q8-n0OERF!A6A<4 z>58kO$W@5Ok_EX)<*eNG%QA3NzbI6knj|Y8`l0%qG%j8n1BH-O+}e?h+XWLb{!0o9 zdvnj7^Wmf42SHhny>`!Ui_0ql==}0<+`ns&Qe|(*IlH6x^?ZZ|gd#7@4?FdGVui^D zn!DE?TWZu{`|%GA`KCx;hEBons|L6xHwiEPmC#))f9z9H#d*_VG)De2MeTaVjwT(+ z#L65XLl2FdSvaI$h{NcHH6<@-!ISwkbi+Q{)?$Rz#}6s_+HOgC-%;fBDUVuC&!dCK zhCpSZ46a5Ur#!n-dLR1FaWv1?e{QnJjbGN#wCV+qZ_T9HTL&|Lt)}1pU+I?8P}-@< z%(V4ga3muT#mq2_AMS-$hoX>?$UKOb%8=?|h!5pbxL?e747FA&xfOx@EGe|g6~dSA zp(`Yw&^Nb5;`ZM(OnwPHXj~w!eT&55b?QjJt1UV2e2BbEOUZxZV+z(iNdK5a(chP| z_Aw1Kw#k>zor*9{FTkUSmDC(xCo;RaA>r0oBqjx8*A!X$w`dXq&u^iLo5vC?n5|o* zCx(Vhg82m>Tu$$f;d2r}XPap)bFXS9Y$A)Jd&vEcJ0^N)QEZeC96ymb%st#elQv%t3J`msLYhzj`sfwYL^y>|4ps@2l9fu#ldOv=^(v9FCg>?tbOp zvHTtCvd52J^Zoh0-vUy7rhutY%-f!QkGA!fN6EQBIO+5GEhq*WHKTETA$LK(-la>s z8pISI&YbqP#D?m96fKm6Tdg}*KN^O*+rK3}b3I^e=|vKL2d18UDA{jmilMUKN$bWR z>ccEe%W2uvC`qHTE`MnGvXOXk(+x^BQZQ@iijz`(xkIf3(cg&ocYEoLQ8TUNU1fOq zT@ka_5i#@L3Oc2TgZ&jzJL0U6J06VLYO6`5t0sCIs9^BD1X!ro(&uN!R3LkVy0r%4 zoTDZ#^V#CbW-H`0y2B}$djt_#2pp}9l)nopt<@CYqH@r5Y_`yr8He*t*M;26B69ig zlO`InOSdi(a}uhlpN=`4v{N8wJQzccL@+VH0v>x`QJ2FpI2|wm&xUfZT0aeyyTU~G zn9=C8(kG8T(P&vzPWCZISTJ@cO=#e3d)iGA9KMp~-P=bs2NaRs*g>!6M53qJ9!clV z@tCp25z;TaQ@{S4L-sl-qN<%}hRr~vGQZi}TLWV_gFENQ7E<3DK+)UYi{2{Ms55&> z4_EIN>ke~%(xp>e8qeHW&PEoMXu&Zc8+Q#alZ}3oFl&}z^W%Zg2=ikfF>j@qD2kXNeEfv?toMIntJ{mo`w7l?8rv^Q7Cefl@<%ye_;UG^B5k z)*nwi-sum!wl?89cNOie45hU>en`%4q0_a5Os6z@?ZUbJcVTd^)Wz;ffgVHJX|J?C z`uqt*YpprvFoWZ@#TzOd^_4o4g1Gx@jrO;{#F_>-tO$_Cn1lX!`sNR{@;;!?RTVr> zDTJMfnn{9C8oqVAHU@G$fY!`H|9SDo>!YFg4uX zp$*G5^>nCtyD-}ji-k{nlEd`Z)V_SQ*xc<1JGn>T%vNuNZVrHN5IacpIr}%(m)t8R z;C2VkL`r)?q2e_63e%|b@fLnphjE5ig5yp{X;UFT*M9yG!-B7p`Q|LVj7?%*)(HGp zdtVep48owTCurexKcx3?5N(en!flo}_3AbRKK}-ax-#aoZ%D#`fWP!;^j%tPI|4p0 zm{nO2gw?xp@b>x{D%Yl=dE@W+=0w zR@@RU`pWiooR3^W5!mS0Sp(&iXqF>(R*Gl&FXuNx-|G< zc1Rv}@Ju@M-#{3KGVf}89(fq%GG8JN?x+5cwUe5-H>6a|)yu{Fwc+>~8;n5a7mY|8 zgdONjNh?p$)}#Q`#Jr&u6`|O@kMrVcJrLhV8UL82;ae?-M-8?J>#d7sul3*F18RGRC(x>bRxWE}k3DqMT>12nyZF+Uta5)T12K zrfWNS%^$~J3m?%^H<8{QV6RDX8gfe&g?+(nvbbGLqr3tr@MDXU_QbhF)tbob-a;44 zu2EIyYBF8VS?TWM5WQawvlPye{%$`^T=qria(*h7yDVXIj)+AqoVD$10?Up6sKQqZ zeyJL;=ADgY!g-PnQi9i7e^f4>M?S5m=|O}AR_N`Kc%?OoC!3@tRoyMA>$h}#yLo`F z*|8^cmnr9Fj!^QUEYh%xqtyCqv@Ccrxjc*JJl|rmdK$1Z3H>{59?3C5{9)t=1rsBT^E5+!09qelj!cB^rrr}usZ4zFt zJx0$qW+P$V3lW_x2mN7hXv-k}%tq@Y`)D3kDmkDiWEw?Ze@$a6qkud7S&m&Un)(*e z^?^2I@0d-OZ@whcz`OME!&(ZBl*O6<3}{J1e+n%&;XA(pBJ~SUG#HToKAc<+{h*H9 zBQfM2XLJmo(ADL|G{3(A(a4QtF?|LV?d(by9yO9iLncfLE1X_D2!ztiha}-W$l%Ks z*rIil2F{V?9%>Ly*RZ!Stt*U^%rO7YUP|lJLlRZW&Wvw-#^#*yNWM2J>#N{dd$s6z zH3iKo{jrZT3svEqU;3UesZE!~QJFwk3`(U6zN3EFI1>MAli@s-UGGUpMVC%L+`G|6 z^*0xhRz`r(Q&h&w9a4~tDW%0jo>Tq9?c&!BDYBY-iuCR|;(4|Xo^IU0orowzx~0?Z z3AMuGkt5DnjKJ6<3GlByEB2QT#kF=#I=O;(e!Hv1T=x{7hp^u_Ru`*gv$yf139gM9 zf)d5=6vfZ8`dKGwEwiR?M4g~~mv}tfpNF6CUeQ%k6_^}eA!#3JM=EF5i63LKV6;0J zhdF1ks(X&)biq$LrrHh3!3yAhI9>DvVs|_h%gZ*1)TBbZcnZ9F?~O5U)!?r`0y7L! z5%KdOnXk_k(=ke+;Fcgr0a z8ks7O+TZiUlK5dX_q{SR-=@&u++@U$kDz~RY}w(%eKg(`zZjTc_Zm7|4rviMC&#i3VQB@k?S^!$J)kNKc!mCJ6S~QjjBkixC`vB z_QmyOv2@(n5?Z&lk+PPV6n6ym{UIoAxfhB%n#f@r;Z#To^=y`>3!ArzA$KNWhglCS z-O>ZIo8Hs3*W*x1KB(`milTK=xR}pw-%pk}S)7XM+m*C5E(2rsu!p-^9dF)_r}nRd zF?07syqZ}-&yU=pLk|=&ZuTpxGM$EpjuTJr2b!O?^?y>)1 znfpY1T*hJP|LiSyN)+Nmb7 zh=#=EVN~c1Qi_+*BLzjWEVe_|QcKd7)uaaJh4i|+FBU6K#)3Lsl>Y9DZyvuyXJ)GS zte}YobI!o{91Q~YqfeW-~%AjbhIBA8~e{P8@hJJ|4RYmcxskC2X zGRlu;LU*7Qp1#k(cAwrPZFH8dWbUA06oOk*Z_*Ff`6Qn z-igdo5R$q{T`}R=B#FWsHylVfM5}mat}#^+&+hx8V)$C8w+bJ`B~9*w8*ifj^~$?g z=0JX7o~UbSBT@}V?&!%_u5W=hF`IP9pP-E)o{*B8NzJ?)?5{Qirwzt4k2O#j?dpps z({2m5oX2$L)F?8g>qZqWl>V$(^f*bRHP%3%AHqjc_+ z8I(C=ziQ1y6z505u`N-2YY4#oWl1!mp8+1J+T-lHJ+$gwgU~7Oq?{^4B>fsrU)rBj zLdAOOS@u92ziNWKg!|OCG#LlvcG6SRSUjE}gRM=8RPyqR@Uv;4fIaMcRUd`<;dZc< z_=4sK!t>Y|JlnB}UbZKqq7j%~?EvrV&m>1bT%~F3WLLE{M4{4f#C5q(7dYFQ{Cz40 z>bpZr>n)u<#(pTynm>AwgTqPXV(r|an6z^;t}c#bK5H%AOT10e-oQ4ygehhyycX@Pg}8irn`C73F|uj!#qfq$ zy7ir(jeXz83~vG~sr#k;aWp!?3H(6z>p@ewT-nL;NREuJ4Zu zgD$wZxt9G~znl&XwIu)10_%U6QT#z|SZroar(KAbJ{eS?#WRf=qj(4SgI29f z#EJ|TQ5mv`ZpR%GGdv=3`(LMcwc{(Dvi?KK<$O<1jHGr4-rc-+!nG5RsNjzRY@aq! zz!op0oy|l^@kFu6{5s{9cw&OoT)KWI8;kV%in-M-w3e9&mHPE0#hs4XUjwPj?iu7h zK$9Y_gkf;44B``PF+g=PVtZQP@{h?FqW_EJ);N&!p<{G>a2M3vmf%qi_lWOKrTZ>+ zI9&HdgqlC3tYL%j@$+Arv!s)b@03T{3mY`|(?D=@56nx?!56%y@>hePTY7|i`*=yV zHfO`}=wrI-=8NYsDRdxT0V5wB6fr@qbZCe<{*?Nom_6}GZWKG5_)gj3iK|joVs}r@ zS+b+eW4S43OFMYN^o5>Xsuu1xM%aGNQ=~d1(e8ZqfUa@Gv>49BWY|LLY&*FQ_$>UQ zAJdzGa(JBM5A&q`Vo-1Z&3qbz;oCD2`P>(|OWuq7YFz+CK_CWZm=AeAZ9d@soi0b1O|L@H_vqv3OD}T}L z9A*+dPr)9}$xBb^iZUJU4fbG%LV+H6CC4E7ofImn&rz7w9(pw;9FK0d)1sQmDA~a- z`7j0gWd2=pV9|3LF)$UD>FdSsK1azlS05vi*emBh5T|DH9yY@c`}y~LZMg|nMg3wI zY%%+xTu5%(d%7*f^P@a>G>xsLq}9Vwk$#u@u^X+!BMzZ!yCOP|Nlf9lXtrxD{SG$A zh}n*muIP@fySrd|_E643$wKLR42~_;g1%`oJm2JD(%P%STD6oJQh69tr@)@kTNIMk zMt#cE=(SR__C&2OLy>*g= zLN{DIM-5Dpk%bVk>v?Z2kXmB>f7QSn2Fr{=M^LhoI zYsg`ehZO9W+@wQ7;Et99o@f?{CN&%UsdPvAy?*4rO%uBhEg>h_IFfXe#kk>iIQwgx zICRGj7ZMfdrNbMVIpZaz?)1Q}5blo2bj8x2|46krpHMoXqqk)Q~G+L z>2?YuoyVHnexnjQ|zw{G~Ntxti6|o>e3KYTv9=@S|TDdwXtp) z_XT^Yp>^YBl3#n5a!>h@M@TcZZAhfGjS(1j-ydJrb&9EeZWyROkhbjXiE&YNq!Ye| zE^x->>&H`M67`$>b=FbeVNtjzC5Px^6_lZFN$KJz8HO#UaH||LUHp;W8kN!6fdQa~ z9n@ByLP6%kVK{p#y(@c9<9hN8bMa_QvSycp%Lw$^Rxi;mc9O_$zApm8?@?Q)0%pZ| zQhw(=YIj*pca60ru6|8qc#wC%ddw;-{y>LhV(`q^oEjo@F#TdrifEin8!R@^-3@_s zwml2euB*`SnJM_t)sc+u_9MSlWmHu=7Qsbd=_9+3Vn2t`N}EA+7icC`^{}hU1y?;3}*Cj02j6kTYQbrA<#vqZNcBXBZ51XGtg zVuSZ>I_Q6mPA~gMYo)k*`QR((6Q!Z;&0MD?!(mgRj6;+3nXOeJ!VcKbnBClg2%3%` z2kXS2(G_C!i);-3I}Ts#XVBPZmuTNXY3eQQBa#O4pRKkJC52@p(OVjMV|wEHF=<54 zR}nheIU5n%PrNXCnxRnS`(D`0(ddJH1pEHX586z|583ZNOc&kGCbCbl7fu@n zkm<)vOzUJOuJT;!dPte}ykAM@>j#LK!+mMfXZEjLJVs+2%EV%EnPjqom1q9(cXSrz z@3==P!8)QN)e`|f)e+fwi~KbmP-}jWD!H>#>>ZEuoYDO60PiFfyVEy6GraKb0^^@{ zm_**VxotL0YVM0KrIT_0*(z~7nQ-V?S8Tl6gFboJQN`gLvBY_T81_&FJ24nlCSS*7o}WsVzPx#&nFt z%c2<0Y%ihd)`@t?eD91Iqahul03WL?^mwO+}&(a6%>Pu3b`WVok-OvWhD zrG2-kUdT!`&!d zb+U;6PaB;p0=VPuOi}sEXibGWGTQoJV@Vjw!gw}818CJ{36jM*vOIg667;3;VV@B) znUS}UY+Vl8becT}9RG-L>m> zkmR`&n0$)e1AUCKN6`hH9zM8{R)8~uFVNM$eV{L?=hpQSb;QGzW~Jj}FE-(JYV8e`_T7$9Ki^v&>OEa++KnP3b{` z9}Z2^#|E{C>+T9UN$FI{0sSx&QxU!Ee zAJ%WjBV+0!@%$$+sQ$1}-QtI5$D@Sn%JFb}JBI?8(^5Gq4VpE5(X!2jKO=e0_nQez zLk}w25b*!=xjt+6h?|9q@Xp5xP32!r)6!N)6V+`%dQO zuDM44Ml#2ErWZ!O(m^HPeUhsS#O@^n5S*}^wsNMeCU}E{DPy9}ITq0++Awl{Ot)A6 zqw1QwXqrIw zyp2>7#(n_}WlBHzm_n*N$fVYXZdCe7rpU7M;Ik|i2FPG`;#|tOV@vS)Nca8<++Vs; zEIOY{b;fI)E^OH)93^}gwz(^GcZ|Uw*8m(-@I*&IB)xfak=B1Vpsdl|pt?+ju50Na zKHZSA*Rmrc{SeKtSEk0+3sku>9Hw-DRzz-)H1^blosO*VSha_uy>u|;NHCh7f29>) z1Mqs{N6u&Yk?#ubmwxCA^T-4`V9abO!^L#*^#g*`cpAjJ;szP+sP<8TTbl=VYL3P) zqgaS5p;);%1@T>M#7rJ6uaZhZNc2Di$4#MEc1vk)Xp7iAPYxPm|I%pY0sgi9AP!1N z=xpVE%Dz36+P*#(uY7LvzatMOx7nd~E1c@0Y^c3{DZ8*;XtUyFns&*R?z-%v9cOef z|I}b;ZFFMpS~_{8jwHE4HQK#(D0;Zr&_@2-`K!v%)aB;z8*GaaULIJeKMl!8K9Z*4 zIXVkZ=2;oT_(c+qJAWYMDa&YwZi7f@x5VdX;V`-50kgZS=ym7?`rGFY?PeB>KJQ+S zrv_o*_$o5J7b*TM(#P4pqcFyIECQ!#pxl(5_Qws;l1${zXPAz%&otuG0ea9p1T_bk zQTtE}JABv~Hsl1&y{S&l+J~sK-VS-!6D75t@d#y3mhv$TvGrUU%Dp)BGH*Jf^RwVN zX#&j0ucXI*S^ zOV+FMUZip}>FTq4?N}@h{PD*ICkNWh-3{&0QAkowLhJ-(OpO>rJC}DAokmGGRcis? z`c?FMxj<{%Ji2A;fwn+x>@RPoI*&y(-QJ%bw#lPMO7{Ozblw3uzHJz8poCHs?V{4w zp6`8~rL>e$(wt*L9x9fx|7k z$gScVwRP3N(*Rq_xRDLp$MHz_=Wc7i^R$<9wZ-$_Q{W+6q|EDw!sK=;YyU**ADuCG zrz7r$Oh#mSAid?x|ByM(NYejC`yM%?%aOO#mXL^E?%ohOcc@6WKW_7Wz_GNJ&c9en z$IbXWaX=0ZzO#hKA$^`#FQQr9Cqe#}3QAmOiZzGEBGWYxwr|GZ^`KB(vb!mMrYYc6 z>v7RKWCIy7vm-}Yj}ltCVh`_7!<4#Ef}%Xxy@_>;%1EHh(Rw&MKW7pRP;amEc%n!4xh0iN#+?_czSq-f{Gtpg(&xD*S z)xNx!%FlkHC*gjmu(2YIXhRH@D2i-7J^cQBPFy&kgL=glQnwC=TD~0GCmkZo=<(>$ zQsO$#g(Rha3q(XmoOqm(gF<@1yd^J@X}FFI?bp(b2tz!d6~L~=x8lWwZfJNdgU!() zlswx5Rs{st-Lq*^OELy7jKUe$99na6BMshMN0nD^h}dj>n9A8fj&m)Jk*g`S8?)jL zj6t2XBIfs*$ZSv_7z8?D)huP)Kep6$on;VZ$P`kY?MQ6gRz}{;kH6U~9;ps-xSQ!h z@=pY|Dn+94!dR#Wucf7@((s|oP3#-zO&U&|!;h_?i(jOX@i-e>r>;miISNL+m2@>K?<+s!pm+jiH@qi-g^N6>?}#!O1d5%+_zBFukp`E}b)I zMwjV^ZkbSCeMOv3Ok?Wpr}KZLbbiQVHT!ENd&8pYZ7K5e=vPwzz?k#9sw`+HIJ z)E=+;OroaDD!N)>L0t~ZQ&)}2sLqqnyP3v_@KwfDy`hxmDvv3|}>ky%q>tW}9|gHzes=_R}4T#MVvUD0__pQZmnrrynfwp!^)E zB?{zv>!JPgP-m|j#z z8S|YnZjL8H`q?A%R}wV4$RU4b1^LhO!lu)M5x$0VT*JQ5(&9pjo!w5Qb_M+0jzeWc zzQk$P2P(c1i!nx;@HDFw_j@RjE$0tP_O2&C&hM^2UqyO5dmvz3B8(>5VEaRB9OJuu ziR)qVmx)BVt^|79vZ3{(gyeY%V$@Ahbk`j~arGO?#c>#(jN|9fJsa#AIRR6Cx6;~~ zuc>LD2SQG(!f90`9@Sl?B|-TFw;rfmorzBu^YOj?G^KMk+wQn770g^Lew@m|EHyxJ zO&x`E=HGbE7+l*QiaPefOjs7jGq=7J!ZW?uM|6>!$j?wDqxTaFoO-ZYgu6W>b$kB% z5oZyUIUXvPjIpd~31=IwQQ=z`I;d|(x0~EyxA`=!9-)S+)-fpY+(tW}+aaymobQF@ z51&kCQCM{r*4Q{e zBkKXl+S$VPP8b&dt)s-RJ0R|_Il-@Rama9V3<8|@A>n>WFGX%yTCW_2!HYiL~rZoq)OX6d5 zL~)4%oMIi(;2(f$=?^se(GT&(P98lk%fs%y88#`EOM)IOqjj}%7-7AIdW16LXxurP z)jJobZHmQY3q8nfKC(lPuP>QwlgGFowhK^U{-L$CEg`PN`6e`{2R~gjehsU zgh?YHIy%X}rHTw(op3lV8Ot*Vntc+zI`S`o!BUQ)`#rve`^x5(?`+7n}^Q z_$7*BUS6SZSvI(4q>gnJbEtT~G_>M$m<>`&-MU|*->Io$a>8!96(a+mfFiiReJW}9 z8w}aNK!lkJ$W6<|$43&xTWMozX&^!`4Mi`-VCEQF!NI77oq6dv@T5e%U%F4IvA?mt zKow9)h%v{Rg*J(OQ$`zUMx8ZoA4r7b zu<3O3Pb_-$P^0jK7BMSK9xGniQEm6rB4N-+>a|fGlWzONku%`CBMa$Lo+n}NvDET)iQMhheM(I|=sQAZr z$qBN>CjRcX4DSg~o)0cu>wwL#xjRrl867cO>F)V!;vUbf?fCssvz+@Qsei-}Up-hn z&4K(C&R8}%(nqh&H1(tl{wq$V>JMkh@UIQ;{~psBd|U16Ls?%Ks}Dq(`^yJqsv3FxCDh$uiW#$+xn6i;pzP(0%(;o{>4;wt`P-6bwP(&uKq9fB>=%GPA zDRoVR{9JQ>ZU;cS#u5MR8ibbE@ep*w}f1e)jeg8^#aBY-L-V(HM(J-fQLUDZ-TxCndqr zYT`t;212&vh+Y*bFc^J_Hf|+!-Q|nL|5?#)`$w*Shv}o|niTk4;eA?#8SYK8z=`wB z?lP2xPokluanOHsS5*mbIg{5ne=C`$c+l@|a+vL`53NuqNq3EK80Us#M<_EG(#}!$ zg6^n4m=1LVHOL#@p|2ieku*ykPtTmB#Yaa`Ti#ci7V(6#K2-|gWg^TcYT?H6Y|xeE zBL2oa@@`)$K6^!Cc1IJ11{*+goD%FM)_8Gg1$`R89+{2%so~WyihPiRK);Dltq&mU z|4vi=k;UXabUbM}`_P_$ab#v2kD#v;q4ti?Y3Ca0pu-d-T<30oi56Xrd_i~fP2jq& z3(lMh;k>sF+5^gIW0wIuv)f5mrDIThkD25Ba_JfOMz=S(i@IPrnpvR@TZa=g+u*VI zbzT=!{OTy`+G*}JoTUfqDHu}xfSuO52nekdofpd`W0NOyhN6aciXF7<%WJw-@l~{q zG{F0?MEHAur024$NN%k;`_LmfE6_;;4Oa@64W3vsV=#qk+o5@@GU;C)hG)#$jxDg_ zy!CGK&21E8nQwD-dMx^RkEJU!Ie++bEh#;hMzHE_+NLByad8Y}N&-=!lueaGUI>+S z%Se*So*%g)Oi2$yI$p?PZj~pF z4h_KKlSlcpJ(xz=)rf5+CYWKgjjA0Yk;F`~tvuUTS(%70aW_c6irq9B0oeX}2rjNG z6_0}k;`vxxDn9*`1~cR1M!+0#LNf>#FYDlY;SVZbXoMxYlc{H@5&p<@gZmz9SZXby zh?k*w;B$#~cPS-vt9o)zV6W|rt@JJ^3b|>(*bVn6w&oIL?=KOTR?4C03-*919iurD z`yuaGIBrFAr_ELtP1qo#D=;23n9^oKHEaQ5r9H`1#( zXZhEapM7&^z$4DYI(($_=RFX5#1W&jjWEK{L9(0g7H6Dyy9R}h#FM+$)SSZix;dKY z*z!>L-OWeBJ8Nv7YlwVbHLP>x{(MX^EeP$TtSg-D%%~7E^IXu?@H{0R`^_w`X;h!2 ziJ2S2abr%c_-(C)+dhjVO>?zT!b}M7=f~*1js;@8L*Sqtj*>)AX9iynh_%&6QIr31TZd5AKLg;7gBy~xyu*)&sZ z9ncjA&ly1aDKkY5+fduQed46mTH38&BIb+|WS)P5o=kA&ec3una(gSfcDPY}wHr>3 zeJTlIkFfDvH*Biv4x9TSkgUE>{hEf7V{|mNt1C*{P3KW%Qa>yko-9&!*NQm~Luh%! zS6VX3mI59er`lff_;2xemlJb%_TN|~x@z}EuAvp8-7Rr!P^*~o_b+*>Nn?8E8nQEb zK`y_}QOENLyzMsH zvVi$t3FapcAm7Y&^o)5Dak-(0t?PlKX51~){7!G~2Vg}&8s1%Mqy^V)aZfdrLNE6~ zA$#NOjV9or$}BP5vp*I+k0rHLG0fPgrh7BlZQd~v)9rOI`D_pzmq+3CmviiHoFLw$ zo}l-G-5_;U7qKmINb@nJA@g&w(P2D2JUj|=Mn9OJ`;vawZX=&IJA_xiru#3xh*K61 z>7{}K8ukvNcN5qfJRn}oyB>~n+g+&S=U2&_+ufKe;Y1HF$>92+T3Y$%o9n0RsxIT5 zRrtBQmD;Vx;ZIc{q;Ef<3(g0H;=T-6Tz%|vb(gYuP?XNRGIjLK%tH5LJi{zf!ESYdrqgA8*qHN=sBROnor^H20?)%opjby(rv+HdCUxGEMCniF1!v)2Xr$ z#GlASuku_xk1C}L@dqSUp*8d>Z31qjIAYpe&J;cf#ntxxRC8t$PHs|#=fpg;?6-wc ziXWB?-69!`zBF#H3Oo%W@IW>aZe53BoN|e{o_me9uNy47Nii?-hdFJIJS~Rg+VBi# z7o~OM?8h~4$u0Fhh?2~tk=Y>#d9YgYuuBmpr!1x^V^oCg>39S#w-TQ_bEsK6e_SSR}k2*)9B;_P+%QeS_ z+0nF>vwHc>63Jw}GO|3?6V5-TV(p+n{2m&Eq?B#q%i^shGbsqpJL2%|>tgYJ_jbC} zdR6StbD(*Dm{WVv2=Pf$P_OHxg(`*Ec+Qg6bf18;+ecDD*-+W9!1kdL=nmxQg;1{(T;oj}YD@3ZnE8D5O0!&Bq%;gbqxb{Jvr@5w^yfjZr!I0G{ zrv9j?FQwT}c<*PZh&ewx$z*FRO6z@~^Hd%C!$wlgtRZmc+57hcnnJ-*gJct~61i2= z`*-)5&+d-6-yg_$OfCKV)}NmIOJ`5Y8R`*!ilV1E;N+VDlt1dGXr9G0r`ha1P3?s! zd+xD$XJUMHA?$k|p@Gf4$x=xH+5!PllDeGO9GA zaL8vLO-@zDikCU~99$x%{c+{q!7^I@=_?)eyDh$_q)NRzPqeKHhT$@OIJxYj zN$TsV>$O2xe#{ED-$vLx*zg5k8oZ+51a39CFLdONOP7w?O?|SeI16Z zbbgMkenH!v*V8o5p~zP1!=8eLBwzHF?moLlZNA}D6q$h~W1o}SzF^cmb%jm`^C9=h z<3hF}Qf!xqtoM=Jx9QILw`!VtW4Wm4Fr>9SPb%6VOL@$>pL#Es46VjPdchRzu#89h zzpu2&sW*1(XW;YTzVQ3+HC2!Srp21llAo2Nv)&!HO%Ek*qi1jqfqh7vi}pONMKvFO zQcdky(f=anrN8r;@9KNndPJX8I;T)kT@5{RkVnN$?&S6vN%IFiC!=2*sQ4ql>zHwO zEA=rI>qJmJ_usm)pGNO?$$1g)nJ#LPAgY6Wt&J~v~^@g-Ea}6y0 z$$a?#`NK7I#9WFra-wO(#aQmk)X=6?BPH@-W0={%UhhqLczbxQP(NUb!ArtvMAy@F zaKuV+!Of8#OX-N6e{WL8PjoCTQRtMa=rgb88M z%Z|Ai;lsW23C&`0S2;9f1)B@4ext%b(vXJ~%Ke6ym@q+H-3i$-R9| zc?Zu?3wJ8+y*oy^`-^F6r3D^1YmmF+R4B&v$5j1wV#nt@v}2hP7B{3JJWm-t<4jR^ zbq95xwnD#_6zp>h!UNxN z=ymZ1B2)NtnE7S%I%k$3csd=K2Xk18HIqPk)TCSK)Px0fOoC~F}rW)NN3)&+jk zwb^AKK`I%|v}WHkx|>kX{mvBJ`ZN`B`qSuY$za^KVLk;F)A;r%g5q%A zAJq=P^YOE(M@b_|tNWs<=_?&7%7_2vA<&^iG+@~caYz!1N$N-Fl$r^`x-%<;Gq|^m zP2ua&CWf@zBQe7Z*%XemO2hDj?{iz%7Lh^;pP%i*Fk|E=^5of_vh#nmZJ8##(teVm z$8d5E(}ZgP`=%SJX>)uKeso_$F1p3kcET7d3;L2r^*EZCl1G`UMlj0t!l#u@bTbCX zz19V0$L~`zXKTh=n?Pf?3yvB2rO99 z%;0xd3o{-j1D9IF(tn=xEqn}a5z%$#m^8hX=Duzsa%2S_RfTcpbs%gm*yGpl0pjAx zc(??Ap=VE-S%3B+HFo(-uiIrYkD17YjeM?P-pH8m@zlfo8fi?ihSTiP*xJJqy*R6N zW=cOi8OqLy_0Bkb%nO4qIY8~mAMwX!8EwlbrnR?+LQC&4x$Q7uc4rx9Au2`JZHJk+ zwwET&$R@YZ$tY!>TC%hOa-KY*sLwY@LoSwPr^nLa1BQ63MP`rOn^m1laEO##6 z$+*&x)H<;v>kw&lQztp*!>#|jn?L(g@sGb-uO=4?in>J)B34pld7x+<=ZL-Gk7&#B z-PG}l`Re9;7kj3Ja+g5}d69`7joawLl1WHv$ilV52WePyxMUUgt+&c0(vmLhsn9CK ziWl=m;WrN)cw~-awKAv`C8TfR!P#jkIBdTqrmt2(`6=-IyP{mow6Fx)cL-oVfdv z+Mi9KS1Z@hnYNqs&CLVNvxi{Zk~j4JkPDiuM&i#J&hEG$q>4*#CG#Ra(x$nwG}V41 z+5S?cpO(5dN+_&Hdzn|Smkv2RqG$l@&6d<{3$w5_4F z@9lBTB@fjX-qELl^JziF3-PCi42+mLW4yo>@jvbHQNaS|ou3P-pSI$dV-i{HyDgk9 zyNFna%dT4%X`ySg3uRU+(BX4_Xs))W(NErqflpHDI|*8|r$o0Gn&jLs~| zp}32tNd3B8a_xmYa-~x_cO8HiFGpf;<7Uwr6ol*C8B*&4WJqP;Z~b@Lnpnv^vnw>I z_8Y0b?}5o1CL-d)9y*)*NSxOBLQ4vyI7h?|yAR=5ejW74pEGe$i|KqHKmNBIru`RM zCHsCnBWdG4IN|+<4EtWDs;1j?wo(OA8RN(#I}h`=x6=H_TZBfKG$v$ukk(!!`1vN{ z*mN5@w$~I5E%7iIX$#rKGU%M$1By0Dh)TF8nG&OjH;+c*OvhU~XQ2h_W+Td2*ALI? zGSSx|7zL-KaUf7ysIHU354%Vlo3D+gY2C3QQU;sOTEcmd6HW}@LN6m5MA9I4id$=n z6rCt~5yQNqg}OM+-xGrm%+X{H{K@UZAh+>6ovi@&2F#G?IuxO~@Ga-djiHyK0E-XH zXz2Qz;_xnWb{6Yk^P-7Zo^*{Y7pK6hb+@RSBm?~p?yIb@qZv!OVEFPwqO7$$7Izsd zCQo37+oK8aE)HkceK_5EtRk|yv6uCXEYY8fG`Org4(~WAq?jLcF#WHqN~IN~mCVp% z_%!k8X*Df~9Z1R7B#Opx}DMw9i7AJ>Tx31?i#pkCC`3jV|<9aDRG&%ll!^8bUytG4Yl>hqthCg zKHUn34wZ{ENiMQiD2dYboRv-tK)>PV=&$rn{(t_WOJkqW{spPHU_6uda3}irygIR@ zI1LWR*gu{ji!G)mu$k3Fe%`CaZ!rzWm_uah_LllxwxjkHJ$U}jZm6|yMbnmnSmD2) zBD&RxvY0x$_i3H$uAm{XbGc6QBI2-%Gu8Lza4u-wAF|eErfZuJ8(MBr$DCi3$@#3D zX6}mgT|=)9L0 zhr^~76xRL!o?KN_=V;<*!%Hf;nZxtFuklNMh9Sa9|4s)l5TqmtEA4`KT+}4WXH5gua!Z zTn}?bW!)kRl5I;y&qIZ%*Q=yewUM~q^@bP`V}!}I!zjr%1HbhuNXA7G)r+rjrz4m$ zhW5j(y(=l=swW2j?M|)lr_i5JW7zGUM4xn+lU+6lD$EP9tlCO%Zf9Wd%`k+&Ps3^% z<|=p&NB^9KWIB2yIeZJnqLxxBP8vrw10T`6A=4$(wYt+Rvo9jBc(xem8bR7g^T||} zv&ouvlw7`*`Y139R^~q{Svn4$ij$yv=^`B%Z;VpOHL5V+jAStLIGl$w%jTLys+H$u zd@hTau1G(6GNZR_g5j(IQ@11(IVSRgS3tWLE*Y0Za;l44(vThw=MnPtgVIl3#w@1^eor%|H^61 zo@tUFE3eb%iYUzgAPu$C+9>a_R$TEOgUhMTke_pzBtzAqkouEUZ|TsD((%~(!~wEz zys`9275(-cg{Pwh4do2*QRd6ldj26znZ6WPcZZGyDUtHme0=K9P9Ae-%o_WaG%6jT zy>cTR_hC=MuQ1B)_(m63>OghJQD$bz<1c4RieKAf#nLn?xiOQLy>`HwWJ8io-bYs@ z#=_6c4SW0CqyNgQ$cMQXrDq?}A^tozA9_nc_a|Tl_g`kT@%-THD(=_4q#DmeOg2%X zq`G`0U(!Wh&`#3q!~L*^MnYR1Ei^XA@|<+E{OAXHJ8jS*Y1kDtisyDI*nhu?8g{=S zwTRwyXNEr%l6s@bSRP>`InU%25A%Xz`rbYWR=+lq=Wi)wn+=AioIiU$mv2g_QhIqnut_&uBbiu#f+R)i$D1uDv z(3`m@8~U~K=S&%0N|X_JZJ*?}&2TK&7(o8-{c$RHDUB7(>F&CQJY95QIo}btR(puD z%2Oma(1#uyj6l!^BiQbRUAvv$X{Fl%9Wl^dm`XREm(!WK`S|9<9ss_h zzL+14F~3@cRaGv%u5Bh44R$&?Jfp0`$HnJM*+@6M%-oV86x%zJRF6zX-+Dhfb|M_} zN2_9L=T?g89z*w5SVP*6*mCw*@51@00m*4^knBz+7S4WMoAr_ z<(GTVq6dX^Lu(A(cDzIXMHNw+jV^vS2^?563=UPyu{oH5JA5uPXz-x<1`f11?I77- z&7sw0XQ_YU7;%U@sY>A%NDPxg*r^Di@w}5=qU=eXbVz(SsfoUJjWpvQyCk!(kl&dM z92?~YwVdnJ!|osbys(ots!u`ipnYO^n*wKwO__TAfNM#^@p?fXaz3b1-BNYR z9i$~L*xn|oiwg92IpL^7I_@tYO$t}M#DN1b;#qDQ<$2wtIrhFyUN9MD&G_+&%q2uIVjqH zBDu|hLU&#SjmVjdtsf+?JF3OqhH^Tz`6ZpuQ^42TH^@FW3oYtPDCOT!>10? zJ9mEf2I4@JEv_;rY}rRMyh`TTOzvoSeq|;^PdWB;WaGapnL_D&82(DXplHrt9x-Sa z=N-~0;kY^q%$g-#=8j;Oyp~utQwzq6l=$7di+4dDu;jC|V}5_A<@%DsYeUkQVF0ge zU*wrzAd|VlsJApmbUbG|_Ftr^%pPboI6~`E&r*x!HIjQX0EMPbczo#|eR$)GGVb>+ zp6dlKXGdssbj4|H4Xl5;$Td^W8=Ki}j;-CO9$Bufr{tOc^ngBBSz$!KsW@e8LVinR zurg__>r38|e`1iaP3}gDXsM&o8^2LYnJnUO+@J&B*+Wo%i~L7Rxmxy&h5z-T@akAf zA7jiZ=*2(Dp^MRIGEAXg{wdI{mZBp~b+nt=P@5G(krN+Evzt{=wa6R2zmLM^)gLJG z>3AGk-%Lu}={NP1&|RYiG-Lw*yfXA~e}uYddcu8=%lgpy$+j|qp=!di;zJCe-R-_tbNYc%q1sfa$fR&*XYOSQb?Pi5BBXg(9xMW~|fUIbze zE~eb$A818Q3vI4X!rvSHAhT{Du73+h-yf~?O}3f5ZhoY;N2^5PRb~{9xlVT5`FYqm zjEK>D6F$07|G&AEp?RN*mn@`_eCLzwYNeP-y-=y+h&!rh#RZEje7{sIh9A8{ zXZsgH>TOr3zR$$&(S32PT^eN(%(|=|g{4k&Dg9XjCZ9S+KJ$)JPNOmQ?CBuM3+B>U zZXm-=lc2ukhNxPwo%F{Xpg`ZV^q2e7p;PA5o$>4=JZ2Ah_WhN&_#-jkmn;du?}E?KH$Z zeFe-nct8scbCFj&Ufky{Xk9`d3?9$FXWp-uwQM6@iIY-?QW-N{LkptONE{#<+$*uv+H7)&{hl+c1#O*n=y;9>~)^MntX0g!@%p(7`Qr~^M}Fs?NmZ1-$aVs?+v7PgP+;6 zKa-oQ8M=i0C5`qGC^j1aO^@ATp?Ub?cJQyZz6*IeUqYn?*b)Gz%&#fczwX}|2r1rp< zH_v(29gMG;@i@7^ij032AY$%y`oZ_zC;uwx^{qyF?8KS(51#m)(kXW43`N0@=`_wN z3<=EBl=ogm-#I^P6`qf|4{Wh+#(v7n2o{r4!tn8)6TWTiq&_B#Npp2Oo&K{@th;Uo z`@9n2bI2Gyo_(YJqYUw3xf`ZmwuRQ;UQkJyDY4W3Kv`Q}(6`P=7`)s;B^@zXR6EzT zk@v2ZI_JeJ8FS2xbb!?x8M29Nr?Khmwp^r7dPgnsO;J}2Fq}-<%qdY{ppIypnY1<5 z2A*SglI7|h)a%PDNgTTxf-i;Q;qy0=B-d2BJ-golhIR;a0Yr(uby_kGT;U%^!zHCF%Ge8-k2gr^$SK z5X3)O$VvR@5S$$-0NnA7i(8gof6+aYx#Zt zTmv79^|^E43*W#VsK2j*YSlAhx26T%GHoY+&o7c~@B5Kc_(f{lT8JulXZ|<-q>2q6 z$jg1Z*nigvq?7 zscWcV=6X?hC>odigOITM9^GFxOGpovLyF{-SYI~;X0wyvu-I7=nB#}D>rDj6I}! z2wZeN?eKD;&uq*VBzrNhn+Df%b^q^fJl}QGE=V_jXM@ zOiYCfcM4`cN+vy-^(5mMhwD0#lqZ*fqa!#B%R7nsz3kYVF^1>yC3J0lDqb)X>p%95 zcI0djSMvwpyUb*~JFSn(Feg+z;EwRzr_}XBH3iB{KpKD7TUT@c>dIU?ZX*X}FFs<# zrQzQm=01M2Mg8m)m*ZCNsX5aTB{nBWL2(>51xE{y_nWEk<$0>~T10Mk>u8;IBuaNY zrTg7dP`B3_QymL1bY2Bnr_B+8CIy&y&>L5HR}jJ-tLj^)C}^TGCXV_PtZ35@=c#gmMDm{&VMi)Ll7eiN$!lTOrQPTewmG?`*c1O-H4d{on);B3( z{&Om_P9wD&lhC97lf-zejVM!nP6|Kl&}DNo{hi~1E|o@5-krdVQ%#DFJVwu^Ya*pj zwKzOBo7PV5pwCabqGX2;`n^6%E#>a8@6|5Rkc7c*!6|CJ?F+51X?R|>mxkZ(i6fgd zsNLn5B&k`3&aE8`OLm1vR<09~%-l2K`Lfpx3#|Gt4c^yZlTODk$;suPNpJgYIy$d~ z+!p>D>l*m%Gy(ryHXF zO+0?Jaz^>H4(t#7C$!H$rb~0|QL8%wZxl<#mZzh!W$7x~xzY)}S}JMZ>mVx6;@|lq%dMybQ(=u@?u{Hr>CB%pTA~8$81|5@_Ypy}1`8$252W?#6peJwVt;KA z-HbIvSaolV+xC`h9`l_~a+W?bKghFfGdl#WBsK2LX660U;$zmRQ{ZRAc?-lcdYDF}OgpIWxrq2WFA*n_I*OaGg6G3uNcS1p4u?K&D((hJ_6 zRQ|LFp3WXl9-o4Z%{i>?mF)WqYA zf+?)d2QZU+0^B_^&})whojYnqpCG};TSKtZKZ2&8(?j|OW-Il-LHXNV(f^bU{CUsu z(`lA)UBrdP-x1Vh|593HeV(%V4MFn;8|tOdFAB_U1gv`v)}k1n2S$9}4;MC$#MFeX?#$#Oi{+=(S@ndF|l) z`IZ?Ja&ZUEp$jCAr>NGa~@?>K52u6AS0payYc}DqU}k5)BRpP3vaW-9o`aDDUx#uv0zzLIXjKh7No8K-wBpxbH z7q(^!cyeK^u&$_}g0?7x9cz{BQIWyT4V<$#kEZ}>C#VERA^w{j^F~I((!GE-dzR7K zvo4S%m|!KdBqKLG6(;)Cbi_?g($_JQTKmPY4_yN+JEzk;*VwanB<@#)hOUqsnXP+P>ZhXbwZKHJR9Iyh%)u?k66- zvxNDNK;#+tz*qO5Fk!}2ZMG}kmnCDZX$+qJbmmz}Cv{OcPSp+0_&B@^Zq_W995L+9 z`Do@6=#AqJfGUpn^g?$_T`{zV8HVHE)1YhFIOLXq6qrH3#|iRk`ArS(-Nitv4m;Um zKJV_kJ}4Ch@&zb7ks(fUCd0UCG&=hmKqJ%!e+L(k4tEUD%(=}d05NP*{ zdgjXG<{BAVa6BF5V^&f7`PUMq{F~xo**Fw^Ttc?&b40f?>M?X76&{kJhN(PfWp|~j z$uifU!&EV1+F<&1qMaU3*TE>wi!|nuv7}_-XiR*Ri+`h?aX+$FsPTMl`&1>~<4&bN zd&e>ZXdx}!e2cy_2c_wH9`1}t#R6SrxTlR5seSvv@kI=FWpKAf%MP(AA1H;{s;2@n zX#V~jjGk6c*VR@~smm+st5_sLPp>Ea4RVs4Av4L}b}SC$@u zcED|~2s+8^;N7wYSY164ci7iy-k^)av6t!hslMp^d{11c?2pmMN1^(T<*`^BuykK+M*_D84c2D6|aRFOby>q|MCD*S4u)ngD2DrWnr{_z8G!ofm5&j zaC2QXXR(;YZn2eS^5^rz05!-MSz)*HcS(zH#2wJ)1cL}gtR-%5z4(B?_SJKuOQ}S+^1aTZ#o!DVDo`JWHuAv5E3ZN&sYOi zA%v^xwAp+inbZ!YtI3P0?Ac~I@vN909oi;*cVD0%MNh@46Jt=|Tmb1x87%f6iiL(& z=y>>vw7b5bzI>k8@#+?}zG|jBN`V+JzESVG{xtnNb8Xp4(&IxQTKz6lCU@W@mzqTO znpdKuSewpo{YMUq!m(J(5ZaTQQx*1E}x5j(x?f3 z%sTT%Y+(yM(4S8hZ++2u>lJ0c=>}hUL#SMlqcNNp{K5Gb{q=ptvJK%__^XjtpX?3m zE?;TCq*XkSje^u239fK9!_PsQ8iqx{bz3@2jMLHl@egIJennP)%*2zYJ!$dH;2=1hB@?l6QYOy_MnZM@R4hFe26ZV#gcoe0i2L7Y zdE#H*Gc-`mU=vz*G8H8?F5FKTiWeU_+jr9!)teqsi1I%=w6TXI*Ex~j39Z8J`byC` zA`O4~O0d1}2w^fM7{^vbLTUSNQbXS4haRl7IE8;>@7(DDO zVUV(g;(ks<{Kh;~j_3i0A*R^=-)eFT^UxG+~1a-QVA>M*M?~1jilF>^)aBg?$;`qjl6%=R zsllxu%v-#$!BtjFYSu=!oD_yFqjdvA}}i$uP9!o#!7j#Bl!q zRB`~t^_>joud2|!I}lpB&J;d8mWrekv2)-&x==QYUTY`fcT6|DUD!^q=LV3WO#<3J zW>W2RduZg`5!T`ojsJLoTyje3*2E$TUigG^ZhxjXm!?ydFX7*vCpx}B}YFiM6JykmRbtVs4*=vPwKoxoIs}9mbsME#4D8) zSt*CD@`T`|Dk|9fno=tdlKI)s)VsnT`tv@C7^AV&=#_@}?pw%glMhzQbx>4=6v^D5 zhMtvkXm|S`GN^h?Fqdx8x4T=RmHuOkL;h=tt*Z?vYWqIKmHLa%i6iqxSoyxX2^ zeo1UvWdPZV`36@$dsO&r%aZTC$=4-$!~JYd}BsZBec(OPej`isPe}(H=R@uNjq5$-VwK zJ2eBolh_C6Ig9QtG(ew45$O3c9nMd~fGtvpj^%d&JH!%N<8UKO1?MbB!cCre)4Yod zdViko#LHqtrcKLbCDij1-C%MHpdn?tukc1i~OJ0P3=;(ORjvt0I~m=cuA9_S9LlsHn*B5f=_ zH4%Q3Ctzp5LvqwVPJ91wUrSt;+%NY>(0h4Gs#rwFW?v?y08o?t3fkmkf$N*+(I!tj zJeRpe1+NuQc55shR@29r3sSWE&th79-57V7XBM<}9{K3>!-jlsxK}Kr`(OLJXoamO z!}SB%&!$KBxO*huXP)cNRqD7tC0lcl{FIyC(h-lvQ34K{JDK-fgeM zf<0kAy6@<^v@t2Y{2xc>9oO^ww&BuJX%br6r9CK(&wZV=R1|4xmj-EQX%8cjkrhHx z_Ll6dP_ku~6uyd(k&LYJ+`s22=0B9aGaZg|ngqh!J$65~oXLMECD~P0*!7t74x)SKZaKPT(n4913m zO%&Urj?1q$3$`y&!sWIAba+0b#Y!_l7F+1^NL9#0@i{n*V8mw%BZk!SogC-SNZcXg zt;M7&cZ9?@YU9gtV>EI0)YqFck!e2_LAw8uhwXf{*qLCJ%}zn%J1eToZ=mZ(QkiCM z0gA%s)577?;MX>n0#+*F<5gv7@L4Tfe^X#Y4dpidr2dKCI8>&9rTo5eEFr)_l%J9M zxjXmJS2IM+H+N_sn~n2_IN#Sh7u!b!vTt_^=%u>|T3aTgFLybuxW&EQZPHkA+7koo z3o)Z94VBskr13@^m-%yXX!0vMY?nk6kEqa$-PY(h5sz&LL%9!+JLtl+Xyo}OR_~mO z+L71k&kPru&HrpfMl#>KeWQO}eDCbc-~Dg=C{pAc>Fl+msWHF`Q+|HEe}csMEGhS} z7{m>~J1Cy1rb&%i__N*v=hX6WE3HWoGB*M2Dq;f~nq(wui6|{C{QXJDlsQYs=SLzqHV%T$M1YKi#(eJ5Y|U~D~P z%%T4*t<_t>tXvAQ=-PCg9lD-$IMYLRi6UNYKTM%{zv)oYBi76zm1+}t=Jlv19cea( zl64`CD&zAvuPn?ubW|`pZY3MKCz`xvxHogN6Ui4_a_5yVM)JLJ%@lbAUmAs`W^0;% zXn;O`TtV)2hv)*Ix2@V0h|8(@w9zmha``nBzWy5x7(1bU$Qt?^q^MPR>B4s5w4WPkXgb!Q$P z>Z`z#GZcm`vO__=H=ayZW;5mlKug^mZ#Kl@#eYc{I4*(m$n`W-S{#u>iYeu0C2LoV zCB0H%%$?*3EABvA-`_<4nMvTm%)7KW{tXQY978q&r2xY@xYnS-+CDoX zSZoZ1D@L>3M-9+(Rs`>VPQn9qSGpxFhrY8J$Y?Q#`uB^J%kSl$Zx&MqcfNeK8K9ay z6L2Bc3C5DLm|ZmuvYv$)QN(>)Ne0;SXae#-wJ}Nlf0=&k4L!@^S)}wR)^t3bqMz^` z@Rd7)4%LzP&RrDZ5BNSKG@o2TztZEi(;>z`v+>TS>ARB*VlIl(Tb`FuQ7>m^FYYn( z8Y8fFRg^TZqow_+RADzokaN$K#@-CU!WC;tL1QuHwZ!0p7~hZZ8RNYJe8Q&!A(3T(r)Oq6XsORJ|IqDavZl;Q4*n!ygHch?UMi+m9j zEye!R|HZsk$dl@ri}sIJ@O$S(XHwrd8I8tIDfM3;dAym-@@>Ugo`NUK{ZT^Zoawav z;XYdZjB_4e+S1!pYkIV~iuRRvktk=PM1<_7XU2ORrgja1==k&WW@0c(l%|4Y`13fc zfZoTn2+r%CrpSZ0>9JP+Wpc^#?N1AHVm`hj4 zXG=I*$OMbmo~68-UrGAaYqEN2&rX<(!1<3sls9T94M|SJ+~HxUemfa6>|RpIhhipo zFADyjBOoFjfMLro(@?F|^y+97jQav;*v3QDG@D`IwlUhKPQh4R9g+ZOnL+c*Um!ijN>db-Ji|S$tInstnoYn9N>fB%u@l3_4iI~NnS_OWH02Q_j; z3PPf}i{8W%m!2lTD?bKT%bX$J$8!p*_h_x4mkcMGQBcQg*6?Et_gM)c^i2UI{;i`_ zo&{=q7>~7^9pPbeldkHQk>1H7N;!R&1>6e6k&tkloG*vbpM7z{UX`}~EF;+`8Yn;} zl%H&;GQT)DWt2Ef`1wyDC>o7_4|N5pySZC2(}Hu3*Eu-1^E-5>H_f)y!r8a!s9$YD z54r(gvBvV)PWCQ5 z8?)7}v&kzp@tC{NA?}TTf|2;OY=C4(PsC;kU4(0h(Mie4xN>9)K2BLd&x-_jS+-v= zcI-F1#{H}5lX(Qa@$O;sKBU3eNeu((JpbJ>0+xPrail35f5uHj(^&zYbQsfpS9erd z$l)CCzy-I@fNqI9o?cYJuXNCYAb!pnsSTy&syNHP7Qv$yauu3|gheq}wZDi4Pwb-p zh_h7Ty_F5C*+)mxvT=nwwcEJ+E4#0Up1Wnj@aF)%J7a>$gPfZ_hkKx}Hi;&A?qBQ8vNu4o$zmh|ag#;67S~?^+@HYzo>Zj6$h5!=+V*_!zm0T=`2xJg4)#Y*sqh?LI&4Gkoi7=o}IRa_og&DnNoW**~>=0tOm#$9Xv-wvcxTv_1HbM?f;``_u|CyRvB_hKr0(;i@KrOtI z^NoFxzjhq&81VdZ(^cwdm@eoWAC2fOu~6D6O%jvqD1Y89YAO~*ouxV^>l>ry(M}5H z{2vdMBb=#bgYc;N81;8eEw|Tah>hH5r!*A zSCS>~wAbwT&g?jEC+y1(LA&1+!AqVwbp1L9`+TNh<UC_bwvqUl0sQ|zFuaMb18C*Mlj_rKk zPo}@}&^Gb}9aZfl1N$oW`;Q~ec-7J{D@Qnf;d9^pS15kW5Bm7y8wq6&P)xibK41a{ zR*b?J-mNVk{ef0(h-c?G$A40XCp9cw#?lAHpv}Etf8r8I!9Weact7a-Bt9o|FQX|Z zvuIMqZgN$tpyWotEYlA0Vzy{Ksfxx4KKS*My9V6GBL3PTHb@ik)Q+E%9Nxw0?})`Qs406aP^4Sl}@Wan{LaQ^dC^7Z39o-FQb z8pnI$LTU)4Vp{uoGOFr^rD7;KQj)Kl3ofn=Ze$K z#bXe3Een;KJIVK$0ZO%AQg7u%Xozqp?5`l&-@Kc-b7r(*k3;XFpf0AyOskaI{z^V zt++&{cOKF)-Ukftmqe`rSo4$s_;+uhRFNjyH**vMGE#7M$tHGzKWpB#2O_WMBDq%D zV)cqZ(rDYq2A34lC$)O&ja=^VJ<1=w%Wsl2&ly{miy_NrBWZuDq7O~(+$|OYOKB5| zD|Vu7&*QKrNisGpwHe!E!1dwgx6AB&mk+e&#ac2kL zAtq+SeuNIp-KJ1HBwW?z`rn|IV)dFz@yv&X|;j*n&zL zv)Y9`l;&gj%ez!_R(J2%;KI(VG;L+*K+sGu#?fKT+JN>7XMMt#6PsQ z&luX$d@q^J-MXX4!oOFXIUPJq*Zb_DA^C)|$4k)UZHe4DxrHVTeaVKEK4(U}d%iKB zAgec;Mw@VNL+f&Zc~=0=XO+|4S;tB6XgsXvO@!INE6V#8O?jrH(J6U^a+aB3?^N!t z;Lo}hRoXb#Z%^Jqf!K8-mMyt;mQGpm^XjmBRJkq;QD*$^z~Au=u`5W^?H_wFc%7b2 z=Fj@Y+XS!9xzf(`E{Cu09Ua`iGZa=nqLWX&u{Ergv)Fs+_|Hx@YGyVbD$K|ER(&cl ze#d7xL$M*j7i(_6r}nB`g!3wc$tD2?H(66Gzn7lo_cFsdde{(@gPqD9f>!Bxu)p^B zF4{~-grsotl?;+d5%TElc2l92(r_A zSdWt}W}O&|u3hH1Bz}WBm4YE&e~qf{@tH@7J&qbU;(bC4!j&uRXLo4ex`-bpy*Fn< z@-F!CbSF8N9HB21%Y?dlx8ZyiwMSU7>w2?U=eS7pcSl3&s5o*}m(j#fM(>s!r(yPM z>1(e(TB2&mR-AiF8k3;v%sc)scF{mKpM59zka^BY+MZOv_tvVgup5cbMF*G$=TGxN zEB`uMNiz8)8F&}sk$g7UE;Yu)<@W?x|1wa~e2m3jO`+3^hN79f5(>Q1aX|3{{d96h z`0gIs@U1M&R*w!{w#JR)8MygO2jSUkXwXZK&l}Qccz-c%zh{i;DTCo_UniK)rQzt?$ajztd>3nbk}m1Y#Lkbu$SB&K z`G^#f?fvIeC|*l~JBnE9T}PD;N&NHJL#vxsuqh*X-ZQ9)guh&&9iB4q?zQAu*UR+A zU^*%^?g?7Qe5Qx`rs!$TNAaHBWL|fg^j}_N@$(!Z*tUq8b0o=nPXv4Xt^np2IfpMo z4sG8)(}CXAH2G>8IoPbDOGO?yAfbV{jpu1}kUjG|wx7C>R#5MK0Ul=0V%bX$lDLm9 zwlB=2U3F{8syGD2U+ZZ4y+t%>JMVNf`r_nAOEM|S!%Jr+cq&h!Z*#nGt$!rqIm=1d zH6E!FkD18JK3XyE7TIvVqVn`O$PMOEp0N;_@_s?5lMWEVnbX~ll(^Ie30~72dPCOG z^@k=@pd1^DU$XW@@9_!Q9t_S4fzlN$RJWyvb8krY4+u_4W zS~N`w!KyMeBzg-y;S70qmrg%sEzA%lQq#=9-mSsx;Uw-U;yXB9&MI`c zu7zcyMo8UhFYuo*9LFlG(6rVI7N3^Uu%mhy*fRwpU0XbxA(HX^10pFocqC=fiil71|$bAUIqds9Hvc zTrBZH$_u}4nR5nu1m`pc@*edl?la?k8Wm5}hXz1*OBq`|eGUDfFep#v&w}(?vfm;C zzk!AHdZi-Od~T*;<3{4elYWX{sRz;f+#hi)E2g=fGf9_u3_nY$z&rphhdj>UC;c>@;)_N@@8yiuu zqnRbQz87gyf1f+T@?X=$Z#n3xJwPK@7%-P{Vvs92MOP+H zfbNCIq+n=8Yf?8-%Q7EC1#K6!ILh*w`FBd;j)JCjM@il72W^({K>6lKtjTo3EkIM(u=X%s$0)IM?E^YgPn$!$;DSQa{`bj>PJi3Yu9K>tOb6FP*wDj%s>Z zSiNT){Q1`w@KFthJ}HC|^N_r@5cN*HGwT(HrKdm8zt!7m(eq@yn0t_tp7~&bY$WFV zj3r~cMDD-XNX9A81rJ0{QgXKsXTb%a#3}_dj_+ZO{G5IDXO4QM@Q+MfQt^?1yx!~2d zi?n|E7!)K*Qg$%+R66`7>oww}7%4_&hMOsLfd757+iBzQuWV(j5gR)vAIVp9(9AiH zx)~AtXT!Op8|v8EF&%V4X&PG=r$#4yzEP>QA^x8C!ltK>>Cp7kbg<(rRZo~si{CiV zr%$G|_vuLdQ6G)%cQ-PHp?0tzw}9Nl3lLU*lI_^Z=OJ1xbp47J9o)cYNvb*U=9%_V z?=z&YVL^-T-K9KIhqS~@__gZ6W?C&5nISv04JVcz2e zh_#5}xeVuK{E5U6RWXd_v**Z|3HZ2-Go3!4Aj9lxGIAaZx6)ahUp9|_9TzFQ`6(H^ zHK&ekny`8FfW2%vN(~o^NTtCP$~%;)Z~^bp7nD%eciy$;Jbjsy|H!4Nowkg(#=vhe zGO6jOt@&!GzF9@VCU@x6*h(rf9Ev?ZXTX+mzLJ?4t%%IypJ_d4oEAp|=fDlio{Z5k z@hC64LZWx&Fy`Q8)^f-hQL^^%SZ)M4>j0ELSx8~(?gCS{Y&2KxpbhT*Bpw@##hsRL zPxeFc>}eP?Asy9`ns}2DNXM+7&<~e#-X-O3`otg*cl%|R`XKv5KTSPZM+u}$jw89l z^ZaXa_7Mi9mM~m7PYK&+BSS8X`^<~z^%Ra|3i2g+vn)h(Tf%U%3Y^W4(X8GGeC8f8 zQI&dnc$_=vJ00oPIBk~Nyo)ATte{)1i`Xl^!yZ^L7I!Wzqq=4Vlog2Koy9Nu$azqQ zKgqz~Ul9*Cmy%X5@1bpTg38ZQl5>~D8A}B^y-pd5?h&+eojVmg7o}NeiFx>4q!Az2 z(5U06>S;FC%t-TZQgvR+PtAo()Ybq>vhfd&;tnt3A?%ExP|b>jm% z^)`a7y*maiy~^0`&9lh2=O91B1R`3m1U6sBVNg>ViyLf^pVUce-?eDlu~b^EuZSZn z|D%WVI?2MG_synjQOgbP2o>!kTRtoBnz)X(bPRh(L%eY}ZJ%k&GB0pvms&Ph&KtqYX=-@i zWQCQhf6}pA6HqsMC#7fIAtNQ8Z{B1>K9_o^+I%dZRTk5M(aud9uKvkDL?8vye+OPqMWC5)nC1Rp9+50EI^P*@U1;{M~YqU2{l> z%*AY6^QmOXz2SIMRZDN&c2POcr*`vmqTm>RCm8edKIcr7M7tx&rBB>o&Rq2GC5NnGYO?P=OaTiiL?{##^p(l`^WiF9ug#t#p@$SgtR`NL!j7L*P(w4{& zJU4D7%V7Z!jx)x8fdOc%x51K+c3>ZOvB3BkRIlM~l>r6h{BgmGkGzXiA_P@_ubltE z92f0%AoNEM9m%oqUiyRH&2d6e&uHfIB#L(hLs{|LG-kc}0X@@6g{<&TN*Gl^e$R6d zcK;^-?fT4|pLWnSfjJ(ej-$EMM=uNH=yn5Vqy?7Io{ep6pFt3mokXBHMTN4vH<7== zTT)M%gRCRoxUJX0hJU_Co1gK#InS3lZR9Q?67U?=3mWU52HQ0~v`jh%w=>6K$lH9r zQyhh8X(yI)b}WARb@SQwe#(5wSz>=op*LTY=1k@9lM2oS%N&kf(YjDu(oLe1r<2z6 zd_-N8f%Y-ZxLf{?LPGoKXwo0r&fh_CFSXDt7XvA6+tvsTNV+Tx9RLt5!`mUPcODwpy$tJrvG_A$=a4t z$fK=PXE_5FkADdc#BvYF<5rsa@BrPcJHifDPof9CZ2bneOvvUwR#JJp}l3!`OJ zdOaOatM}2BDFw(645Irl()hhO5dHjYbRr{(u36~OM!BiDm2sWt`ULcEq#FKy-9X~% z_E`B-6;~^IsmT8!89b7~Qod7r{CEl~e!Ekd41-UC7v~IHqo2=Luf!Q(@j_MZ8lFiv zQv&cOX)fL`okfR#XXB>&0ZP2!V*S`tX8Bk_eaKllA`ucz;vN$V9Livj5ZBp;T*qwWx#nlJ>|u$LBI6vH-^ zZswG0g)t|TNH^{^yHmT1-ydI--i9L-xITnrolTL~_K5b3Y$M&G`;;*;57QdOF_rVh zrO$hy>zo31|B}I~qkK;)TL7o`E6G-PDymW^!N`{9FM0p>n5zoj|CxaP;8$c+?23qX z4{Te?y~3s%cy}QbM_TcoMX7Z;`}`?<^}=4VUV5@v7jd;7xHgJsh!y-J8Yl zVkqRKNEL4FlG)--!K*dH+m>yyd=(QKPKm8ghsxX zF-Xh7#_{R+)WG*+9ZyN)>uem17R8_I0dT9Rrp7f*6r$Hk3g0v_3!GVyu1md^k<|BE zjn6eX=SiZIu>xuJIn=*!6r4hGksCUzFSQ%X*@7t1S*7l$lhu3twX%)Tp@Id0DbX>L8Vj^kA zn8NcTe=>Y9)q5<83fIuhq7{@Lb=g5*S)CSC*&+OtHePZMW!3!YIA3XsL-WP);jJ*d z=B=dRI-G6FJzc#+ma>ZyR?xV2l*Hv?+4qt12)Q{K(MiwgfeN5-PX~_sIZvzb1H0{g zjy4x6pebr0?HpA=ZWnaW*OgApYZG-Yn1tP<3ovKUh;rR_kfLWgO_Jl;#{P%2YR5Fp z*!^9g>fwhC%SR&eR49V)cav*|HQleBP~@4DN9<`M!}8vGa@^1JR5#>UZxzpv z82u6~Y%{=Et?~HK?FGF*>X6UO$Mw-$NoC$Efsl4Fl}Lraap!7EeR-2~y~5EL%IA=W zcT&VBcRYELi)qvLaTXf?+^AV0GqHxAIGWl!>Bl0-d;+D8cu#k#eaJa*I&Kf=`*{9Y z5p$47_K0`%qcNR~_-Dy@=3aX}`KJ`Q@(~MHNF?X#;kYhm4&j?KX-Q!fycuXb2;g*!qNM&l;mcP@XXh~W?1$lGHHdCl--!<%M9Hkb45b5=6lKuvtkH-JLj zD>hTFmqaFsnlwxx%+@>{f%&7%SKwNX^+so@}zy0?^K$7C@MLg9)}0Q z)HRE0P6{LVh8f1ccueP7a-scz`~RHf5WUt0;x7Ymj=%TTf8EO-Yi%WshB*2l%6ack zv(fl_8>{&f&Aa`xaf1KZR_@a4e0YgcuW3Ou&zpJZaF0XKc~a-IH-*jdH1(!DUYuP` z(Wi8veZ>VwTI<-3fN_*G=NT!S7J}5(GA8eC1+RTtWa&{rcX@85QA7#tN+DS7WdLtY zEmZZaq@!oe@oWDUn%H864(T?FtIeJ2aPaXG*~RPCTxllwzLn?^|6Mul(&H^f(ox?~5Y0 zTMzp-y<<_8atK^04%tuqE?FOkW82A8>^IB6Vuue*q&Ac9jS?`z&m9++szRW% zjYbR&#LXBpia#k!6J=|-YbBM6EI*PKKi}29P{q!=Ec9+)Km#p7{5>%fZH}DNT5yk| zN|bQ)@iBIR&**keNyeXi&Pj}(#b)yyX0DnfO2f?1A*BYDbrZ4S%M+@&p@GHEtuc1$ zKg!LYjMyhC)caKi2QzCaKF@%%q(5@k=RC}JjG$5V_LO_v3Y~Kn(%X7{+R3?JRv*=K~I{(?Zu_KkmY)FL(>dwr>KR&;eSf`D#7v9)6D$hWU z%m=bNW`)3NU6>nM!?@nt!ArgX{Y3KP1)H>!Q zT`-ZO?g$B{;a^W40x{Z`H-|Hqi|ItEEnFSO()q-6L1}IfK3O)?Il1BJ=Xe zqoCh{!|$ySmKF_@fHun47)h=c5mUn759L9u%I_CdNiH7gubHnSL zDHB?V%D1uf$DSfXbh-Ony?4;AQiERv+q!YxP~^ z{is0@5U&H3Yxl_O)Eas+JOi)JIb%tfGIA>Z($PzzkYB?+l73yJKW-R8+NU99O%{rd z9;V~*B2?9KmKt*GQ8f6SuCDpXrWUNGds#etuww+RPL>9}Jx5aKcQVyayaVx^=Pa+S zq7t(-EWJ1brrdd0`e6apXZgVUfFoAO@sao7aFom3Hbi(AnlkeOKl&AaPomaZq#k1>h3|xpg=bI63+(lIriQ$B6!5R zIA7eOsa3q2v^j$)^UMwEImnrioCS9gp*V9nklfg4WUu{7Iq7d5YR>tg;#LO6x^z;nzq@l^jhmS%Ius_yr%0_vB-H4{$~vs^;@)z$WQMif%$!3c`qm5a*dk6An$PGg=M2^Bq|u^*BtW~@5C{qlsJW;?Sm6~-JXJzS6MrPa}! znAB2p{M4R>E?otDxwVnSS4Xh#L31h2C6^tM4x?7mD|-RFhH>|^kty^G+R0ot z8tnbF!LFnA|iShu6MmKmC

LHH1GOKy4lc179LiV?BUG2C_~V}`*RPrCt&@}4*LDt z0uC=E;hnC`xv88H7~zY6Z&I+h_?iq`|FBtun)FpH2}vKG(foE{EZWmWQf-P9Z*Y)} zoW*|^w77p_R|ei1l+(bt^R(pJR7`4~&m_XkaoHsle-^sp-RZv+#`!=-c30^i?=u8- zl+wc^D)8;yMk~(kA{W6p+|}Pj@_zGZth$xp^XEuGe)Te1d5PyJq?`q64}7R*yBx~y za_^1QP7>kW;aeu0YjSXaZ7hwZS*E@yt(lAMmSx;6(ZTr_%jiqRby}|P=CHwwvwn^% z!O6{=_7%xep<*}r=^SB)_wS**&B2&<4&=j`gW0VkV0Tc53?tP9(Xp3E#P2-k(&tdn zs}+>B+kx)t&cTay^`sN6h_h?$FxQp$(*&k46`IDGV|qvqm4e*NXlPA4PLh-7;UUjM z=H3SuY)eAqf=H5T7>&@9T$(50Mz^G@$c-}zK1a!;S!g|JM)Hik_Hy!=#NE0#my&VI zEPPw5k8S2d5S{WLnP-RK<8)0_y|CuJq9PW*%o%}!++F7ufGV?WS`(Fx26ZV|b~-`F zdXV-E(ZwNKDNGEEMyS6!;^NaF#o0bT@>4mN;vVT(r@~or4J{h8k8|hi>08qWX16yI zV~#sv?_UKR3#b>gD=VOT?^sxsJ|Ok%0NPMx1OMZE_I-Vmz%Oq%{mNIzFFrT=;wni~ zoTkvQA_vF|TViil0hTOuKzkKGuWLt>@5x_uSh!RmCnHQAof??*MTd$s1USICQ9Wx` zllIhk5WZDRpIZO1j=ffRp%w=VYtA&Cy^C%sM`4R-H1d|5WXJO#($X!}l%r(||IMSZ z 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

1M8 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 z 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

&H_35FwpV1R*vSGA~ZetLb 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

_T?n!oxwS=`OXh%1k&F*XKgmI1>NiGSs> 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

2d7{DmGNW!Y-V_A6-fH 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 TS>M~%pmb#rjqkE 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

fCfZ(bA9vjh+-s^3 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 aFSptf=&lV?opVwAR5E7I*;{Z-xYYlk4|+-f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d_stride_padding_dilation/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d_stride_padding_dilation/test_data_set_0/output_0.pb new file mode 100644 index 000000000..245275b16 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool2d_stride_padding_dilation/test_data_set_0/output_0.pb @@ -0,0 +1 @@ ++JÌ!Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?Lç?Lç?Lç?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ?ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c4e7ff9a2ede90ddf1e7df11b9f8c7dbe1c4131e GIT binary patch literal 192 zcmd;J7Gf``EXglQ&X8g@&@;AL$;cJV#b_YJXsE>Qn^+N$pP!>8&c&0RT9lWX6JMN> zSdi+#1cD0~*|kKuSPBwTiX9jb5F{+b#a>)el$nxR3|A^70JcLnE3-s5wW1)us3b}r lWQ`P;1P7y#2p1Cv6A&{4F)Iuw0TmcxQ2NF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..38cb6ecc9666a4399e79e0ca881e187a9ab7718b GIT binary patch literal 3015 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 WP89>p)FhsY$yj}H9j%@Fh5io_)x&-O literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b9a9377b9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +JÀäùÃ?˜@@Õ¶ö?Ã6É?ò¿r?,2ž?òov?Çùø?éŠ?<$œ?êsh?}o?M}¦?Ûj?¯Å…?âãq?m¹¥?˜—¼?B€†?r¬`@jG@ DÈ?Â/?¥÷?^Æa?gÑ¡?÷ÿ›?]É×?ÔÇt?-4@0­?ŠH@>ÚÚ?Rû@”Y@ ´@7‚b?ÑÜÐ?Ÿ;í?úÁ±?…Û²?Œk‡?}Fž?Ái@Ú›?áÑ?ˆÏú?õ @ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c4e7ff9a2ede90ddf1e7df11b9f8c7dbe1c4131e GIT binary patch literal 192 zcmd;J7Gf``EXglQ&X8g@&@;AL$;cJV#b_YJXsE>Qn^+N$pP!>8&c&0RT9lWX6JMN> zSdi+#1cD0~*|kKuSPBwTiX9jb5F{+b#a>)el$nxR3|A^70JcLnE3-s5wW1)us3b}r lWQ`P;1P7y#2p1Cv6A&{4F)Iuw0TmcxQ2NF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c02235ed0bbee47bf75abf26a6fcc3dc0b764914 GIT binary patch literal 3015 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4d6265a415411f0f2b3b5f7002d0c53358893719 GIT binary patch literal 207 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 X@2WN&EAz&Ny8E~}dJ`D<6w?0zzM;$A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride_padding/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_MaxPool3d_stride_padding/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8788f48bc54051c497667f22c278a5051e959c31 GIT binary patch literal 663 zcmXBCeJs>r00;2A9Ovas!jdfSFU!){80GmsTtgI2-u_WbX?fketfEvZxei?tMTa3I z=W-p6#qTJ2nFw3NPNdL;URWi~`lEe5Y*n_}fBGu^eAfK6HW;NApibEf%jpKfdS#8+ zlx+t`h7560rMBbsA${8S=Mp>vGRRDh0Ik3H=vUqWG48--)(!l2u7ZP9id>l-1BFFU z|B;9sQ8a99N)Rvchhn+zR?2!=Ic0n>o{OwCa@_7&)?EoETb~;3tw2Jt2+P@GXeOzX1mOZsOoYJHw-04hhIM~2$rzBL zdvXFEcDk4i^@EcZ#r$MFDf4|!gsB|*wtpNf?;M1l8b{nd9yo~s3f@Nn^3w?k3R7aO zPlGl{)F}TY5B$dh1n)V^nDn^APO^wVXETJ=hrns*3DOu2T@i}0yp>F{ox>sW^6DJZ bsUbm!@8N)S1Ddf4WU6RTNuCfE-qZL8EDjxG literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..845140f46ea5a6be482ae2fcf0ebf7c9d840bc8b GIT binary patch literal 140 zcmd;J7Gf``EXglQ&X8g@&@;9w;}YOvG~i-16k;?|VhspN%_$WU0L$xUWtQlsRutqH zm1yyDFbXg_F&cWYFfcUOMTrBo2nlfsa4-t-a4~T(0WmWWvqbTO4C3PA07|d`1sIcn NDvhwIbYc=<0{|t^6W#y- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e1ef88baf36dbd68ac477d3afd49ae9e9782a995 GIT binary patch literal 106 zcmV-w0G0m;0tf>L1P}pAV8UzE_M2KfAilzCeWBJ~DSr MKbt=oKW2N@J{?CcKL7v# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..51f744994d599ea0a9daaffdd14ccf335c3e26cd GIT binary patch literal 106 zcmV-w0G0m;0tf>L1P}pAV8UiÁ<¿Ý¿Þ¿i>?¿ò`=X1¿u~!> èÖ¾å×ô¿ +îè¾Ìã >µÁ$¿¼p@¾f‰>¥/ ¿€5~?’¬(½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d_multiparam/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d_multiparam/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f337dc968 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_1d_multiparam/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +J`0Ím¾|Éø½0]¼iÙ=¾û£¾¨”H¾ñÆ?q>iÁ<¾Ý¿Þ¾i>?¾ò`=X1¾u~!> èÖ½å×ô¾ +îè½Ìã >µÁ$¾¼p@½f‰>¥/ ¾€5~?’¬(¼ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..9c9569ffc73df07fd96b4e368fb48758a7c98c3c GIT binary patch literal 148 zcmd;J7Gf``EXglQ&X8g@&@;BG;}YOvG~i-16k;?|VhspN%_$WU0L$xUWtQlsRutqH zm1yyDFbXg_F&cWYFfcUOMM(p-2#Ilta4-r9a4~T(0WmWWvj8z`6hFu?E-ntBBuIcU O38>l#mue>_0X6{0U=%n2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/test_data_set_0/input_0.pb new file mode 100644 index 000000000..7d2bcfafb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/test_data_set_0/input_0.pb @@ -0,0 +1,3 @@ +JàošU¿,†?Û“¿np°¾²À¿Etk¿’«ï>$7¾M(ÿiŠ+?.SÜ?3ä'?ÿëS?d(ÀŒ?Z¤<‡@¾ˆú×¾ÁE›¿pKd¿B9?ËYå¿dÄÎ=íº¾lÎǾÜ6 +¿fE@Mbo¾`´Ö¾`Žß?²±Ù¿(l¿„œJ>Ïé¾_·>×X¿Œ,¿·öñ?]5À_Òå¾8‹N¾4@,wá=÷,‡?h­&¿b¢¿æØ +@Yñp¾1Ë…¾[07¿ërÒ¼^S2>à28?G1E¿e¢@±€¿(^p?´KÓ>ÓYȾÊ(^¾j @ÒEV?¹%(¾þÖ.À^ù¿k¬-?·69?8¦¿¿à­?3>–^¿ÓÓÓ=ïðþ?¶H‹¿íOKÀst¿¦™7¿b²;¿F¯Ž>Zs¿à;?_P À•¿Ðfb¿üfÄ?1R¦>“ÁÞ>š:ú½ß­›¿z¢?_mp=òQ•¾x•l½F`ª½•û,¿CÇ?AO¼?™Š¿À!¿Ì¨‰?]”ê?Éœ,¿hí¾GŠð>U1Ð?Yo…=h"@tïL?éõ9?£í÷¾OP?]®?bÖ=¸Ÿ(¾Á“L>)Ó>+]¿¬©¿[ÀÑ}²¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/test_data_set_0/output_0.pb new file mode 100644 index 000000000..e64acb38a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +JàošU¾,†?Û“¾np°½²À¾Etk¾’«ï>$7½M(þiŠ+?.SÜ?3ä'?ÿëS?d(¿Œ?Z¤<‡@½ˆú×½ÁE›¾pKd¾B9?ËYå¾dÄÎ=íº½lÎǽÜ6 +¾fE@Mbo½`´Ö½`Žß?²±Ù¾(l¾„œJ>Ïé½_·>×X¾Œ,¾·öñ?]5¿_Òå½8‹N½4@,wá=÷,‡?h­&¾b¢¾æØ +@Yñp½1Ë…½[07¾ërÒ»^S2>à28?G1E¾e¢@±€¾(^p?´KÓ>ÓYȽÊ(^½j @ÒEV?¹%(½þÖ.¿^ù¾k¬-?·69?8¦¾¿à­?3>–^¾ÓÓÓ=ïðþ?¶H‹¾íOK¿st¾¦™7¾b²;¾F¯Ž>Zs¾à;?_P ¿•¾Ðfb¾üfÄ?1R¦>“ÁÞ>š:ú¼ß­›¾z¢?_mp=òQ•½x•l¼F`ª¼•û,¾CÇ?AO¼?™Š¾À!¾Ì¨‰?]”ê?Éœ,¾hí½GŠð>U1Ð?Yo…=h"@tïL?éõ9?£í÷½OP?]®?bÖ=¸Ÿ(½Á“L>)Ó>+]¾¬©¾[¿Ñ}²¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d_multiparam/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d_multiparam/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7514db55843cae423fa3f0ab00689f8bfe5786b0 GIT binary patch literal 157 zcmd;J7Gf``EXglQ&X8g@&@;AbW8@OxVl?1lG!$YqQeq7VO3f)15&$dE&B`p%O|2-% zFDlUz?ð`¾Ç¡s¿KÿÀ{¿5Ï!½)øÀºõ½H¿ç-R?ü?°å־̯Å>Í´?7µà?x•e¾˜Í$>™êؾ‡éŒ¿gƒi?í8©>þI5?ã„Y<”5Q?[ù +¿*,¿ó›¾@‘¿M#Ñ?’ÿ̾ɔ›?w"‹¿WÅÀËk¿¿Feù>2UQ?Jv÷¿ 2?‰f%?Â׺iã—¾$iæ¾Åˆ¿½ñÝ>Áôžú•Î?_ ³¾‚ ò½ý¢!ÀŽ>‚<‘äp?Î'½” v?Qo>èI¿¶>J¿õ ¥¿¸à)¿_?¿¡¯‹¿5ɺo þ¾wT@I·>,Ü´>?Ð㾨ÐÒ¿‚Û8¾èSÈ¿ýI?-ˆ¿s]ʾ ü<>V&«¿e”?#[ݾÈñ,@@ X?¬ìˆ>Ÿ‚?¦l ¿a¬–>Q½Ù¿¦3‹?J¿ákë>àd¿péÿ¬ì^¿¶f ¾ç‹?W×o?`;ƾÔÑ¿K @»Ì'@·f—>ö˜|?n᫾Ó¿-—¿¯±1¿31¿ê¹@¬8]?ÅÞš¾Ú>?–2>¦À)¿^aѾ—¾B?4ʦ¾/Ï +@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d_multiparam/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d_multiparam/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4c894ac09 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_2d_multiparam/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +Jàš?? „?’¾¾È?;Yº½¿Ž;S3¥?‚¬Œ>?ð`½Ç¡s¾Kÿ¿{¾5Ï!¼)ø¿ºõ¼H¾ç-R?ü?°åֽ̯Å>Í´?7µà?x•e½˜Í$>™êؽ‡éŒ¾gƒi?í8©>þI5?ã„Y<”5Q?[ù +¾*,¾ó›½@‘¾M#Ñ?’ÿ̽ɔ›?w"‹¾WÅ¿Ëk¿¾Feù>2UQ?Jv÷¾ 2?‰f%?Â×¹iã—½$iæ½Åˆ¾½ñÝ>ÁôŽú•Î?_ ³½‚ ò¼ý¢!¿Ž>‚<‘äp?Î'¼” v?Qo>èI¾¶>J¾õ ¥¾¸à)¾_?¾¡¯‹¾5ɹo þ½wT@I·>,Ü´>?Ð㽨ÐÒ¾‚Û8½èSȾýI?-ˆ¾s]ʽ ü<>V&«¾e”?#[ݽÈñ,@@ X?¬ìˆ>Ÿ‚?¦l ¾a¬–>Q½Ù¾¦3‹?J¾ákë>àd¾péþ¬ì^¾¶f ½ç‹?W×o?`;ƽÔѾK @»Ì'@·f—>ö˜|?n᫽Ó¾-—¾¯±1¾31¾ê¹@¬8]?ÅÞš½Ú>?–2>¦À)¾^aѽ—¾B?4ʦ½/Ï +@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..86f03ea0ad66adc1f5a603903e544bec1ce08a70 GIT binary patch literal 157 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 S`()EmQj30F-SlH;I{hElM462M literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PReLU_3d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fa73e76dd7de0adeef01e8e87bbfb69dcc3c2367 GIT binary patch literal 2895 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 TSkVey9*bbT=n3e3cOd@<>rRK? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PixelShuffle/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PixelShuffle/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4b5dec5fadeca10e13604f66104e06c77bab033b GIT binary patch literal 331 zcmZ9H!D_-l5Qd#(HJiah7;F#irQ{$IP-3Dz^t9ERw@OdFrLtg)CQGu4zKsvz1G=$U zkq-QP{LCD_;VyaVsEcy7esbec`gV5kgJ2x;d68E-%XKuv_CDL}Wc12AfwzdE^*5Go z(=A!kEl^1_HjX;VpA(-9-D7d~o{Qc2Gc~C{Ezn+aIJz|do1?X@v@l9Br RZ?l~KTh<5NIx{EeTmXi@FTnr+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PixelShuffle/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PixelShuffle/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..134b4a7e93f87ad98300f6fcba96bf7fa4ec1251 GIT binary patch literal 589 zcmV-T0EXGIcU1SKZDA?g|3u6Isx z!V%2BJ+-tyYvt{~ZT$p4RF7#tCIxmsysqv(u38B{TWecC?zn@$o;8TS(uJzOrle)R zp?1kW!uEH+=tEAwOGX#I%oqeeU(2dL2XpH_vr_=SPdnZ`jeH%yxJGxsYdJ+e8k3j4 zXA-Ix2mdIC$oXLt3#72>tO42?NHR6Pp7 zC$JyatGi&<1VpLQ=p7y-GJr|fgb`DZM z*eKIJsaiHaYzwKs1A@lBeY~;1Xkgbrn3QI|V$01weedx;`1oPJ?yK}aecq5hwS@6M bzpjbD5KrSigQ@2~+Mz{1HMVv>L(9TGm_;Wl literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PixelShuffle/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PixelShuffle/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d00751e57bd7792085214d64dd5a02d65ad7797a GIT binary patch literal 589 zcmV-T0EXGvhiR)(uJzOIcU1S@YVCarle)RKZDA?A`Gs+ zp?1kWg|3u6m8ji4!uEH+6(?%H1-j8coa3!O!R(Q~+Kg~Ned-v!`~!GDm8)4l;siH8 zT2__6l}8RgzPT?y72>tOUqGh61A@lB42?NH!zi`BeY~;1R6Pp79YLKwXkgbrC$JIsx=tEAw_NZIG!V%2BOGX#IoI4FbJ+-ty%oqee&ZwO~Yvt{~ zU(2dLU=u9A8L$?=iCV|Le}VQs6iUlKphl^`K0~EHc&D$vj2h%VIdG1@$2z#brONle zZSae~MaYG|V$01wJAyat?yK}aqs*i} zZT$p42XpH_z=-KSRF7#tvr_=S&yF%cCIxmsPdnZ`=DEbbysqv(jeH%yg*I}(Za@$| z0Vl^lg!p~GZ#C7wwR=ZC#k}@CqD2e8L7~;Zp`TyBvmlzkp}66`A0Q0%NU3xaZ z-Ix2m`6!IPY;$$KdIC$ouk7qR{vJHPXLt3#Zi-bub`DZMgQ@2~iV~E+*eKIJ+Mz{1 b0TfTasaiHaHMVv>Z$e`~YzwKsL(9TG=S3$n literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PoissonNLLLLoss_no_reduce/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_PoissonNLLLLoss_no_reduce/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..819c9d70e295da1895fbffe36ffef0d25dcea584 GIT binary patch literal 569 zcmZ9JT}V@L7>7Nc)ee6@SQAI7V>KjbG;>Z{&UW5mnUS+E6=Z>=CG!in^eh#-s!&8j z!EkmlGeuKF$N~+@_npIx8CYTjR^UzffrUjVC`(E&yZBu^56|6C;FWS$o#d>#RuaP} zCK$~<*clh3M(aDKhO5uEUa)B>mKj|6PSWK*Ty@Zj8H;c6J}lw!ArM% zw3Io3cMe$~y6r9eEXl+KZwvnDd5SCfCi=b|1xG&k#mlXFa;rG}-2ai5^RvMoc#dtU zP2;8A_VKBOT#5`zP!|zFOZhtM+L#=VH_Th4)NxDKc@O1=+r_mTD$zdSpx)szoIbpW zgBvFL9eoTM zsNKR_lQ&|qYyBiW5>C)TV-};}9gy*&7JU29z>qBkRV&4`=C7x63&7nA8)C3i1NRjNtbvPDkh8f? zuOAPPc-jkFU$?O$#%!G^cn6cd_vGDL6*Z15Dm$wN*>p2@Zq7lw^BHt#VxdM~B$_RV zvmP@n%%ss`@C`H%-X?!<>#OL3atd5=Q8y=JVT?;ua!Fb~qt?YD8E4pKqn6KhSL|>S z+35&;#NLC&7?m+Or0}7!t3xpP(epN05e}b0?`aV2!g~t7^($6rgfP< z<3}bxb)*MB`qcG4o~-~sYFSV}d_BoNKxSJ#5YY!e#LNRfZtt=_ zMnF@87iBa*QnWok7!txh*6yP|T2(qf z+NI7uIH7_)5IlZ8<~ssEC>)?Yu2Pjg`bOnGMslG(dV5blwu+fPs{BkpJ;Yi+GU+ov z136tkKAt}i7&pp{KMG_7|(lIdhWvSd&{ zI86pW@<~-cDr7%DJosfk;JFh$pb7ClST4Rj0#&9y{tk>j1L_<K&O*FHwf214dxO+5-R*ZSH%=ST;;_-LB$9_2QBMAx`2s4@f!F)FvbEvxAT@i zmaHQ{?Ohr`AIHi+2VA&6(IufjS`86EUP_8T$ZCi`Zcf%epm~v~gTN>=2PZ$lVJ-0QpHk2I1g8 zC!y*;#JX!g3hszMsLzf+SgwOVFj?b2!ODX_hNI6vN+DxE_AMSjR};uT|0xncJM_Lk DWq+-0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReLU/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReLU/model.onnx new file mode 100644 index 000000000..85a386601 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReLU/model.onnx @@ -0,0 +1,15 @@ +pytorch0.3:Z + +01"Relutorch-jit-exportZ +0 + + + + +b +1 + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReLU/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReLU/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8501131d94512113c53bf15670ce62c832370c88 GIT binary patch literal 493 zcmVL1PBEX0ZQNlB$bgp);GRCoLIQNLkn0x(n*6pml=A$*x-9Vs*DIf zmdC%p(-I~>-GBwYkP28o&t<2*QSv1}*Mqx1H2%9k0>unJK$Sti@IorSX*Z5O{5&T= zXcXW-hUUq>s$qM-gJCzn$_PU~fovkbD-I?<6qesTMXwG&2pkE&+f4btg8-zz4@}`d z+|K+yAmTl~CD*<`^LvoLA-+eyo#NC!yN+kSPEh>5Hk@a@^aUC~Xnf5+F;h@Kk6N`q zS4R>*0u58YYdgn3F)vTP?28;gQHC`7 zYzkLD2U;XQn%B@icyBDe;mIDqAj1egl1G5QdYd;t50;+4_?A1rP}wy<>JocD(T{My ziU#RF1tGvY;gaD#Y6g%$gsG;!pV!4dG{O(Mn|REM;3_#$_9btdTv)K;BzVV>iepL?#Sp2e(8knBI z6#=FLKdIVZZ{BTh@^802(@`F<7)Vd1d7s@M8+H2(kq2-wkoYMMXRw*td}{V0)9%~4 zuIEFM=l6MNf9KpEuo~6t5VwHz&3$wQECynOz!z32hm4xDc80+L_We;??Ze%Lz~*FI z9|zNKx@8=|3V}r0JqNJZ{}YqocD*-WXqUqkZqFX2Vn6Hp1-RJ?hdIFPs@djnwE;Ix z?OzF1gZW)-FYQ?s4_H5(^w2JgZ30+q{`I49wXI1LY+?3-=q9m3y91@??GJ=W*gaj- zZ=af^2)B#p5hP5J)q~h~f6RoNw`a90SUvNcFLnv(+723dXTjz(&0Am>v&h^2^qu)& Zwf?81!Rpqfaly^+4UMy3<`WF(0{{Z%Y+C>T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReflectionPad2d/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReflectionPad2d/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f36d03d8b289a25828840c903f205af0e0d18f13 GIT binary patch literal 159 zcmd;J7Gf``EXglQ&X8g@&@;B`VC1smVl)t9G*n^^NKDZZ;$q3oPf1l`FG@|zNlh+U zz{sp6$;DETm{RP(0EEmAj9{9@foTCFyO03bDBY~g65Z5_g8ZVAC~1&sVq78|j6woj cOdL!=%nZaFAe;o0G{hpw50vC~ViI5j08ADd<^TWy literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReflectionPad2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReflectionPad2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..cbc7642fdf8423afbbe6a0a76c289c78e418bcca GIT binary patch literal 1549 zcmWO0iCfHh7yxjY>6%0nBH0c{$3xMqBhCEYcN~wc7&$hSBm2;_=`h2#C7~(Rh@|z% z*&!7Kir2k2QBlo8wll{Vx22E7$$7@ie^)ad zzjc@8ALVFGtvLz99S%AR~ko_m};GYiPf(*~2;N}zGpCDf$nL8i^9|4**`Y|qEA zM>CAyY$|1P(F7_ebbxqaELr<1F!E&vHY(CcpgD*WJI>N&Z7g-9dFj7N>jhXb20t%0tiPY1_|X+^*`KCGtCFd8X&zkfPXWdgd744giL8hxAw5wNTV<#8TBBBsAC4 z@Ty!0g6rs9oB=bQ=8(|kF<0z!2nUU_u{FG(Ha`7GZBJduTzCR{pAkDR@P!Q?N|fB0 zgqCfsd`8`Rs2X>ITn_buQeI76W1hf0(=%ALdS&<+VkMw+6qvI?Rc53y6ajRZ!4SRX9H z@=XRfT^#jh&t%DT%KJgB^e9BE9py<`eD+>CV z{l{+lvgRMC329(wKZWAZf+AAv7_0BA@*|C<5rr!JF?3lomB(4(a&Q_b4YgKVafjC$LTgV5>bpufe-pEjNpb8sKN88ZurYfH z##$M%fqS{gXprppnlZD%A-MKBn%`Qui};XaD(zF@Vf(4P{Jbfw|9q0D?j^1L-Ccjg z!Irrtba1VU7t=8DeU!aUppyBnIH~3et2obLVBi<@?BdXW{5(tv%7RL#0F3#O$+Al< z*wECIbZxeZ+$@jkF6^|Uz_ucmeFg5){_AF$tmR{Q?k!j8ss4J1u($ZT@ z*{P-bZo!yu5J&jFkd28o1I=tPC23R0@NO%85gZ`nE)N)In+xofqCQ3z~ zHD}r1i-eqi(i`4yz5%=%y^VBMgOC!~4&i^CWGz}-3d!t+wC@aYX150&D}2kn$~(Yw zV^YC7SAu1gR;UgwrN?z5@@+Mgf9N#OKXWX`lo4Wmr*CUxr4-~r$5?m3O$@IW$!oih cpiQlXe1fQ$PaScCMWuUV*wSJ8h29DDA9n-l+yDRo literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReflectionPad2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReflectionPad2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..13d0c1e7b7884e20ea71fbde60f7d06ba470e84c GIT binary patch literal 3973 zcmb8r=~ooi8OL#PhCL`l6eU;|7nWndKwS`+`;5k8fH>k(VjxEBQHCOmgO-4Z%7DN~ zL_$4cTv$XPVziK;4bhqV3@C!w5J70LVhAd+ji4+BhzMz)`48@^&-uQ&=ea+N=@t@; znHJWzCL!ZarWdC4XAcx}vaul)izG6pY4pGiKPIxvBP&=+P6CqDpI^Jl!}oV1S#d&+ zTiR?;8h3|pSXdWO)u?7x-|YmFI-$7+dVb#u5BjA;WpWjm23_PNwaB|7_loQ=!)J&my-EPm-ogof z&0^RzQo(Xoe2)G_m1ynn2qbmq(o2xtSIbCEK{+dOocaI%c?(UR&ODhAx%SvP$eY&R0y5Qe3WR8!n}d=MyUt#gAA9oX-416A7yOgEO^2FV7S~A zGE+wN*5l)Pl3L_lk$XjU5ZU)pd^mJS-jtIQuNE3A7pCLt?=?`kCIi2V-_6o@7ITtX zeZP*op7jM%Hs*^`r%!kn6r-&B0IrMHF!xPUdXl>HALcCb?IlKiynp1Xqm6;SvQ(B; zWobAb+yV6!ZAemIb2*FiUU)Hb&E_2JU02Soj^{F~1s2Rbz|vqXQ2|LU@~+6eB0Fq9 zspA}zpiO-_b z<&KFH^7@&kNK(s6ZnKemUmydk%GsXz1K`*Zj>S&8=ltjccN-=W5Z`iQoF5R&KsxJGV;K_J#zmXQ&isE2j)qPWp_Q5TifV? zq!xKsDxc8s6VZ9`@j3HPF{pkcd-QEHKQMeY^ZL1f?To^7yrlyh>MV-MTo zC7oR21sg=cSY_M*?U|GQglGMt| zah~!47?yUd-0!BKcbKDVh)Yu{lnqf%Cjn5Kz*^qSXhHq!xKs z(__g27@WHtJ?p64WW z?6=-9vgipTRZ|H8f7Nzz6WI}P{-+N9u+$kL1PBBW0ZM=aYd8)-b4X7{If2HEDnBw}N}VjAte z8s9^{2G3MKP1L2nx&%r;JWp0Uy=H(j;|7{|_2B7J^ z^)5fZD6Yr8a_yTx`sE2g=KO&_ycHk6>>;H+El@E)JW(US%U9#R!QLakYu?L0g)5=H zK^?fhpKE15G44vgjw=Md58DMl{v3!tiVJi;aUIbe99`i>(=WNbC)ppmv z%tfg^MF59CZaS5}dHMmrnca-N_*nA2t!5#=B4MIGIb%ydE)DlRp+!=^B^Eiq|A;NW r&1dXB*%I?T^1w+yH=vh4R}JC57dSP)@=UwG!f7MFQ+sT`z@YZOOWnM1 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReplicationPad2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ReplicationPad2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..894beb4815b309c4ac3a17b9b1c995c98f6cd5d1 GIT binary patch literal 1861 zcmci1-Ahwp7y$4sZO%-Sz@pKVxq?7u2u3q@-e)1BT7~vOlVC*~DYjKC`wl{>m{hAE zVu^uUAk;-d5X^GteO4l3T2UxvA4-H;pM8R6o&c=sQibMd?S=@;p<^m+Q6LanpA zz-KM6lcudT?8(!|aH=F_6O=e<;vOfu(Meq6@p6x0Miva?)tur;+ZH3*o%bXAfUEer)K4wPW*dSafi*jMJv73_)-(jfu<-{9h z*<4WjmVH_bWMOqHyP9{B1&nVql(?qLU5o^WqH^)<7MSwCX2Qtn_eh2u4<&~t2*)t%DWxP^XH_fV>b#)+}agYNYbqqeAO_`Mwib@ mLNc)p$i_$*T=`%5O6vv`k~?~kyl6Dzo(q0VME+)|eg6SB1()6c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/model.onnx new file mode 100644 index 000000000..2f782c720 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/model.onnx @@ -0,0 +1,13 @@ +pytorch0.3:R + +01"Selutorch-jit-exportZ +0 + + + +b +1 + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..935024fce77988c7830a1f3d0711a521eaab8a94 GIT binary patch literal 130 zcmV-|0Db=m0|){L1rPyBc>BO8KeRUuKB4|7zdMd^KRvPgJsdD^z5}&2J|*=2y)U&p zKdkXQzfMk5Ki2-yJ`9tkKc>}~zo$4Yzq!4GKTtKCKh5!qzp13)KQs)NzfN)PJ~jye kKfK2fzj!hOK*Q8{zx#f}zb9>0KI+2>Ka3YvKFNblza!#0&j0`b literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/test_data_set_0/output_0.pb new file mode 100644 index 000000000..7dc9d090b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_SELU/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +JxPO1?¢`>Þ{Y¿ˆ³{? :>Õ»¾yë>>kºR¾‡9E?³ëj¿ñ^?w¤Ü>ø­?µÙœ¿ßJ]¿§kŠ?Ð ¤?ä•¿hì?Q䛿)ˆú> ‡?âhB¿VÙ @6æ‹¿W-°¿KLa> À?Xò`>G1y¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Sigmoid/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Sigmoid/model.onnx new file mode 100644 index 000000000..d8d517c45 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Sigmoid/model.onnx @@ -0,0 +1,15 @@ +pytorch0.3:] + +01"Sigmoidtorch-jit-exportZ +0 + + + + +b +1 + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Sigmoid/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Sigmoid/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..12a9d7a16f4bc25dee7e93c8854b82732fa204fa GIT binary patch literal 493 zcmVL1PBEX0ZQNlKWZgEA0@IsvQ%roS8|!YmW#?h%2dp~qU(pgw&)K& zh=cw<7^Q$eDv9PlXC}42@!+Dr+H~8#6+WLoD%{~djOUxb#-)`%(bt5(oF2PAD<<7O zX{&=hScFEtyL2-@J^z0{L1slikl`1;zwidW_7o1lOP4Oc8l~hseZpNo2AyKR#KJ4T zI~YMe&(XTRr8?k0jdMjlc@P@EEO(ec7rh0&;?+LC3woBnCRujAS+$72jxy{&vsCN8 zs-L1i2IgC;=2=WXgCBoC4{xEqbZ;*{nbPRIw8xIVr%XM-t%i0#?Zz9w%3MS}reZa}zg=2C zB0xjGj=gR_yl&^eR+N`L?=l}gA5HGQVS0$aFjjTGa#~A2YxkxEìÙ>9þ?i=ó>Ò7Þ>Ãú?Æ,?g;?¸[?Ø-Ó>T`>ðõÉ>à¹F?ŽÈ?PÄi>SC?4ì…>"?Ã8?ÿ?GCç>â+?‚&;?² +/?² í>$(ï>‚¢È=ð«>CÉ?74?Ž•>Û3­>d ?wÎÑ>](Z?xM ?)6µ>vVD?1Òû>¶Ä¤>.q>©Zá>7õ‚>']?~.Æ>WäG?ç>AÜ7?QÉ>X,>h;?s#9?y³ ?$ˆ¦>3%H?V?h…b?}å?7×?•‰0?{ú:?ýø×>ð +?Ä\ü>׈Ü>#7J=ÀE9?×m´>M?”ë¨>}3?âØ¢>‡´7?»@>¼?î ?4zÅ>#"ƒ>zá>ÜR0?<]I?CëI>ZÅ÷>˲?À¡˜>“µ\?ÑBŠ>G">«b?²ad>KÀ«>ÀKý>º¬7?¨$>?¬ªÏ>–Ù%?¡º=ÅÜ,?’¬ +?„(?õ Œ>5”>?(ƒ?š*?Š#?+Ü?ðÝa?·²(>{?ÍFŸ>¡ÊÈ>q ‘=•½ÿ>ÏË;=¼¦¬>÷?/¯"?#1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/model.onnx new file mode 100644 index 000000000..f85bbd864 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/model.onnx @@ -0,0 +1,14 @@ +pytorch0.3:Z + +01"Softmax* +axis torch-jit-exportZ +0 +  + + +b +1 +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9ff4e66684b30c05549ca11f64f616acbeb42079 GIT binary patch literal 809 zcmWN_eNc;W8~|{1)}+!@Ta;8QU2!?f%jSB1-{+39b>%d7H9ApwyROd59i28TFO~9I zrq&rsiEJHZmFf9?cU^Tgmm97ZmUoVb;zF3W&z~Q@8{fxka{MKp*bs>R({DoL*C%jd ztehTvSO7d*0b}_bLC5`6kk>q!%WHYcwEQ06ltbw(HTttD<_2tB%n@PJUAq327V0<7 zV~0yqVcH~j^oXy99!EF*lrKcV_#X^&R61>AGMTwf(o<=RRA3@uR<=b>cb zAdyy|#ACKIr2at+q%=3fXqXWDeQlJ4PtfREEuPP~48?~|{r^_-vvNL_i(W82R}6U3 zGaHL03^Ydii*eiUKD=uR!oyM{xb*yj@NIgU*5(B(6=gUl%GbKWbs1#6)zQ5X?Id}{ zZX8d~p-zJg3V-aPh7Ts(%=d($foGtrX@RHh@lfuU1iDC$=CtyxYr7M0jI`67#wffN zd>hkmNnu0A7#X8yp;MlSF&#^ZCM$^jGZ71}-%4o5U^_FqqlB^4ZNU2<#MFMuffdX? zniPBpO#?jCr@SGT^v^-q!P3s*sW{7CK-Zi|gx{nH)P1pdT_h*FhbD-|5=d0z--%f0 z4I>W*W9A+-L$<58wNYIQDP6}gHV$#Czz5GMt8s9P3&U@CPZn-cfPA(9RbPrR=(ZY? zl@_okPi2eR=D|6c65Mr9$j6pW`o}8?yG>Kz-7&zR}qfbf&w!J7D;lUA! bA4-CDV8xv{<|6+XE^Q0LOm_||OVZ#Uq&tVm literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softmax/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..138808d7b2ba3bacc87aef7e5bbeb8257e8c35b0 GIT binary patch literal 809 zcmV~$4NTN^00v;l>-f}zQwfg_#9}wOfE!&F_kZ6X;Mg_LMgq5m9&wd$1I2a4w0Vbt zad+X$g%N}wpc{28m>!3f!b~=XAdHn9EwV%x!8+W`oPr<4^*rH`;p<{T3r@@1%EzSj zEm`!9f5g|#kr;mWX%70080}MIsD1{KW<5GTDTLLn!GP(CXt2w~NQRK)J{NTA$C7ny z1!r2H74H4NVTWPikW^ki5y743!x+0NL(=yvF*93FS;zsTeSa23X}eh$J0BGdX8C<(Gf|7_m7@by#Hw%`SFRNt2a2WH`U*wEM!npZE zc>TALYk!H`0;{=VGN9toDw^(UMQ-3Q^31~=T9ZSMeUkf+>7=sUXlCyoH0-&bDuTXZ zDUkF;iraS+CsjFIF|S8Yp^JYjA5&Rgh<9?9U|bDUuC+>G*V`x?yn*+gDJ9NTBBtjy zHdeGV@zf$(F2=+2Rs)9|CXs(HK?G%83`y?hALdC^`9G8NZYLH@6Ihepiiro4Qb^E3 z+pToYUpdPTZ5~_~o}%icM?6~EOMS)HP&M6!O}&V2*(>nu96UkOs~w@f8D8BzA;F@*Ulks} zu_ezx>>-=K7QT_X_eNnpLb<=b0V%IOS-KTJ@R=Pyk|WbUjW8I$IngRV0Fs}+4~vRE zWGRZi_UyL4m=aRIZ_}i|R(M)K9c3UsQTp4zI{$&c1e&qGx>*4{wSKQZ8Mep2DVLeQ zuMPyh=LE>Uz$d4_!GudclY%S1LfoRh$m^RHe$Em@qtlj<)&h`^~m*8=3eNhPSh6arws;ByzhyfcSB+e+a-x{F~y1M0NC zc*svb)J%~-sNC(pE<02|NswYc;FMxLtSt*b33U>{_uaO;$HI_5Lv8H7*=`0u@}LX9 zAQBfqlXfUSC7*4-@*r40cnL^9%`$?%hRB(}NB_mX90$k0krU}YQ~!9s1(~crCCi|{ z7DN=kPKWS5y(1UEAAY;PmN(8mcG*h57%4ox?dB@KcDjha0d`nEhQ7tU2i9Z1a?;kl zK(Pxy{LUr6+wGA*p(Y!D9PidRJ?H=PkgT4hnVFo9^Eb@xKf{sW(3X#k{ zE5z`H5h2V*olNb(v1W^c^|nyD{QU4l-b@sx1M9a z9au%b+|YkM=GPHESrElMI6_80!(ZvW)1((aqg{hOWYt1H=T;Iw9n{Z1(pMfpA(&-7 zcGuOvmC$fLBt22T>tidvGqtQg512;31t#jeWS)ROwQbtJ<{%J1q~V~yUe(aQ6W_r< zq*Z;tfix4t$&VsGY%r(3*lA|I;(DUKjG3Lk2tbHE1b->M6c-slOWCtO zsU&&6glM!sR`9v*m#gSb1pY)B$){J!5m=xClPo;)1N0_7zb>qgWhR8j#s z5pFRx=ECFzOz_S^z=3HgG#=-&0d2}a9WTRixWyuvkkIGj?BeY0A^X_u)Y<(zV`}oy zqp9R_l^TJ+#G%dX$2+k$=oY$}@!-0YGwO`{x+jFR#Jov%WX3Cwm!1kHMqB#euFV>)b^Or2&rDWlcdPXH0r0B$E zbR}vDtXM zQ;W8wc&RKZ6K}1FsI$x?>v@h)M$}5hp^h9_(&AufEEk)upt3BT8y$6`HKY{QiW~f| zGYu2vxv1{bax~dQkHho$S8wCxjs#TM4>PQ;QAEan%T4VHo~Vn5p)f`2m~G|Rlr(hp z3GVT1!o409k9?KKbCy!5W9}i#OV8%f`*;-b9kPT z)(ihcJ&qn5#_WqxJP0<^Va?xMf3z0~cbjm*PvVvDAM!RBooeee}u4?+ZdfiTj-7>+l5G2VA=U_U~&qHhcq{%z|;^q2lOwMmW z-`HC$ZLm@^QGo3$)x0WOOJ#8oZ)zU%e9$l+Cb;pV$YAlF(k_m7`LfY_Qs`U!r3)QC zl0hiwzU($njnsgV-FT&Yf)0-WdQM%3+8&4QJ(1j+?=D$qG8uZPO1NZ~h*zJ=IPOx9 PGPkE9W5u}W!4&@o4@6I# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/model.onnx new file mode 100644 index 000000000..189f8c4e0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/model.onnx @@ -0,0 +1,13 @@ +pytorch0.3:N + +01"Softplustorch-jit-exportZ +0 +  + + +b +1 +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..acee251ab0bb0f7bfcced2da97791928495ac788 GIT binary patch literal 809 zcmV~$4N%K{8~|{!Y)_;lJWZEqjx3a#N3`E}8eO@Pn3vt+cK5i=>C$e=NtCtmJZU{O zkJ=SAhmfmqyBnX6AV?4%8nE%)RR4W5^K&)W zKU9Ds!349vwzHVMMtEWxWWSjeV6|kBrsx3jds^XVLmqwzPNVUJQ8WeT!&rPWD67-( zYurB4<+qbO#|kgLWk7NDU!akcQ|0_gpmlfR54I#K{reQI$gUu%rX@KuWJ_J4)IISL_KVsatBPD`8Qw)D z>gy1)_80Qok4Z-drb|of5-D=+GMPBZEi3%_CrTvAh~7dKroU>*RRc?ZL{Cu?v@C8v1OPfqB1!9zMQz`mB4?nAM>~Z z0&P9HUgxkwo)vgzl^E_w8sOpHD$-qfmhxp*igdg)if|eazOMGB>``1HrE5Lj-EDv$ zhdo%DSx-G-xr_!kfx0#U9%@fQV|G6?O2g22vx}bB@MJ>=n?WAo1uXgcFiN9S_D7!32AIl zPjfbzVcAik({p~2v$jOfTHH=_Zgf+_q3I+x{tBi_9yyHltXrQ-`aS71xzGmY(*e*F fV1Ue>vFwJ*2A>R>z#H?Tzjz7j+`vg&jyK?U+q{YJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softplus/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..37dca8eda7ebc970c88628238b059f0b946ccd13 GIT binary patch literal 809 zcmWO42~QIS00vO)Rz#c>k|Njeh+uUpcvZameMJp;V25*}a#XW9K&cbdXatWc8zQGD z)}qKDC>A9al&dw+Vj$5eR-!J;AdnP7HkjoSkpkI#zu`GLIf`ATZYy%|aN5JU77=4t zyKx}zB#UAXvQ>MZI=^_X&}ixWr5Ver#WZgDoxzXXs9O6JRj%W($cmXCn8TVkp6obZ zj_Un~P?>39O@AJh5BhjyS|Lmcrx~_a$e6P&7>yJ$sYHY4)6>Wb0pE)fu)eF15_Jem zYUi-is|_+^3off`@%ELPcbAu-UT_U5-C}wD_8!;_U&sR*{n`DWfNiCZ5h-cmwq`AS z3)fO%l`><=E3`*1mv0SOiat>rav%EA#m53aWsp4TWe%rLo54rgZ!nNJ427M1eiat0Fd7))v6#-@ zar|&=KJVD=82oJ=SN{;nDZS-X*`1iY&yRY2GBsk6T(4(PIL`nbYzf=;{Kv4LBY~!Z#FFOmw!zE13G0hPUOz#w@$q*(DzXI#)g7K zGZ&7vV8X?UtZ+Lx+=l_;Y-hxAmzLHm@G|@3hAlKfiVVklZYSnDUT2fh8W5o)W32uDh!B3l=X}Piq z)&U;|XZW+KuSXW@Ig7&^=J9HgmW{Sj>ZAIhU3?N7KB*ahz=mT(HyIi$;Z#93`|VY5 zT&6-JQ)!5M!JwQ;6o-Aja;gLAJJM+O?S#+md+?W5GW4uo_S2C(*}IIL{LU<-u6ZSf zj{k#&2Ojd5uzr{-BIuRUgle-H<*gOm{iQAEW~J}#NnKuS6q^qSE41t z#afn_Q<|#9A;9Rx!objAzkrd2OM#2gkc-hsh|w6RDJ4ZqfQvJ!C_gbJIkC7zf^h*O z6Bi%QOfE)aAx0A=W|zz|Apx+Jx>=bex~UZf`9&pB;vidvxCA&Dg?PA_IGBN$35Z#f NfD$IyB%GK8*Z^k^AzuIh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softsign/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softsign/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..281cc6705a2e96ab5e273d902d91f9676496f836 GIT binary patch literal 130 zcmV-|0Db=m0|){L1rPyBcKQzO& kz96MpJY@x!KLie*ye^djK${}QKNax@KiZ8lKSzYPKdk9EPXGV_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softsign/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softsign/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c47d24be4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Softsign/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +Jxe–=>þG?¬*¿I= 2u¾$Ÿ>ì‚î¾ce,>Ìïý¾H?u‚R»àN?J? ¿Ü…’¾u4á>ã%¿ðt¨?$†¾¯ÊV<” +?!›¼ Ì+?½†?<•±>:`Ò>ã%? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Tanh/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Tanh/model.onnx new file mode 100644 index 000000000..fe0b3ad91 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Tanh/model.onnx @@ -0,0 +1,15 @@ +pytorch0.3:Z + +01"Tanhtorch-jit-exportZ +0 + + + + +b +1 + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Tanh/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_Tanh/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c586ea2b5cf860252cf1fd1e7895ed0185a31b0b GIT binary patch literal 493 zcmVL1PBEX0ZQNl623maLhZ9YO#Dnfe>{pmX7?aIV|qeAdcU>5=9U4! zihE+c9$+56H&?vAR3@iBCm2&c^gb~@;!N(pUjJY}umIdXU|Q)umvKWp>f)roK=7_V z{^0OE)UUTcqae(`qCbzm%ku8Mf*u6F4D_Zw=xj5;Inx2ZZV1D^VNhwl|5Hg1Rz3LD>Vo@#^iqGx*Ry(s1j)kK}?s**t4M!Y0PP(hib8Ch}K5 z?D4oiy|q`qmoa|6U@|tn%e!m8^&Wja;1p@VN@;37XX|o5(ibPc<28A{usIJ!FO~&XTg9!K!&!yG0Y7= zwX2xFe#P-V-)#}SBPy1@#d_4fIA)7I-r4g#5p{-^pr**r79jgRuat_ZQdb-;AL=sbr%wsu&*YJ};(kL1PBEX0ZQNlci17nSKh2XW=cvvWe!U}P^TY0LlGoDc)Mf2$r$gx zg+OAx#@(4ULGy58-*-3ar(o|UFOble)h7I*Ky<{i4e)LUh~)JPk>wJ~`= zhcf&;hrtoQ*kkKH>fq2mPX8`HGY{~-U3O)^Mp*N`mU%}%E{IOQEfRGjZ& zV%Su_ctznpJYEsKi2#zmE)mJTHZO}khP3iMb55K-oVqnXnr3dlI789BKTh&KxRqSL zj3fuYlws&T`MnyyP3Ymi@Jy<{b`?IqXUa%Fe^D^MXajSd3yr>xPwFQ{_A5@qhiv!aFMs_WJF4nTdoYGWL1|V3#$S5QLHe5F=vqU$w rq9DJhBuW}&z8IGX2T+oWiGvAL1PBBW0ZM=aRzRn|)=?-wyCea>uQr=KIpxnkh~c3=8bks>0Ju@V z@hKv}$5Jf6)0@sdnrNCoH(B4lGK?+0J1PFYAU*v*!vmzhJ0p8Pqaw(^WIEhGsXDg4 zkq*^9Do^P@I0wogD@4pbmYvv4#JJT2JgZ@ zo&{sStCt-<#@N%pPb{fFQUgxEefbNer zINKFJdIB&$48(xG;6u#2PA?9>(8bn2eEeWO{vnyan4%3ouf+tucFsG$Y!RS8+nz?h z2jOSFfqE#vgy@|=4^a=kFx!JZWg99#h#ufR{*mpxskgGfuWP5jTE-qfAN%LOO_x1C zh$KlpPOJGpr=>_gN$)^E5h_AJCPXJcJ>0v#!W8PgYPWs8>noo<)H|iW%Ji(ic-RX+ r`tL?RkSnV{@3SI5Ykl!QEq@cg6r-R%))d`;qivQx6nVSJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ZeroPad2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_ZeroPad2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0970c174c6b082e3d97308fb366fa918879a341d GIT binary patch literal 1861 zcmd;J;$Y_B=3p0K^xDD4KqC<5uzcUOKn?rdDvbNro6WXGw#M@5dHars3+<#_m>d{( z1nx(c`>3gO;CPVE{>!t^+0DwBWsfXp9(jMCQIGCEYt4WA6m0*Z$RVp6s_eteOZHnU zSKBXEIJEzkR$6V_H<9nEotFPgdkgkcC~^}es`m$)b?rYodB6Rn3_b^B|If64 zvQPQs{C&*^qWeppoY{*kHyqe}hkEz1y+33>k2QJ!>glp}$bLF@GPrZ{ld{}_BDSJ?EWdv+&^OxFN)vSA7$BBcFuZ#j^G0O+w!m2+a_Y;P{S`O3?SH*@v!9^78YNubZ&tF;uKj4QTQ9s{Wbp!&Jbg`KqWx86 V-TjYFbnIK4I}Jq+IZkNJ1_1M^ycPfe literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_dim3/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_dim3/model.onnx new file mode 100644 index 000000000..4033cba33 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_dim3/model.onnx @@ -0,0 +1,17 @@ +pytorch0.3:m + +01" +LogSoftmax* +axis torch-jit-exportZ +0 + + + + +b +1 + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_dim3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_dim3/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d47c76328d21f8f62119180685bbb87dfeb8b96d GIT binary patch literal 493 zcmVL1PBEX0ZQNlFHMy{N&7cHNpVy@tHuPrL4K*fc%=P4`=(Gn{f1*c zSc^QrRSLJhe+;NU0Msi$`l zmfYCCjuM(b&5G5&OZwS9$Srxjm_ z=-1#r$Ks5>NH5PmTji-gvX;xfVtR(Z_-Vtxhv2He0I8ln+?nG(tMI))sO?<8U=v3_ ze`RJrZTXzP6v!bxR430jms@u9=N zzyuLLgFL%G@OEpzQi^>(%dPM~vQh)TOv0i+*=@JKJe^9v>%FADeTxCVm~i?#gF6O5 z;ksA9Qb994cO}@q9!?=Y3cC|M0=}WYclA)dPtBY@46CEQ^WluX6)MX=S~S%Q3D`9 ze|jFjYtv=Ed*495kSW»¿„⸿ˆÌÀýŠÀZ1ß¿cW¾¾ ’[À®×_À—‡'ÀÛ€¿Jš¿¤ñ¿‹0!ÀvÀM;Ài_ÀÆ¿#¬ Àÿv¯¿S#¦¿¿­¢¿OÒ¿PÀÞ¡ÀxŸAÀüôè¿îí ¿TÞ/Àtäõ¿„œÀ…4Æ¿÷5 ¿sÀ\=@ÀFHeÀŽYÀT|ß¿@οÓk¿ó-Àžå‰¿yt¿]4EÀ aè¿c¢7¿ŒÀ +Æ¿­¦ƒÀ°Ùê¿Cjˆ¿‘‚«¿–ûÁ¿Êó¿ëmÀÁÀ^i™¿­0eÀLzÀ-ðG¿öàÀYå¾6ÃIÀ˜³ À¤Àþ-;ÀæMÀÜ|¤¾×¹PÀþÀbAû¿ë!i¿,šÀ¿{3À³Vß¿Y„é¿8ÑÀøÀ/ ¿ƒ ÀF(WÀÝg½¾á’Ï¿naÀaWCÀ8NÀv—È¿@ض¿‰Y’¿NŒÀL§ç¿ë+À°Ãe¿˜ù¢¿@!À^± Àb Àë]Ä¿5BÀL E¿¯äZÀÅ$µ¾10À³aÀ>‡5ÀeY"Àì$q¿ØøDÀ&« Àë3h¿› ÀR„œ¿÷ ÀkbX¿¥Œ&À \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/model.onnx new file mode 100644 index 000000000..9f7d14914 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/model.onnx @@ -0,0 +1,13 @@ +pytorch0.3:h +( +01" +LogSoftmax* +axisÿÿÿÿÿÿÿÿÿ torch-jit-exportZ +0 +  + +€b +1 +  + +€B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2ef8dd569fafadb1156ade6b8ac14c8cd3fd347a GIT binary patch literal 1034 zcmV~$eLU26902feYgo+FdQj@xCV8lpV~o4+=cMuwaeB6IXy31oEPBh09 z?KXGaJPbpApN|UpqiL#n$f8=FUQ((>(rfMg*4Ncf(J|5SP0`<`lgNIKy$1J>XlN?p z0t$MXa2@{$RxK(qZkyqr7H|0uk~AFzX?Y)dg~wxUwH+Mt z&qKk(eQ=i7jZbEKnKUk*8QeQS7q>`7led-FU(tc(KNN~SyjVy{FQ=iqPYV$-d@L?r zK$uj(m{vw(VVg;QLQ2YG$G}y2jyd85w~5CyY~3f7^dPtf#ew^n*Agetb*N-Zck;QJ zD=K))4-%yn7t@oGc(|6Ii(S4#^sA|)iRJ>dQTH=dXggHj&jC?=CU_{~XtBbW>J1C& zK*3Lb&aJKu;UD_1a&d3-i^ zhvU?zb3oFnCBv^LV8r|!nd#Wj%lVyb!N1dBsq087{@GAfcM>Z1B71h)gqnDdSj>%V zn);v=lJ#2gvTT4URkO4}J0YvSfjmU{tkzpVYrdM~p7(}Pk!X&3 z>YXUqWq#|cH(Oz}w+F-31Y>ops3Y7HJMT$Y_9hkTy_R9cL?tbnvTmtXMbpBzI;KhY zN9A-W(|P_MwijH4(Ou4vp_Y;TqjnnC1cT{2KFL2FMoX_1WIj+t;*nN*5wjh3i_56t d>TO&p>qcv{J4~ZlhIO?GR}7+k;LIP1^goR40qp<) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_log_softmax_lastdim/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..acff15a72dbd1c71015fac9a44963ebe936a7fa1 GIT binary patch literal 1034 zcmWO4i&GN>0Dy6oyTFSBYImsgl7mY;(>p043kr&gD78+~14KbMu+$^VL&Vo`D)L%9 z#ul$V8OVT*;TU5B{6JthL{qs)%>$#w>rlx@-hq<;!uR{!mbeKQdo7LDOx0?+(L-0 zka~L?7lRcH`)ScMUt-{29YqJtD16(P+o7Xo*L7Zc9M8J&EC#JcTB16UrfD$l9%Mn( zOQ7o|?tf8$K3>DN#s&l%t5~;a7_Y%rM%%S)d{2tnUyaApMv~n`tQ6GavhxO~V#SD? zTCkKg)8aSGD=ua(ysmiBBAq86=OBp6#WCriH>VTN53b|otK;wTHo~?@aZI0MVtolt zA2Ahj5qk?O=@D6ZzV|4C;&PI_OZaHkpUj`DIk0aSL4P0rB#SZ6Mw1iT!JJny5Bz0# z9`3_$rU36NH>h{%W+KeOcb&B)wARwBH*hFAhxAo{aKV;D-2638$+~zLq@?pvJlg-d zSyG)tP*gs$Yf47@JMosu37x!3%E8l=w^|5Zkh9cxnzd^V(bsGvIVF!(iDDv~^H^ah zCr^Et-Afg$_Lp#PtBU>BE}X%o{E%9S>UK7JH)k=wxsDW(f;yv})K8TB{;-b1ghs~7 zWQgt-qtPE{*<3IB&+8a)H{z2mKbxtqo?zGite4`X}zs@=5n>VwqLV)dN*% zjx^D@-$vW^F5)x_0*qP$hYWbDsr?EV<;9s4{7DYFo1;}yO zO?)Uh&NuH2QggP07%wwH_p?y`h4J>C5;XY>=N$a3L z^a`Y9vC`SZnPv6(>YG^7-p%0i%bW;4$=1>yVrJ{ub*GNkB)?FhQ}Jl5l6IMh`*Iuq E19H4;82|tP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/model.onnx new file mode 100644 index 000000000..a34503c74 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/model.onnx @@ -0,0 +1,16 @@ +pytorch0.3:j + +01"Softmax* +axis torch-jit-exportZ +0 + + + + +b +1 + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bb547fc40 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/test_data_set_0/input_0.pb @@ -0,0 +1,4 @@ +Jà/å˜?¸ ‹¾ñu>:*$@σ?›ôõ?`V¿~^€¿ÎÚ×?¹'¿¯0¿»ßÇ>d@}¿z¯ô½­Z\¾,©Y?N~Ø¿d Œ?áϾ¿˜½frÞ?ÚÒ/¿f{¿Ë Àm3¿hïÒ?œ¬T¿Å“g¿lp½Eó¿Ir;¾êM¸?f´l?Ýž«>:u$@$+¿"ªê¿¼T‡¿´Ó¿Þª)?”ÛH=o=x>´ŒJ¿}*€?‡}Á¿ÊĆ>ÌëV¿ +­¿ÅÎ^½ìœ‹¿jq='À‰п6š¿XQ>»_z¥¾2æ¹?º{¿’„Ë¿ô?É&½ta?F‹¿öï¾¥%”¿XH¢>²¡?^â¶¾¿¡;¾ +t9¾¢W?·Ô¨¾®N¾!/?øæE¾îK¿5ƒj> ¡À¿ÿä0ÀÁÕ¿®3ß¿™Ã?:Í ¿Dù?3‡¾5ŒK?»õ¿¨?ÁK`¿”Í ¿tså¼¢R/>ÚÀ‘¿uË>«éG?k8k>BO +¿V'ü>J½þ¿¤ßœ=H0¶¿húƒ?Õäf?gíC?°J¿„M’?q¬”¾/ûÚ¼JL—¿'½m¿§wW?éÓ?>n4¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_functional_dim3/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9375777a99556b66f992fbe614d92d53b70556e6 GIT binary patch literal 493 zcmVL1PBEX0ZQNl`Jx~`za|ttwlsG=?jasOZ~g;5yu#5v7tBRJmwhNb z@UfgcL~(>YJty5gIKK%$?LB)w9?ph65GpS{JbEiX8S#TXz0DLoA+I|=%XwyGn&U%7C>#DaQal-i^&ZjIB03M&On` z0?n^I0*w+r%f-|^^#UC~6?a@c*k~0!xmTG!@I){^y7AmT(>HfLr~kt}&4xrhJ)TxR zm^cbQzPs8zuCXpY?hr3N4DPQ!z2X)=kA5pY=swmyMKdx!@A1Mtq3VY|!2&=%T&Ora zW~d51(hLAScO+6jp={DUa-VBH%X-2+^EZq>N~f8bBUZj%nQFh znYG-ObGkK;wzF#Ch3AYkGQFqloT$;N+3y70Gdc1f& j_Bq!+T~y6Iv7!Y&!x|7hjHfw0DN2Yw2fG+Q2Rvv!YHrH! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/model.onnx new file mode 100644 index 000000000..7b38e74a0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/model.onnx @@ -0,0 +1,12 @@ +pytorch0.3:\ + +01"Softmax* +axis torch-jit-exportZ +0 +  + +€b +1 +  + +€B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7b12bdd44f66cb6bb80195b52f7b605852a5481e GIT binary patch literal 1034 zcmV~$3pCYt902g^Rph!f6S^L)Ls6Q$!ZrE-zISIE>w#j_omA^z~G?GGpod`Z~) zd@>4iP!haMFW1JS=KCTN+MPjIRyz2{Sq`K)Oc0AhA7De`6vO`e33Jf$J&aaJN$$l~ zjNkkpk#Lt~>ue=ut8WsNA5Uhsbb0{q>sIiO%D{`K&9K8$B=1tmpjE#%lFGgRkd5d$ zW^gFa`S!GiOkc4g3!Q0zqVC67U85%06`4ivs|V0-AALd0k#St&6;LCad1|VW0>!>A z$WN8SD>Fy1Q>e);e0%8Pxjq>4l}^__rd&^NnVnWQJngEY`%hhAQutD^x6&gP%Nd|N z8IE;^FQM7L823G>rxn&pIKxW9yXvn&F=CGQ^BZX8X+2o>nbPXXS8v?61;M1pi}0BJxnZ)$Jyb`oDRgjv0*IV z6_B^GTez?iii0y5kR}{}u*3okENo@k%x;hk1B#0sfS(tv(x{O^`s9KO!x@%95RV6o z|LV|oYEK76ANlCl<%Usp*K0KTdn1s~t>OxAn3lPwV(;!G^xm!ku`9m#D9{00-vz)Y4eMm> zi&<)@ahFDw*uuDy2c%9U<0?8J;vP%T%Jm~$wKTjrm4q~Ao1m$*lZIMskR)9W9OyU0 z>L2&uM;We3_lz=YVaZO(W;yU`NI8 z=x(_cY_oI8nxvN*8#jf~)Od2>w`3-yj7KIv{)z4p=b}r_4aiSD1<8DDi8ee0ZI=^a hOHVWH@6tuL&kC?DPYCI4AyA)9;X|ivjJtA`{txTY|49G< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-converted/test_softmax_lastdim/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f956baa2735a07f9041e9c390c59af41bddf1c2a GIT binary patch literal 1034 zcmV~$3pCXS90zchPWJhT)y0`21JTEs;;B(7liC>7{W6Y$>Ki!z ze1Q*NbVhpYBU;zpg^~H+@ZLvu*l420Z`x;Zdd?a(6%{Z^lcT+Jt&sX%FRaTmN%q-4 zxayUS=OhE^tru2?OK>UDnjK27@rey>wA;%ZqrpaQDIH;Oc+w9Sl?q#&Dv?q3H5?rZ z5Nel=GZvRwarG?aw(1Kj&7sgd7>%vxU4_ADPm);$W8$bQvgY>i+yO0wcvtd{E+ZbE zUr#%~+KvG2HZB&6*++B`^U5J^96wHO`u2Qcdf9F3@_qVnrw3h6m-E84B}|JjN6Sv$MR5Q*1~%cfb4=2taC5qhh{bKTa4hQtS9u2RR`~NuO$0K zUqm&o5mY(-)EYj(kwI@`TH=dVV-au5S3z&Yo^Fad@wa{v7ULHv#`PwzTzHpfdapuW z|$zN4Zy6A_H1 zcJ@}((nOvdCXwy9WORyJXS5;Pu?zm{K@f*uN5Hu}7KLtNbQj{5?>UGb*W)kaApZTe zJs%yh6T-A_fbQh;v#JIp*BG%=-w-dAP9o&h5jeE%N8p2Qc$UY|8TUlQTaF?zX^e)X zHi%5qg^Py+7AbLo(E~e<{aEBPlr#>dY*p4 z6qvLZ>bg_(v-doC%xbf2S_cgxD^xi9aE7K9n+^COwKf4|qD{PcViW6UmB3cn$@K=N zLcoC@Y}6Ph#f*xKmBGRf8DVf&XmQpfeRh>gG0<#>yE@JIaVZdj!#x2FWu7Cb-+GH*>$O1b{XP^1h>$R$OV7%bm@Y5Hmrt{picLA` z!7SQ^dPod+@fybqxZM!W-QS<4m)}U()p-=-%RfP?Wy1RZ4Pfzb0}Q?H;tr=EJhz9o x4JLAgix;2TFGszNGuKHXSO__U)KJF72qk^$;=!SPpRk!m6T92=lUsHM{s$3Js9FF3 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_broadcast/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_broadcast/model.onnx new file mode 100644 index 000000000..16c52f04d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_broadcast/model.onnx @@ -0,0 +1,18 @@ +pytorch0.3:| +- +0 +12"Add* + broadcast * +axis torch-jit-exportZ +0 +   + +Z +1 + +  +b +2 +   + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_broadcast/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_broadcast/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a0d2d268643a63c236f0632e6bacfb8e4989345a GIT binary patch literal 56 zcmd;J;$Rlw_A*HL+RnrP1Tr832>t`X{dxw5ywq|HEggl-yb?2$_!5QWl*E!m&6d?=OD)&X(ox9FD={;PFHuNNNi0d! ItjWj(0Lu0eZ~y=R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_broadcast/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_add_size1_broadcast/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..fad8c21c3b3fbd7e65530445b97d550672a5090c GIT binary patch literal 151 zcmd;J7Gf``EXglQ&X8g@&@;AbVC2%}Vl?1lG!$YqQet*YNzoGE;!G;aPfSTpEH05? zT)@br#m&W%Sdm#Q!2sk434nF$W@VP>rdAZ>7nMW_0}T-3rdAZ>7nMW_0}T-3BJ+w2Xy}{_5@JvQVn!ez E0DBY+qW}N^ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addconstant/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addconstant/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..fddcecc6d66f345bda5a15e8f08f0610e575bfe6 GIT binary patch literal 158 zcmd;J7Gf``EXglQ&X8g@&@;AbXXH{BVl-6ZaL&&wE=kNQ(URa|ElbQPP1WKN;P&ER z0D}+q3m93r6u1}-xEKwE7>$&e9aB=Y1h_bpit-avk`s$dBp4SkG6@NQP1eoIEYVG^ lD9A4=i4q3t5#r7o9x|VS;e&l@afyC%er_%R#d`^# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..30e98f8a1963fffd34574a03dc827f3fcadf43a5 GIT binary patch literal 245 zcmd;J7Gf``EXglQ&X8g@&@;BW$H?W%#c06AXvoEAB*bW}#NwWso2$jo#hRE?kdY|L zz|dg7fRRy)kBcQKwFJQz;Nnaw%1=y5PAo2wU|hh+#AOUK##o5agh*qA1i((w&B`p% zO|2-%FDi)=1{x#8$Hl|JD8#|V#K8o_%pgHSBtd4NAWIZK$i-Y-96*&UAb}*HDib7C LAgwG;Oag2Gd&DV6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..46defa5ece68aeab5e0a30102dc8c5da9cffb680 GIT binary patch literal 32 ocmd;J;$RkF^pf!TY-78R{hZy&%EtW*Kg8O-+bgqw(HjPP0ICiR6951J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_1.pb new file mode 100644 index 000000000..4058421ad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +J0‚l>„m1?󡈾ük @\-Ñ=뜄¾6ž¾uo¯¿&¾Ü„b?Ü«…¾KD? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_2.pb new file mode 100644 index 000000000..a26128990 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +J°A!¼sB¹¿ùÊP¾M®_? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/output_0.pb new file mode 100644 index 000000000..54189fa20 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_addmm/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +J +š¸>qXÀA03>f±¡¿O±+¾`Þ{=~$ɾJƒ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/model.onnx new file mode 100644 index 000000000..fab370f26 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/model.onnx @@ -0,0 +1,25 @@ +pytorch0.3:‘ + +0 +12"Add + +0 +23"Mul + +34"Tanh + +45"Sigmoid + +56"Negtorch-jit-exportZ +0 + + +Z +1 + + +b +6 + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/input_0.pb new file mode 100644 index 000000000..1f5217d0c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +JÍÌÌ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1a2665cf3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +J333? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/output_0.pb new file mode 100644 index 000000000..9bd406820 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_basic/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J%¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_chunk/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_chunk/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..799c69993ea50d40a1e41882afa0428e99f4e4b3 GIT binary patch literal 138 zcmd;J7Gf``EXglQ&X8g@&@;9w;nL+|G!SAm6k;?|Vht|H$t=<0=3+^#$Sjs%Sis1n z#mB{33=(x;ONIf^0s7Z81Odp@_cx OYYRYJEzv#eoP@r3&>1!W literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_clip/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_clip/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..59a58ab66c7d8b6d9481b6f3416efa504e2d5f3f GIT binary patch literal 56 zcmd;J=3o(E^fK`IY-78R{hS>G1H=A>A7a5YkZnJqDF?*1|GcncABc|8y=eP-PRl+3 Ds)P}V literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/model.onnx new file mode 100644 index 000000000..a482e153b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/model.onnx @@ -0,0 +1,17 @@ +pytorch0.3:q + +0 +12"Concat* +axis torch-jit-exportZ +0 +  + +Z +1 +  + +b +2 +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..46defa5ece68aeab5e0a30102dc8c5da9cffb680 GIT binary patch literal 32 ocmd;J;$RkF^pf!TY-78R{hZy&%EtW*Kg8O-+bgqw(HjPP0ICiR6951J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/input_1.pb new file mode 100644 index 000000000..ebccd1a15 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +J‚l>„m1?󡈾ük @\-Ñ=뜄¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_concat2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..aa26c9cb4761ecd3ce8883ce4f4a08496f60c428 GIT binary patch literal 56 zcmV-80LT9b0tf~W0ZK4T^E^Gi2hKjpd4a!>f^0s7Z81Odp@_br@LfLcy&S)y>;OOf OYYRYJEzv#eoP@q|qZu~< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_conv/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_conv/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4f892503cfcbbbc9c23abcc63161d5271f5b01ea GIT binary patch literal 7746 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_conv/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_conv/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2ea8bc7bb5e203fcaed9c8df35bb29fc8952995c GIT binary patch literal 2560015 zcmeIwArSx|5CB1NFJBM>O#wWq2!bFgF)%Bxz|BUBj1fKS+V|8__LK(ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?[I?ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ŽR=¿ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>ÆÊ¡>{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?{Ý7?ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>ÁÊì>Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<Ü©ü<†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>†Î¸>€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?€‘?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?°åá?ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿ŒjG¿Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼Ø¿þ¼šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿šT¿%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8>%.8> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_convtranspose/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_convtranspose/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a8c08dd8d93425b3d074d2bc0acb19fc6901ea10 GIT binary patch literal 617 zcmd;J7Gf``EXglQ&X8g@&@;BW#KP6j$i-;D#b_wRXr#pJoS#<~Qk0liT##R!swKq5 znUa~4Sdy8aSM0#(z_@^sU5kf{HN7amv_JyLW6~1k;>k`e%1h0OFV09TNOfR#UeKDhQSOJ;9@T>DauSqEr#kA5&%0;H!HJ5 zH?^W5zo<)RfLQyv0ZtehxWTYXM=3)vTpU-=Ioug_rqrGz1K6P?b=>Uu`Qp*YG-ur?_Le( zWLuS&JhmMfoVJpG&Fntu-Le(F&Te;)f30oOvZb~zvYdPQ-s$cOtWevxyz1-TPQCwo zpLOlDJ;GXId*evL-YPk>9;H?CurrwmmQ4Y&Y@x#l5m65BAR7@@(&h$!Ygto4xGH`|vGZ@jPQ+Uvbh z(!iJ(65|r#U=$MIV&Y%|VrC#_0b*8=q#=?dNCJ+NfRaW?k}#b-Kt=pcOag2G1Buh2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_convtranspose/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_convtranspose/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c72b83ce6ad963e05756830d3024017ec983e5a GIT binary patch literal 493 dcmd;J;$Y@r;b0YD^m@R|z|deniid9)004*>TJ-<` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_convtranspose/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_convtranspose/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3ec8ce6874d476e6b1231b34f735aa1ffe5e38d2 GIT binary patch literal 4333 zcmd;J;$Y_B;ouiw^m?FZZWF$*sA-d3iSofcq_7!)Kq~6VUZXiz_i9{mvn7QM(wptS zZC_!p>b`$7UfGhu2I(cmoyh(I=_SRT$o>N9CB>b{{sQS8bu)441Qb@3fD1oL_tZ40 z*oONX*^$Bq+4=T^p`FSLW?LyWeLGUvAiXyl`fbHDuGnRqv9KeB4bn@BJCXeb(o2dv zk^KeIONu*@{RPrH>Sp572`H>60jrqZ?3D7V?56MjwU-n&$j%SpyKJMKe(hySJh_(? zHb`$uWrJ;^rKcU=wD!HEut9oBaVN6BKzd1WC$hgldP#97vcEujN8L;ONIf^0s7Z81Odp@_cx OYYRYJEzv#eoP@r3&>1!W literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_exp/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_exp/test_data_set_0/output_0.pb new file mode 100644 index 000000000..16f141738 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_exp/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +J0 †?¶i¿?ø1º>zúž?1È +?¹ÌÓ?²A¡?lûÿ?& +D?ìR A¹Ã?´•E? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/model.onnx new file mode 100644 index 000000000..2a12bb98d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/model.onnx @@ -0,0 +1,14 @@ +pytorch0.3:b + +01"Flatten* +axis torch-jit-exportZ +0 + + + + +b +1 +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/test_data_set_0/input_0.pb new file mode 100644 index 000000000..64d210dd7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +J`´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c96305a02 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_flatten/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J`´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_index/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_index/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3105314fad7acbb7a1f7464a5babd9e3f62e8bc9 GIT binary patch literal 165 zcmd;J7Gf``EXglQ&X8g@&@;B`W8^a9Vl)t9G*n^@&dE$p)#B!2NvudMc3@b*$PVJ9 z=A{%nFoHO|Tx`W9iA5z4IW8G4MnfS+BPI6W!qU{#DpZ|90$@vYvocF`Q!5Jci%Oz| lLH6)*@o+E-ad0tlFoJLrKNq8s5EmB*P>=;A;KU@r1_0EvAf*5R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_index/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_index/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf5caf95dc638660f19ab72db8cace4ddafc7104 GIT binary patch literal 12 Rcmd;J;ONIf^0s7Z81Odp@_cx OYYRYJEzv#eoP@r3&>1!W literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/test_data_set_0/input_1.pb new file mode 100644 index 000000000..103924588 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +J06ž¾uo¯¿&¾Ü„b?Ü«…¾KD?°A!¼sB¹¿ùÊP¾M®_?~.¿CE"? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4b30d1aaa --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_max/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J0Ló<=¾Î>&¾Ü„b?Ü«…¾KD?‚l>„m1?ùÊP¾ük @\-Ñ=CE"? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_maxpool/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_maxpool/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..bbc7d87cf62d4ea36c0380ce79ab0deda0831189 GIT binary patch literal 160 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

(4oLcNeyKPrcPYWrCp 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

geEzE*J$ef^^un1YEg@%6iE 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

bdJ0Rx`q1< z7Rr~|ZoSh`s+I#nJGiWzy&W;VT?khXEjRPqlfj*tj)V1@S2SqF74mI^1-?G=o^g^e z$NLA7*0<@v*W8V~QUz6h?8eO?pjb%@*F|7)aUB&A6ye=Di118f3C1YRBhvOIAUAst z9N6)Wp5T0+SEDka#oZ7TRhO9=FC8NT@==&%WsINAo|vUc=;C3Hqj&LOD0->Cqc(|Z zSTQ3L@1@M8`3r8)6)Kzyx4Mwa7JkR2AA0cEGf((eu>^j9DrH0b6YytM9BcEQWj&8v zrOqgUi|+0vbtn7i%GvYrvb!aY%N!){x!iqs$P7IH!Hv#cu^e`vKStwBykYLzH}v8J zKKjY!qRLjT)4C#%JmVPdJrCl*PAiFRn^I1WeJ><$!={3*$ZyP2Ovm>1*-XBp8(DH~ zGPJaXu@`SGXCLk`VuD3Hsd3sMk&M&Drf*WHaIFGz6^_uoSXCv&fAr83eyB*{v)tLN7w03Xl;20gheGh^78`n}ej94P zP=%=Ahg|;RJbt};3?x1O5&hMjaAjzeUj48JE!YKUFR}zj{Knvo?^HC;tEc`q*D*ug zELoAH&-51NFrJ1H%)5o>sYI#)M9i$9drl`YO1avgD8&PtS0W%dt_apIWKcpno$ej5 z0r$ilx@booJtQX!-yC_dK*j~yurEN*WukeTj(&o&xlny zfq2dn$}i0#ZpnTSqpHrcvr`9-(L>JjZs50a5q`~& zJ@@;f<2cv%4D#gI8Ao8#co|lF49BXg8vFxB7h&f~7W!E|6rR5Z)Eiep>sM{Q!DXNy z^a|jltS9`AIFB!V6Vb-3myr!=ByEf-tmWLtr(M>YV zDi>5T9-?F6J>qI12sO$g9D}GBls_lq%V2prwWNqlvAICcFQ3WZI4sWhGFpIwPP4Gl zPyp=y6rtP^Km4@u3A5zsX{uhK0$K}v;L9Up6i^DlCH7+^qdWu*59`2;C0rh2!XsSf ch^ROt5MH!C!LBR?qIuaI!#7_fA;wble;U{d+5i9m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_maxpool/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_maxpool/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..80f6c34f6c91270e6b49d86cfe145b88953369d1 GIT binary patch literal 30732 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 OYYRYJEzv#eoP@r3&>1!W literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_min/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_min/test_data_set_0/input_1.pb new file mode 100644 index 000000000..103924588 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_min/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +J06ž¾uo¯¿&¾Ü„b?Ü«…¾KD?°A!¼sB¹¿ùÊP¾M®_?~.¿CE"? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_min/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_min/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3cd39d4b01ed283d8d8c7981abeb077fb713c351 GIT binary patch literal 56 zcmV-80LT9b0|*2V0ZK47o*uq+Z?C_}d4a#7@LfLcy&S)y>;ONoK_R?zLb<>5p@_as Ou3tY6elEZ3oP@rW;2Kr{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..24c8dab8b67958ef0737446ad1521d329b890b32 GIT binary patch literal 214 zcmYk#%?g4*5C?Ea*V=|K*(jo;&}G5UymbkR2zrEWs|glFo*du zGklVnRPSV!A0;EKVFhEuexgFWvU)C c2gei`MU$GUEsbFhErldj81+zZlD+8;eh#=K@c;k- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..46defa5ece68aeab5e0a30102dc8c5da9cffb680 GIT binary patch literal 32 ocmd;J;$RkF^pf!TY-78R{hZy&%EtW*Kg8O-+bgqw(HjPP0ICiR6951J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/input_1.pb new file mode 100644 index 000000000..4058421ad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +J0‚l>„m1?󡈾ük @\-Ñ=뜄¾6ž¾uo¯¿&¾Ü„b?Ü«…¾KD? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/output_0.pb new file mode 100644 index 000000000..1d9fa36a9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_mm/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J ¤=>¬ w¿ýA>FĈ¿4¡½f!A?~Á½3Ï? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_non_float_params/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_non_float_params/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7b10bf4c567432cd257aeb70e6fb9f87ed04112c GIT binary patch literal 181 zcmd;J7Gf``EXglQ&X8g@&@;B0$H>LU#c06AXeh*Jq{Qr)k^t%}fFbS|bF&cU)Ffu>@6O?9#(kxIqN*HLo5FZy02fGjl7f>Gv Tg9HuH1(Se+#^{1hOag2Gw3igj literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_non_float_params/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_non_float_params/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4fd37a7c3b3577c0575a6edd7dbae3de8cc10b88 GIT binary patch literal 40 acmd;J;$RYB_flYFfB+^a%?zbkpfms!`2e5* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_non_float_params/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_non_float_params/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8de33f5140f79c65c5a968012efeaeb6095e0a24 GIT binary patch literal 40 acmd;J;$RYB_flYDfB+6CEd-?%pfms%c>vM? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pad/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pad/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7defd21fc03f2bf64ffef10550a812b86592ff94 GIT binary patch literal 159 zcmd;J7Gf``EXglQ&X8g@&@;B`VC1smVl)t9G*n^^NKDZZ;$q3oPf1l`FG@|zNlh+U zz{sp6$;DETm{RP(0ESFplF@;A0VBJR0N5zqtjrSK)QW=qqLL_SkZEFEA{>lD0$fZS Yj8M!3q*;=Hl7?6$nSqj=PD}!907x4e!~g&Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pad/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pad/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..89c8be44e005f65500380217e8888fd85cf424e0 GIT binary patch literal 44 kcmd;JJ¶a¿sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pow/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pow/test_data_set_0/input_1.pb new file mode 100644 index 000000000..466211cab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pow/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +J`oFD?"ð›<õ3´<œ“?ü¼­¾…Ÿ>#Še?õ—¾týl?â¸l? ê:>Úî–½‰¡>*¹„¿>W>K?›€=˨¾æ¿üp_?ËWD?!齚\q¿˜A? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pow/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_pow/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c9345f3091f3a0c94515171b66c8daf4a75f3fac GIT binary patch literal 108 zcmd;JtI bF*6XeB#Cn|8VU(<2>>N|kR(~0m;~4WD-aqx literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean/test_data_set_0/input_0.pb new file mode 100644 index 000000000..64d210dd7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +J`´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d52124c58 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J ªE>˜9¾4§¾Œw"¿-‰€¿Ø Ð>Ù‘>|†š= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/model.onnx new file mode 100644 index 000000000..96c0f358a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/model.onnx @@ -0,0 +1,18 @@ +pytorch0.3:~ +0 +01" +ReduceMean* +axes@ * +keepdims torch-jit-exportZ +0 + + + + +b +1 + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/test_data_set_0/input_0.pb new file mode 100644 index 000000000..64d210dd7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +J`´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/test_data_set_0/output_0.pb new file mode 100644 index 000000000..18f97ce3f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_mean_keepdim/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J ªE>˜9¾4§¾Œw"¿-‰€¿Ø Ð>Ù‘>|†š= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..20954bed28b02f93f0a34401fb89ed8e2f35544e GIT binary patch literal 143 zcmd;J7Gf``EXglQ&X8g@&@;BGRiE}X;3JGxu03~^lBw3u81lRxp8X4>W literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/test_data_set_0/input_0.pb new file mode 100644 index 000000000..64d210dd7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +J`´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/test_data_set_0/output_0.pb new file mode 100644 index 000000000..57122fd21 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +J †??òÓ +¿*Îz¿R³ó¿ÃÍ@Àb +œ?ÆTZ?ºÉg> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/model.onnx new file mode 100644 index 000000000..88c5e99aa --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/model.onnx @@ -0,0 +1,17 @@ +pytorch0.3:} +/ +01" ReduceSum* +axes@ * +keepdims torch-jit-exportZ +0 + + + + +b +1 + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/test_data_set_0/input_0.pb new file mode 100644 index 000000000..64d210dd7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +J`´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/test_data_set_0/output_0.pb new file mode 100644 index 000000000..16181cf1a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_reduced_sum_keepdim/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +J †??òÓ +¿*Îz¿R³ó¿ÃÍ@Àb +œ?ÆTZ?ºÉg> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e3c65fbc867c45cb493e070f58ebb9f3eb1a8152 GIT binary patch literal 183 zcmd;J7Gf``EXglQ&X8g@&@;ALz{uq&#Av9*;hdjWT#}eqqGiOzT9%konyRJ7!6Lx! zrNGDl0ZdSu8A`K2=>?1|T>M;&23(AWLX1XAEFqaWsX_u^D|E9mOLS8!3i69eqNIUJ ogv7W+I2eTlxR^K?ftU%1nSq!k2`FiVCdmSn-~?g;CnfJ¶a¿sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat/test_data_set_0/output_0.pb new file mode 100644 index 000000000..5e6abb49e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat/test_data_set_0/output_0.pb @@ -0,0 +1 @@ + J€´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ>ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2cc1d9babb265713d3916afe71e40ae677445411 GIT binary patch literal 262 zcmd;J7Gf``EXglQ&X8g@&@;Ar&&cH{#Av9*;hdjWT#}eqqGiOzT9%konyRJ7!6Lx! zrNGDl0q8UnRD1y=3zrZVqX8GAp%9~y5_?c;aYkZ6D#%!4B8-I@!wfZ!1<6=`E=D6R zMq?pH6D5|A%$!sq0kF$;vocF`Q!5Jci%Oz|fi?^Aaq)043UP2TaWDcgQ<5|nqlu6h Umk3Z$044~enSq$YiAjJB0DI~s9{>OV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/test_data_set_0/input_0.pb new file mode 100644 index 000000000..08ae34ff9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +JLó<=¾Î> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/test_data_set_0/output_0.pb new file mode 100644 index 000000000..228388256 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_repeat_dim_overflow/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +JÀLó<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î>Ló<=¾Î> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/model.onnx new file mode 100644 index 000000000..817529bd9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/model.onnx @@ -0,0 +1,15 @@ +pytorch0.3:Z + +01"Selutorch-jit-exportZ +0 + + + + +b +1 + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/test_data_set_0/input_0.pb new file mode 100644 index 000000000..64d210dd7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +J`´Ìä½Aþ¾Ëü&>J¶a¿sÆ\=Š+?‰[t½ä[ï¾µ #?ôÍ6¿Ò£Š¿h¿YÀx?¤×¿¨w¶?¦vL?Ü¿!À (½?ѱ-¾]ê}¿ú{º¿¬8ƒ>,\ξKÌÖ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/test_data_set_0/output_0.pb new file mode 100644 index 000000000..515074224 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_selu/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +J`eL>¾\(0¿3t/>MÚƒ¿þ÷g=_Ç3?J…нb(¿Q+?̲e¿‰Ú”¿£ ?¿®‚?!(5¿ü·¿?yÔV? Ï¿/¿Æ?RpŒ¾Ð’¿ûœ¬¿Û߉>LL¿A°á> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/model.onnx new file mode 100644 index 000000000..c44b76fbb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/model.onnx @@ -0,0 +1,11 @@ +pytorch0.3:J + +01"Sqrttorch-jit-exportZ +0 +  + +b +1 +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..eb8549c3e3556092ac0e80d3b4ce5a61b15a935c GIT binary patch literal 56 zcmV-80LT9b0|*2V0ZK4T^E^Gi2hKjpd4a#7@LfLcy&S)y>;ONIf^0s7Z81Odp@_cx OYYRYJEzv#eoP@r3&>1!W literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_sqrt/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0f842e9d9f7948ebef0c7393c126df96221d9d9e GIT binary patch literal 56 zcmd;J=3o(E^fK^yA8q$CMaiCl;lTf6G4Jd^^v~6%_Rsmh+4ahYg2f}=?6EglxEL%4 E06|q2<^TWy literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..ed37c04abecf0206c740fe686165c982e009035c GIT binary patch literal 291 zcmd;J7Gf``EXglQ&X8g@&@;B`Vd665Vl?1lG~{A55@Iw~67|e0E=kNwPW8(#%1zA4 ztV%4&%+J#jE(ZAq-LeS>C*?Wgtc?fUCxw1a6e^3q@+5=2P@ z-76%uH3@dJG##Kpw{lw<)(fCP+?1(JZ;jd5vrViI5j0EmA! AlmGw# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..82ad99fee68f25bfce91c757b2f63e63eeb66a6e GIT binary patch literal 81934 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�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 IxGdEF0Q91M>i_@% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..87c18abdf9278b037245ac5b51842cea1bb326d4 GIT binary patch literal 81934 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 I0*b@P|MMtW&;S4c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/model.onnx b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/model.onnx new file mode 100644 index 000000000..82c60e066 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/model.onnx @@ -0,0 +1,33 @@ +pytorch0.3:¥ + +0 +1 +23"Sum + +04"Neg + +15"Negtorch-jit-exportZ +0 + + +Z +1 + + +Z +2 + + +b +3 + + +b +4 + + +b +5 + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a8370e6ed1c80e3716e2161467267ec1fc7d624c GIT binary patch literal 10 Rcmd;J6kzmXVPI&m2LJ>40Vn_f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..be699d30e6cfe737d800ee588972cc592b9d297b GIT binary patch literal 10 Rcmd;J6kzmXVPIfz0008|0I2`~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/pytorch-operator/test_operator_symbolic_override_nested/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..4c977155675a66269adb06848a33f4c8052fd4b6 GIT binary patch literal 10 Rcmd;J6kzmXVPJ4@000Ae0OjPT-NU}&(1VE`WF16=?B literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..acdfc52931966b8a8f96fe4fdea59edea4a1c665 GIT binary patch literal 29 acmd;J5@2^?EzU?RNc9q6W`F=jC=CESf&$n8 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..08fa83edc03c7798eb8642ccae3a622b6c761494 GIT binary patch literal 25 Zcmd;JjP&ARU}&(1VE`WU16}|C literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/model.onnx new file mode 100644 index 000000000..8d83f6770 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/model.onnx @@ -0,0 +1,18 @@ + backend-test:l + +X +shapeYtest"ExpandExpandZ +X + + + +Z +shape + + +b +Y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..254eb744320bfd6167194f11934eb2d06e40a432 GIT binary patch literal 25 Zcmd;JjPT-NU}&(1VE`WF16=?B literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e9774d7bac1c9c4e541e03c0e4f0bbd5426e0c7a GIT binary patch literal 29 acmd;J5@2^?EzU?RNc9q6WPku>C=CESast=@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..81ce284f6922d3296289cf7863785c38b524b942 GIT binary patch literal 49 Zcmd;JgaN0~2l4;_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/model.onnx new file mode 100644 index 000000000..d6e596c34 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/model.onnx @@ -0,0 +1,18 @@ + backend-test:l + +X +shapeYtest"ExpandExpandZ +X + + + +Z +shape + + +b +Y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..254eb744320bfd6167194f11934eb2d06e40a432 GIT binary patch literal 25 Zcmd;JjPT-NU}&(1VE`WF16=?B literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model3/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5d78a132f43896806bfba1f7512e0b7b0d41993c GIT binary patch literal 37 ccmd;J7GQT`EzU?RNcECnW`F=jC=KHS08~Z-jPT-NU}&(1VE`WF16=?B literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model4/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model4/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..eade368b804956ac175e3e2dd7bda81122645531 GIT binary patch literal 45 ccmd;J5ny*>EzU?RNcB=+W`F<~&4|Va0Bphn@Bjb+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model4/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_expand_shape_model4/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ed9aa9e5742e80c7a37db904612c03f943d30f04 GIT binary patch literal 340 ccmd;J<^V$hMkmHduOmzh3=Q_9n6fYc0HE_eSpWb4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6cee309f3d61d90a6a9c40e086eb650795b8f89b GIT binary patch literal 264 zcmZ{ey9&ZU5JfXSgcJ2g*UdAfERSo++poG?x=H+1c7hb}9AE=zHc$GS=9G7*^NYz4z_<-X}WPia|tQ dkQGP|s)iAUheB0`psuf57$t-C4F8%F_yBm3KVSd= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f44504237ac222dbb719fe24275e75c5007b648c GIT binary patch literal 11 ScmWe&bYe{OVqsutum=DL)d9l* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cbb94868f3f1e414a77b52f333e720a093a35206 GIT binary patch literal 11 ScmWe&bYe{MVqsulZ~y=Y-2p`a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ceda7e2f64cf9eaf0de96ca0cb69f67918a8425b GIT binary patch literal 11 ScmWe&bYe{QVqsu#Z~y=ZWC4Z% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..01af23643f39db9f07b5c5c6b315c870855c0176 GIT binary patch literal 15 WcmWe&bYe|Oj!#MSVqsutum=Db`U6n_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..d2945a7a05cf0e386e1a51e506aac595dbd78805 GIT binary patch literal 15 WcmWe&bYe|Oj!#MQVqsutum=Dc0RvJ1 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6bf8cdd90d15d6cb53da7c239082eee6cf78b547 GIT binary patch literal 297 zcmZ{e%dP=I5Qdd;8HJEuh=|oJCFTL_j*UbjHdZ#1>Zv9j^hi%TcpJ~?3Cu{dv#R?3 zOY(7EdC6#OxldRkZl_^qEV$0%4`j+pp-ojG9= z?;}U;qPn-lS{WCG3;#{JSiR*-pe4u$gp(G+Jpz6}FdLGNGh=S?*{Xl7uCcSEjW&BR z__Wu%%{5z}l_i(ieA_P9G_V$esFWZ-APe9x^w2N!QR#(md|ty!zcU}>&k22a0UVS_ A_W%F@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f44504237ac222dbb719fe24275e75c5007b648c GIT binary patch literal 11 ScmWe&bYe{OVqsutum=DL)d9l* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cbb94868f3f1e414a77b52f333e720a093a35206 GIT binary patch literal 11 ScmWe&bYe{MVqsulZ~y=Y-2p`a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..660fb53bb9c299ba4c06a18f7aa8a108f21648a1 GIT binary patch literal 11 ScmWe&bYe{LVqsu#Z~y=ZYXOG< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e8046aaa1dd162dacc8ad4145c6d2958502e0292 GIT binary patch literal 15 WcmWe&bYe|OiBC!NVqsutZ~y=q1p`w6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/simple/test_gradient_of_add_and_mul/test_data_set_0/output_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..c71c2418df29270948e654e99514acdcd84115a8 GIT binary patch literal 15 WcmWe&bYe|OiBC!LVqsutum=Dc3jg_xa5BK z-U*+AeSSEp;yBf+)QcBKpE?_L%hdU*pHXP!Llpu< zXMpV-GXF!y4w-|c@UEBAaq%BFa9oVGfwEkacX{Xt)xo7EQRxY!zhEq}>n5SqJo%*3 zo^4Bzf>8i2xEaq((;B;)!Rkg@Gc4^Aq3hd5Q~1KAQ1onLUI8} literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model1/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model1/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..48d44446de1b1c0e955600d4f986cf220ece356e GIT binary patch literal 158 bcmd;J=3wSv5nyy;jPjbm$iTqhFqkj^cLoZq literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model1/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26aa7494f990c91d3c99005efc287dfc4600e992 GIT binary patch literal 63 Zcmd;J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..832755dea1ef4fd10c92f2cafbd7e1b09745ad6e GIT binary patch literal 320 zcmZ{eu?~VT7=&#>sDB`-buexQ7enG8BbykXz(u+cz)mJ0v^rXLBi<>=-PsqUl6cigR5_)pn(VJ(vs@&st`p&80AO z6!;^3(JpKa8G)n8TrsQeQ~)D%QjCmuNU0kmlzclw-#EiBU-#P>14SgO7 e{TJ}bVD&rQ0h_pN#_4C};1nCsd#4%_OuaWM&_W{s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8cec7a77900cd4837c2e68fcf195c65b8079d085 GIT binary patch literal 109 acmd;J;$Y@r5nyy;jPOceU}&(XB?bWJ@DpGF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cf992385c52eee3fce5aea9ca08610d4543f8ad3 GIT binary patch literal 109 Xcmd;J;$Y@r5nyy;jPy!ipfLadl8ym+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..3497261e88a7681c9b68cd5ffb3566b9b367bf2c GIT binary patch literal 109 acmd;J;$Y@r5nyy;jPgogU|?{dB?bVk00(*i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b8838043dbd95bc28703c85383f0418d4935a048 GIT binary patch literal 111 ccmd;J;$Y@r5nyy;&Mz(TN?>4MaG)gy01{LPdH?_b literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..84667039f19b3d75a7f2af29ffdf7d27697879a9 GIT binary patch literal 435 zcmd;J7vf1uOwLZtOVKS!EiSQ|!_1}3#TdcG7|F#LCB#~sS{QGrBp94pSelxboa&sP zS6ot5nq0!A!3B}y;w;E7j!!L0EKY@}Hd5k+sdfd4a_K@;8i7pZ0x8bSD^4vcfv7fC z;)AL71PgO1K$IJEv4PYkmIyKDmzF4T!Bjbx2ywvJT9N|nR$PDoLjj``!Yx`-ASsy4 ze?})Ho3+Hy6BU5_6e^M=$p!K=Hglbr1b6^In|2KV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8cec7a77900cd4837c2e68fcf195c65b8079d085 GIT binary patch literal 109 acmd;J;$Y@r5nyy;jPOceU}&(XB?bWJ@DpGF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cf992385c52eee3fce5aea9ca08610d4543f8ad3 GIT binary patch literal 109 Xcmd;J;$Y@r5nyy;jPy!ipfLadl8ym+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..3497261e88a7681c9b68cd5ffb3566b9b367bf2c GIT binary patch literal 109 acmd;J;$Y@r5nyy;jPgogU|?{dB?bVk00(*i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model3/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b8838043dbd95bc28703c85383f0418d4935a048 GIT binary patch literal 111 ccmd;J;$Y@r5nyy;&Mz(TN?>4MaG)gy01{LPdH?_b literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..13d1b69a1f97c4decf9ca93918fef4666c6c52a4 GIT binary patch literal 217 zcmd;J7vf1uOwLZtOVKS!EiSP-#K@)0#TdcG7|F#LCB#~sS{QGrBp94pSelxboa&sP zS6ot5nq0!A%LS1WV$LruQ4#`5Bqx@*73Jr`lxlHvu_RVx7E3TLU}O^FfC)#515Fna x;u7Fs6yo7x;$Q+|W*}w(Nkrn3h{7h3B+do0Tu6Y64`>({*f0i=QBF((JOCuQD3|~M literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8cec7a77900cd4837c2e68fcf195c65b8079d085 GIT binary patch literal 109 acmd;J;$Y@r5nyy;jPOceU}&(XB?bWJ@DpGF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cf992385c52eee3fce5aea9ca08610d4543f8ad3 GIT binary patch literal 109 Xcmd;J;$Y@r5nyy;jPy!ipfLadl8ym+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..3497261e88a7681c9b68cd5ffb3566b9b367bf2c GIT binary patch literal 109 acmd;J;$Y@r5nyy;jPgogU|?{dB?bVk00(*i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model4/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f5cbdf2024a0b667c684eb331bff86620f1010fd GIT binary patch literal 304 ncmd;J;^5?95nyy;&Mz(TTEN7>&|ps*W*`+f05y<+2bX&Q%O)DC literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/model.onnx new file mode 100644 index 000000000..4c17acd2e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/model.onnx @@ -0,0 +1,30 @@ + backend-test:â +# +X +Y +Zseq_1"SequenceConstruct +G +seq_1out"ConcatFromSequence* +axisÿÿÿÿÿÿÿÿÿ * +new_axis SequenceZ +X + + + +Z +Y + + + +Z +Z + + + +b +out + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8cec7a77900cd4837c2e68fcf195c65b8079d085 GIT binary patch literal 109 acmd;J;$Y@r5nyy;jPOceU}&(XB?bWJ@DpGF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cf992385c52eee3fce5aea9ca08610d4543f8ad3 GIT binary patch literal 109 Xcmd;J;$Y@r5nyy;jPy!ipfLadl8ym+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..3497261e88a7681c9b68cd5ffb3566b9b367bf2c GIT binary patch literal 109 acmd;J;$Y@r5nyy;jPgogU|?{dB?bVk00(*i literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model5/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..07b7cdfd1dc0faecbbca7ae5d1124d7c1b55d373 GIT binary patch literal 306 ncmd;J;$Y@r;b0bEbYjjgE%92w#K6#C&j0}qqik?Mpo9Ye#XlOa literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model6/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model6/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e3e48d77baefde3efc192deb29783d3c22d5ff7c GIT binary patch literal 154 zcmd;J7vf1uOwLZtOVKS!EiSQYX5=#DVvG=CElw?rH&o&eF38C&3CRymEi6sVOHS1i z;bKXw$Sjul4+D$~7@4?axFG6_QAqOaeRr<5Vhq literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model6/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model6/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8cec7a77900cd4837c2e68fcf195c65b8079d085 GIT binary patch literal 109 acmd;J;$Y@r5nyy;jPOceU}&(XB?bWJ@DpGF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model6/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model6/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..84d6871d508a774946c03ef05f9c98242526dc31 GIT binary patch literal 17 TcmWe&cVf;-&GX`5VSoSt7uNyu literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model7/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model7/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c1d37cd4ea0ec9a3b0896e1c9acb101a04181728 GIT binary patch literal 207 zcmd;J7vf1uOwLZtOVKS!EiSRz!N_IF#TX&PTAW%KZ>Yo{T#%Dl5|SUBT3DKzmz=7_ z&Bc;fky$Lkuz- zYw-%OTQM>^K~+YHgKQPz65!w#;^AWAU;<)hAZCdYfE&if#lpcZ#E>M)1u|BMkBbMW Mm;vk+rmlnC5xE-nrZ bb|DrnCJyE#UM`S9LTp?tKp_SvCIKD*?M5Wt literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..65193ec95dc61b964dff17356b743dc850beaa25 GIT binary patch literal 9 Qcmd;J5MXp-jPPOr00XfA{{R30 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb1a32bac8875fd02432506cee2900a04bfc9286 GIT binary patch literal 38 Xcmd;J7GQT`3ogjXEGhPqV88(YVXgyA literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_sequence_model8/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a9977c13ed50910a58ba2f422bd83bc79de788b9 GIT binary patch literal 17 TcmWe&cVf;-&GX`5W`FKV84Ko sQH!68H77AQDFr4V1XUQt57NlR#lgWS#KOhI!I}gVs6-ZUViMp200J)-e*gdg literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_shrink/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_shrink/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..79ecbb47a483fd600057d4a544c8996802a72c56 GIT binary patch literal 29 gcmd;J6<~B?tnd \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_single_relu_model/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_single_relu_model/test_data_set_0/output_0.pb new file mode 100644 index 000000000..7038f8705 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_single_relu_model/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJxÌá?háÌ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/model.onnx new file mode 100644 index 000000000..6cae372e5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/model.onnx @@ -0,0 +1,14 @@ + backend-test:  +j +xy"StringNormalizer* +case_change_action"LOWER * +is_case_sensitive * + stopwordsJmonday StringNormalizerZ +x + + +b +y + + +B diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/test_data_set_0/input_0.pb new file mode 100644 index 000000000..179b510f5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +2monday2tuesday2 wednesday2thursdayBx \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cdc27a745 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_lower/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +2tuesday2 wednesday2thursdayBy \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/model.onnx new file mode 100644 index 000000000..ffe252972 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/model.onnx @@ -0,0 +1,13 @@ + backend-test:€ +J +xy"StringNormalizer* +is_case_sensitive * + stopwordsJmonday StringNormalizerZ +x + + +b +y + + +B diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/test_data_set_0/input_0.pb new file mode 100644 index 000000000..179b510f5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +2monday2tuesday2 wednesday2thursdayBx \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cdc27a745 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_nochangecase/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +2tuesday2 wednesday2thursdayBy \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/model.onnx new file mode 100644 index 000000000..270349351 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/model.onnx @@ -0,0 +1,14 @@ + backend-test:  +j +xy"StringNormalizer* +case_change_action"UPPER * +is_case_sensitive * + stopwordsJmonday StringNormalizerZ +x + + +b +y + + +B diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/test_data_set_0/input_0.pb new file mode 100644 index 000000000..179b510f5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +2monday2tuesday2 wednesday2thursdayBx \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/test_data_set_0/output_0.pb new file mode 100644 index 000000000..f99dcd833 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_casesensintive_upper/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +2TUESDAY2 WEDNESDAY2THURSDAYBy \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_empty_output/model.onnx b/third_party/onnx/onnx/backend/test/data/simple/test_strnorm_model_monday_empty_output/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..81e3def54e392023f0c8d32b012924826e1fc3e6 GIT binary patch literal 183 zcmd;J5#mWoOwLZtOVKS!EiSQIz{r)w#aJQ4Sg9lsTvC*om+qHel$)57S(RF(CC4R{ zoLHP1pPZ4Hm!2A*m|T*XpQpqc8W7+bw1AOWOM*) List[TestCase]: + '''Load model test cases from on-disk data files. + ''' + + supported_kinds = os.listdir(data_dir) + if kind not in supported_kinds: + raise ValueError("kind must be one of {}".format(supported_kinds)) + + testcases = [] + + kind_dir = os.path.join(data_dir, kind) + for test_name in os.listdir(kind_dir): + case_dir = os.path.join(kind_dir, test_name) + # skip the non-dir files, such as generated __init__.py. + rtol = 1e-3 + atol = 1e-7 + if not os.path.isdir(case_dir): + continue + if os.path.exists(os.path.join(case_dir, 'model.onnx')): + url = None + model_name = test_name[len('test_')] + model_dir: Optional[Text] = case_dir + else: + with open(os.path.join(case_dir, 'data.json')) as f: + data = json.load(f) + url = data['url'] + model_name = data['model_name'] + rtol = data.get('rtol', 1e-3) + atol = data.get('atol', 1e-7) + model_dir = None + testcases.append( + TestCase( + name=test_name, + url=url, + model_name=model_name, + model_dir=model_dir, + model=None, + data_sets=None, + kind=kind, + rtol=rtol, + atol=atol, + )) + + return testcases diff --git a/third_party/onnx/onnx/backend/test/report/__init__.py b/third_party/onnx/onnx/backend/test/report/__init__.py new file mode 100644 index 000000000..6c3a97574 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/report/__init__.py @@ -0,0 +1,41 @@ +# SPDX-License-Identifier: Apache-2.0 + +import pytest # type: ignore +import _pytest # type: ignore + +from .coverage import Coverage +from typing import Dict, Text, Sequence, Any, List + +_coverage = Coverage() +_marks: Dict[Text, Sequence[Any]] = {} + + +def _add_mark(mark: Any, bucket: Text) -> None: + proto = mark.args[0] + if isinstance(proto, list): + assert len(proto) == 1 + proto = proto[0] + if proto is not None: + _coverage.add_proto(proto, bucket, mark.args[1] == 'RealModel') + + +def pytest_runtest_call(item: _pytest.nodes.Item) -> None: + mark = item.get_closest_marker('onnx_coverage') + if mark: + assert item.nodeid not in _marks + _marks[item.nodeid] = mark + + +def pytest_runtest_logreport(report: Any) -> None: + if (report.when == 'call' + and report.outcome == 'passed' + and report.nodeid in _marks): + mark = _marks[report.nodeid] + _add_mark(mark, 'passed') + + +@pytest.hookimpl(trylast=True) # type: ignore +def pytest_terminal_summary(terminalreporter: _pytest.terminal.TerminalReporter, exitstatus: int) -> None: + for mark in _marks.values(): + _add_mark(mark, 'loaded') + _coverage.report_text(terminalreporter) diff --git a/third_party/onnx/onnx/backend/test/report/base.py b/third_party/onnx/onnx/backend/test/report/base.py new file mode 100644 index 000000000..c43ec5ef3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/report/base.py @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: Apache-2.0 + + +class ReporterBase(object): + pass diff --git a/third_party/onnx/onnx/backend/test/report/coverage.py b/third_party/onnx/onnx/backend/test/report/coverage.py new file mode 100644 index 000000000..6f5ff9e9d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/report/coverage.py @@ -0,0 +1,250 @@ +# SPDX-License-Identifier: Apache-2.0 + +from collections import defaultdict, OrderedDict +import os +import csv +import datetime + +from tabulate import tabulate # type: ignore + +import onnx +from onnx import defs, helper, GraphProto +from typing import Optional, Text, Set, Dict, IO, List, Any + +_all_schemas = defs.get_all_schemas() + + +class AttrCoverage(object): + def __init__(self) -> None: + self.name: Optional[Text] = None + self.values: Set[Text] = set() + + def add(self, attr: onnx.AttributeProto) -> None: + assert self.name in [None, attr.name] + self.name = attr.name + value = helper.get_attribute_value(attr) + # Turn list into tuple so we can put it into set + # As value can be string, don't blindly turn `collections.Iterable` + # into tuple. + if isinstance(value, list): + value = tuple(value) + self.values.add(str(value)) + + +class NodeCoverage(object): + def __init__(self) -> None: + self.op_type: Optional[Text] = None + self.attr_coverages: Dict[Text, AttrCoverage] = defaultdict(AttrCoverage) + + def add(self, node: onnx.NodeProto) -> None: + assert self.op_type in [None, node.op_type] + + if self.op_type is None: + self.op_type = node.op_type + assert self.op_type is not None + self.schema = defs.get_schema(self.op_type, node.domain) + + for attr in node.attribute: + self.attr_coverages[attr.name].add(attr) + + +class ModelCoverage(object): + def __init__(self) -> None: + self.name: Optional[Text] = None + self.graph: Optional[GraphProto] = None + self.node_coverages: Dict[Text, NodeCoverage] = defaultdict(NodeCoverage) + + def add(self, model: onnx.ModelProto) -> None: + assert self.name in [None, model.graph.name] + + if self.name is None: + self.name = model.graph.name + assert self.name is not None + self.graph = model.graph + + for node in model.graph.node: + self.node_coverages[node.op_type].add(node) + + +class Coverage(object): + def __init__(self) -> None: + self.buckets: Dict[Text, Dict[Text, NodeCoverage]] = { + 'loaded': defaultdict(NodeCoverage), + 'passed': defaultdict(NodeCoverage), + } + self.models: Dict[Text, Dict[Text, ModelCoverage]] = { + 'loaded': defaultdict(ModelCoverage), + 'passed': defaultdict(ModelCoverage), + } + + def add_node(self, node: onnx.NodeProto, bucket: Text) -> None: + self.buckets[bucket][node.op_type].add(node) + + def add_graph(self, graph: onnx.GraphProto, bucket: Text) -> None: + for node in graph.node: + self.add_node(node, bucket) + + def add_model(self, model: onnx.ModelProto, bucket: Text, is_model: bool) -> None: + self.add_graph(model.graph, bucket) + # Only add model if name does not start with test + if is_model: + self.models[bucket][model.graph.name].add(model) + + def add_proto(self, proto: onnx.ModelProto, bucket: Text, is_model: bool) -> None: + assert isinstance(proto, onnx.ModelProto) + self.add_model(proto, bucket, is_model) + + def report_text(self, writer: IO[Text]) -> None: + writer.write('---------- onnx coverage: ----------\n') + writer.write('Operators (passed/loaded/total): {}/{}/{}\n'.format( + len(self.buckets['passed']), + len(self.buckets['loaded']), + len(_all_schemas))) + writer.write('------------------------------------\n') + + rows = [] + passed = [] + all_ops: List[Text] = [] + experimental: List[Text] = [] + for op_cov in self.buckets['passed'].values(): + covered_attrs = [ + '{}: {}'.format(attr_cov.name, len(attr_cov.values)) + for attr_cov in op_cov.attr_coverages.values()] + uncovered_attrs = [ + '{}: 0'.format(attr) + for attr in op_cov.schema.attributes + if attr not in op_cov.attr_coverages + ] + attrs = sorted(covered_attrs) + sorted(uncovered_attrs) + if attrs: + attrs_column = os.linesep.join(attrs) + else: + attrs_column = 'No attributes' + rows.append([op_cov.op_type, attrs_column]) + passed.append(op_cov.op_type) + writer.write(tabulate( + rows, + headers=['Operator', 'Attributes\n(name: #values)'], + tablefmt='plain')) + if os.environ.get(str('CSVDIR')) is not None: + self.report_csv(all_ops, passed, experimental) + + # This function writes the coverage report to a set of CSV files for + # the Backend Scoreboard (onnx.ai/backend-scoreboard). To enable this + # feature, set a CSVDIR environment variable locally with the directory + # where you would like the files to be written, relative to the + # directory from which you're running pytest. The format of the CSV + # files is a column naming each op or model and columns for each + # backend with indications of whether the tests passed or failed for + # each row. + def report_csv(self, all_ops: List[Text], passed: List[Optional[Text]], experimental: List[Text]) -> None: + for schema in _all_schemas: + if schema.domain == '' or schema.domain == 'ai.onnx': + all_ops.append(schema.name) + if schema.support_level == defs.OpSchema.SupportType.EXPERIMENTAL: + experimental.append(schema.name) + all_ops.sort() + nodes_path = os.path.join(str(os.environ.get('CSVDIR')), # type: ignore + 'nodes.csv') # type: ignore + models_path = os.path.join(str(os.environ.get('CSVDIR')), # type: ignore + 'models.csv') # type: ignore + existing_nodes: OrderedDict[Text, Dict[str, str]] = OrderedDict() + existing_models: OrderedDict[Text, Dict[str, str]] = OrderedDict() + frameworks: List[str] = [] + if os.path.isfile(nodes_path): + with open(nodes_path, 'r') as nodes_file: + reader = csv.DictReader(nodes_file) + assert reader.fieldnames + frameworks = list(reader.fieldnames) + for row in reader: + op = row[str('Op')] + del row[str('Op')] + existing_nodes[str(op)] = row + if os.path.isfile(models_path): + with open(models_path, 'r') as models_file: + reader = csv.DictReader(models_file) + for row in reader: + model = row[str('Model')] + del row[str('Model')] + existing_models[str(model)] = row + backend = os.environ.get(str('BACKEND')) + other_frameworks = frameworks[1:] + with open(nodes_path, 'w') as nodes_file: + if str('Op') not in frameworks: + frameworks.append(str('Op')) + if backend not in frameworks: + frameworks.append(str(backend)) + else: + other_frameworks.remove(str(backend)) + node_writer = csv.DictWriter(nodes_file, fieldnames=frameworks) + node_writer.writeheader() + for node in all_ops: + node_name = node + if node in experimental: + node_name = node + ' (Experimental)' + if node_name not in existing_nodes: + # Also add Skipped for other nodes + existing_nodes[node_name] = OrderedDict() + for other_framework in other_frameworks: + existing_nodes[node_name][other_framework] = str("Skipped!") + if node in passed: + existing_nodes[node_name][str(backend)] = str("Passed!") + else: + existing_nodes[node_name][str(backend)] = str("Failed!") + summaries: Dict[Any, Any] = dict() + if "Summary" in existing_nodes: + summaries = existing_nodes["Summary"] + del existing_nodes["Summary"] + summaries[str(backend)] = \ + "{}/{} node tests passed".format(len(passed), len(all_ops)) + summaries['Op'] = 'Summary' + for node in existing_nodes: + existing_nodes[node][str('Op')] = str(node) + node_writer.writerow(existing_nodes[node]) + node_writer.writerow(summaries) + with open(models_path, 'w') as models_file: + frameworks[0] = str("Model") + model_writer = csv.DictWriter(models_file, fieldnames=frameworks) + model_writer.writeheader() + # Consider both buckets + num_models = 0 + for bucket in self.models: + for model in self.models[bucket]: # type: ignore + # Both analyze and run the model on the backend + num_covered = 0 + for node in self.models[bucket][model].node_coverages: + if node in passed: + num_covered += 1 + # TODO: Identify if there are models that are being + # skipped/not loaded, but that are in other frameworks + msg = "Passed!" + if bucket == 'loaded': + if model in self.models['passed']: + continue + msg = "Failed!" + num_models += 1 + if model not in existing_models: + # Also add Skipped for other models + existing_models[model] = OrderedDict() + for other_framework in other_frameworks: + existing_models[model][other_framework] = str("Skipped!") + existing_models[model][str(backend)] = str("{}/{} nodes covered: {}" + .format(num_covered, len(self.models[bucket][model] + .node_coverages), msg)) + summaries.clear() + if "Summary" in existing_models: + summaries = existing_models["Summary"] + del existing_models["Summary"] + if str(backend) in summaries: + del summaries[str(backend)] + summaries[str(backend)] = "{}/{} model tests passed" \ + .format(len(self.models['passed']), num_models) + summaries['Model'] = 'Summary' + for model in existing_models: # type: ignore + existing_models[model][str('Model')] = model + model_writer.writerow(existing_models[model]) + model_writer.writerow(summaries) + with open(os.path.join(str(os.environ.get('CSVDIR')), # type: ignore + 'metadata.csv'), 'w') as metadata_file: # type: ignore + metadata_writer = csv.writer(metadata_file) + metadata_writer.writerow(["Latest Update", datetime.datetime.now().isoformat().replace('T', ' ')]) diff --git a/third_party/onnx/onnx/backend/test/runner/__init__.py b/third_party/onnx/onnx/backend/test/runner/__init__.py new file mode 100644 index 000000000..e9fbfb05e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/runner/__init__.py @@ -0,0 +1,338 @@ +# SPDX-License-Identifier: Apache-2.0 + +from __future__ import annotations + +from collections import defaultdict +import functools +import glob +import os +import re +import shutil +import sys +import tarfile +import tempfile +import time +import unittest + +import numpy as np # type: ignore + +import onnx +from onnx import helper, numpy_helper, NodeProto, ModelProto, TypeProto +from onnx.backend.base import Backend +from urllib.request import urlretrieve +from ..loader import load_model_tests +from ..case.test_case import TestCase +from .item import TestItem +from typing import Optional, Pattern, Set, Dict, Text, Type, Sequence, Any, Callable, Union, Iterable, List + + +class BackendIsNotSupposedToImplementIt(unittest.SkipTest): + pass + + +def retry_excute(times: int) -> Callable[[Callable[..., Any]], Callable[..., Any]]: + assert times >= 1 + + def wrapper(func: Callable[..., Any]) -> Callable[..., Any]: + @functools.wraps(func) + def wrapped(*args: Any, **kwargs: Any) -> Any: + for i in range(1, times + 1): + try: + return func(*args, **kwargs) + except Exception: + print('{} times tried'.format(i)) + if i == times: + raise + time.sleep(5 * i) + return wrapped + return wrapper + + +class Runner(object): + + def __init__(self, backend: Type[Backend], parent_module: Optional[str] = None) -> None: + self.backend = backend + self._parent_module = parent_module + self._include_patterns: Set[Pattern[Text]] = set() + self._exclude_patterns: Set[Pattern[Text]] = set() + self._xfail_patterns: Set[Pattern[Text]] = set() + + # This is the source of the truth of all test functions. + # Properties `test_cases`, `test_suite` and `tests` will be + # derived from it. + # {category: {name: func}} + self._test_items: Dict[Text, Dict[Text, TestItem]] = defaultdict(dict) + + for rt in load_model_tests(kind='node'): + self._add_model_test(rt, 'Node') + + for rt in load_model_tests(kind='real'): + self._add_model_test(rt, 'Real') + + for rt in load_model_tests(kind='simple'): + self._add_model_test(rt, 'Simple') + + for ct in load_model_tests(kind='pytorch-converted'): + self._add_model_test(ct, 'PyTorchConverted') + + for ot in load_model_tests(kind='pytorch-operator'): + self._add_model_test(ot, 'PyTorchOperator') + + def _get_test_case(self, name: Text) -> Type[unittest.TestCase]: + test_case = type(str(name), (unittest.TestCase,), {}) + if self._parent_module: + test_case.__module__ = self._parent_module + return test_case + + def include(self, pattern: Text) -> Runner: + self._include_patterns.add(re.compile(pattern)) + return self + + def exclude(self, pattern: Text) -> Runner: + self._exclude_patterns.add(re.compile(pattern)) + return self + + def xfail(self, pattern: Text) -> Runner: + self._xfail_patterns.add(re.compile(pattern)) + return self + + def enable_report(self) -> Runner: + import pytest # type: ignore + + for category, items_map in self._test_items.items(): + for name, item in items_map.items(): + item.func = pytest.mark.onnx_coverage(item.proto, category)(item.func) + return self + + @property + def _filtered_test_items(self) -> Dict[Text, Dict[Text, TestItem]]: + filtered: Dict[Text, Dict[Text, TestItem]] = {} + for category, items_map in self._test_items.items(): + filtered[category] = {} + for name, item in items_map.items(): + if (self._include_patterns + and (not any(include.search(name) + for include in self._include_patterns))): + item.func = unittest.skip( + 'no matched include pattern' + )(item.func) + for exclude in self._exclude_patterns: + if exclude.search(name): + item.func = unittest.skip( + 'matched exclude pattern "{}"'.format( + exclude.pattern) + )(item.func) + for xfail in self._xfail_patterns: + if xfail.search(name): + item.func = unittest.expectedFailure(item.func) + filtered[category][name] = item + return filtered + + @property + def test_cases(self) -> Dict[str, Type[unittest.TestCase]]: + ''' + List of test cases to be applied on the parent scope + Example usage: + globals().update(BackendTest(backend).test_cases) + ''' + test_cases = {} + for category, items_map in self._filtered_test_items.items(): + test_case_name = str('OnnxBackend{}Test').format(category) + test_case = self._get_test_case(test_case_name) + for name, item in sorted(items_map.items()): + setattr(test_case, name, item.func) + test_cases[test_case_name] = test_case + return test_cases + + @property + def test_suite(self) -> unittest.TestSuite: + ''' + TestSuite that can be run by TestRunner + Example usage: + unittest.TextTestRunner().run(BackendTest(backend).test_suite) + ''' + suite = unittest.TestSuite() + for case in sorted(self.test_cases.values()): + suite.addTests(unittest.defaultTestLoader.loadTestsFromTestCase(case)) + return suite + + # For backward compatibility (we used to expose `.tests`) + @property + def tests(self) -> Type[unittest.TestCase]: + ''' + One single unittest.TestCase that hosts all the test functions + Example usage: + onnx_backend_tests = BackendTest(backend).tests + ''' + tests = self._get_test_case('OnnxBackendTest') + for items_map in sorted(self._filtered_test_items.values()): + for name, item in sorted(items_map.items()): + setattr(tests, name, item.func) + return tests + + @classmethod + def assert_similar_outputs(cls, ref_outputs: Sequence[Any], outputs: Sequence[Any], rtol: float, atol: float) -> None: + np.testing.assert_equal(len(outputs), len(ref_outputs)) + for i in range(len(outputs)): + if isinstance(outputs[i], (list, tuple)): + for j in range(len(outputs[i])): + cls.assert_similar_outputs(ref_outputs[i][j], outputs[i][j], rtol, atol) + else: + np.testing.assert_equal(outputs[i].dtype, ref_outputs[i].dtype) + if ref_outputs[i].dtype == np.object: + np.testing.assert_array_equal(outputs[i], ref_outputs[i]) + else: + np.testing.assert_allclose( + outputs[i], + ref_outputs[i], + rtol=rtol, + atol=atol) + + @classmethod + @retry_excute(3) + def download_model(cls, model_test: TestCase, model_dir: Text, models_dir: Text) -> None: + # On Windows, NamedTemporaryFile can not be opened for a + # second time + download_file = tempfile.NamedTemporaryFile(delete=False) + try: + download_file.close() + assert model_test.url + print('Start downloading model {} from {}'.format( + model_test.model_name, + model_test.url)) + urlretrieve(model_test.url, download_file.name) + print('Done') + with tarfile.open(download_file.name) as t: + t.extractall(models_dir) + except Exception as e: + print('Failed to prepare data for model {}: {}'.format( + model_test.model_name, e)) + raise + finally: + os.remove(download_file.name) + + @classmethod + def prepare_model_data(cls, model_test: TestCase) -> Text: + onnx_home = os.path.expanduser(os.getenv('ONNX_HOME', os.path.join('~', '.onnx'))) + models_dir = os.getenv('ONNX_MODELS', + os.path.join(onnx_home, 'models')) + model_dir: Text = os.path.join(models_dir, model_test.model_name) + if not os.path.exists(os.path.join(model_dir, 'model.onnx')): + if os.path.exists(model_dir): + bi = 0 + while True: + dest = '{}.old.{}'.format(model_dir, bi) + if os.path.exists(dest): + bi += 1 + continue + shutil.move(model_dir, dest) + break + os.makedirs(model_dir) + + cls.download_model(model_test=model_test, model_dir=model_dir, models_dir=models_dir) + return model_dir + + def _add_test(self, + category: Text, + test_name: Text, + test_func: Callable[..., Any], + report_item: List[Optional[Union[ModelProto, NodeProto]]], + devices: Iterable[Text] = ('CPU', 'CUDA'), + ) -> None: + # We don't prepend the 'test_' prefix to improve greppability + if not test_name.startswith('test_'): + raise ValueError( + 'Test name must start with test_: {}'.format(test_name)) + + def add_device_test(device: Text) -> None: + device_test_name = '{}_{}'.format(test_name, device.lower()) + if device_test_name in self._test_items[category]: + raise ValueError( + 'Duplicated test name "{}" in category "{}"'.format( + device_test_name, category)) + + @unittest.skipIf( # type: ignore + not self.backend.supports_device(device), + "Backend doesn't support device {}".format(device)) + @functools.wraps(test_func) + def device_test_func(*args: Any, **kwargs: Any) -> Any: + try: + return test_func(*args, device=device, **kwargs) + except BackendIsNotSupposedToImplementIt as e: + # hacky verbose reporting + if '-v' in sys.argv or '--verbose' in sys.argv: + print('Test {} is effectively skipped: {}'.format( + device_test_name, e)) + + self._test_items[category][device_test_name] = TestItem( + device_test_func, report_item) + + for device in devices: + add_device_test(device) + + def _add_model_test(self, model_test: TestCase, kind: Text) -> None: + # model is loaded at runtime, note sometimes it could even + # never loaded if the test skipped + model_marker: List[Optional[Union[ModelProto, NodeProto]]] = [None] + + def run(test_self: Any, device: Text) -> None: + if model_test.model_dir is None: + model_dir = self.prepare_model_data(model_test) + else: + model_dir = model_test.model_dir + model_pb_path = os.path.join(model_dir, 'model.onnx') + model = onnx.load(model_pb_path) + model_marker[0] = model + if hasattr(self.backend, 'is_compatible') \ + and callable(self.backend.is_compatible) \ + and not self.backend.is_compatible(model): + raise unittest.SkipTest('Not compatible with backend') + prepared_model = self.backend.prepare(model, device) + assert prepared_model is not None + + # TODO after converting all npz files to protobuf, we can delete this. + for test_data_npz in glob.glob( + os.path.join(model_dir, 'test_data_*.npz')): + test_data = np.load(test_data_npz, encoding='bytes') + inputs = list(test_data['inputs']) + outputs = list(prepared_model.run(inputs)) + ref_outputs = test_data['outputs'] + self.assert_similar_outputs(ref_outputs, outputs, + rtol=model_test.rtol, + atol=model_test.atol) + for test_data_dir in glob.glob( + os.path.join(model_dir, "test_data_set*")): + inputs = [] + inputs_num = len(glob.glob(os.path.join(test_data_dir, 'input_*.pb'))) + for i in range(inputs_num): + input_file = os.path.join(test_data_dir, 'input_{}.pb'.format(i)) + self._load_proto(input_file, inputs, model.graph.input[i].type) + ref_outputs = [] + ref_outputs_num = len(glob.glob(os.path.join(test_data_dir, 'output_*.pb'))) + for i in range(ref_outputs_num): + output_file = os.path.join(test_data_dir, 'output_{}.pb'.format(i)) + self._load_proto(output_file, ref_outputs, model.graph.output[i].type) + outputs = list(prepared_model.run(inputs)) + self.assert_similar_outputs(ref_outputs, outputs, + rtol=model_test.rtol, + atol=model_test.atol) + + self._add_test(kind + 'Model', model_test.name, run, model_marker) + + def _load_proto(self, proto_filename: Text, target_list: List[Union[np.ndarray, List[Any]]], model_type_proto: TypeProto) -> None: + with open(proto_filename, 'rb') as f: + protobuf_content = f.read() + if model_type_proto.HasField('sequence_type'): + sequence = onnx.SequenceProto() + sequence.ParseFromString(protobuf_content) + target_list.append(numpy_helper.to_list(sequence)) + elif model_type_proto.HasField('tensor_type'): + tensor = onnx.TensorProto() + tensor.ParseFromString(protobuf_content) + target_list.append(numpy_helper.to_array(tensor)) + elif model_type_proto.HasField('optional_type'): + optional = onnx.OptionalProto() + optional.ParseFromString(protobuf_content) + target_list.append(numpy_helper.to_optional(optional)) + else: + print('Loading proto of that specific type (Map/Sparse Tensor) is currently not supported') diff --git a/third_party/onnx/onnx/backend/test/runner/item.py b/third_party/onnx/onnx/backend/test/runner/item.py new file mode 100644 index 000000000..1694805c1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/runner/item.py @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: Apache-2.0 + +from typing import Callable, Any, Union, List, Optional +from onnx import NodeProto, ModelProto + + +# A container that hosts the test function and the associated +# test item (ModelProto) + + +class TestItem(object): + def __init__(self, func: Callable[..., Any], proto: List[Optional[Union[ModelProto, NodeProto]]]) -> None: + self.func = func + self.proto = proto diff --git a/third_party/onnx/onnx/backend/test/stat_coverage.py b/third_party/onnx/onnx/backend/test/stat_coverage.py new file mode 100644 index 000000000..981615d6d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/stat_coverage.py @@ -0,0 +1,249 @@ +#!/usr/bin/env python + +# SPDX-License-Identifier: Apache-2.0 + +import os +import io + +from onnx import defs, load, AttributeProto +from onnx.backend.test.case import collect_snippets +from onnx.backend.test.runner import Runner +from onnx.backend.test.loader import load_model_tests +from typing import Any, IO, Sequence, Text, Dict, List + + +def is_ml(schemas: Sequence[defs.OpSchema]) -> bool: + for s in schemas: + if s.domain == 'ai.onnx.ml': + return True + return False + + +def gen_outlines(f: IO[Any], ml: bool) -> None: + f.write('# Test Coverage Report') + if ml: + f.write(' (ONNX-ML Operators)\n') + else: + f.write(' (ONNX Core Operators)\n') + f.write('## Outlines\n') + f.write('* [Node Test Coverage](#node-test-coverage)\n') + f.write('* [Model Test Coverage](#model-test-coverage)\n') + f.write('* [Overall Test Coverage](#overall-test-coverage)\n') + + +common_covered: Sequence[Text] = [] +experimental_covered: Sequence[Text] = [] + + +def gen_node_test_coverage(schemas: Sequence[defs.OpSchema], f: IO[Any], ml: bool) -> None: + global common_covered + global experimental_covered + generators = set({ + 'Multinomial', + 'RandomNormal', + 'RandomNormalLike', + 'RandomUniform', + 'RandomUniformLike', + }) + node_tests = collect_snippets() + common_covered = sorted([s.name for s in schemas + if s.name in node_tests + and s.support_level == defs.OpSchema.SupportType.COMMON + and (s.domain == 'ai.onnx.ml') == ml]) + common_no_cover = sorted([s.name for s in schemas + if s.name not in node_tests + and s.support_level == defs.OpSchema.SupportType.COMMON + and (s.domain == 'ai.onnx.ml') == ml]) + common_generator = sorted([name for name in common_no_cover + if name in generators]) + experimental_covered = sorted([s.name for s in schemas + if s.name in node_tests + and s.support_level == defs.OpSchema.SupportType.EXPERIMENTAL + and (s.domain == 'ai.onnx.ml') == ml]) + experimental_no_cover = sorted([s.name for s in schemas + if s.name not in node_tests + and s.support_level == defs.OpSchema.SupportType.EXPERIMENTAL + and (s.domain == 'ai.onnx.ml') == ml]) + experimental_generator = sorted([name for name in experimental_no_cover + if name in generators]) + num_common = len(common_covered) + len(common_no_cover) \ + - len(common_generator) + num_experimental = len(experimental_covered) + len(experimental_no_cover) \ + - len(experimental_generator) + f.write('# Node Test Coverage\n') + f.write('## Summary\n') + if num_common: + f.write('Node tests have covered {}/{} ({:.2f}%, {} generators excluded) ' + 'common operators.\n\n'.format( + len(common_covered), num_common, + (len(common_covered) / float(num_common) * 100), + len(common_generator))) + else: + f.write('Node tests have covered 0/0 (N/A) common operators. \n\n') + if num_experimental: + f.write('Node tests have covered {}/{} ({:.2f}%, {} generators excluded) ' + 'experimental operators.\n\n'.format( + len(experimental_covered), num_experimental, + (len(experimental_covered) / float(num_experimental) * 100), + len(experimental_generator))) + else: + f.write('Node tests have covered 0/0 (N/A) experimental operators.\n\n') + titles = ['💚Covered Common Operators', + '💔No Cover Common Operators', + '💚Covered Experimental Operators', + '💔No Cover Experimental Operators', + ] + all_lists = [common_covered, common_no_cover, + experimental_covered, experimental_no_cover] + for t in titles: + f.write('* [{}](#{})\n'.format(t[9:], t[9:].lower().replace(' ', '-'))) + f.write('\n') + for t, l in zip(titles, all_lists): + f.write('## {}\n'.format(t)) + for s in l: + f.write('### {}'.format(s)) + if s in node_tests: + f.write('\nThere are {} test cases, listed as following:\n'.format( + len(node_tests[s]))) + for summary, code in sorted(node_tests[s]): + f.write('

\n') + f.write('{}\n\n'.format(summary)) + f.write('```python\n{}\n```\n\n'.format(code)) + f.write('
\n') + else: + if s in generators: + f.write(' (random generator operator)\n') + else: + f.write(' (call for test cases)\n') + f.write('\n\n') + f.write('
\n\n') + + +def gen_model_test_coverage(schemas: Sequence[defs.OpSchema], f: IO[Any], ml: bool) -> None: + f.write('# Model Test Coverage\n') + # Process schemas + schema_dict = dict() + for schema in schemas: + schema_dict[schema.name] = schema + # Load models from each model test using Runner.prepare_model_data + # Need to grab associated nodes + attrs: Dict[Text, Dict[Text, List[Any]]] = dict() + model_paths: List[Any] = [] + for rt in load_model_tests(kind='real'): + model_dir = Runner.prepare_model_data(rt) + model_paths.append(os.path.join(model_dir, 'model.onnx')) + model_paths.sort() + model_written = False + for model_pb_path in model_paths: + model = load(model_pb_path) + if ml: + ml_present = False + for opset in model.opset_import: + if opset.domain == 'ai.onnx.ml': + ml_present = True + if not ml_present: + continue + else: + model_written = True + f.write('## {}\n'.format(model.graph.name)) + # Deconstruct model + num_covered = 0 + for node in model.graph.node: + if node.op_type in common_covered or node.op_type in experimental_covered: + num_covered += 1 + # Add details of which nodes are/aren't covered + # Iterate through and store each node's attributes + for attr in node.attribute: + if node.op_type not in attrs: + attrs[node.op_type] = dict() + if attr.name not in attrs[node.op_type]: + attrs[node.op_type][attr.name] = [] + if attr.type == AttributeProto.FLOAT: + if attr.f not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.f) + elif attr.type == AttributeProto.INT: + if attr.i not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.i) + elif attr.type == AttributeProto.STRING: + if attr.s not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.s) + elif attr.type == AttributeProto.TENSOR: + if attr.t not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.t) + elif attr.type == AttributeProto.GRAPH: + if attr.g not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.g) + elif attr.type == AttributeProto.FLOATS: + if attr.floats not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.floats) + elif attr.type == AttributeProto.INTS: + if attr.ints not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.ints) + elif attr.type == AttributeProto.STRINGS: + if attr.strings not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.strings) + elif attr.type == AttributeProto.TENSORS: + if attr.tensors not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.tensors) + elif attr.type == AttributeProto.GRAPHS: + if attr.graphs not in attrs[node.op_type][attr.name]: + attrs[node.op_type][attr.name].append(attr.graphs) + f.write('\n{} has {} nodes. Of these, {} are covered by node tests ({}%)\n\n\n'.format( + model.graph.name, num_covered, len(model.graph.node), 100.0 * float( + num_covered) / float(len(model.graph.node)))) + # Iterate through attrs, print + f.write('
\n') + f.write('nodes\n\n') + for op in sorted(attrs): + f.write('
\n') + # Get total number of attributes for node schema + f.write('{}: {} out of {} attributes covered\n\n' + .format(op, len(attrs[op].keys()), len(schema_dict[op] + .attributes))) + for attribute in sorted(schema_dict[op].attributes): + if attribute in attrs[op]: + f.write('{}: {}\n'.format(attribute, len(attrs[op][attribute]))) + else: + f.write('{}: 0\n'.format(attribute)) + f.write('
\n') + f.write('
\n\n\n') + if not model_written and ml: + f.write('No model tests present for selected domain\n') + + +def gen_overall_test_coverage(schemas: Sequence[defs.OpSchema], f: IO[Any], ml: bool) -> None: + f.write('# Overall Test Coverage\n') + f.write('## To be filled.\n') + + +def gen_spdx(f: IO[Any]) -> None: + f.write('\n') + + +def main() -> None: + base_dir = os.path.dirname(os.path.dirname(os.path.dirname( + os.path.dirname(os.path.realpath(__file__))))) + docs_dir = os.path.join(base_dir, 'docs') + schemas = defs.get_all_schemas() + + has_ml = is_ml(schemas) + fname = os.path.join(docs_dir, 'TestCoverage.md') + with io.open(fname, 'w+', newline='', encoding="utf-8") as f: # type: ignore + gen_spdx(f) + gen_outlines(f, False) + gen_node_test_coverage(schemas, f, False) + gen_model_test_coverage(schemas, f, False) + gen_overall_test_coverage(schemas, f, False) + + if has_ml: + fname = os.path.join(docs_dir, 'TestCoverage-ml.md') + with io.open(fname, 'w+', newline='', encoding="utf-8") as f: # type: ignore + gen_spdx(f) + gen_outlines(f, True) + gen_node_test_coverage(schemas, f, True) + gen_model_test_coverage(schemas, f, True) + gen_overall_test_coverage(schemas, f, True) + + +if __name__ == '__main__': + main() diff --git a/third_party/onnx/onnx/bin/__init__.py b/third_party/onnx/onnx/bin/__init__.py new file mode 100644 index 000000000..988131360 --- /dev/null +++ b/third_party/onnx/onnx/bin/__init__.py @@ -0,0 +1 @@ +# SPDX-License-Identifier: Apache-2.0 diff --git a/third_party/onnx/onnx/bin/checker.py b/third_party/onnx/onnx/bin/checker.py new file mode 100644 index 000000000..aa7e975ae --- /dev/null +++ b/third_party/onnx/onnx/bin/checker.py @@ -0,0 +1,24 @@ +# SPDX-License-Identifier: Apache-2.0 + +import argparse + +from onnx import load, checker, NodeProto + + +def check_model() -> None: + parser = argparse.ArgumentParser('check-model') + parser.add_argument('model_pb', type=argparse.FileType('rb')) + args = parser.parse_args() + + model = load(args.model_pb) + checker.check_model(model) + + +def check_node() -> None: + parser = argparse.ArgumentParser('check-node') + parser.add_argument('node_pb', type=argparse.FileType('rb')) + args = parser.parse_args() + + node = NodeProto() + node.ParseFromString(args.node_pb.read()) + checker.check_node(node) diff --git a/third_party/onnx/onnx/checker.cc b/third_party/onnx/onnx/checker.cc new file mode 100644 index 000000000..2d949e894 --- /dev/null +++ b/third_party/onnx/onnx/checker.cc @@ -0,0 +1,957 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "onnx/checker.h" +#include "onnx/common/file_utils.h" +#include "onnx/common/path.h" +#include "onnx/defs/schema.h" +#include "onnx/defs/tensor_proto_util.h" +#include "onnx/proto_utils.h" +#include "onnx/string_utils.h" + +#include +#include +#include + +#ifdef _WIN32 +#include +#else // POSIX +#include +#endif + +namespace ONNX_NAMESPACE { +namespace checker { + +#define enforce_has_field(proto, field) \ + do { \ + if (!proto.has_##field()) { \ + fail_check("Field '", #field, "' of '", #proto, "' is required but missing."); \ + } \ + } while (0) + +#define enforce_has_repeated_field(proto, field) \ + do { \ + if (!proto.field##_size()) { \ + fail_check("Repeated Field '", #field, "' of '", #proto, "' is required but missing."); \ + } \ + } while (0) + +#define enforce_non_empty_field(proto, field) \ + do { \ + if (proto.field().empty()) { \ + fail_check("Field '", #field, "' of '", #proto, "' is required to be non-empty."); \ + } \ + } while (0) + +void check_value_info(const ValueInfoProto& value_info, const CheckerContext& ctx) { + enforce_non_empty_field(value_info, name); + // Relax constraint for subgraph input/output. + if (!ctx.is_main_graph()) + return; + enforce_has_field(value_info, type); + const auto value_case = value_info.type().value_case(); + switch (value_case) { + case TypeProto::kTensorType: { + const auto& type = value_info.type().tensor_type(); + enforce_has_field(type, elem_type); + enforce_has_field(type, shape); + } break; + case TypeProto::kOptionalType: { + const auto& type = value_info.type().optional_type(); + enforce_has_field(type, elem_type); + } break; + case TypeProto::kSequenceType: { + const auto& type = value_info.type().sequence_type(); + enforce_has_field(type, elem_type); + } break; + case TypeProto::kMapType: { + const auto& type = value_info.type().map_type(); + enforce_has_field(type, key_type); + enforce_has_field(type, value_type); + } break; +#ifdef ONNX_ML + case TypeProto::kOpaqueType: + break; +#endif + case TypeProto::kSparseTensorType: { + const auto& type = value_info.type().sparse_tensor_type(); + enforce_has_field(type, elem_type); + enforce_has_field(type, shape); + } break; + + default: + fail_check("Unrecognized type value case (value_info name: ", value_info.name(), "): ", value_case); + } +} + +void check_tensor(const TensorProto& tensor, const CheckerContext& ctx) { + enforce_has_field(tensor, data_type); + if (tensor.data_type() == TensorProto::UNDEFINED) { + fail_check("setting data_type field (tensor name: ", tensor.name(), ") to UNDEFINED is not allowed"); + } + + int num_value_fields = 0; + + const char* value_field = nullptr; + +#define check_data_field(field) \ + bool has_##field = tensor.field().size(); \ + if (has_##field) { \ + ++num_value_fields; \ + value_field = #field; \ + } + + check_data_field(float_data); + check_data_field(int32_data); + check_data_field(string_data); + check_data_field(int64_data); + check_data_field(raw_data); + check_data_field(double_data); + check_data_field(uint64_data); + +#undef check_data_field + + bool stored_externally = tensor.has_data_location() && tensor.data_location() == TensorProto::EXTERNAL; + if (stored_externally) { + if (num_value_fields != 0) { + fail_check( + "Data of TensorProto ( tensor name: ", + tensor.name(), + ") is stored externally and should not have data field.", + value_field); + } + + bool has_location = false; + for (const StringStringEntryProto& entry : tensor.external_data()) { + if (entry.has_key() && entry.has_value() && entry.key() == "location") { + has_location = true; + std::string data_path = path_join(ctx.get_model_dir(), entry.value()); + // use stat to check whether the file exists + struct stat buffer; + if (stat((data_path).c_str(), &buffer) != 0) { + fail_check( + "Data of TensorProto ( tensor name: ", + tensor.name(), + ") should be stored in ", + data_path, + ", but it doesn't exist or is not accessible."); + } + } + } + if (!has_location) { + fail_check("TensorProto ( tensor name: ", tensor.name(), ") is stored externally but doesn't have a location."); + } + return; + } + int64_t nelem = 1; + for (auto x : tensor.dims()) { + nelem *= x; + } + if (nelem == 0 && num_value_fields != 0) { + fail_check("TensorProto (tensor name: ", tensor.name(), ") is 0-element but contains data!"); + } + if (nelem != 0 && num_value_fields != 1) { + fail_check("TensorProto (tensor name: ", tensor.name(), ") should contain one and only one value field."); + } + if (has_raw_data) { + if (tensor.data_type() == TensorProto::STRING) { + fail_check("STRING data (tensor name: ", tensor.name(), ") should not be stored in raw_data field"); + } + return; + } else { +#define check_field(field) \ + if (nelem != 0 && !has_##field) { \ + fail_check( \ + "values of data_type '", \ + tensor.data_type(), \ + "' should be stored in field '", \ + #field, \ + "' instead of '", \ + value_field, \ + "'"); \ + } + + switch (tensor.data_type()) { + case TensorProto::FLOAT: + case TensorProto::COMPLEX64: + check_field(float_data); + break; + + case TensorProto::DOUBLE: + case TensorProto::COMPLEX128: + check_field(double_data); + break; + + case TensorProto::INT32: + case TensorProto::UINT8: + case TensorProto::INT8: + case TensorProto::UINT16: + case TensorProto::INT16: + case TensorProto::BOOL: + case TensorProto::FLOAT16: + case TensorProto::BFLOAT16: + check_field(int32_data); + break; + + case TensorProto::INT64: + check_field(int64_data); + break; + + case TensorProto::UINT32: + case TensorProto::UINT64: + check_field(uint64_data); + break; + + case TensorProto::STRING: + check_field(string_data); + break; + + default: + fail_check("Unrecognized data_type (tensor name: ", tensor.name(), "): ", tensor.data_type()); + } + } + +#undef check_field +} + +void check_sequence(const SequenceProto& sequence, const CheckerContext& ctx) { + enforce_has_field(sequence, elem_type); + if (sequence.elem_type() == SequenceProto::TENSOR) { + for (const TensorProto& tensor : sequence.tensor_values()) { + check_tensor(tensor, ctx); + } + } else if (sequence.elem_type() == SequenceProto::SPARSE_TENSOR) { + for (const SparseTensorProto& sparse_tensor : sequence.sparse_tensor_values()) { + check_sparse_tensor(sparse_tensor, ctx); + } + } else if (sequence.elem_type() == SequenceProto::SEQUENCE) { + for (const SequenceProto& seq : sequence.sequence_values()) { + check_sequence(seq, ctx); + } + } else if (sequence.elem_type() == SequenceProto::MAP) { + for (const MapProto& map : sequence.map_values()) { + check_map(map, ctx); + } + } else { + fail_check( + "Sequence ( Structure name: ", + sequence.name(), + ", elem_type: ", + sequence.elem_type(), + ") is not have a valid element type."); + } +} + +void check_optional(const OptionalProto& optional, const CheckerContext& ctx) { + enforce_has_field(optional, elem_type); + if (optional.elem_type() == OptionalProto::UNDEFINED) { + return; + } else if (optional.elem_type() == OptionalProto::TENSOR) { + if (optional.has_tensor_value()) + check_tensor(optional.tensor_value(), ctx); + } else if (optional.elem_type() == OptionalProto::SPARSE_TENSOR) { + if (optional.has_sparse_tensor_value()) + check_sparse_tensor(optional.sparse_tensor_value(), ctx); + } else if (optional.elem_type() == OptionalProto::SEQUENCE) { + if (optional.has_sequence_value()) + check_sequence(optional.sequence_value(), ctx); + } else if (optional.elem_type() == OptionalProto::MAP) { + if (optional.has_map_value()) + check_map(optional.map_value(), ctx); + } else { + fail_check( + "Optional ( Structure name: ", + optional.name(), + ", elem_type: ", + optional.elem_type(), + ") is not have a valid element type."); + } +} + +void check_map(const MapProto& map, const CheckerContext& ctx) { + enforce_has_field(map, key_type); + if (map.key_type() == TensorProto::UNDEFINED) { + fail_check("setting key_type field (map name: ", map.name(), ") to UNDEFINED is not allowed"); + } + // Check if key is a valid type, specifically INT8, INT16, INT32, INT64, + // UINT8, UINT16, UINT32, UINT64, or STRING. + if ((map.key_type() == TensorProto::FLOAT) || (map.key_type() == TensorProto::BOOL) || + (map.key_type() == TensorProto::FLOAT16) || (map.key_type() == TensorProto::COMPLEX64) || + (map.key_type() == TensorProto::COMPLEX128)) { + fail_check( + "setting key_type field (map name: ", + map.name(), + ") to invalid TensorProto key_type ", + map.key_type(), + " is not allowed"); + } + + // MapProto will use either keys or string_keys, so only one should be > 0. + if ((map.keys_size() > 0) && (map.string_keys_size() > 0)) { + fail_check("Map (name: ", map.name(), ") should not contain more than one keys field."); + } + + int num_keys = map.keys_size() + map.string_keys_size(); + int num_values = 0; + + enforce_has_field(map, values); + check_sequence(map.values(), ctx); + + if (map.values().elem_type() == SequenceProto::TENSOR) { + num_values = map.values().tensor_values_size(); + } else if (map.values().elem_type() == SequenceProto::SPARSE_TENSOR) { + num_values = map.values().sparse_tensor_values_size(); + } else if (map.values().elem_type() == SequenceProto::SEQUENCE) { + num_values = map.values().sequence_values_size(); + } else if (map.values().elem_type() == SequenceProto::MAP) { + num_values = map.values().map_values_size(); + } + + if (num_keys != num_values) { + fail_check("Length of map keys and map values are not the same (map name: ", map.name(), ")"); + } +} + +// Check that the index data stored in a SparseTensorProto is valid. +// indices: a 1-dimensional tensor; indices[i] represents the +// linearized index value for the i-th nonzero value. +void check_sparse_tensor_indices_1( + const TensorProto& indices, + const SparseTensorProto& sparse_tensor_proto, + size_t nnz) { + int dense_rank = sparse_tensor_proto.dims_size(); + int64_t dense_size = 1; + for (int i = 0; i < dense_rank; ++i) + dense_size *= sparse_tensor_proto.dims(i); + if (static_cast(indices.dims(0)) != nnz) { + fail_check("Sparse tensor indices (", indices.name(), ") has ", indices.dims(0), " values, but NNZ is ", nnz); + } + + // Check if indices appear in ascending order, and if they have valid + // values. The i-th value in index_data is the linear index of the i-th + // non-zero value. + const std::vector index_data = ParseData(&indices); + + int64_t prev_index = -1; + for (size_t i = 0; i < nnz; ++i) { + int64_t curr_index = index_data[i]; // linearized index of i-th value + if (curr_index < 0 || curr_index >= dense_size) { + fail_check( + "Sparse tensor (", + indices.name(), + ") index value at position [", + i, + "] out of range [0, ", + dense_size - 1, + "]"); + } + if (curr_index <= prev_index) { + fail_check("Sparse tensor (", indices.name(), ") index value at position [", i, "] not in sorted order."); + } + prev_index = curr_index; + } +} + +// Check that the index data stored in a SparseTensorProto is valid. +// indices: a 2-dimensional tensor; indices[i,j] represents the j-th +// index value for the i-th nonzero value. +void check_sparse_tensor_indices_2( + const TensorProto& indices, + const SparseTensorProto& sparse_tensor_proto, + size_t nnz) { + int dense_rank = sparse_tensor_proto.dims_size(); + if (static_cast(indices.dims(0)) != nnz) { + fail_check("Sparse tensor indices (", indices.name(), ") first dimension size does not equal NNZ."); + } + if (indices.dims(1) != dense_rank) { + fail_check("Sparse tensor indices (", indices.name(), ") second dimension size does not match rank of tensor."); + } + + // Check if indices appear in ascending order, and if they have valid + // values. + const std::vector index_data = ParseData(&indices); + int64_t prev_index = -1; + for (size_t i = 0; i < nnz; ++i) { + int64_t curr_index = 0; // linearized index of i-th value + for (int j = 0; j < dense_rank; ++j) { + auto index_ij = index_data[i * dense_rank + j]; + if ((index_ij < 0) || (index_ij >= sparse_tensor_proto.dims(j))) { + fail_check("Sparse tensor (", indices.name(), ") index value at position [", i, ",", j, "] out of range."); + } + curr_index = curr_index * sparse_tensor_proto.dims(j) + index_ij; + } + if (curr_index <= prev_index) { + fail_check( + "Sparse tensor (", indices.name(), ") index value at position [", i, "] not in lexicographic sorted order."); + } + prev_index = curr_index; + } +} + +void check_sparse_tensor(const SparseTensorProto& sparse_tensor_proto, const CheckerContext& ctx) { + enforce_has_field(sparse_tensor_proto, values); + + const TensorProto& values = sparse_tensor_proto.values(); + check_tensor(values, ctx); + + // values must be a tensor of shape [NNZ] + // Currently we restrict the value associated with a particular index-tuple + // to be a single value. In the future, if there is a requirement, + // we may extend this to permit the value to be a "sub-tensor", in which + // case values will have dimension > 1. + if (values.dims_size() != 1) { + fail_check("Sparse tensor values (", values.name(), ") must have rank 1."); + } + size_t nnz = static_cast(values.dims(0)); + int dense_rank = sparse_tensor_proto.dims_size(); + if (dense_rank == 0) { + fail_check("Sparse tensor (", values.name(), ") must have a dense-rank > 0"); + } + for (int i = 0; i < dense_rank; ++i) { + if (sparse_tensor_proto.dims(i) <= 0) { + fail_check("Sparse tensor (", values.name(), ") dimensions are not positive."); + } + } + + if (sparse_tensor_proto.has_indices()) { + const TensorProto& indices = sparse_tensor_proto.indices(); + check_tensor(indices, ctx); + if (indices.data_type() != TensorProto::INT64) { + fail_check("Sparse tensor indices (", indices.name(), ") must have INT64 type."); + } + switch (indices.dims().size()) { + case 1: + // Indices in linearized format + check_sparse_tensor_indices_1(indices, sparse_tensor_proto, nnz); + return; + case 2: + // Check COO-style index. E.g., an index for a 3D tensor is a 3-tuple. + check_sparse_tensor_indices_2(indices, sparse_tensor_proto, nnz); + return; + default: + fail_check("Sparse tensor indices (", indices.name(), ") must have rank 1 or 2."); + } + } else if (nnz != 0) { + fail_check("Sparse tensor (", values.name(), ") has no index values."); + } +} + +// NB: This is a generic "attribute well-formedness" check, it doesn't +// actually test if an attribute is valid per a schema +void check_attribute(const AttributeProto& attr, const CheckerContext& ctx, const LexicalScopeContext& lex_ctx) { + enforce_non_empty_field(attr, name); + + if (ctx.get_ir_version() >= 0x00000002) { + enforce_has_field(attr, type); + } + + int used_fields = 0; + +#define check_type(expected_type) \ + if (attr.has_type() && attr.type() != expected_type) { \ + fail_check("type field and data field mismatch in attribute ", attr.name(), "."); \ + } + +#define check_singular_field(field, type) \ + if (attr.has_##field()) { \ + ++used_fields; \ + check_type(type); \ + } + +#define check_repeated_field(field, type) \ + if (attr.field##_size() > 0) { \ + ++used_fields; \ + check_type(type); \ + } + + check_singular_field(f, AttributeProto::FLOAT); + check_singular_field(i, AttributeProto::INT); + check_singular_field(s, AttributeProto::STRING); + check_singular_field(t, AttributeProto::TENSOR); + check_singular_field(g, AttributeProto::GRAPH); + check_singular_field(tp, AttributeProto::TYPE_PROTO); + check_singular_field(sparse_tensor, AttributeProto::SPARSE_TENSOR); + check_repeated_field(floats, AttributeProto::FLOATS); + check_repeated_field(ints, AttributeProto::INTS); + check_repeated_field(strings, AttributeProto::STRINGS); + check_repeated_field(tensors, AttributeProto::TENSORS); + check_repeated_field(graphs, AttributeProto::GRAPHS); + check_repeated_field(sparse_tensors, AttributeProto::SPARSE_TENSORS); + check_repeated_field(type_protos, AttributeProto::TYPE_PROTOS); + +#undef check_type +#undef check_singular_field +#undef check_repeated_field + + // Normally, used_fields is expected to be 1. + // In proto3, when the value to be set is type default value (say 0 for + // int), used_fields may be 0. + if (used_fields > 1) { + fail_check("Attribute (name: ", attr.name(), ") should not contain more than one value field."); + } + + if (!ctx.is_main_graph()) { + // It's an attribute of a node in function body. + if (attr.has_ref_attr_name() && used_fields != 0) { + // The attribute proto is supposed to refer to data outside and does not + // have its own value field set. + fail_check("Attribute (name: ", attr.name(), ") should refer to attribute in parent node."); + } + } + + if (attr.has_t()) { + check_tensor(attr.t(), ctx); + } + + if (attr.has_sparse_tensor()) { + check_sparse_tensor(attr.sparse_tensor(), ctx); + } + + if (attr.has_g()) { + CheckerContext subgraph_ctx(ctx); + subgraph_ctx.set_is_main_graph(false); + check_graph(attr.g(), subgraph_ctx, lex_ctx); + } + + for (const auto& tensor : attr.tensors()) { + check_tensor(tensor, ctx); + } + for (const auto& sparse_tensor : attr.sparse_tensors()) { + check_sparse_tensor(sparse_tensor, ctx); + } + if (attr.graphs().size() > 0) { + CheckerContext subgraph_ctx(ctx); + subgraph_ctx.set_is_main_graph(false); + for (const auto& graph : attr.graphs()) { + check_graph(graph, subgraph_ctx, lex_ctx); + } + } +} + +void check_node(const NodeProto& node, const CheckerContext& ctx, const LexicalScopeContext& lex_ctx) { + enforce_non_empty_field(node, op_type); + + if (node.input().empty() && node.output().empty()) { + fail_check("NodeProto (name: ", node.name(), ", type: ", node.op_type(), ") has zero input and zero output."); + } + + // If encounter experimental op, stop checking + if (check_is_experimental_op(node.op_type())) { + std::cerr << "Warning: Checker does not support models with experimental ops: " << node.op_type() << std::endl; + return; + } + + // Resolve domain for node + const auto& opset_imports = ctx.get_opset_imports(); + auto dit = opset_imports.find(node.domain()); + if (dit == opset_imports.end()) { + fail_check("No opset import for domain '" + node.domain() + "'"); + } + auto domain_version = dit->second; + + for (const auto& attr : node.attribute()) { + check_attribute(attr, ctx, lex_ctx); + } + + const auto* schema = ctx.get_schema_registry()->GetSchema(node.op_type(), domain_version, node.domain()); + if (!schema) { + if (node.domain() == ONNX_DOMAIN || node.domain() == AI_ONNX_ML_DOMAIN || node.domain() == "ai.onnx" || + node.domain() == AI_ONNX_TRAINING_DOMAIN) { + // fail the checker if op in built-in domains has no schema + fail_check( + "No Op registered for " + node.op_type() + " with domain_version of " + + ONNX_NAMESPACE::to_string(domain_version)); + } else { + // TODO: expose the registration of the op schemas appropriately in + // python, so we can load and register operators in other domains + // + // before we complete the above todo, let's skip the schema check for + // now + } + } else if (schema->Deprecated()) { + fail_check( + "Op registered for " + node.op_type() + " is deprecated in domain_version of " + + ONNX_NAMESPACE::to_string(domain_version)); + } else { + schema->Verify(node); + } +} + +void check_graph(const GraphProto& graph, const CheckerContext& ctx, const LexicalScopeContext& parent_lex) { + enforce_non_empty_field(graph, name); + + for (const auto& value_info : graph.input()) { + check_value_info(value_info, ctx); + } + for (const auto& value_info : graph.output()) { + check_value_info(value_info, ctx); + } + + // Inherit values available in outer scope + // Note that we do not allow shadowing, so the presence of an already-defined + // name is always an error. + LexicalScopeContext lex_ctx{parent_lex}; + + for (const auto& value_info : graph.input()) { + // TODO: If shadowing isn't allowed, this should maybe use + // this_or_ancestor_graph_has + if (lex_ctx.this_graph_has(value_info.name())) { + fail_check( + "Graph must be in single static assignment (SSA) form, however '", + value_info.name(), + "' has been used as graph input names multiple times."); + } + lex_ctx.add(value_info.name()); + } + + std::unordered_set, std::hash, std::equal_to> + initializer_name_checker; + + for (const auto& init : graph.initializer()) { + enforce_has_field(init, name); + const auto& name = init.name(); + if (name.empty()) { + fail_check("Tensor initializers must have a non-empty name"); + } + + if (!initializer_name_checker.insert(std::cref(name)).second) { + fail_check(name + " initializer name is not unique"); + } + + check_tensor(init, ctx); + + if (ctx.get_ir_version() <= 0x00000003) { + // Initializers are a subset of graph inputs for IR_VERSION <= 3 + if (!lex_ctx.this_graph_has(name)) { + fail_check(name + " in initializer but not in graph input"); + } + } else { + // An initializer is allowed to have the same name as an input, + // but is not required to (for IR_VERSION >= 4) + lex_ctx.add(name); + } + } + + for (const auto& sparse_init : graph.sparse_initializer()) { + const auto& values = sparse_init.values(); + enforce_has_field(values, name); + const auto& name = values.name(); + if (name.empty()) { + fail_check("Sparse tensor initializers must have a non-empty name"); + } + if (!initializer_name_checker.insert(std::cref(name)).second) { + fail_check(name + " sparse initializer name is not unique across initializers and sparse_initializers"); + } + check_sparse_tensor(sparse_init, ctx); + lex_ctx.add(name); + } + + for (const auto& node : graph.node()) { + // nodes must be in topologically sorted order + for (const auto& input : node.input()) { + // explicit optional input + if (input.empty()) { + continue; + } + if (!lex_ctx.this_or_ancestor_graph_has(input)) { + fail_check( + "Nodes in a graph must be topologically sorted, however input '", + input, + "' of node: \n", + "name: ", + node.name(), + " OpType: ", + node.op_type(), + "\n is not output of any previous nodes."); + } + } + + // This needs to happen before SSA check since we don't want to recurse and + // find that outputs from control flow ops are colliding with names in the + // inner block + + ONNX_TRY { + check_node(node, ctx, lex_ctx); + } + ONNX_CATCH(ValidationError & ex) { + ONNX_HANDLE_EXCEPTION([&]() { + ex.AppendContext("Bad node spec for node. Name: " + node.name() + " OpType: " + node.op_type()); + ONNX_THROW_EX(ex); + }); + } + // check for SSA form + for (const auto& output : node.output()) { + // optional output + if (output.empty()) { + continue; + } + + if (lex_ctx.this_or_ancestor_graph_has(output)) { + fail_check( + "Graph must be in single static assignment (SSA) form, however '", + output, + "' has been used as output names multiple times."); + } + lex_ctx.add(output); + } + } +} + +// Utilify function to get the imported version of domain from opset imports +// Returns -1 if requested domain is not found in the opset_imports +int get_version_for_domain(const std::string& domain, const std::unordered_map& opset_imports) { + auto it = opset_imports.find(domain); + if (it == opset_imports.end()) { + return -1; + } + + return it->second; +} + +void check_opset_compatibility( + const NodeProto& node, + const CheckerContext& ctx, + const std::unordered_map& func_opset_imports, + const std::unordered_map& model_opset_imports) { + auto func_opset_version = get_version_for_domain(node.domain(), func_opset_imports); + auto model_opset_version = get_version_for_domain(node.domain(), model_opset_imports); + + if (func_opset_version == -1) { + fail_check("No Opset registered for domain " + node.domain()); + } + + if (model_opset_version == -1) { + // model does not include opset import for a node present in function body. + // This is ok as along as the opset import is present in function level opset imports. + return; + } + + if (func_opset_version == model_opset_version) { + // both versions are same, no need to verify schema. + return; + } + + const auto* schema_for_model_import = + ctx.get_schema_registry()->GetSchema(node.op_type(), model_opset_version, node.domain()); + + const auto* schema_for_function_import = + ctx.get_schema_registry()->GetSchema(node.op_type(), func_opset_version, node.domain()); + + if (!schema_for_model_import && !schema_for_function_import) { + // the op belongs to a custom domain so we cannot verify schema + return; + } + + // if schema is present for 1 but not other or the schema since versions do not match then raise an error + if (!schema_for_model_import || !schema_for_function_import || + schema_for_function_import->since_version() != schema_for_model_import->since_version()) { + fail_check( + "Opset import for domain " + node.domain() + " in function op " + node.op_type() + + "is not compatible with the version imported by model. FunctionOp imports version " + + ONNX_NAMESPACE::to_string(func_opset_version) + "whereas model imports version " + + ONNX_NAMESPACE::to_string(model_opset_version)); + } +} + +void check_model_local_functions( + const ModelProto& model, + const CheckerContext& ctx, + const LexicalScopeContext& parent_lex) { + // make a copy of model opset imports to maintain a main copy of opset imports across the model and + // all model local functions to verify opset compatibility + std::unordered_map model_opset_imports(ctx.get_opset_imports()); + + // merge the opset imports from every function in model_opset_imports + // only add the opset import if an entry for it does not exist in model_opset_imports + // if there is an entry then the compatibility will be checked later on in check_opset_compatibility + // called by check_function. + for (const auto& function_proto : model.functions()) { + for (const auto& opset_import : function_proto.opset_import()) { + if (get_version_for_domain(opset_import.domain(), model_opset_imports) == -1) { + model_opset_imports[opset_import.domain()] = opset_import.version(); + } + } + } + + CheckerContext ctx_copy = ctx; + ctx_copy.set_opset_imports(model_opset_imports); + + for (const auto& function_proto : model.functions()) { + check_function(function_proto, ctx_copy, parent_lex); + } +} + +void check_function(const FunctionProto& function, const CheckerContext& ctx, const LexicalScopeContext& parent_lex) { + enforce_non_empty_field(function, name); + + if (ctx.get_ir_version() >= 0x00000008) { + enforce_has_field(function, domain); + } + + const auto& model_opset_imports = ctx.get_opset_imports(); + CheckerContext ctx_copy = ctx; + + std::unordered_map func_opset_imports; + for (auto& relied_opset : function.opset_import()) { + func_opset_imports[relied_opset.domain()] = static_cast(relied_opset.version()); + } + + ctx_copy.set_opset_imports(func_opset_imports); + + LexicalScopeContext lex_ctx{parent_lex}; + + for (const auto& input : function.input()) { + // TODO: If shadowing isn't allowed, this should maybe use + // this_or_ancestor_graph_has + if (lex_ctx.this_graph_has(input)) { + fail_check( + "Graph must be in single static assignment (SSA) form, however '", input, "' has been used multiple times."); + } + lex_ctx.add(input); + } + + std::unordered_set outputs; + for (const auto& output : function.output()) { + auto result = outputs.insert(output); + if (!result.second) { + fail_check("function (", function.name(), ") should not have duplicate outputs specified."); + } + } + + std::unordered_set attrs; + for (const auto& attr : function.attribute()) { + auto result = attrs.insert(attr); + if (!result.second) { + fail_check("function (", function.name(), ") should not have duplicate attributes specified."); + } + } + + for (const auto& node : function.node()) { + // nodes must be in topologically sorted order + for (const auto& input : node.input()) { + // explicit optional input + if (input.empty()) { + continue; + } + if (!lex_ctx.this_graph_has(input)) { + fail_check( + "Nodes in a function must be topologically sorted, however input '", + input, + "' of node: \n", + "Name: ", + node.name(), + " OpType: ", + node.op_type(), + "\n is neither output of any previous nodes nor input of the function."); + } + } + + // check whether the opset version imported for a domain by function and model are + // compatible + check_opset_compatibility(node, ctx_copy, func_opset_imports, model_opset_imports); + + check_node(node, ctx_copy, lex_ctx); + + // check for SSA form + for (const auto& output : node.output()) { + // optional output + if (output.empty()) { + continue; + } + if (lex_ctx.this_or_ancestor_graph_has(output)) { + fail_check( + "Function must be in single static assignment (SSA) form, however '", + output, + "' has been used as output names multiple times."); + } + lex_ctx.add(output); + } + } +} + +void check_model(const ModelProto& model, CheckerContext& ctx) { + if (!model.ir_version()) { + fail_check("The model does not have an ir_version set properly."); + } + if (model.ir_version() > IR_VERSION) { + fail_check("Your model ir_version is higher than the checker's."); + } + if (model.metadata_props_size() > 1) { + std::unordered_set keys; + for (const StringStringEntryProto& entry : model.metadata_props()) { + auto i = keys.insert(entry.key()); + if (!i.second) { + fail_check("Your model has duplicate keys in metadata_props."); + } + } + } + std::unordered_map versions; + ctx.set_ir_version(static_cast(model.ir_version())); + std::unordered_map opset_imports; + for (const auto& opset_import : model.opset_import()) { + opset_imports[opset_import.domain()] = static_cast(opset_import.version()); + } + if (model.ir_version() >= 3) { + if (opset_imports.empty()) { + fail_check("model with IR version >= 3 must specify opset_import for ONNX"); + } + } else { + if (opset_imports.empty()) + opset_imports[ONNX_DOMAIN] = 1; + else { + fail_check("model with IR version < 3 cannot have opset_import specified"); + } + } + ctx.set_opset_imports(opset_imports); + LexicalScopeContext lex_ctx; + check_graph(model.graph(), ctx, lex_ctx); + + if (ctx.get_ir_version() >= 0x00000008) { + check_model_local_functions(model, ctx, lex_ctx); + } +} + +void check_model(const std::string& model_path) { + ModelProto model; + LoadProtoFromPath(model_path, model); + + CheckerContext ctx; + std::string model_dir; + size_t pos = model_path.find_last_of("\\/"); + if (pos != std::string::npos) { + model_dir = model_path.substr(0, pos + 1); + } + ctx.set_model_dir(model_dir); + check_model(model, ctx); +} + +void check_model(const ModelProto& model) { + CheckerContext ctx; + check_model(model, ctx); +} + +std::set experimental_ops = { + "ATen", + "Affine", + "ConstantFill", + "Crop", + "DynamicSlice", + "GRUUnit", + "GivenTensorFill", + "ImageScaler", + "ParametricSoftplus", + "Scale", + "ScaledTanh"}; + +bool check_is_experimental_op(std::string node_op_type) { + return (experimental_ops.count(node_op_type)) ? true : false; +} + +#undef fail_check +#undef enforce_has_field +#undef enforce_has_repeated_field +#undef enforce_non_empty_field + +} // namespace checker +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/checker.h b/third_party/onnx/onnx/checker.h new file mode 100644 index 000000000..8200bf5d2 --- /dev/null +++ b/third_party/onnx/onnx/checker.h @@ -0,0 +1,151 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include +#include +#include "onnx/defs/function.h" +#include "onnx/defs/schema.h" +#include "onnx/onnx-data_pb.h" +#include "onnx/onnx-operators_pb.h" +#include "onnx/onnx_pb.h" +#include "onnx/string_utils.h" + +namespace ONNX_NAMESPACE { +namespace checker { +class ValidationError final : public std::runtime_error { + public: + using std::runtime_error::runtime_error; + const char* what() const noexcept override { + if (!expanded_message_.empty()) { + return expanded_message_.c_str(); + } + return std::runtime_error::what(); + } + void AppendContext(const std::string& context) { + expanded_message_ = ONNX_NAMESPACE::MakeString(std::runtime_error::what(), "\n\n==> Context: ", context); + } + + private: + std::string expanded_message_; +}; + +#define fail_check(...) \ + ONNX_THROW_EX(ONNX_NAMESPACE::checker::ValidationError(ONNX_NAMESPACE::MakeString(__VA_ARGS__))); + +class CheckerContext final { + public: + int get_ir_version() const { + return ir_version_; + } + void set_ir_version(int v) { + ir_version_ = v; + } + const std::unordered_map& get_opset_imports() const { + return opset_imports_; + } + void set_opset_imports(std::unordered_map imps) { + opset_imports_ = std::move(imps); + } + bool is_main_graph() const { + return is_main_graph_; + } + void set_is_main_graph(bool is_main_graph) { + is_main_graph_ = is_main_graph; + } + + void set_schema_registry(const ISchemaRegistry* schema_registry) { + schema_registry_ = schema_registry; + } + + const ISchemaRegistry* get_schema_registry() const { + return schema_registry_; + } + + void set_model_dir(const std::string& model_dir) { + model_dir_ = model_dir; + } + + std::string get_model_dir() const { + return model_dir_; + } + + explicit CheckerContext() : ir_version_(-1) {} + + private: + int ir_version_; + std::unordered_map opset_imports_; + bool is_main_graph_ = true; + const ISchemaRegistry* schema_registry_ = OpSchemaRegistry::Instance(); + std::string model_dir_; +}; + +class LexicalScopeContext final { + public: + LexicalScopeContext() = default; + + // Construct an instance with the lexical scope from the parent graph to allow + // lookup of names from that scope via this_or_ancestor_graph_has. + // The caller must ensure parent_context remains valid for the entire lifetime + // of the new instance. Alternatively, if that cannot be guaranteed, create an + // instance with the default constructor and populate output_names with the + // values from the parent scope so the values are copied instead. + LexicalScopeContext(const LexicalScopeContext& parent_context) : parent_context_{&parent_context} {} + + void add(const std::string& name) { + output_names.insert(name); + } + + bool this_graph_has(const std::string& name) const { + return output_names.find(name) != output_names.cend(); + } + + bool this_or_ancestor_graph_has(const std::string& name) const { + return this_graph_has(name) || (parent_context_ && parent_context_->this_or_ancestor_graph_has(name)); + } + + // public for backwards compatibility. please prefer the public interface of + // this class over directly changing output_names + std::unordered_set output_names; + + private: + const LexicalScopeContext* parent_context_{nullptr}; +}; + +using IR_VERSION_TYPE = decltype(Version::IR_VERSION); +void check_value_info(const ValueInfoProto& value_info, const CheckerContext&); +void check_tensor(const TensorProto& tensor, const CheckerContext&); +void check_sparse_tensor(const SparseTensorProto& sparse_tensor, const CheckerContext&); +void check_sequence(const SequenceProto& sequence, const CheckerContext&); +void check_map(const MapProto& map, const CheckerContext&); +void check_optional(const OptionalProto& opt, const CheckerContext&); +void check_attribute(const AttributeProto& attr, const CheckerContext&, const LexicalScopeContext&); +void check_node(const NodeProto& node, const CheckerContext&, const LexicalScopeContext&); +void check_graph(const GraphProto& graph, const CheckerContext&, const LexicalScopeContext&); +void check_function(const FunctionProto& function, const CheckerContext&, const LexicalScopeContext&); + +// Check schema compatibility for 2 opset versions for a given node. +// Checks whether the schema for 2 versions is same, this is true when the opschema +// does not change between versions. +void check_opset_compatibility( + const NodeProto& node, + const CheckerContext& ctx, + const std::unordered_map& func_opset_imports, + const std::unordered_map& model_opset_imports); + +// Checks all model local functions present in ModelProto +void check_model_local_functions( + const ModelProto& model, + const CheckerContext& ctx, + const LexicalScopeContext& parent_lex); + +void check_model(const ModelProto& model); +void check_model(const std::string& model_path); + +bool check_is_experimental_op(std::string node_op_type); + +} // namespace checker +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/checker.py b/third_party/onnx/onnx/checker.py new file mode 100644 index 000000000..bf8e72651 --- /dev/null +++ b/third_party/onnx/onnx/checker.py @@ -0,0 +1,111 @@ +# SPDX-License-Identifier: Apache-2.0 +"""onnx checker + +This implements graphalities that allows us to check whether a serialized +proto is legal. +""" + +import functools + +from onnx import (ValueInfoProto, + AttributeProto, + TensorProto, + SparseTensorProto, + NodeProto, + ModelProto, + GraphProto, + IR_VERSION) +import onnx.onnx_cpp2py_export.checker as C +import onnx.defs +from google.protobuf.message import Message +from typing import TypeVar, Callable, Any, Type, cast, Union, Text +import onnx.shape_inference +import sys + + +# Limitation of single protobuf file is 2GB +MAXIMUM_PROTOBUF = 2000000000 + +# TODO: This thing where we reserialize the protobuf back into the +# string, only to deserialize it at the call site, is really goofy. +# Stop doing that. + + +# NB: Please don't edit this context! +DEFAULT_CONTEXT = C.CheckerContext() +DEFAULT_CONTEXT.ir_version = IR_VERSION +# TODO: Maybe ONNX-ML should also be defaulted? +DEFAULT_CONTEXT.opset_imports = {'': onnx.defs.onnx_opset_version()} + + +FuncType = TypeVar('FuncType', bound=Callable[..., Any]) + + +# TODO: This really doesn't seem worth the metaprogramming... +def _create_checker(proto_type: Type[Message]) -> Callable[[FuncType], FuncType]: + def decorator(py_func: FuncType) -> FuncType: + @functools.wraps(py_func) + def checker(proto: Message, ctx: C.CheckerContext = DEFAULT_CONTEXT) -> Any: + if not isinstance(proto, proto_type): + raise RuntimeError( + 'You cannot pass an object that is not of type {}'.format( + proto_type.__name__)) + return getattr(C, py_func.__name__)( + proto.SerializeToString(), ctx) + return cast(FuncType, checker) + return decorator + + +@_create_checker(ValueInfoProto) +def check_value_info(value_info: ValueInfoProto, ctx: C.CheckerContext = DEFAULT_CONTEXT) -> None: + pass + + +@_create_checker(TensorProto) +def check_tensor(tensor: TensorProto, ctx: C.CheckerContext = DEFAULT_CONTEXT) -> None: + pass + + +@_create_checker(AttributeProto) +def check_attribute(attr: AttributeProto, ctx: C.CheckerContext = DEFAULT_CONTEXT) -> None: + pass + + +@_create_checker(NodeProto) +def check_node(node: NodeProto, ctx: C.CheckerContext = DEFAULT_CONTEXT) -> None: + pass + + +@_create_checker(GraphProto) +def check_graph(graph: GraphProto, ctx: C.CheckerContext = DEFAULT_CONTEXT) -> None: + pass + + +def check_sparse_tensor(sparse: SparseTensorProto, ctx: C.CheckerContext = DEFAULT_CONTEXT) -> None: + C.check_sparse_tensor(sparse.SerializeToString(), ctx) + + +def check_model(model: Union[ModelProto, Text, bytes], full_check: bool = False) -> None: + """Check the consistency of a model. An exception is raised if the test fails. + + Arguments: + model (ModelProto): model to check + full_check (bool): if True, the function checks shapes can be inferred + """ + # If model is a path instead of ModelProto + if isinstance(model, str): + C.check_model_path(model) + if full_check: + onnx.shape_inference.infer_shapes_path(model, check_type=True, strict_mode=True) + else: + protobuf_string = model if isinstance(model, bytes) else model.SerializeToString() + # If the protobuf is larger than 2GB, + # remind users should use the model path to check + if sys.getsizeof(protobuf_string) > MAXIMUM_PROTOBUF: + raise ValueError('This protobuf of onnx model is too large (>2GB). Call check_model with model path instead.') + C.check_model(protobuf_string) + if full_check: + onnx.shape_inference.infer_shapes(model, check_type=True, strict_mode=True) + + +ValidationError = C.ValidationError diff --git a/third_party/onnx/onnx/common/array_ref.h b/third_party/onnx/onnx/common/array_ref.h new file mode 100644 index 000000000..4a74ece57 --- /dev/null +++ b/third_party/onnx/onnx/common/array_ref.h @@ -0,0 +1,188 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +// ATTENTION: The code in this file is highly EXPERIMENTAL. +// Adventurous users should note that the APIs will probably change. + +//===--- ArrayRef.h - Array Reference Wrapper -------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// ONNX: modified from llvm::ArrayRef. +// removed llvm-specific functionality +// removed some implicit const -> non-const conversions that rely on +// complicated std::enable_if meta-programming +// removed a bunch of slice variants for simplicity... + +#pragma once +#include +#include +#include + +namespace ONNX_NAMESPACE { + /// ArrayRef - Represent a constant reference to an array (0 or more elements + /// consecutively in memory), i.e. a start pointer and a length. It allows + /// various APIs to take consecutive elements easily and conveniently. + /// + /// This class does not own the underlying data, it is expected to be used in + /// situations where the data resides in some other buffer, whose lifetime + /// extends past that of the ArrayRef. For this reason, it is not in general + /// safe to store an ArrayRef. + /// + /// This is intended to be trivially copyable, so it should be passed by + /// value. + template + class ArrayRef { + public: + typedef const T *iterator; + typedef const T *const_iterator; + typedef size_t size_type; + + typedef std::reverse_iterator reverse_iterator; + + private: + /// The start of the array, in an external buffer. + const T *Data; + + /// The number of elements. + size_type Length; + + public: + /// @name Constructors + /// @{ + + /// Construct an empty ArrayRef. + /*implicit*/ ArrayRef() : Data(nullptr), Length(0) {} + + /// Construct an ArrayRef from a single element. + /*implicit*/ ArrayRef(const T &OneElt) + : Data(&OneElt), Length(1) {} + + /// Construct an ArrayRef from a pointer and length. + /*implicit*/ ArrayRef(const T *data, size_t length) + : Data(data), Length(length) {} + + /// Construct an ArrayRef from a range. + ArrayRef(const T *begin, const T *end) + : Data(begin), Length(end - begin) {} + + /// Construct an ArrayRef from a std::vector. + template + /*implicit*/ ArrayRef(const std::vector &Vec) + : Data(Vec.data()), Length(Vec.size()) {} + + /// Construct an ArrayRef from a std::array + template + /*implicit*/ constexpr ArrayRef(const std::array &Arr) + : Data(Arr.data()), Length(N) {} + + /// Construct an ArrayRef from a C array. + template + /*implicit*/ constexpr ArrayRef(const T (&Arr)[N]) : Data(Arr), Length(N) {} + + /// Construct an ArrayRef from a std::initializer_list. + /*implicit*/ ArrayRef(const std::initializer_list &Vec) + : Data(Vec.begin() == Vec.end() ? (T*)nullptr : Vec.begin()), + Length(Vec.size()) {} + + /// @} + /// @name Simple Operations + /// @{ + + iterator begin() const { return Data; } + iterator end() const { return Data + Length; } + + reverse_iterator rbegin() const { return reverse_iterator(end()); } + reverse_iterator rend() const { return reverse_iterator(begin()); } + + /// empty - Check if the array is empty. + bool empty() const { return Length == 0; } + + const T *data() const { return Data; } + + /// size - Get the array size. + size_t size() const { return Length; } + + /// front - Get the first element. + const T &front() const { + assert(!empty()); + return Data[0]; + } + + /// back - Get the last element. + const T &back() const { + assert(!empty()); + return Data[Length-1]; + } + + /// equals - Check for element-wise equality. + bool equals(ArrayRef RHS) const { + if (Length != RHS.Length) + return false; + return std::equal(begin(), end(), RHS.begin()); + } + + /// slice(n, m) - Chop off the first N elements of the array, and keep M + /// elements in the array. + ArrayRef slice(size_t N, size_t M) const { + assert(N+M <= size() && "Invalid specifier"); + return ArrayRef(data()+N, M); + } + + /// slice(n) - Chop off the first N elements of the array. + ArrayRef slice(size_t N) const { return slice(N, size() - N); } + + /// @} + /// @name Operator Overloads + /// @{ + const T &operator[](size_t Index) const { + assert(Index < Length && "Invalid index!"); + return Data[Index]; + } + + /// Vector compatibility + const T &at(size_t Index) const { + assert(Index < Length && "Invalid index!"); + return Data[Index]; + } + + /// Disallow accidental assignment from a temporary. + /// + /// The declaration here is extra complicated so that "arrayRef = {}" + /// continues to select the move assignment operator. + template + typename std::enable_if::value, ArrayRef>::type & + operator=(U &&Temporary) = delete; + + /// Disallow accidental assignment from a temporary. + /// + /// The declaration here is extra complicated so that "arrayRef = {}" + /// continues to select the move assignment operator. + template + typename std::enable_if::value, ArrayRef>::type & + operator=(std::initializer_list) = delete; + + /// @} + /// @name Expensive Operations + /// @{ + std::vector vec() const { + return std::vector(Data, Data+Length); + } + + /// @} + /// @name Conversion operators + /// @{ + operator std::vector() const { + return std::vector(Data, Data+Length); + } + + /// @} + }; + +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/common/assertions.cc b/third_party/onnx/onnx/common/assertions.cc new file mode 100644 index 000000000..74cc5a33d --- /dev/null +++ b/third_party/onnx/onnx/common/assertions.cc @@ -0,0 +1,34 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +// ATTENTION: The code in this file is highly EXPERIMENTAL. +// Adventurous users should note that the APIs will probably change. + +#include +#include +#include "onnx/common/common.h" +#include "onnx/common/assertions.h" + +namespace ONNX_NAMESPACE { + +std::string barf(const char* fmt, ...) { + char msg[2048]; + va_list args; + + va_start(args, fmt); + vsnprintf(msg, 2048, fmt, args); + va_end(args); + + return std::string(msg); +} + +void throw_assert_error(std::string& msg) { + ONNX_THROW_EX(assert_error(msg)); +} + +void throw_tensor_error(std::string& msg) { + ONNX_THROW_EX(tensor_error(msg)); +} + +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/common/assertions.h b/third_party/onnx/onnx/common/assertions.h new file mode 100644 index 000000000..757702bf5 --- /dev/null +++ b/third_party/onnx/onnx/common/assertions.h @@ -0,0 +1,84 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +// ATTENTION: The code in this file is highly EXPERIMENTAL. +// Adventurous users should note that the APIs will probably change. + +#pragma once + +#include +#include + +namespace ONNX_NAMESPACE { + +struct assert_error : public std::runtime_error { + public: + explicit assert_error(const std::string& msg) : runtime_error(msg) {} +}; + +struct tensor_error : public assert_error { + public: + explicit tensor_error(std::string msg) : assert_error(msg) {} +}; + +std::string barf(const char* fmt, ...); + +[[noreturn]] void throw_assert_error(std::string&); + +[[noreturn]] void throw_tensor_error(std::string&); + +} // namespace ONNX_NAMESPACE + +#if defined(__GNUC__) || defined(__ICL) || defined(__clang__) +#define _ONNX_EXPECT(x, y) (__builtin_expect((x), (y))) +#else +#define _ONNX_EXPECT(x, y) (x) +#endif + +#define ONNX_ASSERT(cond) \ + if (_ONNX_EXPECT(!(cond), 0)) { \ + std::string error_msg = ::ONNX_NAMESPACE::barf( \ + "%s:%u: %s: Assertion `%s` failed.", \ + __FILE__, \ + __LINE__, \ + __func__, \ + #cond); \ + throw_assert_error(error_msg); \ + } + +// The following is used to prevent MSVC from passing the whole __VA_ARGS__ list +// as the first parameter value to a macro call. +#define ONNX_EXPAND(x) x + +// Note: msg must be a string literal +#define _ONNX_ASSERTM(cond, msg, ...) \ + if (_ONNX_EXPECT(!(cond), 0)) { \ + std::string error_msg = ::ONNX_NAMESPACE::barf( \ + "%s:%u: %s: Assertion `%s` failed: " msg, \ + __FILE__, \ + __LINE__, \ + __func__, \ + #cond, \ + __VA_ARGS__); \ + throw_assert_error(error_msg); \ + } + +// The trailing ' ' argument is a hack to deal with the extra comma when ... is empty. +// Another way to solve this is ##__VA_ARGS__ in _ONNX_ASSERTM, but this is a non-portable +// extension we shouldn't use. +#define ONNX_ASSERTM(...) ONNX_EXPAND(_ONNX_ASSERTM(__VA_ARGS__, " ")) + +#define _TENSOR_ASSERTM(cond, msg, ...) \ + if (_ONNX_EXPECT(!(cond), 0)) { \ + std::string error_msg = ::ONNX_NAMESPACE::barf( \ + "%s:%u: %s: Assertion `%s` failed: " msg, \ + __FILE__, \ + __LINE__, \ + __func__, \ + #cond, \ + __VA_ARGS__); \ + throw_tensor_error(error_msg); \ + } + +#define TENSOR_ASSERTM(...) ONNX_EXPAND(_TENSOR_ASSERTM(__VA_ARGS__, " ")) diff --git a/third_party/onnx/onnx/common/common.h b/third_party/onnx/onnx/common/common.h new file mode 100644 index 000000000..def414c8b --- /dev/null +++ b/third_party/onnx/onnx/common/common.h @@ -0,0 +1,34 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#define ONNX_UNUSED_PARAMETER(x) (void)(x) + +#ifdef ONNX_NO_EXCEPTIONS +#include +#define ONNX_THROW(...) \ + do { \ + std::cerr << ONNX_NAMESPACE::MakeString(__VA_ARGS__); \ + abort(); \ + } while(false) + +#define ONNX_THROW_EX(ex) \ + do { \ + std::cerr << ex.what() << std::endl; \ + abort(); \ + } while (false) + +#define ONNX_TRY if (true) +#define ONNX_CATCH(x) else if (false) +#define ONNX_HANDLE_EXCEPTION(func) + +#else +#define ONNX_THROW(...) throw std::runtime_error(ONNX_NAMESPACE::MakeString(__VA_ARGS__)) +#define ONNX_THROW_EX(ex) throw ex + +#define ONNX_TRY try +#define ONNX_CATCH(x) catch (x) +#define ONNX_HANDLE_EXCEPTION(func) func() +#endif diff --git a/third_party/onnx/onnx/common/constants.h b/third_party/onnx/onnx/common/constants.h new file mode 100644 index 000000000..33ae6f253 --- /dev/null +++ b/third_party/onnx/onnx/common/constants.h @@ -0,0 +1,35 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + + +#pragma once + +#include + +namespace ONNX_NAMESPACE { +// For ONNX op/function registration. + +// ONNX domains. +constexpr const char* AI_ONNX_ML_DOMAIN = "ai.onnx.ml"; +constexpr const char* AI_ONNX_TRAINING_DOMAIN = "ai.onnx.training"; +constexpr const char* AI_ONNX_PREVIEW_TRAINING_DOMAIN = "ai.onnx.preview.training"; +constexpr const char* ONNX_DOMAIN = ""; +constexpr bool OPTIONAL_VALUE = false; + +// For dimension denotation. +constexpr const char* DATA_BATCH = "DATA_BATCH"; +constexpr const char* DATA_CHANNEL = "DATA_CHANNEL"; +constexpr const char* DATA_TIME = "DATA_TIME"; +constexpr const char* DATA_FEATURE = "DATA_FEATURE"; +constexpr const char* FILTER_IN_CHANNEL = "FILTER_IN_CHANNEL"; +constexpr const char* FILTER_OUT_CHANNEL = "FILTER_OUT_CHANNEL"; +constexpr const char* FILTER_SPATIAL = "FILTER_SPATIAL"; + +// For type denotation. +constexpr const char* TENSOR = "TENSOR"; +constexpr const char* IMAGE = "IMAGE"; +constexpr const char* AUDIO = "AUDIO"; +constexpr const char* TEXT = "TEXT"; + +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/common/file_utils.h b/third_party/onnx/onnx/common/file_utils.h new file mode 100644 index 000000000..1593536ad --- /dev/null +++ b/third_party/onnx/onnx/common/file_utils.h @@ -0,0 +1,26 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include "onnx/checker.h" +#include "onnx/common/path.h" + +#include + +namespace ONNX_NAMESPACE { + +template +void LoadProtoFromPath(const std::string proto_path, T& proto) { + std::fstream proto_stream(proto_path, std::ios::in | std::ios::binary); + if (!proto_stream.good()) { + fail_check("Unable to open proto file: ", proto_path, ". Please check if it is a valid proto. "); + } + std::string data{std::istreambuf_iterator{proto_stream}, std::istreambuf_iterator{}}; + if (!ParseProtoFromBytes(&proto, data.c_str(), data.size())) { + fail_check( + "Unable to parse proto from file: ", proto_path, ". Please check if it is a valid protobuf file of proto. "); + } +} +} // namespace ONNX_NAMESPACE \ No newline at end of file diff --git a/third_party/onnx/onnx/common/graph_node_list.h b/third_party/onnx/onnx/common/graph_node_list.h new file mode 100644 index 000000000..ead527b9a --- /dev/null +++ b/third_party/onnx/onnx/common/graph_node_list.h @@ -0,0 +1,166 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +// ATTENTION: The code in this file is highly EXPERIMENTAL. +// Adventurous users should note that the APIs will probably change. + +#include "onnx/common/assertions.h" + +namespace ONNX_NAMESPACE { + +// Intrusive doubly linked lists with sane reverse iterators. +// The header file is named graph_node_list.h because it is ONLY +// used for Graph's Node lists, and if you want to use it for other +// things, you will have to do some refactoring. +// +// At the moment, the templated type T must support a few operations: +// +// - It must have a field: T* next_in_graph[2] = { nullptr, nullptr }; +// which are used for the intrusive linked list pointers. +// +// - It must have a method 'destroy()', which removes T from the +// list and frees a T. +// +// In practice, we are only using it with Node and const Node. 'destroy()' +// needs to be renegotiated if you want to use this somewhere else. +// +// Besides the benefits of being intrusive, unlike std::list, these lists handle +// forward and backward iteration uniformly because we require a +// "before-first-element" sentinel. This means that reverse iterators +// physically point to the element they logically point to, rather than +// the off-by-one behavior for all standard library reverse iterators. + +static constexpr size_t kNextDirection = 0; +static constexpr size_t kPrevDirection = 1; + +template +struct generic_graph_node_list; + +template +struct generic_graph_node_list_iterator; + +struct Node; +using graph_node_list = generic_graph_node_list; +using const_graph_node_list = generic_graph_node_list; +using graph_node_list_iterator = generic_graph_node_list_iterator; +using const_graph_node_list_iterator = generic_graph_node_list_iterator; + +template +struct generic_graph_node_list_iterator final { + generic_graph_node_list_iterator() + : cur(nullptr), d(kNextDirection) {} + generic_graph_node_list_iterator(T * cur, size_t d) + : cur(cur), d(d) {} + generic_graph_node_list_iterator(const generic_graph_node_list_iterator & rhs) + : cur(rhs.cur), d(rhs.d) {} + generic_graph_node_list_iterator & operator=( + const generic_graph_node_list_iterator&) = default; + T * operator*() const { return cur; } + T * operator->() const { return cur; } + generic_graph_node_list_iterator & operator++() { + ONNX_ASSERT(cur); + cur = cur->next_in_graph[d]; + return *this; + } + generic_graph_node_list_iterator operator++(int) { + generic_graph_node_list_iterator old = *this; + ++(*this); + return old; + } + generic_graph_node_list_iterator & operator--() { + ONNX_ASSERT(cur); + cur = cur->next_in_graph[reverseDir()]; + return *this; + } + generic_graph_node_list_iterator operator--(int) { + generic_graph_node_list_iterator old = *this; + --(*this); + return old; + } + + // erase cur without invalidating this iterator + // named differently from destroy so that ->/. bugs do not + // silently cause the wrong one to be called. + // iterator will point to the previous entry after call + void destroyCurrent() { + T * n = cur; + cur = cur->next_in_graph[reverseDir()]; + n->destroy(); + } + generic_graph_node_list_iterator reverse() { + return generic_graph_node_list_iterator(cur, reverseDir()); + } +private: + size_t reverseDir() { + return d == kNextDirection ? kPrevDirection : kNextDirection; + } + T * cur; + size_t d; //direction 0 is forward 1 is reverse, see next_in_graph +}; + +template +struct generic_graph_node_list final { + using iterator = generic_graph_node_list_iterator; + using const_iterator = generic_graph_node_list_iterator; + generic_graph_node_list_iterator begin() { + return generic_graph_node_list_iterator(head->next_in_graph[d], d); + } + generic_graph_node_list_iterator begin() const { + return generic_graph_node_list_iterator(head->next_in_graph[d], d); + } + generic_graph_node_list_iterator end() { + return generic_graph_node_list_iterator(head,d); + } + generic_graph_node_list_iterator end() const { + return generic_graph_node_list_iterator(head,d); + } + generic_graph_node_list_iterator rbegin() { + return reverse().begin(); + } + generic_graph_node_list_iterator rbegin() const { + return reverse().begin(); + } + generic_graph_node_list_iterator rend() { + return reverse().end(); + } + generic_graph_node_list_iterator rend() const { + return reverse().end(); + } + generic_graph_node_list reverse() { + return generic_graph_node_list(head, d == kNextDirection ? kPrevDirection : kNextDirection); + } + const generic_graph_node_list reverse() const { + return generic_graph_node_list(head, d == kNextDirection ? kPrevDirection : kNextDirection); + } + generic_graph_node_list(T * head, size_t d) + : head(head), d(d) {} +private: + T * head; + size_t d; +}; + +template +static inline bool operator==(generic_graph_node_list_iterator a, generic_graph_node_list_iterator b) { + return *a == *b; +} + +template +static inline bool operator!=(generic_graph_node_list_iterator a, generic_graph_node_list_iterator b) { + return *a != *b; +} + +} // namespace ONNX_NAMESPACE + +namespace std { + +template +struct iterator_traits> { + using difference_type = int64_t; + using value_type = T*; + using pointer = T**; + using reference = T*&; + using iterator_category = bidirectional_iterator_tag; +}; + +} // namespace std diff --git a/third_party/onnx/onnx/common/interned_strings.cc b/third_party/onnx/onnx/common/interned_strings.cc new file mode 100644 index 000000000..39f3885f2 --- /dev/null +++ b/third_party/onnx/onnx/common/interned_strings.cc @@ -0,0 +1,78 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +// ATTENTION: The code in this file is highly EXPERIMENTAL. +// Adventurous users should note that the APIs will probably change. + +#include +#include +#include +#include +#include + +#include "onnx/common/assertions.h" +#include "onnx/common/interned_strings.h" + +namespace ONNX_NAMESPACE { + +struct InternedStrings { + InternedStrings() + : next_sym(kLastSymbol) { + #define REGISTER_SYMBOL(s) \ + string_to_sym_[#s] = k##s; \ + sym_to_string_[k##s] = #s; + FORALL_BUILTIN_SYMBOLS(REGISTER_SYMBOL) + #undef REGISTER_SYMBOL + } + uint32_t symbol(const std::string & s) { + std::lock_guard guard(mutex_); + auto it = string_to_sym_.find(s); + if(it != string_to_sym_.end()) + return it->second; + uint32_t k = next_sym++; + string_to_sym_[s] = k; + sym_to_string_[k] = s; + return k; + } + const char * string(Symbol sym) { + // Builtin Symbols are also in the maps, but + // we can bypass the need to acquire a lock + // to read the map for Builtins because we already + // know their string value + switch(sym) { + #define DEFINE_CASE(s) \ + case k##s: return #s; + FORALL_BUILTIN_SYMBOLS(DEFINE_CASE) + #undef DEFINE_CASE + default: + return customString(sym); + } + } +private: + const char * customString(Symbol sym) { + std::lock_guard guard(mutex_); + auto it = sym_to_string_.find(sym); + ONNX_ASSERT(it != sym_to_string_.end()); + return it->second.c_str(); + } + std::unordered_map string_to_sym_; + std::unordered_map sym_to_string_; + uint32_t next_sym; + std::mutex mutex_; +}; + +static InternedStrings & globalStrings() { + static InternedStrings s; + return s; +} + +const char * Symbol::toString() const { + return globalStrings().string(*this); +} + +Symbol::Symbol(const std::string & s) + : value(globalStrings().symbol(s)) { +} + +} // namespace ONNX_NAMESPACE diff --git a/third_party/onnx/onnx/common/interned_strings.h b/third_party/onnx/onnx/common/interned_strings.h new file mode 100644 index 000000000..94a053be3 --- /dev/null +++ b/third_party/onnx/onnx/common/interned_strings.h @@ -0,0 +1,233 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +// ATTENTION: The code in this file is highly EXPERIMENTAL. +// Adventurous users should note that the APIs will probably change. + +#pragma once +#include +#include +#include +#include + +namespace ONNX_NAMESPACE { + +#define FORALL_BUILTIN_SYMBOLS(_) \ + _(spatial) \ + _(select_last_index) \ + _(coordinate_transformation_mode) \ + _(PythonOp) \ + _(CppOp) \ + _(Param) \ + _(Select) \ + _(Return) \ + _(Eval) \ + _(add) \ + _(Add) \ + _(Div) \ + _(Mul) \ + _(Neg) \ + _(Sub) \ + _(Pow) \ + _(Sigmoid) \ + _(ArgMax) \ + _(Concat) \ + _(Softmax) \ + _(LogSoftmax) \ + _(Dropout) \ + _(Tanh) \ + _(mul) \ + _(neg) \ + _(sigmoid) \ + _(tanh) \ + _(Constant) \ + _(cat) \ + _(Slice) \ + _(Squeeze) \ + _(Undefined) \ + _(FusionGroup) \ + _(MatMul) \ + _(Gemm) \ + _(Tile) \ + _(SubConstant) \ + _(Scale) \ + _(Transpose) \ + _(Pad) \ + _(Reshape) \ + _(split) \ + _(chunk) \ + _(Offset) \ + _(value) \ + _(Subgraph) \ + _(BatchNormalization) \ + _(Conv) \ + _(ConvTranspose) \ + _(is_test) \ + _(epsilon) \ + _(expand) \ + _(Expand) \ + _(order) \ + _(momentum) \ + _(consumed_inputs) \ + _(kernels) \ + _(kernel_shape) \ + _(kernel) \ + _(scale) \ + _(strides) \ + _(stride) \ + _(pads) \ + _(pad) \ + _(beta) \ + _(alpha) \ + _(dilations) \ + _(dilation) \ + _(broadcast) \ + _(axis) \ + _(ratio) \ + _(size) \ + _(dim) \ + _(keepdims) \ + _(perm) \ + _(shape) \ + _(axes) \ + _(group) \ + _(inplace) \ + _(transA) \ + _(transB) \ + _(other) \ + _(__and__) \ + _(__lshift__) \ + _(__or__) \ + _(__rshift__) \ + _(__xor__) \ + _(abs) \ + _(acos) \ + _(asin) \ + _(atan) \ + _(atan2) \ + _(ceil) \ + _(clamp) \ + _(cos) \ + _(cosh) \ + _(div) \ + _(eq) \ + _(equal) \ + _(Exp) \ + _(ends) \ + _(expm1) \ + _(floor) \ + _(fmod) \ + _(frac) \ + _(ge) \ + _(gt) \ + _(le) \ + _(lerp) \ + _(lgamma) \ + _(Log) \ + _(log1p) \ + _(lt) \ + _(max) \ + _(min) \ + _(ne) \ + _(ones) \ + _(pow) \ + _(reciprocal) \ + _(remainder) \ + _(round) \ + _(rsqrt) \ + _(sin) \ + _(sinh) \ + _(Sqrt) \ + _(sub) \ + _(starts) \ + _(tan) \ + _(trunc) \ + _(zeros) \ + _(exponent) \ + _(device) \ + _(mode) \ + _(Identity) \ + _(Loop) \ + _(If) \ + _(body) \ + _(then_branch) \ + _(else_branch) \ + _(Captured) \ + _(__control_inputs) \ + _(count_include_pad) \ + _(storage_order) \ + _(Unsqueeze) \ + _(ReduceL1) \ + _(ReduceL2) \ + _(ReduceLogSum) \ + _(ReduceLogSumExp) \ + _(ReduceMax) \ + _(ReduceMean) \ + _(ReduceMin) \ + _(ReduceProd) \ + _(ReduceSum) \ + _(ReduceSumSquare) \ + _(Cast) \ + _(to) \ + _(PRelu) \ + _(Greater) \ + _(Less) \ + _(scales) \ + _(Upsample) \ + _(RNN) \ + _(layout) \ + _(k) \ + _(Flatten) \ + _(ScatterElements) \ + _(Resize) + +enum BuiltinSymbol { +#define DEFINE_SYMBOL(s) k##s, + FORALL_BUILTIN_SYMBOLS(DEFINE_SYMBOL) +#undef DEFINE_SYMBOL + kLastSymbol, // where we start counting for new symbols +}; + +struct Symbol { + Symbol() {} + /*implicit*/ Symbol(BuiltinSymbol value) : value(value) {} + explicit Symbol(const std::string& s); + explicit Symbol(uint32_t value) : value(value) {} + + operator uint32_t() const { + return value; + } + const char* toString() const; + + private: + uint32_t value; +}; + +static inline bool operator==(Symbol lhs, Symbol rhs) { + return static_cast(lhs) == static_cast(rhs); +} +// necessary to prevent ambiguous overload resolutions +static inline bool operator==(BuiltinSymbol lhs, Symbol rhs) { + return static_cast(lhs) == static_cast(rhs); +} +static inline bool operator==(Symbol lhs, BuiltinSymbol rhs) { + return static_cast(lhs) == static_cast(rhs); +} + +inline Symbol operator"" _sym(const char* s, size_t) { + return Symbol(s); +} + +} // namespace ONNX_NAMESPACE + +// make symbol behave like an integer in hash tables +namespace std { +template <> +struct hash { + std::size_t operator()(ONNX_NAMESPACE::Symbol s) const { + return std::hash()(static_cast(s)); + } +}; + +} // namespace std diff --git a/third_party/onnx/onnx/common/ir.h b/third_party/onnx/onnx/common/ir.h new file mode 100644 index 000000000..8d9e5ce61 --- /dev/null +++ b/third_party/onnx/onnx/common/ir.h @@ -0,0 +1,1417 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + */ + +// ATTENTION: The code in this file is highly EXPERIMENTAL. +// Adventurous users should note that the APIs will probably change. + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "onnx/string_utils.h" +#include "onnx/common/array_ref.h" +#include "onnx/common/assertions.h" +#include "onnx/common/interned_strings.h" +#include "onnx/common/graph_node_list.h" +#include "onnx/common/tensor.h" +#include "onnx/common/common.h" + + +#define ONNX_DISALLOW_COPY_AND_ASSIGN(TypeName) \ + TypeName(const TypeName&) = delete; \ + TypeName& operator=(const TypeName&) = delete + + +namespace ONNX_NAMESPACE { + +// Graph represents one "function" of computation. +// It uses a simple ownership model where the graph owns all the nodes inside it. +// All references inside the graph are raw pointers. +// Destroying the Graph will invalidate any pointers to nodes in the graph. +struct Graph; + + +// Node is the base class of the IR graph. It represents one computation +// and dependencies on a list of Values. The "prim-ops", so to speak. +struct Node; + + +// A Value represents an input or output to node that is either a +// Tensor or an opaque Handle object, as determined by type(). +struct Value; + + +class ResourceGuard final { + std::function destructor_; + bool released_; + +public: + ResourceGuard(std::function destructor) + : destructor_(std::move(destructor)) + , released_(false) {} + + ~ResourceGuard() { + if (!released_) destructor_(); + } + + void release() { + released_ = true; + } +}; + + +struct Dimension final { + Dimension() : is_unknown(true) {} + Dimension(std::string param) + : is_unknown(false), is_int(false), dim(-1), param(std::move(param)) { + } + Dimension(int64_t dim) : is_unknown(false), is_int(true), dim(dim) {} + + bool is_unknown; + bool is_int; + int64_t dim; + std::string param; +}; + + +enum class AttributeKind : uint8_t { + // float, float list, int, int list, string, string list, + // tensor, tensor list, subgraph, subgraph list. type proto, type proto list + f, fs, i, is, s, ss, t, ts, g, gs, tp, tps +}; + + +static inline const char * toString(AttributeKind kind) { + static constexpr const char* names[] = {"f","fs", "i", "is", "s", "ss", "t", "ts", "g", "gs", "tp", "tps"}; + ONNX_ASSERT(size_t(kind) < sizeof(names) / sizeof(const char*)); + return names[int(kind)]; +} + + +struct AttributeValue { + AttributeValue(Symbol name) + : name(name) {} + using Ptr = std::unique_ptr; + Symbol name; + virtual AttributeKind kind() const = 0; + virtual Ptr clone() const = 0; + virtual ~AttributeValue() = default; +}; + + +template +struct ScalarAttributeValue final : public AttributeValue { + using ConstructorType = const T &; + using ValueType = T; + ScalarAttributeValue(Symbol name, ConstructorType value_) + : AttributeValue(name), value_(value_) {} + ValueType & value() { + return value_; + } + virtual Ptr clone() const override { + return Ptr(new ScalarAttributeValue(name, value_)); + } + virtual AttributeKind kind() const override { return Kind; } + +private: + ValueType value_; +}; + + +template +struct VectorAttributeValue final : public AttributeValue { + using ConstructorType = const std::vector &&; + using ValueType = std::vector; + VectorAttributeValue(Symbol name, ConstructorType value_) + : AttributeValue(name), value_(std::move(value_)) {} + ValueType & value() { + return value_; + } + virtual AttributeKind kind() const override { return Kind; } + virtual std::unique_ptr clone() const override { + auto copy = value_; + return Ptr(new VectorAttributeValue(name, std::move(copy))); + } +private: + ValueType value_; +}; + + +using FloatAttr = ScalarAttributeValue; +using FloatsAttr = VectorAttributeValue; +using IntAttr = ScalarAttributeValue; +using IntsAttr = VectorAttributeValue; +using StringAttr = ScalarAttributeValue; +using StringsAttr = VectorAttributeValue; +using TensorAttr = ScalarAttributeValue; +using TensorsAttr = VectorAttributeValue; +using GraphAttr = ScalarAttributeValue,AttributeKind::g>; +using GraphsAttr = VectorAttributeValue,AttributeKind::gs>; +using TypeProtoAttr = ScalarAttributeValue; +using TypeProtosAttr = VectorAttributeValue; + + +// CRTP so that Node which inherits Attributes can be return for +// method chaining e.g: +// Node * n = g->create(kSelect)->set_i(kOffset,3)->set_f(kValue,3.5); +// we return Derived* pointers because Nodes are normally held as pointers. +template +struct Attributes { + Attributes() {} + void copyAttributes(const Attributes & rhs) { + values_.clear(); + values_.reserve(rhs.values_.size()); + for(auto & i : rhs.values_) { + values_.push_back(i->clone()); + } + } + bool hasAttribute(Symbol name) const { + return find(name,false) != values_.end(); + } + AttributeKind kindOf(Symbol name) const { + return (*find(name,true))->kind(); + } + Derived* removeAttribute(Symbol name) { + values_.erase(find(name,true)); + return This(); + } + bool hasAttributes() const { + return !values_.empty(); + } + // The names are returned in order, since name actually is the index. + std::vector attributeNames() const { + std::vector names; + names.reserve(values_.size()); + for(auto & a : values_) + names.push_back(a->name); + return names; + } + + #define CREATE_ACCESSOR(Kind, method) \ + Derived* method##_(Symbol name, Kind##Attr::ConstructorType v) { \ + return set(name,std::forward(v)); \ + } \ + const Kind##Attr::ValueType& method(Symbol name) const { \ + return get(name); \ + } + CREATE_ACCESSOR(Float,f) + CREATE_ACCESSOR(Floats,fs) + CREATE_ACCESSOR(String,s) + CREATE_ACCESSOR(Strings,ss) + CREATE_ACCESSOR(Int,i) + CREATE_ACCESSOR(Ints,is) + CREATE_ACCESSOR(Tensor,t) + CREATE_ACCESSOR(Tensors,ts) + CREATE_ACCESSOR(Graph,g) + CREATE_ACCESSOR(Graphs,gs) + CREATE_ACCESSOR(TypeProto,tp) + CREATE_ACCESSOR(TypeProtos,tps) + + #undef CREATE_ACCESSOR + +private: + Derived* This() { + return static_cast(this); + } + template + Derived* set(Symbol name, typename T::ConstructorType v) { + auto it = find(name, false); + auto nv = AVPtr(new T(name, std::forward(v))); + if(it == values_.end()) { + values_.push_back(std::move(nv)); + } else { + *it = std::move(nv); + } + return This(); + } + template + typename T::ValueType & get(Symbol name) const { + auto it = find(name, true); + T* child = static_cast(it->get()); + return child->value(); + } + using AVPtr = AttributeValue::Ptr; + // NB: For determinism, we use a vector rather than a hash map. This does + // mean that lookups are O(n), so you shouldn't use Attributes to store + // a big pile of messages. + std::vector values_; + using iterator = std::vector::iterator; + iterator find(Symbol name, bool required) { + auto it = std::find_if(values_.begin(), values_.end(),[&](const AVPtr & v) { + return v->name == name; + }); + ONNX_ASSERT(!required || it != values_.end()); + return it; + } + using const_iterator = std::vector::const_iterator; + const_iterator find(Symbol name, bool required) const { + auto it = std::find_if(values_.begin(), values_.end(),[&](const AVPtr & v) { + return v->name == name; + }); + ONNX_ASSERTM(!required || it != values_.end(), + "%s:%u: %s: required undefined attribute '%s'", __FILE__, __LINE__, __func__, name.toString()); + return it; + } +}; + + + +// Each use is represented by this type, see Node::uses() +// 'user' is the consumer of the value, offset is the index into +// 'user's input this where the produces will be found. +struct Use final { + Use(Node * user, size_t offset) + : user(user), offset(offset) {} + Node * user; + size_t offset; +}; + +static inline bool operator==(const Use & a, const Use & b) { + return a.user == b.user && a.offset == b.offset; +} + + +// the list types are intentionally simple, but we type-def +// them here so if we need to change them, refactoring will be easier +using node_list = std::vector; +using value_list = std::vector; +using use_list = std::vector; +using NodeKind = Symbol; + + +struct Value final { + ONNX_DISALLOW_COPY_AND_ASSIGN(Value); + Value(Node * node_, size_t offset_); + +private: + friend struct Node; + friend struct Graph; + Node * node_; + size_t offset_; + size_t unique_ = 0; // unique id + size_t stage_ = 0; // 0-forward, 1-backward, 2-double-backward,... + use_list uses_in_current_graph_; + bool has_unique_name_; + std::string unique_name_; + int32_t elem_type_; + bool has_sizes_; + std::vector sizes_; + +public: + Value* setElemType(int32_t elem_type) { + elem_type_ = elem_type; + return this; + } + int32_t elemType() const { + return elem_type_; + } + bool has_sizes() const { return has_sizes_; } + Value* setSizes(std::vector sizes) { + has_sizes_ = true; + sizes_ = std::move(sizes); + return this; + } + Value* wipeSizes() { + has_sizes_ = false; + sizes_ = std::vector(); + return this; + } + const std::vector& sizes() const { + return sizes_; + } + size_t unique() const { + return unique_; + } + bool has_unique_name() const { + return has_unique_name_; + } + std::string uniqueName() const { + if(has_unique_name()) + return unique_name_; + return ONNX_NAMESPACE::to_string(unique()); + } + Value* setUniqueName(const std::string &name, bool rename_subgraph_captured_nodes=true); + Value* setStage(size_t s) { + stage_ = s; + return this; + } + size_t stage() const { + return stage_; + } + Node* node() { + return node_; + } + size_t offset() const { + return offset_; + } + const Node * node() const { + return node_; + } + Graph * owningGraph(); + const Graph * owningGraph() const; + // TODO: make this more const correct + const use_list uses() const; + + // Replaces all uses of this node with 'newValue'. + // + // Given: %3 = f(%1, %2) + // %4 = g(%3) + // %5 = h(%3, %3) + // Execute: %3.replaceAllUsesWith(%6) + // Result: %3 = f(%1, %2) + // %4 = g(%6) + // %5 = h(%6, %6) + void replaceAllUsesWith(Value * newValue); + + Value* copyMetadata(Value * from) { + setElemType(from->elemType()); + setSizes(from->sizes()); + if (from->has_unique_name()) { + setUniqueName(from->uniqueName()); + } + return this; + } + +}; + + +struct Node : public Attributes { + ONNX_DISALLOW_COPY_AND_ASSIGN(Node); + friend struct Graph; + friend struct Value; + friend graph_node_list; + friend const_graph_node_list; + friend graph_node_list_iterator; + friend const_graph_node_list_iterator; + +private: + // each node but Return/Param + // is associated with exactly one place in the node list... + // of the graph_ + // this circular is a doubly-linked list, the Return node is used as the sentinel for the beginning and end of the list + // such that the list never has null pointers + // next_in_graph[0] is next pointer + // next_in_graph[1] is prev pointer + // using an array to allow the same iterator class for forward and reverse node lists + // This list represents a topological sort + + Node* next_in_graph[2] = { nullptr, nullptr }; + Node* & next() { return next_in_graph[kNextDirection]; } + Node* & prev() { return next_in_graph[kPrevDirection]; } + Node* const & next() const { return next_in_graph[kNextDirection]; } + Node* const & prev() const { return next_in_graph[kPrevDirection]; } + + const NodeKind kind_; + std::vector inputs_; + std::vector outputs_; + Graph* graph_; + size_t stage_; + bool has_name_; + std::string name_; + bool has_domain_; + std::string domain_; + bool has_doc_string_; + std::string doc_string_; + +protected: + Node(Graph * graph_, NodeKind kind_); // defined after graph + +public: + bool has_name() const { + return has_name_; + } + const std::string& name() const { + return name_; + } + void setName(std::string name) { + has_name_ = true; + name_ = std::move(name); + } + bool has_domain() const { + return has_domain_; + } + const std::string& domain() const { + return domain_; + } + void setDomain(std::string domain) { + has_domain_ = true; + domain_ = std::move(domain); + } + bool has_doc_string() const { + return has_doc_string_; + } + const std::string& docString() const { + return doc_string_; + } + void setDocString(std::string doc_string) { + has_doc_string_ = true; + doc_string_ = std::move(doc_string); + } + NodeKind kind() const { + return kind_; + } + Graph * owningGraph() { + return graph_; + } + const Graph * owningGraph() const { + return graph_; + } + size_t stage() const { + return stage_; + } + Node* setStage(size_t s) { + stage_ = s; + return this; + } + // NB: This returns an ArrayRef; that means that it will + // get invalidated if you resize inputs (e.g., using addInput) + // We can't return a std::vector& because there's no + // way to soundly cast to std::vector (an insane + // implementation of std::vector could make this representationally + // different.) + ArrayRef inputs() { + return inputs_; + } + ArrayRef inputs() const { + // Vectors are not convertible in const-ness of elements, but + // raw pointers are. + return {inputs_.data(), inputs_.size()}; + } + // NB: This returns an ArrayRef; that means that it will + // get invalidated if you resize inputs (e.g., using addInput) + // We can't return a std::vector& because there's no + // way to soundly cast to std::vector (an insane + // implementation of std::vector could make this representationally + // different.) + ArrayRef outputs() { + return outputs_; + } + ArrayRef outputs() const { + // Vectors are not convertible in const-ness of elements, but + // raw pointers are. + return {outputs_.data(), outputs_.size()}; + } + bool hasUses() const { + for(auto o : outputs()) { + if(!o->uses().empty()) + return true; + } + return false; + } + void replaceAllUsesWith(Node * n) { + ONNX_ASSERT(outputs().size() == n->outputs().size()); + size_t nOutputs = outputs().size(); + for(size_t i = 0; i < nOutputs; i++) { + outputs()[i]->replaceAllUsesWith(n->outputs()[i]); + } + } + // lots of things like chunk have a single input or single output, so we have a + // helper to make accessing it easier + Value * input() { + ONNX_ASSERT(inputs_.size() == 1); + return inputs_.at(0); + } + Value * output() { + ONNX_ASSERT(outputs_.size() == 1); + return outputs_.at(0); + } + const Value * input() const { + ONNX_ASSERT(inputs_.size() == 1); + return inputs_.at(0); + } + Value * output() const { + ONNX_ASSERT(outputs_.size() == 1); + return outputs_.at(0); + } + // Access a particular input. This is a checked index. + Value * input(size_t i) { + return inputs_.at(i); + } + const Value * input(size_t i) const { + return inputs_.at(i); + } + + // Graphs + + // Note [Topological invariant] + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // We always maintain an up-to-date topological ordering of all nodes via + // the next()/prev() links. All transformations to graphs must preserve + // this topological ordering: for example, it is only valid to 'addInput' + // with an input which is topologically before the current node. + // + // Usually, it is obvious whether or not topological order is maintained; + // for example, if you are adding nodes to the end of the topsort, it's + // impossible for them to refer to inputs that are not in the topsort. + // If it is not obvious, please comment accordingly. + + // Add 'node' as an input to 'this' at the end of existing + // arguments. Returns the added node for ease of chaining. + // + // Given: %3 = f(%1, %2) + // Execute: %3.addInput(%4) + // Result: %3 = f(%1, %2, %4) + Value* addInput(Value * node) { + ONNX_ASSERT(graph_ == node->owningGraph()); + node->uses_in_current_graph_.emplace_back(this, inputs_.size()); + inputs_.push_back(node); + return node; + } + + // Replace the input of 'this' at position 'i' with + // 'newValue', returning the old node. + // + // Given: %3 = f(%1, %2) + // Execute: %3.replaceInput(1, %4) + // Result: %3 = f(%1, %4) + Value * replaceInput(size_t i, Value * newValue) { + ONNX_ASSERT(newValue->owningGraph() == graph_); + Value * old = dropInput(i); + inputs_[i] = newValue; + newValue->uses_in_current_graph_.emplace_back(this, i); + return old; + } + + // Replace all occurrences of 'from' in the inputs of this + // node with 'to'. Corresponds to llvm's replaceUsesOfWith. + // + // Given: %3 = f(%1, %2, %1) + // Execute: %3.replaceInputWith(%1, %4) + // Result: %3 = f(%4, %2, %4) + void replaceInputWith(Value * from, Value * to) { + ONNX_ASSERT(from->owningGraph() == graph_); + ONNX_ASSERT(to->owningGraph() == graph_); + size_t i = 0; + for(auto input : inputs()) { + if(input == from) + replaceInput(i, to); + i++; + } + } + + Value* addOutput() { + outputs_.push_back(new Value(this, outputs_.size())); + return outputs_.back(); + } + + void eraseOutput(size_t i); + + // Insert unattached 'this' node after 'n' in the topological order. + // Returns this (for chaining). + // + // Given: %3 = f(%1, %2) + // %4 = g(%3) + // and unattached: %5 = h(%1) + // Execute: %5.insertBefore(%4) + // Result: %3 = f(%1, %2) + // %5 = h(%1) + // %4 = g(%3) + Node* insertBefore(Node * n) { + ONNX_ASSERT(n->inGraphList()); + insertAfter(n->prev()); + return this; + } + + // Insert unattached 'this' node after 'n' in the topological order. + // Returns this (for chaining). + // + // Given: %3 = f(%1, %2) + // %4 = g(%3) + // and unattached: %5 = h(%1) + // Execute: %5.insertAfter(%4) + // Result: %3 = f(%1, %2) + // %4 = g(%3) + // %5 = h(%1) + Node* insertAfter(Node * n) { + ONNX_ASSERT(!inGraphList() && n->inGraphList()); + Node * next = n->next(); + n->next() = this; + this->prev() = n; + this->next() = next; + next->prev() = this; + return this; + } + + // Move 'this' (already in the graph) after 'n' in the topological order. + // + // Given: %2 = f(%1) + // %3 = g(%1) + // Execute: %2.moveAfter(%3) + // Result: %3 = g(%1) + // %2 = f(%1) + // + void moveAfter(Node * n) { + removeFromList(); + insertAfter(n); + } + + // Move a node 'n' (already in the graph) before 'this' in the topological order. + // + // Given: %2 = f(%1) + // %3 = g(%1) + // Execute: %3.moveBefore(%2) + // Result: %3 = g(%1) + // %2 = f(%1) + void moveBefore(Node * n) { + removeFromList(); + insertBefore(n); + } + + // Remove the input at 'i' from this node. + // + // WARNING: This is O(n) in the number of inputs, so avoid repeatedly calling + // removeInput. + // + // Given: %3 = f(%1, %2) + // Execute: %3.removeInput(1) + // Result: %3 = f(%1) + void removeInput(size_t i) { + dropInput(i); + // everything after this input shifts left, + // so we need to update their use offsets to match + for(size_t j = i+1; j < inputs_.size(); j++) { + auto it = findUseForInput(j); + it->offset--; + } + inputs_.erase(inputs_.begin() + i); + } + + // Remove all inputs from a node. + // + // Given: %3 = f(%1, %2) + // Execute: %3.removeAllInputs() + // Result: %3 = f() + void removeAllInputs() { + for(size_t i = 0; i < inputs().size(); ++i) + dropInput(i); + inputs_.clear(); + } + + // Check whether this node is before node n in the graph. + bool isBefore(Node* n); + + // iterators of the node list starting at this node + // useful for resuming a search starting at this node + graph_node_list_iterator iterator(); + graph_node_list_iterator reverseIterator(); + const_graph_node_list_iterator iterator() const; + const_graph_node_list_iterator reverseIterator() const; + + // Remove 'this' from the instruction list and deallocate it. + // + // Invariant: no outputs of 'this' may have any uses. + // + // Given: %2 = f(%1) + // %3 = g(%1) + // Execute: %2.destroy() + // Result: %3 = g(%1) + void destroy(); + + // Dynamically cast this node to the subclass indicated by the + // template variable, returning nullptr if the cast is invalid.. + // + // Example usage: if(auto s = n.cast

ghR>;GU4};HB*yt;Yk>ZGfe5ebTqq^u!NrdodfBrZr+zqrG3Vn zFW)>Hze2hM-F)8`v$uuh4P)tpt~AO5GdN>k8^`_nS!8@IX)G0ikb4uIY|o|;X@83T zrGdTCiFj_Nk6{aw@cTatln?zxcd|~?wVsI>d?AmqT3gB4S(UDw)x^#eo-(qb2 zAyZs?nM=wl>p82CyI&tNlG=EN#z^zt1MkNNhWSvcoh9PTZ3O;(`n)@qiRrnPI6uM` zFJ+UF9hn7BN6wac#qUNRMu3(CV(8$0nyOe!vRx{e%)bMoagi8b`;8*n)cF2biDInz zv*mOtZI2ry!K&Ek($YO*Af%Gkh&hk>rS16kYF*A3H~2WRw!zwM}s)x{)?#xw9kdoKPW` zL~|cHVl(G=YwzB~WK^G#A1=|Ye`U0t^Dx(LtYyzveWFF@E2!N_1=*A5Q*uBop55r7 z?vMwxCa{2eaih_`>!rXZtB&la^w9dVyt_HQiyphpriJS=@a|#{1^xa;H)|Y7ZNnL6 zk#|@SCG~=GZd>8a@j9BezMIa;EJ9(@19mOK9IURN!l;t^j<*pS8mX<~7YWL?(5}8( z@;fYo>}?+OBW^tY(=HGsZ#Q8Ry%#}Y>K~q&-b9j|%`)>=0-r^4cMInm<^-D{=j124 zSAL4L8%61_-w4ENxFXp%4HtI?;a%Qi)^fIoX6ugO-Sq@)H1a^<^aY5zwE&*&>d zjl|Cwp#D${mJ5nFyI=w;GNVwuHbRi(Vg=hf>&aTIjh*eCfcbvm_`7E=5?fL*^58N! zR;a>$;UxZj*+JDGRj7Z90?EYqk@Z70OemHjjaLZ1>`tx-EQ1L^OTSkrh9%z1Q} z^cOn9GByy)MGL9b^AxR@Uqu?SoNuzal}1VEpp^4&j_;m~RT8(^WbUUB`L~IZ3m*uI zUim=hq743KZY8DniTwXBivg!-B#RDGvH4`4sV^kgF}JBf-vuous6QFmcw-mq)ZzKIP+=6# z9RmIQ+vLZ%!_in42Ocj&S8hBd|C@^se22HJrGlPyzN6{qlc_wFyZ+{+Vbj{>6d4zX zvmO%>YTQS;QvzW<+zhk7$6%()P^|wt9+B!tSjuvkwiRLF3B2uX5+QoYO)V1 zBDE%8o|`YAcKu@7@IZ<2o)%d|IM5`SH?+C`1nWL*k3B(wnCPDj?K?qmiJywuB{Hl@ zYBsKH*GC!O1KR#e!DTNk>MD?g81F3=f8mVNnVsyZ!UNI{KEPDhtYIhldwW6+Xa4g% zgH^>CxYYS<>N=BT!m}XBIaiZz4nbU0BQqM(M?xO&DQHd+9o3wV>cbg` zzH^HV9&V$w-a?Wa&0SefCiCo~1k9?EG1*lZtG+EF#m9jN5;1|)fil5_hBu^ZJ{^0{ zJ|*?P@9DZbJGI>UMy3s@W)|LS_&VW7AJWHV?t!c}%WbV$L$#V({unqA* ze5N=&Qpe-_=ybZaTbzC=`D0$19G)6`AU9bbW<&jO#KjvH-ajZlIG4V@tfg)oqqAmd z_$kv)f+_py$4+lNxFTXWvyU9t`rqRD$k!h6sJWfl=w+`$Y(jBQ&K4Ol6K5? zhS^LnymF4D+`@Di>hsTUt1b3d1YoqmDVi1colc&&r=(GtoU1qm^Y~fPnfoaI?hdD> zg+5RYcSG*}PptE<2s#_(|uXyokCICxPT+xaYQ-rr=p`AiEhc?VHX{0(`Rhtqq@ zdF0MLp$n4!kbU5Cz6X**R)D9V^3_H1$QHo=TqTKqzD*x96DViuFi34!!iev#^vsf= zmUNIhedA&F?;4%pnV0qabKM$bgcGY2alb?o+EZGYmImJ$_Br6%; z180(k;y^8TOHTo&j66ZHBl&&*nIhHv3?eUrOgQUs7l9E2?}s4(AnXsHQ*$wd=e7 z@2^D9oJlZ#oko%7^Kk4f=RO{p$X-A8Bnz#H*xme={{Hz!3ntCM(hOG^#2RtO>MMb; z@B}Y%_m&{GIt43pUeeFN9c<2xcAE3Hni}i^A^Bd6_G~yt zn$7(ro>xFC9W?NCycU9V&d|O|qA>Mrriy#7*}qnGltqWbGk*pgccvkJT$I4uCj!q7 zsiSsbB-u~+#0qwl-h0JR0$nG*hOl=c=u{z04rdG1h2NUT^)GT_uFqMD4 zTwren&?EPfULi!;=ZVx}whekQ> zHsQIaW&7x9oFQlVD!}vXH`?n`Oi5Yt82YE5mUPTVPSPaY;=G}TOI0jA-<;3?H`3?C z>+GGvGL&Cxrl_2i1ta#7k8X0wan2v z$(VlbFvP+OA4z(Y3zYuL!lQ&1vN+;HUl)dv)h`!ReO^Ib$^|rcuNETsPUZVd&Q~kC z#jtlSV)?#pJXrgC~y`D=qc0^;fe+u?a?T;nbd*e>YdvN?=xI_o3Xu37KB6rj9yeLX92L29oz@`eGDZdY)8D*T& z{ySHU@R_oX>ItZ4~)`K2b&}3f522XMU7d-lkQ#TIJ$Y5+E}x3L9QF^5St`7K?x7>8H>kE;S%_#G zVIorimD~U%DUQYTks;U>ry~{*)#jhqYFa*%ncRC@>2_W{jb7pk*K3^BO3cFgy#imp zSfTXcW74l?_mfK$Cy`zLe{gZHbg9--a^L-@!r{u#FOC0Z$g{0TL zm`%S}5*J$t{je1JSZqL^sj9fJv5h!+%T5|;_Eox~Pjn9iy>`S)9WUI;`$PNQ7a&e) zKh0j_hdy_r*zxg2EbD7Q-*k@BVP+{?>u#s&IHHG~9kwrLuWzUv%oIPlhnR-r4)+Ok z`^95N_7AF`nS>ot!L*0{(vtLpv~&GnY%4uYC#@B6TE$LOn8;J^-fmcY`~|tr-y!Zt ztP(C)PE(9mUrONjc6I$-Qu|y+oJ+h7Ys&u!7yBL{y?qDKdJNZQn6Im4<9XL z@V8(h=f&?)br9z!tMV~KDG?VNYH8`O0M0~MV(8k*bjLOW$uq6dJT($N_w3O6pDEs+ zT0)v9D@F4tZL+_tOS>l;VuH;{x54>pi0l>y)utnqR(F+ddJTkmNdo5ozC#nb*3qdu z9kkHi1f`QSY0LVp)ZptU6tDNew{OgM9XbwkRM?fJeoHi(?U7tsVMymp*U&A0?w<}B zj(?mt$lT-#-5Vch+oTET+N_SAP3+|xK%~4Y5e>t8;%Ctw8XFW$HE9RMu7Yc49QL|WCy$j0vfH6n#J4=Y4$YCf*5kFQCKPE<3`Il`ZhsBR&P2?)cYw6= zO2rsH51VxMf|E-&eCh@wD7t~BWEy}9nFH6W8~GWZp`2+0sHUoojC3j~PIN=X)I!|4 zu#yt**kR(z7tC-~z~%HUWEeISN;bu)ijKgmUf0|oS;^v(xemYU*N{idS*kttkCb}; z5H#%wy*Ry{8l!vB((jvT(FhG_@wr+qRR$i%6`(t!k?PDg(5B;Z?BR)|^3)g@NO69k zXB>LoZjlJuwbiH!8@vOF9l5xJFXOUZ{Hag4Uk8L_Jrf zqsN?$;>g@_c)cqe&9A3o;*aSRwWg0SIUj{n{U@MhiYJ~w4x@!Rj(AZhg@Qes>BgrD z?((k?x!mJQx4lgpdQ#W&ngW*UuC@{N+)08U9R#l!Bdi^Jo*K5wlcFhmOCMTc5%2PTnGIyFrYu7EP7{{>jeeb&PIa4K zl7FQ=RN@B0>2fb|_f7+MOI?v)GzrsnooMIzj}o0_M$kT8PqE|mFw7<#(cQUQ6nIOF zyfT<7?p!6;uHz8@w24%#FHyzdwWQ=$fTGp1us`L2MwKs;Wt_dXTu?=arklg@KLZNr z*hSOf6YL6H1fwnMYEUqW^L-EUz=sdu8WKB2pcX31*pG|wk?Bzd$U4nex zec-r`OmD#fS?pXiW>}UjA#PZRt4(o#2IsPZo>R z2aaevV}sd&1K{V|Dz2-0(^-WjVvlJk+NAYx!sHco|5hem&z?`ktJl&ZId&FSw$k@M z?&w(8A#SrbqyDHR{kWKfnK~I1v3xs4*%m{pK@I&Yy5Y*;F{seHPe=c}6QQMRIj-|{c)MDc_pC1ax0l7xsYOk zKka7@Xl#-eS}u;Fjdi_AH8h8sdV~o%AD)@{m@$Vi8qJxx6#Qro`5WcKsLOC%NVZ2w zZN7M4xr4qQxhLk=TB6Ux(QsW|N?V>5)59euwAZ+m?jE;>U0Oa)u**7D`Ke^rnyWON zIk>0U^;ab~67fCQn;LPDZl~T6Q+Nk`yF64}QaDRTPxnEjR2<%xb&_fHK&-f2L3f+y zigR@_bUkIHFzlL!-*;T8{cjM8=!3+sqlPYfjuz@YpVL3z%>;!Tw9~OWrpxqqEx!;% z(m&VGkKvAFxXGDW`uen~HIH*S*Xd`gDViE=kQQJ?u66%}WfZ#{o@t=cVi(DKRS3Oh zBhX>(jreTtIyU7~*FAZ7YB&L>)=Q{h;&9x1Hx{KvVPx99o)(uBVAE)IxXHQDyT-ZX z+$_h;K*GsOaX8s60tcV;MBDBjnD@#8Gq!M#{&;uP#GR4o9GQwK;nGk`XYNL3A#`Nj z(9K_q)MJ=(8!!RV@;W#;XST5Hv6@!yokuHMHN=emBcWFmhNV+CQb(9KJ+iqZN*}Td z#3m5?lcb=#zl@60rirV!Qs_^W1@idWKUk|T>`I3~x8x*kO>@GSnV#sK9V*PTI?0-U zw#RoFlGEjCIvTfv{hEpVJvBjH-8PC*`%j{I!Uvx?@3qUsiqfN}(}GBItl;l(J3E=L zazB2c>k#Z@9?+LR%xqGRhhu^#Y&Dwb-sRy`IF7LUPb{`Ot)QUC|53}{E8@{PJKWg7 zULNjV>Iii#u;~gjg|(tm`<+^Hd``6AZOdr#8>v+&zr8$HUoM{(Ra`E3{To&Jr)om}`QkhjSz&@+P6@$3je*X~w;( zOXB$I6lfashr&k*zHjWLYV{JD_R0u-`?OORnKt(gBS)ZVOcbU#9i&|<;}PpKPOLXg zrPeANN(m@LODK257kNWQ{+!r#;4Z~C24TbDsaRNelDrx%nVrmTlZYTxZw?^uiId^W zd|FxKUG!6pQ1mg8W;QJskDm|5#FsrqMkLE+N)ze8Of&JB{i=U#EyTpj>=gQ{fbU~w zQ?Zm1#n)RyX7^y18v*;Ms*evT9nL`I32SJ?XOYLYFbaEqO_IKY9R?OW@8K-gAn7%< zL*=VvC%YnEWX57zT{J$ek|6w7C0Q*`L6s%vr~bU>K42j%9&9I{sJXO9Z#PXp=a03H z133dL@b{qy8S(GcAo(0B{#{ScdZl3hq9S-c*T%spEowW*dHJ+F9KHRF4ykFlCznSf zR_7kwQE|YFf8&tHe%nu~6JR~r344?RaVoGEEdJF|#b#N2nk<6{XZ}!`*hKRs8)@RV z8v3^Q1U+~zgW%~t@ap4*B}Hf4%ltD@^2ik>oDb|Cq%4#SwQ%;*Xfz*IrbVN3@sT+Q zdf#ji@%^eqx6>W-zj)&&`#9F&v!rn3NW8Rk#O#~{G+`R^N2BkO!`hV+kE&`~+QU(( zCNO_&$5#3w@yDp>Xu6_yOY|vl!h#Yh{5Wt)bo!>@?cz+VjLpPWW?}5BcqL9hDJT8j zCfIUxJ}vNyz=B=XvZ&V*yFhC>)*D4L9Ew;Dyk@@ge23L?H%W+ee|^^C_*mb%ad)&r->dT*Rd@ z8z``j;;t7WAmJs|s@8HQJe}uzuCUzPBxG+Mqs^PrVc52rnhGT%)S*$bo?Ri%oA^69 zXaoYK`XIPf2090VaD0vmY8UL2eEKef#h#n#*0g;jcdj=nKG;HKdK0m?jpqq#Ib&;4 zAa<;YffHvqJx)}TyJ)BB7r0x$(i<)bO7!A=kYH3J${fs)e36-K2iAyMEmzo{|0Qvb zpGCv&H_^rP`DE?GyJ;VFaJ~(9ce2lcXC#|e)rmmmBB&J1q?ESIZ$wCUu-Ty+v%`t5-TEp_x`?qLF-H$Gj=!EDam z#A}UV79YD{X7ppHnFM8ld&n9v2!6{KZRs)HXoT0wpIlbxnhHf`mpt;2#!=oPy zh0x*n^hb?nhMUChd@CA#jypu3-cgKuH2H1sBMI0q#eH{e4DWbF(m@UsG3qAy4qPLK zURo|X9ZIRi(+j~#^J(e3!I-1jNJDjUs46du{a;Gxd14~GnOCf!I11Z6OUdTxF3RoR zOy}1tVhqo~+>4Fq4G-*kw^>F!Q9K4+;OzWiD{-37Q}AF>z26Ma*&Q}>m!kT z*h8mxc)+rI4EB8^J0`}cZj%Q9^A80gVEwYq@*-c{HLHvL)Y9P&11f}yjK^`*pIW*b6JQi|Yxy!6$gT^OU zC7VsuaXdB>5vQC*`|hV0Cs1+e(&njYKawo)_PA#Ef}nba~!i5nu3&4)83kd*wzN#OE-r z4pXQmon-EM4;p&P3t7)2up-zQC!P(*oXEcTI5r%QYi|>kM`2`{6^I$<%0bB(;Hw0U z^znReKTawU%=9glMfb>V^mXk|I%~zetFxogL;3*KZWxQSrT!A@fLWqYvQTo-W4!2U zlZCW5J>j_85La#$pyP8l=<^+AaG3*XZ+k(u$?QgmvPJSLC-M7q5H^24D2_Jy;loZt zNWWAf2e-4dxicLH-!+QrJV&^Ohhj}MXRt1Ki^%Fo%>5Zl-qYeScOv^dL$lzs)dV)@ z!r-v)1^rX@5HiJyB)#$kx!oQCx$sDQ=6Ar^)t=D&*+PxqJ?X{zZnXHiir7$p^Bkzc=Q0v0m^zW<`-WJ5k}dgP7uGC}y`#XQG)7c8I6JXf`1T;B6f%yrEa8~Dr^>FvTC867k( zn@L|@-V__2s~{#V1A`wqKvwnz^{RVJ<*$CwhxlrCB^u&$dk3XeWw*zN-vGzxrL2x!jZ9{Z--Io-g|Aj>a@k7sMY?gWJL<)JrLfR=(Cme|`^~ zo397k0hu&`XBuh024jY#R)ngoAeSq5>HA^kJ)2L0>)Jeg9^@+7@v51eZ=4WDo3yZ6 zYB!l_jiJIP>nMJMCK*l4gUh;LO!9h4e~ulc6s;}f+NUobdGUiI+rV+B68q#&S<* z&{;aUau1#N9Z$`+ld;cuk5tuN*;%tMp> zCjLH0qk8F7SRF{imea1}R;mN7hF|n0@}s2FWF+Rba^B0$5ZSz+YMAtfE;%*PU%REG ze#Qd_l4p^Rstb0#{7A1?dyDTK>}hXi|A%uI^k~0CXHO;hU)X{d4Y(?H1>nosnZ4OS78`Ia_RsfcZQ_EoKgI z-v}fx_Qby}J;^ov962@G;O(c6bkimtiUUXC`I=bhNq2$5-C{9l>v6i%tuJERGN5<3 zQtY^LlDxCqsQF1h$(23F$@gw9UFj=e*2jkS+Ri64`!;HQ{Fh>`tfRLtd@=H2COWUA z;Kz`4q?CD&_GxYv7dxBi(0)~9EG(iGve$&RTX!VLJm#GH1u9{W+NOR5NM=4zMy)xj z9|#Iwz+Cj2Kunv=&t<1TEZyEhR&t$^lD>MVnW#p+m-nEb*SKUJyqONZJ51w~H`C@R z#*iI2%YD>nd4#wQ#fqVSDgDVkx}K&^idHYhqPrI;>*poT7i(kB?XR@`;To#lYls}3 z?zkQ3kCs`gxRkb%vjTjtesfklIBP(E{*?>Uw^H=2jl1%_$3We0jaVy{fyiq17tM0T z;~|bT%=rd=b~+`l`KH4^Sq4`OOzFSszPR!-ij0|mGCocP(|Cs{uk0ffYD`hra$5{i z98P(grC=RXh<(g(#1QtUf0d!msvjbwWE%B9I~<4Yw$al1NHoe>!KgS7St*~W6LK^l zO%s(){jrMkG8MUrR6Aleotf&4jokSg!WrR7a;3EL)j(|H-}#+B<<#E%M~v7#o60Xm zQ{Dc0(=Y3F*w-1sW}c)dd6)xDG|M$M&NJmWU}ISg6%hGF%CWYj-~{jd5qe2so}7&r&5&^%E~?`F|$a*(&O6j-4%=$ z=LwR;Inh*SJPdE$o#9Y~PBX{q9s#&fhth3D#x!elLK}AqcG=o`vB8Fd|OEDKMvA9q|@d`e0YS*W( zVcW%{qvOf$-zz$>eEYmj!&EUyi`2?Yu(``5bR-?8!w33e@$(--W7la)j%;Dx zhCglS&=+l-nf+hhYrbkf7zKW!8K>H5yqPb(I;4hRwK%LaNFsOM1E#-fpbwp@Lak9B zgB5;}!yJO!zGKw&OdR^&jl!0B2gr`^c5}MOWBLje?BluU6zwX?JXI>zpE^ZS*X6P0 zdNTGtR-}*n2BPTNH2cg*8p(I0F|8`(y6+ps&C4e3r2$m-J{jXbMqu2TLG16f z!TVGR-H%Sf=^mEwwoAg=wcjb!JPjQk(KwVRz+(YQeK%5Qu-~&{eT{gNS%B9;^60UG z_etFb(1b`eEX+A4s*kzQdb0{LD0s?q1XuWKEut#U<-Oh4PLYRp&|eag_8aWXW=_Goki)FaYdI!i>JikI|`2*>FC$rNy7JH37VkMAJ| zsOD!QIf@lDl4sVL>R!m-F`k|zzotP~Q*oK!z1HD!_*&jmXzJHdqWKp3TB8V!`3*F> zE`_?44x*k9mxxui%!bZRf#gvvmORm+^<9Ue*Vs9(W$ z`p<@BxzCXdkX%`20Oi+1aHc#RTL(>r?#3WmB!5?|Ik}lWS-Ug8s7zQ^Oh#_*Fxsd7 zk79GEvwej62@(-G&G zu^hP13)U>O`S7wn(W&7dX6#$){LL_D)DLLcw(l(zOMWgd~i{oNis zf6GQ_Y%_(7Plpk||37kGC15M(l8cRi3mF&~^;q2O=S<}nYe{zDJi4yjNWo#5IMiMQ z4dq=lZ-6rI$bZwG_z8HZ&%1+j=2-V-0BNair+}s01?c2mg@TGuvYtimE;W?>WfJ5* z>tcaUjd&U31@&Rt6d1$VNyBCII+}OH-%K%&v(;W+W~6kXg~B{_CD)QO@$!oT$r&o* zqtR_jb1S8;`#%${o`kaLJH)rEzM@3O8;c5Rgk`r0IC}O5b$Kv{vf@LTQ`v)OurBC5 zJqp#mE>e%v$vE7~Kl6Cz8(*9P#o8#;)o_+6wihPNAB`0uw!HgfUd69pbR>#-QqKII z)V0JpS$j&ln1!3Ow~2SEIV5ZE3a1ymr%v{U+g3T6o6W`>sqaGbiUxFbn1wrPFiLMH zVdn}Bu((ARvbp;y*P1(5hkT%ukxr-Ij)V65A?Ox1 z3E|y!P=70ioKMH%aE>jtyIVr_V-@|)O~a%o?WFSOFHI{yMUTto&{J1_79C*L)Sw1Y zBeg`b&&?A-n}aE!&n{Z*=0lo3m43xq?SOccL;&>y}dM;XUlW;j6~}Cr=mVr z3%`%)Q=4W#oa!x&V$Mg-oC&h3OvO^COfs2QjJ@|fcXbL-;Hgj+zlh4aG(!PXdV$rk|7nT9c0(<0#$Ps{pZs$~UJ432zN5>j+KQ#agdoB}? zyJqn2(GyPcYw31^y%^-3iKUYU(DO&eXs_*wr>{#Xcypi#(Url&^~P9`IS}6$eW2IZ z)ZkcilFmmv(bBjwiS^4IN~5W$?ly$?`BE_I?nD1FhN7p^3t=Lxur%2pAGX+wtX_}B zkO>=Ue7D=e&e`%EGWCiZE~6NZpQ&!iq=6RLbZ42cHhp?xHB6%Z%Zh(+c5yp(}dYNU^(d7&R_X zMbp(A5(B3eQskYLvac_kHofCJ=mHw&bx@4yzlBUe+DS_KM-+(%e+!+OR8LVIsUVJ#nSyUW(YjxrB(H zl-Hqya>sN;f|>QzX6!0ZpnVm*Xa7$Jzjvr2=5K&_YBPlMcv>*KlZ`JOs#Nvh8;zdV zKnBm3i~4+Rv@{!GXYdoT^tc@c)GnpHjy|v}vO=y|A&PEw()72_s3|N5(Jo_|acBgE z(P?nlyPA9(-0=75GYaGTsLeYcZ2NVDW-i$&S@Tc}$3LE+#9dX?&AfzMwrfbHdd#BO zpdI8^mj{JMf74rg~ zQB5L69Sb^n@u+C&777dA<(zWbC<&1mW6xuAYL3c+dPF(>aS4UOkwvsu)&h>_hU2~8 zNaXB$DZFEIA>S<-M-Hr_i*;=hxhQ9ZK3_xEWCq~h%38{^@rK8j7+SS{FufdenZ9lq zL-lv{Y3#m9JioL+yWAOyD>M<#_r9hR>9*I6qJ-tBKmjXx)2Ue89- zGwe@xWg(>fOP9V?cEx(_hmz}o`S`})39mdSXmJ+NzUO(#nGA1y*d2pXLoZ?6r2zFE zu2?YF272#DBc10wuX(OznOjF5sz*qfxokR*+)*E_V5!Ny`#uH|rEeCf zVy0>8w{MhX;UtEa61LF+y0&>HMP@vrNLTi)zh{^5pIMULec#izJ*;gr;c>DCWEVr6uCMpe7kC*u0Yr+2#E@@f1ZH6riU6c2PT4UF6p4 zV)B!4=qPLA^VU#Nagp5xBL<@8%M5x}KVPz{+JrXV>q3tT1pXw!&jOg1}B`gPlBnDg_?3#C!MrO+6e8Ot+ z@r@3C&iO-4{}tg*ahzD-w3wDF_l5c2MpAm6hInSP?PRaZ`Wy>P3_MReT-cRV;0igv zV6+*(C2xy~Xy^NTd6Nxg%=X0hyb;v-r;vIlXj6tidof;&z_eqdQBZbuQ`n5L-uiH`Id%I}DiQg2vZ9DDUmV@2R_Biixgq`c%ahKhE&I5{Y z^rjp>E$O5p-Z|WljmE_3>DYPxCHwl6(C3&P_t$!0co!`=Cp}@0rW;J$&yjEVQEF4% zFR{C=hc9dDDU^MiTbp)MtSJ$XM&jibNvOE2s6Q+b3VN6#GO5)wGfou_mJC;ifYgFKPJsSBf3K&@Q zQplNCNnRDEqL@F6wDV)Iyx9XX+ebiSOII98ci}E^wIsXk9QCZd%(?Naw7LGg7^$BaQ3*tN62oTe^3L<1am z%569b{iH zf6GBNQ;~f{>@_pdqK!9ODY*L`dV=xLjUSBRCr!}0XfIhX(|+_k_GnT(7C!Su`B8S+ zkFKQta@?1bN2 zbg;axgmyKJ7Tsk^=$B*&CT#gb_7(eRw)QyMW4xcX9c8ERCiVa>o<@}u3gSUWuug{^GdE?ZQsghy)x+GNOQgTSUi;d$c#ckh>hc@k=@!IWOFx z`F1Dm=$eV6`Wnd8{UI)v?-l{Od!gd)ZhELUPjVvA4ciZ^&tg#_Tb zCwJbb=Hq_za3oAsAj4a>_#!t)GI;M#y5KPo|8m^XP~9Y%XKIa03$;mY!y+pG5RF>1 zB5XeC3%Tc|boWFxsU^K7t?9|++oh0-)dth;%&&Cs-w+tpMNzPx5sK;`2zi%Ex{#lW zse^LSaLApkZ^h$_?KxV>|A$#?Y@puGoC(?Cu;MPIB75nGAo# zmCpl@PZ%Qd2^aJlnAzN3>TdU`7v0ON;`^r?t-UF*q{{~JfM@;puZJMzi3^fmMbgX3 z<}@bH2g>gzz=-?M>4#d$CPW>-ubSaYiZaDcoeJMbe{|d3AbIR{kA@DfCzrS7G|>J! z-5%pZgM0p_@z=dbrI#)a8ub-A2iVW3$@#1&$7tl>S2Vd>779;QP_B;+%$UD?xbr+M z9z7N>bQ93d+>aF%QMlH{2%n{flau@t+F1~RxrJ4v-&2ZbvjZTT9e^t$54k<<#c};W z(z_>*$=9OkZKo|fcpkphV?7O+C&4P-6R9|Pqv+~9+H~_i)f)4&W1~HO41G<9@2XQP z7fqIQ-Vk$kX2G=e4fQ(WjklYNDTnXH_7-;7&;2o^Ws+TnGR{68MsvJm(UHhL&a&&& ze1~55OL48+@%xq@F<~lH zF)Qd~0ZwvuHBv!K)P#*kGcgx=!FzhYka@_h^CZ9erUKKVV93ro&m%{vqQqUK&z8cG z2t!2d>W{tR1Me_e{mmtVIL{{2|}6E9qM@ZhAO?XneCS-8Mw^|%V;$EtUD%@ zV-+yIz?e1}#bD5sT&VEBajsPawl}npUDHxg9`uMFSl^bQ-2(;7c^5p*0cW-(k+*dl z^`7Pkt5FWvGWj-lZ~Bx=3hfbVbS+9UwPbjNfyFvD$OAC+61%g=hLtyT`@>JA{YMG%F2$U)u(>) z&rXTfp4Py|uqc}Ib~+h%WPq36}_m7LnunG zJEO;qcVf~zDI8eAzT=0rBBOdR*5wz$`qNnaGFKKMe$r4@3*~)bAQD6Tu{}r;TZ2vM zviuI=-4qB9-hERdmcZ$4prhT;+TJ;n)QHZx-Z3#V{|;>%J(U@>lQDj(84ljKCzkq-fMlFA z298$3#aV%rk{(K~hyKU6%0|sJFLW6s!3dda!mHaDG78OuX46AD+@_3OL)6ihH3-G& z^9Y|u;=X$=KO31zXkLi=ZJ(*VG9UADW02+Ni+!02%ry8%`)}|}?y3X7Cj`|cz+AoJ9g5ch`GWbGTeQ_rlA;nmFH+%XVdjs zRWU2klMbW|!{fbUvB6#s)>o5hf|?iSRR554{%yK(x|2>eDWZ!@14T`?#>Sr3XbtTG z>5bMnXULuRC9^5Nmp|Q%4nfa_Qjj{ZNJJQ!l71FFYaW=h6g3=vncg|3f}$AVehpB_{~ zAx|$;MS~XEnO9T4a%}%gqiy-Qq~8;FaE~^ z!iGAMIX{?BaP8%c@x8m_zd&Q;f6ZYgLLfr-XyZe=1b&03!fE_SG?&|>x{5srW-G<~ zF2UGZ?hWtGzUcqAKfT-MgV|r%=kVVFG2+KUlJ-yGb59a_?R!es4u280E9Ow{rhIta zFT!r_J?Y0}Fm=a(^G^SJ7rY6e&6nNbojIKfD;mVLm-}gTKMxGjoJ~^_|516rN*enuntE#G zKx?BKn*H@L<5Vb(mQSX7y&muyxWVoG8BJtw45k9+XO3f6)3X1fu=$}GdYo~^k(asR z5`XqH8{1!S3$gQEtylHyEh@_(y?;SbmmaDOj#obrM6-{~S*DnV>F^%b{X z>*0}(F-*O=OHyxu^v}c4#diussU6Y=3CV)ha!{7nqDfjwm@q4hhQ_Mlzji0Gntqp5 z%$RrYQ$wbfyU93ktI&U7F0zLEVP}{ucFNoklOHkjpqmxu82KV(nl~nUN1(UD4ss4% zNV18ev8Us+h`8fGQ9jCe*M9-MyJSn(`q-eyf5V}<=NhG}4?x5@=Dn)wLGk;0k?~=l zI9bQ%IG4}#)Q9&nHOf#7TSe#CH6J@xg3o6-4}D`SJ2XwHk8>V|z6^oKJPjxxPDGmh zSvnG&0oey*Fi}|+T}$-Hu)vZ0GarhnTGFt%V1;PwD>N@ujonTCpm;b95nmSw%d65z z*!_y`<>o?C>p&sQa7{Uv?_T8)NX3I*&{-J|I-}h|ySVpMoD)a|(Q8G*(!QJ>_N0To>JgT7BU<=-hIDo=2wD;ZjpIHsIj9HS}P-5P~YpU};b&bV#2i!^na8?}mguP3EY z^dwbWyWba6+mo@)WrG;r#`7A3P;A}WozCu7V7JG9ikEvs@yyOY#P|2ZkKfWU|8{zu zkw-?)^6}a0A)Om@OiZq`!iWq%jIGPT%EWinwyGO?KZ``SvD0Y7`k@&3Y!@9&bzttg zDn6w>B&k!AF=q1>TCp+{zV7oS^IBKZZJ#^B=1Q@c;QXG@?-8l6zq--wC+*{RctnUI zT{&+rf(*I)w5=HK>!+e>{bF`3O@hoB31*cSb0#kz(#I!4F=hn5XjtROlMQ0e90yF& zNXNiKTiop?4@80OLQ(qM3YQeSGGDx&c3XEyUNW!gvEm3yTd|NFZZp&Ctv=r0sG{3n zoZ+5oD9X+PGhRud$HGyN*_n<#{C8VE7=isCt!dK6EJ?6p0^NyuN8j@dsHRg3raxy( zZUmm9)t!nkarsKBA8lyG$MJ|@$JghHN9f0SJ32k(F^yf$eE88%BxlZEDjb8Y``yI7Np4Z$?rzNL%lh(2z=vVQw zZt8{3e>14mvOk>4?8vm38F)2*h?DfB+Cv)RV1EzXJ~NwI9?Id)5kIJm=#P%A3+Y0y zhmwmM(h;V(gg)+%#B!z2^xi=h700K*^OqguPj|tY3=8yZ;Mv5g=ah3K4N^~sp#SDm z9uiLJ zvQ(job|#0Q&9f`EbA zlVU=~!NjQurtfxAptA`A97fVvc6<-gdrIpPIj^%cg>wI;VbPU-I4~+3-)-Yy`pO>q zGb*TxpZzA~p7?ZIUL5#tf){pYXrrYG{W~U${g;Q}wXZVb_}=}l`&N=&Ghg`MUQMA5 zR-`OXmBobZPim{m)U(VW9BKmF_`Gv?L*Lbf`t+T}ZQ@PlC zMh9w@>!`e998Lz=)1wVpbn*E}oaiqL%gJl#^T)T;Gtm}h!9AdOVm_UiJp@e`=F^4D zMO0Cf;b=dH#+XasD9c^09)2jk`h`~Jgt*VTStp#Y{i1Q=Mj{TJIYp)pE`wXe{OhfdlSd@nc z-bACERk7rIHndI*fp5G#tY1iB zYf>PjyNmc_5m8G#>!4bMn{pfC$Jn4RPMnLjEO5Sbu|7WG4@>+1| z>_bKueW0=`9XIUB@FZji@_s}m7^DG_CF7l>iZ3iAo|r{g;v$(lKC5nt=bx|;;K{Co>}_=9_O z>_}2Er5TsL(c;V(l3uevQIWF+jvunYhd?VRE;Yc?>}0&Y)k?oF@XY7_G1~b`g{sE< zqE0<)VX*SCc)B1M8V@(pmsi;^+VqB8Y?uZ9)Q9H=+IY$A;OWXj;{2C=Oq_pgZt9H% z>6z&B@+IAr=PuOG+q6VB8k=IKVvX%M8uDtBWaZsv@pV=f4)Ct7>cm7En!b$&@cpcH zy&R$*d&B>dz_G7AaHZcs>^jE#cB2;3>3fl??7vgHmmUUkzamF_5qYM(rrz08De{*J zP08vH&-n#t&!0{oIAhu;*&RNgd*D=874m6xMT6EBF{)`YCLWK3tPPMET}NKceXwV* z18yB!Kzr4>mzoqUR2=@$s@+3T{jLkhU@86NyqNLC63RYg$@^1NtUbd%;|-r_$BANW z*gFA}J$%SOkNs>e2Ec%6Zch~aneA|b4m=u8n>3s-u)dxA;uJCL`dUg zA#_J2={lYzy%Z^|vEM0DHXkL;)&ewaWVdQgD3a|f3i@7(P%9)Ec?xHqG0`S}Hym&RGocSM|$DJU-rZ(P_ zne*<|u7KQqhrwrAmAjTF&$hfKqx$72BwqE$%BmXr$(?Kp_N2|dBZZ5aHMU*7FZnX> zt*ATHM0#?zc<(TXIRGo@VzG~q9Y0@uvFZs0jRY8m&LgM8*7V8TL-aN&hM{{qnO_`6 z4#u9SpAaXMGPa0Mu6}fpIj(QM1tKo8829w@xNG{Dx<_@#Sk)oyb$URV;|Ieaq*z>V zFo)X$D=aIFp)~>WB)PVTaticumuJ(Klg!}F`nTXcBdE%86lN-2pzC~JcFt}Ps~dBn zY5SVKxA&kr&imR$Z+9QdJgiCM&xrBmTdDc+5vp4>NF3y!-5);N9{p=d$VZY7gx_m4*fl4e339?_VH2kNdu^^E{5v2Uej&$zX>Z2Fl4H zqxW|D5pth44=#rGKHlMPe?ndZyrJY5OkW2#lFx)zaU{hKfs!vG^z>}*Fu$k9-|xg< zvrHJZ{h(3JHkh_`7C9bb*Nl2FmMtlz7sL9{$In-2qE`sEd36%L07xKAl7k!s=83E(4B+e1zQ)*~^;Cw~sZ+jp0Gu!M#L4YyMP0Ep};*4S9^HX93``f~yAm4Ie^EkgCp+Cnp}dY%WL?6<}KBwI&BrK{M!>=j>AR& zKra-{-AG>_#6xP04HTX~qmd24WLBU@8YZLA@!K2zoc&op$cc*Y9HVb%M?<|%AD2F} zi#&@vhoMU;(~Qq5JyubR{B7g+=a@_4BdBdymVcxkB{5`G#(Uspwp72TA1jw8ir|1{h>)iSSlEBsM)0n! z;}BE-jLvi)hMml<_%%V3Y!~OC+jnzXekYZ`yPqhvbs>3=neoQ53p-A(hGE!stPjdIXu+WW zL~*4Yxx&I})>YR^qJ)S3=y-VK96R4GmgyqY;5d7E?rbkmT%CSQH z)v5Ei@k^Hd;qI_!ohMUori5eHz6P>S_d`?HmAwB`qG5gR(0QW(8t9uZ zj51Zkh!ujG@2Wv{NfI2l+aM|QBQ@`o$KPT1#g*{$)YO$Za!2!#k~|(2E`J#%YX!4t zW;`t#fy%%=qR;wa$Z+TR<<~#7Z0ru;_K{}kQjIV!s z!1%5-Ikm2&8wcKNi9Igf`{H_^fvK}+JhL3EA9%tA+uDGx&5lUC^N97hlP z=A+jqOEk`Jlk8WSExE5T3a#}SP}*%rH~G%DhWXH8?F)ow!X6s#dX>x`=AuMYW|5 zX!g}eG#LG&PWJuoE7?YiKOUf(7mq}>u9PsI9taux8oK=<3F8vWX>P0=1~W@O?Bg-& z|2zeAz9wO_P8OBE3#Utd{c${}J59XvLu}YIks@#Xqm;6ZG_R}xrR8l@<*tI`&fW0B zi~UY(meGP=kw}qJp~2i?c<4KX4!_S6!ek`2?~v!ua2WhA zgTx!Zw&mbz5%bemPC>!+Dg4B}8^7`ES~duHe840p*~W@SNYW+?o* zUp`l%g94MJaL*VRA-P8z|4l>!|2?I82co~a6pWrpYA5aa=?wpk6?A6345lp3#HQu}FjKou@(0FX zkZ&7#R|WG9DhmelTWFw(rm$=Y#h6FEP=yboYXdtgV$TxpvoA9CkEqhNN9@mbp^?SC z$p@{}c_x8I*Indi_XId5TqMJB+U$~BOp^=F(Ojo(WO8O56*!NFS+{7?H0>f{PVJ`k zQ7$}Fw-Zx(GkZ(50F#UqX-ZRnoGfXhhCzuqaIA)mr$>?9p+8<_#U*g=-Wz9w=ZdN9 zm)N^-5l!a#kF3W((vc{k^+p1s$6Jx_k8fgjK4(zi51V}-DE>`PI($wWKcWfihU-w* zyL(ChYbr%H_eX(^ISn-pfvn31YC1HBMq2Hsi@*PpCNuu;r8oN#c+>w>l6}=Z0 z!OLVU!tN{KdY%h?ZJS5y7o@;oKj#o-46yG&7AzZg)AO~15Vv(Hb{?@l9W7UTLI_HGwccl87YF&ys=n?}(z= zx!Cno8Uun1F?2_s|(y*izNZpu#`)Hp7R^pcJgK4haW zD}oOP|jf&j#UX z5NGT=lVCU_4+~-rkkx$^bauQG3t&lh{hrXkQPXKf|1Oxe%>+uWd`>;8hPp<3d@Z^s z7Jix`&ehH&jY>K0lC_gh{3DvDtA~Y_=V{2Q8>FyR1xJ5R!uz!$_^OzOzvD_M@RS=m zRz=a#@K}>aYk0rdvGl8qla?$pWoxiC%$bGk$_BqJ03wb1r zzUIRtJQo%`2b*`R2Ri?lBCmfW9+?~zi*j11N8WlG`EdjVyy86E^bl;9oRv7+JRyh2 zt3~%E-60#RhVIvn(8=U0^em|d_A%eayp^4`SNdUJaRJ)R^zm`TDEiUjiEbATlAZx~ zmk0Qu!bllMtKz9u^FOhR`^e9GreWV}Ir6H|f|~3n@nvWLisJjzOs64~6Clu#9Z08L zm_;Qg(AU5h6RT>;rY@O&e}5_DU$V#Cxi=ni|7$Y$$aB2d?e=G>J?E;DRwW# znTchTC1*gZ!};8CZQMdeOfIdzP7&3w$@|q{n99lE*Frtc_{^fnSsC=`K>`+C ze@NxdlW6|=U$lSoUYejkjY0y=@a6(xDfdSfI+W7p@?gqJ4`k{;k~&Y z90m}XRezxaJ8XrK&RFydSWA5sV(8BL0TR7-BT|*=0r~LdwBh-0F?*^pHc#FpQ6Bz^ zY;FB1f9pWlH?dc7&QNj7rIf7J%CN_9ChwCu8)=;g3-t!E#VQ_ZX*M*XWe6=w9>Lx- zp6@VcK`(It9t8H|F3c31No!}9kttl|RFK!2jOd6=A>GFt`_EXw?uZ<88na0uPMeOt z?gc&9l^$U;JjvX-RXlp0gCgx>o^{WsVSb$?bNneyxD}6*&wOW&iNW(??u@C*VpzdA zoSHchf6gglOiDaOsIi~GX*ir7CZK=hTsrxAGF7X%LF-L2X-t%drg9TG_0;|U_vgY( z1_+(_LB#Rz>Y2Wg4&3w>CWcV+MnzSFg3O7yF-5cf}{($UKm zWS-uiJD3|tYj`=?9mz+-b4A{XD#Lu@2}-`r9%{93^y`T!y3P7TGg60(*dABts(p$m zkaMP*J;4-}zn}cnO|f`pE(TWop~uaysa8Ii^Le|Nd#8+-AD9(B_c>L4Po(Y4Xz7Sn zWP-K{PBrl!nC}fqPv4R;yJVIem_`8#yB2& z?;2@uX(ZkyF^AxqJv-wpnAdt%v{DM*)X%1BZT3F(Urf&rjls@@uVn7BhJxpqqB6z` z9UHZ9yFnd24Wyy{tvAYJi{be*3-`PyqPmhh6Q={v^-(SzsrEw18!e=&T%}l}L=15E z$B0EoDD_MZD%&Grai9e4Y1P8GOaW4lIagL&M!C~$Y32Ocw1e;2{cCy%1EZ<*YR(2~ zYVM1ea%JG}9ntvIADy?WX}aTPu_aO(6$2#bHAw-A-?X6j&y_sp@1+wZ5!e;Ej82^_ z!RMRob05PTxUhlWEov^V~K-y!U8D8g#)I4b<+jiJX@(}Prfc(~cn zw8@E*G>b2^m>uQQe~u%sz_BFOI6`()D$>lX(V+O2wk#fmUa$2q_tIi<`qxU~x5XN- zR_Q_ZnGrS|mck-tM_EfOu*%R8d3$WwZRSKab_tZpKC*YS`yn<-k=9meQHX&PF4gi~ ztSteQR!@V~I7fXWpM1l#P^9LJ;gMIwS-uNo&i+nWx2%z7sfx$4`ZTbk5O*eJp?k9q z-d2w!!>w6Zb)b;itaH(Jq!4+hHdBw5JS443L@$+Hv^$JYu5gX&=jx*HO*R!A(#Mzw zc1ZhTM9;o>(%gngsPD`{agnd&$!BRX+~XYminPLD=Hr-rW|yOp3vJSWOH(f%5Y5W< zo;fcfQMfvg`z;6QhocN?N6VpQS3i8Rw}$%mS)^IKos=65@U8oA3V+{8%jEgpno>st z7jf4kR~FaJ7na(>cts!f zh7HGt{Woa4;dn80BKvM5x+1Ckh*)$N^wwWry!h*gpCji}p-L=`h+HDJT~(u*e?ySb zdWUS^JK}=AJeGt^L`?Bns`FP8o6Pn|#xSR5-2Q1|?P+a@*-ItimqPG7X*{YXT=w!A zwuUa39Tr7?72?w_FIa2s_Nw34i>4GmBZuTIe14R}ih+(~?-7glUDk^W>9y1{;;+{N zW_%ymW{@V&kIm{QVhPa;S*rCD|Y-<2r4P9fits^TedA zJ+z*?VoUZkQrv23N_g!ETjeD5*sOpDwaR=y)}=Q* zpm@7P>Wm7VotrBf{lekCKpy>!5^44B91K3jp7fh{DQCMB`skHlTr_6_5(@FKPd>DC zCc~&@DLt!n&P8oFOeq44#g@NJ`%ov1O+UvyF~Z&(+~H>0Txd zMAg&kA@K;jt`6&y$0$_lm55rv8HiC{xRR+wDX*sqxr>iU`a&!U2NdB|q!R2@#^7#N zBGo+jO*3Ov$-W~OPfbrqQf{h3DgGGUGnfJkr|V>SOBc%@59C>}1J3bz?@aA7DmoyK zDP|Wbcc~%H4GBQCe+B(%55%|FMWV}=6p~pu0u3`Q#dRkKtPQ?NGTeJyIyxKa!DB_| z7X`W&_ntVI2GhseX`0(YYUu8Yt*Zx;(SfeGl4k;4?R6yM(#Qw8Sf5Efy!0BhmI2xMVld_+DnE`MZBV6GWY4=v0XH~Dhq|T zJ@NJ`yThjU#{)Zk_*^%~){O$X19ngd_jc~6#K1FPBF%m>1dGp(g<|9n>f!B!i^XZE zz9gvdlOA{f572^-uj#hYMd7QpoF4G}+Nb9z{yE)n#_2vy{OLtGKN4t*l@`UkZ=nSB zCd&INgF~l}QfgZe?@V|XlsE(r8k{lCuO}=E-*C6YADdkX=~nC?R*=V6W*}eu+>5z4 zzs0O2D)?!j3h7xx;M{VGbClg-#`ny)bP4I}bi+8?v54wtftCf2X=l9*?jC5OmKkeB zLL9RS4`;*iNihE1^qX^_AH2s1WNCWN|c$ zz4pB(;wdxG_wNcKcmIKOPCt(9&Fv9(@jmSdSV%h-cp^2K-M<5Vk;*O=Tvm>td&ca( zeqDsf`NOe1(idtqb7=2nS8?@$EW5_!DQLQZ$UMN@S_Ml4o!v~jsWK9u`~OkENI86& zY6M#y=I?yCB(5vPU_{n0am)8D?dERCu>Wer8M_E!oF71gF4!P@hrf89U5JP>d1!c> zBUn2FcMlyQ-;i;Vk_YZo7_5YB-q|NhM_^LYReF72Nm8J`fXpuW;lE99D0Xl(nSb6z z#`^2Y^XCbA;Zy*lCsKfpEcILwg)h0q*qzZE87Gw~ZF3ln3#y_%UqWG_b(=zmsGyhi ze0nkcs;Ep_a}S0-qq>{ zO$ML;^(A@v29i7v!@@aZ=->A|&x>6=={`G_FWf#wIn`Fw!(uMooOn(6);H0Sf@pjn zkV+O-5oj>~K(hn9#8JNU@8I5s--LdkA3ag~sSD(8bx@p11k%%1F|WQ%*v|Y;lsW}% z0sc63kbM`@mRN9rvEF09P~<}w`b~V_|8_@wx{*b&Ft-QB8(g6VrODJLyM-=2 z4#oiX!_4R`z>2<3a5fLX>OCeXY0Ss@v{Lc!+!{L9PZ>qOr<1o!U-B(4qkml&NCH-H z9y5H5*t)_*JQ>9IR_aSuB+YdqVAH zjyO|xN%$uz(DvoZc*H+r+FWJ+J6C{dW&||!8Yr0T`7=(Ulg*J7Rc8yCEz_A9q{HkA zJ{R6>qV5Y)>4eS$3hLsG#I`bW>tcjEJGle0f4!(UDv!sz73uE3J~(EzlWsgyMnAU@ zOo`1yI}&M0W;!kZdV&sbVHTEx1+?WF=}CACzmxi*t)3ZGYi(%L&iNEsa&&=XgHxC^Z<*qc!V*p}hafT0Iuitk09>Bqh}L9U>l|8jbhT-NcW_$7$2Q zaA-X)hX3zUI*=Ggufsej?3*_Wm-O#-)Xb| z2t(Ixlu`N)rA`qnrU zp4Gs*Tvr`2K@zH=b4{{^aFx>jpY0uOVsQP4l)b2_<4+EWl|SdcTq&$=33EXVFrG#UQLNhMv1!I3!?HdpSj)AU}~g5 z+xU(WvTGMLSbJbQ72zklbpA%g(yVnuXrH|yx;Z#djp94flXW8lE$-a&KJDJx>2zh9 zF7F$|(4J>V2WDl!R?3^IZzkdHsgvY7Jrv#8_cs5E0jB9`!05I!6~)Bj^k55i#yMfZ z6XprVGE3y(Cw})$5iNeIm?+QB83*2%-Sxt_P#@(Rt0gthTB&Vpp%9NRNCurA zi$2x6#Xd3@SKj)=#cm&s^SMT`KP>2>N ztRs?irq3X~?oa63uN(BaFdcqTo!m$1%URw;91PNcQo}&%eSQxW@L4}+P9)abdeh#y zvFOGuw6w|WAJZ|z(8h0cdmEn<59`rq8D`TRO-A?sIOjO07v5jtJz(8^n*C=TEf{-K zq|3$ASI$&*zq*dTPX9$?j6%tM;|?0&f0<;sD|20amr!2EnKWhz9J~3%^H-%O^$hOH zjFA{@zqFACe|$wJCMVOaq7;n0H$cIm+OH<6UVA(Gy2kEqEfNomx4irdIc^Ha+xUaykkHQ0mv@)P;5I8E)ULl8A# z6&)xm6`Q83hWl!C2>c&rM1wSyj!B-ErBBE?)T_ip|A%24&2p(etch1+Y%4= zoz5*|5L z((&&Qk9)?$w30KJmx_`4hj-b(Qc)>%@ng9<`K&EOjo%2U<#)lVnh+F7dBS>vK9a(n zNbg1!eOP~lZ2ZRDDAO97bcrQ4Az!Mre!<~+Gwo~&$?#o}Rkf_Rk;rX^cR>swe zYg_7Q;gD;hS=|LQ9(v%W<97;4+C}OmCS>&>9HuV~Krg)!+Cv8&j&AG5q>9MhEe_19*mZ5Dj?X~1BN2SwHN=Gic^|$uu^6|xhC^q z2l4LsGbmM?{g_M6(JW=YFLbUEIxCnVe>j=;9iK}7Ua{w~*&h>J1>SBwD2&ABSS=*(|8P6 ztcUEV*EF+lFZ`R`LUtOCs7~7;UcE5JKHg7ibKc)|8=o@@dZF(gbAf!-0goy z#reH)=5#kySt!%{vL)npk2CwdGSGjuD|QaLN1c%t*kGi9nn&7RRymP$QNKSXJlDdb zd)!qjaX<~bDc|cFGgrg~y9~7vc7o5S=IkzvnG9!swtk&eLGx1PkpKM>Ny|>%kPhazhMx)T(Oo$e7`Dm zjW}mjf?h$T< z>Z#di4pE1HLoZ0lpCs@4!}NanF8Uf74VjR>AsR)~$aCHR~>NYc497ab)&*w}GSa_PU1^rF5WblsUL?`MHh&$W_^_fOEK@(^_A zOiQ;}OonavOD*PaB_W?Lke+QeeA#U^$a6Ox-LC_qfA6Szb{K`3rNiix39QF{qy@%d zkXt;8PL>@Pt^pxv99l0zBOVJI8w>6sKMQsW&re=CoWC-_|Fi z(fzrH>xq$@2BLQ9d@5DXCe@jP@j*u)MTa}Yi|9+F)f7t|O|xiv-$&$ko--zkM3 zKL|79`_R`rQ&3SQ!SJi&$oo<)?LVXnb??4ZY_@}@MTNp(lnj=s7~*9+^J)^Fkn57m zB3fz$=9k`}k~Oo)`1wtmDyszz_Q#r-#nPyfW%Oa8BRttTYInyDmnN0KY;iU!yL)1D zA5H4({)#H?m9cNiSdlxCXI42YXl&6}iPeu4VsgPybW~_yp59lwS8L6Ff}sO%}TV_v&Z;p{y6{kN7>GZaY1u*A!1^e{+Q4Z$3bk*Mam z<$n$3WOR%>h&=xa%T$8?bA70KreZZ`G11g@rb+>?Hpj7h(uFRE zwb1RfG`w(XryhZM_?)_rYD_=V>XpXt%MBx8l+7*GLt0X`}5hS zk%^}9*Tn$NJ|6yPjEHY8up9G5^pjsHmNx95JI~@sd((O`hI!L3d)=djJjZ+Rau9NS zH%V5n@I&->_F3rEN-Puf(Iw*^mBl?G|J^>2Qs@H}7i$_U8_ZoiFQM9zjk0^Kl)zq` zUb8~znAQvW%CnNN9_4hp;WGXBbYEzOd*Eq`6zyKbKA5A1$d(>Who0JEphW~~(`V6= zCS&+dzD=qn1yrIbxyDKRV~n^ONV-xr@>dIeKB3uQQ8Q z`x)Z2!C7*-GoQRTn``p@CwVzlQ}_7;Fw5Eqr=K*_%dT5U_hSuZbC%!bJZGA3W{~Rd zOx&=$E7>`$ks1%@;d?-)FnnzV(|zI4-o2Hwrd=U3( z;fpfMjpU}lv-M-KB;~$?{x080?=Skmz#$wrW>3P+gdhy^(m~E|1^oRT0G}PTqR!!( zFivAuxS1yPdRtBlG;L9_Zz#4$H;G5N%-c;g7pvXp3hT%q8vS|QqE!;GeZ*( z;|g$a_a8AO-~{b_%KOs*W&kD_pw^ai5iQ&3< zK;Js5#q}B2NP+JH4=&E6i3#kE=b^!ZpuYiD_q&eUd-3w}wh%n8|W)&;X@s^sY4zG91g zE;Af8a1NGOldXVnn!1P%b)|VG8Q7-&R^r0!r)P`U;aplzlL`$W*T)sbsvm{Ia(*W= zpVT_55G9k0U_9-fr1qCHPS`PPz&nVf4vwJA|GFT4OExXB-Yt5qNrpk!Y%13+gvT{w zw0_s%++sS4TywDCrZLI`GU?N_C1h~O4h#GKN7vH3;bBxF?Ey13_Kt;f{z%I9+AQX9 z=4;^nHZtuJD0%&P3U2OIz>$60h<%n!f7{$pI{gfl-n>rH+-J1=Q%}prKcR!K?2)*M zC|Y%u`1F(A8LhsOU&)$q(0wFSN1qfsbyiS6PX~1FiNJNw%x9=}njOt~nIn)F0ZyT?=&_tNVV&zT>l z2a(*Z&m>)(MD5HwEq&PwTR+s1^94OzG55oCm5rnztB%4~qoMb05`rQeaHeJ_ZP>)D zkk`s|QTa7U(4&l?+4LB3W|0$@9Ij?6SC6o&VN;~375W%r<_|NL;KU4ibjt)^q@>*?hfW``E+qT-vH7?}Nlq$TMn zIcbbb=@k_IHVi`&D`{AlZPe&a(56+& zjbgG*91UZhTi+!-i{bN1#0$iuh_*BUx$cfEg{5Fwa^YpSuU(@c`z47>*}h#gEk3BNum0tQYRq zHImzhmWlbFms0bP0^uqrh0JHeu&PH26b62w)Ma(##GI=Gy^ZiR^eVm3*hu+Z&TyaE z5o<2>rcviFFlq(f7rQ$>X6f&HM281e4)TqV`Y_5)N*qq~S_fls28h zYWYlF(w9BVi5MCjE%cOMh`_f7ko}&8dA8^21@DWeN`|BAbUcd8oXFw3J}RS&acm&7 zBQ3&lP(2%S1rZ^|0AwEe+?H;~k#GmjA9Hn=V$U_!A4=B2VhNG81uS*7TnjcggD2X~Vx7 z3h>B8#()BxIlh!`Y>$8(v%!m>ouaiCgy4fQczJ&vJ$Si{vvs?Lq|XWAW5#!T=B;fS zR){21IrdN~K${t`@wIx;KFsHqIsZs;wJM&~b-}gh0?DoSn%uDtMAK#i_^T&!j*Gd* zP8zhP&na5CTMkt%FNK!&QPS@HSM=kK@7Eq};)wz8Kmwc**;a^U%r9y=^N^03aBtE? z7ryJ>(9W=KA|Zb=WvtM|(LEbzcKlF&#v5Rk{Vs9krUTL^^EvwCe-y>}x~gI=NWbyN z+n*+I@QQ*v_ZzSOSwt+@peJ(L=+JhPe+3>^B(-kKrK(77|3&h&Pm z0kaJ-)~uPP&oG72{Pk3CWzPG-Eb>(RM5f8zXgjlQN*8+3lpaLainDN~I1ERvYsHe_ z*P{BnHjJfQpnM~Y`uMIAkN73&f2Q;Q zed4+prT`Zk_kF|SM8vInN_m4~+>&;DI*k^Js%LQ%(? zz4rF_`^1R;o$m_c)lw+wUnS9Te=ZiQT#}UD3`1r!&!0?Q(QFrYcx-cp+8cA4B;$yK z!`-l;<1@+VzoS8eXA7^c&N#Vl9htTHqH|3?^52@H{dSuev*0c*ZnZ(YdA(O8&q`b8 zcEhT-=3?(^4{Vw<0+VgiXtHLb*gRGV8hJa((2xBZ*LQjCe5@fdA9jV~s}1D8@)mut znn%+nF+b{YIBo@Gp;dD=Ww1}@d+sa3%OuE8^u*vBK7f@auFuqA55s>?tWhGHjw6b_nD5NlJl7MPTl*|7Rh*!C zVx~BC_p?~)8G~lIlcf0fI2kY>DLVKKji9wu<>i3mlk4fpGdH}NS4K~hi&5p}A%@JH zOn)<(oV{>}pDB$w-$-|L3T_&*dpBg7M8S3?`PRGR;6N9&`kkkW z^S^0lZ9hmie4((jfl&W&k|ZrIl;u>2;6tbBY28VhypQkmVGl*$j4tqh9|FJ6&0Yxy z=23Ck7;>{U#_4_Y$W#6Wg+0;6jLk#2CnAfHT0R&QKMdz>o#^+L;mmO9hUs#B`JKIn zHf9*p{T|lPtmJnm_h~XpobcyaCSGu!{?#c5RO%4A?L9+FYw{3a-5004Y|v4rKtpS5 zX!zG?91k>*glyKqvN`{Wl(B`Fd*--Ml=2euOC=&En>m(?b9rWHi<0fkar^0jv=T+k z7@&{wvmMc)6^I+WpUF*SXC3F2Zs<=zxST4)$FVrW`|r>(Jw&aWDjsf0hg@H2Or5z! zoXB=U#f#TMZBci$R<5Aw%xX}-Wlwnr{*c4m3W{2)1H0ZQsJJO#>`p!*shyh)m|YMh zYj4odg}ifnZ%Cn`QRtR)of=N7Bl>Bj7~-CWcl*r|G3N*G$T`nFXTFe5O~CYv74+tX zA}LtR7NZPS)2v<03;I-mZ!=%ePR?1iUT~r|`%v<<4ae@8`e^teg^I<@>3=#9i-+pa z#o$7keSQFBS_eX!*=BPZ{rTSWI=lf=~{!6aACbEe%Z$ugTeP%0Ym zdNT#@FN9;=2@C2-9xa^u|L4`cF&(SAOcm2ol_;!UA5Z!}BdK4`WTE7W6;U3rAN8Kn z-#(&M&c@W-e48G-_Mrot6cIAOK#Wm!NB1L1bV}NZ)VDW!t-h5;XHv}&*V!hfS`S57 zM$#140h~tq1>Qb z^f>7#UB0M>cSn|zl#GQqnQVrlT3uM}Oe8vfnhw^-z*IL4EgI5jow-m{zJ4Q$G%aDw zIpsc^`%tcVET#=Jr)yn2aoLSCp@S|6`>-y|BKCt)R=ilg(_HlC-Q)U2#?)h7A*R^g zqg9{3(|=?3(9!%B`l)RJgMuEY%;3A$hY<*vl!9*imC^lPH5okirpgutel|0gA*C0( zBuCKvE$-Z}55&Xgi$z=f3JNUG;qNpd^V@XMliv$heS6@oOtnx!o0%8 z;)GVA6TebiIL7|<2ZM>5;_%G2pr6IIoQY!|$$?yq50J&Oc>}PIS#hV9aaLqw5uM;p z{~W#1bgOhS_UvPJ|EpExKer#2)}IqskB>#&sYy8T#T0sfzL4$j5n@NQP@!;Ajn!tX8tgW_KuTUjU)yW~?fCID+GfUcb5S^@O zrSG0aSn2a#_%G$$^pne^_Q!}O&Ynk={QR#OKb|tyy3m|FFKqF;Lo!B5^!-2)qPr^6 zkcaG;J~5mACXR-cwkoPaUC_gH5Z$$~L-MpLT4g^LX0nEuNt~g+HV*gJ#8FpYAL!48l)UUFu{o;fk^|64?_j;7MZx@0Vyk}uplhQf~p=tmru(%zdz=<1-4?OR5o zmutPKu8KqNs0=JD55^{DURDq9N#_b~(hR3ZG%%EN;f5PX`>eor{|RWz{*S#q%zOJ~ z0GncYtZF|7ItGm66?^fTd$}$y&w( zG2NBWXZ(55Y(ETLrGoLnbs8OZSI0K%ee_xN6Rj`yMes5!dfL2&xfkr4HA%zw#J$wG zF$a^kF_*4qsCXtFf?oyKD0OWFK75v^t{IVZb4xJAJ=;QAMSAFW-VTX}C*alXTDp3u zJMR$&icdFvu~Vml5~dy^zeOsTtUOD6Tjho~rLk}x^@tvynMzK9%vL$>K;}HVSN+~0 zCSOU#j^`sFrBQ--_AqW({!sL+w8E7+I^t7GB(uWu$hkd*10Vl$!AW!8yq;DW@ZICU zBPy%cK};*(<6C_3WN`x2maV0n=gTGC+{dHW96fZ~H5q2yT{$~ZRczQ9$No=s+~l0@ z$hsKptsg-dU#dyA)Ci7s0kmz(Zdz{ihuklA2(E%4pS$3Obu++PgD7w>9LvW`aPp8FEw1&9ES@h6|i851hY6-aB`+Bymyx1H|Hdib=xSE zb5cE5yJJVeVo4uWYXqINz^#{QVp4J{YB+;?$f$!Zw3Ap?>WW{!bG)KwUMI;=O`58; zma@Y}Kz?pCjNbNThUqO*zQ3O2G+mK-z)ds?zIWypQ0TKLv~5j8$9V(vyIw}xD?*Vz zLY~gwFvQ!jrF8q?eyX=LBt;z$e7V&RGZx2?)**X5)?F#)#Fmq`mKx@6Ur(DVw8ZA9 zmt@Tj3g_NmX$~_AM)f;PNuBJBDlHSoU)kZyS2tV@x=+2&yXeL_- z+iM26{ifKXe5x6K9n!@5BV}~!UN+UVaz|d{2A#TLjZS7j^tg479hvteYu5BZ!x1S7 zEp8GjBbY4`8iaWsoF6<`PL72!5S-OIHEO=-G)c!KJ!vdD?uoVQ?$EDf?ujZ*M0g3kq;_o=a6($C#4B(tnSwz`^N^s??fohK4JGJyDAU$cuM^Y zj)^|LGihb237(uD1-bjhcswhNQcGR%X3tr=bc_3(P1`9yK^;aF{Ui_m$Hz|1B;%bs zsV;pt?JQ700~|%~Eh|Yb%Mx$hyYsW?0U37ffeF{_sEFAd+nORU;a9jM;gb$7IFIH# z(R7k;h(Jhq0%`vz@UpuHu7Ap;w{rJM{!1ghxFdymZF?zbbRniOFZ0jKkF-awtGLm2 zibg%wgXeEu-dDJZu_{Z%-ErfnC3m;i0cKi0s~w5W54vDkO%_sBRfX3>U4#_&g?ElS zjy+VveZKp?KCyyg%C^uuM`p^eKS)+1kJIRUAKb~C0&n9fnBntP%(HUCXYC|JEFFv4 z@#!M3!GLZIABaiOswgcO1^bmB=w?|f&Fapb`DXTIMq8q{iWlzfXHWb2qm&s=~S$ua-~jE?Hh>mfxbAuMpZQCvXYK$bJxahuW>NOv-z5Abc`(!JkEV|mH2z^WEk-X~3q3`*hQ)xM z#A2MmVC?y(im&T<-+q4_P3StECS<3x&&);gt+~UE1^r7x&oAoOv3USI4-P<1|3%dO=wdp$TOVP&SJMvV4#|~?3+R1@szlQMn>wX9 zf4c9m$iL26JeehucNcEazS9mcKU+dG-tVCWTL)wQl>4IRgHc%T8I2oV`5vD-6xY@+ zB!_#0&^UY$LRqKkHut(X?YEeAf4W4`_gcjq``-9bIv!2@{_MkfyEW|->6Kn8mOtPg z%tHz9;4ZV6x%Rpm{^=_vSqfk6> zEvJLC-LWVB00kWWOk39Uge&|>SLQ#ORx|}=6Kh3JW~C;@`(e4NCp0cK(3sFr?#@`@ zoY54XaUP**qOHZnDL{?X6W<_tLIE~d*Z7_utM)t$C6+^`QhB36Bdj)piZwc4fG`N;| z;@#kWP-(Nkb*ll`o1y`;H~OH%HR9WgF}QW>5e+VpLHj&aI8;PHxmz-J-wuW`Ggf7@ zr;G3^KX$JyBzYO`v2XW=#r9H3$lIedYf2b2{tlCrO14ntx&!pvKc93ry%8n8M`-iz zAL7f1I0RT3;hb(d47@flzt$Q7y;q5Jp~SzpvG}a)jCEg)nXlv`B3D{t*Oj;Q+43A! z?|&qIy>=I}@@wgEKT~li{4F_sGsVvZ&*-g8Gc`JF;6AJyuMG*;=ltLx4vq!cHAv3a-kv)D^wutNq zS=sqt|94*XLCm3n;EyjTsY_`DVdisGUoMMRF?d^*@TG!JT;W>SNe=>=nD}oTwQ( zk_kgS_^JA=*e*L}%}yM}sv0@>x)m?|$$DIU@3*M4JdDxHC$PiFmtxqj{csqd$Nf8H zzS4V}urIYlpwk7692L!e9bNH5dPnpBbfi|S?3`;{#`R=-#t(di_SQihc5WTUG+Y#; z>eKMyN;}MxUf`FTTd~!OM6u@JE-aS&nx5&A^wTn6%lc@x{aP)wjC|SgJ-KGrL|9Cc zI}qd9qV}LV4OVAUvwpEyWi+0RgT{z~``gO?g6xrooQA*dOH5lhUHp}dyl-3O-k`}~ zI$1P|!cRSsx8H>;o2s(;v=EqgNaK`fb4Cc|N7WbLpV1q!Gqe}Y3tc#Og$}RuyMm17?Wh%?#)4CO zu%mZ(b~{*ws*@eLWmtC^Z;uv}szRwQ^l?k}m$ogiMXSNKm?n3(&(8khG{Z;m3YZ#oZ6$j9*;McCcB5#I~DGx(Gp?;Ib`i+|Wm7rzAO^lK(F15ijhgqY{(xiuYJU@%i zKel0rfn-C;JW1CfuY{YtV{G4=Ndsr;fO3)U$2xD`*PMs&eA!LROXP-yWr+DN9oxE| zL~ptORT;YpU!F>CbzKxa6Q=OmwRleNufk`N6I5fZ!^gTGvHr>!KK*tN)*%K=_S1vg zts3muuuf)H1tVV_5-&2!@wUfchHs9e&lSm#$ug847%zNrj)mj*6}TRIQsyfo(Rerq zULolWlDtQ&Ci8J%Z4cg*_u)e`B^R_I9arXhvS?ca%6j%?e4j(&^PX;eHn&hjv`@f{ z%t0I`9jRyKZXwcMl~rA?U`bO=?kKmWx0@9w=t#%*ROzC>wFvla%$c4$L}D)$)-D*z zeocZnxx|>AyRF3A)_Odw`X8F@sR8Z@Im>&BwlmIR_ia@a*c$Ww-G`WaJsIz&Y!zQV zv}VR?4W8FiWzF=q=sn;MlHT@Zo2I&qij_UtqV@RKXM^aqXedw1*;4b7%karGm}<|m z*z9Bk|Lm7c-XIJ7Hy{k|amx`ey-d&iC0o0@w4z2 z48Wl}eFlaR)hZDTyWIfqTVr|I3;gI}g6cumuo^y1v~cVv&wG*l)usY_5i~9VD#FqUpU+sMN9Jr?uv|aL$%n#)Ha6V9<~jD2$i9Rri@#^<0$Mwe;WI(rXvrv2XmMP`|~i7vZPF8bvvlB=mFax{eJFoc*Nf%teYk038C1uPX5X0c99^!CZp-GNXnbcX z4}F1DnaONXbQf`IyP&b`6h^n`!`E-X=auGMQF;b0a$mT-V=R};?6dBh57;^W2pp?T z*nN9vPF1Z&xrTHuWSxfQ^bIJKJdPi|e&WCKlX(ACj|DZB=&hcFa~?^2ixS1W=qNmK zA1<>mRX8VmIk`J!A3!>P3lgibYqaFE+>7Q^rFQIk{R#F3`eD*jKUVoBNbkjOB$;OL zOXulma$1EtUz{;ntj6U3o*?>n5@)Z;MdY6GJo}|JrWxyrTCoe-Qy1aYf*>?&?M`!R z1H?`pz`FTKVuFEWwCptCm)+GO;A03EIxDlbx<51|&ve9wO!my|j=5WxV(|%OdL~+- zwf{RTbM~Q@>@wI`^%AF7>oGS~-oXxB$B2bG3{I6VI&I zab#@|8<@^@<;f1)q5WYY4m$Lu&1hvt%el+WVZ&&w87wml)%ap`MslO<7~wRW{qO&S zw{0iIriP`8+a*m|!$RD?kq4t@i42_G1HU?S$M)aN*-pDRv*H|?KC~&%-x3Jk+n+8D z`ItY)if#H?py!s$c-MNEFn`+$E{BylD`*IVuc>m@qD#2Mq{ah=gn{HF$22p=ioAcVK@VcCfUlct!pkNms zc5`6*lMlEXtb^`0a(g~3l|H?lxmdLlg@>GJIms4l=jY+Zp=)^h{ycgd*Wvf46QnmZ zgVTRaL$q`@ytN$5|NB)g_zdBBA4?24){l4e;yL3}3+%o=n9jBn*|y0#{CXk(4j~5> zwY7sdWU(q|3|WbSpWQ|0-tD>k&>B^4mh=9_>5aI3CW3Ee7a%n{L_}8^i(ic~bQ?R6&WaGexD(A8UoOL{QzpMl zhP%(B3Md~m;;a*KY_DiZmGQQ;?qVs{bqHkSp5g4)S6SXCjJWB;A<^khEfkl^;cj*Z z0so{MU}tOAOqLn$r`k+7|x7l zMIw*uB{Au;A3i;c5s$T2V9}5z_`PZ%o7kE$=0TI6;XIOV#vam{_N}8DWr&UYvOi!((Pw$4 z4&}pDQ|WO)a@eAKva0_B>@+i=`_JGMSeR;QBKb zytgq=oH=QN)h9yuGUuGQIqVq5cW(tP{dXAWB=4tsc1*LVz?v&9MCpU>+%9LIV`cy0 zlH8?fty(1-4xGaGJ({%K+)44TY#DNFwqo%u$@kB0!;jkra-+Q+Cx39~JlhohSM4L# zsQ$xRpYh!DLNcV*O`y-gTCDlrf-V8B@YD`r`IaF#-}oA>^|iU?*m^9N_vk~C8Pjae z2GQ(_>_w|h=EP-TG_#exsUHQf4A#Z7YYKP)m0GWm5%Dn}SD#0}X^dva}vqS&`7 zPd2}bHeCm?`Ar4?_RC;5oiW_=un3!vHK0SDJ%*1s4U3n{ke(;G4&NS${E~N~QUL_N z*eYhIEP%^OPd>46VDDBoEbcdg#rOJ4hW8-p2KGfkRW3Y!b!EC`DYRnE7`(blG4x$6 zo~=(8$>(ZC(w>n*c}xr8QPqbfhK4MW9r@`~y{Y%ZnR8@jzsA^zGGIk7f9X)u`-QFY z9C$eX1m>qML!VQs+a&WUU-JK!|HAbie^GT+dct2zeo19d zc=k)8>e9A~*%>><7aMt(a2d$ZpXX6D;|r|*8Zu_k5bV1!7E6<>gpqR}Hc0MHqeo}h zj+I=Z3}>#oaRQHjf4~zjN5=Rq6p!1q5Fr}}(X;R)=8ke@Rj3i)NBF|@jy%r~?Zv7i zRl@wD{I1*d;QfqaBKvv|7_1D!;#mc#zZ;7oqt0SQW|bJ+a8*6KOE|0A?727jj)FUpRa!nLOL;Wlp<8Fj{+drbqB1tkV08 z>-kzdvUehvpWP-#eg024-6=wGo_wZSL@~rMjHypo%TC)bB)TYgUrWyUHTH@#NfS7} z^=q+Zoe66tXYby+bx6E-9C~Z#3y1fT+c@?I>^$rk_;CT|4wpHlyh40loXm@PlF2pQ z9!vGTsL>eBt8Q|q+-ww+EzaTifd1U%+Zmf=&$cq@msl)Ip;eJD%#q&O)`;NY}j|^b%KMh#fq$B26okc<31++Q* z30*GV&A;*GiR!*S4Jl75T*^O2YCh&3V@37EpDS3 zgf5Se+ERK`(>k(RGAb+km7}29NMx#z;UT^8?K1aNTN4*~>HeQsz2Fb>nZ!LaWM$0?SWJFoI zv#cK$B`@>W3i-Tt z9!A3}0qoh)oAG7UXzW%eyUBhuk??_xWzlTCb~N9%_zkbQqgdN|09P2c@#~w(Ud6j|$B%|xGH0c^C6 z749+{diryLVx#&jD56skJAA!}Y4H$uW!``FPY0^Lox+fdz2R}BUfySO;ds`Pf8`x% zQOg95`fsBmIliULSoh%2)nIwy578uj1RwV)5@#Du09$SiruNjUF#cr7M}3N6<>$_0ia43O`i+)%r{WS+nA;gNo!6f! zS}I6bCUXI!XCr^;QN@T%xz{)KU}!4~*2}EV`DisJbg<>g&;oSyP~zVElK&{ZTEFB@ za=i1FGv}kXGt(7g9 zyXlrFnQKG+_NfR;_$~fUkD!N*67$Ezab@dRp4Q%t>aMFWDziD?4c!X+?S1I@Sd~A{ zdU5ESa~R|B8W~RCQSfI0HdLr`nL#{;+Z{stKr`thQst2DO?lu)5Qb)`vFU&;9?4V2 zMmZzTYB?QCvIfDYbsU~Nn~8+#Acax9{6C)m7Gq3h`NZYBXuj(wR;-b^vIA@J*E^bS z@1EnZ!9ipwqPXMyV+0>_;oh2m!bs^J_6*p7?~<)wldOuaW)MO9CeT3XgUHO3Y~41k zVbwEF?rUw4nlcM-td8KaUspcMPiOEJKd$_E2}Y9F<*e;R!_)oPGHfB%&UF;)yX$kG z*9_s%&>!)qwK%GMOYwT?cvS5_h22LU!Ab6J7o7hi_ATCv6^AW2sP`ZieC|&3%_dA( z70rs!tD-#6UFQ`izyR0LxmHva~Kr0@5?1iN+#@OF)2C`-LdeWc+&}%h-yYe65 zc9ar}3cMKTGEDK~rax~xKSt4}p49K7#m(d8v(3?xO6ScPsjb0+x(|xK5ovUIpCYC@ z$_~qz!6?n_z@8UhD&pk6xv*0l-x-GU&e1)RALK-v3j;asS&_`l>T%Jo*DxEQ!ob2P zelT?8w;d6jwd(<**4nb~F6sP?{*D70K|Che4G*`abK2?IiajZ5)X=yM4PhX8gnw|n zSu|r+9B8YaMxUED_+%5t)|rR!ap!TwN=M+X^$+njM4Pu4IMRD$Gpk1al96~pl88Y5t#S@8=q0~ycP$i#Z-hwCaztJF4e;*Ksl6C3ja2A;h z4`c4DBPbhQhn-i|xu#VsE)QIzxb?{Z8z(Igv8|kBR;?dam)c;-`#DH%qba;H0mFYb zT&CKRv9eFJ*}FHcd!NAiG3L~A*5;uOa))-zfWG-l&^g(GV|88G&i66;Pfwy+WDkz~ zW&_*VrO<9`AY8zb`(78X`*H4uF`-h_Inpa|Q_hMK!Hs@rc_1JjInpa;NQ)ARHULPI63l3d* z%IpJ-WY^%=>nfrBz>;s9{KDbL*Ki*+0IS{x;#*V`URpbeBkWq>?eR^*_`e;Z%Op!C z*Zn}7s!sf-d=-=YM|1V(E%1_T74ZIY7U2W>G3C??IA`65{(>EDwHc-2{(dc39$$^=GUG9`y(6bgP2`}3*RW-l zI%lOzU-r<;*wsu&DD_t3u(K*yqcl=nIe1Bw_fKKr*<8HaGf?s1*JUy6wfvr(dX7#z zLUBW8^q=)gk!OQkXpZi~gwDDcrW(RAvP)WY%Y=Ss%vp9wNO!yg%2zjI?{rlJ-8qUj zH>7hUx=1nq)+}hs48hUF?#!+}jcpYzdGndz_U1bkJ6#RA+P*6{9Gb+-7b;QL?zy79 zbuh=ilR5QUm1uS*l6iGTxc5+>IaU8ZzmB2a!ySnBnukZ{ekpi$Fc+4EVs4T<%B-bV z-98b%ye=l2KSrU^I&Ad%hqk`5_j>*o%9Y1)>-TQ#a6XaltM{Sl3u7*dm;KqFlIt+J zRIK*uC;F|FUiVjrasB=?e5@KRtf~w}>aOKDkTixFx%S+D_ai3wti;n_;kfJ;!?5Wi zXq|Hl6A$P^xA$yhzFUE7T?|CKmv+p$AblLS)*`ubD90x?;i%fBD7n*>*}G)VRILzw z<1fLkdyP0a;V0~kFNwYD*Wf=DE75&kFzOD~Fs%-&6tbBl<+pD?C{?CIZj zkcE1tU&N0@KiIAHXL%RdRXQ_PvQ$opac|`u&sv$cXWCFTevU{A zsuRo2>~Y%G7~`@gvW2#EtIQ0clh;GhV)H@qX2&}`IS`J+7d3?I`dq{`_2jyFU4+>N z$UR+W$vQtO_FA>%;t~2BDR<7dF3(2%b9~>DRSt$0){mH*L$(T4=h1t#>sT*61t{si!&Y-Ip@OhB9 z-A8r}WCnAOQU@+RJDf=!PvGj20bJfWhIcadqp-ZY*yg%OF(y5n89sgK-EO;L%gj0G zZ1)R;we4Pr%NXNuN2l=h9Xtl3%;+8;;3yuKCOBr zo&|@oxON6o$~0KrEsTd=mBIOF0eBv)o57*TdZ{H44*Sv7EcQDR1|YOawJ+)+IJ# z-X?}xKtP!sMeX(PFJ!+7h<0a0&j#f!3| z;5c`r$Ab=8Y}dU3`F)#Gq{_2!-EJ&Q7wzeB^ee`JKf$amX)jg{cp;uVxD2)XkA1sC9gYi;L>*VPm?)X zJqylW*nxwa5w|3Vpd=}kS6*~w)O0uQtz3(}>s~458Wy9koXeam-UStFD>io>$R08q z=c|1MJsz5I+VQ_=c#*{IBTQ*NO8$Q}TOdZ;?tzc%E!^GJh6;605&owfvnHDJzm&D| z+~C5)v8IfyZ^OyA40!aM7VC#(GbLp>-3?`5(ZZftG4eTiwgzkDv-*|GFjUG+(Ecj9 zgF0Dn!rg%}=o5v$c(@neMaM8$m*<|@&AIDS10hc)2n(XSYNL79aeFNhHz zt_bf@F5J@P40dgA#Nb&*9CM==AKX#q7n^l>xbPQlS4Q*F?iwgy!g{-2^nFx|t)F9< z<*-4#8}tT!yTqW4WL0jH*_WBFt@z`ibZC^haPg0}LVJP_#!eo@J0Ekg&9p&$I@6aA z@1BF*w-We;rn76C#iFtGPoX^~gYzXfesk#%j4Ua{?7|SLOMmQ^xlx>~Yaq|uk|qCG zg@4;9*eBABIiZq;zCo40J9VUkmjMU0_7LM=t%Yl+A>10jU(_9YiR7+RvFgSl^w4#t z!QM79M>-x`-Te9SeqYR)br^p)nli`dC_eZH;A`o6d?tC+2zup-zS<#P`y?U_IiWAV@9l@Oa zwOFL1%;OW%;Qcj@rIo#CYCM9wnq@*|cN;!Scc%8y1nw}g_5AP4A@%NGLoPB3G`ZkGTSNl}fT=z!gwL`GnKad*DkKwpHPdIj( zjlZ+{@5{#=BSlHJqCw^&imaIVeoAV##6JlbBPdF|3>X?jF(};%XJXf6xgz& zB%|s?D=(fk+9c1ElQ`9O1O7F3m+yC($;kD`g&paPjcUySFIHmWh*m6&>co#S2a`V1 zfhq$M`DS(>#$^}7)KB^w>t%;PGmQHUA7Eyh1son3P%F-vj)OxvWZ)QHfd#cPd$71F ziSf2!obv7@hATNRMRxHPZ0RQF7H%xgE><|oysVM!Fe*-&@OW($T@$;B9u;O(xvI=7 zdo1uWVGNhIZH65o%23o=@ZsyJ(qAdhi({|gWlbUz>)dGW@)GkSZbC=)DbGeV5h(#n z@Vu;<7%aKmUG`_f*l+;r6Do1xng{=WeT_L)ycP%loFz0peJ zTL^QVhhjPBniQtZ6HP|5T$Ys=h#edNAp-{m=?=(;(a){f=XP0_5n9>{M0$UZv- zTr7jQUG67;CZr2j$ z4H(L%{JJiIZ7fweDy|U~t(tJjf^LMd5%#21iVr^T5Sq9Ly7qv zB_G7@HS%Yz{DgNs)A(@RDb&16W0IUdAFcb$XIEFuqrAKi$ zbjlBre5Z7_(dvZx?Q*c=oj|2Bg zzfLHS`;*E_CxzN$u*XMtI65uB&i^dJ7=hv@##2)Z>p5xLnAi~JSr+%8inN>5hrsf8uMSN zGVRJ`*v!&rTCSJEQu6!^X8aRJa}(%uJeW02%aJSljNUyYlgqHXxc0-HuGQP2E*VVE zKlkDNPjcQl-IJ$oY9Qyn8BT={LxzznM@JcO@dj79r)kc&-=yQWF@dH-I`CXx4IX~~ zi1R37UDp~D9*fZ#dS>^;Iq5}OScQ|59^46o@WvG zGzdwL|AJK`_*M0c_;b9{QTE};eUXTB8Xt>22B(w|yh;E09NUzs{rvW_}NA@}+~ znb~`Uebf9<6+S|`s9YGFlf=Y#%h26(F2V-oi>MBNVBfY*v~!HZnmJPt+Wd&HPU%RK zJ$)I`V2&fsEqT9{8XnJ)%(#aq;6LsW7KXpZ-^j6?t26^u)aF8cD|x<_9+U{#H%jX- znTTFYp5BZTE1fycJ{AAv4(8S{nSt6_CS6;R+#O~>?;g@EaP70=<<{G9J?%|r({(r; z5lqA7ljWH*jHQJ+m@AzERVq70bvwBXSyzChaaMd#dG+VVfW$!z*gx?ZAu*vz*K7n=1JZ@XT`{pEHjKQV&M6zb>^5C_$zk@Vd< z4MAGb?9nlZ{_^?kV^j+BspF_Qw>Jt#_TbKZS&XqwX0e?vJ!db(mRomaS7IRjwc*jq|p<3^Inb2BKM&GnTZVR{~5<#NDslr_o&~w4OlZ9YJt)4@3+R!neyk5#o#@M3yfZu0I#;p9zS$#YucwF+lWXJU+wGaoM+Anx4N#Sqmj zG&jOYqFo+g>C)^|2gRsQ z_wcXbBwi$a!>6up?B6euVO9!;cWH%tmp?=I{CUJroG7~>cHI0>hvnsV?2sm%6IOPt zJ<*Mhl2fQ16vv9u=Dc8j91G_7&@efgs}^{%^$9zMD3g^QeK7jZ8e~6Rq&VCEB~GdA zz+;(F-xz7g*q75c!2rCF5%EWL)QP-3Ab|M`P8i%7c87mjx*u20x$oUVVq+;u*Q zC6N2a;|`qgwxujM{l)10Z^gyAw)|OQrnvMdK_r-^$(!sxX@2Tg~yvqMs&|(-CEi_|Vd%@xIerPsl zjz~2b%B(pv(EHE_kzwp9#%py$jQeu2QmGApNHLpU^pE&zT{43Z0KTk+ogUAFj%G`e-@xE3ZLc zKgq**r^-Jsdho&8bWRU)vRb5+ z#IV83lUf@M`Qeui0*ntTX1v^p_|i|<6*vwe>kqE(e-GDpZXTX*4*vE^TXwvgYK;d0+UaqC;?{TaX#r^`sM+99e|>N9kj%P^o_v0SgS1NEL7NDm5SUpWuY+ujyK{;kEN6aJVj z&nWNmPa#ZxZ^xU*(mJyUCsUfDuu~_VJ8j9qhX-Ku`3g*_$)exguc9p88KtIwg?7bJ zG=}-G$6^JSZtTdgNk&YX;lgDFE5+aoiENZi`Q~*&Y$AOR{}TFOT)-pf6-iIn=om&1 zN?_lCWASFT1AZna@cK%1MWu)IKgcY7MxfkXw`{=O_WfX-;l*5gGg@5I!ZX?1zuGZI za*8}fnv*u8KO4hb)d9*n9ca*E2)^wqLDKJ`jOt-QZEZi^*S4YM%Fp*Ao`m2ihQ{qu|?*ite`O?eMhCTXa zbL;0r=+Zw&bkpd{6{Z@TDznsun`6@vUN`3}Mu~boxlw0eNvqM+9 z#-F0!{y^r-u9I{6oWZ)(Au|GXG8)tNIN+`xqFaUx;SD#_^1!^_`>94lgZbgSfe zNzPn#%|o>7{}^-npTV#Vld&?j8v{ljfmfHA_`FY(BgfBE>|WKAZ{D}#WVgq#D>oNs zJx?k0d(|nz_I?%5x{l%R7xyqy_O0ziPKIMX4P|1rVA_`*osjtt?6)j6H4U{`h6b@#QbQ z%hSIJ%hh_w?cj}s*&)oz9>5M4^5LEr%7#M|q<7Xy{CpwjLylwU)K3XHl0Ol*v4?w} z@gWRRcBRLq>)0*l%q5#|W8SDw;-T6xOm$OZe9bCFXlr#^RDHv#&F^vJQ*$P)+$%Y^ z9zyR&1{cqX;q6(2@cZCcIChIb=1=)P{46;V2If?sDxW`gEjYO505%^|C<^69J$bphwGY7czJoG zqRY!3+@Lnt=**EJ!8B@!;H6<7V6#XUwnHY1*ikYc8=HfX{ftDI@a3=lJ>b`* zR($yQ0o7gtZ|{U7f1NwEPRRS}BpFlbqe_l5cb{ zf~&l*!O6#s^Um)@$7~g*-Dyf~**9ET^F^%m)uP^^^VkqQM_fK3XF26p6qh#}^Ud?- za{iIXNS9jtxln^Cn*PqilC0)*94dh*lbPC3|~e-eA^Mq>C`;|Iq9FB(~``UCd6jq`9dVL-$pRy4izx z{PIjmqc5iI9mB`!WzjcPyg=2?K_G@tMV|8 z|0ui4(v>~`>pzT(lm5Yl${cydhlez~$#Y^PQXj(K;T3X{{TVTD5jNWOz~OtR#T<!m4(KD0p`X(Gyd7qoE9unM=gIobAxPGK@c5-{Ih@ZY&O$Ig>Za zY?0l8R~qYt#*#FadL?6ph7#-7H{;{cA=GkHaBcseaLzd(#zmgPxe=22&@Y76#xL=_ zsT%f737jnN$kxh|Rj6Xa zX2)gDv+^vwd$ysnegO9uImtc(@X0O``p;vwuX zQ-T}RL)keoi~Tgpp!4C6XdLlGW|4-V&;Au6T(vK|S@)r5wgVT+bE?XS-gG-sfIUN< z*rR*^AEw4K#Kwx@TLmW^IHb6+VKYXB)O-AXY02|Z31YZqirhedK!oR3(S6BP%#q#b z_b(izyD*;JCU%k8_BA-=9n01!UT8c2C{$H#D2#Ft^Tm~>#e!JcN7&i+K>Oo9b9W7L!#Bx-yA?Kz#O1AhL3>;(1LFZ-m+)?1k^R`Scn~SEy zU&1UuMZOz4vT;;zzPu5|`PI52!QYO*`v=muco^fFd9XyWNU_i-kgv|`(`TC>Kct_* zzB^NJXJZL!^v-maY`jS6--$?=C_gvN>Cwy^?*lEl zdVdm&D@XE6*R9y4r%;?2-W$ayCehDuyVy7XwU`m~0cRXb@guJs7i;=U?wG&yjvN+q z#3=Sks=?LU1JU)W%sL$lW!lOiSYSO}vOXqK#P@-#UnXzpCc`GoieLWgi}e@oN!N55 zvI~zQr6i4gtY%~3d;=DH59X5IX;}NUIiH2;qAav6uZ2lIVW;Pq(W?W^FFVoP9^A3f z!$Y?+1b4JDssB{Yitm5J?>`yn8K4FSSADK(sY$a{TQEPYFBjtpOqz`1fW1M;XwjXI zuZ?G2`V9owj^%`z#?PP%xF1hZ4+SJrR91Klje z1C>_Ni7lNBEn^w*G(xx>8Nz`11|nBAhUH%yvHGV55ut-8pG-Jgc3fVRZxk~-XDPl^ zXz-4_eeq)bNLW%+dR7LOX^Z1wN}T`QoDCb|*uC_JC|Gb5&FFRQEGzW}m@b=g;E5DJ`IoPV0*gGx#8*7gJLdiih{I+=FGePp7*E zPXtRJM5mbu-7#0(Q^?NHVkN~}lkps$D;@Fnq0DpGjMXEZSX6QxeFKM3bIDKWzVu+2>a3F0y=Fx#6=CyDO*B-C+`zTlM174*j_IVHZXQ zy7Fel94yz{Cw9v_zTYn;W?r0)@Yc5Q`Z$F@Ev3WYtT?*j- zu{|e8t8=~YNHo~*#^tF)dA3bDmzRv@Z0SMR`?d$WMwa7GW`C@>`V~`brrlbcJHaV;n!W5{2i}+2DB% zf4{6mVr3bO7FD44pq-fIR*SLS^2GIuC&>L1fi^bkn0h~%4R_S}TZ$ILQ%68QJd|sd zr330)02iAE^32>4T>7_Bs2Hb9j!+J|H*x0#{VQUvegb=SlwHWxJ$d=C3$F(apl!t= z+_>jY-AU0j8K=aFLu;`xNR2huGI{&8?8(WlOF{N?;c)9Fx^B}zm*Tmi@oWSaH@_zy z&-UZeh_>ujG?4vI)S^O5Di&paH6`>IF8&Vd91@NVlNvEk|jamF$qmJ3!2V*?v% zK9_l?mu8GyI7adp9|?=s-t>|kzd42ZcwtbAbzQe0Xh>;jtN5g$J$~2s_Yd?U&+~rY_jR4; zajcukF6t_(Fl2xGy98)7+$Ni%O=8l%da}>ziNkp*sP_tnedlayY3_kBvu!c%z6)OO z=!&gXoc~l+#Z1nLXr=nov|m=G|pk@Do}-HipbdTg|zyqqf56BWTSA6 zTzhF^gy>15`1v_|Zz!h34o1_?NXXo%rW-t$zMz+Zp}H%WIhs$0oet30D|{AGTrbwR z#G#?YmKL0FLfGXvhTWG++I>*t7c*+oQ^Js11#DA}!+)|)_+nBaO0D~%ds7zLm5$SolQNQfi=>3l z*VDB3?*KSf&Y+I9!y#W|ix;yL*;OmpbN*a-UI-wI>jvD_h=bLXy`sKovB>g?gfGf0!D9jeG9pKgoEKF`2#{jXb@j z!t;PGY)p4bmNg9{lhU!+?sQ%(SYm)1)>kPzhB+kzEYLsjFr_SL6DzlLA=^kN{IZRQ z#?yOLuy7LvjU9$=e2>-FzDP#<{KU>(8Kit63Chfrn_4&thtFIl{{}luO5r@QXE|m2 zAElDXs#v=*m&z6$py<|zbXmt4gL+HY>#oLbv)AO>7(jlpa+p|AMb$kAV$ucn$sL?T z4zIdF##Vx12L~Xb??Z9NZWrqVs>;dm3;E>ahd!|(k@IOnQ^RbPBywS5H2?&_e= zbIx)^%TTXDGx0Pfki6u6&`|@X&^`o=0+ z`(PTKy1zoaej|&*s)v${&|n;j-b*e!CgI8iMY=OY7mtpcQPAsDv@wsXuunfUbC2$6 zVkezdk0S@o&yumEM%`*YQP0&$)H{3<8uw=6-sSald(}YE>xMNJ+*%?kNBpC*eBOc9 zPGl!$0G@};MHFX8$ENF&7?MR7Om|Uk?;g0^|19Y%EvFwl<)I^+g6>OfVf*q5eP$k) z_swTCmvcf}D{@G-2ViNrSL|G9MZ>kdG3~NBZgwr8Dx>4H?DuT!^PPFn$GrQ#lv~&+9_R&<+9!5c56YvG0pm!% zco|)at`cWY_7pcxDo|}7EA;eduW=6VPP;58BW7C;IpBwnyV6lNC;*Ft?vZK8f3((g z1fFtda8Uh4kzZ+shhF<>%()_x=N;+pZzYoGr8=VVM^7Aha**zDrg5p)W4g4}p7Ua_ zY5S>Ek{bVk+E=cnx1%jk_GB`^J&U?nQydP8qvnXm)Z@}5>|Cu46Aj*3of$9MtpjNL z@J0$v`9MMH^;F+%3vahbnk5EP@M~3AF#{8vE7s2phwasu6h7z{9p?<6}AMD!ueL>(b5`;_82zhx8F4<3?_WYu() z{b=>{>SUdm_8=BdOTJU|=Rl;qwG2JVPRNns<7oI;5^^@nqWA$REAKpRu z>hqm~lDb2-cN6X8{79yY3%>Q7gCOGu-mN;oy=A26{AL3CMOi4B!1wzB0i@BMOT)OA z^ua3(#Y+oGJ0XR}SFdE>%XCR@*Aw*c_HpVzP713%x?$Z0efU3nLYXm^xL9tFU_N)8 z+m{Td%kN0Tb2jqxEHLlMT~U*;glgw*rs8$hXgz5IE4MAwvg{{W5%>EKSi%0}H8JXy z2_7W}Bge)Oa&l2nEnP?pljJaO_E1=-mC!1wDiRYnCH3T zaFrG3X4(BU%!3lXWYXQuuPAzWqPVqqHjX|?pkI@l$j4&^ojfLo!ZDg~*z%1mf@48* z&QWmPNbEkG4yT0*nCZcO>s!02(9syaA3o5`@Zoqdd?rTC+QWA+H`K+XAjNwo)s*Ss z+y`a=S}Y)WJKoRUT}p@F{H2#V_B1Vz9U3c=*qdjAh{duvto%?Ulteeaf_hW)&!OA4Ok9EgR7|}#$bu?5~@~nk-nYvbz z{bS?sGC>~e-=%O*&jOt-w`j6-cfQ|OQQ}7poEkNjdT_4Y^iz@8|ze5|3g?{$)?De*|+Zt-fvI7ok! zU_#hw(#uN#BDk2sMxt?-#7D)O!c0=jTEi`^w z8W#Euhe_T&5-)#K0l(`8-`gTw)N{$}@IX@V>`506a!1>!svrENQcjA*Ot?{N3$_FAqa1{&-Rx+La8M~ zB>s9P%DA{{)Kr

Q~=Iez)i1z=l*vf8+ez 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

G)nc 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 ZgZ%l$&sTiOo+z7Y!y4BV{G)e9{U3usWjg=> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ea11374d508125c2dd95d7f5f744ea7a2b7f7c1d GIT binary patch literal 51866 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3d4d5_none_no_weight_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..503a1db44846c66e5be70a0e2d851b390703f464 GIT binary patch literal 25944 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..0120421f277bd2916d102c92ba98b13a5b2700c1 GIT binary patch literal 42 scmd;J6kvCf%1x|@&o3=0C@qOk%CAT*jxR_picii-EH3uqU}k^-02m4j!vFvP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..b9ce4bd076747cc774871ca46ffc930e677096ac GIT binary patch literal 25 gcmd;J6kv4X&CD;2FUcrMEzZc#N%3M~U|_HZ08&r}Z~y=R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/input_4.pb new file mode 100644 index 0000000000000000000000000000000000000000..e9d05f83c5e29951b2d8199020d86ea9fcfe3b5b GIT binary patch literal 27 gcmd;J6kv4XFHX)cN{uhcC`v8P$j?dfVqpLR0Ath#0ssI2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_center_point_box_format/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7744c3fc42bad7b63f8c58a4e9f4d9316ffb7111 GIT binary patch literal 98 rcmd;J=3o|JcM>R0%}GrzNll5*%uC5kPA&HGU_b-RXnaCkR;U61bO;Bb literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/model.onnx new file mode 100644 index 000000000..5aa922db4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/model.onnx @@ -0,0 +1,33 @@ + backend-test:ã +p +boxes +scores +max_output_boxes_per_class + iou_threshold +score_thresholdselected_indices"NonMaxSuppression*test_nonmaxsuppression_flipped_coordinatesZ +boxes + + + +Z +scores + + + +Z( +max_output_boxes_per_class + + +Z + iou_threshold + + +Z +score_threshold + + +b" +selected_indices +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a0d291bc9be1ef75d607c30d0ffee7f9b7598642 GIT binary patch literal 113 zcmd;JI{*Lx literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..f22f0f9d669e91771ae111ee91533c81fdd6489e GIT binary patch literal 42 vcmd;J@A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..0120421f277bd2916d102c92ba98b13a5b2700c1 GIT binary patch literal 42 scmd;J6kvCf%1x|@&o3=0C@qOk%CAT*jxR_picii-EH3uqU}k^-02m4j!vFvP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..b9ce4bd076747cc774871ca46ffc930e677096ac GIT binary patch literal 25 gcmd;J6kv4X&CD;2FUcrMEzZc#N%3M~U|_HZ08&r}Z~y=R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/input_4.pb new file mode 100644 index 0000000000000000000000000000000000000000..e9d05f83c5e29951b2d8199020d86ea9fcfe3b5b GIT binary patch literal 27 gcmd;J6kv4XFHX)cN{uhcC`v8P$j?dfVqpLR0Ath#0ssI2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_flipped_coordinates/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7744c3fc42bad7b63f8c58a4e9f4d9316ffb7111 GIT binary patch literal 98 rcmd;J=3o|JcM>R0%}GrzNll5*%uC5kPA&HGU_b-RXnaCkR;U61bO;Bb literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/model.onnx new file mode 100644 index 000000000..e88b53132 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/model.onnx @@ -0,0 +1,35 @@ + backend-test:ß +p +boxes +scores +max_output_boxes_per_class + iou_threshold +score_thresholdselected_indices"NonMaxSuppression&test_nonmaxsuppression_identical_boxesZ +boxes + + + + +Z +scores + + + + +Z( +max_output_boxes_per_class + + +Z + iou_threshold + + +Z +score_threshold + + +b" +selected_indices +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_identical_boxes/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8e00a9ee3e4fba23587953952facc766fd83c720 GIT binary patch literal 178 lcmd;JR0%}GrzNll5*%uC5kPA&G5V88(Y0cQti literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/model.onnx new file mode 100644 index 000000000..5998994cc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/model.onnx @@ -0,0 +1,33 @@ + backend-test:á +p +boxes +scores +max_output_boxes_per_class + iou_threshold +score_thresholdselected_indices"NonMaxSuppression(test_nonmaxsuppression_limit_output_sizeZ +boxes + + + +Z +scores + + + +Z( +max_output_boxes_per_class + + +Z + iou_threshold + + +Z +score_threshold + + +b" +selected_indices +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..aae6e114b5994df794ddfec101dbabc9e403b6cb GIT binary patch literal 113 zcmd;J@A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_limit_output_size/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..b66f8f25ece602b69d8c90d497666597d0919f31 GIT binary patch literal 42 scmd;J6kvCf%1x|@&o3=0C@qOk%CAT*jxR_picii-EH3uqU}As(02l%b!TR0%}GrzNll5*%uC5kPA&E_U_b-RXnb@o0Ju;Gg8%>k literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/model.onnx new file mode 100644 index 000000000..eb28b883d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/model.onnx @@ -0,0 +1,33 @@ + backend-test:Ú +p +boxes +scores +max_output_boxes_per_class + iou_threshold +score_thresholdselected_indices"NonMaxSuppression!test_nonmaxsuppression_single_boxZ +boxes + + + +Z +scores + + + +Z( +max_output_boxes_per_class + + +Z + iou_threshold + + +Z +score_threshold + + +b" +selected_indices +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_single_box/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..485de5df7303fe12881609af4838802e46e6adda GIT binary patch literal 33 gcmd;JR0%}GrzNll5*%uC5kPA&G5V88(Y0cQti literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/model.onnx new file mode 100644 index 000000000..94bd91c83 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/model.onnx @@ -0,0 +1,33 @@ + backend-test:ß +p +boxes +scores +max_output_boxes_per_class + iou_threshold +score_thresholdselected_indices"NonMaxSuppression&test_nonmaxsuppression_suppress_by_IOUZ +boxes + + + +Z +scores + + + +Z( +max_output_boxes_per_class + + +Z + iou_threshold + + +Z +score_threshold + + +b" +selected_indices +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..aae6e114b5994df794ddfec101dbabc9e403b6cb GIT binary patch literal 113 zcmd;J@A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..0120421f277bd2916d102c92ba98b13a5b2700c1 GIT binary patch literal 42 scmd;J6kvCf%1x|@&o3=0C@qOk%CAT*jxR_picii-EH3uqU}k^-02m4j!vFvP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..b9ce4bd076747cc774871ca46ffc930e677096ac GIT binary patch literal 25 gcmd;J6kv4X&CD;2FUcrMEzZc#N%3M~U|_HZ08&r}Z~y=R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/input_4.pb new file mode 100644 index 0000000000000000000000000000000000000000..e9d05f83c5e29951b2d8199020d86ea9fcfe3b5b GIT binary patch literal 27 gcmd;J6kv4XFHX)cN{uhcC`v8P$j?dfVqpLR0Ath#0ssI2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7744c3fc42bad7b63f8c58a4e9f4d9316ffb7111 GIT binary patch literal 98 rcmd;J=3o|JcM>R0%}GrzNll5*%uC5kPA&HGU_b-RXnaCkR;U61bO;Bb literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/model.onnx new file mode 100644 index 000000000..5da2305f1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/model.onnx @@ -0,0 +1,33 @@ + backend-test:ê +p +boxes +scores +max_output_boxes_per_class + iou_threshold +score_thresholdselected_indices"NonMaxSuppression1test_nonmaxsuppression_suppress_by_IOU_and_scoresZ +boxes + + + +Z +scores + + + +Z( +max_output_boxes_per_class + + +Z + iou_threshold + + +Z +score_threshold + + +b" +selected_indices +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..aae6e114b5994df794ddfec101dbabc9e403b6cb GIT binary patch literal 113 zcmd;J@A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..0120421f277bd2916d102c92ba98b13a5b2700c1 GIT binary patch literal 42 scmd;J6kvCf%1x|@&o3=0C@qOk%CAT*jxR_picii-EH3uqU}k^-02m4j!vFvP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..b9ce4bd076747cc774871ca46ffc930e677096ac GIT binary patch literal 25 gcmd;J6kv4X&CD;2FUcrMEzZc#N%3M~U|_HZ08&r}Z~y=R literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_4.pb new file mode 100644 index 000000000..d4d71e25b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/input_4.pb @@ -0,0 +1 @@ +Bscore_thresholdJÍÌÌ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_suppress_by_IOU_and_scores/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d188a28a6ca7ec93ff7873f1db03469d38c99137 GIT binary patch literal 74 ocmd;J;$RkFcM>R0%}GrzNll5*%uC5kPA&E_U_b-RXnb@o0Ju;Gg8%>k literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/model.onnx new file mode 100644 index 000000000..1e042f984 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/model.onnx @@ -0,0 +1,33 @@ + backend-test:Û +p +boxes +scores +max_output_boxes_per_class + iou_threshold +score_thresholdselected_indices"NonMaxSuppression"test_nonmaxsuppression_two_batchesZ +boxes + + + +Z +scores + + + +Z( +max_output_boxes_per_class + + +Z + iou_threshold + + +Z +score_threshold + + +b" +selected_indices +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..94fcdf5c0a021deda5746adcedf4c7258ebe02e9 GIT binary patch literal 210 zcmd;J;$Y)o5nyy;P0FuGE%rLV$N&co_6!Ul%)oH=%o$q{`|Oz>7=JH_pO%&e<})xT jI6~AK0BHt>Su+*E{8=*%!F&dW6HXBMQ$QL9Xk$JAb@MHe literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5835690d41a30de54937ab6270b1d129935e95ec GIT binary patch literal 66 xcmd;J;$Y-p6JT^=D^AWYN-g#>NJ~qzXJBx!pEXm`-q^Sp$YubtXWHQs2LJ~~5j+3@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_batches/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..b66f8f25ece602b69d8c90d497666597d0919f31 GIT binary patch literal 42 scmd;J6kvCf%1x|@&o3=0C@qOk%CAT*jxR_picii-EH3uqU}As(02l%b!TR0%}GrzNll5*%uC5kPA&FIU_b-RXnb@oBboqAJ-Rqd82~iM2f6?N literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/model.onnx new file mode 100644 index 000000000..c48857bc1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/model.onnx @@ -0,0 +1,33 @@ + backend-test:Û +p +boxes +scores +max_output_boxes_per_class + iou_threshold +score_thresholdselected_indices"NonMaxSuppression"test_nonmaxsuppression_two_classesZ +boxes + + + +Z +scores + + + +Z( +max_output_boxes_per_class + + +Z + iou_threshold + + +Z +score_threshold + + +b" +selected_indices +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..aae6e114b5994df794ddfec101dbabc9e403b6cb GIT binary patch literal 113 zcmd;JNJ~qzXJBx!pEXm`-q^Sp$YubtXWHQs2LJ~|5j+3@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonmaxsuppression_two_classes/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..b66f8f25ece602b69d8c90d497666597d0919f31 GIT binary patch literal 42 scmd;J6kvCf%1x|@&o3=0C@qOk%CAT*jxR_picii-EH3uqU}As(02l%b!TR0%}GrzNll5*%uC5kPA&FIU_b-RXnb5;MyLe3dYCv&9{@DC2f6?N literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/model.onnx new file mode 100644 index 000000000..9cdd44638 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:k + + conditionresult"NonZerotest_nonzero_exampleZ + condition +   + +b +result +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..deccba9827a10ce758c4bc18bdfdfcef4bcf6fe0 GIT binary patch literal 23 ecmd;J;$RZsbmC0T&r8WH$;{95Vqs)pWCQ>+!32>2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nonzero_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6c3c3c460c5deff68d36ec68a92cbede6853d9b5 GIT binary patch literal 64 hcmd;J;$RkFcVa6_EiTO|@iJh50!B0%CJv)v@&Lao1Cam# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_not_2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_not_2d/model.onnx new file mode 100644 index 000000000..ff72c264d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_not_2d/model.onnx @@ -0,0 +1,11 @@ + backend-test:H + +xnot"Not test_not_2dZ +x +   + +b +not +   + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_not_2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_not_2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d9541774b1b6eb6fca5913ce404acbc7b8bfaf00 GIT binary patch literal 23 acmd;J=3o)vbYiUV;$Z{<21W)3AO!#vI{`}o literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_not_2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_not_2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0ca32c63e43bf6f1a9b4fa54e478ffd54678e6ee GIT binary patch literal 25 ccmd;J=3o)vbYjlSFY)4G00Bk@Mn)h703#a$AOHXW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_not_3d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_not_3d/model.onnx new file mode 100644 index 000000000..166007f42 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_not_3d/model.onnx @@ -0,0 +1,13 @@ + backend-test:P + +xnot"Not test_not_3dZ +x +  + + +b +not +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_not_3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_not_3d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..55314312cf53c30d290de7d7a3f49911376dca0f GIT binary patch literal 73 scmd;J=3wDq72tGYtnjj71OWy{1_m$*WP!LK9*6|e$QUXHRt-`C0An}-n*aa+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_not_3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_not_3d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..684f874e0126cd4447140151f01b1d6aa8ab6b7f GIT binary patch literal 75 ucmd;J=3wDq72tGY&dV?HvS9!LMg~SkFbQOVxF8;g1k%VDDh5^!QUL&)7y^0# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_not_4d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_not_4d/model.onnx new file mode 100644 index 000000000..dd23efe0a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_not_4d/model.onnx @@ -0,0 +1,15 @@ + backend-test:X + +xnot"Not test_not_4dZ +x +  + + + +b +not +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_not_4d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_not_4d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..482239dd0df8c30bb3950c4db9c98291f5dae179 GIT binary patch literal 376 zcmYL@*%87p3`A`RjPgfK`AkKWOd0IHRUD1Sy7o{#YpYkiKl?Gi=kGDc910~r)g)C8 zI(;q|!egM)Q<57s$>G^ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_not_4d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_not_4d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f663b0f120e9c4c1922060e0119a24e40ce6454f GIT binary patch literal 378 zcmYL@%Mrpb3`Aob80VIna- zHA$6&PM^z(@EGVl3&5T6^MeByo&OG=+p>rtk|;+4d&De+u8rWO&y3rGm`kKFtjno= joH^koL7Y50Yaf@pwmoB|T0tma2%gm1XyFJbYFoPi=2!#L literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/model.onnx new file mode 100644 index 000000000..cb07971ea --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/model.onnx @@ -0,0 +1,23 @@ + backend-test:§ +0 +indices +depth +valuesy"OneHot* +axis test_onehot_negative_indicesZ +indices + + +Z +depth + + +Z +values + + +b +y +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..71291b6dea9d5207ea185d647f55092e4c1ba702 GIT binary patch literal 39 fcmd;J7GQT`&&*57OinHKl3;*>pZ_7?2b2Z?_2d(f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..cf79c28c387689e819b067cc4269831e9e47de15 GIT binary patch literal 17 Ycmd;J6kv2>O-U^%$?#%fU{G)b02(v{CIA2c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_onehot_negative_indices/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..db6d62a7d427a57e1a50799f4a834f08d5527add GIT binary patch literal 22 dcmd;J5@2*O-U^%$?#%fU{G)b02(v{CIA2c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_onehot_with_axis/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_onehot_with_axis/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..db6d62a7d427a57e1a50799f4a834f08d5527add GIT binary patch literal 22 dcmd;J5@2*O-U^%$?#%fU{G)b02(v{CIA2c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_onehot_with_negative_axis/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_onehot_with_negative_axis/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..db6d62a7d427a57e1a50799f4a834f08d5527add GIT binary patch literal 22 dcmd;J5@2*Q<_>V#8|1s z=AW19kzXPt0a6{GpO>1EUlL!QS(1@oS`wdFky#ui3fC^g#l^wFF2usc#K9cJ4>e4P pjf;hYQHUW*1a2%y85>v`Q<5+jW2F!u7Y|T?1Edd#d7PL8xB;B8Cg%VE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_onehot_without_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_onehot_without_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e27319bdaa5e4beca52a30296b676e5cd3c11978 GIT binary patch literal 39 dcmd;J7GQT`&&*57OinHKl3;)Wb|}pOr2%iW1H1qL literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_onehot_without_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_onehot_without_axis/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..434a8bac9b6e860f15df0543e5d00b7674f79ae6 GIT binary patch literal 15 WcmWe&bYe|OEhx$GVqsu#a0CDu+5XF$J&y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_optional_get_element_sequence/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_optional_get_element_sequence/model.onnx new file mode 100644 index 000000000..0468db1b1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_optional_get_element_sequence/model.onnx @@ -0,0 +1,14 @@ + backend-test:’ +, +optional_inputoutput"OptionalGetElement"test_optional_get_element_sequenceZ$ +optional_inputJ +" + + + +b +output" + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_optional_get_element_sequence/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_optional_get_element_sequence/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b8e0b61f7697e1aead7318acbeba7a70800ec226 GIT binary patch literal 46 wcmd<$%P%O&%+E{AiO=9P;rmM zV%MD1+|;}hAxV&~c({g)#Nzl=h*XpUhCzH@JX~B{92|^7EL=<+EJ*@fP@{#|xL7zi Kg&3Te1o#0QM=R6- literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_optional_has_element/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_optional_has_element/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f8f5e54fd1274dd58d2a01e0766a3493a4222c1e GIT binary patch literal 42 ucmd<$%P%O&%+E{AiO=9P;rmM zV%MD1+|;}hA$gFlc({g)#Nzl=h*W%PZb3<9lnjP(TwWYpY+NiHY(fl40$fnTg+L;l KLJUq!0{j5X2rfSW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_optional_has_element_empty/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_optional_has_element_empty/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d9a1909a1cc75070a339e49980ed4e6218452c87 GIT binary patch literal 18 Zcmd<$%P%O&%+E{AiO;k`1q+@1TxhD&OB2|NW zr1L#W^g`PP2QDIB%-kx8Dw;v-82}zqLqAi79ON=M`O_d5b#I>rTRYxNb< Y5GDdiV2R)nR@UTeGg>>zm6;>LKAvF$-~a#s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or4d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_or4d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d31d551250539900ef4d660a3c00423ce919373d GIT binary patch literal 377 zcmYk0OA>$}3_}4wQ+J-prI&HWQ+o`XCIw)u5c1O6VykVopU2gn_x@U~#kbdjirc*W z4SIai(~y74LBk8V+ks+-I7PdW5;UB$&PQf-SkB;*Qa^f>f_98VXNrOnV>_Byp~wwF W3sGaTaB6a@AO`PHUV@4#y8j1!OarO_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/model.onnx new file mode 100644 index 000000000..d1ddad410 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/model.onnx @@ -0,0 +1,18 @@ + backend-test:g + +x +yor"Ortest_or_bcast3v1dZ +x +  + + +Z +y + +  +b +or +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5cc32fe100a22bb1654e283a90b1cdfc7f9cb6e3 GIT binary patch literal 73 rcmd;J=3wDq72tGYtnjj71OWy{1_m$#&IXDAA&3i>0g^x(8G~d1WB&o4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1500686f9682b83e63e4ba1557429c3dd431dc27 GIT binary patch literal 14 Tcmd;J72tGYtn^}K00Kq;3Ty#0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v1d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..309a3355031706d563d5f2a7c6df4f03c0e28803 GIT binary patch literal 74 vcmd;J=3wDq72tGY$}jS=VFUpNMg|5j1Iz|;K_Vau$bgVQ8YBu4hKT_He}MuJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/model.onnx new file mode 100644 index 000000000..64ef93b65 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/model.onnx @@ -0,0 +1,18 @@ + backend-test:k + +x +yor"Ortest_or_bcast3v2dZ +x +  + + +Z +y +   + +b +or +  + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d784193ad434efa0f3ee1407799bfac9192b6b1f GIT binary patch literal 73 ucmd;J=3wDq72tGYtnjj7U|?im1Ogxh1Ryqu3ljy&KzTqR5EHHf$OZsorU9e? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..8bab0d309ce75e36c6c8e87f6ddb972209c50868 GIT binary patch literal 31 ecmd;J;b0ZubYiUZ5@BFqWMpIjLl6PtF#-S|cL7-d literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast3v2d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2721aa9a6c5b4bddf9176a606e6126e30883222f GIT binary patch literal 74 ncmd;J=3wDq72tGY$}jS=VPIf{10WN@L$Dz75IzG)1xyM6fPDfS literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/model.onnx new file mode 100644 index 000000000..453376af5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/model.onnx @@ -0,0 +1,20 @@ + backend-test:s + +x +yor"Ortest_or_bcast4v2dZ +x +  + + + +Z +y +   + +b +or +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..22944e3243740501ecaa8be2c697296750f64652 GIT binary patch literal 376 zcmX|*%Mrsc2t*-vGV;we`RIyLa>@vA7p##4>`z+T+Shx1&g07O{d;9(gic>6Bw5Dc z;lN!?!2_vQv8+cC4VG%`wn$l+cZb&0VTkEX@CI9FioIa!2$bg$Re<~>QN{!n)dmm} c0Mz4?6X;>hPoNZj$q;UT8E-L4=vd7Wf16JN-2eap literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v2d/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d7cba2c1a18ae46eb63d8ff7a8295379f7cd10e2 GIT binary patch literal 41 icmd;JXx)0}d+(U1Edv6WVbHoac zMV%nHNl%_c)XF0qX;vhNvjfrmDyBz@#9%S{#&m&bh=NrB2PYON^xL-<73WV19cG{d U(OL!TzegTqvrjo9`^#^80CxogrT_o{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/model.onnx new file mode 100644 index 000000000..e1302e7e5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/model.onnx @@ -0,0 +1,21 @@ + backend-test:w + +x +yor"Ortest_or_bcast4v3dZ +x +  + + + +Z +y +  + + +b +or +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..70f33b925df1f7d5dbbf82dcbf8404e6008fd10f GIT binary patch literal 376 zcmX|*$q|4s48$$Ih literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v3d/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e9785a10c9301eb1089782c2982d8a71b80592b7 GIT binary patch literal 377 zcmZ8cNe+N82yESgH{ayZ&zSgXpCK~?q|pWFY^cq)*lOFcpVR$Z@6=oCxZ~+QMV)%Q#|k=p$l5 Wu91utCErqs;ZFdgpkyQk()a;=O9QX~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v4d/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v4d/model.onnx new file mode 100644 index 000000000..877dd603b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v4d/model.onnx @@ -0,0 +1,22 @@ + backend-test:{ + +x +yor"Ortest_or_bcast4v4dZ +x +  + + + +Z +y +  + + + +b +or +  + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v4d/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_or_bcast4v4d/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..024a3481cd47fb9cbd00d45c46a206d2320deb56 GIT binary patch literal 39 jcmd;JjZjt}u5W-N{3pd0bbCLxR5FWkSox-|0;(=*q)q+{QGL0>F M2h|w_6Nd|&DTR6iwg3PC literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_pow/model.onnx new file mode 100644 index 000000000..b79fad401 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow/model.onnx @@ -0,0 +1,19 @@ + backend-test:e + +x +yz"Powtest_powZ +x + + + +Z +y + + + +b +z + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..24e36372b779ab74539269e2948ee887220a5966 GIT binary patch literal 254 zcmW;7Aq)Xw0EXfJhV6oIK@bE%5ClOGY|c$E69hpJ1VIo)@uDb-q9}@@D2k#eik|uQ zKKtTAT#QReltsJoCkp@NeV2-y6E|LjK?n(T+N4ZbvL$EFfg>l*T)1-M&Vwf}-hB8H lvJi^Ilu4*irAD0wO<4!!C?fy> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/input_1.pb new file mode 100644 index 000000000..ad67ee7f4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..68db533213a5220236396ac4f310874e1bd382bc GIT binary patch literal 254 zcmVKJr%fs zI=3H|KIAFiKQ30JLgB2LLhD3&KHn#)K4CYjJm>qTJG#E!I=2tNL_yXRK3+OOKJrcn zJiMZxLHC;dI#9RYK4P8rJmYTL032)r>i_@% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/model.onnx new file mode 100644 index 000000000..c0fd50393 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/model.onnx @@ -0,0 +1,16 @@ + backend-test:Y + +x +yz"Powtest_pow_types_floatZ +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d91963f15c890955c4049fa33858b8d64ca4c264 GIT binary patch literal 33 Ycmd;J7GQT`tniXxWPkuBD9sF|0V1^lMgRZ+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a760307aaa9d741605ce33d06bfeb54d3669be86 GIT binary patch literal 21 acmd;J7GQK@tn}hxU}$h)U|0ae2OIz(Yy-~# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c77d2103a132ff11755f8c395343ece7c1ccd1ff GIT binary patch literal 33 acmd;J7GQT`tn!jzWPkt#D1DO&!TTL032)r>i_@% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/model.onnx new file mode 100644 index 000000000..9fe81897e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/model.onnx @@ -0,0 +1,16 @@ + backend-test:a + +x +yz"Powtest_pow_types_float32_int64Z +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..62e4e87e30c2908b48e0e912c49f073faf7953fd GIT binary patch literal 21 acmd;J7GQK@tnlJtU}&&sU|?_nA_o8)lme{) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2a776165494d557dfd635a732120b459acb76fcf GIT binary patch literal 33 Ycmd;J7GQT`tn`v#VSoTuD9r|?0V7}mPyhe` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_int64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0cc39708ca5cd984c0c32285657b92f0545914ba GIT binary patch literal 21 ccmd;J7GQK@tn%VvU}&&sU|?`!a4>TL032)r>i_@% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/model.onnx new file mode 100644 index 000000000..110e4dc2f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/model.onnx @@ -0,0 +1,16 @@ + backend-test:b + +x +yz"Powtest_pow_types_float32_uint32Z +x + + +Z +y + +  +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..62e4e87e30c2908b48e0e912c49f073faf7953fd GIT binary patch literal 21 acmd;J7GQK@tnlJtU}&&sU|?_nA_o8)lme{) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7918aa428c7bc792a28f31407f517e45ba1c62f9 GIT binary patch literal 21 Zcmd;J7T|GWtn}hxVPIfj1!6WJ1^^SH0Z9M= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0cc39708ca5cd984c0c32285657b92f0545914ba GIT binary patch literal 21 ccmd;J7GQK@tn%VvU}&&sU|?`!a4>TL032)r>i_@% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/model.onnx new file mode 100644 index 000000000..46cdbc7e2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/model.onnx @@ -0,0 +1,16 @@ + backend-test:b + +x +yz"Powtest_pow_types_float32_uint64Z +x + + +Z +y + +  +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..62e4e87e30c2908b48e0e912c49f073faf7953fd GIT binary patch literal 21 acmd;J7GQK@tnlJtU}&&sU|?_nA_o8)lme{) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..015d9afbace42a4d241bc77acb6ea8770177b674 GIT binary patch literal 33 Ycmd;J7T|Satn`v#VSoTuD9r|?0VEUwRsaA1 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_float32_uint64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0cc39708ca5cd984c0c32285657b92f0545914ba GIT binary patch literal 21 ccmd;J7GQK@tn%VvU}&&sU|?`!a4>TL032)r>i_@% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/model.onnx new file mode 100644 index 000000000..2e62ba5ad --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/model.onnx @@ -0,0 +1,16 @@ + backend-test:W + +x +yz"Powtest_pow_types_intZ +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..62e4e87e30c2908b48e0e912c49f073faf7953fd GIT binary patch literal 21 acmd;J7GQK@tnlJtU}&&sU|?_nA_o8)lme{) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2a776165494d557dfd635a732120b459acb76fcf GIT binary patch literal 33 Ycmd;J7GQT`tn`v#VSoTuD9r|?0V7}mPyhe` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0cc39708ca5cd984c0c32285657b92f0545914ba GIT binary patch literal 21 ccmd;J7GQK@tn%VvU}&&sU|?`!a4>TL032)r>i_@% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/model.onnx new file mode 100644 index 000000000..bc90f825a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/model.onnx @@ -0,0 +1,16 @@ + backend-test:a + +x +yz"Powtest_pow_types_int32_float32Z +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb7ca3491e33a4debc334ff548aa5cca7ec638db GIT binary patch literal 21 Zcmd;J7GQH?tnlJtWME)m0%B$$1^^P@0XYBw literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a760307aaa9d741605ce33d06bfeb54d3669be86 GIT binary patch literal 21 acmd;J7GQK@tn}hxU}$h)U|0ae2OIz(Yy-~# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_float32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..67fd11d8712c63df32379d3d5d267b267b5638de GIT binary patch literal 21 acmd;J7GQH?tn%VvWME)W0OFfW3=9AlO9C+f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/model.onnx new file mode 100644 index 000000000..ee0ccee1a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/model.onnx @@ -0,0 +1,16 @@ + backend-test:_ + +x +yz"Powtest_pow_types_int32_int32Z +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb7ca3491e33a4debc334ff548aa5cca7ec638db GIT binary patch literal 21 Zcmd;J7GQH?tnlJtWME)m0%B$$1^^P@0XYBw literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..194c2ad3ae1744cdd30210b1f3770f246a19e3eb GIT binary patch literal 21 Zcmd;J7GQH?tn}hxVPIfj1!6WJ1^^Q_0Yd-) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int32_int32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..67fd11d8712c63df32379d3d5d267b267b5638de GIT binary patch literal 21 acmd;J7GQH?tn%VvWME)W0OFfW3=9AlO9C+f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/model.onnx new file mode 100644 index 000000000..3aa62ec7f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/model.onnx @@ -0,0 +1,16 @@ + backend-test:a + +x +yz"Powtest_pow_types_int64_float32Z +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d91963f15c890955c4049fa33858b8d64ca4c264 GIT binary patch literal 33 Ycmd;J7GQT`tniXxWPkuBD9sF|0V1^lMgRZ+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a760307aaa9d741605ce33d06bfeb54d3669be86 GIT binary patch literal 21 acmd;J7GQK@tn}hxU}$h)U|0ae2OIz(Yy-~# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_pow_types_int64_float32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c77d2103a132ff11755f8c395343ece7c1ccd1ff GIT binary patch literal 33 acmd;J7GQT`tn!jzWPkt#D1DO&!T“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/test_data_set_0/input_1.pb new file mode 100644 index 000000000..9ba86eef9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BslopeJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cfbf6fc67 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_prelu_broadcast/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?ÿ<(?ÿ8s? ü=v6>ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?ÔÓ*>iJ >-¾™¿Û?ŒS'?±K]?ìý£?©C@o^z?Hm;=aÜ>2Ä?ó¼?Šª>…žÁ>kÎ8?°×Z@?×|½ò >*z?•ç™?³++?Ú±[½‚4?Ø´?à—±?³ù?1¹½1Ô–>í æ>œ G?ŠN2@9›½Š'?Æ>ù©Ô>Op@BÙ£»QNÛ>.:ˆ=™Ýš>—)Œ?σ½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/model.onnx new file mode 100644 index 000000000..6c0fda53f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/model.onnx @@ -0,0 +1,19 @@ + backend-test:y + +x +slopey"PRelutest_prelu_exampleZ +x + + + +Z +slope + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/input_1.pb new file mode 100644 index 000000000..8e8f7df3b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BslopeJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c8a355842 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_prelu_example/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +ByJðxÌá?háÌ>“Žz?Ëj@$ ï?¢ É>ÿ8s?ús½ºË¿=ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?=6ó=iJ >Ì|D½`>@ŒS'?±K]?Qð‘?©C@Þw0ÀHm;=ó =2Ä?ó¼?Šª>…žÁ>[W=¾tž÷¿nëý½ò >*z?•ç™?GXI½Éàø½%¿ü¿Æøô?½ +@³ù?ü?¨øY¿q§?œ G?¡žFÀC¡¾ Ö¿Æ>ÿ<á>MSÀ—~÷;QNÛ>.:ˆ=™Ýš>´oǾƒF«¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..bb712786ca4568f89283d6a9d6eb3d38a3426981 GIT binary patch literal 358 zcmZvXF%N<;6ohSqws|mMqYS#a`v)9#b#bi&0qj5|pg=73Px_a9G(aF>czMZPa^D?a z3NMb5r^+A4T2=MwN8t{n0oH_75@ia!Cj6?h2wz2-*FZEd-8*{hFw@IsBnx5=?(Lf9 zDk?8U{t(_KaUy^Xr@{xyNp}oClk1^~Sb@WdSjb>n$?6n!%+WJBHcxJc n+5&)Mj?-e~4!rRQ>(S0bbT?^?o{VcNAv#91nL*nLXX?9u^mtA+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearconv/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8e5c824a88ddfc7944562764090124fc4b6b3085 GIT binary patch literal 64 zcmV-G0KfkT0SEyI2M7lc0zv_JN-_Vgq8ZDmIuASTUx5HXIP#g@s0^m)vbw|VqV2pV Wd`(bhD}Uw{Qzs8SMymHO+`EsT@pjs WgR-xg)PNc4tk&0g0A-_c)oTckfEefi literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/model.onnx new file mode 100644 index 000000000..61abcb4ab --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/model.onnx @@ -0,0 +1,46 @@ + backend-test:Î +] +a +a_scale + a_zero_point +b +b_scale + b_zero_point +y_scale + y_zero_pointy" QLinearMatMultest_qlinearmatmul_2DZ +a +  + +Z +a_scale + + +Z + a_zero_point + + +Z +b +  + +Z +b_scale + + +Z + b_zero_point + + +Z +y_scale + + +Z + y_zero_point + + +b +y +  + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..eb9265d86e91ae7953b15572d8dc688ea9f4379f GIT binary patch literal 19 acmd;J;$RVAa$-#M;<)gJ;T`j}|FQrhqXoVI literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_1.pb new file mode 100644 index 000000000..53c894041 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +Ba_scaleJÐDØ; \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_2.pb new file mode 100644 index 000000000..9cc71b957 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +B a_zero_pointJq \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_2D/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..ea04e209a075a526be8ad795948fb95c7d2fb018 GIT binary patch literal 23 ecmd;J;b0bEa$-#K;+bLm#YXBsL;bhO!AVLVf@8L>OVvMxB7qIk=X#nZx1y9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_4.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_4.pb new file mode 100644 index 000000000..e5f59fb92 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_4.pb @@ -0,0 +1 @@ +Bb_scaleJ°ç; \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_5.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_5.pb new file mode 100644 index 000000000..db93763b2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_5.pb @@ -0,0 +1 @@ +B b_zero_pointJr \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_6.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_6.pb new file mode 100644 index 000000000..3128ded3d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_6.pb @@ -0,0 +1 @@ +By_scaleJO/< \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_7.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_7.pb new file mode 100644 index 000000000..521faf834 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/input_7.pb @@ -0,0 +1 @@ +B y_zero_pointJv \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/output_0.pb new file mode 100644 index 000000000..e69395115 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_qlinearmatmul_3D/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJ ¨sÿB—¨sÿB— \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..ae6d821005d37928c12e75d1dd6d60ff4275b064 GIT binary patch literal 168 zcmd;J72-)sOwLZtOVKS!EiSQ|$jGJ3#aO|`UKwAUoS2i!#Zwtym0FY^Uyz@fS0cn% zsl*ppnwVFTS(WOOnU|VaBqR*d7heb!%mE8V@dM2e;^N}qU=(8EV&Y(n5`>#5#Ky$} d6lRDLLo*vB&LqT;1k_sz*2@IZ>%=6$1pw^%DZ2mw literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c1a28ac2dc128899da52b51a7e6856df3e5cedbf GIT binary patch literal 33 hcmd;J6JT^=tniXxfB**u1_vOna$#VoI}D_c002C+1v&r# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c2965adb8f38a068e8f669ecdeed2eaa494f2c0e GIT binary patch literal 17 YcmWe&bYicJFHTO(N%dl3U|?_n03>w-$p8QV literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_2.pb new file mode 100644 index 000000000..2119acc77 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +B y_zero_pointJ€ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5703f727f490350be6b6521dd3adafb2cb0a2393 GIT binary patch literal 15 Wcmd;J6JT;;tn^}QXl(k=$N&Hp>I1L< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/model.onnx new file mode 100644 index 000000000..318351585 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/model.onnx @@ -0,0 +1,25 @@ + backend-test:¶ +- +x +y_scale + y_zero_pointy"QuantizeLineartest_quantizelinear_axisZ +x + + + + +Z +y_scale + + +Z + y_zero_point + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a72a063a195fa87b635dabbffa471eaefa8c11ca GIT binary patch literal 87 zcmd;J07?x7d;kCd literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/input_2.pb new file mode 100644 index 000000000..063961847 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +B y_zero_pointJTÄ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/output_0.pb new file mode 100644 index 000000000..36b3f9388 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_quantizelinear_axis/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJY"ÈJ;W õcŽyf \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..cbcb35daae7bcdaf76f3259bf6564f7ca993997d GIT binary patch literal 172 zcmd;J6XHoqOwLZtOVKS!EiSQ|%E+a{#adjFSX9Ernv#(k)cAt@;>?oFvebC6rYL@>Swd`FEF6qN3?Kop gsmKCQ^C2pdM7W?f32||80QInNF>x?CF$r)30Ak!M?*IS* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d12d9e06c3535831ea55999c0b0791c1e19c65dc GIT binary patch literal 15 WcmWe&bYd+oNh~VyVqsutum=DePy>_z literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..fc750f08e57d720518f64749cc173244b75b6ea6 GIT binary patch literal 15 WcmWe&bYjiP%*`zEVqsud-~a#``U9o_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf19463f266154020bca5a5588bf1140be501aa7 GIT binary patch literal 15 WcmWe&bYe|O%_&LrVqsulZ~y=q1Oo8@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26e23a85552eeddf431a64fe58b05df68a62f3a0 GIT binary patch literal 22 dcmd;J5@2*<%P%b{C@t~gU|?vlXJBw}001+;1f~E0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..0f26bf349dd631855339ffcc5dbdf88b28495cde GIT binary patch literal 1868 zcmb`Izi-tr5XW(z^IqN+6=aY=uw|^o!pH`#D2O6K*&c&s$1bu6apasM-e1C0sUrgm zNJz~5G5j6a$xEvaNJ#PG^UwQ!d?)*gCA%p_^-(wK5$X<~{M?84kk{suLC8B44%zcl z(R|Q6E^{|@&uS}>` zAA6mKi&vsUtx9?r?7HJ8| z{5C1Gw6?wmy^heo7mz$OkRE*cmS4>YNiUoc%2eEXY(28&XiIuxZF}&G0F_p4AAck8 z0BB_!#fsR*?Pc*&=>`pM;UUo0>3;erSCw}zER~C=O2NHxk>xJdjH^@ZP8~FO^v?yN zGt#5p>;W-s3A9+T8=L)|W*o1>IM}Eo0WK-z8YVfpf>Gmw_z literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..fc750f08e57d720518f64749cc173244b75b6ea6 GIT binary patch literal 15 WcmWe&bYjiP%*`zEVqsud-~a#``U9o_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf19463f266154020bca5a5588bf1140be501aa7 GIT binary patch literal 15 WcmWe&bYe|O%_&LrVqsulZ~y=q1Oo8@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_float_type_positive_delta_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..26e23a85552eeddf431a64fe58b05df68a62f3a0 GIT binary patch literal 22 dcmd;J5@2*<%P%b{C@t~gU|?vlXJBw}001+;1f~E0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..dbdcc8515743e04b692910ef452664b77d346673 GIT binary patch literal 172 zcmd;J6XHoqOwLZtOVKS!EiSQ|%E+a{#adjFSX9Ernv#(k)cCyA^u&_PvebC6rYL@>Swd`FEF5e?3?Kop gsmKCQ^C2pdM7W?f32||80QInNF>x?CF$r)305gFseEX}g#&Yq_OZZA4 zkw5l24HvIOhgy~NDD($w$k5#-=OhCO`EV)rVvf)lmw##eA&~YOkPLQS-j(Su^8VEH z@Oft5Fa5FSbJ9_1Q%_*@C>ZdCKq`;yI1ySPtbIvOLJQvsBz4Q)q=e+*FSzn_R`Kcl zNX`50D(7zXuJT#CVeEODO%?U{_S|gOHxbxU}WXrKH>9KRo!7l<-I<-Cg zM&KUM%2~yV*v9Q;@lt7v2Dfk@Xw&L``X^VFZ`-g`E*>idcg97Qx3Okio?^G^puwYm zE)ZKIJ?hOK5W|*0ixs=J+23hKdmZf1M;!@pK_S;L$;lOr8s{WuLlyh)GPSueMKek* igH)Ipir>Jpn;5IWZil=LyI`?^6V6b`itI^tbMG%HUa3(4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5709b8713f0ce38091c6a8e18c21020f4e3d2b49 GIT binary patch literal 15 WcmWe&b7CznNh~VyV&P(7U;qFbe*)wH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e269978d9da69346477cd97b7c3097afdc4e91e2 GIT binary patch literal 15 WcmWe&b7IZO%*`zEVqs%oU;qFa*aFc2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..07ccefab4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BdeltaJýÿÿÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_range_int32_type_negative_delta_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..23aa3933eecfb85e9e836f4ab515df28ef4727d3 GIT binary patch literal 22 bcmd;J5@2&;%P%b{C@t~g;9_84U? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reciprocal/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reciprocal/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..de5edfb561c32365bb0a726bb56c8eb60cff2c16 GIT binary patch literal 254 zcmVKZehEKfSPTKkbq;KWiu8KZyd`Kkp3oKTsM#Kh{Y|KN8$JKXoE4 zKlKbnKhYqCKiBF@~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reciprocal_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reciprocal_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9884413339fa74d6b5c5a7a7cf72ad28ed3f3369 GIT binary patch literal 17 Ycmd;J5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_default_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_default_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..72345560f23eae3759d01226dd32bea1c9821e3c GIT binary patch literal 23 ccmd;J!V7;15Iu_RWc z7CSI4U}V?g=ilY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5864c47c183dc64faf7a7461c2015ee7309dd135 GIT binary patch literal 41 scmd;J=3o+FbYd?`O({)IP4SXoU~q6?V0Zw;296921wcFlh<7*w0HJ^gLI3~& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_do_not_keepdims_random/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..92f9c1fbcca340db9b19f61dd162d65d8739c875 GIT binary patch literal 174 zcmd;J7UD@tOwLZtOVKS!EiSQ|&d6oX#gdX(k|@Mpl$uhSoSLG<5d>!V7;15Iu_RWc z7CSI4U}V?g=ilY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..187306a1826cb6a8cd80ffb40d7898841fb8c8ef GIT binary patch literal 43 ucmd;J=3wGr6kv2>FG@`*O-@bml3-wPaA06~0K^843=9Q8JOhY#I068p3J6O8 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/model.onnx new file mode 100644 index 000000000..9b401cf38 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/model.onnx @@ -0,0 +1,15 @@ + backend-test:• +7 +datareduced"ReduceL1* +axes@ * +keepdims test_reduce_l1_keep_dims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..1ce97738b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_keep_dims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ;ö¨@Óü<@°;Ž@æVAº«9A`2Í@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/model.onnx new file mode 100644 index 000000000..d14425870 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/model.onnx @@ -0,0 +1,15 @@ + backend-test:­ +@ +datareduced"ReduceL1* +axes@ÿÿÿÿÿÿÿÿÿ * +keepdims .test_reduce_l1_negative_axes_keep_dims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ba94696c434eac8592bb07a8f73cc4ed57642a8 GIT binary patch literal 64 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..187306a1826cb6a8cd80ffb40d7898841fb8c8ef GIT binary patch literal 43 ucmd;J=3wGr6kv2>FG@`*O-@bml3-wPaA06~0K^843=9Q8JOhY#I068p3J6O8 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/model.onnx new file mode 100644 index 000000000..8d76c7b8b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/model.onnx @@ -0,0 +1,15 @@ + backend-test:¬ +@ +datareduced"ReduceL1* +axes@ÿÿÿÿÿÿÿÿÿ * +keepdims -test_reduce_l1_negative_axes_keep_dims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..1ce97738b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l1_negative_axes_keep_dims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ;ö¨@Óü<@°;Ž@æVAº«9A`2Í@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/model.onnx new file mode 100644 index 000000000..46872d721 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/model.onnx @@ -0,0 +1,14 @@ + backend-test:• +* +datareduced"ReduceL2* +keepdims ,test_reduce_l2_default_axes_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ba94696c434eac8592bb07a8f73cc4ed57642a8 GIT binary patch literal 64 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 000000000..9369f0f09 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_example/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJöõËA \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/model.onnx new file mode 100644 index 000000000..b243fb95f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/model.onnx @@ -0,0 +1,14 @@ + backend-test:” +* +datareduced"ReduceL2* +keepdims +test_reduce_l2_default_axes_keepdims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..83dff2bd1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_default_axes_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJè…oA \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_example/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..895b92038e448539bf35e90f519a152ac4b30dc0 GIT binary patch literal 175 zcmd;J7UD@tOwLZtOVKS!EiSQ|!N_IK#gdX(k|@Mpl$uhSoSLG<5d>!V7-?~Hu_RWc z7CSI4U}V?g=ilY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..307fc647196ffe70199999408779aae818f07b60 GIT binary patch literal 41 wcmd;J=3o+FbYd?`O({)IP4SZ0E6wk~z_7q!;@h7NBBEN3+)m++Y}QSV0M6?Q=>Px# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_do_not_keepdims_random/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..8383af96acdf13e6188155d8e4404baca52dae5c GIT binary patch literal 174 zcmd;J7UD@tOwLZtOVKS!EiSQ|&d6oX#gdX(k|@Mpl$uhSoSLG<5d>!V7-?~Hu_RWc z7CSI4U}V?g=ilY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..60a0c66e808bab369b8ed9fec0bcd73dec93f514 GIT binary patch literal 43 ycmd;J=3wGr6kv2>FG@`*O-@bmlGrQF@4&#Yz+vLspAI6TT8`XK;f`$9O^yK2bqewT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/model.onnx new file mode 100644 index 000000000..3ebd0e25c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/model.onnx @@ -0,0 +1,15 @@ + backend-test:• +7 +datareduced"ReduceL2* +axes@ * +keepdims test_reduce_l2_keep_dims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..300121443 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_keep_dims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJV8@5‰@ÄR@‚åý@ ýAž»@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/model.onnx new file mode 100644 index 000000000..0cc2989e4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/model.onnx @@ -0,0 +1,15 @@ + backend-test:­ +@ +datareduced"ReduceL2* +axes@ÿÿÿÿÿÿÿÿÿ * +keepdims .test_reduce_l2_negative_axes_keep_dims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ba94696c434eac8592bb07a8f73cc4ed57642a8 GIT binary patch literal 64 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..60a0c66e808bab369b8ed9fec0bcd73dec93f514 GIT binary patch literal 43 ycmd;J=3wGr6kv2>FG@`*O-@bmlGrQF@4&#Yz+vLspAI6TT8`XK;f`$9O^yK2bqewT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/model.onnx new file mode 100644 index 000000000..eacb2fd38 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/model.onnx @@ -0,0 +1,15 @@ + backend-test:¬ +@ +datareduced"ReduceL2* +axes@ÿÿÿÿÿÿÿÿÿ * +keepdims -test_reduce_l2_negative_axes_keep_dims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..300121443 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_l2_negative_axes_keep_dims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJV8@5‰@ÄR@‚åý@ ýAž»@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2d4f60fce29896d9b2eaa7ca04384c364cc7c39f GIT binary patch literal 158 zcmd;J7UD@tOwLZtOVKS!EiSQYXXLWwVo6CXNfcr)N=+$EPEAqb2?8^G^3#J$bG3N6 zSQ0BziyfF87#A?IYw>e&WT&PUq-5q6OE4^8WD*hvnG+Au8=sS(9$#FV8zlubQ;17| jgHecwi;067h*^M`HA$2UW|I&X7Y9%pB+Tr@B)|p$bH63m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/test_data_set_0/input_0.pb new file mode 100644 index 000000000..913f023fd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJð  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b1470001e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ ! @F‚@þ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_asc_axes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_asc_axes/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..054e73bb13b14d6b54eda49cc024ea1b220caf0b GIT binary patch literal 167 zcmd;J7UD@tOwLZtOVKS!EiSQ|z{q9G#gdX(k|@Mpl$uhSoSLG<69i`X] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm?x£>hÛ*?ö>8a7? -”>„–;>¶%?•¸¤Š>­5 ???ƒod>\çs?žíä>=®X?3?¨I˜>UP?ÍË>ûa?MÎ?i¹a?ÀI1? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_asc_axes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_asc_axes/test_data_set_0/output_0.pb new file mode 100644 index 000000000..cab8e98af --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_asc_axes/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJÚËÆ?Tàî?|gÇ?*ú?4žÝ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/model.onnx new file mode 100644 index 000000000..8674eb79c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/model.onnx @@ -0,0 +1,13 @@ + backend-test:w + +datareduced" ReduceLogSumtest_reduce_log_sum_defaultZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/test_data_set_0/input_0.pb new file mode 100644 index 000000000..913f023fd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJð  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/test_data_set_0/output_0.pb new file mode 100644 index 000000000..6b7b454ba --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_default/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJh¾[@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_desc_axes/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_desc_axes/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5bdd032faa3caeeca02eaab6348468529ca0e53c GIT binary patch literal 168 zcmd;J7UD@tOwLZtOVKS!EiSQ|$jD{O#gdX(k|@Mpl$uhSoSLG<69i`XQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_desc_axes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_desc_axes/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b1470001e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_desc_axes/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ ! @F‚@þ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/model.onnx new file mode 100644 index 000000000..c049f9e12 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/model.onnx @@ -0,0 +1,14 @@ + backend-test:¥ +1 +datareduced"ReduceLogSumExp* +keepdims 5test_reduce_log_sum_exp_default_axes_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a47cf387a4ea270624846d87434db18d454a3d1d GIT binary patch literal 64 zcmd;J=3wGr5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a8a3e2e5f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_example/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJàpB \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/model.onnx new file mode 100644 index 000000000..b6d1232b3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/model.onnx @@ -0,0 +1,14 @@ + backend-test:¤ +1 +datareduced"ReduceLogSumExp* +keepdims 4test_reduce_log_sum_exp_default_axes_keepdims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..fa571dd15 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_default_axes_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ[QA \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_example/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..276f74553d039899496e0d283e41da1d9b2d6c7f GIT binary patch literal 191 zcmd;J7UD@tOwLZtOVKS!EiSQI!N_ID#gdX(k|@Mpl$uhSoSLG<9|UIjb=-ElA1CEtX(dz{n(|4>BkoqB%Y%KRv#h=+@bgBggKKsZT~3+4BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_do_not_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..db3d09770af0d179ce5b49b2da5ee5d4d3c26e09 GIT binary patch literal 41 qcmd;J=3o+FbYd?`O({)IP4SXoU|8T-%_HK#!=T^b=-ElA1CEtX(dz{n(|2QnxgqB%Y%KRv# +datareduced"ReduceLogSumExp* +axes@ * +keepdims (test_reduce_log_sum_exp_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a47cf387a4ea270624846d87434db18d454a3d1d GIT binary patch literal 64 zcmd;J=3wGr5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4196e6ca26788040a739de618079e22d5209a1a7 GIT binary patch literal 43 scmd;J=3wMt5@2* +datareduced"ReduceLogSumExp* +axes@ * +keepdims 'test_reduce_log_sum_exp_keepdims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..238ac3561 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJÒC@ñÊ@RL/¿Ð÷ú@°àA”ˆ!? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/model.onnx new file mode 100644 index 000000000..621850ad0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/model.onnx @@ -0,0 +1,15 @@ + backend-test:¼ +G +datareduced"ReduceLogSumExp* +axes@þÿÿÿÿÿÿÿÿ * +keepdims 6test_reduce_log_sum_exp_negative_axes_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a47cf387a4ea270624846d87434db18d454a3d1d GIT binary patch literal 64 zcmd;J=3wGr5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_exp_negative_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4196e6ca26788040a739de618079e22d5209a1a7 GIT binary patch literal 43 scmd;J=3wMt5@2*QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_negative_axes/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_negative_axes/test_data_set_0/output_0.pb new file mode 100644 index 000000000..158e49302 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_log_sum_negative_axes/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +BreducedJäõ?lª ?W:? +l½Ê> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/model.onnx new file mode 100644 index 000000000..aa3f19ac3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/model.onnx @@ -0,0 +1,14 @@ + backend-test:– ++ +datareduced" ReduceMax* +keepdims ,test_reduce_max_default_axes_keepdim_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a47cf387a4ea270624846d87434db18d454a3d1d GIT binary patch literal 64 zcmd;J=3wGr5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_default_axes_keepdim_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0c997f0b5222b3827c64c4c38023795d8e1844f1 GIT binary patch literal 23 ccmd;JU5U|7J&B%}^9A|9eGJ~y!$GY~U@aFQe!%wi!vE*_vX2TaBgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..baa4437987e46889ca81c5a233e6d797ace5c246 GIT binary patch literal 41 ocmd;J=3o+FbYd?`O({)IP4SXoU|8VDz`)?Zz@Xp+p$ot?0Fr$MV*mgE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..79403846b6984069dac8998f9fa3620adb0520ab GIT binary patch literal 176 zcmd;J7UD@tOwLZtOVKS!EiSQ|$;f5F#gdX(k|@Mpl$uhSoSLG<83bndCRS*1bFm~= zq!v3cE?{KW;^*SXPE9RH$;>U5U|7J&B%}s1A|9eGJ~y!gAkVh2cr-V7ZV3F5Ho>rk|Y<*ULig%9-uS_OxlS_fD-_4&MamC literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..1cae77821 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_do_not_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ‰@ ¸‰@ØÆŸ¿¼ú@A_A&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/model.onnx new file mode 100644 index 000000000..8a6e5c156 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/model.onnx @@ -0,0 +1,15 @@ + backend-test:— +8 +datareduced" ReduceMax* +axes@ * +keepdims  test_reduce_max_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a47cf387a4ea270624846d87434db18d454a3d1d GIT binary patch literal 64 zcmd;J=3wGr5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7074788dc6cff3030734f9ed7e80fc82b46a707f GIT binary patch literal 43 qcmd;J=3wMt5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_negative_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_max_negative_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7074788dc6cff3030734f9ed7e80fc82b46a707f GIT binary patch literal 43 qcmd;J=3wMt5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_default_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_default_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..05bd7f0cab933a2f4f614811cb449a82a0cbd707 GIT binary patch literal 23 ccmd;JBgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..28ac847845bc854e4b7498d85f2dcf6fcf3bcd9b GIT binary patch literal 41 ocmd;J=3o+FbYd?`O({)IP4SXoVDNBcU^rmUz`)}Kq0_)L0H6K{DgXcg literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..ca41aa054750bdefe8beb85ce86378dad02a27ee GIT binary patch literal 178 zcmd;J7UD@tOwLZtOVKS!EiSQ|&B$fR#gdX(k|@Mpl$uhSoSLG<6$EDZrY7cTadWXG zR-_g?FfL$Z*W%~m$WBcyNXg7CmS9-G$Rwl=G9w$GY~U@aFQe!%w{1zE*_vX2Ta9H*# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..be0143722 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_do_not_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ¶Â?Ir&@8œ±¿± ¬@^¹ñ@1k`¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/model.onnx new file mode 100644 index 000000000..064167c05 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/model.onnx @@ -0,0 +1,16 @@ + backend-test:™ +9 +datareduced" +ReduceMean* +axes@ * +keepdims !test_reduce_mean_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a47cf387a4ea270624846d87434db18d454a3d1d GIT binary patch literal 64 zcmd;J=3wGr5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5a14b8a3cac10a850dce7ab91d604acd1ed5ac9c GIT binary patch literal 43 qcmd;J=3wMt5@2*78z%&4%h6pnN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/model.onnx new file mode 100644 index 000000000..4c1fba9b1 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/model.onnx @@ -0,0 +1,16 @@ + backend-test:˜ +9 +datareduced" +ReduceMean* +axes@ * +keepdims  test_reduce_mean_keepdims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..6b871c664 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ¶Â?Ir&@8œ±¿± ¬@^¹ñ@1k`¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/model.onnx new file mode 100644 index 000000000..2bdf1930d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/model.onnx @@ -0,0 +1,16 @@ + backend-test:° +B +datareduced" +ReduceMean* +axes@þÿÿÿÿÿÿÿÿ * +keepdims /test_reduce_mean_negative_axes_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a47cf387a4ea270624846d87434db18d454a3d1d GIT binary patch literal 64 zcmd;J=3wGr5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5a14b8a3cac10a850dce7ab91d604acd1ed5ac9c GIT binary patch literal 43 qcmd;J=3wMt5@2*78z%&4%h6pnN literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/model.onnx new file mode 100644 index 000000000..45674aa78 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/model.onnx @@ -0,0 +1,16 @@ + backend-test:¯ +B +datareduced" +ReduceMean* +axes@þÿÿÿÿÿÿÿÿ * +keepdims .test_reduce_mean_negative_axes_keepdims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..6b871c664 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_mean_negative_axes_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ¶Â?Ir&@8œ±¿± ¬@^¹ñ@1k`¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/model.onnx new file mode 100644 index 000000000..0e11b39b7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/model.onnx @@ -0,0 +1,14 @@ + backend-test:— ++ +datareduced" ReduceMin* +keepdims -test_reduce_min_default_axes_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a47cf387a4ea270624846d87434db18d454a3d1d GIT binary patch literal 64 zcmd;J=3wGr5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_default_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b5a42c567b63d0059cd8e824a4ecb870eeb20eef GIT binary patch literal 23 ccmd;JU5U|7J&B%}^9A|9eGJ~uNjJ|#asFTW%nrYb(QA~Clh rCpAh6YK0J&00*NG4;K>$GY~U@aFQe!%wi!vE*_vX2TaBgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..61f74f2e9e6e43496af9a0b3f1a1e94a3b86a43e GIT binary patch literal 41 pcmd;J=3o+FbYd?`O({)IP4SXoU|8V5z|dgN!0^ElLdQ6PXaKAz2$}!@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..be8a46f9b3959e0cd8f9ad5c7c0dfc5a70825798 GIT binary patch literal 176 zcmd;J7UD@tOwLZtOVKS!EiSQ|$;f5F#gdX(k|@Mpl$uhSoSLG<83bndX69*ebFm~= zq!v3cE?{KW;^*SXPE9RH$;>U5U|7J&B%}s1A|9eGJ~uNjJ|#asFTW%nrYgQDF)t-Q qH%ba>gAkVh2cr-V7ZV3F5Ho>rk|Y<*ULig%9-uS_OxlS_fD-_3G%R8O literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..02651dcf6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_do_not_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJÖìy?IÍe?—qÿ•¾:@;´º@â1À \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/model.onnx new file mode 100644 index 000000000..f7b2b5509 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/model.onnx @@ -0,0 +1,15 @@ + backend-test:— +8 +datareduced" ReduceMin* +axes@ * +keepdims  test_reduce_min_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a47cf387a4ea270624846d87434db18d454a3d1d GIT binary patch literal 64 zcmd;J=3wGr5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..eb58276c4900d1d68483779f198028016614e1e8 GIT binary patch literal 43 rcmd;J=3wMt5@2*BgS<^upt C@(L^f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_min_negative_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..eb58276c4900d1d68483779f198028016614e1e8 GIT binary patch literal 43 rcmd;J=3wMt5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 000000000..06c2b1a19 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_example/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJàgäM \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/model.onnx new file mode 100644 index 000000000..8b0269243 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/model.onnx @@ -0,0 +1,15 @@ + backend-test:˜ +, +datareduced" +ReduceProd* +keepdims -test_reduce_prod_default_axes_keepdims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..925f922a7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_default_axes_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ­ZÀÆ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_example/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..8c3fbd564e3f5f5d3ec8fc565d3aa52c0c354bb3 GIT binary patch literal 179 zcmd;J7UD@tOwLZtOVKS!EiSQ|!^maH#gdX(k|@Mpl$uhSoSLG<6$EAk6y>LAadWXG zR-_g?FfL$Z*W%~m$WBcyNXg7CmS9-G$RwlzG9wlY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ea6f56ba7897322c539147c5fa4ef6bb57a5eff1 GIT binary patch literal 41 scmd;J=3o+FbYd?`O({)IP4SXoU~q6?U|?`$VBm2AvVr&*5Pxt20FRjmc>n+a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_do_not_keepdims_random/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f469828e70722eb822d799616844335f01ec31ad GIT binary patch literal 178 zcmd;J7UD@tOwLZtOVKS!EiSQ|&B$fR#gdX(k|@Mpl$uhSoSLG<6$EAk6y>LAadWXG zR-_g?FfL$Z*W%~m$WBcyNXg7CmS9-G$Rwl=G9w$GY~U@aFQe!%w{1zE*_vX2TalY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bdead6054c0f7dd87ea91554adff002c455baa37 GIT binary patch literal 43 ucmd;J=3wMt5@2*Z~_34AqRp0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/model.onnx new file mode 100644 index 000000000..3117112fd --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/model.onnx @@ -0,0 +1,16 @@ + backend-test:˜ +9 +datareduced" +ReduceProd* +axes@ * +keepdims  test_reduce_prod_keepdims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bc0e85ce9bacfc52150a14d78a6ca4617ce93488 GIT binary patch literal 43 zcmd;J=3wMt5@2*ZH}SY5l(RhYxV;G?y?S; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/model.onnx new file mode 100644 index 000000000..0a8ae3b53 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/model.onnx @@ -0,0 +1,16 @@ + backend-test:° +B +datareduced" +ReduceProd* +axes@þÿÿÿÿÿÿÿÿ * +keepdims /test_reduce_prod_negative_axes_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ba94696c434eac8592bb07a8f73cc4ed57642a8 GIT binary patch literal 64 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bdead6054c0f7dd87ea91554adff002c455baa37 GIT binary patch literal 43 ucmd;J=3wMt5@2*Z~_34AqRp0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/model.onnx new file mode 100644 index 000000000..ee1c9e4ea --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/model.onnx @@ -0,0 +1,16 @@ + backend-test:¯ +B +datareduced" +ReduceProd* +axes@þÿÿÿÿÿÿÿÿ * +keepdims .test_reduce_prod_negative_axes_keepdims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_prod_negative_axes_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bc0e85ce9bacfc52150a14d78a6ca4617ce93488 GIT binary patch literal 43 zcmd;J=3wMt5@2*ZH}SY5l(RhYxV;G?y?S; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c1b1f6ad0cf62fe549450cb98aa1abd32efad9ac GIT binary patch literal 200 zcmd;J7vf1uOwLZtOVKS!EiSRz$jD{L#gdX(lE}r9Sdm&R#9ow|QktBaqQn^lW(1e! zYVmV%WT&PUq-5q6OE4~AWD)}Fjfbd=FD}iEPf1NnEX^s22N@9$QyZUJk(gVMlNu!j zu|Y_POMrt>h=+@bgBggKKsZVWYA+WT2M4lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2f3f037e956184b1786af96090b40aa16c7fbd90 GIT binary patch literal 12 Tcmd;J5MXy=NvudM_F@143zh<5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_default_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..72345560f23eae3759d01226dd32bea1c9821e3c GIT binary patch literal 23 ccmd;J5Ye|j4v+DjZaBUODxSPi3b@G4^taol$e*2pBp6w zu|Ph=+@bgBggKKsZVWYAqKR2M45Ye|j4v+DjZevs&&w}~hpCEBtw_u*$VrWof|xBN z#3jJND8$3X#K8>2OduR31htWii-Ut*hy^Idm?X&svtNjhiwCHM1E$4^Nq`psRZ%W< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ba94696c434eac8592bb07a8f73cc4ed57642a8 GIT binary patch literal 64 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..31799432830506cff63208274e24952586e34bda GIT binary patch literal 20 Wcmd;J6kvB^NvudM_Tpei#J#gdX(lE}r9Sdm&R#9ow|QktBaqQn^lW(1e! zYVmV%WT&PUq-5q6OE4^8WD-&X>5Ye|j4v+DjZevs&&w}~hpCD$O3X{i&yA9T7%e2k yCBVTb#KXnJ!3@MqARHwGwUCR8gM(d&1t`XtB*_J{UWkv22dISurp1X#fENG`Pc8=l literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_random/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_do_not_keepdims_random/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..31799432830506cff63208274e24952586e34bda GIT binary patch literal 20 Wcmd;J6kvB^NvudM_TpelY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2f3f037e956184b1786af96090b40aa16c7fbd90 GIT binary patch literal 12 Tcmd;J5MXy=NvudM_F@143zh<5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_empty_axes_input_noop_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..271a1516aab046464e2cf74302b7f0b9c2e6a331 GIT binary patch literal 67 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_keepdims_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..31799432830506cff63208274e24952586e34bda GIT binary patch literal 20 Wcmd;J6kvB^NvudM_TpelY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_example/test_data_set_0/input_1.pb new file mode 100644 index 000000000..2f4bbd39a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_example/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +BaxesJþÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a39080e2659aecd01a9d7e31ad491b07dfafaf23 GIT binary patch literal 43 ucmd;J=3wMt5@2*1RSdv+m3RV*jGbz3(F)t-QH%ba(y^s)>00*NG4;K>$GY~U@aFh_#QCwUc9PC0Y TKrx0SSuU6pv1xH)65s^@x}iGl literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..2f3f037e956184b1786af96090b40aa16c7fbd90 GIT binary patch literal 12 Tcmd;J5MXy=NvudM_F@143zh<5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..63d96ff69 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_negative_axes_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/model.onnx new file mode 100644 index 000000000..dd1deadbc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/model.onnx @@ -0,0 +1,14 @@ + backend-test:¤ +1 +datareduced"ReduceSumSquare* +keepdims 4test_reduce_sum_square_default_axes_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ba94696c434eac8592bb07a8f73cc4ed57642a8 GIT binary patch literal 64 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_default_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5086a99987ca86fc1c03316552c8e97c6ecb3c29 GIT binary patch literal 23 ccmd;Jsgd0AWEV}KaJfkddB5x zEW%$Htv6_=6zUqQ+TmXd0-^w|IRBy0qeF>nzK;3M)K%rE2`;z1U(eB+zt7eMVY AasU7T literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ba94696c434eac8592bb07a8f73cc4ed57642a8 GIT binary patch literal 64 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a63a3bada12c9997b9b8b126cfbe0382588da6e2 GIT binary patch literal 41 tcmd;J=3o+FbYd?`O({)IP4SXoU{G*mU|0aeQ=AwWP5`l&GXq13GXS9!2owMS literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..949d7f58fcc03fb64b14b778cb3da6ba3ad62e60 GIT binary patch literal 189 zcmXv|yAFad6t#tfdL=?SsiPx_Kj2`DpCFsdP2t|bkb=@S@pG8`P7!4|$w|&rMLMla z-Ed0>&(0s;0!|Q<@kS>-Q>dBt*>xgiu;nwDo{JU4=Ed$T29XpQsD}ALck4EbK}bCn y;V+CXSaeegsl&GOIGeFIEp_&``_E~}mCz|j6^)QzR9l!&=ryFHtY-Nl^W_KourdVz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..fc88d339f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_do_not_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJÚ«¥@ˆ šAÙîx@#Ñ‹BÀðB–¸@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/model.onnx new file mode 100644 index 000000000..8f8d08f87 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/model.onnx @@ -0,0 +1,15 @@ + backend-test:¤ +> +datareduced"ReduceSumSquare* +axes@ * +keepdims 'test_reduce_sum_square_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ba94696c434eac8592bb07a8f73cc4ed57642a8 GIT binary patch literal 64 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d1fa987e2f89975f5509421c7c56e01b4ec681ac GIT binary patch literal 43 vcmd;J=3wMt5@2* +datareduced"ReduceSumSquare* +axes@ * +keepdims &test_reduce_sum_square_keepdims_randomZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_random/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_random/test_data_set_0/input_0.pb new file mode 100644 index 000000000..715493359 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_random/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ0Öìy? ¸‰@‰@IÍe?—qÿ•¾:@ØÆŸ¿¼ú@A_Aâ1À;´º@&ñ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_random/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_random/test_data_set_0/output_0.pb new file mode 100644 index 000000000..c18ae9b3d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_keepdims_random/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreducedJÚ«¥@ˆ šAÙîx@#Ñ‹BÀðB–¸@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/model.onnx new file mode 100644 index 000000000..be342cac9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/model.onnx @@ -0,0 +1,15 @@ + backend-test:» +G +datareduced"ReduceSumSquare* +axes@þÿÿÿÿÿÿÿÿ * +keepdims 5test_reduce_sum_square_negative_axes_keepdims_exampleZ +data + + + +b +reduced + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1ba94696c434eac8592bb07a8f73cc4ed57642a8 GIT binary patch literal 64 zcmd;J=3wGr5@2*lY} GI067VWeKkU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reduce_sum_square_negative_axes_keepdims_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d1fa987e2f89975f5509421c7c56e01b4ec681ac GIT binary patch literal 43 vcmd;J=3wMt5@2*AkFVe&9bVKhh_ a86b;;*dTL20Hg*)qsxQ%=wcwX*Z=_A#wH^G literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reflect_pad/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reflect_pad/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..131ea5f957c7b1fa9054ebd27d649ed75047b34c GIT binary patch literal 76 gcmdSs?K7`Vqy9=d}2n#JD9d$eBu8%“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_relu/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_relu/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..9210c945eb811d99d4a992bbc612942ba0b7b898 GIT binary patch literal 254 zcmd;J=3wDq6<~B?tn~W8SaIf|ea6Exc9Z+6>`!O$JE-uyw`Tx?{}#ny8pQr#dC5+r zLD+7Q>Mr}Z%TD$O41U^jJ3Y3Gy}ruskL`Z2x=gPHb|AGN&=ag~ztKAuEWXlN&;cao zk!x)WqGgPZ*nbw@W8bw(&aQRdLAV}}+$Tu|JFTj@_EVqFgxd`ghXJO|KT*WzaJr-L X#UzfQm>1}G+fL7_!*=G~S#WUxU@$nc literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_allowzero_reordered/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reshape_allowzero_reordered/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3fbdd306a236c1f56a075a69db8d82960f6ef4fa GIT binary patch literal 190 zcmd;J7vf1uOwLZtOVKS!EiSQI&d6oN#gdX(lE}qcoRL_ND#THg3TC7zu?Im|S^`|0 zi8(p>cslqe~PsX{_r0vwD&JX}m13_#2b j#4J(5FuS<8I5^maSU?gQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_extended_dims/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_extended_dims/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6febe463bd45c547905e0f205289cf3ea92e3af9 GIT binary patch literal 45 dcmd;J5ny*>EzU?RNcB=+Vt@cQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/model.onnx new file mode 100644 index 000000000..cf7cd55c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/model.onnx @@ -0,0 +1,18 @@ + backend-test:Ž + +data +shapereshaped"Reshapetest_reshape_negative_dimZ +data + + + +Z +shape + + +b +reshaped + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1f500c35826e9d0901180465730700f4edadf86b GIT binary patch literal 37 ccmd;J7GQT`EzU?RNcECnVt|1EPypit0JpLV*#H0l literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/output_0.pb new file mode 100644 index 000000000..3b8f76a72 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_dim/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreshapedJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/model.onnx new file mode 100644 index 000000000..a6ca3ffa0 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/model.onnx @@ -0,0 +1,19 @@ + backend-test:œ + +data +shapereshaped"Reshape#test_reshape_negative_extended_dimsZ +data + + + +Z +shape + + +b" +reshaped + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_negative_extended_dims/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e2cc6aa5e075c79ec0a19bf85c5640520e916a04 GIT binary patch literal 45 fcmd;J5ny*>EzU?RNcB?q4+TsN5WozjS)eokPn`QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/model.onnx new file mode 100644 index 000000000..aea581d96 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/model.onnx @@ -0,0 +1,17 @@ + backend-test: + +data +shapereshaped"Reshapetest_reshape_one_dimZ +data + + + +Z +shape + + +b +reshaped + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1c7276f8fc50ebec32ee744ef5604968b4366f4c GIT binary patch literal 21 Xcmd;J6kvB^EzU?RNcG~7V1NJsCJqAQ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/output_0.pb new file mode 100644 index 000000000..caecce4a3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_one_dim/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreshapedJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/model.onnx new file mode 100644 index 000000000..ffc27ec00 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/model.onnx @@ -0,0 +1,17 @@ + backend-test:Š + +data +shapereshaped"Reshapetest_reshape_reduced_dimsZ +data + + + +Z +shape + + +b +reshaped +  + + B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..36ae1cd665f702b277be88a4a29d0c6f4828e569 GIT binary patch literal 29 acmd;J5@2^?EzU?RNc9q6Vt@c1C=CES$^zm5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/output_0.pb new file mode 100644 index 000000000..515d48c1d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reduced_dims/test_data_set_0/output_0.pb @@ -0,0 +1 @@ + BreshapedJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/model.onnx new file mode 100644 index 000000000..5095951d4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/model.onnx @@ -0,0 +1,18 @@ + backend-test:” + +data +shapereshaped"Reshapetest_reshape_reordered_all_dimsZ +data + + + +Z +shape + + +b +reshaped + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..15b554247464532921467407ba738646a0fae0b1 GIT binary patch literal 37 ccmd;J7GQT`EzU?RNcECnVSoT8D9sF|0aR`R<^TWy literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/output_0.pb new file mode 100644 index 000000000..12748ef85 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_all_dims/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreshapedJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/model.onnx new file mode 100644 index 000000000..e4fd33a52 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/model.onnx @@ -0,0 +1,18 @@ + backend-test:• + +data +shapereshaped"Reshape test_reshape_reordered_last_dimsZ +data + + + +Z +shape + + +b +reshaped + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..dd88ffb7e6ebd009e746fe3e40605870b32f0129 GIT binary patch literal 37 ccmd;J7GQT`EzU?RNcECnVt@b^D9sF|0aRWB<^TWy literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/output_0.pb new file mode 100644 index 000000000..651078ed9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_reordered_last_dims/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreshapedJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/model.onnx new file mode 100644 index 000000000..c9c22ccd5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/model.onnx @@ -0,0 +1,19 @@ + backend-test:› + +data +shapereshaped"Reshape"test_reshape_zero_and_negative_dimZ +data + + + +Z +shape + + +b" +reshaped + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ff09fd3aceaa46daf81d383328d7437c0fe2553e GIT binary patch literal 45 dcmd;J5ny*>EzU?RNcB=+Vn79qQ0{*y005943gG|% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/output_0.pb new file mode 100644 index 000000000..57f7584da --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_and_negative_dim/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreshapedJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/model.onnx new file mode 100644 index 000000000..96d27fe40 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/model.onnx @@ -0,0 +1,19 @@ + backend-test:Ž + +data +shapereshaped"Reshapetest_reshape_zero_dimZ +data + + + +Z +shape + + +b" +reshaped + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d80707af3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BdataJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..17ddeb33aa22383827e893867799afe5d950d3a4 GIT binary patch literal 45 dcmd;J5ny*>EzU?RNcB=+Vn78fP%a~s1^{e&0_^|* literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/output_0.pb new file mode 100644 index 000000000..e4d5bf5cc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_reshape_zero_dim/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BreshapedJ`  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f5173588693c4e304302cb0f25e48da62134bc24 GIT binary patch literal 184 zcmd;J7vf1uOwLZtOVKS!EiSQI$jGI|#TdcGz{OUaoS2hZEW{Y8#1@oVoLQBsCBVg! zo1c=Z#F|{1l$pGMky%I?q$$1#EFGVcU!GT-m|KvO8V}JM4^|f?4Kz?lj7x-rQAmJ` liGvY}S%5T4lnC4+E-ntB3b1GrP)j5hEzCeI%uY-KyZ|0lCV2n= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;JH3xUQ4v&NFF#-lY(_Ie*o?f)@Wf<%P3_nU^8y6SSL3Q2iTEioJf*6@Ank-Ez7!B z0AYY#zRI*zOnF)8MDY+RutOi+W3G7IsIdwhF@L4dx%QFDFPV;xr>bk>Lmc-v HW;y}@D!C45 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5e5ac1f30b36fe14da7f6cdecc4321173f89d391 GIT binary patch literal 250 zcmZurJqp4w6gF+G^vAfjy8N3?R0Gw`eIT^LUF^-mqA~Txe|?sklSt3|ID`O~;+oigmid zJmsxCDkij1XzZPYMFvsN48^6E!XtF~Dq^OOWR1Qm%e!-n?A^zD9s9|tW_}W#!XzOy fgCHTFi~NtO$#*J1;uSqwdrSGp5_(Ix39|GFJ|jQ@ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_cubic_align_corners/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;J9BZe5fEQ;;IaPiVD&-Naq(0q$M6>sjy%@+ FjsP>w4?F+> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..153921f5622fe26d051a33d10a2b272e0a7b4395 GIT binary patch literal 186 zcmd;J7vf1uOwLZtOVKS!EiSQI%*dt9#TdcGz{OUaoS2hZEW{Y8#1@oVoLQBsCCJ5+ zo1c=Z#Fmqpmzr3#fRR~91*9v!2rM6;l3$)zoS0jXlNt}v91l?#B@HxENQ_H_gHcF; mi;05~ikW~kOOy!QDlRS#pb8d{XcACMBo-|otxQf#0=xjRTPI`y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_scales_linear/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ba20d26bff985d1c64fdd3395a66e68fea62a0b8 GIT binary patch literal 47 tcmd;J9a(?$>fWVG0g2YMDkmIb(k^?#QpuB*MG{)9S3s2~+(C%z(E4(rqTT@du z6OFoPl*VeZ?#aga0^*)Y8l_3t0P&)0LfdCzZSLBM_SO&%g*XWDC#hP8QG5labj*kPHH?@Ydlz4lr+#lAu%oy4n`pXE+!5} kC}siDEK$NRYq+>LIM{{2f=NIfkyvyv19dPvF$wSj0Fw75o&W#< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;JEzYb;E%s7iWPkt|%?#zkXaI1N0}B8E literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_cubic/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e9a6d913911f85c2bb7aaba2cef641672aa2ca1e GIT binary patch literal 51 zcmd;J%93 zcSY|glQZdb;mP^+lK}zSK_gV#sXIBr_Hk!R)jnUrEHTEWN=r}Zt<>&hY$3fe8Vi$B zEXtcVHpwuP`3XyPrToEK^C3j_xsxkR(gsK@D?hZgFsA0Boh-_nur|f_AO5NxrXik~ kz?d^JfF@_3j>3!%qi<*c&by)pkAboO!)R5^O>@wH0UWPHZU6uP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;JEzYb;E%s7iWPkt|&5Xte0C0l?2><{9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_linear_pytorch_half_pixel/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..18da7b725b55a08d54953bfe543385aeb2d550cd GIT binary patch literal 27 icmd;J3` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ba20d26bff985d1c64fdd3395a66e68fea62a0b8 GIT binary patch literal 47 tcmd;JEzYb;E%s7iWPkv4ni(n%0B~~y2><{9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ab23a3f4903f67c9eda55c4221ce9dc8e7b0a2e5 GIT binary patch literal 27 ecmd;Jq8h literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..be98818752934ba9b0cb845811441f9191ce2bac GIT binary patch literal 363 zcma)1OHRWu5XJel)|5qLDp(+~$O;8)cd~vb(>w<9;pvdTy-1x^C4aWY2Wdie1NoQKpHwaQMZwlNb$$5VvkV@@ z%-2$r{}1>B*eeXmFp(hl>W{o&n{xI-LtU-luC~@S%E&+%oHV|*u9HDogPm=tT!t3k zq;9cSKcq2k(U?6;D*@REm>ZHVeiCP5HN1qei`v-OZ{uaxYr^p^PCz`TxV?>T#WgHB h69pukO_9Z%ZLdz&0XUzFakz_&%^5}-8Ob^+7DpdHVRQfh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;JEzYb;E%s7iWPkt|%?#x;L1_SRivtP( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_downsample_sizes_nearest_tf_half_pixel_for_nn/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a8d6605b0d1e6366fa4e9b62f64ed0e74660c7ea GIT binary patch literal 39 pcmd;J9U5Nz72VNuZdxQHSi3!VjU`U#%2mk`@61ZyH`6!8bV_!0e7)2b&uEW6Ck z3^TOF+6R#wQKbuugvId`dnOx*f*7x&i~B?p;AN?tkl4V5;M1& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;JEzYb;E%s7iWPkt|%?#zkXaI1N0}B8E literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_tf_crop_and_resize/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0119c6bb4746297f2a1e7ea248b95c6c23d72235 GIT binary patch literal 51 ncmd;JMQ|#)r`Wu2Tlt literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c5262c6cfa7125a3996e574b4a23ce8cea49a651 GIT binary patch literal 182 zcmd;J7vf1uOwLZtOVKS!EiSQ|&&Z|4#TdcGz{OUaoS2hZEW{Y8#1@oVoLQBsCBVg! zo1c=Z#F|{1l$pGMky%I)q$$1#EFE83P@I@skdqn@(HRd`6(tQcPDqSPgo9B?fQyNP j5sF!WG)t5S+!`(}4xkFKXcACMBo-|kKrI|jOai1wg(%rg-gWw{$FlejkM4{+!w zT%3a%8Uz>rLE_L54ZR0mc;Dwa=Y&BRggQ}B3%boD1G_Ugk4a`RY?TAUsz%yT21fEF z_ZyQI4C+eHC_WoEQ)Bb0yLZZ?`dDtJEaX%953!XoUuwT=ul3ir@@KR|XS?sb<(&DC z5uv{4q*=%EPWw>4EOzWnO4>)-6^E*mm{`*}xe&W@qMGyBaE2|pj_zEG_4Rfr_Mm<# T-&MbrAIRT}jhxk!bNb@{e{e^t literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_A_n0p5_exclude_outside/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_A_n0p5_exclude_outside/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..32c93a77278a25925b3407e4c484d49876f522cd GIT binary patch literal 254 zcmd;J7vf1uOwLZtOVKS!EiSQo&d3$b#TdcGz{OUaoS2hZEW{Y8#1@oVoLQBsCCc8RV3ah_Swdo5A{>lD o0$fZSj8M!1q*zTE`meHf(VX|9>GZ+3~Bn5V4IXAT|A9f^Cre9g5dCY@cq*< zo0LLcQCCZk&Tk$BPC)k1gOQV>M#sn@AMMbo8y0I=NMmfJwD8Ei722JRZG=}w^Tt$| zr=nID&84v#t-F&!kwFrfq3lW}1Hx9XB5q?O?^-9CwnqML<59(bQjYU5h|OS13Co~Q d$>);rljHO|6o3XrM9W|~{ISqrq1%3zJ^_TtKQsUU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_align_corners/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_align_corners/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;JJa@(%Yp5LkAs(XmIF}E;YN_S zL%+JN!=)}ShuVxBhgous4*9&390d0-Z~*Fa_>$k|;2$;7;Uo6~hvUCCI4C{c?eP8b z8Hbszw}EocfaaWXSSote!TtDS2bpbO9Lg8`cUb1m;aI+a-w|k^fi1jx5tO9rJmO9OpKfJF@?>cf1kg4wUn8 z^wPEhnq}|k@zc$5bAi9(!>1vR-m$TcGTTysa#@ZH3;{s1LLL8~jd9F$O?8~UE6b75 OsMzsRR~1mM!4UxeWM*Oj literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_asymmetric/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_cubic_asymmetric/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4161b304cfe52ee07c6f5e952ac18d801d8f12a4 GIT binary patch literal 242 zcmZvWy9&ZE6oyT$8V(926c@pvV^Q24eFP^jLrBvj1e>NLanPsny?hyC6kQw+2R{BA z9kFpGCyT1gTN8U4tg+jQZ(oo*%!ktI(5Tx1#@YPtyL>La&JZJPR45Cm1(&) zH5MS;RcrKC$vf$n8Ke;pa9>C4Xt>D@tcmyxt z@WO zZnrEu;l4*x+W+rvyOq%a_ao}4r$aiXQ_QhsZ)ibxbV0e(79}e7kp`~@zyE8>f9-ML K{X`@0(SHHK;4*Un literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f87808b1165f36dbf0716765fe40a3aba17ac50e GIT binary patch literal 184 zcmd;J7vf1uOwLZtOVKS!EiSQI$jGJ5#TdcGz{OUaoS2hZEW{Y8#1@oVoLQBsCCJ5+ zo1c=Z#Fmqpmzr3#fRR~938X8&2rM68T2P#rTac3)578PAQ5Gc)G*C#4ON4__NPvrp kgAt0EfHYH-2;3qrE)Jjy7N96g5>QJd7A;^&Cnf=204ZN4kN^Mx literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b41f51bede6ead3f8a69cbf9971163bae3a56572 GIT binary patch literal 31 jcmd;J0HgzeI01+qpzH!5 H-QWNKx&jNW literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..9a90a83f1d60d2ed10611c545cb09baf60790580 GIT binary patch literal 250 zcmZury$ZrG5H_{cawybLTm*-X1wkAgeFP`lQ7aV*;~~CzHK7?Y@!DI_^)2DM4&O5T$tjn95???XGoC;Y dv(E+o2W9%53J`lm=+Ut9mg0|PAooEsdjd+bKo|f3 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_linear_align_corners/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b41f51bede6ead3f8a69cbf9971163bae3a56572 GIT binary patch literal 31 jcmd;Jacp17LX62fl@$rC{R6w LUcD*{q}Kre%#;)q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7921fec040d1d0f31fa6128eda4f4be12ef92525 GIT binary patch literal 186 zcmd;J7vf1uOwLZtOVKS!EiSQI%*ds~#TdcGz{OUaoS2hZEW{Y8#1@oVoLQBsCB(&& zo1c=Z#GaR$SOiqPfRR~98Kf;9$O9^fFD)oe%q_@Cjfd!shpLN`1{x_O#wEhRC?vqe m#K8!~OhB3`N(62d7Z(Rm1q)D=B?+h{5{nj)B%2eH051T(cqfJc literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b41f51bede6ead3f8a69cbf9971163bae3a56572 GIT binary patch literal 31 jcmd;Jn+a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_scales_nearest/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..617f1279225147a7ed73f6cb00d503e82c74289d GIT binary patch literal 111 zcmd;J4Uut#792L=Wh#wG3mR0G2eKsF4+#6UDmtib^Q{FDy< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b959499466244c64f395bbb130566fc00f658013 GIT binary patch literal 181 zcmd;J7vf1uOwLZtOVKS!EiSQ|$H=A4#TdcG0EDc?nN_L9LX440Y(c3Yww3@FOKyHj zsuF8*X;NnL0!C&b1(2@zBCvFPX+d#fZb43JJXm8qSW%QT&^RG6E)fn!AptHX4n`EzYb;E%s7iWPkt|%?agmL1_SSD+3q+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_cubic/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1c3c5c1cf78115d64e27adfa787d7e96143ddcc0 GIT binary patch literal 376 zcmV-;0f+tw0SEyI2?z=h0YU*;O6US50O>ve{UbkWxp+Sl7q&lLBlJH9OAbIQQ7u4Q zE=oXkU0*=4JZnG*d$K=&Im$n@m-IggDHlL4FE&7iXi7k1D z;ygfd!AL-i@LfQ>&3Zua>5M>}2A4puiKakC__RROkH0{1f5kv*k)}WhfviB47`H$y zhs8iY3e`aCCf`8)sqR3P82vyI*aJb}&jvx&c-%m9XyQNs0PR4SZu>yhcm+W#hYCTo zND@H+fEhu@%N{|N!y!Q+FbP5LCk#Qha}hxSs~ACxY#>45dL=<>JS{=Cb2LGGzd1om zw>&{dKrKNQI50uogEc`ZyF5X%d_+MAi%CI|Oi@AIgIGbN&s{-s$6!HpDMmp%Cp8|dH6E%gN*ZXSkQkQ;2cwVx7ZV2~ l6f*&7rYK>UMO<7Q9PC0YKtYxyppHl^I@p1d98OFEyZ|u=Ca?ei literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b41f51bede6ead3f8a69cbf9971163bae3a56572 GIT binary patch literal 31 jcmd;JEzYb;E%s7iWPkt|%?{;rKxqJQ`vVjJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3455f386418ffc8a2aac162bb6cca711fa2fadb5 GIT binary patch literal 240 zcmd;J85|fGkTI?09f0;B;|3rf86(Sq*vN7qHhy^k Dv7R9M literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b631c4bb2d29a3aeaac77f4b37ee661c29417730 GIT binary patch literal 275 zcmZvXu?oU45QdFb8;%MRMF+v5V?hK*M<2mST|(MkG1w-hi6}me59(l26&DFdlAr&( z`;Ue!N=0@?l`kzCyLl400@*{yoxYKGG>jbL!4Ca9S-~RHy2+&y7P)PNGKFp`VWn2Q z(mBR(5@o?_dBgHSdI^J|l|zN1as9nEgXr^nBSD7Jo7vhY;Lheo@k?z)RhP)y5d2Gc sFaOOr&RtkGg$X5W1YJr#6}US%j=w7aP#UsUOdWCfLr_Q1ZFe+$0p_|#g8%>k literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;JEzYb;E%s7iWPkt|%>m`ZXaI2w0~G)O literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_ceil_half_pixel/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f570dcd22ee0749988f25f1abf62bbf9623e593a GIT binary patch literal 272 zcmd;JpxOi|E&$RX+<=5BlLr7r{3%HQ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..0bbf247d4f453d896982884759bf3c58c47eaa87 GIT binary patch literal 283 zcmZvXzY4-I5XMcdHXId76cGdmN5RFx!O=%>QkM|hQ;Ka;lDO#VgZQXks~rRhA@}ch z-xnT<_@vS+>TK!J`OPzc2e3VK==5BEM<>`}-rr#zFIF&1jj>s-l}G8V((Y_*seEp< zEKP>WFpiLed<`$y?=ASrsT7 vBeF%BVfiC;oRVoVh7o5Xfq=8`4e1S!!}coxoJXQ5o`^X7Avh6y8zh4_+6YRz literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;JEzYb;E%s7iWPkt|%>m`ZXaI2w0~G)O literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_floor_align_corners/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1f3bda5f9f4e3d2ad13b86cb52805d13d6a60ecd GIT binary patch literal 272 zcmd;Jkh$!9mR{_K|Bf4yO%;Ap{MF4jJpvAotb53JhW%u!K;tj>{juh zgplMXAAceX)!*uJPp(=fifMJu;3PnNLxigDQFjW zK3JWMcW8Y@GtlwJT1vr`7tviP$XmH^qyrl?+8p}V=^uFu{^%;K1MMhaN#?*?>Z7>_ znPFc%)=}H~K-gY{H~ay_yZdIsZ>TYhq)-FMq_}3zHQx+x&jCnTs8-xEv3^2GCgf)} Gc>M#5pi*oA literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..97596cc6bef2f2e7bb42a701238a05cf4634ad89 GIT binary patch literal 79 zcmd;JEzYb;E%s7iWPkt|%>m`ZXaI2w0~G)O literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_resize_upsample_sizes_nearest_round_prefer_ceil_asymmetric/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f570dcd22ee0749988f25f1abf62bbf9623e593a GIT binary patch literal 272 zcmd;JpxOi|E&$RX+<=5BlLr7r{3%HQ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reversesequence_batch/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reversesequence_batch/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..cf7e37b9e6551b64c7746ab2a7deb637434087e1 GIT binary patch literal 199 zcmd;J7vf1uOwLZtOVKS!EiSRzz{usz#aO|`Tbx>0nwpoK8lRJzS1iO>sl*?YT9#T= zoEi+3&=Tb0N=htA&WKN}$Sjs%Sis1nCBVg5l9`(d5n%+12uXoVjW2>|g_{Z17bOg| pNQjS%hl5dwgNuoS1%#ud(XHm<;^1Hx0!tgP0dSAjn7HVEA~=gWPkuBD9sF|S)eok104oY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reversesequence_batch/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reversesequence_batch/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a98ca22fa42fa93b71d4aed67170f4390d072511 GIT binary patch literal 75 zcmd;J;b0M9bYiUZa$o?1274d{WIF)y0w8Vx;sZeZ0EiVF85jhBm;s0lfVcpN6M#4X Hh#edOc!Uaf literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reversesequence_time/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_reversesequence_time/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..74114ec9749c20ed2cccfd4f9a4e5530f543dfc5 GIT binary patch literal 198 zcmd;J72-)sOwLZtOVKS!EiSQI&&cJ?#aO|`Tbx>0nwpoK8lRJzS1iO>sl*?YT9#T= zoEi+3&=Tb0N=htA&WKN}$Sjs%T)@brCBVg5l9`(d5n%v|2uXrWjW2>|g_{Xd6eSF_ pM~IJ$hl5dwgNuoS1%#ud(QW49;^1Hx0!tgP0dSAjn7HVEA~=gVSoT;D9r?=8KE=)18oLT literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_reversesequence_time/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_reversesequence_time/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ce39dc5e6b2b5de0a9497c94992dafb8727b0494 GIT binary patch literal 75 zcmd;J;b0M9bYiUZa$sO^0OA8cEZ_)a12F@Ty#Rh=+@bg9(V4 zK^Pbqf{%*_XcPxfB}fNXk|Y<%QE2KxHn2J|3Ge{`S(qRD literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0879670028498bf46c1700e141ec4605166e864d GIT binary patch literal 85 zcmd;J;$Y@r7GQK@jPUYcU}&&sU|?_nA|P%6;sro_0Eiy|F@qxmg8&dK0I>lOI{“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_2.pb new file mode 100644 index 000000000..4f52fb9bc --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BRJd]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_3.pb new file mode 100644 index 000000000..88f54cf03 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/input_3.pb @@ -0,0 +1,2 @@ + +BBJ(ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_rnn_seq_length/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a6aa8bd71fc96e8b8f7a4adf5245f033834e8337 GIT binary patch literal 75 kcmd;JYEu#HKRIP6%7D+ewJK7kY4C32gzjYyNK$pl9}rJunc@LMEo zNQlF;yu$Nhb;7I;HCj-So-$@07@@d8VAatxc{RVH=^n+;wf1y Fz5%QCS<(Oi literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b50b5576c4a32d997f85da20843dd0d8534413dd GIT binary patch literal 416 zcmV;R0bl+I0SEyI3J3}i0YU*-N{|ChgpEEu3O7H@e@H$u=B_?6ckMnsEYv)rw3j|z z+$KMep!hzTnK?fTwRS(pOSe7ibCo`J;4D8|vA;a6`W!#o`A$DxO9(&tF=jvAwd6hm zE2lpB4_QCZM0h{Q2Yo(i0B=8~PC!2D1oS@9k=#Ce6s|sqV_iN~!KggNATT}%tXw_` z`QSbRyoEg=W3D~|yhT4%!N@*k8G=4kbQC{w`OiLOs$f2W1m!+*`R_i9{WU*r#cn^A zLwi5L${{~|@-RMnr5ry1k)A#iVFNx%F8@BIy#YV9727_$xQ#qzs^C7wATT|;0r#8^t(Pv zdow>Immfc0n0!Cm`3^tj&@w+Hmk&P)`CvaJD1JZO*AYLl;aNX6%_~1C%WyxA24FwQ zgq#r(jw}3v_fipkOs?R>qvq?V%G_gMC`zbwRf0;fCXaYZp(!M^{ KRt!Ico=rW@)vt8` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb14c14c86f15f7c11d7c7df4e7dbb7b861917dd GIT binary patch literal 62 scmd;J=3o(EbYdyW&n)&bV1NSwM+OEE27v_*3=9oG4B~^>APkWQ0OY#|n*aa+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_false/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..7e24ffa046aa9475423b0a415e94bbdd0455a605 GIT binary patch literal 45 ecmd;J7GQVcO-d|D&WO*Á¨ä>V®>àœ??W?$(¾>ˆôÛ>ZÄ> c?F¶³>»¸>uú>æ®?M„ ?"ŽÕ>Gø>¾0?mçû>I`?é·?ff6?—ÿ ?¨Æ«>ªñ²>õ¹š>jÜ>ioð>q¬Ë>,Ô +?ì/»>áz4?X9? +h¢>•3?+•>ª‚?É%?²?TtT?s?(=?Æm4?½RV?*©c?Di?M„?æ®5?ÛŠ?ƒÀê>!t>;­>vO¾>ö(?ê•B?ÓÞÀ>ÁÊÁ>”ö6?ížl?Þy?¥,?F%?&?á C?ƒ`?‡ ?aƒ>=[>»'>ìQ¸>î|ß>¡g³>}Г>vq»> ‰p> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..01c8ced9d84c748c5adb4cf6685af8349bd74b98 GIT binary patch literal 342 zcmZ8cK~BRk5UkTwSgWLpOj|0DIP@3^ap!{I37lvzmJ_?l3dfFOM{wjR`2sKCYuL00 z#9?-|v%8}iN?BHk`b`;m=aush-wAvXAg_=P79Hf3@O8`4NUW7(WWS>?7N0aWro4yS z+S);)5ngdW2;+`+=!8dWcxR>BK`Zo;_xPdoMCRoRay$Bd^t@Hrw0^soNK#%xc4psE z`u0SwVd+HIYcvfXqT)7*w^xw6K8!+hR|~Dyv)Sk4L;0r#8^t(Pv zdow>Immfc0n0!Cm`3^tj&@w+Hmk&P)`CvaJD1JZO*AYLl;aNX6%_~1C%WyxA24FwQ zgq#r(jw}3v_fipkOs?R>qvq?V%G_gMC`zbwRf0;fCXaYZp(!M^{ KRt!Ico=rW@)vt8` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb14c14c86f15f7c11d7c7df4e7dbb7b861917dd GIT binary patch literal 62 scmd;J=3o(EbYdyW&n)&bV1NSwM+OEE27v_*3=9oG4B~^>APkWQ0OY#|n*aa+ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_roialign_aligned_true/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..7e24ffa046aa9475423b0a415e94bbdd0455a605 GIT binary patch literal 45 ecmd;J7GQVcO-d|D&WO*&S¥>å> +h"? cÎ>ž^ ?®¶â>âø>DúÍ>I€>çÌ>Ï÷?¼2?sh±>…«>:’ë>¹?©°>›U/?¶„ü>BÏ6?îZR?àœñ>ûËÎ>/>åò_>ºÚª>#Ûù>Xù>$—?>Șû>’\?b¡Ö>$¹¼><½>úíë>ŒÛ?žï?ÿ>ྎ>.à>Ç)?333?I@?}Ð?}Ð3?' 9?QÚ;? ùP? u>×£Ð>;­>®G>s×ò>ˆô»>¨WŠ>-Ò>S$?O¯T?Í;?šè>;p? @?{n?' )?’Ë?ôlö>¥ý>£’*?±á)?䃾>ΈR>]mE>H¿}> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_round/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_round/model.onnx new file mode 100644 index 000000000..e989888e4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_round/model.onnx @@ -0,0 +1,12 @@ + backend-test:= + +xy"Round +test_roundZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_round/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_round/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2638e9cfdeda9c554a1bf2724e34a98a457c7425 GIT binary patch literal 69 zcmd~H`84Y&!Y literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scan9_sum/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_scan9_sum/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6b665b65f1962f4250a73bde1ef1dabea17d2dd0 GIT binary patch literal 350 zcmZ9Iv2MaJ6h(Q73(ggS>a|4-urMNZ=~gznF|%bs3C>^@9HclB;cMsz^fUS&{gm1f z6pQg)Kc9Q=lQH-6Z2MUl^=gaCE`B2X5_;NbtFs;G$kZ^MW@5d~%>0`m@=`T#UxW#| zRlVP617V7z<({9)+RoyoQkdd8v#i|L_C>B#VXU?dC#~jD>GPGtfRw}nk&IHlPy;Q0 zxiLd|gnx$+ai)j)2t(siwPxBJYFmxzOc4)!*H(VtxY(&9UmAym^vU-hpzl&imn!zj T@*&(sLVve)y5IT`=sYHW5~fT4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scan9_sum/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scan9_sum/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4e664a23ce5e925bacbd8ef525822ece5527a301 GIT binary patch literal 23 Ycmd;J5@2*<&&W&?FEdg@zI-P0DnnOHJn{^0F>gNfsopCCq8a0dk!jfRnIm zeqy1N^Ua$#Z$`$PsBH0(Tm9tn!oB=P*b!Rj7;Bu#K0#}yifJ03*nI7{6RKtDCh<&bjB%=27Jjtu$Tyu^XI#bIngy%$?&QOOl*9s&j8Z literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/model.onnx new file mode 100644 index 000000000..b1eb70046 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/model.onnx @@ -0,0 +1,22 @@ + backend-test:¿ +9 +data +indices +updatesy"ScatterElements* +axis test_scatter_elements_with_axisZ +data +  + +Z +indices +  + +Z +updates +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..661309dcc2f8651f19ea13124bee694309aa29e1 GIT binary patch literal 34 kcmd;J09LjIg#Z8m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ffdfd30e67b50594c5aaa5e8fea82d5cc0294a61 GIT binary patch literal 33 ecmd;JC=CEoNCU9| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_2.pb new file mode 100644 index 000000000..1fdaa8cfe --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BupdatesJÍÌŒ?ff@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c0e60ea3273ec40f40076febdeee1260fbc18270 GIT binary patch literal 31 mcmd;J09LjIg#Z8m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_duplicate_indices/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_duplicate_indices/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..989ee890a65902f5117ec1a958746ecee7146385 GIT binary patch literal 33 dcmd;J09LjIg#Z8m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_negative_indices/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_with_negative_indices/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..97a7da2ef9274f95459cd46d1df638801be33748 GIT binary patch literal 33 fcmd;Jl>;;sp)>U=Rlv literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/model.onnx new file mode 100644 index 000000000..b5d10efd2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/model.onnx @@ -0,0 +1,21 @@ + backend-test:µ +, +data +indices +updatesy"ScatterElements"test_scatter_elements_without_axisZ +data +  + +Z +indices +  + +Z +updates +  + +b +y +  + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c063bb7315edd106f46ee96d06e0fc1b6e1467d5 GIT binary patch literal 50 Ycmd;J=3o|JbYe+KEJ^fIVITqk0Azatb^rhX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..be4025fbee6f9c9b7e48aea8c4913ffe6ea82080 GIT binary patch literal 65 jcmd;J;$RkFcVf@XOUX=5E%q{CWIzQ>s9XjZAEpif&h`V< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..e50cacbb3830b10de856144b7202bd266192cabb GIT binary patch literal 41 xcmd;J;$RkFbYd?pNJ%V7E%uUNU}&&Ed#1;J*36mq3=9koX=!W@XV36B007;e3@rcv literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_elements_without_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d5e565d083d898d775f254510e0847b786239b47 GIT binary patch literal 47 ucmd;J=3o|JbYiUZQej|Va5#IW#~w%nK?9gRdxpmW#7j$KbC@-Arab__NC~$9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c1898b8c2c8accfd153c1df9453def42bd10707a GIT binary patch literal 199 zcmd;J72-)sOwLZtOVKS!EiSQI$H-;K#gdX(lE}rLnU|88oLbDqURnSYNG%p(tW;tT zPEIT-NiEXi=3+^#$Sjs%T)@aABnHwOUks6oFV8H=hzChVi9w7K;^X4sU=-ruV&Y%~ kV%8{0xZz+acDNK1ND5{hsxGD^VJ^l>bfcVDxEKVu032H>!vFvP literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..661309dcc2f8651f19ea13124bee694309aa29e1 GIT binary patch literal 34 kcmd;J09LjIg#Z8m literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ffdfd30e67b50594c5aaa5e8fea82d5cc0294a61 GIT binary patch literal 33 ecmd;JC=CEoNCU9| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_2.pb new file mode 100644 index 000000000..1fdaa8cfe --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BupdatesJÍÌŒ?ff@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_with_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c0e60ea3273ec40f40076febdeee1260fbc18270 GIT binary patch literal 31 mcmd;J93t#2^L;@p18RFbZ*SF>x@1aFit6NU#(; cSc(ZI1+xU93oMl+%*9xVZj=)X7lQy70HE3^R{#J2 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c063bb7315edd106f46ee96d06e0fc1b6e1467d5 GIT binary patch literal 50 Ycmd;J=3o|JbYe+KEJ^fIVITqk0Azatb^rhX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..be4025fbee6f9c9b7e48aea8c4913ffe6ea82080 GIT binary patch literal 65 jcmd;J;$RkFcVf@XOUX=5E%q{CWIzQ>s9XjZAEpif&h`V< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..e50cacbb3830b10de856144b7202bd266192cabb GIT binary patch literal 41 xcmd;J;$RkFbYd?pNJ%V7E%uUNU}&&Ed#1;J*36mq3=9koX=!W@XV36B007;e3@rcv literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatter_without_axis/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d5e565d083d898d775f254510e0847b786239b47 GIT binary patch literal 47 ucmd;J=3o|JbYiUZQej|Va5#IW#~w%nK?9gRdxpmW#7j$KbC@-Arab__NC~$9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatternd/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_scatternd/model.onnx new file mode 100644 index 000000000..ddd47e51f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_scatternd/model.onnx @@ -0,0 +1,24 @@ + backend-test:§ +& +data +indices +updatesy" ScatterNDtest_scatterndZ +data + + + +Z +indices +  + +Z +updates + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatternd/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatternd/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..8f14eaeb3e5f88c1c02826dc18764e9d88603f4c GIT binary patch literal 273 zcmd;J;Q&GbMkkh(#F9j>1||lE273ku1_vMl;szjI0K^A?_yG_zI6^Rp4H8=b#0@~~ l0K^O+Hc&66`ayO)0Gf3Gh!=p&1Y!puW&p9NU_O5L0RZD)F5&bd_yLfQj2Rpm7?5#;Jp%(WW&o;3 O#tuL}GHw9!5f}hv85%wS literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatternd/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatternd/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2357108760715a5f3f173dedcba8cc0df4d998dc GIT binary patch literal 270 zcmZ9_!3}^Q429uhJa}{?!J`{_>nI(CQ5ePlC74u0zVO<#u&o1||lE273ku1_vMl;szjI0K^A?_yG_zI6^Rp4H8=b#0@~~ l0K^O+Hc&66`ayO)0Gf3Gh!=p&1Y!puW&p9NU_O5L0RZD)F5&bd_yLfQj2Rpm7?5#;Jp%(WW&o;3 O#tuL}GHw9!5f}hv85%wS literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatternd_add/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatternd_add/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..cd316b9776cfa27da8f13aac52703b9f352539e2 GIT binary patch literal 270 zcmbu%s||oK6ouhaf~f2WY(hbz7=aP6xGRy2&`}trqwwDZEC|wk>B)V?Hu6#!!!}tX x)hua{5<1LSu)=U)zw=Y`-)Cm8_v~{c!%%RdLiC+yuN4?F1||lE273ku1_vMl;szjI0K^A?_yG_zI6^Rp4H8=b#0@~~ l0K^O+Hc&66`ayO)0Gf3Gh!=p&1Y!puW&p9NU_O5L0RZD)F5&bd_yLfQj2Rpm7?5#;Jp%(WW&o;3 O#tuL}GHw9!5f}hv85%wS literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_scatternd_multiply/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_scatternd_multiply/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2b812a9ca35985f8a89da9c3771c26f1295d5092 GIT binary patch literal 270 zcmbu%F%5t)6ola`VPGV|03$9au%U*PtrC#X5gBMe0YVt~&j1Xh`SLEWc~_McuMT5a z=Tt~JO6?#m$eyFLVaI`Pk{aCP6C!(`oIQIc9T5o`2QG*{bM`JHAwtf+{rLae|9<}f DN!l)5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..5ed9c98b587183feb7d3608b27986f2dcfedb80a GIT binary patch literal 229 zcmXwzL2JT55QUu><2nshMnMmr1TTRey!Ke}CcStvmn9}+TqL_C**1y4#$VLGWH(R; z9t>|D^FARcJSFLsb@pbtvhTluM}!8UMW_jGtNFp4ZILwF(p1$>+tPfsd$&eQ3{|d8 z$x`Wzo5kZfa0f4%;i%;7JGIK_m0xh8@6e}p*CDHv<>xlr$j+8EtNdc6<~*_L$9+@r y+z}ArL;!{8iN4doDTt?zi(WAlLlXaoARc$5h{C1)E_r%ExKV(QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..b03b0826e54ceb7499ce2551b3dd5aff86cff9cb GIT binary patch literal 156 scmd;J=3oyu@nQ1lG$HjY=o+AWbn{_+0B+9-+W-In literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/input_2.pb new file mode 100644 index 000000000..94db59b30 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJ/³“>ï×Ý>5A?eÍÊ>Æbe? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4f6053890 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ(»Ö? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..527cc0d7e2e0ee815d0b4e93f8b7122125d4ff52 GIT binary patch literal 1640 zcmcIkK}rKL6m6!{Hhu?NqM(AfnB{rv)i??&mCv6K&5;i;2v81=aFB~7^SiR|(Fq&pTo**)4S|ymE^v3^ zaOEOnQm0Dus0n_`vq`(s_S$w14S01zr4uh*Vpp`QM!nMzir=?-qgC)(F7%c+M;^SR zrORp2lk}G^r;u_s$Dg^>iu;Kk*q<08w4*d>iuQ`8UWjBzo;Cn0(u~I@a;k6 I*lRVv0RH@0pa1{> literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..9cc7c7465 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJè  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..b03b0826e54ceb7499ce2551b3dd5aff86cff9cb GIT binary patch literal 156 scmd;J=3oyu@nQ1lG$HjY=o+AWbn{_+0B+9-+W-In literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..94db59b30 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJ/³“>ï×Ý>5A?eÍÊ>Æbe? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4f6053890 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ(»Ö? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f0a70b2916978337ce9296cf690627c7d892d925 GIT binary patch literal 280 zcmZusJ!=9%5Y3*Kb2A=MM!^)p!cs7h)>5$xY3#09?qj?x>aOf<;+Zc0#D8k$K&>2j zFuZxZ_eM&Lvozn3DW;w(Kl=+H2T_AKf;gb~MY*-5+B=(#hbz1GyR=?7TUATro!uWl zc%8gLtV?4ZDQya>U(VMNClO2r@Z_lY&b_u~9PTJJC(**UCQVg2sn136t{Pe$NS9w; z87fn+f7nf{Yj`r`Qi#x#0%Hhdi}A>al0H|(XNYAR<>e41-KIQ%WOdjmvkvep5rj-U OWFxpebQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..b03b0826e54ceb7499ce2551b3dd5aff86cff9cb GIT binary patch literal 156 scmd;J=3oyu@nQ1lG$HjY=o+AWbn{_+0B+9-+W-In literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/input_2.pb new file mode 100644 index 000000000..94db59b30 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJ/³“>ï×Ý>5A?eÍÊ>Æbe? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4f6053890 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ(»Ö? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ede2e50a4e8ae22af27b34b9e25d5826e3a8f8c7 GIT binary patch literal 381 zcmWN`O-Per0Kjp#*Uce9Cfz)YoKm;pr34Xj2SE=B5+Vo_M6p7dga^Hd5{e{3-W-19 z#s+>2Jt(iJlmAmJ#W~l^@hTII=F-QNvIZMo#QI%-CdFhh84GnbQ>UY&rTd+uwNC1z z_FX=##|Z94D4B{{U4;)tulgWDpsLi{8)={v5j5Y zrWKKJ%@LJr)YYieK3$~v`6iENPLO~u>*M{%9dD+>jClPltlp5cUSf=&B9}EHw=pi8 zV)U3t3Ct!L9QsZ9M2g$y2$qLwUZ?k|>^LSY72$dClm4wB*Fy&w)W0a=7jGY};QSJ& zp?`&p)X<-g;m#cMtn?FFz=bpmLgi=7_%68E(Tk8ROZx5yT?JVhtxJ4=r4xPiei}T7 VlvM0fzkR~I^@!XjpQ*T?<{vwq=i~qY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3a3cf8269a47c098d1be2cb1c33f726204f07955 GIT binary patch literal 1924 zcmcgtO==r46t>1=TX`8`qXwEn$zqlRU6d{gS(%QzD7abFT?9iBvgc(iY)ivPPR6-H zFX0n(+e`EU?XvrvA=ONsW)r$7r~_hz^w4|X`}safSu_*#C93R&MPtuykKi+5e4;Py zT2yJNjd`nVsf+E{ZFz0O%^dl8n!V&}6pCM?%omm`%!QR#$fe{fo%5p9GmcduRE8P9 z+^D&gT1^(Bz*nP~rdk;*lub^db0tKrh%a2K zMse>0ni@L%AmG=PS0tk}KKNJ)WeROD=|fmxxgNHL!O+#J2jBgI8>Rjl^Ma3cK6xKQ z{rlbg$svTIlIA4XkpO-Ye@(b|&gTA_utC?f;@=9mbhG9&$IT4HorVSAO91}^u+OqJ zczjNrE87Ei7@ySPJTbc36L(DCWvHyQTlngArkz(HTOikr+{Dk$_Zs3($8w1)xzIYR zbtgH7gA%h%qakrv>&}j}ljji0T3QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..b03b0826e54ceb7499ce2551b3dd5aff86cff9cb GIT binary patch literal 156 scmd;J=3oyu@nQ1lG$HjY=o+AWbn{_+0B+9-+W-In literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..94db59b30 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJ/³“>ï×Ý>5A?eÍÊ>Æbe? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..4f6053890 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJ(»Ö? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1_mean_weight_negative_ii_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ede2e50a4e8ae22af27b34b9e25d5826e3a8f8c7 GIT binary patch literal 381 zcmWN`O-Per0Kjp#*Uce9Cfz)YoKm;pr34Xj2SE=B5+Vo_M6p7dga^Hd5{e{3-W-19 z#s+>2Jt(iJlmAmJ#W~l^@hTII=F-QNvIZMo#QI%-CdFhh84GnbQ>UY&rTd+uwNC1z z_FX=##|Z94D4B{{U4;)tulgWDpsLi{8)={v5j5Y zrWKKJ%@LJr)YYieK3$~v`6iENPLO~u>*M{%9dD+>jClPltlp5cUSf=&B9}EHw=pi8 zV)U3t3Ct!L9QsZ9M2g$y2$qLwUZ?k|>^LSY72$dClm4wB*Fy&w)W0a=7jGY};QSJ& zp?`&p)X<-g;m#cMtn?FFz=bpmLgi=7_%68E(Tk8ROZx5yT?JVhtxJ4=r4xPiei}T7 VlvM0fzkR~I^@!XjpQ*T?<{vwq=i~qY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/model.onnx new file mode 100644 index 000000000..a0ed2486a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/model.onnx @@ -0,0 +1,25 @@ + backend-test:á +V +x +yz"SoftmaxCrossEntropyLoss* + ignore_indexûÿÿÿÿÿÿÿÿ * + reduction"none ,test_sce_NCd1d2d3_none_no_weight_negative_iiZ +x + + + + + +Z +y + + + + +b +z + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..05f2333c144b0589f1078e4484d0ef03f42d20ad GIT binary patch literal 10818 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 TyipF5kJ6rPn=}7?SS$Vq21#ny literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..4c3b6643f8444e4594e84f05548a2b7154711c06 GIT binary patch literal 4336 zcmajaxeWqQ5JW+4)+7Z|!6YNHB@YZhf^wcTS}ItTUzD@M_ug`MtK;31w-4pqY0lo{+u_U8?L#?ta7Zt9SKe;(c;BH%w`&K|<>_|m z-QgGI=+j>H_Helg<@!##cR>2|-Mym+-GTP_`gC`oo;<9-mUE{$oNu>W&O0YQ_4;l( zJMK2er{mtyUVR+O!)d3w_x2rlv3VT2k3)BHyWUTScA$KB+UG;QzJ1tzdA=Qe9Lnhx z`R?%bA>SQ6D5nqGqr>*>@nP@UmB;0vecWDq_!`=2&i(4RyG6cTzIWsH<#5;>U7nA- zOP9x?oE{zaopN-$P)`o8U!89k+JSO7l;`8U)9=;S8H-h;yrw|x#V literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0af5e50440b2d954b34810d0736a7ff7265d5e92 GIT binary patch literal 2176 zcmWNRc~}j27sqeiHjQoU48{^eH9RT?gU?ThOucvq8SCi9Yj`Kw9_ttk#`8|5-fWYU zQqwYZi|%ccZo1vB>UK-pol1)q(RL|ID)QcQ{yoog&gXl+=U7RtER1PB*u>f7_{x`q zCB}F^tBjuK8AN($aeS13-NY;^1Jr!x-+Ee$HI~=Qy2hLE2qHbwfA*`#O{nH!A609foK2 zJ1+XQU>)Rx>kuVdee+rG(?eP6L-wvS6<0phk=1ma(Fs8e_PWEIL&>a@$O%~ILxe%i zxqV4QDc`Wnr3mk!BBmPd@jB-+?Mo7=`%fYM{_kv!l96JoJDOcYVoSpUukY3f>R6&rxHI?U_6( zWY178xWkmbC%G3%lre`RJt}WKPi}R z{jEf<&3k6s#Zw+uPFzqDoAyWYYRwa5X^nW98s`bEV%xG9a(r^BJ1FDkwtK{DbgZ>b z!Zp2y{8iyp>spasNMz@@M4S&cpmTW3itTX(j5QNe#BDGlA(ZnWwa5_kB~-D4#}W~#CH+D!bE^ODUAVzDg>H;FiLS;2}! zH5^>rMoU*U{~Bm1CN+c;b?J?fF`V(mp|pLI%>+*sK8ve4-SammCd)CS7Da3q)<#wb zw?t;zr&Aprhy5qz2q!sLOfs-_kKuFGN0#^NX0}HomXn{OFzV)6TSaGwh4}7KFE!?I zc<(dd+VPC6^a5&+8$Ib9f=hW1)u}JBN$J35lNP0OFApN_QxGO+==>LyYGDzQG4|hAMf1ZvzdWBI+aNMmWPD+h9Z6%?G z4>*?g;&}Nj?I@V3yusc7iy<~>8k<%XaWUNx)JSLH36FIN4TanMWjxwo)h`K_0 z>cVJ#S4m!7KK4rkSR~QYu<$PPKg}d?RUyeW=3>!08BJcXsE1@x-f1ebjwE2Fm!q#J z_di(&4tK8hWUI{C_}c#_67 zc{Smgo!D=xr`92tkT2^vsVir6cm!U@GZ@nR3QGc5Z<0x0=PM4K4WoOFj87u{3A`SG zpDYT^Z_RjYf61}zk9;^8L&n}l6ywXVo*RkFXU6{j?!;OBkR$bPNY|K&GlL`Wm&;fc zqUUIH8v*u>ByY|qeq1qQ#+D&MD|w&uf%${{(f3ud)IJHdq8`_~x4HcI0pFWySeB#W z>-Q=Y=Tn#+oJEXQ&+K25h;i1jKfMIa>Ud61uR|YyAHQ{7SRE~X<^iWg7Ct+(2P^&pCbw41h}HCZ;Pu6+aFqDRj@ zg!lq_^hG>qcC9}kcn}hpBxC|JU*?-Hu8YeZ+8r_xZfU0U{=*{NB7D)7J$*@&AeKrU z3LVSnrfIe$y+c%&kya3Hhdbde5mGQSk!!~L15E_$Q_Zg!;heA}q9SA=>5WBKb1B*b z8nNAm=LS+JO@;P1pm;?`W9DNwUn%XEbGf(Afu^Vcj|fl#cGJP-hM{0PbW2REr z@QlD_Ad4s(fj55=Q=uZMn7;&th{c!nT-~Xg8kOM5Ca^|ei;SnFDf{gs57Om>?*0N4 zXu?&^nIZ>XkS*fPLSt%+cp0*cet#8?o8Gebx*6-eV%GC;=YV~%_R5uEvDaayT;Doz zZ?Tlgx>JI}e=7 F(mS1Ze&_%I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..05f2333c144b0589f1078e4484d0ef03f42d20ad GIT binary patch literal 10818 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 TyipF5kJ6rPn=}7?SS$Vq21#ny literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..4c3b6643f8444e4594e84f05548a2b7154711c06 GIT binary patch literal 4336 zcmajaxeWqQ5JW+4)+7Z|!6YNHB@YZhf^wcTS}ItTUzD@M_ug`MtK;31w-4pqY0lo{+u_U8?L#?ta7Zt9SKe;(c;BH%w`&K|<>_|m z-QgGI=+j>H_Helg<@!##cR>2|-Mym+-GTP_`gC`oo;<9-mUE{$oNu>W&O0YQ_4;l( zJMK2er{mtyUVR+O!)d3w_x2rlv3VT2k3)BHyWUTScA$KB+UG;QzJ1tzdA=Qe9Lnhx z`R?%bA>SQ6D5nqGqr>*>@nP@UmB;0vecWDq_!`=2&i(4RyG6cTzIWsH<#5;>U7nA- zOP9x?oE{zaopN-$P)`o8U!89k+JSO7l;`8U)9=;S8H-h;yrw|x#V literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0af5e50440b2d954b34810d0736a7ff7265d5e92 GIT binary patch literal 2176 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 TyipF5kJ6rPn=}7?SS$Vq21#ny literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..4c3b6643f8444e4594e84f05548a2b7154711c06 GIT binary patch literal 4336 zcmajaxeWqQ5JW+4)+7Z|!6YNHB@YZhf^wcTS}ItTUzD@M_ug`MtK;31w-4pqY0lo{+u_U8?L#?ta7Zt9SKe;(c;BH%w`&K|<>_|m z-QgGI=+j>H_Helg<@!##cR>2|-Mym+-GTP_`gC`oo;<9-mUE{$oNu>W&O0YQ_4;l( zJMK2er{mtyUVR+O!)d3w_x2rlv3VT2k3)BHyWUTScA$KB+UG;QzJ1tzdA=Qe9Lnhx z`R?%bA>SQ6D5nqGqr>*>@nP@UmB;0vecWDq_!`=2&i(4RyG6cTzIWsH<#5;>U7nA- zOP9x?oE{zaopN-$P)`o8U!89k+JSO7l;`8U)9=;S8H-h;yrw|x#V literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0af5e50440b2d954b34810d0736a7ff7265d5e92 GIT binary patch literal 2176 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a6eca5e22c754bca9293c560fd222d61ac7ec0a6 GIT binary patch literal 2056 zcmcgty>8nu5H@AIX08To5JuqspanE^5YVB`mLV`IXDHxis51mv2->7&HV!F>bSnEX z@&ta5j(v-~Kr*&-hn7;6pP|T7m;z1|bOi3cyZi3Ln6xKsdL|TqYlX4?!Rc(NrdDb-p0iZ!4MQAjWh_%RdIil3wpfaY;Ci>U->%hu-#%!A8gPXG<=`nV z!nch7#MN&Ywmu6}6asD#c!}r(*Dwxujx(lAs*Q*`&`3pgKBx_Xf$L)nuDw7V##j-wt5Uy>$lmP-V_ z2jCIDhnAM;JTTR@^nL@aJuDy>kl;n72_gQ-g|gDF;G2(?;DQ5M5ws4U9aR$LevRar zSjf57yim8O2RoVI%Tl7kMxksQRF7UlTP8|pPSc!-<^5j|gef2g|0jv3uM5sRhdxH6 t2LY}-YdU*US@ZNok@qh2aEo-S3wO?mbFND#`iJuk+?D&W2p@uO=MOTS>`DLt literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..05f2333c144b0589f1078e4484d0ef03f42d20ad GIT binary patch literal 10818 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 TyipF5kJ6rPn=}7?SS$Vq21#ny literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..4c3b6643f8444e4594e84f05548a2b7154711c06 GIT binary patch literal 4336 zcmajaxeWqQ5JW+4)+7Z|!6YNHB@YZhf^wcTS}ItTUzD@M_ug`MtK;31w-4pqY0lo{+u_U8?L#?ta7Zt9SKe;(c;BH%w`&K|<>_|m z-QgGI=+j>H_Helg<@!##cR>2|-Mym+-GTP_`gC`oo;<9-mUE{$oNu>W&O0YQ_4;l( zJMK2er{mtyUVR+O!)d3w_x2rlv3VT2k3)BHyWUTScA$KB+UG;QzJ1tzdA=Qe9Lnhx z`R?%bA>SQ6D5nqGqr>*>@nP@UmB;0vecWDq_!`=2&i(4RyG6cTzIWsH<#5;>U7nA- zOP9x?oE{zaopN-$P)`o8U!89k+JSO7l;`8U)9=;S8H-h;yrw|x#V literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0af5e50440b2d954b34810d0736a7ff7265d5e92 GIT binary patch literal 2176 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 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..db9676f5e078b2e1558b599f063c8cb9d0c86512 GIT binary patch literal 210 zcmW;Gy$ZrG5CCAWwHnW&5(k}&li;9kj*6S;;N}wACe|P((xmj~X?zb~&eY+K<2&w$ z5E>?N`V@+1-u|s2sJ`Up^0W!eYdZ;I^^1zqq4bv*C$slrx?mi>0B_WxTxm% z0ngze7raQV)GG2#@%n&I7wu+dQo+s#zUCXgWv;_YA+v{N50{ygx2ZczM;H>I1U=%r i2ySEd2t_2MPrEI)Q2qh_5F|r{hW4=Q#yWd%GX4RmUosK^ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d6912d0e73f7f5ae1633372de9a2ea5196925b80 GIT binary patch literal 33 Ycmd;J7GQT`tn`xLVt@b^D9sF|0VBu(QUCw| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_2.pb new file mode 100644 index 000000000..199d6e353 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BwJ(м>u?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/output_0.pb new file mode 100644 index 000000000..74b8cbdaf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJîŽ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..eacdcc75091fa4b9c3f10883a0eac69154a0a055 GIT binary patch literal 1607 zcmcIkF;2rU6s^;gn%{^bcPR@)#z+jn##E8A6$T0tuvn&XTMKGOvD*eVZom;LaREjy z03%ld$AH)nLlVhJ^knP*=l|Zrm;~2sbi-w`W4Ja4&jCCjaz0dJGh=z2DXovB$y9nb zu)nm}L-mN$lQ`K;_L6<7=QFzGVlp*!YTr}{%JY=TgeP=7mm?#T98Ouv_xmA^mDGkw z6Kz9d!EWa~BDlWUJP2yFkDmvvkPj~iP!83!L5AhByReth51Xf47c}7wK@|lm=(-<= z>t`90I#rrSZSYf`&3d(-*RwNd!fO>o`f=Ifx}XC!86JmFe7wsv}qaI9%`LJH(FT*Vj)K*ufS6bO&fj z(0#ad!Y9m#1-Ixx-0)j5RVpcBH|oH8#*?`V)39zMcZKQ}48%mLj8kFLHt&KJJ8>!g z?}WbU6jIuN03(9I!*#nFS8dx90l>IP`~ob1r2~)y8rLmA_hb!xd#rZoZMHuF@7qIh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d6912d0e73f7f5ae1633372de9a2ea5196925b80 GIT binary patch literal 33 Ycmd;J7GQT`tn`xLVt@b^D9sF|0VBu(QUCw| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..199d6e353 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BwJ(м>u?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..74b8cbdaf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJîŽ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..fdf4265e8370804eefb8372d62fa14674a2ea364 GIT binary patch literal 257 zcmZ9Hzit9C494p_{-o}yRAB&hWJF?UyLBvLLtQ$R#o{jEh=2qoL3i|Ncs`y2a}o?4 zY+1ig_V-x`ndQr3qpg}m9pdL1@E4&*I3iRM{-oHtlJ?%^qrs0`#oe-=dKbdXM(_5= zIgjH$W~Q{xYcf{pdWa`T7(RNf4n;K1j?!@0ogkHs2Zch@_f);9clAN6P^C?|j^_9Hz EE)kVI-~a#s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 000000000..aeb52e93c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d6912d0e73f7f5ae1633372de9a2ea5196925b80 GIT binary patch literal 33 Ycmd;J7GQT`tn`xLVt@b^D9sF|0VBu(QUCw| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_2.pb new file mode 100644 index 000000000..199d6e353 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BwJ(м>u?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..74b8cbdaf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJîŽ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJ>&*ckw#O-Ry*QkoQ<8y!KO7Vp$cv+d8V_ga@QSytG zo;hXobS_Ff8YeU}+B%_K`V@LsVzI)M(e8f#c+ly5`+1QqiQx+YQbXYLu=j!Zp7}hD zlm1(@4RN?95HwOq9^)+8c~=Q-OJgw|LR@0C9Cb#~$k(Y4cR{I*vtW`u;}cU%-z3mH zeyBd(g;>(A^TX!|{sY~BC2QFP zbeb>O?~YLgY#2Teql<@LozT}3wNq{bHzBR;g96zASu=8-JU+!jICX^{ov2G(sJSt+ z88qnu>{KXM?bJxRe#mS|*MkF9Xj36qeyr4o;Qh&7{@YACKWIe12LnnNg@|_j>YWe$ o;TQm=eHJ%h1FTzsv_LQ41#-QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d6912d0e73f7f5ae1633372de9a2ea5196925b80 GIT binary patch literal 33 Ycmd;J7GQT`tn`xLVt@b^D9sF|0VBu(QUCw| literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..199d6e353 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/input_2.pb @@ -0,0 +1,2 @@ +BwJ(м>u?¸> +¾^?Á|ò> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..74b8cbdaf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJîŽ@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/output_1.pb new file mode 100644 index 000000000..935f07e82 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3_sum_weight_high_ii_log_prob_expanded/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +Blog_probJueHiEwcirKXf7mt^MWDY4|HCgv?*WEN5cnG#=|oEq=voMM<_lwzD>l42SU zl8!G=%}mcIiBboeFQmk!z`-aa!^OnG48*KJ%m&3EHb{&mN*U-1AvrD?4t604s34{y gevmu4xHy2Ou>cjZCUJ8yRtd3ju>b`aoR|do0iD4tEC2ui literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f77b9aa23cf6cd80c01cdc032530f3dbf548c7e GIT binary patch literal 129623 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 W;_oNEWN%bVwPlTa3jWbMrTz~&7h`__ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..181fd66da164806ef9ea68f993f539ff6e6dce4f GIT binary patch literal 51861 zcmbWzJ8o1_6hu)>8*s>&2$>NXlVH9e;gxKubXta>T;FqFzdhc*{`>#s?eX^d{o9Y1 zUq65UdAxl3|L^lVzP=+J)_;$EqT`SEKj`*wIl4S_50}%YLq4=$v`fb!-44BX=yH9R z9jL#sIoz&0?O!>*_rmVb<@q@D4tejxi+Xf@y1sjhubv(I?dx@4o)6oXbEi2zU9LMg z-+S7#S8QKz>HMO*-r)`|Pq$w#-#vLd{PyWk&+bRj9lLgL?~-#D()FtA7wzluyC+v& zUSEzbPcNrKzP?>LZ$kgo48)>q9x*eZ8WbyLfwaeRuRA9opfq zo$kunfp(yMz8!jVc42#TJA6BQC|6$(Ht&6O+@9V-xpkM{UAkR;IXdordN`Eh+kV@^r|@?aA|T@1)~J zJ5XPb?k>OBJYSEGch|f0_;fwIIs1Bidi&j}-@aWryLRYM-VT(9&Ea;|9eeU}diHU7 zxpI2<bV%2e=fi7XP9Iix zufF^8c<<`dyTiA$P@iu{pAY%CoOih!S|#rE{uv!~yld~@>k<=nF;r`H@^57&o!_TGp7_zx?WU>H2iL(0idCY>sXhw~u$Pc^t~yahHE_eW>R>`cMv+hu#6@p&lQHcI3T7 z9`fbsc5wZr^PxQ)y0^G{&AF?GyCYvNZ@0bXaXs8V-Cnu<Cij)cA*>&_4v3QI@H7EeGgsE4!@`mo5$@z zJ9_TI=IHWvad|piclfY5++BR#qeJh(_1&v3?;e!HVfXCT*N3a;KHrXA{pN7Ke)am- zzPt8tXdjoOY29zIXMWd~@=!_vm_d=#byLbUpiekdMph7v<@C)xAf~ zu6%iO_UyD*AGf>q?AVp3Cu_4s;nMLy))>kb|2 zK{}*+7ag}xcfY(BZ$}T8hw^gtzK2hTcJ1gxKCTDpkPfR~ciPim=)3Gf zJ4JbWd_7pdze9KQ?CHzF>fJ53r;p1)K9uV{x*U}A9dvoRd-AxvoE{&S)5q)6_2pO2 zT|IedM<3_Y?JU1J+>V}i*yF?ccIbAh>)UOvdA_{9JJt2ulWR|Ip&s9Tcgp46(WC3} zp`5*9bGY5+>CIJl*SqY{alSr&?aRY!mk;&a^By|x9r()Ap*yg8cgx*_`f_-E_xc@l zJ%06aId}QceZD;8<9gn~hjw7|IJ9d|59iy*_37=kuP3h$o0nU=deDCJcKGg8=hK_R z?aSeO@1f)N%e$io<#BhQUA}yEKIGeh`h8b*eJEdSulJkB<%-@})VuE4le2^S9^9^+ zKBPBq2ik#jNbe54IrpKQKIG%xYY(qahxYB!+bh?D?%JX273Jve+R?}5+N&-vhj$-$ z$4*hdDCds7>g~zV<*R#_eH>QTUwiUU-aF{}?%?vUx*a;C+jFOSeRt@%9(2d999bK`EbPw9+f3{SySRNj%{Qm7$8WE`9_&53 zo%ZSO>FdeUp}f94l+%~zLw%@MPH(R|?jH0GXurI=dve`-*7vUN)9v$%z0-XC#XtIf z?{U{Y-FHAa_vCRsDBnJ=5AEpLS-Ks0IXx)HmtS|~_}$UByL^3lNY}^hxR3MOr*~)R za(3K-?KQ7Q@B8$N_VxMna=X2=_}Y=@+w~4uU(UN$P7mrqx*hMahw~v{A1^k~r|Uy{ z?|Sd*)8*`R7jLe4dvr**gFn0HyY#!u?=HRQZuR!d-Ph+=@2p}a_ z9^M?k`*e4p{^IM7eSQ1TUUT;N&<>PqpAY5i;0xuTeH_xEdw9RI_vG!>x5F>WyCaYD zAsx!wZI14pdboUZxV#+B?+z}97x~@sJ@W3#;rftYE^imNPuHuC+lTGZyH8*Hd}tTf z!|j*L=|g$E-=k-bFVF8zb-X)tXxANBU(Q{-bf_;!m$zGNuX%gL?stbzcegvsr+W|H zUAq0|>3YyR^dTM6_3T4Bly}z-)Z^>%^%vLU>(lK+IlI;I_Pfis$Ja0Ro_>3Bbo+Ej zFY4L%4mo`}9Ll#(w}V6ZV(;K`xciU}tLyhYa{Tt`eYf7qyVE{hue*Gx?;dOqw<`zj zKzTl{59#gky;IH}AAi=@vs>ibgLLIme0zNQ;(dpl-R>>DIlJ=SLC5vz?&DBS56VNjyZU_CJ$Zd7 z&$p+K%j5ENJ2<~P<@V@$cIa|^Tn_I$_;hvnxyLWc%ehldZ=VkB z;oh;hJ9_rpk`&-n@Ot$J?jN@#*g1eb4gc;j=yW<-N-tx*T+;Iepk14)t;O zR-Z1XPlwgLd+GM%x>MhK_B;b^YrH3ZC*~#zC2t# zx}LqI+jCDI(&g;na_;fm7RYzE^(v_W7`VJ9ItwVf)SN zLA(0Z`SkA9m-CML?aR4ezk2ud^_r*a)u($m4)yhVuRUDP4%9E|LHEk-@NqfFcZcp> zMLDQ1heLa~9^Je2>E-Ro*~N?Xar?M;;JqhLhxFdH$1gVTuADyIz3O)4a5+7G_vQHV zkS^CgpI)?6w5RXgxP0~QcW3qG>_L0=@%p&F91feqp?8+sgM8e+e$nqH59Rof5AC}P zo5%TjOLrg2yGys%9lAUYhu*VL z&pYIL#~vNZw@=rD&2`6nn#YU!dXV0G?aRxR`wn~14j<>+gLM1t>GN?peJIE89b67} z7w512>bN_0==Pv@!j-efFW0Bz&^$y*d@^*@HtIyZN z<=uz$=K0=ZhhCJk!>^9p!}aj?<>iXLL#{ja^yHi4S8ra`to*TdnZ^X<9o zUDfSYZ*S$?yYlweJL)&b_YUYj^bSaec5!IW9Xig}hjQ)}e=Ue4*M_DxV<9Z4&R>dkmKV}AIdGR2YV0K$6?=P2kJq( zp7#}3e%-YP<)A$%=Pu5tdoNzJ5Bc4pyMxQQV+S^`2jy@(IDg%-5B2qMeYe*R2`R3Z^7yAx(=#UQGU7YToeE0a(aXl!H`%b6_>FYgwXcyYSo3l%oFUr}0 z?a4v8?$P}od^!&4P!I3D`rawWhkSeP%HvSJeR3a5XJ{`6%SG_xOP#*TZ`tCwGTn^f=uP0ZZ4!sM9_HjE9Y-!2_i?>@gfa?m@VygNm^`uNK6?H2j=_&DD_?!9<@x*bS&2X;>$>OuFQTv48m z_a43IeXu>cecX;by(p)TLw&wJANn1N^2P4)-LqrAK3(3P9?qAy!^fd~xqNrz-Noe~ z-44Edd$4&udr(f#cgWM5E7!AIzV_tp>EV#xo$Gz_(2gDs>FZr`_T==cdp{qSqub@< zP)-lhp}cp=LAo5QUfy@vb5|Z;z8%=S_t0VY^yQ24a(y2z=MLSTK9qy{dd)3;_2k`` za}T;B2kFpWdw6>|-wy112P!{%@(XBX$&hjJInL%YyEF6TRNcj)cWi~4js`h4geE2mc?n$*kJvzQn&mBnDa}Uzxp}Tld zAG!nW@}XV4s1N1sc?TcX*MoYHuIC+ib9}v`JmllhzIW4cs1NDhVTTXx;qptD<3l~Z z`{nZMJ$4q_gL3X&yX`fPdndFH-Gy@Y?eK9q*uCm}Xs35@_lo+E-+MTJ-Q(MX&38|( zy7$xN+~JqY^Yw7(U63ws7xK&9qvLk;aK5{^J{{MCd|b|*a{KbQo#yFs-Q~mjxO?3% zcZZJa+oQ|T%e`y$>$i`??%;M{^WG~D`)<0tz3O^UUXJb^e8`uFy{8Z5+Q;q7+0)0H z(}!}fd$@c#9rm95LU;9Wd%g#kt8Tx2y1c#|T@Lcyh5CAOIF!fjLOs}Axx3Ilw99W_ z&OIoP7wtehuzl}X`Q^*IZ&x0dgLFB1cjW5pt-M~*j^Du!edXo&@{le^$Gwy8K3yN` z$>I92eK}~)jy%7}hy1l8_pEPE&v!t+Jvr~^SJ$s@M-R$D`|^;FuRGQC+|$S9%jxoV zpgh0%a`_AG!{+IJCqB-nLpte-dU<%)Lo_2|$JAGcTCp1vHU%h93z`g-m`JzO8I9X^!9 z?a^`f=mC`ad|qm9m1*dE?@=<}f*E(ht*yUOi&*Xr}-?G*WT z+|`G2`f_@5d^)7-K|Yj&y-SC7pdIhg=NH$Ge*LA}m0$1hp89sLo%ZDQ-FF9dDKMH;2RS(d~E#l!xx(dbnP9 z>*H77J!rRg>_Isk>Os1^_dtH{m)q0hSLfSZesy`fP>%0A=*{ur>UpOeE|2r+(0yF4 zC|A8)&Rs}v-d#D|?}6*%cIfhu51X?i5Bm-|D2GFLpnKh`j;~(t$-7&Wch{~Q&Zpbu z(_!;;s0W*;y92!!?;ai2$KA76?mnzAMf*%I(nIk%xBi=J|Bo9?tI$E)V-YJ5UbV=R>|bbjWuPudgrX9$lUe>3T&z z)Pr>ID)Qy))7{0}>v!Pt`t;thC#NS*m*dmz$;;tTj&G;fygPJg$F7_`I;<~e2bYI> z(0zG2)Z;hr9^~WKj=Vd1?&;Iz`FL~PlcU4cTfVz|@9K_w^yXKudH3jg_UMrBzW&1I c?5@0h_nOC{oI7}T=uls-eea{o(~EZg0vIPW?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_2.pb new file mode 100644 index 000000000..cb79a6e2e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJ³ ‰=µà?Ë@?£oÊ>id> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/output_0.pb new file mode 100644 index 000000000..2d53399ff --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJXÒ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..01adc8ad5e86fb2d03afa85c477f1c31f305fefd GIT binary patch literal 1581 zcmcIk!Ab)$5N)cz9? zeuF=tNB>Hbwc2$#48!ETnK$EkxZEd$E5_-LVp7$g%5aa{9dW59WEQ4E$|J5) zk=(ZQGcqBO9I)slq`P#F*62Pxh$f8i=!V6^k&4(XA)GQAT~7Hx#e#Q6Bw@9t?}dU( zMYsy8P`D=JDGRWdUn$nhx!n8LL38B7GXgY&f53oGE%NH>8Z`Z4n@K|uUJ+Q&ZX0hi z^q0?4!et^P3o76yES)rR4X2^&UW6Cx6q=z`DRrZk7N>o zczJCFZA%L?Z{u@&TN)6q!iHDGYYXSkpo)PE;OT6x4l49ZfbQ@TxZ06BbXF=K8@MGw literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f77b9aa23cf6cd80c01cdc032530f3dbf548c7e GIT binary patch literal 129623 zcmWKXWmJ@16oml+5kWvoN)$ms1tcZr?oCJvN-L!T3P_hAQU;=8Cw6^yAS!ksCJJJA zcX#*qF4p{E)|#1h-+Ry9XYc2zv{6w~QI`IcRNAO0YRY@bj}AQYxo!IjHLla^%bf!Z zSya}Z{x7a0G}?k$?e9a@e>fNKC}dvPag^5va>IzW9FnfZXP+_{Q!-oJ$k`#(SFM%J z?H);gCqH)HH-rbO#&E;@AS(O4#^oDfBvJ1+R6nChS2K~a4SEw33e!9y@% zLKmUkG7HPBzKXgPHJI4rli1$68h(bCact-Wanr|+&1zaSdoT$LJ}L2G(h=dFtIgP_ znH+8OA5w4iq|#SqxFqytJL`F2F`id*S-vHQOjnC)%Py3|Irec2c7d!3P4@1G*J zy|(7(z~}IcZ%2=5BY3l_j4&L6@&+r~U93Vt?~O7;3oi!V_zww@$MI>29%~vR_*tWo%Q(Z=XhbW<~vNq7_Lhk#@^kwqR^_4cHWtoshrQQe{)#9Fo^9&bY;|q zp=?xMfcS`L_OkBG)O&+vHBH+gcIcybbO}Gd{tVqse^FfDji!4JVu7t11{Q{~JjDxV zpC~YX=Lpm#Hi`LrCU*>REzMA=j{PTL8AUlO6Yx^+E(1G92tOpNz^66zW-aj=8fy2!aa=$-6OdZAEvtQy+pgwocjisHz zOQ_Z6Gi$gun@z&_Yhx;VoebeL(G6w)x^V8lW~|E|D;f=NK;%_oZcH?@(^SOcicx(2 zaTfws??%kAiL$9%1s>&|MSH2fy;Nus{{M1$cEJ$-nDiWjeAZ)3L>6WSo6xnmt(aF= zAv2kJ3mIus#mK*7p)fiTeyhh}u!Az@Irzv_CcGB=B0BR{YB4<~m9aYe0;=wG$K#3J z7~Jj`z6O-h`S3)cKHi_-H_Sz@a}k~{vf`g_B{)2)CnK{IX=io=N^%{T{(TN~9y-!A z^)fOS?Zs`g2(CVpL90BOIN_9quDLs~c2x*_1(b4fhtb@zDTS_AYmooBjNel#5dP%4 zSe2X4y-L|wKd%pU+GdL*8tzQno4^~TQ_-M(6i5DRz=AsR@PvGL{j|l5c2D8|XbB9i zL~&tWJ{B&Oqg8M&w*;H9R(S~LZ_i;Ddk@CwJFupui0ZS;**o$Xtj%W&gBSC0Pr(=` zk6gj-9Ay-(H)Q(1V^DAz!QqWXTqmc-t-GcnZK*!Z=Zs(s&qFR!ogMY2;-~EkByT+n zgJI<;94k-R%jL-Ydl*H-mHDr`2g@5bVe|Y9zBm%cG1-11`_4GrPk)T=epf|a`VOcR z3EDf`a6yDA`#f=C<+V_B_*4tG&eoi)o4`_=_Eb1L3-7jlldZn)#E9PVvgUJ#5pba` zD>O3r%72g8a_t<(^gboqm9`C20!{h%!3=C~io%62uSHRVHv9guW1>=T&Ul{36iYkz z+FA<^*lEBud-T|ObRmnJt7Th)?1|tI?i;Vbyg!>TwjhwfJx+;=u!mS=q{Oc4?HFXX zUz~Ow2{rAD5VK5qMD(>t@vCKUv?En$rHP!8N7$A6tO_^w8kr{go&qacFI9~ALX zVLI&>YK!b|_Sh&pg_RBY9KLK3R)w15&f`R$oBkM6(o#7}+Z_L3MUS)x=(KjJ7}?*R z22o{rWDVX+b1Y>P_b4hAjj<~-B1!F3BJ!c=Det(acjg9a- zD%Hpv_GtfhJtBMA@L%3Iv7^9R4;5pb+A6qG+0uMXvVhl6%6ZD52IQau5jtbAoCEuc~Q*D(@Bin@6EI$_Dnyy z8IRobF~D!E(A`x8xrjTMwn~Yu&wZ$tGm3kC-itrxw}kAg9#b!ZiCv<(eNHwnHkR<* zju!Mka1@rY`nWU5meadh(yT6y4z{PnvfF=gx>1J*Vv6uj#~NkoaST10EnL66$1t}y zVo95qIDdBxRo`Dnbw(`Bz2A%J532F{P%EtKTX5!HFFq-+L*_nbHm>T%n?qW#N#hRc zLQUwOH&bv*7?=9?;Jgp6Je}W;mpmVe%frs0%k*<-7`g_DF<)dm4$8Ro>V46suMsts z9T_{$jM3Gj_N zw~0Y8s=I?|x3;|YVh7YT{Q23-gN^Z-d}94ZrW`bar~WoU>CQ0vT=x z?#EUiIqK{_f_+!^!*~8fTzvNjvS)LPG7op=8HFgWk;))O@#+{oCr)9%vmT?$Wp}XA7 zSCwJhyVbaMJ(h2dyu`+@=*@x0$Kc1h zc;u?|#3|Pd_MN=|-+w(r`{%#m>FmcQQ%P@*>>z27n;3Lr5Lcyza=_sW;)_`qylq&5 zTak-JR^|2e~xD;2nbz;Ew_oC`jF(VIVap|HaZ2D6Kd&jYetN4cUbKS(A zW8J8uegWC;jhJdbkkJ#I=sK`~fBMuT{=^8*G4^4++#VEJm@>CvF1B1B%Kjct#fZt# z(8+X1W^^kSoB~rHDRXz-59pa{xOukTK#ApeF~}nlL$_x!dUhNX55_X1I+*U?%P8?U+VWvp`YyWj^ZE`*LK*tFSV(!@$|ML^l!27JkIw zI|;nH*PW|RUBFdY1MbTyGJ8=H0}spSaC3uuM7y*5j_$ zYG|B&jEIAG(EICdRJo^dLAX07dbn{)_B>$o>!b9^$peoqy~@+E9L`GiPQlXR%E7Hfwd#8|&= zSpLwHM>JMJ-Pe*O*@{dL{*GBYlIikCosL_>*{8vkj&Dsw^-CYhw1?n=V+#E)*oySY zn{dXXMWm1Ygukyt*=EZ^Y@K0E^*6>Y==`(})n~pSbgL5IOpM{}9Z7tin1J7- zOxb?$V`1?3C7!9QMUvWT`0IYd?<;QnZ`*V+PAh?p#xi;ybi|E}9M&$AXThfmCjAY- z;dd$=zGNQ$JGcazA^L3klFpMB1Lzvz$~N6K*l3i&X1(7i+BuXLDif zpX_D8TI|T;gpZK2{i7aCVypk&2nnNPz-gf0Gw?N!B4+pfpK zmpwSCJQun*Iy2yKH&$QDqml5VrFAqzJN<%Ei@=dL<-9sd5w{XQU_`-G;k+`JVM;}O zXyrn0`<)nx@wj?r65^v3khVmb(_FMr)pIqjW_Mwbv=^seJ1OhwavT4B=+20&7@mm# zg!?9=`A2RtR)ojPM%8{pbk_;6x);W;u~}$VU4e(w1G!4OFY|79;Fuyu&KYzS&;M<8 zzpd&f%etq)!g-rSm1C$d=v~A`&tlnjs}VkTwsAAp%H{g8Gw>l6*s5&D*DCi!kFk@` zx}um@c6OtAeqiTwYHI5RJfCpvd#%3)jKm+nCMvm?1JP?=xicHw*Y zSK;94$>v#!JRNdYoDcG1_R*=b7qg0(TVTSq8R|S#RRax4?>3oFM!I|ib^DZZ+cbYx z-B#qs&`HAO{s-tL-N*5b15tASI@mN^xL3IkS?zdXzQM~tv||+7jV4oMoh`< z#tSVoF=|a7FO7F&yQU4eUl+(n6Yq$&cbgzTDG@tVY#Dp*g81&+jCO0MWBUqup0U`8 z@M}`P9(h{!J;;m?3^U+9ZwjX031Zik1-#pFH70BfXZIhM#R}>D_1+$=-D`^9#y2r) z@^F6aa#@_mJlWzt`uy|fE}j+!aehh$H}_nG=eJK{!}ss#G+U3?@03thY0qbQr!Z4( z68>JyrPEne3{G-k-O~(K_2|i(#n<6~yg&9^9K`f5j=b;Joi}D?a?#6pdcF(c^@x$w zES(NJ`$H%gcNE);H5j8Qc|R?4(3rhKc0aiV!@ezpl0z<|MkFyz#PM&>9^C9(hoo_8 ztl1Gl+2_*&+QBs6Vky4Mg>vk{0aSexB9=_=!s9FD*z<`s*1gxqz|TGmiO}MewI!@6 zC}E~)Ik&(5C}!B@a8%A1v@Cv!5l=iRKRyI4KQ!6k3p}j2D*Si96-CB-uz1o!_kyY$ zxTw;T+MCWoXV*5Nlr&ZZj+lV~!>m!HSww@|hB$3MfW6!6@ytOj?$d9>q7$QeCtyEr z)CaJ!M+a8SI)k)D1(fwN;Qs1QV&|zVIHc>()J1mmpPxpPvz7SW$&1GdUP1qQN4_tU z_QQ@bbek>pv$ysj-Xn>ROQf@Hc^j{iJBrRdeE4^Y9M^dVFr%Dw@6n&1-Y!Bn`C!^f zYjl3lN2p)v&D8I;vXZG6gzv)n5Yie{8ff5^_eLn0gbMAY8*xs44L&F2Q7LXPxBNJU zlILe+qYg*#X(uaYD;Z!>P&px@yZu|rj^K|+#=qN^rc2sIcFxA&{?;W=ut1{kbs8ABg9=S0k!RB`kbZXs_r<1;u>s-eyP7-+ui5vp2d;Y=GRYOIWtsmOUzJpcAkJ zhJAPAOZGs1ysgb2Jr|2|t`y-0hY`YloEhAQk#ORJlzyyLnv1F!HCh?8=ZwLEqrVhz zXT%JQ*Xhs8pDa1LT89&d_|jxcE)NCh3HA4SP+jWDvx_&2ZCw;;+bscQIn!`qvjeY2 zeUsgpJ(LY|9!a%Bj`KZKIo!*F?Pu2^PwSkRrSKo}t$X9}kPcjTc{Lt;k7B%A5$7D~ z%wV0)JmFc&KjukXdCQxhW~{{99tUv0(*TsD|3LHPGVUKgl6?|Bio3C`vd-$s{57E+ z=lu;rbwO{Qdu2`~m7gN)WhFv%3dN=;Q7|uQi-Y%kaB_?-aU@XmSae>TAKnhNk|sI( zWg+&~j7RTo9@74*;He!d^x2ck63u2rl-?Arfft~$yarcS{Dz{VB~NyEjoRdFeyT`h zYrO-1?fD6n8_F2w(~OPbj;y>r8};8Vi*^~QjIDIy(eWm9dJxE`uOs<>(l^YQpTL~O zX>3rLicXV_=-jHz3%lE~PBn)+JeMNkXbC%hOy>SOFR{E|DEr;-$Es>;_G^^ZtY-kk zi(WK1JBYK*C(4e^FsJ8{htPR3f`$v%Ag1XfPMvDQgmW4&9_vhl#S!$g&lE5F%*Ub2 zMne030p~XNRM1pme1vp{b~fNdk6j4c(unmVEeX}VC@D|ovpte7^86vQ_3=gc zqbK6^L~HTRaU?n&eGECDC|;8e`7dnhaPiBx(WG% zfhfZ{1ivw$_c9+UkG+J%lTLi(7|6HTt5L9h3?B{bPW>qfd>7h*^*02EdHL|$_*4db zF~Fu*9heny3*93!_{ja5_&TM8^Gt?OW?v&d4*i8++xv3tHyPzLQ~B#y5c}D$z;*k7 zaNpp-q@(JnTI&n@{$H_W=R&FXjH8d99$C2qroqvyR2x9sc@?yLF_`NdE<cQ<Ph!5Zc01E@a2nMN z^>AiDI_r;I#Fzd{F)1UL(M!shvZ+62cDH0-!$dLGptkTej-+?v+l=#Kcwld~dIxjMQGuYTmvPWU zi5}t4u%R)CEssahesU0Z?q4CiGzV})(q!SXIv3d|jFImZh>dK^yPtaT)7ke}Ry&Gz z8ilZo_omnJA)Nh4ga78gz|<9;_<7nb^y%7xLq=c05Y@AAQ?TbL%fmvxx+g52M>Bkc z59!yc`fiWe;T$tT+a(%eF$% z+Y`+*gZba+e(XI^ksVi+P`6SWa|b3fpz^ISGU$N}cYA6l-xsd8GLq*o3NnaI7&M@5-01ivukHO?6eZvNz(n7IEpUi z5zxF5z#*TfqJvQq&s16=y0j<16mAjPp~c)4=Rn!GL4=kT2bzAyHV0EKiET@Z@b`#J z_hQHxXYBX0MTy}ZbaY*Vg{?Kh#da`{P4Zz5+Oy5BF&w;Yp2+Ffk2@14k}e^8;|R#*V8C{Ya}{ zNYgQ9`srviDSyU?iBCk@>@`^1IvelSKEg5MEV?gu#j){c(Ntr?*`axq8?1t_Khikq z-&%2~+gHdRc@BfsQII{|j+n{MF}6IOx)lWsxvt3DhlkK?yAkIe*nt~2eUVai3FogV z(MQ!;Bn{F<-C6@)NKS@QY!rVCUysn8SA|~3&7%LaY_6{VAl3zHV%xPicCa6h=8~R# zrz7pJ93y@=8O4}lCwjkpD!zW|z>c^2vSV;CudTQy%U5yXg`wdb+lLIXYQufwUSh{O zHBL@)q;bCtDO)t5aX=F1OmyIfPg8}Tvm6K2&OyGy9CVZI#(MKrIBlxK@p87DxM&K> z?<*qhL5`@Fa)9Rxfv1)FGPiM=Y&X6giz5$-+S7w*y|YBhU7uinI~(!lzGs@x3`?Z#(n-t>4)4RflEC@(3*&#sSB?_-#rB&9fIGx+oP1J>`&pwUGMH z{U{gO6Sqs%nR(+9x|qTU*Xn%MU1_-)P318b%uDp z5R0$6uyKz)m(6lS8@*fxFL2?^nF}#^mJ^$Xx--ya8!Up4;N0y!*mYC#BgZ9kcC;OI z)raxk&h$8n|u??eWoD1Q5o(_x`>}UT4ie_4bx%tYv{akWulqXCreq* z8ZS*@@XrM&L$~70Rc*csijgveojC6_1r-%#;-g0x*CZWpSc>|qdPI% z{0F@I+tKb?D9v<#qJLRC96cJ%+4kC;nj!dXxFh#V^=6`d4SvsX&1cH6W z#DzFl%K3$0c7!8NANmgkMxpFzs>=Ci-NoVwZxCo;%gT%GXfUlK+xAXIo>DX~@6ljj zjWY{kOL$9m3-hNZaL)Xc-2vwdgI?_G6PG zIPc6LilEErzWo}GnPzg(NGtwoUL%gTNZ;$b8`Vvve6xS3?9m=$#?zHGujXQoM==+w z#?du3jnk(slbJu#V)E?;_z*2+e+p*2{;8eh+r1R+gH)yS-Iben7x38$UCv%##EZQO zIVrz8`%I8$%Hp@U@h*uo$2^ny>bwxYRWFDMCp~%S=~g@s?Z(R4hQ!npxTvGTvppU&_)?(&8tF;CzggusG0`8)xRTUSlMSw&=1kZ3$Mt-+)bbMzC}9FGPAPgGuGk z+&dlZmH&tyI&Tm%K8=x1z37xVPux?lcaO@Mjz>H8LFi+!X{$Ga))O3|VLub!pX;z<`E!hG`vhx@!WcLqgLgB( zBJis%Z94{Y<4#4csat>v(cQTFv@S2UB=gvYC^7VJDyz?{&>?-SthKZbZ!%r^O#3J5 zUyWh(uQ||2+kzHVgAx2$jkZnq}1yL+0&6a9{7S^^@!u9q|6rIU%JNt8nhxy zb80MHvxc!#+jY>b&)|lsQidGy6r<*)!aH(4S`YcMT+&%bZym*xwqH=w|^WeuJbMZRk4?Jsu)>j^w z*Zm$6bOha`-gV2LMCR;{;I0CB@nV7&|9&vy8HuMj6mwXX{$NquNBJFe;CXV;P#ldlSyK*ZIwVQ#Tg9^DTs~%;~hx1ROD_&N5 zbCgesP<{6ruV>Y}_m%vN4&nK1XweWeG_x6KY`d}6~@vM|c34WOmw$!uL0Dtc(pXR|IXUhfy9_Zsj))G?eg7{ZDHD{*j% zHfN{YM19yW4v`-Zv!qqx*?Q78MY_AsN&T(Ob=l}c`CPPl7|%&(y4U!rGP9~ijGQxu zo6~J5chekEmtLVuX%YW>sKV4Wr)7y7JM+oyYBXe@5sHDW82YONe=eLV+is#k=er7= zC;GGM)^)t8RcF{|!I;e>_;~J7tXDLo(nUKil-Y?je}gy)jW{*07eAMMz}OZCHcIEk zu2(;JR7&^!`)E#b$wi3dvBi6t(R@MyRXGuVf0`h?bp?8BSE9MWlj>XDIXb5o%jU#m z=!!Vre^9_MeHHc>-5F~w$1ygu@qXMKY#6-~wprd7{aEr@8e;h`_B9ez4k9Ndhxc|R z;Z40dN4X9aFtVq z7Uc}X*Uw-rg#OgR13Fvjhc=ZLef#KVQ5%)VX^pG_r9^h)H0k{C&g?uOSTPil@W zWt&6FY;E%aFZ^?4GdvvF=R_>iN0i}N;3^F5EyrWa=ZfM5d&K1>*HC_VqLfpeL)hBq z==r8Dui5vZSPN^^B z^L6p|cUL}n97w|-KGgejP#i0><>27He7if2_8JPDpz|7cw2J8Vyg&b`XmE}1MpPyY z<`(5a`ynjH3Ki?J&AhMHmQ)(fb~UMAWU_Mv|F0@ls%PrW&( z&~=_J?T#$Lw{fa`@O=?(DhQ5js)Xv9LKcs*V)CtNqVN1ZvMf}vZ%YDPRaT-jEfP8l zGa34_I}1(aC6A&5-H)usTsITmzH${s3PJGIx1>sH1B`$Ab6xFaXm?g%N=*R$LY}}U zrigFaNSx2CaGE(5FiZaw%*X1`ZKfShru62fPx;JVJr{$l=OaoXo&8q?ajz@{3*TyS z=u5CqV?AP0?!qouTk6B#A?cI{?=L#)-edAz6kXc_>yMJpw$_*bJ}eO<(T%x8$_(jbgyLrSMRSqG^T&^TNYXeZm}( z(^44nc@7@8_Qje%6&yZbIZhY-6BX&NQIdEUZ@e<8oY@Zh*6tUJ(+`WpiWKhEeu_md zhSFzs;>6gsGxoJ8(l5ZWjS5r`pO1B;lThZAK)11`DBCy_Z+D(RnBg=` zK0XLnM*6U|U<2$kp9-VVs_ZaU4(HVNAh{udI}{GV_;pu~J=}(e+o~hesymG>VrldA zu(0{y!Mg2zIQmXJd)QnNMwLsUcgT)vL+fRUuiaU?CYGc1pQCKpU6jt90n6&O?$IZK zVb{m7P~we(@+X6P3wgQUK^Vs`#FAoT{63e=>dmDby?Q+qbsYI<%Vs1hT@&9roJO64 zI-TGD65(S)nXv9J^b~TS-=NR-+Wnbucs)MPbzq$4Eoih9G9u20EAw}w*YMdg*KkY9 ztq8=KB|pTo$ywa+yMlLZs*yTwF>Zgf#Ky>%c)vcLPv$$&cH>}n`Zf~1{<(3Mxs;RY z&cc?~KKyQW77G^616)T->$3y>@81?Zznp}=^AkLp<-z&Z`CQjCl)b{TsO$a-T`gSL z;JzGn6K05L(*u~h$(}w-romuh9QAVoslU?~IY}F#;up@#XNqz3)JBY6w+;GQ!BpF- zFIJh&3~3tA$FfKc_p7W}$a3H~Y)Duk#;qyjYu` zt7hZ=(9yKm+Lvar#ti&m$FsPPm}`eIYgRU6K5oRjy;kD2+gUV(2U1y~J1>P4GJfn0 zVGui#XKx(D=(>++lXweL%HN9E!(|w+1j)-eD7$aa4l^dU%1)QXQm$QRo|3nLS8G3F zY!M{|&gz%xy!!f|d(CM*#*CPNz0)*#SMvUk#h9RW-XruY`vc#EGQL`FEfnn*V~=hO zTOU|*?5c2HQnBKX950GtzcH#g6lrk-xg$=C`8PXYiuwRP8ZnB)WfGU^w*U>r>xF@F zPmV7i#m%1WaXtAv4DC*f%e&i)!_xm7x(uP()h)2FAI2&B-idFU^RZLfSM}Bktk_{h zg?&b1?dUdmUO8NJtxe(fwyLnIjONAtJMraH5dS>gkB910V0)oKoZLGTXGVO0mwzZ# z>z+ZbPFnK~syr3bB2(Uc8QWv~u=~qwq}{ORfRA!)d;Oy9pSv&D7ici{;|Ae5@DtQK z&BZzU1b%ri8z~)grM$B}chs##X}=I&nQYI;A1`5(O;-km`f>ZeXl6(mpowNrL}^7( z*&;_w{SkyNqfPnp(M$2Cz>u|Dm!bWmTd0m*1*<(X#eO?E7StB<$}(e~l6W!M$pRV$ zoMDJWB59F79b=OxV$Wa=)?WXNNl}l{ugVnVedO77 zc_q#^H$k#dD245OC}}osI|ro;`YbUdn{+NCFK;hg%2ctSM8>fjq9oREHNMUD=WAzU zZrxV4cZowE)p&B*a}*bkLv_M%Mk^ghy;m0zwEh^Pqi-N^p5*!0 z1X1;P5LTRt;(zzc@KhA#hhS~As^cMW}TPC!|#iB_+h;Q=Bu_C{MP8;nwF6uMPRXWl#(U>RHMzeH< z1qzEKy}sUwk;_IQQhg}jWNgPbYghbH_ZF`t4`GK-IG5T?!`(+|y#LdanR+EcdtpbO z^VZ@vw}D6r*o?{ly@bb`e&Wv%0~~+f1ATfO#lY8$bLJ`f%Ex4*)6G?g&_`T?`=y1#%1GNqKVNnz(TprHp z7h4eYPs(n34CJm;D{#E56YIR}(do}8+;X);k7KX#saG=|UA}{zGmG(YKzk^dPsiwp zQMmfkowZZ@a;wB|_fCb^brL5!q62$rpllA)&g(7shPrhp^icW`3h6+C;U%5F=QxW)G%CU|)>VcQgOW|o$4?|lu8(tN=PXkL1GMa>A&i6`mwZta771U9Hq5FGb>g zKADNU?TNDOTZ`yq62Y_xQaQ&ISxTQV`eQZ|<+5orPG9Etp9igzTihLfm2iLQ6;!zt zb6~(htTkQ$r4N$tsqW5pML~FEAJ3Dv`qU2^%|+Ww8M9KrthRvWDh1Q!dea!; zrhgm*Mx8?DymYSUCCyM=a%6#N5>F0!i0~RY_gVULP@fS(&3nnz{IL_tRSPg|O9tOJ z>_qjC?%ZBE6YHlm3FS~Zz8;)G4DHNyS0hos(}tlt`*FY98bn)auw|7x$ zRG%TBc?{Q^dZE|$Z>YXvC2`{2Wz*;9V@_5pdL6nAxsQo#IAF$Z*>{otrj)J1gu0Gv zapXrICbay4)4T*88z-^Fx(8A4MML6XC!=3_7v`&$bE0`9brv7M$*5zZcytjr6rF;S z^8)Ptx(c#uKe6#m0sZHe^7XPB?E175jY@6!vzxLkR>c9cR%Nr7*$3JBmR6xQ^cuoF z+?l#*3aZvG#pmRuxRyASW>qPe{X>Igzbd$=)Qvryx1jSEZ(ejLV6;aA+&rA5w0()_ zZ9jrEJ0VoxAI7E!s$BP}3YE^?+5Vk63l{ZdW9Tl-KGmLyuLiPZ%0OmGvnT@(s`6S) zZ}xw?U6h49?;vMM}qJs}Q_?80Gv_X}k=e;&@CfHkk$F;(i{>kbAm z=lvgayim-Or~l%}p&9VGz8FJ?g5@puke7ZH<1Ve2r3WvCmRB5$cLX!aNMgc^4#^H1 z-jPL(UV-XYAJO_al@4!@WBR_i(Cyoisa9#s)E6un5KE;wZm_A91O40cNtMJJk160$ z*TZ<4y&Y{e6xnI8E#E!WWOXN3uGxDOzol7-&++c?JiH2rG<+$$vl%vOl7AI57yb*0 z@$vbt4~to%Tzdn|PibXtt| zYtuP&R2BX_l4I7`^SHKt0otcza?Y;+9#Qk=ms(|-^$e%go|g!>ev8lNeq-UnJmeQ- z@cWobgue_#$Hm3?BQcVx4gGj{>rGUgO^}^9T}+4FZE^K$H04eGdC($9;=6rVy>TP% zkIBULVU5uJIuPp4F5JH$oJwUD>@*YD-Nisy&zEw6N3YSRA_(Q94r1~$Ro+sTm?YKD zaM(JUPX-AQGS-r(ucz{n$b-h!7}Rz3=5M7R82qn{t>^W)JvoD`JNV01vorLZZK>ma z1t;aBIC^aA21U=QqA}3=MwF`WB;W6`qIpNn2wa9GC~GL`?P z%er*Yl4_P27iLNO($ARZI~U?m@)isYyMXF%Z$z-fuQTd}Ln?jx0W&aT|eNZE^40<8NKhMWvj6tr!1H)UJl%bfnHz0pScYGID+eHuA}1hG105bIehKY zj&rM0nD%o4a=R^u?#wQfMac8sY=0y;=pbRmPxP$vV`+jPeOimT=F>4;+R+4)(zk9! zqav6)#e&NXd{`xM^JizLQ)BE~S#_t^V(`QxPzb6Ov;OWBvpZ{1e_%Y84e!G4Z!-Du zMHr_HFNgiAJ>op`8BkNsmO~AAeCHLSFX~`qs}tw`yoQuH!Q6XVo7%7yRu!9JB{z`n zmVLPFO;`4_>dhUG47sn1IbU6pyxkcp-1EzmU2P5_H|!Hys?WmLJqoK@*Pv`rf|$8^ z9mfAW1uKsR@#k;??oFz|r#BLJ8?qBAF*?}d?JjX~+pu!+Pht60pWDCmMNvzp=-}J~ zGuvH5>l8btxSI3zf=%uQy8Y>MZ!>Pl+i<{TC9!PzX*jN1DO36#!fKdk=ThkBM6i=otEWVsf!U}O#?9J{A9m{y^<0{txscB{hH1DL z7R5DD+puGsG;c9In#~)e9Q$@hDlA!mf8K#uX4aMk&wKIq6T$bRZSY0Pc}@r1!+w`Y zyq}@YS^cIX>W2!8UIbxvVlvMgZN(!PQ-1Fcan8Rh@A*%K=e+{fw4TPlawFROjYIvE zI39Z*%uAC>Fvd;NFU96!^#%`~%6y5<_akW?@fObqR*C7qQV>0}oDl|_q29wBZvzL= ze2I$)k)JFQBNn2nhnHykteltL^x^V0N=!5zz=I2|I3&Xk+nx=BbJroXui63=yC?YI z)dXjgNbzBaBZItDS*dT$!38s*H0V5j`S@VX{j2EPzX#2)vJ%{ zyN>?}!)MdcO1b*!^6l!K8;k$_Z{BR&|{VPM| zv5i=BperHGq1iT=Qm6M{wCUhWt7(JT)GeORrx`QkqA@$WJjG4thqCTAizMD?yhyUR zkGnH#l|O_u)T*O<1-u>zw#g2Jc!_I z*G8P_^i;OG&rRIctrek<*TBG`lygdAnb$QB-OG<)YvXM^kUZc)s_n!J`_7{L);sZB zVxbCn8Ft~(Y?m_|sQ8H&?;JT`PJ1qKSdHF}lGig_mBq8Q;8mDIA7@qmGj@PVsSBrT zUKSIoec00VC8k_&i$!UjgwlX=%8i+Z*(dWEJz9>-Pe>l{`2Av3LOwNDxHGz0k;4MM zikXic@S)!w{3+fCvxkyL8M9Q}^|TP{uPJbU$qU($*ZJb|wj)qiD-*tPCy+P22)BGa zU~hj8HqssYw#`ndr@IU7k_aZXNay_SGT2<1k3nsVN~fXic^z_|Vc9v^a*eSfcot`|)?%Bq~&W4qJR@vC?d5XK1~Z$mMCvoM-rz*m(c zkv{wiioUIe&Kz^jtGkU^pD&9JH{)PqBFCR?1KD@AsjOX-G1J1|h~KLXsq7lX9Lc{k zuK$BbOJB}E^Muthz^5!PG6M)nm_R{xdY2)^yNFtCd_$uRJ^#M zih7A{dU_>XZ0qeTaRa$r7N>~Nr!K6ywHRO4Tl?VzrkO%LdQHo}HSE-egMO^g^oCc|)#ZHomOQV*7`Exx2$t z7#qsicl{;!e!PG^y}ID@8YO-zse+Az8IAS+=jgoSseb=AZjX?V8JP*$C34RFxsU7AKD?rDzkIQ6ra7rcx#SP~Rp+!rcWlv9E`$ z*Qq1NY8$!4&&2%DPCA-%pGBVZ$KR3MtL=Z5ba}2vXM!rE?Y)t^U>K!L3qjl!2Smy! zvZ?w?P%h~ZMq2zM!#SGBUTJ_&?kQ+h-%j)GLa};PCvB=Q!;GgsxG{Acx{4=Z?o$JN zAMnDkvYGg|G9Eu)meAPx`EVSQ%r@TBfl9$&`Y4)AnFBIlDl6I8N(FxLnhNExA+%xh zVVbm&=g)s!B=-eRD9z&}Ez#rmVwLOkv`mGzY?(x|UI*Cqv>u8{4n@=KOH6pc1UVxc z>4|a#gc6rY?v4%8Lhq5m)j?>8a>IgK^U$L^h~CYX#;kN{`uzI0@N5=vocnyIBx_(} z$Yz$^u#ioa=XYZ98`Kz+BT(XJ&YAZ;RQfg-b3>x=(pChoSLopf|C?O@T{I_1lBVpF z!vvQSR#VeXLoOYn*ho(_dflMd>Nrdo>P+4avvA;*Is{HX*oUIx_0l_`0nWl-zNg~&9m`poh*KToPdm0uB%;egcbKCjjFmr zcP%a1fy_2KXkAZs=L3*g>qNhG2tKWvtnpnGJpP$so#!*!|9K@9)pMWBCsjNc^q4Bg za=)IzOdN{XMlT}x-8=OesVZ8r0ltGAXMdUO-b4ydKlnoLDz320b$XarErk{}5%@Qz z;!N}mMBe1Sf1ZI~H+C`UUzHRpihpOj{vIT$IUaQDqY|>d%5dNN9a{L=3py48sB2my z@U#euzS*!j#w~PX^8iis>Y(<0n*^IBN20%aDVcv7%L4el_1}>sRGNPgCK=5T9?ew4 z2vIrgJhn)9LA9R!(3uR!%1)}h_K)p5s!O9+Xyd)x5xP_OSg8Hj0E?DMu({2z*oe&r zH2b15)qHnGaO8Ei$WDVCU$m3vY(*Mv57b}!O}^HA_o=JRCU#H7-bFeT_ahmt-G}Mq ze_|M_^`Efmh$C9xPNmoqu1zMIV&&M4^pIyhwKiE&w7WO=alfQTwd<(w;~X4`@J6q? z8r)L6AujoYbt#*}_Gd9|6S0P=75_coa_67n5KL$xjJn%Hzk}A(t5joV$+hDgab-GU z^^sD}nBm!|7&r|KgTuFQO1}7&jNhBVUvwhvP8Fbkl?xW$ltf%}7)Be!k=apMeC>>Z zo68vZulK>!b3e*N>~UzMfkI6WKi> zJs;UR7c+>5Xv4ioAJ^AULVfEl`aMua?MHm5U-<+5ZFodm*$MV6Wj@c~e`hYe3fzAN z3NAZLGx-kbLX0vJ_?-P;)&DZEFUWgr6d2dw4f5+~n)O+#c8SMF{%+s-auL1nlfai7 zdGszlllC(S+QfIgSzp~TpYIofxkqBD)FgNoEEhhWd5pw!_RwKnIgI3fo>#piSljgw zbnhFCkaRVa_RYoNY2xH~XdRv3lteXhpXo{}-_Hg+;t-~=gBHz1dy?_v*(bW>>(Af! z9n8dkGyQTFLRm={@7iC}H#Q2E;jYlX5evu6SERhe2seCgkWpX?%(Z`zvh`!KUYv&J zd=Y`pFFrqSo(yKxNu?3z$Z&xgj@#5x>G>m6Vv$dI?nU&PGXeBYX5d_W4O5#SgkiJ^ z%vS2-+6pN)Qfw{l5CLMF|5EPR8^TL>rEpDl3XESyVyb)`|DH)9Qmu!w?Xt<`;&i0n z@B*n!$MEoY3SL~zyzbk=o$DC44<#ZdNE%`@j8MP2gDwBcJ?_V3p`1MfX0LwIm35a!(+WOU&hmrTJax`Jk%ncj1@n-+O0Nb+VW%wLkA+KN`WIQ`@tH*a zLpROJEMi;JRH;yV9gXK6{Pla5(0XxgY+g~s>;`;j#G>K&-Cxb_Ti7G>a|h)Zt*5Sw z5zq)Sht`~>Ol8w3bQwABFeQIg!?3*)>7;0x?^zj6X)WzZl`Hxr>J$pSD{wB0>)q9XJWb#YFa$ES@e#0bVu0&Pbb$<@Rkl*ZyAQ|U90HaNgX6D3q|sNAN-j!mzKEr zvxtgyq;YTzm59C(dOqDn9f6YYSzwHX3wS=;%AW>ZQ^L?);}Q1G1|iX5*sQsdocNt# z{?I>^b@&i@T;f@Yxw7Om+=pibRoRm3w`oe&FpPI=qV$%Li0vBA1plU^bkIJwFtCv3 zjM+;4>zst!*H!Cai@gwjIF2RB@yuk134V9-f7{R$qhGn<%)kyBQn{3>)XnhPYzU0!h$3!@ z9qCym)7{JRxbyN6*~Mq#=5p>8mTjZiQ|Cag=n4}XxrX*kJxj)UQ&Bj20`kOnlV4;6 z%5)a7(vp6P-Z2tAjr(ZB(RFOuv8B{=<|j2gKR{m|KOx=nYivtPf^Z!7HYxnx$F#b( z(5ru@NVf^ax`l`6N0%{du6!Z6Z+`6i&_~p{v{z{HG!xmwU2y5*NxB!2MyG$?Bj1<% z>E^Sm^xT?%S9Izq>>k7RLOlxHCxg^~Jw5;>fkBwwHk!8Z%y1AhLDkYm z$`6jl@1d%&2+u|5%JGHWCH7qZr ze`_OPb-a<QaFF)y zQb$KTjZ6gb2W9aHbZ#uj}7Y>PS?C^>%;q$z5GLd#b z&3qfo{^W^3W(yAy9k36-Xv?Bt3SX;)#^2nRm-3h8og9K}>uTnxAddrA3@GyIHzvBj zll3|zV7#^_9t>SXHG!L$m5VF{?n5cj)g5YL|ES>CIGo&FL&>$H@y6K-zsnU7yCf8U zwN)WEpn@N#_mJ(pS#XY)Kz%_qDIXn#u**X!@7hY5DY=JczY@oQye&q{7ZORy(I>u- z3$B@pWd;qjWcxQVRM|{bioUSY{mEY0Sdj_$8=Wn-gqgQIY}Zc0nbCPzJJ*FOwtM2a z)oD_)<+F{c9oBEkgN059v-6Y_+@A$Z-=ze-Hfu<9jz{~6emcA60)^STBBtm+zDw7I z^Mx2h+8B`0MGI-W|JRWtYU};hI*$=Z^D}Ih*OZ5I=4-3a?B_ zfy>bv=3(`N)^D?+$yX{UBg_bn?MfsgwV67eTR?eCD2%Js5%^jXXR}|j^Mln$#w!EQ zB+UhvCAsHypA*kGgiz0+)=sEI~b1~{^qQ*P=)j1V1rrL<%UWPNz z?BN&S$NtJ>L$PKI)Rzv$P`Pm|T$O9E2IHIPe<3O_SqAoKMjsW#e^_JJna z7;}T3X$lbF7=qqo1wH}!DW;Knm@xzxvKEmhY zlxgwHWH>+jOx8+%Ow3IiRax(8Zb}(5GC4=mlXS4;tR9BSN8>-!e!8`&f#nyxV-)|C z>TfdIeq13p zHIe67I@KnD?f!eHOL&XEDKtCISz?L3`%_q}yAZR!1(ANa2@SrciPtw5V6o;iI=3bq ztzJ1y)j3IaEiGE3 zhg%19VP)qpbQT&QCD9D0mWg2Zn{=cPUq+_tQ(+iyOMkhB-~Z5`ybeWSk9(xUW!Z9^|~;ap?Fgs!Lu;d$XRA-G2|M`+W*$sd?gqkb96?#$e6b0|K9> zL?k{rLB6V=gdG-!@U0g@>*gp}7*|td#x!{3U!X~~vS7cGFeSth^Ilc4^FM+6_@`NzA!d)i%9_|Jv_tM8TS0-iDy>no zfd$v(Qm0MDzPGCQTrwEu+iK~ttUs)VPlb(rCzbKs+NKO2mVe6=^S#ZX`r;)G87+!a z(XkkRIugfc*wdNNDHxwChVY;!R-3(#>(^FLE04jvw{1+Itc{i(7Ep;_N25#my?swT zYfZ@@sq-R^simA*^=bvrNbO^@7tg@cS(E66KnctKuBI#BHPD|o5>q*EF(F|aZ7FbK zCYfP4XgD85FQSlPb(Ed?HxaX+{-X2zw-&L3?~#AX;N2s0&>bB#99O~i@yeVPHXSM* zgpQsna%&TDBWEN6?(U^g7e~{FQZ2m85W=%R04_?KXuwMf4vs~^*cx_^ez^6}->vp||B^G?lqyKfGLUZ6Nnr62o~4(Q zr2RV=^1WyeCAYicL+W`N(#3rPqVphGW{va4kA;`krcnLWWz?0Ofw^L?sJLta`Qidr zbK4sQGLH0qiUxg44oA`8V!`X}icXS2)6#&}Y~d4G+XXjh-a zIiYE|xDJTEW<`=Q+^>{79cjrsC^g~_iwpLF&DSjStr4Sz*NySkOkXHILy4Ui^?+K9 z9~QNpqak4(^k|Jc@;8M+W%@c&zcUek&UusEpbk1L>wtwDtRS&f1oaC?VRN4kySc59 zj%H3L{iP)=^F$E!m`%gR*|8|elEERdU*vDpMZcG3Ah#(EVyCB*?3(}Bo62xjqI;1n zxF&gFZw|dEOu}W~$uQVLaIN}D(O;r)?`Jx)C>lnOmXjz=hktY_Da`F>gSd97sN#!b zdlo`*{11{|v55YDT+Z&Tt*7aaRWLB-A3Zp0Om>26^sz4y8%;ivioQ7F_I{zb-#1Ao zXg&))ok$l41}J8aDi%HHrICJ@Nt}CfOj~U*m}kaI?cNCgEg-nWE?~}mo5}W0B2MSH zK`q-962FexM?sU&0Ye2KdqbmU8n~2|d!%(3kE>9Y-wa znYR=EEImi51=`q~cSF$G-b&}vYK2kTCX+~vI~^&Qk2g|D&& zea-n+iC9#kO=Zh+aO&M`mLHnVj$aQzYUW7HAJJ%2MpP%vf_nXmPw zUH31Nn%psp-eyQ&ey1Wv5RFEj5C0eNo`i;;xWA~J#`sOc9r>A%dLWDWb>HYGpOgF= z=1{y|1)HIDn{>F})ng^!vAKkx$+(kzm;7Tl`HslFQlH)3*-GQa`_KWsP>kdZ>67B$ z=%)28GD!->!P|;(viL^kMH+~^kU}w8lF)T1rSKsySjj$5SX?frIrj@_Mu4j0_G81? ze_s}nZTS(B{$mTb!xc36JisR&yaab}r9wn80$Ji!DufxP(5wn9%NH0XEjUoG+ zwnFUwY|gSbn8RV-6q*#OjsmZBG;GC1VOX9ON-ppjiF2INcRX@l0OfR z><+SlMrX`e??aEHdRU;gBCh)#AlKGty7lBGSvRfIhy`0TJ*mePr{fYHM% z4UBR{mv@pY4OKZ=-1I(8pw+?uWABld#1&fbPU!=6N?g3SCjo zcD+zQ&gO$;xL6!6i`9^1H4J~Brs0iy8qb%+^0_;JrFQ%h)>b`d537yfUnPxw;>Mhn zrcS5wrID~W1BE&QDmt-@B71pW%U%Oj<5NJF=g{a^UpT99CgcL_P|KvT`zUAIY6!4_ zb1y#n{Gxq28z@ybklf9ZptgAyYuE}WN8FJ9YzkadpVBwU`M5fCI&8UD zar?j(((vQFuS-1JtzJg!R!1YNa)qEKP#JP&l32L7gvH*NhS|am^!-dF`MQ6jLk9k6 z_13_mh#@Fgb%~zv%&Nt`Ue1|ZLg`OVl33O&I?)q?uXeN0oe%`)%~IHFGL~~%j#KNf zkJNo54JWUZk%^%V`Ca%z7&4MGNJPnZ$RGALXBYST&qU)nbCfwplWDFNvL#LN{;ee1 zdA??Q$#^Khr}AJvrZW|!~op#8`D|LJ zCWh$HIB49^6&`$|ga@%Lv`bPKInp6eecwUCcj0v4aU~gwj!*-&RL;Xh4X7`S{=vg`yuXKB9_0~E4*i_$?uOAc=T-|iEo*VoUwXnm>Wm8 zcg({px#`q>(E_LTe+%L#SV8#GEm^@ ztF}^*KKzY5GgBEEYSHj6?jviKf~A86pN%+oJ0k*@icD}RJ_!426=~^BD^k))Li4UN z>KYSH5jhFC6*?a;CK$s1$!$__wC1y6t}w%DC>d2(&@uU7Osd;OL*-J~w)a&OBsY(S z?TcmiagP>vmD1-{0rJxqvlNy8Xm;Rf(%3ozcYLDpAxW7;fAAcJnl{fz^avjXOu(mN zo};Sv!pM+E6ccWSpu$PiIeP-V9D9le|B-2vpycs17`cTbvLx<@%ndTas|7cO zv2S<|z95{g)@0$rzKIC=!#PKBx5&Hg50zYZq_304U`I>{u1(q`xR4}6at0geaQ6bZ z53i&A$(D5R$WP{eJq{+xzF4?=IPy#fVcj=3>~B9n%kCSZb3fO)r>j7@+MLg>3$gT= zFXoQ!qwovE5wh7CCu=`Y`B;XX&s`xQ{*gSnpT;AvCxRCe|kZC&MtXQn>56Xl7+m!fd2!Iy2A zy#S_Dnn`PqDhP(|6nNQ{mGqA#njdPEZae0d+!rK(# zHEJxX-O+#%W znA1ybsx>hA|M$cDhoO+$)x^ex1)+fRnsU{qQB$!HlGO}7R&DHJQa&ACYlzd$|B(jw zKMZx0g=tI}cF%ajo-}a&M@JVu_`w;avo=!kf2*iF%$dwaUMIn&xioa5GdVkCVxdY0 zXNg;2%7*JC`dkS~+XhI#NgI_Cl3sj1@*jQ8*0o}x|U*dodremX;Jo)7jO zO5z;f^Q`c1JU;OE%h7~9lyRMV-uxBhGIu5QSz6BlKUME z7+1LBzc#K@r?=70ASpOp<=n!wS){c)ifsITQN}<&ee$Rjrv4dC!zN9omET^OG~r1h_* zJ;9tYT#`unJO|jt^9)xm86iTlf#f8)26$v1TC#65R>HeGJiKr{Y%J8SU*di#3pA|s z#l@{b@N@TpLGwY9pUbFij2u32J)ov{B3}L+%Z%%qXf4m2nfD)J&)clfv@4m`%n_q0 z2ltRd{9d7nhdyNH9HW-#Tnt21Geh-Q`1k%J6@@QsiCGw0lHM@ckP-0HT0j+FJ1F(6 zGMZD9P;;E;%JXj1Q_iBc=s8V~o`{gGuRI=@Dk5r&F7jR_QTcSv{61^SY}<|4hxEPl zHSG^wkF!CF1J3|nxKGKcPH>*UnIZ4>5hKmH3QC1!d_o4#ru)G-?*Wx;oQJa^W_U8O zh(=si#1Yv_+A%KyWzue}VJ2s`-Mqy#m=6Muxo}egq2{I{WLE{@=lNWW|ExnI(pn_> z!T=qmLzxfXGv^`xJ`Xf(MYWWVD^TwY}OE{qR#sus=F$~YnrPHMr8{90` zC*8(KG%af<^+VrioV-67Zqk97`9gSdZh(f!NHm`>q=Bc0DP75fdMd4<;{i@U9_{BBHcu zalvKUEu(<_+Ge;=QBJ!)B~Yo&aY25Qfb_cWvBMwdaSk=lzB}z_aXJQw@*s2g_M3=wQ~>7ze6 z2YJtc4~F?Zpd{_}tSQtEg5pqNvBPoF9x*^qUo(90C?a{Ar%Zf8AOt;n!WGLS5H+ls zRbCXKxAtZv=v1denUj#c+ZPh6Ea+hBTc%#1i~(KF9OEp7)~Bz9(}r_y+taZK+-r~X zRzWo5^Li%ZlZVFry(GtZMOm4*7`cdIfxIaCcK5N5lIQ8m*cf#2%<>%{0ao#6Sk<svwXBEJM$xLzObHbM{lKb zz1di;XUA@jd?GA~O+|6HA$^sxX0va9pe>xgzU=&Nk~zY^M@y!oXVZFm^W`~dW+&rL zPCt9TG>2V)6S>I7Q`K2}TG}qk^2+UTrC|hJGkH(u1wWY02+rYLR7-O%CE(EdG3faf zkA}oQ^fumt=3IG1etkS|y?zkf=kku7!|Kq9T}q{`oM)qHOBZ{-(GV7mw5xWgA1sSS zsyrKR{F2YEwe;_j9yXm2BKB`8nmD)ZYflEw2X`?8pB$dQ@aFS-F{>~#!LbB$ByuKp z-3(VO9dwtL6lr3#q&60ObwT5QLs8Ijiw4cL#Hh9mn(^x#g_Le$nZ17a9lw!v^lc}1 z?sLkrQ^bd15!7svi=25gpm|^oYpP2knU@<+6=baBo zfuY=Ic5k;V#jVI;(2OqhdGgrlW;G@PDiLeLP8@B62blZ_M1FT5woNgLVN zWs|VF-3QC-9q>(uv&H*z(09q6Mixzi;DZV7{~m`U$GPTXJ{i4ptLZv_*3Sk-;!^Dx zY-~-1;M6Djv285pS}Ygj7bxM3%QzTl-K2J_aMVrxMVpRopjk)c@wzS^zs_4C&S4Jk zuIM10O(vN6Tn}Zfb7|3T;xwo=EJUD!0*|p|&^De}LpC~I+~i$bl6X7841aY8Xi)t) zOlD7oenJbpQ#;Ik%QJW{jxveJ^a)!^vRKziNf;;c|KG#$5Tr)4znN)tadi;JeRX92 ziaap1qn!=r{;0nfI5%4~l7j2*Q(@i*QrUBtPH2Qu_m+5?{m2@%Hp6Ib7{_eC<5ihUs!>j3E5D${^wEE4~=)Bcm+siVdKyUIA}r7{3phJ(r_B`LFW z1=sWPkdjry&elp}Vn5f7M+D=pW(J&Z6khLPv^R-7}dJU zBjSJ>g$u&j)jj%b|Be=VccY1x$(X^g_zqP&Ced-nTP&7m7yqpbrx%)4ba&T!;cJOJ z(mi5~Q&#u;%buUM*z3Yj^a;Cc@_fAbmquOoSmODVU#<4hE(n8uB zM&U}PZQr|XJD4Q1@@GWg|_#6VAE=LOJ_WFy*xnkZDu2A zP$CUFHiUECzOeSqtH~*R9m$7tmfx%Atb*?iXL9aW`Aq@dp1eZLznShdiBNZ4Gc&$0 z2r}x15ItSN0`Cl_v#%xCJRf74{xO<9^6#7T`sM7!Zz}|BuA|H-W$MaWfZOV#2-vrk zVx~m1o86qHd{-MC#}`oDB_+(yE}&Wvu4l1^0>c zMO>tz3&LoIhusP( zOjf|oJE=mfJOpD$yW;Djg%qQqhRd3Lbc*lD0{YI=>9^c}##z{lwvEEDagL;YD1e$@ z){^P_Z=|Ke_o8CFUu|9thPmpa%l0Y_xK6`6E$%t_r;b&Q5_tcnlWgwnBtmAXFEd;?(#vq_trU ze{Yx4<^G3sg!d1;8?eKd6Gtm2F42G2v758chA>N61M-b;RCU(oRTq1e|Fgkhs)X~6?u zWLy=)hqPkq{@%tI@7H>8!yOy1L_wxvK3qKencK)(`W5NUhF2QEpYN@*K3n0n#2t!Q z?F?xH&X7|obez{02o;4A;2$9$;X$rtP9Ou&c}zL0z6gn+=CEP#8~)Oh~2 zq9>A+y_8_3$}`@V?XZHg$qp4wLCcg}j6356`>#W2z0d_gdP*oZAA-!|C&+r65v?3! zLz!JkZ00B*#LppY3<$#|=P}TDIEw1xg@~#fjIQ<1ndXIfIQ@%5*%dw5x9}O~z#O{! z`VQ;odqVx3c{nvFPWWurck(oCVwIi^oYOxPs--RDqOp$aT??^9^nZFa?~5|NPqUVA zK0v7*TI^0yV1WS>_0z@Pvf22{{Yfh`5@?IZU^v#?p^Q#B-sdq6|7?HL`gIAIWog4b z#pmgLl{O4VzNh^EJh63HuV7!NDh8!j3XgI=aY>gb>aG<~%7xeL zRK>z4hR`zZk#EwNfQJ?P*|?uE(5FZ`^3Wd3OPyh`KL)DHgGkwA93nYidE@=tbX89b zGXtdP+OdoDo@>ole>l*n>HDens1MKU=F#J8CL~aEAcjSblIg41( zE(;ps$@`U#9weLnqp{cZim*;!9cKdNAP62xHKV?I4^Jk4CFy5b?Bo3$*hwg(Q0ybk z);S=I3u&RC;{uXXaDZjIh)_C126q%ka|SHe8-CBhn=~6%qf^g1|BB<_k_E^(#(myf zb#S528RlzK(ClJI_JIiqnXU&Xp${Yix6xiH5ybrtrpb4v!ZOF7MnuTt(yyl!IeZe6 zkgO-y2NR*oJIg`_?;jRD}T+C;2fu^*jJD)D!;6AWrS=h8U0H>~d(@D;!Pf6vy1Q+_~_nMhFv7Tq} z7s-=RPSk12Jvt0JyJzqoQ{w)Q=WKfM7n&0* z%UP2FC@A>Cve&dYj@~bW6CqlZH&q!Lx1`vA6J8-iZ?R;`R*4}ruf$!Jo1Nh8bk z__>|QCQtiD_shdkxKACE6e_9m_62s>ZGeop-?$}s8?)||hP-<-jZ1ch%^fXzvo=qNt7gi{8zGA?F4QM_8fmSt;!@I>?G{i8GNiZ^?Dy zM^e6gi?sE>3r+OBD5FM>HkSDbSLY3f)u9@e@=cwd_0=$)Di^4Y;Q1rZZ+w2x!H0vx zAw6gV??L6h_{KKU$!KM#d^4cH^L%G{{<5W5i;j3t!h~s!^nM@(hn`zu^*J>fA|c6! z9~7a6*<(?7(OjtZqL(^1E8x~=U#K2wr;59!f;5>(@~n1d=X4jKIMonoNBbOW9_nz> zIF57L-9cXWC@n%171JV+XA*-CUzVv5d?B|{KQTf;R>@ZYRC>Ci=sK$q+d&S zHvAP1w76jsXEv?j-9-x7b@XxBO9~pYlFS}@;C6BseRnlrF0JW^PyR>#kA6|#jI$)a z!vO!b-ltb>z{U7Ts9yU+#}!7R$Zs3PY4KTep8;xyh~qTxmV0+{93+k(B=wuO>CV3? z7#nVhX}(9<>53sR7eB`i3P<3%Vhxq*@h;&@?s)Sl4^8GfsKtFW4dK4BssK$ycpRsL zBWEIi`2i+d>w>T=eBQ7$#Nh>MkiIUBc78ugD3!yok;%B`r~rGeS^i1#LC3F9&OMLC zw?tnGh(1jbjI(QNHORI156xWBzyx-@yP!%9kM7ryMfWr694dx+BTS)lWPob=Ptn#? zS4ytyq8!eimgM_y`Tg0#ZIa5E5;z<+Zx=#P5(UpZ33!zkQvY*fAzPnGE5C#yU}P3N z=X1v8RxOy?4&yvrW3(>%;Aow6m4w@l(32_I_?kzKYKw)qxwwwh_Ag@(AC%L*4`Osf zN|ROp;LHO18lk%61mR|_X8Lqak{T1+sd?rVs>yuBns|4eO^`8m%Z@-yDDN%$(IzMu z^G0aeEy?GxZhEqXcZv?aNXH!RQ1j<(F+*cacN7Ry|s}QHF^>Fz@ z(KvCJ)xwoOx%YOJ35oMrDeh((^5@LMH||x)+7OLyp0%BHcQ>0bHw=x$qRwM`>m<{dxaCUh63i|lGR_L)k1Gh^9 z*~&BLDD8_WoL(HF;K1)(O3Wn9A7goUa1}ZH^GB@(gT1&K+!t0cznBGh>DExJ=7ru4p{OnxLf#scKb!o1+v7nv|?`a_U4fn{lso+*^FQp6`MOPB$@gCq9 zX!Qx9v1b7mU7XIYsve+Mg`DvQPK3|l@@hk;QJL^OD zhmFUxq*#nTlntBHEkc*gd&#LP8UH=^VQ<{{UT>`o*5@$nTbV!?Z|@*gJ9plp^P1|l zMR9d>98CRO(X3~Wg*%mTOmKu2EnClKEm=mI)7+_ZdIFuapGkYtTDjltKZ@OWg6{Hc zb=*#0da`*W%`Dl)4&F#cxtKedEKOAMrY_)*K#trc!$mn z-bqh484^=XM`}$A4RSYx1NTW3uTzGyyco@Y>47LeH;9??+?whj99`W+Aw{v&;NyZx zg@n1qBXGgvJq_;bq67DN|G7dw*-V~-Zv$aaO;{k*b>OUnk4I?A)Fgy<&!Zogj#H99 zFtchKljj-k%8TZ>d}J3X%pVIC<9KM)dBcCB1Zww5Q)pTYf-3${;M0e+Zk#*>C#Dkg zPmsE&5G@#jG9wqx5Ol%j5948ZScP_S_W6kB@1z=-%hYZML*j2FWrzm}Czcx_QfN(v zl?&M(xm4U9q(Qy9nx1u^vva?;`aKeD@{IJ;Ak3p2hz5V6$+Uxf(4WG8|p! zj06YdoH2R4Dw@ZeWBdbM{0h~?wyTfWf6vos>k58PvpY^lGAH8fb92aN?W3*Pb9fh< z5mG8b(YYxe5s{vhe6W_bUe01E;p$`^!}rBeoS`oMlA2cAqtl3UI&GiO7t1s}HCIB) zY)f=LBV6M?X2rr*+IQ_U1)iLS`caqZ+5RXbY#+&X&sj`vS7I@=W)}CYasP5eIJu}f zK}7iy&D|D2v1ew|pliFRl!6g_>^&_r6r(?!zcoIyn8vp3V!|5%s2L}~fanYI+ddir zNhj&sCa$;gozk>xZi zWb+4O+t_ZpaXiGEoHBl~m`ee6=eU+%O2=2I{9 zek+0vJ@;v%;uiLCn?LM>9#H$^Ya}0Qj>(E|sBZB!GVfQ!+i&F*(mfu3hC3s~(+OHZ zo{-R&!}lJ4oXT896{?9SYrIbm71A&ln$e`yitOk6E9_L|U_phuE1c&!LvO}YnpHOp zcEy?$%X1ah|Au2q!g;!37lz7@c9?0>K#CtPQU4Uqs_3)jnVC+?Ou0(0(-*Lo+P&2O zRfb}Ny>Xp$FOO{$lBdrI>fFe4V5lS5+qifhd)YXFHb5H%@6$LN@H@?s zmPJa-Yf|))#m;xD=+avoyyE+n#$ZXlFPw%yrd)?Q-p@NvLm;zN6=wY1czK>TcF*T} z?Z*l1_c&K<)LejtDV}J#P)j;j?a{hz3#mq#z-gfbDps1p<8?i0KG&h%O^x(xRxeG- zx4<2~!;SD50nIt7H29GV&)hpe%J>Ttl&hmK@I1@cn2$$iPSS-x#ljDtL||C>n^_++ zhP|NxEx&lTa&9z6rR^mT^NTciUKT_~J*QoEb(Gqk46Az}#mir*YSk|aRwFF$eolJ* z)8MmZ6y5~R!l98XX!mbl)Ef6N&q>}0aGQcei-$C9%xJvsp9jAPMhj^;mbp2z%;_h| zwQvaSPLxGhvKG$q4)$=)qt*B^19RP!An`N`H5be1Q>8b(KPH9Xznru5XC@4OUJ)cq zh9RJA828+#A?r3_+KMYQdI{eNPr6DMKl10~v|o5xYB1)%6vfw4XBsrNg#=>Tsc+vX z$lV_g>ugu#y}L`B`gl%i-Bz01E`zLPI=HuR5{k$3&#SX_*FUoFUlMVP_p~?I zcCeqOlhJm<0_`*w?i+s7kNa9EvuPopiAt!l^5pw9FS_Iy3Hy_~>EtkVs!KOOIi&E) zWeeToyn>rA#^MOqqGDfhKJP&>9DBWi-Y-2&dGGtF*Gj!7Ja5?UXx)H-cM4}+i2VlAi;DsP0CnDh1Y_qqN1KDj`4OxWX~t8aofF(cL*lyn{Vb zuukzVJ(K%HyN^!7Q|}pg(84+DnQoxmS=gZVi*oGO)3BviY3tk;YJ9$*k{0cv4P4JO zl+8uYRwEqt@x`~@4tTlO5+tQY_eJC>{&p0OS0)HWB`uL4-T-bh?1EtnT3RG3eSC=5t12+mTZL($sR3fOG|0*p-+2Ar9Gsr zw6(OfCt7~j_xE3a^?KFwJn#2?U)OmaM_-&us3X^8S*%IPMEtw8bj8_`?83Plk=jOC zz5mf}{VZr3&Y_<#nK_-P3h6C&aBTlfW^>Nb%$XW=<4PeO^m9Y=zc+Lw>JQm#m%3)m z`zjfEA_(dFLi||hjc)9ov3}DZ$Kn+sb!Q*h|H(y9^CV2T|CRhVIFi0IbFDWgNYVm% zC$3gYaVOeo^ZBl*SMY~vo&juLED%T4PgA$mZz-gC0A!E&!ozxpyQU}S@Tx4_JI`UrVA7B8py(Z&g~NJ<%jzQgn}?vk&hZ{swY zU~h|F75aEll7Le@D=K&vfX9jw^3JZKO+T{Ht)`8hNmo;jcQ*EEI6~FW0h3J{Y4(hh zBJu+J({}wQJ{4M`Eh0o**_kX^eY>|LZg2*su76MK4D}FuxCeKSJ1F3WEEe%@J8ya` zJz(yq70*f+CKG)r&%&09c!Uf~g+ue+;b@tb+VD9sxet!7ijpJW`K5lgo0J?Z=FrLb)NLz5Tkl6!3g z7Bg>fqIEuwPv}7z{rLI++Z|^IU7%gt7E975NKh|bFIu&O(JMIsD_)PK%icLy_uCH> zF6iOBnFKd4e4^#%b>fk7AH3g!n7PUc<)L^UC|v%;Imxq{UNxlI1nm3ZqcM;pC~6KoJPbfq^j*Uc(ZOR6{ff% z^1c!G-Vc+>W-I#d@Fq&=tfk)}W^i&X5=V|k;y(>z9KSJ2G}cX}In2DD_DvH#s?`vl zS4(wMJ#k&ONKCuN{ip0W1cVd)JT(bJ3*GU!CLRmda`#AUp4f7;kPbGEg4Itiab%%0 zwokM{;RtrE_0>R4d?}?n>%iRH4pNiOlk_qjn*AmNM#GA5$-Z2?_!cJ~?>$N?%&;(; zcZOO6ld14+9vu3mGlP329zeW=zq-oOp{R^q7@CljS8;r+>Dma}mkp2wvzzdH) zh@HAdQaf^%XxesMEGsS{*WC-KIlVtVGryq9JqlSh!;sfJ6id%&!!7oK@atiR=k--o z&JO3Ox?^;F1Lq8W=wVK049qp1=wID(YKbeOkiouqdAk>#%6~@MoEd(?3!VRdJtfs= z#pJHHMTGKmWaz(QiY~In=zCMhlO0^{oXfk(KEt4k<8h?76~gC_rpddr#qf$j@D8q_ zV`gpQ%*_$dE#eNtSH7Ry^A4$OGGSV=`j=2|Lqa6zq>mXe=CMj=n$l`Z);`Z z7YclSnu286A2w~QczoSMsC?W;-3KMmp8b~4+t;7w9+`j-$8(@z_Km!wLPSHY4OutL zCfz~NSi!DjMCG73Zx$_8a3aGoU2!&eFFn26K$q9OChN((!)L~#6UV#$Q~yEEZG$n% z&>HohCgDo09oCa7%D))Xva2aj?pK0!ySP7^aZ;q&w+P3kT6Qctpv&Ij*wELNd(g&6 zNa#b?mcJB3`h20N)UgQV?&6j_8)$GYf8OTV^mI)cdT+i(`DtCy=j{@~;XYB&!xLXC z(~$eGH{y~Kan8gCzCXIq_8GIqIqM9}FEFE+9wt~gF@t{o>Vo5|*=_%i^EN8nb3RxC z-`OK*%;G0xJ@XX3O;Hf_(=$n}MG=uD>DOw7SNbFN76C(#mS58@Tz$vGN(wPr8XWeM)&E%v^W}e)*cl}NwhnC0; zfVT0haqHiW^RNPbTP6_XS(A{^Q2y9M( z?2J?#jD0E0V-(Q0Y9#GXai$xUkr>c+oSqH1FS-;*(bBGGX-+Wv*smHvoB03^X&Xp^ zGmrkC7SZg>ABBcYHsTMQ6G^IH$@aY(>e&g?959c}4P+sce}R5fTo9YC{1jvMTqB$B ziSA1lUXi@B8ZF|#494O;aZoBAk1}mJNlh-_OSdkj4$h@{72g)4s%MMvW+m>0tf6u* zOFGb|Nt<4TW90D~Nz~%Ml-{vaY|YZ5F76*m>G5!y$e*>E!Wr7x=!;9-o834vANf}g z)1b5#Qc|^oZm)YZq9KbmUU}d?fcYzb-6PTcy*AcGuW(;=Xehc}Dv^AU$>JyRU5A6Du|uCGeZETv zzpfPv_A|Rw)sMF8=px8pPqN-eld_*~rK-gT#JNia_`EEY+z_qX0cxB;AFXp|WH*G`kcwrmmEH1{XJ?^+0G@RBS3C01tI1qF46uBGQ&P>_X zcizzA-0j`+EGpZ~eVZz8@{FpWnpwx`z!M{^aNR>8!!}dc|K>bHU(vKP)e`&e8);R} zXKL${K`&f+zI|K`|FwqW0=u)X$Il?88(pYgdZ$~1&J}X%;9ZcH8MU%IeT1qa@?>=( zr=x^BF6Qq01HIvzp9uGf)97xJJoT^j;+d8kIGBW1uy?}QS;!Q0$4MzaJRK$lhfzG& zRZ+v&ftHdi_M{xW7eP}O+>ogB>y1U@RT0+68Tmye=$3hjV(ey9=%DK&{jNNo4X~ik zR$9~{+%V|lY++czXSIzBMed7wI`^bgtWYmRd}{_ZRMnEx_>uI-T@jahve(k6jWYfS z{5WukhA&%0NgwO^?!sJ?E2l}1GZCqq4H3SsKOP$Lo`h#pQ_H?mvAq}MN|JDW`CnSg z+3J|-?x?Mt0+sO=IJbHfpJlF5bi)9$o!|t6uldxS&#?DgH;6g^eWRgiPl&kt62ne_ z`^H&N`xh-9Y%D@^rzLh+O{3R}r)lpr&hku8hU10~;dfe{Mt5})-!wlC zF0Ki9*!K}Fe>N1sF1eWJKAU`7n8E!mmtJTtrU4xf=xXe9+BDt~O4FOf`K$>1h*zXf zr8gzj>DOpfvJaNW@2A3Dqp4z@;^3Ywn zlXTdrbGqj{dRZ|5`kSk%Qe9oRN2@?uZV_1)0Ugh6sbSTCU}ljWFo3i(Hy zsKECl-CXHK*9%5q=>;WBwzPl?zZXMJtd;C}w34bv?vU)W{vnC6FT^5+Gor`aR}^}f z{eE}u()*fXl5KC~=W!_1pAHb(9=|Bf+=n_IWs9DAoEh{@m5iHmo7A@|B3<5|8axxR zjBZj&o*Q{(Gs|y(AAIS&KAC{&To>lpOy?@aq7BXDNMciMQcl=-(> z=(xL(PG0YVM?DRo%(S*%+d71)ZFpVY`-MgHmn$L*Z*eE zMpvpo)q|M}trREcC+wbRU~&P^a{hdwUI&xu^cm*=cjbHY&}4-2zIV|*Uu1g?74b9O zp0idtA!ZWiT=^@8w=AcEc;4gxoPZr6>NNS20aPvq)4Ap)^tSm0DeybNe3>Je zWa(mDRxix4x=G9C1k%j*os@L(lHjov5{uF$MNfCo(hU>QLv9cm$aTf;MqTP^IvFKu zp~&p9o@SK{LZ?u}&GuNT=j^VmTM3oPnV|Q?ECe!_%Vp?zOgrvFvwL$NBlSPwemDb7 zRXr$E?w(hBTQt&L6`Q`^5jzL8 zh{ds~(6|~!ez9{Yl{pC=-W@dEO9f>;k5P2)by{=Zn!4rvqk{|XQP>X7X1tOm%MAt? zl$HbA^_PU}s)3lYm|1puJL&3aHApWyBK9ucMZ2yR(~vA%H0#EThNL#Sdr27w6VtHs zS_-x++;g8?rwN69S4fK)S@r?u=v6SEECr$I+wq~WtsJpL=6L+|t>kiyxNZ#Rpv+P^PV@(kNO zK1sAO+|Se z#~5V14a2Q5lhHV}mJ(Fspw-N~#};**HqaqWW=O7moWZ&05QH3GEqc$Wk>uWcM_+2W zQ}})$j^8c8=HEHOMmyM6TFHf9+Oc8|x2;$-yN zk%d0TQjrqZ16SEm^LRuye%9B~>|zs~?){9SO7_x6&NVu6r!%hiM{+qFDJBgxBFi)d z1g$HEhxM%ITdEBZ*y00~tcJvWY*bsz%Nr9xIv6e2pP?0pqpQqeCi6|+& zN>_tCu}39Ecu&=at0W66qzW-aT@ziZk|pE2M8IEL0(-m5k`)I%plCl38Mn?0xncbO z!0(y?S_ydfl=+UPs%TVD#;qUBUzso(f#IBU9hi)DmP1K6kHgu$8!7yCh~!SbJcg>D z7GYaD>3xjA5oY%_4B0{tnAa32oh-(!G{CiA`$@Jy2|pKjQR}6N6wT~YecJ$79U2Yq zPv0qvGk3ZxT4}sq3GeP2+^6KGAbN@eO!%&I?^2~m=^D%IX>FQ&GXjUs4F*@xVfWq^ ztH%b@-*^kGiEkDys$=oHe;|F+ct*3oj)(CEf8L|%ivojR^eeq9jP8uU;al9H?@}gy zzG|WtnSN;eREPsx*^i^bnaAl$u+I2E=MLPa%3w{HCOxFq@N+aYDIX4Ye<`ze2+psT zMs5l7o0&Trz9t5L!_~-XA!qaIhSHWrJb#Wz!}{s$VLCLD6t|brjl=!%PXHQ4I#AGA zME3@P-Y@Tq8+VeaY>zp;8rqfKnF=()1?_36aOmVc_A704q@-X&b3Cn0dqa)Lf%W7p z1h>iH!;zO{{WJrAr}Ttfb0N)2mqpWJbx6f2!~W298uUqvJ`Eg)K}xSg-3=9*aa)(( zPBalAOUJPDIUXBjev1>K@2MoXo(gTGsmV7IWsZ@|31Ii@B1_8oHH#A8dC?C25jd3c ziI%G9k$a+<e`Nl|ZXi2`Lc`G|9pf z4<4V9Okrnc@j@^ob|5L*T%@fsdLq)qLz1Leg4XXHB%fbL;m>@j@8%%5>~cbQM}wPw zx;NB9T14gjOvH}eNnd`xqQ@?q+!GbKt8{4%1x{AMVdqqwZ8xG}-N#{vsucR|V7_i? zD27~nPBV8O65FENB$ZdAkay=Ry?xyehY!SH@SjywJ1hZ*=RK38gqG9$>%rJMk$3m} z`T3i!qS6yXFqO|8&2PIRFl-uqTW%!Q=X#>BzY0Yd@N9C_TIMU=p#`7DqfzSt&&QLP z;}?YCTbIzHM;pm?>(b+>h&#+TMnaM#4?0bryclE>L)bYsO)sNJg7E)pNuQbi(wFrH4o`zOe z(Pqxbl?C`y@P>iV*N7x@E6$<))x_J!t<+>3f?ulfq%rP0)sz(A*LHWx-oUv_wdEwg z@UQ5U9*wilHDF<*3Ds4KaDFMFFBNLAv^*x(p0>fMbD`qSUJp95X*p@!SV*5=217ZF z8Fo39Vg`3aA9dQyFFLR`j96nsyz!O)B=i z@JW6ZHP!wj1Hhm>mJ$tN7m`w$j0w5E7m8Q0w5nDL3H_7FmWYp9F z==sJ+5_3`)7r&0f%gdbKzHNkBjmLD0GXc?+Cn%@ODazW~4MykHNtSzJF|Nkwb@(KC za<95AG73SQlXx_uj-GTJr#Wk8i?`$U(3YhIBy+hJHjW*LgEh-&_zguU7Z1ht;igy~ z%{r)IQM6%kZ%pYwpPmn$Nd7f*IsbQz^o+jHjI+s<%vtH{QxmZ1VRt(JYAkaYbA=?& znSJ-&VEEuGefX&)7V2dqOKT()WJBS>eJG=MJ~(`4$@lSuXN(VVXB z4aA7Ae?_Hk6pSKd@V!7R5N#aVOyJ#)Ai zw_z{yOCHc1z2#!nfmRAvV4rds{}$Iq;W)G54cE-2jPpH7lGO)u#|F{9KHAWk=u7U& zr6T_RON##38~@dx5~0kxy|w)bsqL9gr={%3^jkWG&rU$)Tp3~0RfjHZmBm7SMoiSY zMUlqYfD;0XOuc-MQHSdn&`?3yn znW3$yd!Ae-T45;9gHm>K581Li`v=z0#R1jgoX&3{+g}5j$Cim#KVQ=$i$pZ_<-Kax zeC}p0p<2!o_GHek!AtJyuaL*yrz3G-^A38rPhFByQiOm{*D2NMsR)=Tfn(ZMdS7Bq z7S&&c?NSG%`xHZQ2Q%kpa-ONMFT7^or5|a&V%K`+m)Cug=(CGu#HyR5Jya7?w;=0}qd9%aIH|sjE*dknamyomz^DV5G}tEs zIC)T>s8J6^^xX`fBDHv%xXWIM%s%2C~w$s+ov z1qRJ7qsLOCp4_)?5WQx8xw-mz`JsQBayai@w*mqFr`3wf-KC;qJG@rZ`(n z)-_{BUMYp&F+quK5~dfh-))M7LQk)z+|C138M2PToNW>7I2oQ&(ij@#hk<7^U~`07 zK?{Y5=7VvV1@{#PucG*dIW$b!3Dp+H?3RguZRl9I{ON&Ym1uhWC6hZElPK1CEnOe* zoXUgb*je~W#@;k-VShmdeX7pWAZ0&za=(vVN-&q7 z%g%sFH0Z%Ll5(0ZtTcc*d=D67I!}_*wJ$vNdf+AR*3M71#ra`P+?CYCOfMPQtzb?w zocWm)(MDElX48PytD^n5EIKwj;Ni6MV%usr?lqj2T=?L?ooRL+J!Vh*ms#TAu|@Pq zS%+eT6y}<`(i8O(gxzeS7j~QMy&?M#|E^$XjzBZTKsVa>uDu#jd9I z-S=sKygr=vN8ncVLRz_I8zpo0*=~0+&m|^Ou6iuZ=?sBiPyi(CJ@?(2A-VkaA)Vwr zSpjF~Z#(uwVGnDJ-Wdq#aXttS`bxjHHHm=SVR)ph2UFK>V!?x4Y zVR~K@pS7%ny-gOJ7kguMMjn>WH$|jP21-`(xwHFPYEtz;lTwE;ST7B~EfY{0*cC^{ zWTH6dEPb@;imc0O=>LKl+Lq3^#%HU-#j`}0qb`^zKtZucLwEk{^VsIgHH`}saHQ0 z7)1}!?N+| z*B5bfvm5=s?u?t|s+hU5Y|iMe7=c9b7|(rvu4RSq76l z!|+^QSyatvrV&W(;dU>4iY(~{L|o>KTCPf~oS3$3nz^^kJ9 z^I4t@B|pUdiPI@nBMctL9#hH+Z+bPbf`a=UAo&NwsLW6SqFxQF7xTMHnZ05M3n*-; z3GIj@%ao+5kLgqM@PTKf%hY6WW&8x}773Ui$Gyel%&wf- zAGa@6lD$)3%3H0*P8bd0xFZykYdoQp?Tm%o3w%gZ@Wvb_|wgSr9 zuDWY^MNoU_Yw9A{9nd}&b7L0Me;+r~7S6LRU202tE&OlXdzrqEFBJ=A0-!Xr1Qr4J zsE=h&tmI5#fAgU*@R!DjX%)2X+f>Rg8;3aCHDa2P4pyZ9B9Ak_X_rzEr1tfq>#9Y# z-D3mEWDkeqf0m>^!4rOM);KrEA2%+RVEY#v-0#kr)`t$*#q*!V$KO%I*kszm_f!?< z1CnFbp3vynPb!X{ct2W>61A-{Mq($5rF6lLDM`UB2kfcy1DQ2aSlD4YyC;?2RgT8j zuutrw@xa5~hR7JIMYXOrWal-DnI&V8^Kc6-sfa_xKofi(?hK<<2rO#g)bH0c?;*U#A zH!Jf@{WWu1ri&fZWZ_@>PPn}(LPZvH)_iMec6&G$c;6J_a5O$wTi{ynZQ@J&6S6(8 ziyym;cy=Sfu45KB&-};J@}USy*)BP|X9}GCAJN3s6=b%DpXWy=!Cx?kJ3Is@*2L4Z zWad!1g~6-M9O-upsIGV%#<0)y>YUy<)1wfP_Us?oGX|friuTv?xh>@=?R?t6zDGlP z%X{@lO&&~sy z>w+;4iqO)0o32i6q{+Dzbd}Fp>BeL6Xsi{E?b#q!YVEMA88&D4&7}%s5T! znTxBV)G__ZJ+U!;0xfDHnqcEWlak{g+d7QSbvr|kSJsK~bF{>$t(n-|e=s}9o5`=) znoj-B$5y{)dNE!R4LMaJ*tncF4x2@RV^zreZ9Hb@`p}UPeWn& zBmWu^HEa@NMI?gfaVOMs3xx*RA^EBYrt2BN&-|?D!j6;KOClsUR$LT?*=}fDJdesI z_n|(W`M4+(ihdhxka2J;JKU|v@cl6CwNK?UO(d!#rtv)Ku;`^B4S&vs{0u1I+#T=s zdUO$%R}V^d)|g;PvkVO=>Ve`iI-Yb-{ObAIc#0M2-0L%M7#R zO%e5A7)ld{ikcyVXv>j)7)9I@NV-j*UOtipP9K3S^On+@^R+a}{Vj!0RRoS^lV(IG zoqjnHOXmgA#V<-Y$?S*DO+V<*q45|{(Mx0*u{R}F;{KA)m08=9k;ikk7>y6KH|iSQ z4;09M+(7GZ$iVp3G%>Hr1w-rQan3ytwlYzm=Dl=oe;svp>&N%aR_gLw8Ip=z9NT$R zJQ=KuIobVjbYnCHDQH74&IdX+iz(h9AEV>tXvx;E6j14gz0uF8`cM}r_4-D!E60e4 zm7A&b+78iWvnMvp`c6eTH%PE!tZkqLDpxepJpJy}uH8lsD&Dm7LKA(<?ig{B=5%WpH4#5>c5iZBj?iJrH_Qty6g1d>T8DPX%Rlt>x6kfBU;sdPHdWOPFtULN?U*Le#Ho;?3QWSbB3ZUN$FUdGG-7 zVZ>-yEslWRH96Y5Xdnhwj1|2&hqf&w5I2tGz}u#o&L;gM^V&z$vP}lJjxirMa2!_G z7Dy`8tT3>_2n%@LJ>VtK#;zc<_J`ut9cNTC=cetwuVnCnO;q|bfNa`VN^E190mIpj zTiYZsX&gso0i9yTS|e&)FcMi|Gbz}}5N`_(QCR`=V&9L(lMZ)`d{j*zcPHS>o(;@{ z9fWKLKV%)KAuI2$*y;9;?mso+{ka=+zWCjj!=6d$@mOVB49OuyJk^>;X9`T=v5U`2 zKg=L)8!x1-nZ*^HMRKq6DV+HuUAtKE^DLF3=Jca8pS;EASBvO&{4NSTQcfB^1NmL4 zhB1p8MVZ7LQJuWwtLMAW=wGBZqz5~V+$p!eGV|Cg=IkFR`+C3_MKJ~fTgIzhrD9pJg!N1BI{aO-FYIX9Gw%gH7PezJff`?=7d z*LqmF<1KZ+YfMX3HL&lxB}T2Xhg8pLRNW|xwbyo0iCZdm#{Q)9s_OVIFOMrlC6J6w zz=;cmu(ZggUF|<9xal?hS?Y+0-ve>hp^3Eabj9nWkJR(uU_|!$O9z(p$K0AwoZi$Q z2eN9Z@aK2(Km3t)E}nv&J)h9}r%7;cp1=+-;NQz2GWzd6*_oIjFmDE_dYaOPH|&aG zH}1F^GfZ2cj|8V>q%&kc>8qThy%`}S`)W8Xt7i^%UKh$7@Juv}m&RbD!QyX^YqVzv zXN)G~;ohfCYTP!1)-s>7I7O2Tn1wu_J5>@NJt~*KBwib*;={=-$n2d;YyR5Oyt&LB zisQR;#|)}IQ$t?{)sSAmNAevti>7L-@^c{!27j)Q-sEy-Fr~xdxDrkcO{0e6`{*Li zDUSC(EN<}&wDz+zzI_uYx&4`L4~|6r25roE?tulX)8ReB4?=1kd2ahA=Dg}HUjDd9 zO9p;-k9f`AxS-dRI+-0X_x|y_K1;HFFwfh!r$FgRPb~W5fV0zbMG^CGlH_-ZVA@Pw z@2{Ya@e#Np^?@R$Ocm56mj=yvK@S#YqOU;?l}%-4w<+gGCYf@EI*~rF_r@CL$V*R) zhx6VCVo9S1-Lmk)>n^*fVCX_o_16)ezZB?gukYeWtrW(8zD17K4&=4ditk3ZX-A?h z9!Q;|<0-?D{ge3(x0zWu*cj=yM@g^j0@WW3!k>wsBx?igX=FbWvhT(5l55C}_8&V*>}kIsH0y8cw0MkRfz# zqZQSL<)b?GB7NQ63-hBMQ`o9toOa;+RR%<}ohhG3bCG#y6xPL7l1HLGT$aD0nyp$; zx}l1ugYHQ5+)P78Jtnn5nsA*ZD^bvyN8xYUsk3PyS!xZ0-qgF|nvyH_7luM+hApn$ zOvZFO7xXKMC8zXIBpT*%t~LzPC$&MM3kD6;L`-Qt=@!hTnwocXe4H|^UT=t>{}j<2 zWQ~l3KB%5O5hvIQ7BL|}k`fsMmosgmh~GIg`}xuQnSX>!au!m()y4bxHp%MwFKN|h z&fMI0;@O@n7N$=^y9DxPpJ+QJP94~*KqS<#k>DjccVprQ1 zGG=blL%u_9*3(7z3*+Iv`~i7(n}kZ!OeDQk!@~`M!YMD7S^7!%nZoYKU0*21bQwvz z9T3|3G3?u6{@>t0%zoyD#}tAEK`%tT!+(^Q%I83S-MIV4 zzf0n<^3gclHZdd9Z8^|hxSIl&#qsxMsW>`NgEs$rMsX}dBFjW3cXu$hGZvrlmE{?=)ENb`SoMqv5fbd z9~CjjPX(G!gK63KT#2-mD)Lr3Am{95+Q+@P3kh3k>E45sYLD!zWB3)qEG6 zesWwA*_a1o=7SqgeMs+S_(MkO7XA0umcP&EB%9tPQx`jwveXu!teApLsSK_OSA`OauYs{_Zw%h#DM&Fzl-uG^W_o{6Z-7lm0}3XO4E zNvposkm=m>A~DvGvlWrhwfxCv>^|gjB^fHh6}8IKX>xotQd%WAx2YI+vp0w@%b8E@ zT}l_-^~o@MDTViN!_sfu7g@(0=%6NXVaZ>y&4qb;;v2nsae}N&FNpms{*XHFP1bLY zg62+pTsV4%1|_7Rg}JrYdA6ANS_cie+=**FBs8stpzUHmkyi6i6tO4B@ue$dymYZ* zRWjl-FVpqQ``r^xE*8F{T;XzsJwI2p*vG3}O$7s}kx+Ts;v8OG5IDM|N$L*us-+uye+20I^3c& zZ;XgF7ujJ^h@<;{&h45hJt05(8qOpIJS+mIDNO%_Zbp=*nCf9RV^1qr;doh z6^qDxsvNG(T}et$R?;zkFQ4scCA2?>VeLva7@Yqi5Y9cscKsQ$i~2P0N@Xo|VB+hA6X0w}tuq{F zypnvqc$mBueeiyty!hc21H=B-xZadW-P50tuh~b*@`;PYlx8J($4(#>m1-~=>|-0ZILW-Dn_IFMFv?r}L>q!zDm zgt~OY2HuhNUG$vZc^x3Vc@i9}b*J}TOtI&~WMO#H6+P^Iu*Rty>08HQ-QS~P%QeEA z0m+zeZU#*|=Ck+?L=`(lsG^GEW0>zU;;48yh8cvrW0BgnOE&iBGdMP7?cu- zc1vRzt0qv(!bkLUvj);{b8cqE5lZe|LyJ~iBD)-OvU+AE4xcqdV);Az@pKU_s(eY$ z#&TYI<9X_|GQ^;$H0(3#q?U{VDz1G&-;BnRS=IzB9Fm4hCE+3?9PoMilw3v)$6-Ak zY>-+{8*Oe%)I(#i+f5hyR%mJuBwBI%Ik28jkGQ@S6Gc+%my;dtM5q*rA`-wsHnK|l5A4g$)%LusoF&|H{ z2$v^thc4U&D;|c@v-XK}hnas(UMod6_O|Soxk;+m4%12fH}uhKB8r@nARRJ;?vyLx z;H<~=T~i`f_;p1|u@{El^Tvo4cl7WdMj;=Ui5GhP$t$zB#I?W!S9$jT?n^Uu?mQu$ z-D2m0(M@`EcOLz4nv8EB*V49hEA*+&hS=kPRqeJIz`eo{o<&|Lyh-g<>9p-l7S;xt zA+M;#J!9G_QaWlOth2}9nrbY4kWs+Wj6m8ju@BBXGe_ga!MIh`752SHz)*QG0{vvM z&1p2Q1pgNGt5xa!gd&)KkfX9J6ND`919_gYpH_ZCA!B4ws`;I^#xWC7XS(>)BZbx& z@-9lg2l|i9p;Pg7V&~Fu(y#1>_|0d@VM-+hNBf9ZDRKmNjY3N*4KwGU; z=(F=r$%IcjDEq2|jnQLifzwSo;_^eZN$b$5#U|)KZv%B4ts?KWJ+W+MA!Ucnko1|j znzq(OaZWB8PSzhMbY)9h_KX0a<91mdK-TkQTEOl(6i28`Tu4qMJb#=`+hh@$M+*6iUISTpxKo^%1!)o7QtG zIlnOuZSj{#d-DV=W^Pcw0C!AMb*EV#aVQ_;j}>#$g^Pb8q}M6JXSf5_aF)pUVG6mP z<~-M|AbeJ>qkj|n!fAB~-i-1=`ZYcL;f(zIk`=UM(nETB%^OLIgQ4@t0(VzRk+!xb z{JH!5%D9YndMpqxzh+2o=j&lc)+t?#>Z#zwA63SU-={9w@NAA%VVzI+oI$7U^dl+fd zZE78D{FaZ{9(DBgeG9qgtQOrg`On|0=wI|PT6FTOsNl|r8t3qy3kP(q%Al|~2Tb4i zl3JUmKz7+hIu{#)s?97v8w zqfZVJE_BDQFT){I_nV%+KP$>FU8U@~oK4Pm$MjhW)SB>&NZSD)WqV^*uU#U`V;9B! z9W1<^d(wA>aB5wAn|cnALcsP=r0Wd9h~J&m$=nT34S70e${Fc3Z|M*31Z@@B1$>au ztsxYTt$x$tTaRf+-5@l}9HoloQR4EmVYube7cW%b(d_T}7}Tpj7WL^)YgQbf2|wg9 z^*%ez_|7U9t%L9(YsINwCux_~e{_9#3{+hW$mGK;QvJ_EIL-Y?3L$1R>u(-TvukeM z+wnZ>38rXvHg%~H*qq~!M^TnIcd~?YQUfr0wLY@HMzKSfds&m@*e<kwf+9i_j(O zBTMOw5sx*stoJjoV{4iq>nH zi2N}Hr=RYp{XLgTer!6(K1^>EwEhw|SLRd1_wSX4V~UW=mJHoVvcXv*dlbuS5Uf41?8!AgU#GqlyPsLczL>&`oG|!ibXP{ zUdQ814P+SsyaB4up%fWHQ3a~+S-#!JjAcwNh9E}jYAJR^x^7xTb)SE2m6 z7)ln!cyYUl)|M90`nn*FAi810)=6m28b`a=GP_yA8G{+hn0V6&F(&iavzk_EY)%N@&VYsDICff-7sK1JMo^r6F#Xa_#QEy zl5~gS>V>IpGF{TJi}Ph8wx;7(o)VVFI#ZQqmFOB^gcfFwbzc2KV;0^NUs|H@C)5p_ z9&onx{6#9cWPn@QKj_W=0vxNpNHGn=@aDHR7VB=HCr!6VD&ZhKxy?J5^_H;j{!vUZ z@WBn|_q3}2Hd>cF?lq*yMKGA zWqk!X_Tav(-5=6TH$;>CT=$LFYiU4n9v1WuV_)HR(q8pe2t6shHN8p^iq~oBt-F+e z+!6g^Ueo>LQo5Y?hgtfWxFh*OTBB5`=4vQjK1t@g$Zq!A9+aH)48o4dTWQZgCCD}V z;;rF#5{H&ii~ks?1am%c&H!w2@R2khvJ?AWYT#EDd*p8Spi;&0*mpV^8CU%fB5MwJ z_2YE=_zAHxigOlAD(JVLJ9X~MglVHLin6jWE;0<+?Ak2Nx5U=vz3_Zm1O0bS0okVi z$I*F*^}PRYTzfAWl~7uusF23zb>C5xG$@s5kkQhhsUe%}6`9$a%xpSsa>Qq|Ml}9+2anfeGrRe7RNU#tQ?;!HVRcA0{`r{Y|;1Lq#o=bA~{ z%siIH{QCzm|ImyR!es48C9Ih2$BB#Lk_UFlD@geS$-|eP0loIc!CEq@1gF97SE+Mtrl= z=i9AacyP*dSk`U#$bPG!>wqAP+husYbUuzZHwNrt;p+65Ji{!4JXZXeN8c zv)>KRYy+-;06S*TfRv=J*}clG|q}q37vAVo7;#R0fq``ot`VZ+>{znFO{g!hUs zW1eaTw|)y{#DqTFVAdK6k8BLp*ozkr+)%E!RLnedQ(@4&JkXl;8G1aN@5qp_dl1?=43G6!oPBN%H4xWK zTS8TSkDEr6DhA$@x#JQQ=*R+c=)MSQJIh@7^GcL{7VNP%k^%Y0(R#7$^DS^@%dv8A zRB0q0HEYE1&u6gRJds&Ri-msI0tT;kV$H5Z{&#B-et(jkS}Pwo#YjeS%zK5G`CY6C zS_Uua4;=9^iC^{|RUCO6F8k80ap6{bzIblO`ZEr+j&3a90_@^woi^idN>Xmuuh!1(p5|Cd=^OVY|v*58g@yeiJE+WpDLLu@k42!AouO^-6C)8Msd5whu;sxam#7R z%xEV&k3(WO9H+W;XLZ9#oc{9$8F^puvD}PrO>B{sxkX%-?}JB57vjc$ zvgfl?Q_fPIIeDx?^bhMqbq(nriuGopt}cf@ZYjR3{taH7fud>y*0htJ-1V1Gch!rF z%l2S}WiraAS#V;LQ{unNWpJ^q!h%=JMC7|8qHCTG?FPE?V9rQ#(J(4cu0&nyHq_F5 zA-c4$5dUqMg7q>}c02luI9((e@eSj+4CC<6vnTWSWr)p^PrS_M4$g$NXG8I3#fpvI ztnq6P$K>(&^4gUH=eA-YCt}N=2o6{qFXrzbAo)JsakRl%)X49Xf+l%fk};f5Jnb1{ zpMxg%dvMsW6i!HU;N>AbIP$wcL&GeIlb^9ndTCazOX1D*JO)pW;IAtc`20wR7H1{% zYHS8HA_wzFKY#JBQ)_l>-i*GI6Kj>HgN#-!Ic0$sx8M4qC}^e1NmhFl@#-bmXqu0P z&dY>St^?!N)Z%ZSLcCsEjOj*+46o5;$ny!%>!(7sm!~kM+XzOiPk?btdwe-Of>D3M z@HwuT=f@%cFs`$7c2~P%V{sUDTW8Y4HHs=>zI^v@5!!Vuhqz~f>Aj@q>v1UO_4RGe;`ZC^c{wbeWBqn0(weto zUyr|vSBeNm{!zjvhu=7Vp;p)|w`OpGF3*)&iEl1m+|*W+%^ttRugc*pt@dMqwahtK z^vC1DzYurtC|((^L&}0>n0jI!X6$Ii-&MNIG%pZY%gV6u`CgnK|4KOR)MqO_$=H^6 zAFH`zVYl@sGPZZYu}bNFN-IT0D=9%-qDt*pQ^^VH%DRPaXx?0tT{9=(P5xuiAvKbG zwi)e8d^pU^opFOrsFZ0=bwgE#Xk5iL{S%7rCMH~|r^~iO-MG>!9~G6arC-Z~Z;nOs zK}&UR`EJfUuQ_lHdL_HUf3bT+Q#4yQTfFlDyvxGab7liR*nbs=I%IKBr4B-N$gHgN z%QVx9z@4+2C_I$RRWpB!5Azqp#!{a>S9Ov6%>_6$$VBY<+?G0DPk#OnIiq^;av2C|#wpp4+MUrGue((_HdhtwMrOhr|g1I>IJ{Fk26fI0t zn5j_boMw-)q~M1z8Z37e+nNinf)^rc)(b`dc20c!LH-&c15x;J2=iUlS);jJ*sO?^ zv%+VTZ_JXnr#GG*9A)owaep)@&rxI39Jck zL6@;(uwQvP;tw3aj>Z@+Qy;*2ueJ&mAthv+^4PhG0ugPKIS=q6@PyX5EA@^FDy!Gio<$SaWr4EnYN=e7(G$8=h|H#daSsD*2=><>QoO}?>jG!h3m8AjV;DLl#GcUO*z+oF?PH+<;#OgFuT={ z)v1B}n%$9|&S;^Jiaqt(okT*THjQNG;@Kz#ji%d(H`eW8+U+66JTxV8cPVsbX5MB) zKb(wMD!kz$_k#AwE1D@vm2$=APx@RGrAn>;R9Rl#g4do&-pP*ZaOiRkM-%Jue%BDb zKIzNV#XUHoVLa-_1c|f{yA>l+I`Y%_Lgu^&U54+*>Z)Q(V>PDfEX2WyH%0i~U&4Ld5qWRRQUo4Pqf>-B z+m)Wi@<-|NJ;#$jOUjTg8OlYnljAz48alI&c}7f%Vwa`*4Eyw4Y->IWTW4>@t9Ki) z^58hUG%oV^ym_>!yJy6jGF>KokY1~FGxlHQg?Vw>G?BcnQ&$%#`W|jdjR&2WWiUfL zuv&wbTU}9D+?3yYhH}@kaCWb=K}sJdp59=|yns=7I6e!%3r*y^(|MsaVgV{9cVKbn z`C_p_9#`2a*u&S9-JfXl`;>NkCNon#mMg*7T7^-kCy1D251wq-Li+ve*lXcvYQ27r z<4e||e(Pym`yJ1f6O6gTDxY`rGr3cGw;uOAjMpvW8MUJxKAGK_^WZZY5)O*}UJ3kF zS1N|xkXho>7SdNQ8C$m;arj*cY(qbwKn$jlx0~Xk%v{{lGUC+yAzc5Yh1`7%;-2-A zYji+*i&|#zpyd}BCY-^;4(-_Q*Ilv3+mXW-?ZC&=ck$wR3>udV;W)iV;?iq7MXSHr zYk|+C9<)1J7)9z#5`$8svyn(KL9-!ITYV@%i z!X1s8+!5HH5#y6N=HU_ii93L3jT6F1W~yd5!K6BB)5y;1cHn z!sB2u=Jk-BV?9TF3?0qqetj8r=qUC-50-nv6#8Fm#k5^XJQ(K6j~jZRmtHX*E?JWmX^EQ@%sl|8U?iAXqm^1IblPMg^%#l?-jIXCgO&H3LTd& z$KT8f6zseuR#!>J`-VJD44i?j=i(%baJ{1R*dufq7R3>}mmx3F5lLIyQ`cPbWNM^u z_3J^Ae3pEYciOY~fHob5M6#vU12{b$f`}q{Ul`B^N;fVe?!sFnO8(EqQR?&=ZpJ3} zZpn8~19AW5Q*q*MB~(rB!T(kw59~jV;B0qJo!*+iid&1)(zp29(SdI_u7Z(#p4|$S z-@~~xkTXW+7J^48KFhmn*C)#S_w6(Wrplf~T{_<`*nz8Fvh&&JfJl^ojp#O%dqxBz zv|BHc`l1rE3IbsKaDnW~rSQ&wv2udnimg{h(#B-Z|H-vlt@7N%_$SVvMV@rV_ zRokSqY>p*OX4>)b!BPCONtNfHDnnheSQl*{%?F)Qu}Tq&4!t$`#bzn8iX-K2{|(&# zOT&&|HXdr%ZwTc-6|$>4lp$-5;Z;v<>3kc_t8+Tbe8p|qqw7i^-2@)(+zr3G>2upf z!PC3)XkrqM@Pap3aa|V?0Zpm>MTH&pJIUvX>|O0kK;e;RFkR9a$GZm0PF%A^-aqxbaYf1nxWDld!hDE`-tNs-PNNx` z-PbA%?}I ziSuLBapmF78i)431uMJ>VYw6j%R3fyD+HzgG0a8CjL$RW-m^I%{{I2gM z7R;^0=5-|^Kz0&5_s4T%^JN(3zY%GxC5KP$iDuemQ)S#FM22X=ZPWq96{QYh&#iDa zeu6ruMdimZTrjIj0)qd zr=dkoA9NlSCGwQl;@*Ra(5ml%i>Y<+-O!ZLPSQ<3!;+$81asmxpfWfIwI^#t_Q>Oy zP~^x}$KQ$d8Gd{ryS2+^pGWO?7pyvY75-y?A@sc=%!(Iclj{S|N6Y^6?3L@x-etzz z^~aN`eO6)T4O7{{=*})F*F~Rx?lS+W$K<0OaP#(61pRgr$=wREyJHeZ)F-jOLjYGk zJ*23eAm;$t<=^P{2&0PIQuEYv$@Q=mg)>I+$z@gX>2?bI-=9IS%*@XH)_|)wVo|f8 z54~TsqSc8YzRc`}?J_ewe#9R<@20^QcP1di%#%h}UBy7@J<|KA%qh=Cu)6C5^d53e zQFq8jdh(Wu(6!2N9ypHLuVtqFzxGtwx(!Yh+T640EVOLpcdc;}dL91@msh%Crp&C_ z?&!wDvdf)sIbJlot;K&H^I+2;I|AVoQGe+iE*7uFfPNJie&Cr>IyZHdEn}X3yzQS~B)*YcAUp%9*Nv&^bMwgD+{avfDhl z+gBEy=l14P3nkRu^5u_*t$ACrwzvFkz~nQ>#A=J-ST|qxCMU(x=lK{Em+cUxD@?He zWD(9?RTX<>E=aR#6-ox$aQc3EgVKBhlSx~V*5V>!8_k(~qOBseemRabmp|WtNZKA- zDlA9I=iSPwn4Hi6wt6gLBl|G6+>f;uqxj>AIdkN9pKEytSLWQp#`}r12`j;SpL)2- zJKmllt$Aqv7QECRA#aRdJe8kDa@3e2^pbgmiu<;rI8V+kt7bs=k2?HDER$@&=6vx{ z8Bcn5<@U&@Kv+jk_<043u50uBM@K|n?a%brZhU)e1U9Ls!eoZ@qgR?@$6P%*!+Ar7 zsZsW)4FWzJvtxzqFuR3teNZ{9&8vh{pMU5aJCZru)mYVAdW?(&jhm^7E2aH8%3zR) zS$|U;oPJS!*_$Qn=9((maCv$htM|LKz(szl zFGa?mEVfx-z$@FwV9TIDMpYSe^@3c)dfRi5W;?Fvl+D|pWd`?;J&iY);r5~4G!ED! z9zOmkjP>2IFSZqTJn_cqsh!*%U7Is1Lf#>Yt(Ydc0I#J(_3pcqiraQZ3_A4%J8wDA zq{4`130b^yZ9Hy7I&f>NzWf%ZE*&;=@l$yp#I;ul_If1NbyYg>AYzQ5RntLqoSJ>H9lwrxO?Tw4yA-kt?oro1+79^7|Zv)NHq`WZY? z?97l3(YF8L!I2?s?=VAQzu1pA-K8_FemgpxHIw(ypB^X64r6obF_>s3a*5`441eas zdU@Nva&$QJW6_s~H$^gKQtUvFQ)+i`y| zH-9nSxk-lCKFRhRCK+VUM>7538O)U3J)3P>Jbq&;wjLis!%-^kfz5i{Zk@UHB6 zw%K_F<@c2NHfS7QIkm*&y)Q5(xscg1r(H3(kQON~#lYHDm~(JGzOAriPDB|3TU+wD zeXyuBACBdtp25@j3;uR`jooRQ)Tx(yo!;?0mKel0lE3mLSF(j}`?1dyEgD!Eap0pSAO4MVW@3|ZI5u|~PW^Kgol5%A zHA0CG9hYL6k|WNec-K7|=8b_oEIAbi4;#{RZ$3Rg8nW)i zO`N!52938lRD1IRq5j*jr&TY;hDff-o+IMtgFRwKf}CZaXo@oz4d~iW0pGSAnPn2m zZ#UK1$#(z`-a3Nb^ZmJUL>P}mjYhECr!>a7^VIylB57oMyfX-AR;oGE%Aewbl{TwP z7vNctF-5~kh4qVUPWmG|#_0)YcwK=I>&X~y9e?@=i`0lW3U`IVztDqTA7PqfCB+o6~|V48@xx{T4!f1_bY zA*&=K&3=6(vh=RN>a>d7sWj!SgJa-xbRnj%k&G$%4BJ3A9ywKt6}b`88>J-~Mfb$G zK52|G8xGCLcbM3%I~@<0F<<85f0v{&eeG+sNb1Dr#m%s`?^L)2+2Qv$b55&UBQ)G= zu>9wB7*u-T#5;HVXu28Rk{>Zv{`=)!y79R5xj3$?!pEjJae1*mUFHO^y{R#e7`27c zLL&^eS|zlbd3j!U_u|WsZ7@p&3nkUAoYnWbyn*#*b-VWL>QRe9It8>&Ju8mv@)b`f zZ^74P**tGBNHH)vTU_2Yl5@5X3*!NOrMk=RpSU+1D+HAqYDWkafqYl)%$v?+0 zycGBMAH|yqd9nlfR$RA~jQrjsxKh0cS(*V@zr~N>vJwisSGWX<}sF|0Pqr*Hd? zRLvYt2078`OFuE6#{J_> zxgmcr`)B?yBjqD|#j>B(#1uy@`f&A3Wq#62rrNVK#*RH8#;JAY(OXumlw9TqeKXK> z=Q4c$Xhy$Hsa&yd4Exv19BoGiU36vRjHP1e;26&F zYl%*p?@*j2{RNInl2etyiCPJKv&MufU4vPmpNLPRKgwNYI`@9o=FG4{epud=0cmoV zxLW#}+&4h2R?ZXN)_k}sg_WV>5ccc@kf(tDj;G?U=6N)En8YxZZ?LI{FA*DrUruHJ0&MP)Q_uvtnpOMpO4=b z9l3N=XO1(JU4FBpVno>;jQnK4l>6R`$Z0(WJJtPZWh@+sB-b_XQi@8l81rG)9Y(_cQTEFOvHE$gvuMiScu9v8zd1t8q>B`!a@hV%Vp z;$&i9@YH2=mn_f34Xru!(?<*qH=<#XCXMBN%>MUQMPFYzcb_W~_I8_4z9xrH{p8#q z{1#{Jorvcfg#Wj2$rfwM?w3-TTvEWr8mYWJq=;JAk3(gHoR5dgoL6)ZG@nlvseNDI zvC%-571fIk26aNU=WLW7?8zZka#obS#+FT-+5LAa(#*YaZ|O%M;s-ihlb%->W1*9K z3-_;hvB#I`NS(J_bTL1L(Px{|ar_|uJar%2b(AqWQiV4{E71ICe`czx@U>G9JbtJo z#%wi5#5E887+%1xDeerBtl}E_LF4Ko+;Nj1GFuI{#zGWNG3Dh!lB4zX9%h%v;C)w3 z{*yl&r6V#oCwnHHaX_eO$yvN2hHl!Qkoxd|aGJ6b-)dK4Vy9|c{3*X_^5zeWu@S!lkp`V$`Wxv|Uk-#wWSL!BFOIcKm~7#!uYH@}Oa?9aq?^ zv(*7_Mf`^hx*cpqO??+(DW8Gw2R}v0@But`W{2pxr55Tnt8pXOmQVBJ*i~EZeiZH5 zQt=Xt<#W9Iatrz`yrD3tw#W2gp}gMifEe>gV#FS<6WzWvrH^t4^zkfWc}Q;>95kbC zSOEJCnF7b#ft>kW9r|N>^V`7z-1svV{hN+uRr}UBJEIFf%<9Umy$d+wlP-2SIqR^i#z!8Dz5U5tq^F%F5E=Yr-tKSM>hx5k~(wAnqGW2Zq*jbdmqOH%afvc`YcX5&od zYWzyMgI9~)5ERuKC8oKU9;D9Tlir+XJqLU5^x?j3#X{Um!&;3ROn+96Ru5*Q+(a&QfcDeGZdIAx-B^Wg+2IHnoK5GWX)InQ{dS#vpftY;`s7xly-IKH zKPg>p8buiT%9kULoWZS}@nWl29X2>eu~u@UeeTOYV~;K&db$BW_?^YrUJJ26NJi|# zFzg%rUbJ@)Vd>pLVsLD^NUnH{KVOPCwR^1?=zALNr(F_t&z{2c+)l*buwcXSOg4Gf z2XX41xVL5u$HoM(-J)nJ>EA_w;aI+w`|>BQ?$EQAIrTf+@i0b}`p4X9abX-g=-MOf zcW;)|Pe9qP<2ZRtmjmux7Rh%C-N;*U|;M*UW)aW(#&ul5zX&y*9`Kbt zlr2`$T@s;&qMNSV+kOQ7iXO_YYEMr2Cta>5UZQ%pHygdjC>-xuLoeQv9}X;m$L$5! zD{m1V4dwFtaUPoXdVo(i-XnLaHUHghM$L}4INzoZXI14g(q#pLYh{*xofZ4clf39p zgZcMpG~LcNN>->JuZ)&|)_Pgs*4n0gIO!6M8m%}eC!FP}&a{myLvg)}Feu%R*=IbU zR|~c%lZBd)rX1aRhS1#|gVNR)V9n3ykgF?hw9OIoCELGMkA<*aqsikte`DR%FZkA3 zI$jbD*l3{4^;=BQCWg2dmrRc?nHab;481&nLAJ_l(JO$9pDLK$Qw!i{;q=LktCfto zWQV(0BWKAg|I{VVd^Lu-c)@916g?jJvE2f>-;p<{g!$&!erAJME1x+^YjaR{;S}zk zzAC(rr7-K92bY~6%9J%7#24MQ;+kRxG~1{v#Pe>5{=5`-J^DiXx&F*IZI$hUKnehQo7oXRyo}$MIP0K&tLK3eUT-FgxFyyOgHlZ%0qb*4Q8} zY*C_h%qS}9EI}_jA8H>yB6j?7MDmxFXcjvMMSZjxaA=CKX(_vjFF)Yn8kvLh+y(u- z$Kt+S9In2J#HU9x|FAQamV@)r*Xu4eKhRJ zpj~Dz+3NvZf6l|LCg>uw&C1DhGTQQ*N4w0bt0ToGlT$`J~R^c-1=lcSq zEt;|A4SAF5rOEfPYeo2IRd$Lm!7%e&d>XkGhmIcss@n0q#Q@$sC@|b92G^gNvd>s| z>A08weY^`7U3`I}J;Uif+LM|1iWxD-FrjS~md}#C_CV=Qwl+qcs;LOPISgr@gE`<_ z0oR>(miZq?z8TvIV?)-%z_C5`S&7&Q){>W=i;F7Co4=(rv;%D3VPv{><{DJ?!-#l`h4X{8v) za(M%=%+}_tMYVXotQ$?^=3&WhfBrY$m(S9NviGQWc>nUSIGNIw-fl%aUO$K~@_wcq zb3w9{QyDo#{<`wBJYCLz@p@)hd}{@?cb*atzU_tTYzxJ~N561Z?s#igXK-!%PcS?y z`O@aM;P={{N8UXaCc_6{!F4P6J$i{pGNWv_ z8gKS^(%NYj{Ko5J!h?Do=<9}m9`i9tU!7L+`$8pp0jiVtPjVl?Uv12{Aw zfn)!cVa8VoU~p{+cX)A^^=%+^t%{$Jds^hRJq!9xZDR5bD~G^dG9s~ zv#8f1Yp*9;{~FCM4l$VM(UUn{Y_NCD0d$RB3GdukCiV2?;-gp4;r$-5`bIw0-zRZ! z&M_Q+X-UI9O>k#-6SjBVf`l3e=4tN1gbXK<-D4G=PkSPg^z+!ZLjVspWU_G0C!BWq zfHym)qA|A%()Vz7-YKF5Pc>>cI1p>&l7hH$LE4;+yzyMCs;G$oLGUu=cywPk1< zxLQ={%AH8N2*#y%Vyi`Y{9iwDiotE{uDg%vR&M;F+ZF*cVtCXsgI%0Eu=lMx5!X|4 zSwoJaQ_et6mQ3=d4b~iUelIXO6F8&d5?t*sc;-C#fs-4ghka9fhCgb;)e-V%^g5Ex+5Mz5{W+$Ex1()M z5U1wO6_e9Wiu{KkVD9`zv1IKtY_y7l?H^}u*lfV8L`UXbIE(t3v*Bnr6ElNvLjC7) zc%K6s+sOT$`#wCKy;D)sqAeZ$Gx)*Xm(D#hsk^W#E0#6){F(boWG|nGbF(W&Y{V_} zGWv++f5I_T>l+@`ZGpjoJnlc8&(72O(aqDCbq+(>&^?@!oD-*ZNaw^LlK*(~CMQw~OLtMa)_5%61#&{2_M<7k<6L z(X*>z+t*Ou?NxBeH=4(G_7iWSw<%O6wc`C7+ML*I94Bm-b61`gXBH2m)~EiW@V6GH z{H?;ESKY+R^@dnHWtw7m6LprAI*HgLPjRP}B^Qj#Wca#BQC0U^?hFTVRa_y>`mGiB z8+VJZT}M;rcRoWSe9(8{A`z;{$Lu!Gal*@!_O&kTce(>DdyM8--R9!sO*2l6vcM3P zV4f%+%(Le$ICTFx5f*O(jlGS~4;jTKuHHzHY;oU$0`6&9qR^?*g~7k^h-n^(%a6Oz zq0o>gEW2R6^y1|!ONT?d-s0RL52pJop>1&+tlIk+@q?|n@Ui3+`xSA>$)B*6?>HG> zTF_i}<<+n4$G!&}@i(Lm+kGBL55M7Z_A+I*Wd#}zFO~VRSg|=SlWY5{aFt&ZJ~lF7 zxJnnyz3GC&KAEEU;WG@z9BjHYnw!qu75kkIiZI(@!qzI0TfMs=+fO>3+s{I6`Z#`4 zRtUQs1BxlT6r<03vU1xil*$ayGfgWDaQTd*<()-k#V}T1^kf&$o>V&Af^Pkj=$Dww z=?|TGpsVDt-Y;a&f*>(e`c!_V@5O){aqRrVnQJyn=D_Y1Si0YiXQb;^xuveSt|uK6 zi#sy8qbc^>8p+p_aI|J#Li3zQ#450Svks@c%BrqVIzc5YkS1eAIaVw9L-? zKSoA{8K3CLn?dXA@K*LTb&8=OoFJ+Ozoq zEY$SHrJgcRA2tbFC!NNGog1NYFPEpwe~W}9H>zE^ivf|+OE=`9c=t|n)3T3Z*w0A1 z&zmf!_SS@T@ot>FEc+PaUc$JjRK%U!j8@&HQ_bicT#|gbR9E(xddvAg{WUV=tT1EV zB?P4#a?(0O5&AQMhP96s>NP_cCpo&GYu$wJ78Axz4dXG%gI9hV#`p1sBKO~7Xz!3c zR^>ptEX~2CEs~e!n#c|{Gm)RI1&t+pg<}VM`o3;WpClb77&qY|8~Hx|J{q+lKgGC7 zGG}wzijha$81wx-8nU&hcc)womiMPkWu2Jo(^b(!_Slu9!a07qyffBlv)*|r1`o~P zfN4|FZRI)C53%G!gF~p;tHG%l#BU?ic<1Cb*v1;OZI2b0lw81VqmPTU^_tu^NqUC{ zmcZ*)clItUIT+n|_zM#k23Ji`jX0u2S#jhG;e34&kKSA`25$yL0v(`9jsU@p^=9RBG&`C0C%hR*FK`ZlJ??=pWh zZzA7uJO)vDl?&&c@TT^t7W68~!j~!O+}9=oUQfG=z9pfG>G|!jWt<1UjEfQrJLZZF z4n0vJ_uU&>3}=g&92%W*m!8Z~++M9q|15phO3s`1z~vZrvKAZW7;~WZI5BHOBi8L$ zfrRWGVsm^EwC5M{>1GdpQgP<-UDx3#dedQKIOkdH5z2k{q2%>&*3{P^bBZ!Oj2!T< zPlYfq&0u@`2uw=Q#x6~NRw(Zk6Bn6dt+jjx_Z!BC(RTbS*#psiZE&sQAjM|`8?Mcg z4Ee$v;&0~%B6qtX#_jZx&fOsXS~ZTpX13?U=Jq@mD{sWh4q;cMFWY6W!E0SCCP0c9Dh#$kbqr33IKsV}sd5o%0*~r@F zz{a90a-MgP{U*s$Sv3cIZ_d40N5oDD?tUFbb=Lt{czYc5&(>hlgu|$Poyafe_CoKU zWaS;Rr_Sfo_*6Mw#HDV5@r{+D?2`{hzJDn?_m@5EzzU2%kia3WR^z*S1%6gf#>}ED zYPD&OVY>Y=;bIH=eUMC~qX&^PcLX;ir*mLxZ&ozbrmbWf{FIp>E7=WSf1(96<&7m% za@a1VO26Ee1L9qPGQQ1gg0bs%L$yjWd0cw1=^5z*`YQPfW7pvKxo5bavm3!vTGG49 zg8m+T34h6id)gJsX=-#R-7Xxf7h!B&9;d|zaf$sP94dJ$4jQ%Rs(sS?I)9Pe9mrkZ zIu+i2eLykvO$U}IW=Wrv%$W3?gpX=3F!}R(d@U@2ZoPs#Uy-WgoYDJ`3n%yL!&Sj^ z@IOcDfw3<9cfL7oFGk4zf(P#oGU2S%9ho7yTq9mYab=r>;%~z)k>pS!ZyrBT_%WIh ztt`0h=nv_k(#8tOI(>GxDePQMKvm}Zj)c3xqIC*qj;g?BRAH`U-`sRGV5c$IKH_L)OWY$2Pes#nR*Ws&E{iY zlSFQMz5#u68^lBnOD4mR-yihnpzCQ2!5F%B=*$SqYH{AXl?e4a2ImeTTzf{rZbu~B z&3goUd*q8<{;}{bRbiFPg!(@DidI{~__4h)EafhA%I3lBEIIo+l%0l3O;(e z9;u=BbT}#5c4|ZUReH%b$7;jEEf?df9Et9~;qs$3O}yG7r_K=*WDo21$Y!va)PhP% z%h7N)nsHxWz{@j&p)>R8U~^s^js7Zj-CqRdMGj*B`SFq`8O2xo0+{)`H=64Dz`b%S zdQ7zA?f5QKUQ)nQ&7b0V&lJx4`B-EeS*lpuK7{@~EZDAgvUq;25?+IXm@se^Os#Sl z*}5~E%3E>N#R7hp?o{gmo#-t2M(%opIn=K`Z$}>U{ByGtXSV%@Su0JMQv4gwzaLaI z9TZ0^=Ol_(@6q|?P$tY8$%*@dILcA_ehsXU>H7r5q1O@HDT(KOyJ3g)32Cmd$C0CC zCnpas`O%CAE=<6yVqfm~9K(dvuZr^30o?0xOL9w;>H14a6ihoIUNkJlAT`NTGmT+M zVKiSOOLlPHc=qpi6W(5htlOj|d!#E7)m8Sx-2an1^;h_^#F@iR+!h8d=O8w;3=ch593QFFynv4i>1TZc(!C7WsbL)6=8@w)0B(S5c)&n-EHI^}p~-fKg< zkXblC*aV|Bop{*Wn{URIqEY5yUuzWd*vgM++cp{VqLxD^CR$XTGNhEAD)Yp>OW?z{vhlpMgW?{ZeD8AsKLd&PyP0W|FJ3{NM$6i>6kh+#3zS2Gf6 zm2q77_8JZ~-;55^_b3v)GtuL{9GJ(Vu&7bo93_OEdKTlBYcslH1C|y~#<6-^ zUJcXYxnR2bi#1P{|AUtPE8!5HfsKc|aN)1vocU}dBPUnD+{TpSJg&m<>rlEHJ{{7 zCrI9K>kXM)P%3hs#BpeJG&h+H!0?v=a(2>5bg=6?}fGKlq zE5zY>CQN^5$~ltL*mKt;JfEW>`v^-Ao#2Z5``kF8zk=sK$S(AQ6pV9J(a-kP4kgB{L&Z zU`R(L{&9`sGuw2|`!z#!)C*%nI}7U8O1|kRZP9spbGGy^6RYfH-s1gGwsA{Q$pbdR29raOv|B|bG8MIGg9zZ@`~ICrrY=cZXwyGOFzWe#BT@8(pyR4Wb-O5yrx-^9R^wou(uj;y;{ zin8Ojl09L8hGVUnk*vcd%O~JYoibW!^<(_7GgzCP0e-imd#M5c9=nYF7h-7GsXN!S zER_|$4!F0qnfx<&4{;$$jF61{BRdPZ`bSf4xYH89C13yixU$;e-~EK?QSFiRR8u-2 zKB3L*Y+7aSL-X7My5_cJ{6KAPtBc^BHU@NGUZbeJDKmzTnxkZ-I%*f#$af)YyxC}r zL%j^Clb(UMdgH~uhY9>TQu3qRSD?4^S;dgj0qmkbl-KuJFk|dd46M{@5-^hhm{xJclp)hWqB7`8xYQ#Z;NiGF-e~^a_+YjMK)f-mgTf zkW_|?MB2TR9;~)^@F!%1oCT8T7%$yu%d&X&-dh7}Dno zoEMzK+yn=%9$$s&E7zdzWOHns5zo~Z4V^HPrl9Ap;N*W3}BQBAmfQd268 znU0jfZrmt8+lC7!V_so%mfM@~dx1IMOUBWdD0PLdj|IQrbRLT+5^S>GkmOAB(>lne>-C>D6T`aO0TdYn)Pst4bpjl~T?= zvo!-kd(c+zFPsMqV)&wUaGTkT|BgKeN36if9y?GrcoBLImlfrb41U|Z6Cd{Fa^*eg zMBW;P`-yW!yPz(-TI|l2doE#WTT}i~k+Y>_VVU(D3A1iv@XXwlMVGsCY_~orJCx_~ zTWcr`EHdce^$ZW%rLwP~?3F#SOAtRpQ5mH z5(7^=$lh-{A5PTg$LD8JbgM6)Mm@m4foZgqyoBSK6~acc`10=u%6pEcNVM!MmUL7` zJIT`ud!Nr1&1Lty#+?_mp5TkGJ?oE`K>be>_O?C_!(B(#f6>64?m|oduWOS@7Ez z$l+FfB~xQ0%XS+`cKRQ@Q;y=AUy(dTq9xF|NBn~eePVJr{N;7{4VaeUnyHadoMb5a!*(q}UH z@@^O`(%|>if` zJ9ilJO!!n7N#D<;#?!)0c{jENOve1U^O)VBPJ^9yvFwB$la>9coZ1zS#Ue%Qpme@C zeh8CSx8(m(bl!njzikv(GK%aiM9Cfz70-Pgkq{wS5lP7=5gDPWol1L1QQDjKpsA!% z8rnsg8o%~>ulKL|FL}P-=f3Xiobx#=?i!OtGP6^;7h`R_6}qQtAp58<_t?nL{5QRD zs2~MhH=9xYE_JM^n}T<`55%qL{-TU?u>CX-N}ArNVpY8@ZuU6rD(c$EbHOQUY#R!< zsopr5Ac69e2QG)J-RPITvBY8eG~D5x!k&(9$XA<4H~1WlIhsYy*Y45Y4WpT*#QCA7 z2pIWB!{UV^PIn8(uGLRT!+9Lf(7N>T@g-^vPJ!HvVYFz>5Nuw5h2$E15Lvg8#>o7n z+w0E?L%r^Z^Gc;eO?L{6NvCH6hoE=pFRF;|PAZ&vX<601j9BCN7&V&ct2Z5 zES#c2yZT?FArbxIvN0T6XK~;0PsPWkyNH(Vki#jBx0K)fnY>)Nv)48sSyk)Uck)Uy?~6Gm zPqU+ech9?6o)`$c8G&dOZNTmq>6bc*;?+{PZ_Yj5X>m}nW|l)-3RN~elx(cCg$ip& z73bHJ-+u;p_=LT|>Zc{iuZw6U`^>L@E`o2^8t#}$!Os26p&ip9!VmnSlQ%b!Y?2ML z_bMb`mJLSF-o7wp&*y>pgoZ6)2-?*`BRTJ)&zX-deY~Ktzl#{2WsjRhCDdB1gHg)t z+fnY0Til;Lpfmu1C$&UK4)fd2-KW_;o(P*dm9wDt=)=sp;@{cQHOi$D6-M8MpfZInq#(>w!F-R^|?FLbBzvumB(VZTrU)rasNc&3v#@-PF!5Q znl^0wME5T~q&X)fNGm!+ITVUFMZ1}W5`sR)x|qHq3@5H6V9>)%JbUQHomrfZh`u3g zVx5ux)d*VCU(&>BN>D8yio_2`Nj23AOP75WTG11+>ufePSnC-!EdhTGJ4Lm8G-78ez(LCbjWgL#E4f7%*VobF4{12F${aP^$L?IPjRG_V zV9w+p;;hAZI+zNaac2%~VI5s~8G%Np1!O+70E>5C5Q<;M!~1JB_0zp29PRn{F?<1? z+s+)gJN~%Vs*7?NO8W%-B$-*Kk4bG}7T>q~(5h~~Xis)eh`)=eYDOF`X^w@w;%h48EZ;4? zo|u={3mQ`UDU`iFN2JuTD{vqZeM&^DZiD1|U>UvV=eYa2Fv+-{+?lgl9TyXd5Uw`? z=2>b;WR^xu)j(<*7mRhYip9l0UNH6uMqYg|Tps^ND-UlJg-3Hla#|jyYuRA>^+<$- zkH+Q;^U2gQ3$ojH($D#QX#9hxl*PP)o3&SHJ9`D(mdN7M-dJj=Hp1ihHk!!&wmsrA zaA{&VdTktsBO^vbuT_e7nnrm3wOP`o^QqYJd=&0PHoIO-nI)(sO7#0NfaX05f^HVi z4^n$+t3yvD4llx$J+h?31qUB$BC(ZO^f5iUi&ML;Q5e?`zs{Ls%VBG%=X@8BZ}nwA zL_4MF)li*A511)N;0ynL-)yxLtp-)}=aw55UT&aWH;vI{K_j{C8O!&E?zp(%FoiEk zhvtMpxPBas&XW(QDtaB2EB;4S-ia93En5^^)IlHaw%FoZ%G`ZJOnY^WYL0K9MX#A7 ze|He}?|DYv)euQ@{!qws_L|;dozuq=zmsoEijxk2(gqLwdB6SiM}}^`tYdZ|BOQ!cI8_q2xxsSa2~hj%52D3k6q>P{0K9y|iw zdVQhRMhSh3jlle!%tEVMAq@8nz_15#ptmKoA!r?S%~(dtwnI?E+Ii(b6Y;m^p}0BO zfX?`zpsB`7=|XUKsH)u%e|^JXA8m@CL-H{HU?9x)-4$z@$33F`0KFJIkMn`)LjGg9 zq%`6RB~<&9?nWyFz1L(fq8U2vbm)GP5|l5fP-XshGI+mT6jACf|T{)J`+A)>x5pk-+bnNI<{SfPT>6lL5W8zg)k7M z77tc~-j9%CrjRlPmfO?%J-Ns(ibiOiE0p&6Vn&WD_gqgGFBI%i%zELs^3U|)DD!6a z^~H})fhBeP-7cMqeFptd?a7Sl0lZ)P#eTMZ%y~|LJI24_ixR4{q@u za~zsx=;5DpFRc7&K~?R!DC7RiF@JrSH8Yp|zW8A3linzQJcD#Ej$_}c8V-+kL_|D$ zX!x0Gp22=P-}Q9hd4KADB~bD~dZ%c6vquEHkDvzm@o=rwgI$O${jNApM@v5oaic3N ztbHhqIbb0kQo!a_B(Ev3>Eb(a%f%nbO;btno(d_I4x++AnozMChlhc$DX!!r)tp{T z9$Pk2Zdf5W4N4Y2Im@n9MZe+(qd)JhlY1_vrvp;)$IcIqjxkV{?~Qt|X39Go%nU%* zXKu)dWg-39w{}!)yV*q)e+hxhW#(QkHGmoG_I?p_sN-iG>esYTT!%ZH7R6(6i4JAn zjK})07D_uGhOiyA?AeY&;>`Y-JT(SeTP$crQx3MLg;R)h5)E&dNN-Dd|2}&HF7G)& zd*?XOki!0AGHdSYoK+gW!htfzI$-}hkhPpLdGqk0!y#vM23VO2J&47)-mi zp7NsEAM%|&Ey-SJ;B)DVW(|$n!93Z68c4qzj+B&6TDo-&eL9$pqL#j-S8X7iVwuT$ z_nK%M%KBJ4k@dvx@cgltj;kCK*^{Esk-LU&`AI<{ca?s>sHTW3Npz;|qZr0LW|cC@ zNEthm&$oNRZJDzqIB^_RsIt9Zrh#UrOy)B}3itYXGedp?nxOJd!y>CCvVOVdRdYzEvWva0)7(Plm&F zTXI^>bHqO>Wc@Uyh^~bcwfiP#dejkk)*8(l24I41w21jzOv$S@P*){=7)xf-mim5T zM?nA%D~`d4EGv4=ewnaXOR=QY4VU8Usc)7(=Erx#pD*lNNaK7#RvbRL921v@v;Sh4 z2XftFFwZLmlis?m?>g-+4Bwpuu+)sGzQi925E?=I|Su{d*nNa<=BP*G4+xyi)S?s50)g9uczJ zN5VAfCB-$Y5$ctn$aeoj+UI(QTB|H^^;kUqZL~qHYXZ&wY)jI*Bgp%lG|F@Ca9^S- zon#K&3irXT`)Z6>gMLoLI)vAkJ{14_Dc#z)S~6sw9Ubz|fpsNkrpiks;m!VNod1Y? zWc^XbUV>LmsTld!l;p1Fk^Q(uO$!aL4q}xc_s4sOg3|x}DKNURML|1XUHww~eJ!eOJ=mfd|E@15@B|YzTS| zG9s%vZ^f2a-j^^BrOvQY+_GFq;*As?td@mjmK@&Cn1+el%EYyxOuXXG&_4fZQ~via zl-5syjaz4qReVBwFOT@tv)vh+8v{A=_^Tz?_4#Bn@Hy7 zMEV}9On*Ph((>Wim|YQ%+HF>x|BZoKW&zFzAK~-g3%%#-VENY9V)gdT)aAip$(64; zh`n}{4s5nXaC$a+$QGa^^%eQ6*$AaR+1Nn?Mg4Z}Z~9;>8T-T^Z!33@URNnh(^3~{ zLF2kDgD(qlRO1C;QxY zWHYaq^YJ^45vO5@Zt-b=l0Ur{J~;69zPQq)1*87icvw~hg*sWHo^k0tqzmClQA@0$KaQvBPJ!~T^|NW%mWDmODIUeu7e-!V171`TXCTt?kP?1I^s(EJjJ-(J2^~&ke z7H>$+Z*bZAc0ZXuxl1;A5{!T5k5_B;pZ_7=B!zO^*2~Ys>{SsDO2p7IuYp|Ika=H6CD2bf$XAV^g&@iy$y2{rbgqauxA2V zn0pkb(FZYm8|h^UXDqp=NOz1LCTsg4I5%GOeYt_WujS);lP;b%t)#I*UQoI>2qO$L zaN%kermr4?XSS+B%JHP+T5>qt-}ys5iRXG{MNAI+D_&mjD?GpSz?3aV#D2R}7`^i$ zGk(9;TXM`|fFq?1V#fBgEIRG{ko-oP;vwGyPM6LT__a%)UQV(EII!ii=6mdit0;pH`6uEtPzD;X(!FItW$_z~4iIQQtX_K1gTM z(Zr#&Deot}JC_3gj%1=aCA4PxQc20hZB%kK8x!4kkcDR$cL_fv-7L;kYRwXr>0M!T zI|2PXiYaR1HrmxD50hudDR7S_4YNB=`b~@JD(ka7x=g43TB`UycfRCu1NXa^jiMjf zXJ~Bn6IxLbfWo=sk@g}Cdo5SdH4%tn&b3aT7Kwec9m(lz0p#zz|m}x@ZF<l5K8oYM{CYsqhqaa z=x>3uSjB8HL%(QdP(;F}Iq(e+G`kOquJn zPg{*8LXHEx%fHfz&ll$FRFxyFQ&|RJxDnk zLvdl`8ZoMC00x@m(51A?)W@!qI!%Kq^ zj_S!2xNGXbb898pYzxEPAKZs>I}PK#l<==GnyOe^3wbDqa_(R78~2blX=Zcp@OFA@ z^is#zi%0XgC;q65q{}6H z1Z0lF$#?rDj=J)g{d^3PMy8?6ZXg-#7(t(+a;S2@ACfuih{50Jrj#)%Gy90pClPqZ zn#i(iu|nhWDrRa_)8G?Pm^!IHv+X1CUSdE>IeOT-a05LFUQWN-CS!fkKMHqPEa|pw zsKjZ-OP#m9Jg=la*NLBNSMYy3gUFW`V+tx$$zK0WQQCG;f@l zCyRUEm|My_;`(-J(w~uuNx>7Kv0N5y@#T`2+;{q$c~zdgS8(Lq#rlhvi4oNAHt)!LStBvFjBH{bQ;#F_MbGJOIQLN%Z!)HVn9Z58 znSJNN5YOVYZ~8%pLN3T_C;Phx+yor$%=jI+>7; zrTYNgBEp*1i5Os>kFH0|u;P~r&R&w|9yxPz2WD#YRKkwX-vu~?*a$lz8hvx66g!oJp>_8Z6wqdnXwz-OfUn|rPr_G58q zMOPu;!w=uj8bZEkKV=!&&}+?EqVumdj;s5KIj=IXB5n;)+c5N=UPcZ>M$!(>l0R4+ zhAt7@jrhGUwoP-w(Ki!t^Xq3mgMLt}>2*3KKb`*MbdYRtHvI@-4#=_;F;p#A5_jqo zo$=L%{=OWv*}R~pXYXi^oiDmAafZ2pH_QfQQ$bG!O!~oo_@n#`82cgp_+{GJC51M9 z{6XFOI@9jKZ(Z$f-*(xz{5n~VY$d16C^B2D11*C#l5~4WcjBi((J>Dz!S}Spa7y_R zj(;nAp}xik7d$mF$^RiK&~0jEt$fanBn;hA1g{hJ=&W{tn=f;zy5|vG?vn9iB|7h} z?XoY$fpQa+IpdlJ*8&eQAtVZir?-m@&B^rf>l)ghYKsdgFG-*G?~hbC<1jA@ZL{Mr z_yhm_*;HKfmZrrsi(qk@J<#3l@SP->`m=;C98$t^TW@-s2P{1?8mZm7Q_>;@@(t^b z&l(nJJ3b0J6WDif!UJv2e9o&f=cj2TYM)xd`PfiWZD$=Pr4a7<%--wfjUb-w>TgP* zv(f-#XJydRtYGNY7BdrAhBZxj^jfQqD(~UQ{l1O{znFk+oat3|nNL%81>%`zGJW{w ziSlj)@l~J-gshKI3 zF>5?>r7^u8-Vc!-%w&toN4Zi0CYUHdac(d1dg(YUX;DU$+elhvYeWI_IH$HmnP+u9 zT0W(n+DjJGr>C`&^oNd!Vt-i%ce_>|lR@77^Az{W91ZO~=}@xQWrE@&67+Sc$NMYuOao@@;E6! zhVL7jM7o|I`{JI^#9^se%*^qtBW=*-Vt+U}Xh0(4hRFABDC91$Z%3gt#~UPb6#$U~`05#@AD#t{7|_^Vu`8?SAUUnB#QBUfl8ca~ypEaKt{^`#vzW-ApZO&XQZ7;TU==TXOD3ALMT0J5#a& zsm0$RuN~g-)89tx=Xr=-(I3R^;|pka>S)*H51O_5jGj z{VDftE=%DYz$Tjb#sy_7tT6whHuOH(!d&Bx>#(u1uumIFmm=3uq`M3)U+z!6XK$gs zk6h^cdp&r4cq4q4aKCoP4|>S?$s0eb$iX%M!6$Tu;)X=XZ{Yrqb$94g%oAFFH=Ld+ z+GD9bbMHHcQqab!co+LnvRrXJZQ=aE6koF@YnDawAaSf8#e_^6?OHaCyMyxYjrT52}?c%JBVf`EtwY38Zla(}L!`cEHswMsMDKb_XPRr8ATb2{qX1b7OHZSL*RA=?vMzFh4xb#a#K%I z*PUQ9Ukjh4yjf_iBZWf|=ssvF>PKqOYyAw&{M+6M-mUTpJt*CQ+*=IXY>IIsPLspNzQ`}lgq#09l8N3=7v8DUET3ZT(c&Jpoui?ln2f$X z&og^sBzHpR;qUtZoPS>cSJ#IU>8}TbTDT1^F7BWYn>%S9=d>=S7vLH3pW&GpvnEp% zo*oasqGNPrhbMe{?x&YMb@6f5MUklSS*+@#K{M(tusM)|ra+!`$$>~)%6UekkK zp#&2yhhok*=0@gzBljUq)U>t$ZvUy^X75^YEXfligZpD|;Vg1AkD&ISKx9QCWX-Iw zgZIIcm}%HCIs^9_9k|PA0cX$SD8-%qw8i5PeMy3q+)+-Pmk%s3MX4q8VnRGI^Xhr( z9&mloV175vANhayJIz^wSLLFS#tTvtQBVPZMaz92aV52B+mM zGn_N$`Gqs#XU@pENr&r0VeG;}h+94lSaNKl}GJD-1wX;_EGsqLVmy~Gb zU*^4Q494ltQ8??_NXJqX$s_a#y)%)fFx~<87&BH}zv_vnFOE?AiEvtRR$#)H8xoyW z(?!erp3v?;O;`uWqcu4PX(|_J_*X|X4cS5)UWLPPSpf=v`eM6uFI-s8`Mdk$@%u_3 z&YW_=A+OouJ^RMJ?|6xK;mP>6_8W~l%6G4_0x_b1vqIft5b|FQ#kps|{NzhXS)Wrh z+`Wr%w;6!{WE&~#;tugBm-}44XyK(Cd%-_(7v6**)~|h$w=N19`^{16Jdf_&&*w97 zGA>J<6r~`Q1Dz`h}W4I;q(icb^y+aXa;zu7hrwW~tDU>@c7zx4UbWkf17Ekt& z`@>$C?;&B2?^L|vtmYD%P<#q=r~Cbu3;*}c)R+4vF6*qN^`m=Y@O?F`54u1yt94P< z)I^hJa<5$F9IF4u*)271QUA=J>fR4R>X}@GUX4cd!L2koB_6J?`JM5QMF;ci-0~8| zwr9ifo&BOW>QoR|Z-uE#+k~RmEi%dZM6H)i=#zmh`YlhurTtwH&dfip(%zVt*+yxZ zf2h}77i`MY7fb)`B-18q%wevYvuq3*+M zvVAxtyLyv%QeS#hvPzt}ABgj@%=9ZA49$zoR#NqV(*vI44$l{IX7{9ZacY~4#WrEwM1n85vty{G+wPc zyqv5M*7XQg6->bAjdkM3KQpAuSW>_%*5^{#uRdB1zhm_I9Us8{jVwgX1>$Q~)4dfh zXjbeI(s${NwuVd8wA@^zMx{XhZxeTzan7_GXZW>~vHffiWY?K;N67+FaUv8=?62!& zPye~is=m4XWXk~v9sPpF-W*C1XP=SI$@f&yp zZ@MLABqC)K;FUCs=Ix(LeeIsp^nF9N1esw6!)ym?RYHb>~Zeh$hWN7A7u zqoMUn56fh@Bed5r*tmS8p}D#6`|*Vi)|67)pLj?{e4~l`dB58!hXLQ>$z5X~T~EwM zf*xn|mLH|U-OK5)??C?dQ&|rV#@mTg5XJYikrltmJ<$h?6`4Vvv{=;HDWH6h42-H; zX!xKqvgn^j&OhZ@cVQ0bx1J z?=j5n^v3ajEwsr#0)jJfAJ04xD|X$KRQ=L|Ip2$>JexqL<6qF=w1J{G_j}B!@k3WgCR) zRWn>t^TELRhV*+@I1Txp0K3R6Y;UU<=On2xZYjcRIp&RI2BTr+Fk1TdKZ>_}Ax8Xm zV6OZ*>NuiFvoN0KkCvt4)`Mi%8HWA4-;tBA6&fqDuxSYQrf!`|5w=@}$=o1J`LUR` z&*=>*_G5HAA&Wbm(m3|Lo{AKIl3RccwD%bzj5z{rW2Rw6bqgiGWIu)_cUe>kocMK_ z`UX1Vv2+Mb-|506__O%2L=*0N6UedXHr;%}cfv^nc;|PAHh1ZQ&^4XHd%Z0djVcmb zlsC~LcT3!ptfje9zg;V&o>OR8KTN9+haYRi`3Cu<>X(HB^G{L4?g65SISO7w9O?4U z`Lt7BiFaf=h(D%J>0!)SdSi$TOIb{~p~T#K&ZOoJMD(P!lso<_nH{?(vgfR(4ra!d zmGnn*!!&3%-KLVwvRHLL8>N~?ShV3a%~f(m_a8=3vzvpPc80VsnKu)Xe)Jalt_Lp$e+W z+e4mnQ}K4qFEREPXSIhF(XU4?_|m+Q+T9CSf09NGdq&o8@Q1s&PX$F|VEHExuVpJ~ z^_{Wk@yHP^h5Km7_OoTmq$;0f@FoN@IclRhm_x3`XbaXYD^ZqAVF$J&lRghmE zio71vNpAB9oc+1jbwjBlZcL1UtHBJKU-6D^%pQfr&Zm+sB_G9uqXrnj^YyKjBXP-F z143z{n6wLZTomA$?tzVXzm zy+=fBE+>`NSo|eJOlaB7nIuj8jCI3^p_!0ko%_5q@6^|Y@H%3oH}M@Ct+fz54uN<#z=lQ+J=^KE{rvgI3;|}TtLs;GoY19bnll3Zj{7PrCtEO z9M{LST3OUfzL8$o5z+Hr3(YDiq4JeQ=esN{^WQ=xVpLyppO7L?>YrPrmO`QOr@1{_D6^a=% z@6o2uAqd*~hvt{L;kve^>z}l7MCY|pzt99>_gckp{~Q{V$a?9tC3L#d76A`r@aR!E zOzRDqPoRVu3s$kWnY-J~PKrLtemMW&Bo+0#PiphiaKt`{8mF6}f4`I5PnhAF?_q~S zn{tI}l@;zkdPN^ij8Ic-g6DSICdpg(5;k})OYhljh??a zq!)>?Dfejm^mzPG*Tlc}8ZzqI8-<+*#Ad~0*Hv#q=@+-%fQw#!8q=#N51t#X=Bm?NzTN4OuaT1W#xsW^V9$l2JF#TJOYznPod+x_+Hzo zi~S}2n5ox;PFzzb**&ar+B>7?JHYUWDIG0VaE%KvLG1QRl0V0}cV@gQPVG1#iVm%$ z4DBsq`t*as^*F@Js4L^|sGM@*B?LH_2R z@D7ZI)^cN5^&XGZg1+dNW{cv5&&YIMHKj>;A*E;-HEU$x^f&gvFsCM9UnO0w*~Onr ztN4A+0b_KwknT%m$+of6xvMUQpHF5(NcSQiV;ydn8#;-xbrhw_)-SG zN4w*6#upmu#5=kCq3AO>7?=BR6575e#fo}sq%OWqYid@K+=M-J>y0iJ+;@c0b2lu` zeIZ<~E+BWG5~{7(MQVn_u}Z6qTx5oej%AN2ve6floDS2TNNre*t{~^HT9|30hMCI^ z;J%P>B*B{WxYJ=5_c0E;^j+lTUZtybamX9tg=y>N(enItRA0nej(tyr#LA2BzY>tM zO&jOV=25XDAwfG9*$?ki`OE~=U5dd6k9LZI;P_!tmhA94wXEjTjtQ?!BfPPE~#X> zQx2D}u+J#AD;AavgP&F&-aj2d)lMdKfBGo=TAv5gv|d==T?elZ7T}Yv3*1>xU#Tjn z>Zk*iU165?e}i!3Qk(GWr7q%!`5?B~0}qU~q2P6y_MKfqht*jNUc8^Sds>ig>r(1= zNt<^3oQB)KM&c&>&;JH=#mYW>=d7$Gm+@8PHS`-@9K4<49rRGgJocW~XVM^Hf|4sr zxbk-mpD9ZzWMeKgnHAJ~YXSu+$;0I%`|7n4P$@eBkFSr0yI(Fomz|fWS?s2#8_!BE zovNmt&0VqObPn0gZW9Z4S(4X2_I(VKaL0BqI@1!-ZEttKXR9RT^efrCU5K&>AharCh(XFizCTk+#f8?d`KAwn0nsVfeEfUAw z9pd?NW&`nOrgE8il&92bs2uyzN=qoH-4tzQp@>aM$DL2R=#l<$a@8M>yzh+8}f^P7z+)g=%12FlpSez7)lRmeP1z&EdCT#h?I zR~t{$4rWY^`8x_9ZMRd8qQ&&K`Ip!>R2iRHM?7584WDe86I|?x9)r~|SL43WiEbwK zAZ6Te?E?A5oTUs4gWcX1abbBryxZ#NmGL+{>v5Aj&zI34D<|gbd?17I&RELlL6uy8 zY>ylY>babpPsHF|CigA0SYkwaZ#r_c0E79QIsaM;m9N>OmAj2BxYH%=a~(Ns)yBP7 zRpRRYbh4>iNWMYia5W$d2e|*^LcKN|4MGt(!xe{8>~W=}O-y8OUUca=aj~r%_mNmi z6onZzY_-GAt@)&&w^d9j<*xJXfmr5}0qHprG@a+tfcYmVx+(>0FWSTZTaD<9XU|*= z_gz@Nphn&i6P05s4=o6YAh^fw$rNxbz+QqE$!@7L+25J!r@kkanV3c={8!~ zWj|F~dSl!P9lSZLh6PhN%W3Y;Ec{IPz2n}OrTLh%{1$cXHw|&MR@B%f7ESIOsA|wa zOxrOEqcm(Nt3-|Rw1R0Z=d1Jw=fPsgO&W9bqS(lujeRFyiesw7$bD@+&ELI(j!hng zwe#8x1WG;m%;mJYpAhy=o~i;BO7GM^>8=Iaw!W0Fu&M$ za5}wl%|@kxJCqHjv1sW9QO`WGdqH2tNY=Ms2HvG_ykiejDuko&Cb}Q(iivdwD7NJ+ zO9wNTCdNaid}IJK+w$IAX|X>HXn+PTaXZ!hJ;qGJ-4b=X7p ze1K@Y+b-snr{Zu+Gle&D@B52L{1_dL@6XRur>z!t!yYecpVH#%%GkKL2L`eB^nC9K zEZ>xd<9Zp$zLo*&tXYz4Z$^;2mK5g=)`@?Eitx5M3N{{|Ldu6TIn`B^lbeHh;~g|k zC!T(;U(TLo-Y33Rg6jl%7&37 zaHkY|7zfn24r=y+w7&_iUE3&*Xd81)D0hMp+B6HHpOzEgvb1wjaHTc_~QS z2Rl|9VQ!KueD~(yl7}Z^`MHrlnt=3=kHpqP&q=+aFZ&sG(Sh$WD7Z5j&l8LgKD`eP z^h>8pDQif2N_Ywx*vS7#_Jk7l$k!e2!F&oklAU(HC&ZqUq!{&F?WpS&hzU+d*tN6@&WI$<;i*Q+64&5{~aq^KI{utULb!lL}K{UNw5i9MJrX7 zQb5=_ah~@X`^#M6c_b9UhU@7N;?ulT8dy9QuUdG%8xcT73NL5|jl=Ns zk<1YoiQr%Ie1_zUnuC*(vFkGRbF32yeUhM1Jp~P4r4VyL54Pd^Bq}h0X?rA=@7zd! zA)2W234wjZXoRclkzrmi?O9(e8LTEo%V&TNsJOaUC*pY~;Jq`54t*txfpg-6SqFBr8P&LG3@bLYWk3X@$Ly? z4W*Kb8Ta3gc|_0j-%+}yHu|nTC+Zej(d))Vq$)PXk8;)E3fB{YVl2mFIr*Jlb(E zn7uEaVn&u8&YcKG->+`8zWko#Y0M`2b9X8%^9`WaIG%Q}w?#GbCr$1MqVZd~YqP}y zqXti<(g05k8^uho%D0jlH_orPtHW-?1(H4goK{Cngz_aL{<(eeX9>@KD|wgp;up0x zRkOZzn!YH6lVYz?*vtD0NK2v2`mfknlQ*?+Py zid;co_6)$R(N1LWHW%?v4P0}$>%Fw9l;WmbW(I^Rxjq?-&CO@&<4W$!>sCi5exZ0h z+8ic6iln*cw0J%fxFFXL@871=*Le@daRRd-hVq<)qTgVs|vgaR>Z83#1)eOtN*%GyR^AeO7*`iQxBUL_QsRbd^3vte{W4 zTX^QIf|deVjOpfwRn=$6)y^BA3x^@-kQRzJnoxb?2pZTin^rC48PGV9oU=wk_eqH; z-CavT{eI9Ala(|}uD9?Bub|C#ns|Cfk3D(+(X6aobji;^_@8hT$KRq=t;q=3=t;-6 z=>f{#m|b?7jKdF*@771uW3nBJoDPULS9mr$5ds;oAE3SuPJUCNL8thh-^6_*H~Qmb z$rmEN@7G?tLPs|;ck8l@NVM2Nk;%*n+hvHx>S>4_83RXVi*xB|%Q`fC@ zjM;JN3Rc)#uLRj&E-;?g1v`pH!8-j3g&T&GI?tP_x7bTtzD2Z{7L!z(7Sa#%zGkff zzVjYu%_;8E4a=5HO%_g7V#}>S$+L^0*r`8=%=Mm7*B*b!euN`bCw0)#u)gRVq)O`dmEoyA zk5(ikL$kjR&-8=%4i+OOR#+hKa4Q8}-Y)UN0QlWEgL1Yrzdz}ixgwGtcA8|eHz!ZsWz=xi5e*ssX!~`a-XGw- zSy~)988%a@7x(yWGvmH1SNzL*K=Q>hcz5*=C8)b1J0}v0Z)fAl>tWOx#lGj)yTp$- zsjz(Xo$6+>pP_#O}H&;J2`+1Q|_ZVY1dref-qGm^c@-+O9z(5A5p`gqeXn}W(ixSJ>!X}S|BJ4+d7ZZ^}2 zwlK(!d+&Pf#{=5qXNNoMCt`V(A7(6Up|#AAT30@f%KGTD-?J|y`ev{=rAc3nBI)nQ z&9w2J20YxmBD9Mv=NjZu%f1cEmqgp+RdB{u28&*rFcyaDdTaRg|6Y zhVWM&IG3hMNqu$cc5DDrcBtWM)04Iy(Jl-&KOh+#iHG1ze#^Ejj6XT6uQ`l@4w zaxHySJ4JU6{T3(A%%>MKe$Y{+)1>%%6Xn`5=R;jilFk}wW!h(Qm~O|A6+P%A`;l>i z9JMa*F7B;}qU3k$D54?-<+kU@@~Z;sJ2uns-UHEU9*?(CU2yrd5%gAlj2Ro7j~YURN6?n`37E;ehbu$nsB%XewQ3ZR?LK+zy8E1Vd`g4q@X*1tIGDy_Pj>RGd^u1$f5aUsmpQ{WZ(kDpH$ z_!vZxmGLC%HqRAJ{W8%~T!d*;?L^PKa5BE)C#e~i0;dy?h!=R6!`@7T?JFtx$1?Hi znlWj8aKekvpG57}I9#*VhQ^qAbhP6Ft<)cd(&g63&HPTG%U!UfvOi{-y%5tXA5*W= ze`NS@EGc~H3AH(j_~EAkhYjbcIYtjTPj#u`>p5EKIGy}1X0YCJhn`5L10iIbC;Ph*7jVizUPH5qqwJI*Eh+p4bfyUQlRhO zKq^moNEd!@p=V$J()6qXsCgbH1)lvjT;tr)tm$-ac_^L)OLX6^qpRk*MxnLs8qKdgMLXSfG3+?|;&ME&N@E%#Ze|E6LsRr9 zG{NF8qcF5}wXouO;3&`i4VFu2xLE~hbOZzMn2{NhON&m*AtkVz`1ADv^*5eDQ>t03 zE@h6_pD_6M%0`xo2AYiYsZBYSEGF-!0b5F`!EO>-cTB`I?yl+5eIQmECW{Epx}>_R zi20qer0KSWY8s1}zwnKu^+t<1BUjRrnqX#B$8pzM13ew0gp02XQL{1)YuB{XSJOgl zY_X%6lRweH(=9})hnWGOkEj*RH2c3MlB{BHi|S+yjmi`isB8SG%s1IYgQjxkEz=qwUueSVK6i;ljrku%XBk%Iwnbr58j((sE=5YI zz2*SvMnpjx3270Kkg@{_i0vFaQG!vFq6FUH8ZNcOK7?&Hlc%<{aaF zX@_wuMQ}&Kd(BW36)vF)?!D zP!;ca3(l!xtcWLG+zQ45bkNSU543B9njqu7DaL$Cq*XXY)trO;!R9g9eNxA^^)nC{ z#9iE@;t`*zh~vVUNc`r8>yLOw=4d#%X)YwCyoKbFUP{t=!9;tVP}d`ZXUo^p4sFgY zoNa@RTMV(u21s<6M4QA+_<2(l|832MTxlIe8A-FaNd62jj?}=(^AYHH#pr_a0$S>Nib?KnW3u^nSYz74 z4h&%kIuAsp&SYBo@0cn7z0mtImmT{Yj2TDY(9?~Ef~C{lu=>(1+AaQ=YC9w0CGmo$ zJm>s@W!Gp#OaoiF?EoFPF`qLRLTPvXIP?qh$>PIRwt4Lys=Ta-g^hDaHJfJ;h01W1 z-(douSVBD1kWM>=V(ybEY?eqG{zW&D%C5Pj|Ff5Q8}hx1Y830-_>;cH1@ry=IBbc# z!X77oqXQ3Palgd|*N5k@n{zzq+};cfN||HADKFgFCyV~8518Vf??lBC$W?nvG3#fd zI(rp?zY})J4$>}pajbpONLK<%v3}PZcF3t1)lF$A>C3_{hYNH(Oba>Bl%boW38zbW z%!khX5Lk|_eT1fN_v2;)cAe`T2ES2^4=6!EpWs&-AvZz=mM`EaoBQhv!%W;l#7)x zgJ+9R^S!BoO(KM5D9lpKB1+COT6AbtHazAG-N^~q`5+GWINQUo>L{s9^un5$N;>H<9`g196!lkx zT8yoboN13$3Tx=;ksR8UmI-62Shhc34XITD2p={B6C??TU4yX1JCnOb2B>rWA~rj| zgv@)&5a91Z*W-(*zTrAOZH$F~2tE@UcL??F(xaAHe`)-_GG4dO z#`v4N>8cr@5y~#6Ndr@;Z>%?Vl!nu@(~e}{Dvqo2KWI|kT6$KlL5`UT2-vuvVm2t^ zDL?a`v|UO+kA0&-sY^6g~0mF^F#I7UbM$VqQZ}l1RiXiZDw=`j!N=nU=!k z!BOtu4#DqW6CAYdBBR(Xg1ZZvsB-o#n%yyr^`CvoTKSA(+mCBb4Yym#J3|gl>vZs{ zU^%592;w{xPt>imM*Al|e;-~$7q|ar2@4FV_*4|DP+da?Cx)`K!jhQt-!ob$f04b_ zTEaGL3&2gmA(AfQcR+*V0u40NBEeXlrNr#U0anni-+?s{uW}$)DcKL-~pGV zBd}T}1vR7glH|-ReBUsKj%y8pN!dZVGt(Qb>7rD*I|PB(rLcZ(4o0thNmbw0k)CN9 zoV?WVwo#b=lNbtXkqX+M;*3%M@h9b|_1QVi*U@`EE z{&U#P&qgy?@Gg%CLjr{E-Jt07O6oi|1CO2>A=Ocb%Dr^(k= z76Fy-|S9uiXXo+3J6!Boc35JQCp`Rypv8lF`c1ug+Lh^FX zPr6Pirz%N!h7t7aj7g85UtT{|#$`SuDiY%k_cgZ#-`zCvQ)&ylEm6x72PWam*7DVERpC;0t-Ivh*S(7l)ps^GcEBPEAuwC-VgSzSZLd)iqD|K1;P z;f%1R5-d?0f#p6zEUD!qou2YZaAispdHs-pJ?D*1OWh?nyRiT>Wm91O-$#sTsjn+JI>KY;{~+GNDObQlws$mO47;P z>D6IJ!iUD7BX}lM`M$3xVjKj&vJl5(e(w|7&) zVgcsc@@HEA3X&?wMOo-2Ip+W^;LgZrd>8wuRG=xZ{0+tQzYO}J`A04eE0Jw z8Z(x};@I$UuyYZG_z#}Luh2nvoG4nY1*qqoPRk{{XOq5}zLb^V=|W%rxy;0q)14Il zunYoS1spQ#ryICHE2UZ}VP6j&75pKrnT8pBo>Bck7ZWZD;mPY7W?)xOal_J(FSC+P zmH5-#R1d-ZCKdEorm@r|LFnNAymg`-q>}89S+lv5c6mFU*vDOz{xhjaQIEY!&Lm0I zDk=`KL4#ouM&!<-EWW3AZ%Cnwo|~wtIS!XR7Se}(Mr7ZUhE*BE5&wfTQqQ{KWqJ{V zM+3WaXCGZS@|3csJa?L~A%Od;o#@?d?#OvI9CAF5;=|A1DX|wgOVb(4%s4NgHV2)% zU18#TmDG9%XxpD)yehp-(W9;4p?ZfR1I8lo<1Mn8wVcm#%BU%OBTaX_%^8K4>Bsin zbV(_Mp}&Z%RfbT)PEmX*9nBdooT0JH3-dmHVM4NHD0TeA!qdy}&hRH|our8`oQ?6! zH4=?qepCCJUiv9&iH3iRDZnELZ{9v4VI?y-O|(Fk`b5l3cECOEwwHXri_~UMLug?v zP4?qEmFB1PeSI+Pv8@rfcnF~)R-5h)PK50PIsD>X%;p2aaJnUlAN*bVlFwDMqX#JW zR2f_nMj@k6k&SRDAO+2bf+eccFlImqtM;X%lC!Zs^Er+2*l%pA+)LW|X$q?T`$V#3 zN61QGkM)~N1(kOQuPr?wXOIH>d8Md6qKMhK7Bocg}%E<|9}Qi>l__t9OM0KBWU#lCjl>Gc?i&kx?PSwV8p8CyqYvlS6HoZrtm zav{`H>sKb^CAxWs4K;Ussrk2N+$Qx0NIDU%W3&y12vUn=v|l|FC6y zt?1VhbHq;_pk>9cDJWzI<(luODYk=D!g<5}-!(~Tr34)j26An@25-;p=HRjzgDHN@&5;UybOJ>VNvHId}rm)zB9E66l!1+zoD?St} z^MG^3ikNYtojpn0&$|%ZmpLPoG%wr1@@F;e>HbS;#t&#yXCOw1NYcyi_NcDfOp1xm zD1M^^3-#}%jDbPtygYpv`l?f$dKPA^(SzMi8{Ac>r}eQ8RHAWSa4=yRUp-6Rgk-2GFDAh$DS|iXtDfniZWsRoa01SY&G%JqLt5k%JDFA zB9=A&A<@b|^ta^<_j$UYaArH@CtA~&dv44`c|4prqw8$pZ)#rTiz8CuIJul>?}Ua6 z`m^h)wMY~(m-wt;zY9vo8{l2j06T1vLF@USeP6c}PJC9p{pLuRZk9xH#&r5tp@HNe zJ~Q1YK|lYD6v#BCq9fi29v)L*X%dI`Mt7-e+*2yA7r;hhJuT1cq7UZpXkBMI-t=v! zW<^bSpOVMtmDfn}h$Q6}bkgZAe(&AhNjA>gDEq1wihfJ+nD!(xoIV+MR}VvqY64~n zE2Hb3EXxVpPAdCX(u?_O2vM2Ed1gbP>E}Sk3y;&Hbp`m@vVkO|W$2%Q>?iFbdEbZ5e`lM*G@_ctp3kHa+1#a)7|kL_ zTqY?=7kYkrCbWVK&~7+}3~G(=W4axL&dpClw1Mqj~d-e;9()4BU4sM7=S7ERPJG8UEbUI-CRz|bYqIAf&^(>ojJd&nr% zwQI6(+zHkG`z0-Ylz@4{!;ml!pkzB7O1jPhR6yZ*ha(r$@mqfWI>q3c>HI z7Aj|PC)M^@w7fW!4xJL^`=~U0eY=F^33K1e(LH zIUCshCyP61fJr5LDErYafs4#Ex+`IZ#AD;hLqZZl*X(dQHkd*UzLBJ^8mjni-^Rg= z&hz}KN<n+21Er3v=m2!KPN3X&~CVX1q8HgUh&II9L)esC^};Pcdb2WG<0 zK?1upe-NvBPB%}C#N(}9^q)>T+&!%*YWp54){|m-S7Pz?`#8QIxX1zmhGJ2`aEKZY z#laz+Y-@rvn(d>hY`80~?bP9WtzUw6kua=P+CztWOptNqIbG=eAuy{@!k1RgVX7TL zef>{JIl`2NdO1DJdZ|dE0giHbyVItba`qkGkpZm@1`&By@ zxcdw}Q_7)XwI4`}pBI7)W#--76Lf~!mdp~&lC@(xJ9aX3P20~W9qf3q4A$aE^8~V?duD6TR%l-RknYKQeC31I_Qvj~` zCXyH5ztl7ke(O)c2~(a|8Jy0B9C48{nPuU81pI>)j8=TEm?sx<9AjMPF_7G&W3M1cQra)BnCdEi}(G-_s zRR5?La@@gjNsROR`8?;bMm5cTnt?M;J4uy4`;`X!NW~W1d!dFtJ#8eWdQ#&>S;Q8# zkixSZNQ$Juz-JDt^epCH`7p}SQNWeMK{V1&1QGMY$#ZuqWMU+-@UJ^A43(tD$R_SH zv_W&l1)k648P@jSOq1{L^twmj=}uj=&yt|0+|&1PX8_h1^7nb5H!Ab%>CeG&sCDiX zOub-$b#KG*PQi{+=4_#b{9H#oU*Yo&UmZ8^Q`H>FGOrbAnfe-6XVa8;E1-(_>qrc;Ec zUuKg#cgMQAe`mfo2C4mz0d!Myuzs@3^OA1{T$AG~K;eVwNLd`*^@Ed==w zwP{Au5Ekr{Mvm+MkteIA#x5iLe}1xSsXY$XJJJ3di|J{ZGPOQPqN~1u^uGk&6=Ud| z%sn&f3y>}Mkiv|3@91zQXZY-+JJu5@ru-Ib6XI;Wj}oZM$|cbORorAxNz2z0`)8?; zo?9}Sy?im@3q!0$Iuz3ysmaa}o!k;T(#zPB~nN}Z{$R~*J0dA}y= z8Hq`ybFTx>SZo%jbG^Jrb1xE+D!lW$%o`So1o^8%Q0pIxH7_pFl_SKceC;L&s>iS?Do+p+^TTGk0-q6$}hNFA>Ha4>*g;F2= ze-4)f`mlorAaN^o5G*3_twSm^SwTEj4RR4u$J{?r6xndqcGFAJ^|g~LJ~oY|K{=aMgzjD!t# zzI{M06`WOW7=?^nEqq>N&2t?CYwgk_d4mU6p=nTl!a!HjQ_B<(JW0 z{+zbHvy6uRxwcgCB?IWDY7V0pN!pdU9{f!5M|9C0k@iaEZ}brp4@Svzk82TWC~&S zf6B0wi=v31R&eL%Zd>_wCVN~Mvbt6DJIabOc?a)yNHNX`vT&s=op%wFAQ=*bnO?)OhoT%1Ntqc3HukLXfaTl~Lz~jLciIRcZw}J1NOSn@yumYu>NISc zC#G%Jr&8tz+l7(1_(uT$ExH(2n#z8C$wGTe6>Ev}!>J8&B;q`T?bggfJjbC8Tf(2E zNiW#_$NKy|7=tUbQt9TrI(o^w*lRttQLrEoZ3z=#x6fSQ%sY@Ji8?4YT0;+WZ#V~s zzNP~@s=QBdigtV?3^Clm^ru*mx^=FY->f*9Xc=+C{gI+~+PyYii%D=G+!#fs?C4G1evv|I{S0>K^Cd zcyO+A_!$zGY@|7%v79GnK`}bKXE&33Uz0u1r1Y7_rl%urw+uZ$^?+6y=fm>Xb0*&E z2KB4lm;FkU_3oI&EE4Y1$HS5MAnc9PoCVVVI@3u;xs9??j?u>ISQfxp5%QAZh?^kC z9mW6Hqld9v?c!W!wkGGc5N#(a_MY@Y)>1y|Lw$hk?Zx;-bT1^Rl-z&oH zJDONmS4VHNPtfP9BFMEpNlokW@Hj4-MrV(M_!beQ=Ne$4)H-U4FM{S0;KjZpG(SiZ zLknNB#d-{5GPx&!@eJ!b0ZxZ}V>N9Sh`(G*^%_2Kvk}EE83&x{SVpHg!!(X_2YX@z z=R;L&rJJ$XL4Ip zsIwv-O&*2l>e)yePblH@LJ#EgT-2+BYiXzPVS!}sTtSTgTb3k{!~02j(EpH&6V^Xy z>8Ic1(LRj1EP5z-;wegpFLbdDKY6Ys@ge=HD-;+HQA6cjPXv}LBgRz4DKm|;Hh&gC ziRT8ZxMOfxdOjAu_rt&Hqul#jg36P;`%ongc@00}6AtcdUqOrhR?u%j6s(WrVFB+> z?iA(Brw{dHB@zjtM^*?sIEG&Ld?Ww)N*H`02Hf$dCukroH3hh|je^LY1{#%C&Wv2& z(0uO3C_8$P_QiSA6oVuTNGLM@?l^u|DHNEk84br>GteJWf;sbLF`jd4#(bNA8nsY5 z*CK{JyQ^qW+>`T_J#cdKa?;@)Y;Awe8;p~u$fx|CA~TybR&q|oIRSdx`98GL26HcR ze$6*WGT}~n?HV0i9wU!8-qWGW-DQV)9$JIvfRrEeK6iE*=e<|4)-ri!@NXQxAP^z1 zj#F-K1yc{#$4X@dIw2;CN>RS|;Pa|gkrJ4gsgFCBjcke7Vd~=fcC%nlTyva)hQ+Q} zci;m}R@z2i8u&fjkb7J-X5j4b0z`i>Mcp=Cxbfa*GIt_ap8rnb3bAnf7y*;i3p8G= z2nTZcp0wEjZ@9zfq_8Udc+TV5rgkRj&pYFXZqs(_Q`GTm9VKqwBM4u*l?JXvV*L;Y z{`~A?5r=x1nyLuaZsy)?t3q~z?}CmNi*kQd9M*PBLM~^dbn+aE>Kr-LRXw3u{PStx zyR}={VPw$hfVIUwTpyl<9TQaXOyMoFnLo@~Wa~S!9ASiWUwH4p@fh_4hOlv8HTe9> zg8a75#Kp#ov~RWyT=ThG=ZOnci;CJhlEo4!%iJr`!2vhGVaO2*h zcWa`sYoMtEk?ivB=ap;d?|huv(tV;Mr1EMbi@)A_zI9A|gNkWfVk zD&CL6imVtxQY6o~q%xK=LjsRiRa1ZRAh{c@r<}kIWM#o~xiKX)sAz@A4pTZ2y`8<6 zXYBj5)6Uzw18H5X6}pE%zeYk- zayoSTHpQ>TwSAzR?5EAMmU#pX+6;ZKus= z?Md32=lCvgUW!2tZJ#HMvxBw>n3PJ|FX~8qP701J?xLn_XAd^Rd@N^Ai?mi;8XcY+CC&iev(~Qc*%dmW& zEfnQGv8x@q2wuRQULKYx&5p;Iv_yQkdym4hwvgUFAAI`wiOh~=qA2qfHA#dc;fny@ zUtguk39Cso&ykM2E#|%J=ai`Wk(Q2GPpkNBNI1EOipz|tNAo|r%s6l2YcRq}57VMC zt7+&hb-Wb!LTvDGeD>?0gKL_oXjUYxcj=?N%j;=J^jn(O^N{>ZoT)xL3mv&`aB~Qy zmwea!yjL3Up6ar>`z*=6W;XqtstI@9@pwGMlCJtI;6vUc=J>!3>#X-Ohp9fWdLe=9 zia*J0r#TiZP=vePRL<7;K(3qoS)HsYEx0QQ>#pG#IXMciyce(;Lo=v0ZY_B}3PWeL zGo9xQIJYKogu5$YWw0sb4++JmIVw10Z^(ZR#q>>M3tJ>J5~6mlC{8!Umo{5?q?oZ! zvJPYyu7n}hrkv|Dk?J^4KcFp6@Ja47i^v?!G*(Bz&wM0qEicFJfk@2N|3hY@rr`Fp zlk5$@CqEuy4z15J=&9Ai@xpHucX>d1bnt+pP z)A(FF1UFhgP(#22`mmSJ`yX*ecmG^Am+dioB!$d@?OX?D#Y4f8CX4O6fG!J#+g4a1qrrR(Ap%8fH8_xTW1cVPshpS zC=Uk8xjVPnYhk;)FQztsq{S1C(U>K!a0u>nj!q7Q>P;2Wb>>VHLmf<>7zn3zs`QX| zgijfC(`EO$RJNv_yxw1+?hg~;P$-4H`P^Ud&y4nFOu~H2jr2Fq9vL(K(IhVo>?$*a z#3KW^|Ht#DPMk$k!ghp zBGfJ+#B+X9$Y{5LuyPf>T$Lhtag)3Hl-AImf*j6~e?~hp0&th_Jw>-yvNwF+&$kcQ z9jGKI_1(i-N=KmKz8vzOUt|m3^G>v361TK7>tO=y+sH84#}Ow9bS;}n)mynAw($s^^SMbEJ_kYRiyY@)^0NWY;v0t+(n9NYmN`b7 zQr{Lp=fW}ea@I$7=TQq8AD)hfE0y3iBZcZjGPnwuNpo(#PreeJ~m2FelDQL28cFw;n>O5~=IE9`bipN^H z0{NqhDNor4n>KfoL3uP}_y49GJwDG;~KJWi^(-RdO@MtzJzB7w4eICW$%MyESU_5I zhI=We0BZ*~sX zMTR)1x0CtRP2pMAIn-KN3g0cuX$-#~C!M=SQ${bPkAeIS)~$~vPe$SORwG)|seJNt2S1%ND2C-!;qm3d*>Hln|BQ+1mt}ybUwpW2QoX_H;1F>G) z6rY`n=*c8I=eElctWAsaykE`0YY{X2oivZe4)MXc6DtJcM(v|>i^k$xfh~#-#Nu9x zCC2v@p!?!UHub;)`kq!#9`eqx-}i&k8pqLc=Tto1bB_&P7Nh**GqGJS0!|$k*!Lgj zuG?3!4Pw(#yYoIZymn@f7BPq{RKdCceVS$6Ps4J?BY$%!<*klJ&I1K#y%~euLdr~M zmpfc{Wx^p*i@T9S==o%0tR39KyR8#Y&G(5~q)JQ0kCXDA4r(m2KT{DR;ZfE8$t*oZXA2Mk>1eYtFFtEe{i=N2i_Gq3hxt2#)dB!y8 z&{>+NJD+?@KhSH-eCWkH(oQx4t>qSW)-cpLsE)qMI&L(vqq1;W=xHFDtlw4oY=*JTvr5lb5 zLPO!{VF;VC(fFQtn9h9nCI16O5aT_LT5l6f+AOmTGeKA==5RMi>4N?2Vze`DC_Ycwn*MB=jWZr; zm?Kvy4Gj(^)SK==!5{9^FgA=TivzK8)g&?%{9*;BB4lZ`fz~CI;9yHFRX&wLdcr1p z$C=q<_)hk*u?;H-t)|KY5~z2$OMi4YuV8%z6>Zo|*OEo>WU~}X;>8id^JNk~`B*nn z32XU0TH?bb9BV4){Hl2PkGMwHdC%K!T>xh2)liYlb28>VexZfjudR^=$=YPvFEj*G zf9@g6qbum9=V^Y~b(EzDzBYf1sSA28Cds;Xn$;&gjlh0d@=bB7~X zawPAA`D4CCHsrRB#MyiO^d4bU(d>x*p~J|{sK@!0lPc=2yybjfMPyu+N6U64-uD-R z(r66?#7NQ|JyX2RFNI9fVmfqvI{SWHz|Nh|N5$;R^hrUTTpRzWX zDMWSA?LI&76f1gmkA>u#3~bO_NPl$>(1*JsRIu2b z!tf6c>CF*% z|dB$ibka4xJlPoHW_XjNk!)kTj(bYB;XageY*g~@3v=REXpSB+1 zS+RBZsph&f{(CY=whLXcd-x@OUn;@tZ4MNu6iVgl+o)tyATfg;Qko}d6zz z$yC~Fr3a-&cyeQ2#k5=hz+_H7&&u3&HiAC zGpC=?wd*m+C^Mq0gknfN*g!S;S7?_@AwKG;pi94*R?OuNujiBDqB?{gwY5;zMJak^ ze2VHLSJUg!|RfX-;If5>^WCUySuG=D2^st-s!}T`zZY$$Y>loaPkmsL+ z8Pz?KKpJNscouD^2cc8&qK1FY9mkxfUl4*8zpJS7{KcZ9oos%37^W-nT|w<8vfq4= zdQ8n}PWlVF((r?J`Wi@29HADxl>b5%a*#L#?P6?@V%?1 zFF#XQMA4>Y+*SB(Dnbtlqt7K9&0n4iI_32+@PTuG-7GL~`az<2TP(*^ED1Qt=R2I6 z>{$Q}-v3*${jRe{ku|z_{=22CoBEBn2o~3^CD!DKB6m}WbAQiE2_O7-R2tKrr{cqF zYgAOspp=}c$m!BT^^gpx+~5wR>|xj(>W;|qK+yANG_jep)wN;}-D3pXzygTBDaMNK z95g0IVN#OV_}7l7sp}U z#|P9I$lrg9Zqty1+E_aL2^)W#`#<~*N!fKGwcO9b1+!%4v?3j&j^?1%#sv3ycKOOj z3%I;qOewxjbSx){?*xxi#uO*K>zqRZH7%SFs8es;9m=^>2Akdj94T5xGakE9gOWYG zoZisA6iv$g-brcC`UEEBnsn>77u+NM&|{wEaCX?hw6DH%-df{^?dSSvAr+#5e?OP8 zEmWcrgv6sRB)?Y`m$<|6p|3g<=DhV21}AB=t1p!KTy$NoB_d)*z*$N_gS$Jq2UHYq zwkPm2r8thIf2RvGE>K}2cdm-?9yq;XnX@i%A3`3+@c-7~uO)Q-PXJUnE5(}6_)S{X zITK(T={k+0Rr>Oz8pGXa>74J(`#zm140%g6Np{>Y=hMHol2ZF*1pOR}!dbBtF;9j> z-hFbOwfQei5D8;j=LFLZWqA}1AIr{0rPIfx7{TQwlBlj1rjz1%?D~!q^xoSZ>2*=) z9OZ!w4`({A>5TWi%`{xwjS~2GIWMb@7TH@lkE)!2J~=jraO*VpXSzAzgsvaWx9~vkrZR*-=UK{Y z5wJ~-qk`8pv~R(4GG89e`|4pRskeYkayxB!rii2`>bRB8urDGJ8$R*-)HyHAR>{I{ zZ~jo^`{%7mO6Sue3BH%o(MRITS2TC$4E)oLfxt@#pAQ)zf9y>`dw3C=AAh2{?PIWRh$3B5 zJ?>;(8i39|ZCnsH1oiQ|@e@_N;ya~w;U}y)p@DsUDh$)&ZoyvOuUTj^1na&{!tn-W zTr4X@SehMM+TTaJ)dT1X=Z3w0AWuT(QkWx|1L0*x^l6PJdS))6lj|9-s%X&FKRwJh zK!J(>*+BOvb+K3bPtjysKRUZV2=`Bp#?AIo7-_ym@anz@7VaI*Cdmu%=HzXG?c~qo zY4DN8@^kXw@?q%ll7>v9Cmk<-!Ftn9Gszjps4~GF312_Z0Z(~M_i~2ofgw=MZ)W3q z+;GL^I4yACb4+h3OxDrCmp?bDLZp|{|4YD^iIOyDc?;>S8^?FR6EXjoF{DyzRci#5+2U+_8M}Tj z8l@-uSq56RCBKLu@gBX2u2~>-{vmc_)VL?~hPR%zP%TRDhmOU36vGb80E~ zhW7Ui{QB$x^U`1J`=kuqUF42$da7{WD1y^h?~+e!3Cf*Z5fxF48=m8l)+7&4?)58H z@PO!d8wBzpTkH4ZB>K)9XMgG8;lK*PtfETFo$Y|%x+X|=U=T9peVK!!5L&@|(gSvo z&`QKix5sRIa0&(`-jN|z39fxAM8>8@5-vT#rZ=46=OH}|?vR4UA01?MDPViTUkdTz zvwm6rcbi{HaSv>e(ojWPxo1S#DjVy)cop;X2p{DP0ts z#Pi(oOjv&1#++=7Fs0}LJs!t*;*Z9`Ryzic)#JbnJ#qQ`3bw9l8X^u|p<7GNP_|$! zX67VNxZgV_-4#K1uBFlDt6!<}Xc)v|zw_R9Kh@9aAP2rnDd*i3=JmoU`X%>sj0r=( z?mOz22R1yhz>aKFWc_?YJvyb(TD+Ays*Le>u03s5aUij_SeRS*;nvkc+-a+zU)s`m z9lV|z28v-Fa*n*EVkm~cXWtJuAl>@!G|h+MRy&~P62DvjkE64Ws(S0XFeL~AN|z!bh)9Fv*=tH8NOwp{ zhm=SOCRiBQ0d`^HRY9?_#R3Jvz`#PW8xh|9eSbNwV>s^MaL)Pdz1E!1GpB+b-|~ZO zniUbs&)@b&U+HZ4O%hpsm}$6Pp(mV;xU;#5j(BU*1lv?>J+YeEau1AHcO%IjSViV$ z(=fBAnpP^S(`*R?xMwe5EJ>Qg^17+r<1R_KjKit4GW6?)S%{ zr%EuR&k9MLspr;ig+q^m-4m&9{10f%Wv;xqP5?>f2O_r~QDWyn0Php>l*c=m;N z3(H>dvVAFC6njDYIosm#pn$TJ>PRH%0X6h$V#)q5>>BUAt0r0C`X@e%Yv?2~`Sa|@ zIblSYrL$Ro_maeNC%QxnX(`AE^XdznV)bU02B;Csjg zDwW$x8LFHqCT2jSh5%#UgVl$PpXrquM_FLOvZ{h!C zOs#Rn#|@2(%t2OJ0(*DYpvI~Na_0BNLPlI{nHTtU}$Hqh|!xn*v7CuThTqJOG(lILf zn}B{kSC!)4LH+h06sjGMk9ih2xd)tea)=ooD@3e`1Db9}@?MA&He9xYC-+!5_3@rT z%`v7lax8>bgb|IYp}OG@Xmd^(IiBKu{J2I|A*O`ro&z-UwJjb5e<2a+sT9z&mTdLs zu-fb)f*n6nX@mS+w&&w98n~{Dgny>U4U@%??f+=syv?MfcbNQc1|eHs9}Q=0a3>|t zq2_cZ6z{Gj%~KU*#rvC6dlm3|c>vrCk5EXw2mXc5W0JQ|+b1+wqiaDmwFJGTS?c_} zbz&CQ{Sk*;UIjZ`UW#O%Beu4bVs;a{S^LF2bi7O8yG+$_3l7qUL z9!2(;;8xQeQjlE7a&FsE_g!7oRZhp(L^*gGyku9$k7es#YS3!mC}`AjW`3g`nwTb} zT6Z#!Y4hpXmpHoiO^v>)Z514zE5dhX1z2Yqgo;BxoF!|As`C#i^jSMA+gd>>9}J+# z_mfu-PJ`0gT{Q8yC?48eq^v{B=(?K{ybo|U)FEf?Gt#EPO@Xwl$On3(EU<1X=hRu; zB)#2lNGsJ+H@`dEZXO6GZPIC7Y-|6svoWrH5Fm||1b4O)iG@s+VRrbdZX#>1iqsL5J;^?dW zbnNCGLGZixA%pu&xi|sB4Ls*%E(6zz0|KE4LX8bSW6ALRQKk>(B+Fpk_5aw`OX*m0 zSeye{Qy?)R3NH&(s5Y&Y?{~J)lwv8CoF$C%-G5o2Llx!RO`wpHS*%=OkKvcHV6&Hy z;Nyn{q4k2-wNeOM_J}m9K9IShJC2_CO-6&U81eBR-SIEM&;K0I_t6fU&N!j!MF`t< zR1O)c45yyBaUbFv`j9*ojm0V0V{Z>r%SgO#@1peYzghas9$No*5oLzFBB8`On!3D} zW)B;V6&W_9TG37o*UKrOdlpPq-lyLWUei#UMeOa-+3Z%K7(SP0;rSyw)LRsyG*lC* zC4A3n6;0xzZJoOcZL%vJmzonP+^ivtjNzlv=3`FD>4SOV~zt zr1p~E#cd9USqq~_`Shk&pZBG6aAeRLmqvR*;ae8XoG3-VaxT%J@pqQKY7~9lxPyGF z{Gr6VnsJ&ZsA8Hu!q$YsVx$%J#4V>&#gm~oLmdA-RmbFKi`fW=Z*;SJJUTstFjANI zL*FYPs>}`%3ChT@d`PD?50YBNSJwW|2`l;T+UIl{KIrotq;NFkqODoUA7L8x>OEa7 zA5NLOIfpMsmAsy))56rtq}J9zrjNy7${An7UAU)YSqM_x=CYDoa>#4HPM5j+Q;0i? zwj2%@l-g~eD!&)xJ|qm)yLG7j=X=)U_mD1KeoQiUmKc6c7Wedyvbon*Q=GRPf&-_} zYoll~;60Wx^$dq4g7Dzm9I72*gNM^c!}sej5~ES*=Knn~PXZs`rXxIwcjhKGaITvc z6_1%u^WXN+kPC&Fq@o1P3Jo+-FnpiSLfnl$x-1xE0fpQT_%4LKj~k1{59hMKLXCV! zBP&Q#H()9|t*GBU2R-4(Ny17ATj?I%id{fX8+7R1IY*=)oq%$l{hj9im3@g^Kz}A` zAoDxtZAl1`W_uK@T_a#VBNICUZwM?x2OWMUOs$FLyY3Mb?!p;qo)<~XTNJ~N zYBCefYB-)g9;Yrlv!KKfXuWKpPzM7j%qbSce@&s?^UZKhFOizxKO)K(AvhNw!F%uH`>EX6%JSrzKH;HW@ARhw~hcE*4*! zf){V(uxnur$s3r_V1)`Irk7!MrZd~|K7~ea-A$!&Pg(d1cLaHcQgGcns=49?ecq)c z-L0%#SsbdR>a=S?4n;`M6BJw#MeFTs^li>Z&Js^#3*D!}72RZFQcDgMC+N^`K9}3- zij?M+6gt3Xxtgcg`PapGBmSNl{WU?^mRLO4@|ixLK1I>v(&66b3i(IL_8Q@ zh&_$fWcW=J`!WJ4yk{CR&#WX|9Y(XbZ|>UiC8XL`h!vZouuf(&#&3{ATzNE2nV5yv zUWP&gNnoEIYx-bD!)|vln|%&g7c7d^R-6GfN*uEOLV|o>X;Q1Ir8T|4T!|>0@i_MX zd9D{l-)YMuXN=;x7R8QPq#Bq8ncL^6d;BkY9nZVGdB(8yUP12<^pSN&0}cCppYG2n zB?%EX>W`7d1D^ja;OD1`fH0mf5XH6cHn_6v6m>f4qCC%-Jia<&!n_B}bG{$_T)$he zs_h{SyqW^v%khvF_@Svk4EnxGq_ij*<3D{6*hkioX=4|4FP9a>WjUkCDG3v98!cJf3l?sO|5D{BPvIx7!<)iezBJ|l=>wGu*d!tg& zU+l+<&v3rh+61(0tY*~-_em||FfA!4#yMj{=x%>N{fBq5xMVe?FExboSs{#9+(Xmf zyV7ya$Eo6(u6`yD??q~Y$CHMks$D=y&%U#tU$a>nzq9CF9EE2wMr_Q%r{uAS&uN}3 z!0CGlU1xPP{F^0-$n2v-IzY_ecFyP%!_ymU*sZqV=rq_(*ZH&hi!;yD@wtWf!aQh) z#Nv4OQtq!cM6>i57Vo2lXDdpvcEKukcBU-+OnBC5a{!V~KW271Gw|)XEz15@QATtL z4XB4=cJB|`9i70eg}9?JLJJiI{d77$7`Hvwvv1#p;8wMcVnswT@8EFMTG+z2`VrmQ z!P)fAoSBm=CfKv>Ih)#KjWxaNsA`fTDJqZPb4peC_Qa#9Sc2xBx=H)q2;l_JrEJgA zL`}+7vJ#rc9qrPP9dVaLmgpg7p%T_cI2PRpY(YTIx z^nr6-^dE5sUtbHAND0&B*FPz|t(IOs9ftE|x9AuD47GNYVcydrWORQ!wN)!py-p7W za3<9iAT*XO5>s|2|Onaew^GEkn7u1@&kQBlls_^t{{? zL+bdxp84U*5+6i{sc?q__q+5BL$$U%{XHg5=W8#}n5cFZhIqtd$xhqbe z3?7rD`YDGzrjF}5Q8;3?l4|z2!6WlG9gXW1{HT^Bb7L*+tC)nfqMR##A`*A{XJ9Qq z|4gmR$J4=wf(tyK^U1n{?l@V%?d@8cb-n=7o&K1$;3u7J^@P=adp!BU+5Qhyan1FC zKx>v0rED<5ANvk^Tm6k4UVM|Tl=jk6Sx5S|x{_>7gP60Q0?Iv=@F=aEUO4s(s?RyV zf7NqVI%X|d@3}%hEe?`IgOA|zj5VZtg=hRNJq$O){X?U1`qgXtwzQLtOPI~vWro7&k2>u$aKxf21*E9GVQ0tj46BYa zW@X(M2+rxlTGt25U#amKiwWc>{$sCOE7`|iyGTb#0~s_bzmQavBPrY610~;w38L1$W69CCXuYK*%tkM!$-lMm{dXlbx5U%bZf{KB zyy>D-6Ob`q3ziExL}99#H85OM4^85Ox=-03>Hk#T^Ew0&vysx;o)+)Qo0+(T9y ziq>(%k>oB9%j#@c9gs%&zd$H|kRwf#Y=;2XB;+J*q?cc{(e+0daeYcyzhRT0V1zs* zyWL^ys*F14E-JjK0Ed%i_!7I6>_!K$=z;qb=3Tp3(k zLK+A52I8}U1VZj#puipGEZ;;3Q|G#3#QFEMqs$cYjTh*fVIjJWxTj~68YX?@GodYf zUz$}(y%qX`(IT89I-Wo8{)>elKXdq*q@wccJy!biE!E~~fw))G@6UXeAsa`<`sIS} z|8|myc_2d6Qpr?qC~BR*3ho_EWr{~t;V?%RyZ1OjMo9^?53Aw3@J#&CdQY3r3}-EF zK4@w!VMi&Ge(pcaPVpJ)(r2@o56?`szfFUC;0+2+u%jOX3Ya%#0j>F#fScU;b(=pI z6~zV)=OIItc^z1(2LD z3Fx?y>QpU4zA5(zR3u?$T{D^Vev+Cf0R}<=xb^Hbwevl6*o0e5 zNznv{XFMi*0q2U}jUpF*k8z*0Q?NDn9OX04Y5SoH=U;rUveXtiH{7sKDHw%f8Hl(2 zL%K1>h#ael>HGaDv%wFmPnn{5OehAV>=Ac0mv@_H;kEu%x>qPf_Mw{O*Aav^?s$2t zevqABnhw{`&X{)MiNk?eo@_@Oppq^}VflO);I@nAzkf)bmSdotu$+ef;_uyi{C!jX zlr;Pc*-NwSEX;L0g7|q$GQ@;l^Lggcz7rH9W`{GJr5Y`Jh>X?*BVD4Tv zWe7Ce$nW%Ckh*(L@Z#=sa&HgA;O_6VRkj$RYMVG~wVFEYMqx!B&o4ZWr2{SDJQwT% zoo7#I-I&ufB7GL$!zf_rkq2z3eGyFiR|$|L4Anc6P#au`f+0KEoY~>Hv;Cr=vEu?; zz~?|Aqnt5CG)gciyOiZL-k{2L-2D^YNUs8t@wN6ov)ajh=nwgOAoM@dxUhg?TR&6p zb4ggYG;xo3BwJHqf^vfybaO4=hqOB3q|ONB40XVD`)qWnX5vbJ3q4yDjGk-5V4E68 zyOLy3yhjW-IDa-a<{xc297oNk0@;~|MR4D1gQTQg)G;PS@bhT_iPrE;Mzx(_*Aqs1 zw$X6o{cydcZRD+coz}SeL;MW?E=rt7<_1-QDo1-N+o z(SZpVVYQZJ?R!rxhQT;Jtc%_%SfS0Jg0%c?xEEXu;1kh#`96pA4O6k( zj`QaxnZjp(1Su=oA;eNZvL}y__4a$z;{SuB8+?#`cqYELcw)9u4hrY;ownFS7Ja^( zx@|aPTUC*{TUF8fmM&7uFJ_OGd3WmND*9p`30>YTRdt#``{elBM!OVMk^d*dQ%H!6s{MDl|M(RHM`!EC!;te$WQUPAYekZ5? zNqBy4Dqtl_6K9Cv&BGtmWt2qnNp{pTQiyZa-6{ShpU>=TV?$kzJ1ms^MQN$pg3)}3 zp>*61LkmLa;O?c==-0vquS`ODWEo-CLweJphH36TP^##od&lfCPnvgzPkbbiN3+l} zF@oY6_L5pVzWg5aGMqrQQLU!JSyJeKU?A1-DBFDy$%IC(xa8Emn?99XB zSLRsx`Y>7lm<0FzLFj3+gh`+})N*FQV3j(C57y8@yFqfu-_DYLOQ7!D3Dz-xB3iN% zh^23$CnENUsm?>yXMPs!R)I!dIR4~DL*fYkJT%H9&}{_7_wszn7<+KKJ+bS5=wQuJ z!NXybF~ns9^%YCw#>eT{^VyO;9(jr-p9x2_ng%`(JfjgCEXeah8fSPWL28c^`FM2G zWv65qbv$9Z%S~`;TL2_ao@61xcj>#M zO0a_X(@DQ!GI7``hEFPFPwjFtm}g}q=MEDMR+4^+rIeon@t(eyxw z>U|S1%~_1)&zJxa{_MY6DMNh`##qW37Rn>M@%?cMW`q@UX4VXRU8aqpL7ZniqYRpl ze$i*sUOLIM5qoGXcN%Rb`MKH{*cpm;^L=cTnj*Dy?qlaRNnlmsNpjFtf!CHk8rXP` z{TQZ*lcGShL?Dij=3JH42^gK#Oy~G+;Bl@o0vdVlIrIZXZu>@lc|)-~kS&dT(MAKu) z*W?vB&mWGkiYqiMPLk|9$70M_b$a&bCnY|ff#+=^D0_U76@LsyT6;7l=Xvt;kQTmv zN=NQ41?-giL-#86@J>Ap6`mU@%I!4$I~GZ5&y|tdJRRO0?NqY=H%-Wo!3&8#l4(-G z0#i4XH7RoDg%CVW*9wfn-m;LJrjT_o#S_ktY>MT%nSddr>K=u(ZAsXCHETXBE5|q?j}>*SyAk54T0V>{=GIZlQUK{ zuxQIZx*7V4oJ6hhD!>)P(+BCL-$T6%()G5JL$h=y40o3^MV_+NOiwCra$5tuOEl0;>u&D@6UNZzfO~{-W2#K zdSIVEpEdhzq@Kj7cv(LR0|Rvq6^gU)eupJmnp3&wZU{QB-XV$B!(_#uLv2R1ngB0q!HJ|maYE11$BMJN?$P^8`v`VqRDwD))ei$(BG$rW2q zild;ek?K1~p*ORD2KX$#UG5^ATP=$F`_Cp(d8K3EN6P-?+!J<~vd?%yp5LGSXS%Z{b2pr< zct{=rL2ym?V>-v5&<7zK2R1I<;jE|_8e-&dK}H^ppMDCC@}6LX=K!6$&-qJtr^4)> z3;CW~M~=%h;d{5A%-?Z;!uQ)$w@eXrE{SA6(He<)`KUAY#?PCY)OQw;`;>um58kpp zHH`9Cr{U`OaS)4;$I}ZJ*`_^9NSw})US$|vI?7q(OTJP4J4ICaEMfn+FE@J19ctSC zm_EkEqomIk%M@1FU-;;SYkkJBasbBJ7=rrW(0<#i6#82Uhc!7%WzSIj+vrQ;rAGMR z9!Lw8xuKuu`QAqoj;$BsyUleZvEv$bxiv5iK5N?0#%C}}(RdJT3%7?cQ1LHei6w40 zV|Io-&)%j7zd6@!HuteudB8tK5#x@$qZyN=kkZ#r$NMg@<||gX>M03Vp090kO+;vk zAtG!GP-ftYhT0??+F=eeb44QCy({gu+&aq71cS| zJz1Xy=6ga;WfW&ZRM5t|pXk#j75MG#rC+MgX|>u-7Pz39gd&E(;UZ_Hg!IrI<7oOU zN;s1#f`9yHG!C)EcS$*{?d&G^y;W@F<~P(Dq>q~qICmy&6G`PH6B+cUn61$cYu47;%_jKW=)kbk{8o&0c)PIZr@zWbhN+ii_(T%zCSFSBcvJ}hkI zRC4L^!0{8E6e~6Zvo}6qn$Axsq_LAe^Sx-`L{*%SjYipf{(irGlLRid*f!4=OLk92 z;2Z(&-d;{UmH!0wHN7+1AA_JgI{uo;n>CyGOvOSqVPjHJsxj&e%y)q&c}DdPD`YIq-xvO_Ri7 zo(ppIv%*U`1q|oCpyT}s@R4$a$jj+y7nwu4N?NQbw^Oi@^WB}Nw$Q<)Z|K+Z<@Bl~ z5Wo1o@UdASu6ah_#j8Rx8KVT%Z_aGMp@~^NnnQ~{wCIuZ47?0{Ps3!?VCo-2I=gn# z!gp0Hi1R!&i^ia@N*+h}Jnu8loXEZ0&2I9uU!?gAOm%5s`}4K%(2~)HoBFu)iL=mj zZ!p7}(`@TK6*xPtpaVmVF>6OChWhy9gUcE^CNB;q$by@fBn)`IHZ);2bt?_Ux;qCb z@yI+<*WkVP>*AEx>WI{AHw?Vz=``CTGW+OHc@S}(j#YeKw|3u5w6yG|QIk{H_26in5SmZH zeREhf@AzgWkK!ze5=@#^h~JI6PZy2Hwj+wE|szb)>bc|zfzvC-pMF@>u8)e z+Dc0o&7-}(m88lzzhg0XlS>q@EeVV8@mTI7L7!x&VfIHI^u#Zr zvD^2usQdD0U7iFL#}jmBt2>I!U$XzcuVtS<)R6jrDp)^G4K>$!7n*yte_ZFh-%#!c z$!F*mF65q)i_|S<;r-Av zcI4muLcr%W7@@={r!I){<)iSXKZ3h_Q{Rw#Q-H5T1>(aD?`Qh4wN{iBMqE zkm_=j4qW5B(%YP2;m}8;Wqy$E-Yxcvb{(bH^N%p8Y#R(pjYf;}cM1#6q;5$Uta|;0 z49xB>(R77UoQ!sSID>f?RAjLGRqW`rQ=a7l=``vN&_nraoWBg!e^P0&! zEQx>S+(>TOP`oQyPmU|(D5~EalGjr)CXstDWDD5QjRn}%J02mo<4NqJ4}GiqMmhCA zsBP|bN~)O*NzBEu zH7z`6^p})73b2Ix92Wlw!}sV0@;_Xne&(8ke_c&%a1u@3D2NUOPtId99EQ@ z!@XyHmM|{h8QNtssCf085G+hFC{ z5CjuxocRsFhmJL&T z&hAA`qmknyFkM?5=MVC}byzo5^BHskpLMq+Ory!$?o#n`-hc4eCFnTe&T?bCp~<-w zKI^%I=&2(8S=2ywd!vwRY)F^fXHr3Z7y=##!JHHGr0PlqJ~M6E;v@V%`kZsw|64+3 z-hbKRf2!DC{+Uh>Rm5s@Nj$81Ny3#g@n3>E&Ajk}vKO4A<6c21$eIr3tPf4cSd43X z&d(o1`QI&}No-SW4G3L(+ry`rXuZRs|2m z&G56N5V|8L;uG)M_;@E_n#E?CZEC@K1D?{rq#k0NgLdZDa&n&@4!z3Pbm3VXa;IEi zEBe<_Jwy<$`kt)B1$Z;&9{XUIfuf~7tCJahoD76 zuxUGI?0kAk!;Z^wSE~wl%eRwbauCS`@LbD9&dv3&BeSG#CNZ9Ko2RMb`z2%E8(vRd z^)qm5;Rx6s7{Q-sq8Ps=7|$0L!f%)%23$R%9G`;EUp7%mjw=ptwMTZF37xhoM*HpA ztR+Yhp1l8k%~%pr+uNwXI29V(Mqzq*4AYV+LtgSX^6jr-7nDL#fBz5jyzPnj!6NSd zl*HTWKh)_o8iox|=*(X3N6jF736Ex{FAY%93K4u>6$g*lOmwYRq;o^LOY7NMI%(EU zX+=VCQRCcKpDyw@PDF)SBuHZ#R9tt_Co^&CNK%K!Lq3NR(#6!q45Yu^OE(0f$Wdz} z*Pi|KN>m!@gC)F!wvfi|T0(CtMW8n|4ZWP-TlbFhtyQF;ldOPgQ!}CB%((&=WNC~; z82oB8ko;~x%d(F^?NU}!z-g`=(su-#+~gfC^UXGOu} z#tOD-&09gyqcs%5@0&&ZUil#2;}ot`*mHxeIg`S-zfbEGZqqZ*rwf>$BZD7JIK)6_Id&Co&E9nO7} z?WM+a6AW+$s*1u!mJ&9NXASq#v{~G5p6iMC>#JFhf-`CPOl4yqD^O0=8P;6(nwoz+ z7u;3wfW-MSeBGc1+n;ACU9^zB~#uT$Z?Efiaa7vq7wAOB9dO25WyQq}QEWH2od z!yZUuFlr$SJt@SwA$hcCt`hyZ$(;*1@l=vvFVOy*2GjU|)bGuEw=2h!rpPRZ=qX*a zDV}Gyes8AiMLIY*(+h{sO-I;IIk+sk$Ja)4X}53@9=zbQoUbt?Jjd-jp$bTFIua8Qm{nC83DO|n9*59`#*}1r>POe2%_3 zdnEgDu%F(lZlI#pX>eNB!0JyvpzGnWi2tg|&yE`0Lm|Mn^*kf-HV-MAp7IR5HRL4o zkmjDr{gq=dYySaed7IxqKd6)EuG4hjb_hFpc_f+#eBrd!i=DI#f^MA*)+h>q0PYdx z&xlctJ1OXlEFN*j&yOqC0u0?jQKP)DUNZ!jXIWuIiXV$RJ`ovelX=H|Dk7J=o^k5@730&H}NxM*dm@Bynsa4)M=&9ldgwPCbc3OqU2`Z)l@T^Bhf0)<)$$bDVr&1C^`mseNNKeA+qd_^UBi z|Cma?Q{>o&G8r@`%aUvUF|uws&Ps31Kr^2a6>S)x7&U3Q%;DU(DX9>i9wqp<gfHtAo4u5pIUC{ zlZuB0meg9ITZwzAwMn2he~s-J`-Sqi^6#&ULJ;D-+If8TSdc#)#rxYx?9m_vaQEogj7_9-xtFdP zs3PmDC4#J1($6YKJn&#pTxmyXkv6pWizXCzbh3w=^0~*r3md-Z-x9X(lNjStUM@cz$h?k!$OkIv7f zZR;}8f1jVN^@VuP_BTy@{!=i2tPE{$(}U99aBSb4iJ|*7v2w*S8p4^KyFH6Avp0>- zC60sKyNru$HyPkn_p3!1)31N61i5#bX+?<1;DAa3^!;5`ph!9XM_rj*oHLXxqs@f>#T0 zbD;%vOzP>)Ltn&7RIn-249U+siOsxYpUgLtulFsAdqH@cdx-oKl_Bx*91VPm zW`C~-;h(5Dt?JxBqBFe6k9$h*8ipgjdJ5Gvn3GlW5G=6aulKb9CgVC19W$iyYiShT z2HD}U4R?YsOoR;ojM#ljfiL%VPmWkh{0htSjWdusU<3z${xe_Hg!m&H^7R)(WsVjk z^IR}a#+atKn?W>Bj{COcX@!kDGPiD_4=%r{|4=@w9vO;lUWPQrCJl}{=Sb-4Pr(*` z4j;$4=)(WB(R=QcAm*$aN|zSF_0w` zd6WZ@#u2zB%yXpgeo*|*1N@w*!Fe%@X|#qCS?>Ff)#YuaG5+p|<@=`EA|>ucn@1b@ zKJ(b-UiOEx4L=z0eD2(Q!C+e-g&Xo+nAZ`K4z zgjTXAHZJE}*N+!zbSN;-w`$aw;d(hkNpA2Dq3%!J>yLin~BVQupk5{*@Wv)WmD)wqZ= zy5G|Jhxd4gWhCk<__JH|C^bKLMb;j{s4RA-m=Ym+$Q@)?hxof8mtAPmnGB{?&9773>nLWZ-0mn5&H@qB*w zQA&d|)`lS}>m4gN!FQBXRj6Hw=Z7;cQnw(Rd~dC$$vg)Yc*+G@(aOl=nQ(Iz8ytGt zOS)_LIVSuC^@Zob^I|{QYfWRWmC~$qVkgzQZDKeP$Ne$c7{6kWiF_Y|kVpGzvZEqYCh{ArdpE9%IuLBjESa6h`&4Y36iQO#GBX<6`s4<2QGyyh)=)!T^~-6E@=%QD|DH}+QDs*%J&m1# z5%Fo1Svdvu2fp&3FNQlj86He=VLO@&vF>aflXthnZ=(RLT)mK{&N3$Lc5R$oUWk?7 z!%#nBKC8~>9EPeontUY?J>AO$i~duC+%*}@uF?@iBuPWgGl$O@_BiY~FO7|6b>ze* zVM#8)>viqqozqT_=ST8+pE4#r<_wyaBg}G;bM?GGlj*2xk_cQuvRcQeUFt90 zoL|Y$gpwHaal$yeW-^l*WGnT?;vHvk1xU`NLjxfgGgwJGemEfZTQcc2J|y2iF0kR; zh^NxTnZl=OkU#g@Lg&!bXAfEBqz)PqWsAWr(@}TP5NXL$=(cd?zaDi=IBA0U0kZHh zUPiks9I@ZIhlHl_Oz|&ihak3uz{#Xe2az@&4= z$o)J7OP^{%CErs}RP~LRcL%+wcEj~0$#kp71;)38V13LGrv#4d<6A$3aTk07XKZgw z3ZUCnVKCjll-&LcM#{Dn44XO`ue7sq=z@SQ8MsruMhsF1KT%ST5G`NS$xf^i!tszX zC?Co5jmiqp)wW_C{46{?k>^%B;%L>6i)8crB#q^~AwH>qb@+5#G2pq&h!)a1>?zlMna)IjAGWPNi-$|H6 zV(gc-WVXeYuKW4Hdr~|b7QIwp#97f}`TNsJ+7tUfYEZ&qRnFJCP8lnV=yJ?Z{HhKn z3Ac|9&0Q%tX!nYRocc@ZpGpucGM=@lk4A=z6^jv-!Lr6Gx^#0P%^S;e2wf8(y;lxb zy;br1@M>Ck$O+j!>g;HIGSc;@A!_|9fr4=odBoJw?$Ukqy7oIAh>3;kF3!2OD}(-S z5n58NShNs8j##erB{^i21UE+Kk&bBFRjDpnVofM^Fgj?HrzSDmUf6h)|w=eG_ z+OUI6_b(TS27Mx__;@>|)k0GQ90ae|Ik-)BYSpw{qq{wh^uT zdyl@U>>{I`nv{3xBzyETmbzjG=zD+yWcGSc>ytj_(U3-^=C|pE<#VzqdO*BX%suat z*l>0S9S+^b&badI=}u)VF$l-lb+_0k-WR$U%y-Ui#jJAeWjeBeq4HfS0&L~rTfm(^ zQ#z?fCzw0l957|da9V1&otD?CAdE9V@>Hb|KhlXtakqut+)22!aWa)yCD6lzgDhc_ z7xJ1l5D*lF67Nh53U;uD1>J1tqk#n-sE*7j;_a=;THeQP44Dw!w@S-mrp^&omkwx z)kAZZ4#nR#?!$FRK%3kpR-1g8zGW$~(4;bwLlTawW?}EGUu3rK8HI7)?nfD43h`V; z_B(qy2grv`^%}8Rxo7CzSu2bXUPH3GEZKR>0t}|`d@6TH<*Sw8cw{8rCN&FU$D82G zJ7t_M^`i|NA~1?O1^pJ)(%gbp%9L`4X!&^dVXrOk5!4DIo{G}4Gkz%Eb%I&G*+p}I zXj1h~1BA^8X91f=P|T@3yp`%BVeSlgQZ$w|b*W(6h+H)PQQ+r?CsZ`|nLs{aAI+CCV5ju zjM_ehJ@%h~$Sb1cvHTj<9x=tH>9?7qlqf~bE{66H?jG1HjNjYtQSe3us5iCK=J;K(W{g!o|8+*jmN*eKJ8^U=CdDduYwd3Z^a+2is=OL3xw%EM*~XhIn|po$WfvJN#X|$D;F!d3j`#(0btWR|`lDwWG{VPm3yra3R}OPL z!*{*bIndcRg)+y{2Y#qykTYV|ux-kFLiIT_T+JG0xymXpuh30OYWhv|G>OLM(F zaOUi^6W|dQ#T@Uo|pZ+hGPE6V&ML83dx;B(m8P8oSbADDjwhtP?+|ZOd-tA*!gSZ=_Jqv#K?J(VNfEMj{ zq)~U?Q&!DtTAAU1HH!|CX8#$sriRbPF4fRY&KceGocLXQ7o8oQh(Nh~tjkrzf}?Hh z2!HR+zNUn##_7m3904Oo4Zb_m5i~E#!HXU1sJM#XRZcm=e!m3V{&Wd;_&z27Iw^$4 z%VT#3&z)N)qx)?zVqR^bt=dvBvMIw2&$Cp+bA7qPI!XGt3l_=E!u`vfb7q^4QDaKj zc}Yk5-kpk{$IICFck^gL??~D;Cm$AGzK}eePHjUxDR^2DBBN#t{Gz2$FnT5_M5|!k z8!OC--$i2adzp2}I2h|}rp}x0*ma8cc&}!%FgIa5Gl|7Z_aMBQ^n=FD>PFL9Q` zcNe6a3`KUJG}-<9##-z3u=LM#!IT666z-iRi|$#dIjaDo?tDi{_W$U6b|Mz3uBEdHVThY3i_@25p+D~+ z?GDML?3r_@-QAUP#1z@2!BX0rrj0q1!8t%moD=lgXg)1#T~0S{>ocD#dF-7? zD75EKKudo%yp=1-@V`8aezKlL>jYwx6lWa7Jfv-_^YLlm33YNm_u+I8Y?>EG5ruy! zb_I6?^KNwPD$W}`x`jSAEoT#)f=F_mBjlF9pf`KdaX5dXU|637_l=t&Erl>KzK}%A zSJBi(&bX}lj=ojp;HP&HJj1z%c>6XsTb17vq&Jf8$yBd`_EqONAQ}&lFOk>qWT4Se=or}FFjpzCg zU(>;Wj42&a+fH9a$K%P;CDh%^{p$REWTtygP?9c<9YODym61MrFY@opNCUy*QGv8l z!JZB&J0rGfD$8lkX9+?Xm^{{r()cca!nf~~_w^u66G_FO$s9J{awJw7yW^hIb#fV0 zh4jBt{1l7C-MyI*Ihz8#m@ZPa^}!n10{jgeitZnoFv*e=e9l@jU@BaSk|GoFy`#kr()^&}pMs=zK z-}s0hd}k^m%HJZpb#u(le}q2LpKW%u3m5y3b}-v{A`jeJu^N2`Sd$NX8pkn zEy}U+be-V`Z}e`Q9y5{e^eTm&{8||un*z7b=CTvot9kW%7?y{$L_*CJep}E$^Ut@= zaIW%VmcbuEF9(L_i(6^?JDBtp4wz$e+P$gIv{s$i>+K`x{p!MJ zPS$wecbgiQcM7k%YstOPhhz41!TE)QdA(+a@J<$E!o?yCXb?x=>yaq^ZO#Gxt+`qF zVty_;7`Rh|R4p$ir8{tTmk92eScaqXCgE%YEru8+F;v;J*+fgeuDPP}zFbF(#s@Xa zB3yYiWE^w6O0dO8c5M5iS$IN^8*6sqUI*ES6@Sr`+6-h7W7)`b20!YEA11d8?-wml zQw(PD-1tEpn_{lIx4Na)+-nMp4OQ4bdo(AnJc+(?o?L#w8Z-7^RB?mi*~rSCdn1DJ zZ|PUOEDBN$)866AkdgF}Gf%U|8ZMFVrsCpiTzUUYwb*CC!A2Y5IpZ*F44RF_k{5iXkPy9~{?@7|m|@Ba5J_^hZSn>ek-9m8sbO|hk;%NGRANM==NBC~F_;F?9> zQQ6j&MkSljZ?&+KYP+$+adDPeSh7QIKkDUH;7e^KMsBs_G3m&;-#>+-k)tX-b4Fh`l#1v)%7lBf1AJyN4yyHdA3?J zM%=Z#<9NVKdd!AH*fwV-wS>XExw<=^8yDcExM>^w9>kY*<#+hNoa;4t>c17+&@Os9 zql+hU(92%9>+i&Rg|9r0g*V0}VbSY!=*Zn}T73Pe9&bHL!rnGjDtZ4(RoFvv%6)7& zG)4Lnoj$9!(>7xF>J>QF_65BD7!U7{lh}JhB@SfnL}=sRaGyI48J~iwC*GN;KylE_ zUxf}own!eS2D8n~c)hX}GN!Ciz5Z&&xw1!EIp`Ozukm5;!8c%-q11TExGoA>iksDA zSv^TyHq)$-oLGe4&t*@(@G$=NaD&b2>HKU5CP=@iM@(DzCGWx9$aZLFG7xsRLNO$y z4m#K;D{K`uUC|K~>%?J$T^HtsFGLxS;o;dPJSm>fB*(?7`J)1amgi~GLOb&Ju{oI7 zQD*QB(xJP!3oiH8V~%e;kH@=lo_;bbMs%UMbW6)d1~W`%Vh@s1HJYp&IA*gBae>bC zX?_Re`pki)Ru@{o?@RRaVf&akWN6*dwA|vso^wCI+1CmUb@O28vP->i)Mh{L046rL zhhS&&pJ|8DqH7eNL>gjf>tw3*Z8&x?j-5xxz#zUI9)0bPLhBKHaQ8JXRUE>ZeS6Wo zQ358(?`R0VqRjFhs;3Tzz7j&MsZ@T^bR+6VnDWJo0qw( z!~zpO*`&pvgR|76OB-SQ#-FBI{ZO}<+z}hhe|?2l^F;VW2QT2CiVK?GBX?t?SvuOS zn!;;6?%{ry)9P(VXW=gf(NA{>Y=3-5z)UA0u6nR%An+$-x}*GmiSR zV(Hjmorm%3R{XnZJG8vE2-~MeVYKT+*`sMQe`_Rq2b&3hv^%@YzV=hOJP-3M<&0IR zZbTUJqG1`PTp6#HByPcqrXNufCi~)9KAd{H026ojVrJ6=82U_)H`8^5Q{v8MF2lIe ztuJcV^x%J&Z1C31j{ed!$q5_4lG};2&$)t4-glvAP=y!8V8oFU%~|vIG}&GWqvXb_ zBJ2=K17_oR-Xt2-YrxxGP5JYS55465klEafvrkUp?4ZuLncS2~-z<>%2Y{DZ?lTu0IZRW$(?>fm~}7#_L5(Izx;^Y;S<SoB`9_kEJ+F!L0Sero{VBe@tcQd@EgKPAW5m)maZNGEa+ zT4wde27Py&i++hHhhLg`i(kW2vUsf%FJXxErM4x-!#N;;IRPg8Zg^T;TVG-BW5d;^ zHs~Sm|C3WqxTvGdnB2(|TMnU7O{ONZ(Qf?G`-aY`6A*bQo}J}AKPIygrmr2yvHnlF+)NnW-<-Kk?$LctSTWjn67|K+G{XJ4 zCi$ru4oa@TqCpg2MQbxg>m9N=50!K57+(^~!rPOXSYXS|@1yxR*nyvZokQ_BIg^=< zlBC^ZcwKa$MNt?(Y!OF%s3AQAi_~)C5>+dm0>_o{;%LxE=!C{B_%N793bR#`?org0 z?qqR7ALPy60T1!ml=e-;&I|U+;!<67%7|ihYHRGe=py&o0@d4I*hxU-1pu+Piq%^iSnJuvFcgcmN^09Qb2ueSFy8jvs5=a^$m%>ce?A4*PZ& zwFbgxI^_fPx;HDAi)$|I174I_v!Fvup8wc`-O65JaAFJATSZJb4*Ho-Auh(J9u*c=rXHLUOU^ z;4H3~S%SUK;%RMHhm&Uwx zM$E`Sn`LH>0&Vku#2O{yBq{x~~#l!9OUu@d4w?V$`wRiJWzMJ~qXPQ*iJMT>m{3ZjBFM#|3L1lpWf_<`>XuYdfX~ z%|WXFB$(H~kNLGxOz7dD&fjfFhmMKV+th+J|BGPo6*=cbe!>4%9zvHtZCF(kM&DF- z)$NU^^tJPGzhJ&cUq5@b$j?*77PRG@w0eACzY7_@$1rcfa9s6%2)%%R!u zEVJGP1{~BlnC1noRNBJ`>=l1Y_bctx=*3#xHK7R?#MNc^^w(T|Hr0Rs4tidZ{oD@?%Vf@Otj7fd0l-m{l&Bp%7P&5r(W=ln3{XH0327 zZSMV^!tI|^@qO$`Bo&Ncpx0;N^H^a=)eoGuYRbBe#9^FqQGH(2PiAK67;$1brtA~0 zqJDR*{Vo!3TskB( zg^MG3D_0wP+0U8bSp7y&SIL-EwM5%gaAB}gFV?u?R)b2kQ5i_g7pJfE z(R(~f@_Ciz!}j|rjoZ?hOe%bW6LG>+Umu500fBt4|DSjUkKxh$ ze6*-@71xF9taaI(hN&?awm_SkDiSbbiZz|4K0!|{7oOXsPr23r^%kfm*A206kvOm> zf5!6%Ufg-%Ip)u|#9Xgy9&^r!kF?$icw{+Y?#dK-uZ-YE?e$Rm-XQwhJ1l;crkPu9 zz^X>hys%@aN3P~A0v-ml=r7?dX^HQ?wiUny2 zR&6aBH~NLvIqp0cZpQZ4+A|@+lvRo z3i^VO%s-L-ehm7>4}o@?1*@Y+^SsM*p zi>Etm1y*!fg?>i65cjn^Tc`Ho%jZGN5_i(I^rzUUsqdkgJBB zINe^C$KvhzWvw6FWRE@C(irnA7Gis|HmLd@!!m@62edv9MqX9(vYIfsaJ8Zu&uWXQ zm~h#Y)kiL?y(5>Yj|R=c2`cH7s{|d%xG&j0c%r)^D^`~?D|NDC~mq^ z0djsaw&1cu71GxXV}`lxjq-nEx1SNOM22xL!w zJ~@&uX`fZYF!?RVrl@{B>!|qf;W*{&!oGdy;qu6)TzNMJ_uZdj*vKG``&fzZwt2Yo za0&X9JL8JwL73=_LN}vuai-ot`uYFS^Mp2Q7Y*mq1@Cc1Tp!~rF2U}Gy#FQloBFaH z@1|Fx{e~f&d0U&t_8&3%a$UYza!c(_+Kssb+~D2+D|CMaa{49l!&DEYuG2)#unoq- zXDWip_cokZJ&O%HTk^YPu^tMabicZ+x-DsqcPf%0u_m&=zksDzGd1w=27&vgF-3A3PFLJ`w|bvCI#cpwo!T&S z>t4LK>&O;8rQ7LLitxh&>E)M;p;dWm{hMIsPTGqJ#(%@gf2oR@P>nk>7j^PJhdp*l z^!X6L15rh&j&;V77wItTydGyAWv2Nlfc{-ObDh5>4(({qo|V$8O+Amuo|9Q!I}>9s zJEOVGs`R3k|nPdXp1`pzc@;V$^^bRkiXFSl{laGwsDBTUN zXni}DciQ|$zSmyW_406@jFJxJ(@~6DsU(Z&!sIo3@Nd}?tO@U`xTmvlKqG`%y9{BH za}G>s1#dN+FNfO5e9Mz1Vd4aQd1c50TbI{qzrwzskTl(t-R;od6rm2;_e>2hT@$(Og@ zI56JnIF4@Wz{)oAJ(ulAb}t{gnHh7y(PH#3^b?+lIc>_r@L*$E@N6~V9f37M#kK0*}NO12@?U*7ob#-C8jf<4dha{dqz6uv3 z+S22BefrBz{)%|`!eJhMJmIhGki?}fEB*C?LiuCU+St6bQj{yPv W;_oNEWN%bVwPlTa3jWbMrTz~&7h`__ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..181fd66da164806ef9ea68f993f539ff6e6dce4f GIT binary patch literal 51861 zcmbWzJ8o1_6hu)>8*s>&2$>NXlVH9e;gxKubXta>T;FqFzdhc*{`>#s?eX^d{o9Y1 zUq65UdAxl3|L^lVzP=+J)_;$EqT`SEKj`*wIl4S_50}%YLq4=$v`fb!-44BX=yH9R z9jL#sIoz&0?O!>*_rmVb<@q@D4tejxi+Xf@y1sjhubv(I?dx@4o)6oXbEi2zU9LMg z-+S7#S8QKz>HMO*-r)`|Pq$w#-#vLd{PyWk&+bRj9lLgL?~-#D()FtA7wzluyC+v& zUSEzbPcNrKzP?>LZ$kgo48)>q9x*eZ8WbyLfwaeRuRA9opfq zo$kunfp(yMz8!jVc42#TJA6BQC|6$(Ht&6O+@9V-xpkM{UAkR;IXdordN`Eh+kV@^r|@?aA|T@1)~J zJ5XPb?k>OBJYSEGch|f0_;fwIIs1Bidi&j}-@aWryLRYM-VT(9&Ea;|9eeU}diHU7 zxpI2<bV%2e=fi7XP9Iix zufF^8c<<`dyTiA$P@iu{pAY%CoOih!S|#rE{uv!~yld~@>k<=nF;r`H@^57&o!_TGp7_zx?WU>H2iL(0idCY>sXhw~u$Pc^t~yahHE_eW>R>`cMv+hu#6@p&lQHcI3T7 z9`fbsc5wZr^PxQ)y0^G{&AF?GyCYvNZ@0bXaXs8V-Cnu<Cij)cA*>&_4v3QI@H7EeGgsE4!@`mo5$@z zJ9_TI=IHWvad|piclfY5++BR#qeJh(_1&v3?;e!HVfXCT*N3a;KHrXA{pN7Ke)am- zzPt8tXdjoOY29zIXMWd~@=!_vm_d=#byLbUpiekdMph7v<@C)xAf~ zu6%iO_UyD*AGf>q?AVp3Cu_4s;nMLy))>kb|2 zK{}*+7ag}xcfY(BZ$}T8hw^gtzK2hTcJ1gxKCTDpkPfR~ciPim=)3Gf zJ4JbWd_7pdze9KQ?CHzF>fJ53r;p1)K9uV{x*U}A9dvoRd-AxvoE{&S)5q)6_2pO2 zT|IedM<3_Y?JU1J+>V}i*yF?ccIbAh>)UOvdA_{9JJt2ulWR|Ip&s9Tcgp46(WC3} zp`5*9bGY5+>CIJl*SqY{alSr&?aRY!mk;&a^By|x9r()Ap*yg8cgx*_`f_-E_xc@l zJ%06aId}QceZD;8<9gn~hjw7|IJ9d|59iy*_37=kuP3h$o0nU=deDCJcKGg8=hK_R z?aSeO@1f)N%e$io<#BhQUA}yEKIGeh`h8b*eJEdSulJkB<%-@})VuE4le2^S9^9^+ zKBPBq2ik#jNbe54IrpKQKIG%xYY(qahxYB!+bh?D?%JX273Jve+R?}5+N&-vhj$-$ z$4*hdDCds7>g~zV<*R#_eH>QTUwiUU-aF{}?%?vUx*a;C+jFOSeRt@%9(2d999bK`EbPw9+f3{SySRNj%{Qm7$8WE`9_&53 zo%ZSO>FdeUp}f94l+%~zLw%@MPH(R|?jH0GXurI=dve`-*7vUN)9v$%z0-XC#XtIf z?{U{Y-FHAa_vCRsDBnJ=5AEpLS-Ks0IXx)HmtS|~_}$UByL^3lNY}^hxR3MOr*~)R za(3K-?KQ7Q@B8$N_VxMna=X2=_}Y=@+w~4uU(UN$P7mrqx*hMahw~v{A1^k~r|Uy{ z?|Sd*)8*`R7jLe4dvr**gFn0HyY#!u?=HRQZuR!d-Ph+=@2p}a_ z9^M?k`*e4p{^IM7eSQ1TUUT;N&<>PqpAY5i;0xuTeH_xEdw9RI_vG!>x5F>WyCaYD zAsx!wZI14pdboUZxV#+B?+z}97x~@sJ@W3#;rftYE^imNPuHuC+lTGZyH8*Hd}tTf z!|j*L=|g$E-=k-bFVF8zb-X)tXxANBU(Q{-bf_;!m$zGNuX%gL?stbzcegvsr+W|H zUAq0|>3YyR^dTM6_3T4Bly}z-)Z^>%^%vLU>(lK+IlI;I_Pfis$Ja0Ro_>3Bbo+Ej zFY4L%4mo`}9Ll#(w}V6ZV(;K`xciU}tLyhYa{Tt`eYf7qyVE{hue*Gx?;dOqw<`zj zKzTl{59#gky;IH}AAi=@vs>ibgLLIme0zNQ;(dpl-R>>DIlJ=SLC5vz?&DBS56VNjyZU_CJ$Zd7 z&$p+K%j5ENJ2<~P<@V@$cIa|^Tn_I$_;hvnxyLWc%ehldZ=VkB z;oh;hJ9_rpk`&-n@Ot$J?jN@#*g1eb4gc;j=yW<-N-tx*T+;Iepk14)t;O zR-Z1XPlwgLd+GM%x>MhK_B;b^YrH3ZC*~#zC2t# zx}LqI+jCDI(&g;na_;fm7RYzE^(v_W7`VJ9ItwVf)SN zLA(0Z`SkA9m-CML?aR4ezk2ud^_r*a)u($m4)yhVuRUDP4%9E|LHEk-@NqfFcZcp> zMLDQ1heLa~9^Je2>E-Ro*~N?Xar?M;;JqhLhxFdH$1gVTuADyIz3O)4a5+7G_vQHV zkS^CgpI)?6w5RXgxP0~QcW3qG>_L0=@%p&F91feqp?8+sgM8e+e$nqH59Rof5AC}P zo5%TjOLrg2yGys%9lAUYhu*VL z&pYIL#~vNZw@=rD&2`6nn#YU!dXV0G?aRxR`wn~14j<>+gLM1t>GN?peJIE89b67} z7w512>bN_0==Pv@!j-efFW0Bz&^$y*d@^*@HtIyZN z<=uz$=K0=ZhhCJk!>^9p!}aj?<>iXLL#{ja^yHi4S8ra`to*TdnZ^X<9o zUDfSYZ*S$?yYlweJL)&b_YUYj^bSaec5!IW9Xig}hjQ)}e=Ue4*M_DxV<9Z4&R>dkmKV}AIdGR2YV0K$6?=P2kJq( zp7#}3e%-YP<)A$%=Pu5tdoNzJ5Bc4pyMxQQV+S^`2jy@(IDg%-5B2qMeYe*R2`R3Z^7yAx(=#UQGU7YToeE0a(aXl!H`%b6_>FYgwXcyYSo3l%oFUr}0 z?a4v8?$P}od^!&4P!I3D`rawWhkSeP%HvSJeR3a5XJ{`6%SG_xOP#*TZ`tCwGTn^f=uP0ZZ4!sM9_HjE9Y-!2_i?>@gfa?m@VygNm^`uNK6?H2j=_&DD_?!9<@x*bS&2X;>$>OuFQTv48m z_a43IeXu>cecX;by(p)TLw&wJANn1N^2P4)-LqrAK3(3P9?qAy!^fd~xqNrz-Noe~ z-44Edd$4&udr(f#cgWM5E7!AIzV_tp>EV#xo$Gz_(2gDs>FZr`_T==cdp{qSqub@< zP)-lhp}cp=LAo5QUfy@vb5|Z;z8%=S_t0VY^yQ24a(y2z=MLSTK9qy{dd)3;_2k`` za}T;B2kFpWdw6>|-wy112P!{%@(XBX$&hjJInL%YyEF6TRNcj)cWi~4js`h4geE2mc?n$*kJvzQn&mBnDa}Uzxp}Tld zAG!nW@}XV4s1N1sc?TcX*MoYHuIC+ib9}v`JmllhzIW4cs1NDhVTTXx;qptD<3l~Z z`{nZMJ$4q_gL3X&yX`fPdndFH-Gy@Y?eK9q*uCm}Xs35@_lo+E-+MTJ-Q(MX&38|( zy7$xN+~JqY^Yw7(U63ws7xK&9qvLk;aK5{^J{{MCd|b|*a{KbQo#yFs-Q~mjxO?3% zcZZJa+oQ|T%e`y$>$i`??%;M{^WG~D`)<0tz3O^UUXJb^e8`uFy{8Z5+Q;q7+0)0H z(}!}fd$@c#9rm95LU;9Wd%g#kt8Tx2y1c#|T@Lcyh5CAOIF!fjLOs}Axx3Ilw99W_ z&OIoP7wtehuzl}X`Q^*IZ&x0dgLFB1cjW5pt-M~*j^Du!edXo&@{le^$Gwy8K3yN` z$>I92eK}~)jy%7}hy1l8_pEPE&v!t+Jvr~^SJ$s@M-R$D`|^;FuRGQC+|$S9%jxoV zpgh0%a`_AG!{+IJCqB-nLpte-dU<%)Lo_2|$JAGcTCp1vHU%h93z`g-m`JzO8I9X^!9 z?a^`f=mC`ad|qm9m1*dE?@=<}f*E(ht*yUOi&*Xr}-?G*WT z+|`G2`f_@5d^)7-K|Yj&y-SC7pdIhg=NH$Ge*LA}m0$1hp89sLo%ZDQ-FF9dDKMH;2RS(d~E#l!xx(dbnP9 z>*H77J!rRg>_Isk>Os1^_dtH{m)q0hSLfSZesy`fP>%0A=*{ur>UpOeE|2r+(0yF4 zC|A8)&Rs}v-d#D|?}6*%cIfhu51X?i5Bm-|D2GFLpnKh`j;~(t$-7&Wch{~Q&Zpbu z(_!;;s0W*;y92!!?;ai2$KA76?mnzAMf*%I(nIk%xBi=J|Bo9?tI$E)V-YJ5UbV=R>|bbjWuPudgrX9$lUe>3T&z z)Pr>ID)Qy))7{0}>v!Pt`t;thC#NS*m*dmz$;;tTj&G;fygPJg$F7_`I;<~e2bYI> z(0zG2)Z;hr9^~WKj=Vd1?&;Iz`FL~PlcU4cTfVz|@9K_w^yXKudH3jg_UMrBzW&1I c?5@0h_nOC{oI7}T=uls-eea{o(~EZg0vIPW?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..cb79a6e2e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJ³ ‰=µà?Ë@?£oÊ>id> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..2d53399ff --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJXÒ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..cd7b2dbd8be3edf995aaae175c37b6e9b5ff6930 GIT binary patch literal 294 zcmdgKQk1r_7Pf`*O&QB}J zO{{P($}cW<%_}L&FR1hZGPOjwIEzwKN|Q@6^YfHga#IuY7BDgkX@Sg(FHTO4_j67$ zOfgC^PBBR_jR#4`m#1c?XOzUljE+(VS}CN&rNF@`B*VqT!3@N#K+FckAT~&hB}y6S zFd;cE84h+K38)~ZB7Tt5xwtrhrm+AOu_keI0X@RT#R3#yNYdkidx;n;otOmp0qKf3 ATL1t6 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4f77b9aa23cf6cd80c01cdc032530f3dbf548c7e GIT binary patch literal 129623 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 W;_oNEWN%bVwPlTa3jWbMrTz~&7h`__ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..181fd66da164806ef9ea68f993f539ff6e6dce4f GIT binary patch literal 51861 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%0A=*{ur>UpOeE|2r+(0yF4 zC|A8)&Rs}v-d#D|?}6*%cIfhu51X?i5Bm-|D2GFLpnKh`j;~(t$-7&Wch{~Q&Zpbu z(_!;;s0W*;y92!!?;ai2$KA76?mnzAMf*%I(nIk%xBi=J|Bo9?tI$E)V-YJ5UbV=R>|bbjWuPudgrX9$lUe>3T&z z)Pr>ID)Qy))7{0}>v!Pt`t;thC#NS*m*dmz$;;tTj&G;fygPJg$F7_`I;<~e2bYI> z(0zG2)Z;hr9^~WKj=Vd1?&;Iz`FL~PlcU4cTfVz|@9K_w^yXKudH3jg_UMrBzW&1I c?5@0h_nOC{oI7}T=uls-eea{o(~EZg0vIPW?f?J) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_2.pb new file mode 100644 index 000000000..cb79a6e2e --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BwJ³ ‰=µà?Ë@?£oÊ>id> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/output_0.pb new file mode 100644 index 000000000..2d53399ff --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BzJXÒ? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_sce_NCd1d2d3d4d5_mean_weight_log_prob/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5f4a11acb8a25b933f6596b96642f86d80484b97 GIT binary patch literal 129630 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�CFmUnXDQB@!v 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

WgpF2j)q%d(R=VcjE!j_P$Ak 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 AKBhx|1++{QAyUTo@t1yA)oAuJ zqSEIJmdt)IGMEi}U*~}MwH#%IE6AipykE46w^2FRRS1XW(Oa4mfzF-bVc%>z09 ztQG_53E{BTv4&cIuO=lz(Xe~gEix=T4bv4yOijvPkhr7WaAa8#-NCtv$MYh|KF;@^ zUfDvWGW1}hnk4_~n*F5j%`-T?>ISTc66Rm{v;a+~{AM)O{$bDl+cb96mPquA@uS<0 zf!qa0{JX%Bap(uI<~o3OSO4Ir9X<5Nom>$9)J!ybi*efy?pd;RD*c&lPoDKRK;zp| z+*G#(7Tv03iWY?7{>}5q&MzHUzFZ16VFok>3B&ljvqXV}u+_Wx^tg)@@E5#7GsV2> z$qRgGaOhv!qm}{waS>!*PBq!_Z6>a-R$=ayTEk7Q$1scQoag^H2kaNPU}RJvI_kyX zscoO&hXBC7gg4Oc$n8G3XUavjO|Y5khX~h>(w7zujJw2h(Ny`-BxeokC zN)KAXbmclCcq1I+59ncBPa}6{?nJ@4*<_u`Z+cqZlF{mt=Y9GT%Zl$ApuwNsvg-$8 zskf3g-)hAK{)FC0tbNHrZg13p%Ri2*zFv{b)+u1+nkwc~)mL&}LIm_~PJoNutI;$# z6UNzzklE-%{y1}8lSUr-UGSatG!lln&wkJoy@Hs#DUHraPyyA+qJ&`$;JHdXyi1Lw zvll;QzA4CIZ1xD5FG+cx1Iu7j;E^nW+q-pNI~njwct2<7k2C9;gNx9W<$ZJsl|E;E(bZIq5N(FL7`+3QqNd zW!J*UE(w2Bzs{rAE)Q`7>)kN_Vg*x^W=G{Ur-4MyS@G4~1{i~ZKyC)0tC9mQ&L1(ja2P04&+z6J-?P2-{9eQjZHv@alb(a@~ z(WHnH{OA~jGUW?l-QZOEU-u-AAN7L?`=`rKZ2pPLOIPEc!D(0}BEZ+GTL|Z4qKquAGf!!wQ4E+* zD<-cJAJL+eEA)qtEHa8&+`dN`OB5EPbYBdNUJNB?WV$iN=P3C-5($ffHo=7da&f1B zAzIHd;(JJjV)&OtdU1s|opEj#6Q?T<6MUpW(yy2fnXB=%{4TOLOJa$Fcm?Usj{)`d zeq7f5GkzPr1nH}F_>!i-DDOru72m~meXmOL9M-0Q+Sn9+n~N^$O;@8G6NF*a_eiE= zSqmV(cg_sj-=nTdIoIpCn+K+gG!G zeJA!qvK&;W&IM<+*{JiA^W1$PuxX7j-*~vg#Fz%L@^V1!lxlF4NrAlIzEGcDg*`=u z5Pj$oK9Uy1fd)Z-e^dzy28@yf-BiFO|FCjnJo+b&(`6f1L$0$o7}dp~_WH{p!1-Jc zzKDcrtwLnv?P*x>Ow_cpg>zS*Oa;TS5D+WyL#zBC=G~sDC@t`aM4Me^Wc}{Yd9fFv zxgrvOO9&(LDTV&B7lZd3=7H)RUnZLCp56}Ki}pVg&4dCTqn=_CHmmN$SFRp3bFm^j z_^2F~=!enFExR%MKoHDcAH=#oe-1_tp13eB)1-g(&Yos>D@<@Xj0Z5_)@V0 z)=$1hcMVNJJHdD&xlft4^(In(s|a*mIt{N!DWcSlOiaw~rg>pC5 zS`&GWVlMEEH%{+`^wDv}rFiUC4rKzgY4f>Gh`KSK)%d5t8~b?=O=W3ybKV<9CnBaM zakm@1;ciiOAFiQGkR*xgvW1#QCRo#U81CwrLz{3I+FqSRAIF}h8gg?nYW%lZgJBs` zT?@2pbi+k#1KVWcwQC@WWQ~XylMI{VWwsD&G`C&U9IR<=j1R|A8$W zm3l;8M`w|}E4f@?lN_&Xcs_Qw#u5X;-()bS1y^?D;=_Rs65?15@9wO^EsaBHANP!P z*!_hDxox2rmaKq#arXB z{;)hwNi{&f-aFL&+eJ7fAVQvbdBIz6CEWh=D^rNZSZ#X^7;=P&8*)tG6N^yxMJO6> z&cG`X$;A1(5EK1-Hrcwo42o|rgYty?RBcih)vf*tc5y=3SUkvP87#)t8&YvulP~kC z@iF|7$_M-7&D7xiQ zTOpV0H2P@ez@EC7KOPA=jixQQp61q@;!Aj0w zed2y2s`VI~9VnQ^PdX7xU4wU!uWy`c+6M=T^)Eltx_KA;*nW^M@GW6a4CK%i^N$g7 z%N35!|4N2Bwb9bDpvK}7=ky3JgWQMu;5)qr#KZcr&*1_6^{9dDU#UYce=!ED<9?tK zYzm^ufsom>hM-dmc;NjzKM z%W=~D1H5Pw)pHTeqo?9&{nzB!yCdK|!<%j!dB-?i72&Nn0C?41j==*RAozVUF4+9D zW+AIuL!KUmhwZI9pBrpHIF${(tvIG>ivx^DEL%FIyGU_orv`C;07y3$oks z5SQUt@@xb4u9}Kw3Kk@J?+r{>jQ}UpV7T)w1_V@=Vop;y9*AhiPNVgpWa^G*zjx7e zxPk81zrl#pM659Q#C%&clg?9mPa?RE^S$9AtUR<7#+8z3WKaogjyp-#)|{xWy;}sc zND9uL9D|EXFA(7j2NX(AM45@nWVuujGd|}z-O_&*j?EPYm7FxP>^qPfA`j4c-&cHtI|YU z-6{xE;yP!3K@jN@MIt-1iRx7mjH^At8Xcj`CH?=1xN91*_&o)bWA!=i-7-42B?7OF zbW;!USDY*7F7dK7CMVwop|C?G!i5DORc?XW5|Oahi-ob+gZOGZ42vHhge|J+^p{^e z+vpMu+m`skXvl4jFDimpHi*&X(Ow|?c_NsVy(PIlv0!o75(-q(sD0aa&W{zybjzIp zHMuo#_|Xi|Iy6viTOS5*SJjZb!^J4W@sr^0I=Hm`7S3C_fxf;mPD)yibKLw;xTYY( zJ7RsEh}G#4ja8}i^3E^_$}OeYK3~alj{9(7c`d$*kDx~bK7igAKbRQbPm`)5Vf)(w zta$v1bQ-0RoZlQ9UhypOcU_{k!K?7YQUluUp^x9(&f?1T>fB!ZF|?e`B!}$9@Z#qb zGcn07?mZ%c&hQbUH;n>c@-doLTfmfcL1_Ev11$L?0cn4~;ZOjV;dvegcNOQt$z+ZP zrZXENQ|~fQd}crhH@8~!Bo5Deh0?)cdEVf=Pq=K=XQp4zxhDHv2{=PB@*n4b|F!LC z`CuBaQn?w~FXG_n^^3fGVhF=B)A*yK`f%UUfd1K2M2FS%uwr-^?&1F^I@4&Z-YyQC zG7puI6jDNpN|NE+`)Q6)G$|UW5K)Ap$UH}hBr}mRl~9Ir@25nhC>n_B-$Y5H&_KQC z{pQoNmbK10_dfUj{jMvp-m<11HZqPNC-@OJY`%s^W#9AkN<6nj-{4O$m@7Wdj{jtoF*_j>ax6XjYbmaKgPV;E=8+9%0P^T1bbGC+Z(6*qtyAE z^wl1H)C(%c@2(#}cX$~Th7OUZuMFr5KOP#+ae`yV7SP6dENCuIg+d2yP;q<(>jE#6 z2bXV?*P3nUlCy(j3f?*$*rEv-Ym+Qt@d~X|`7>I!TvnJuQlxLv(%#P;f<>0Ieb6EdL3m404^Rm@d zm||sjd?eNg=U07Tr>JsX+S?=b-$Kfn8^1iszl}}wT>l>^SXBeOf^^s{lFLdeZo_q_ zkgOEFh#I$)v7~4LU7dJ|w7=wLwoUnTSWf|hbd8aII*$kc%V1y5`i<Kq}{Zwc|fDn?U$!R5e>y5L&lG*D>WOE-GiL(!=idj4wz zR>;NT6B$?BHX|8dvO8F>{gPPBb^Nw`7-xE#B)I*JD#VK&$Zde(*J6Cj32$>%LY2vu+LStlot$ zpKIc!i{5ZZ`U+I99Wtx@v>W>V2;h7_LDG2O3)(%E=LJ02i*9yVq{=6imRO7P0ya32 z?cX=TgV$GZ{4Y1Z{I-C?z!^}yO@d!yRK_fAIYkW%tFcOREq;F>%{#m6IF>J*1WROE zVXiyN-mVD6USWNZd@I9moqh&>HkJ{&bO(x~6FKkoT9n;5Of|JP;FgQ~pmEv&Ju|Uo2m`Xf^_;2@MWd-L}HC#vdk^8YmW(hFY0Bn{u(#6b2_SyVcs-QsWlCFJZn_@Zp zbJbyX{?tz9mry^=UMmfAZ_GqTjX9vf3&o;9W4hteUC=l+A5+#{1>_H*p`^rh0c`}}n* z<5)+lZ%u;-%Y`s*vKpCia5aFpEZYCAXN*E4fUh21-`*}@vR<#6`bcsao=bATHi<(W z{;EHmvx5YGA#|b1s2SJr!`1_4)ckO2efhB&9EYr!R8AXZABJQw;}U6<6}p2TcWU8{ zKYj34Pn{-AIE^M&%CP*`7koGN7px?FXs=vB-MT5S;b3?lnQYgE+9q4bH!n)Roxg?) z&)UGAI6nE@n%&Wu0+}A54DN1CvC43fnQ-pVwSsuw7`F$tbC(BzFmdA z`r{_a=$XuKBrm|mQWiYkCWFF(bQ4z4(DZP^J^w~ zVUmJI*Dv5Nk2P@IJPq8>iNL?TkBOa05BoaU3G~&)`Q`Ja_x${L=(RLh7=A1(P^*f-wJKrqbN*GV> z`%ZRzSi|z)EAyk4sZ+_A1bFxAG<-Cv!&9m&f#IJ95AqCEUhPEN(Q=seLW*BJv=&EM zNs!Jj!F8h-QOR1L2yR!0KE3H=c$qOUVS^>-(+lxo87_SSgG?Cg+<3MyPCo4~N^xO}8|9tmvCr zYw|Ey275yC2ZXib|KYa-xzL#w0+S}&(X5Blq0Gu0=5YVx=ekGqs{(iK>{y9KMPsz^ zYA`P9@nqJ(3AvlkSv9eHy0R#6L-K^SQ-*T1yMc48g3uA#Gz@^ zNcomFoVw4NA;;E0$kS^yeM%MMWu5|XX&wl~T%&rag|ONo9NCbY)GcX08i|!rcP(x< zy>^7U%WMXT;+r1L80_a9O1;-`;%^x!${4|*@M_vOHw6j~FT(2MVZfWELE1lM(+}N;aGACP z`&Xr#=z=7*(tJoXBqEqc1zAv;f18nT=EIL!38XmH2(&78!piC|xcyW!Y3J@6)%R>5 zn#otF#*A&?HoK1w3pm5u$+=YL`zz+Y;U0SOmjK`RYzByVX+l5_L(`L_;6t(qU3}~X z9&_Ye&uMve@qgdpC+jw9BAG+I=y9m*Fa=)O1fqO$F~6?&Gj!d|#FQ^F#8=rD7C!Bw z_iQU5et{T1pKghwHoA1;;Y<`bYf8(0?8gfCy;UF`lfqoK=!^o@3Z?pnC?DGOL}JV zC(h9Y`P&EZ_7M@N8NUM?l45X>iD#Pf3*eJh61A~e59@wK!$`qxrtiHue%a7UjDO!C zx9b|sdQ{SAMvf#eeb!0X)pQ(1jMdom;{jy42Y0{dxSw>-3&xnoAut7-5bkV)T$%&l z#_Z{_=-r@cmk4_AZjh$NXxi_*fGKj&p{Irpqt2?=W=Ye=nB{Z!fW4amZMhaq)*U}Y zGe1l4J}a6*;=E_HQ~o;c?(l-4ICY-NyKh7!h|rn#BIp)i1J84Wq0~^6@o{TH*;#*Z zx3d8ML97c5SNF2~v00EeWda`jEJ43ri-7+`ma(;`b--`jn16zq#Mjy5fuZkK;KK>( z@W(a=^mi9fs|YpdPuhl(SJ&ag{X57Z{d&@ul!R8ZkKmq%;iQZ^H!|)=qKk4U@LtT} zm(0^6DVw-+-DnRPl!(CTp<1NX#}>OR(qV3ZE3NuOS+SYJ*jKLzX98{ED?NZ=7nMM1 zG!uLZHabe*8O?y9aT? zK(Th%dE^%+aQwemGM9hE<1LvkzaE|P>|kJm4qgxKg2E4*Xt;$TF_vCQPuhQlHx9v= z{<4~$Q&PYao(=R9U4b)7T8UbtIM1}T)@;+m5SX}L2yt{8&qdvbd@6WEN?uJtxBiRN zWvT$rZkG$Kzq%Sf^;+QJ`;YOn))wMfeiLMa?WttqBcl3-1^w_i@W?MBXgh)DkY_={ zWa7z(BXh7;x)Ao=7AG!qZc_7XD_S>u!0aDS0!Q{Oj6Q9WC69)UAVtB8ckt(@`eS!TU{Ql93a6`} zzPv5Gm9xP7;Z(>tI1$=7rvQGIMD=Yo;CaIt%xr70`#?N3sB0p-_19sFrYnRu#n3}N zIuP4pgLnOR!yy$vy5heMTIZxei|1IvpF5AyWG=_ReVhY-HyA^UZY+6wS&K?2pTn%> zCZz5HK^whdY+NG93mXrkleQ0_{sdW&ye|zs)eShaW;4lXp2ip0tx3kYZq3oTjr8)e zI-;907mvAc++&kjbXZCmoVfRp;Ta*^{m~Ov%SzX_-6OAD>5Oul$A&I_{HC z-??1(WEOiAj)BSCvnbiZu|I#-z{iyD;3K#jEI)6+rRlq|&ioz(OkdCDgCuWRniOi< zUShnZ*WuuvCsZQC3BtD+vs(H~VPq@EX1%o@ix0%W)7Z;(i@i1wbIa}Y)S^nf={iJe zJ=?HK=NLrQW)oMfRXnnw3i z(rpD7f?qK?l9Eic@@xo?=z^TetxWKnR9gE_oWJgb9V(qz41;p3*kzn=%txn{wmb== z)!PSP8#i~}yZjb5Ul}4i$7@{HvINAAC86}3`y^W81o{bb4si!xwEH&~nkU=Amd3}Z zb?G7Q{#pm0I~UVwzb7(jxt7yf}S0E)k2?sLA@k0L)+>WlqmI_%Ef^b}|eiaqnPLkg0 zU+D3;oUJJwrAJ%ugX}H~nDoGoxZiB2r_{aZ*d7<^=z5#VlQPo&FPRdfAX1@o2g%zD zq(_JQKHKk3|I{o2b5(6doV%AkvDKSBRhW*k<|fb)S_Vy1_mXF3hRpbpGpwHLD=Pox z2%S|dM^E#2V5BDxK9z`~`OI{(wQPhv{KkR1f7gX^r@JUy8iz({EwKB(B`h1JuyWz; zdSO?6ylv4Aa{lVLJct4RzYV0e=OmH;@DRHl4KXtL9eqm9!2^vYL?X`=e7PCNQ8o}l zHkXiwzv1xl;x)RnYzcnNl0fC@-!bU+E)+TvkEv^($XZlLe2L`0Hq0q8G7@hKAgoQhcb72N2D-`pLxe=vO=Da-4O zoCMnYqM${9flC+jYR^>Fft=qI+Hfuc-4aw_$FoklPvA4O-L1zxas5zRn#oK%EeTJy zl@q_gOYmmfQj#*Jz!)7sGOkQ8*Q|;CF{BOK(}UsurTsACEe7|qxGaF~C+Nm9x>qQj z9xCb}YN7s|8`zZG%?k&sFN?5ac_v!zGGBPQxj^7<`rJkDEPWY1*7ZR9v7A?Z@Uq7ITN--whDnT@Qic$@E8) zJen%qp~dZHI4mnm>h=_~&gxyv?9gDW-{ecvEO_vy*x!EtGvGcklP`vz&2@f^GyU2^;b}*hJM%Z|cfEo=H&%!pGhWj6jT3pf)AM*enREF5Pq)F(%8q@Lp(dXso|7j&R2=K|<2{z}U-1n^{- zFn`;DsaR&a2v*t{*N^&m!~TV%R6E)XL-Y91d{G>eIQO|{Z9Hkv%7M>T#gI3_0p9lR zB6Eri;70!-{XW^rR9i)oKCx>imYyrHSuqQO^n7XL36}mUnFv3}@3Qg1bLuu(hC<%Z zMclV*oF=Zxh3*hdG8Ur_RhAdY%SrFx601UO_7Yg2G@ER>k%Xtlcra>UN%~wH@n6JS z_B}a`AvJf5=x3a#HxDsr;X>u4UzL@S{D zRA8s>uLKKAE@vte1_n>1VTb)Frk&mn`x5HReu^AHnBK-VT6yw9!mpv&jT+eP(OhTy zQjsrJ*@FxEuEV>fZDi5~VP0!$E!G-I@|rW2nl+7#kj`%**j67;{hgI*SgQ|e&KRei z1DrR@{tVtarh`S=Yw+cYCQ@%6h+d)u-9=a`rOU%(7cA(e?+*B3@EquW*F>+`>YyGG z2@=_y3t{_JvU+MEobtFv!vtQ?HGTQ8WIPl*zTLurm;sb~9|x-G9{6O^RHOnX_}`BL z{JArf^KBUdJU9)8VM|e%`(E0feuiB8E&`Rp*D^hYbBf&fbozw-tQ_6P~!C z>e{bVXW$QZeJrBIRxzM=*b!3RFvw?gIp)bTZ0+eKTq1*6V|oB*y{ST_mX**DHV$c7 zR%oQu0Y=s3koPzYr@V{BL#BM_u`0%VsiTm(I{;NY+BgsVWl9F7L$zENqhfU#%GVGo zadwdI@cDta{$Awfg~e!JY>cNIMCpbF?s#C@bh!UGlGvyl0MoP^M7fTRvfdVA|3eNE zhlO~~&vxPqZqK6nd=jSe!g1TW^E6Wb3>MAJ$LK4vcx(C}8dk6r2X~i|rIDM+qDDpD z4}l9beOCzXeEF7I_U=M8JFc^}tcmVW%cRd1>>_ikWMQ5(f~$Tg2FEYqa=6c#yux*G zXW$u;$n{uynhuj0Y&4bbZz0P_2|zQ@W#xbhiymWB!8vaYM_ zLUk>u=w6M%7%|cN10!0V`T9F zL$_u~(wuz>MA12r7_T{j!qIWKIw1yg_ybtExPi2(JD}Xu$Lvd{0{)wNj~M;aVWT6I z_$Ft5*Y8>W7#^+cVPl=8P+`w1ZfDX!u6l=(1rmoDRQ-mM)ss1HP%IjmJfdb!oF6VG z5;E^+f&5xCvgl_LxwPmW#tvR2TU$Hmut5n%Ow7mWEv*n!DGIA+++=0PxLNPKGR94f z0`qH}>mp$T>e)DeT}LxmW=zE)k95X=V<{~=QU*f~a=2aAAL`y~^PkGq6Z8p$SzK;X zqEwM)shp<2qB#DPw+x=)%cA_%X{7b23$@C1CV46x$LWSVuyG5akz;Re);~vL%*9Ci zRc#Wy_$C=hEmvg*}aA>MO2$x?jK$SbUVRp7Y)c$x(mPo3>7OxkicaZ~X z+`T|!%Qj+jUlXo&+gyJ z&^^kU%btaoaT}n&`w?SekE!rO!JY=^L{Y{5@$43iw!If9^IK`EUtn zYs~~*uQV8u5+wVZr_(Dx!*E(_3KM5$PLK3|puM`*u(9Y2mk^qUMFNL+n%Py zx%0w0@ZwGj+I3Wt*A{M$UnP=g(~DtZ-SiRpN33bz>8q^hifBA~Xe(+cG=aYe(m88c zoReouzAw5?qgKCR=Y^)Dl*@S#s3-&%HxJlzkcW@DE}_$EYSybv4nc2VnBIn?GCsejma3K~jhg748p zY?@n4m*15JBMTe&mU{1GrjaGOhIBs_3ywK{KI_!ah(fC&G&{#;Os5M|!IdN|kYa{7Z^{}fp1P{&{B70>yUdW3$RK3PB z3y(QNrIY|>t``79>)H6=@NuM4hoJcVBvcoj&Uvt7P-x#MESl(z2Re@8%_2=`@Kt1w zZk5I8ZG38xD9roktiX4imPg{sklke%1gcvF;N0f7tjpBr&<^ofF!GuSNzP%s_2<)f zO=rlG3vWQ=oFGYkAdHS$3O z?grn-yU^C<3|Xcjh2F_w(04D0+hI9k>*+E~;O<&1|J9Zz9kPCR9U7^-}4G5nOSCbKnSVDrFhlI|r>9@qxL?ebbSNv#i?GUUN@ypau< zK8=}?=8B85-oSWyBusfS2dba#LHXm_(5ImTH`IR9N#e;UKk^5Da*WRO=^6ANe<$8# zlz6%BIYg%_0j1ayv|2a}w%1~?Q(FZ;`|^p!8ef#2Iv-|VZ$WMTHO8Xw7<9MEfObO+ zWLvtB(Z$X1ro0g2J`R(KcGE$;JOt~d?qap7Gb*(XkxAAEa9CB2<9>voOYmj-`ou#r zu5S;5>Q`aqkHercG>w^~*aLz8q=|g^Ghz!>@T%lAte&t7y~D4-O~VA#IaR_e74@Mj z)mupNOCh%Jlm;kGk;ki#!g0nHQB*O$N+)ailhK`H@O!^4wEoiuC5@wa;OYfp6rBOf z?|Q(yfHLy+s}XBlH5;`XxQtDE8(Gs+4ZeO7ymR@>$ksbbz|IU|UoN@~V!t-ipYPAY z7wbJ}zJtqsIB{LR=d)1va5)?c-U>0fA*`@(0$!$BK%8BvM_3;?44j1tJEfuV!3ZWC zRH%RSbSo=np@7BymXNH|fn3`T150a2`d`cGe%}t)N~19RUJA60wvfXMHn0ZXuW)^r z8!QcwBzmDoP$Zh;(N8-FuEoW8h&W;wlLvzVe7f8s8WfKQ!^h?+SQ5L4Uu$AYAKop( zx2gK5e}*Nw$9bge)ed@WO&1OSl!_h_EZp2Whb~@S29M9bHnaCT58_+DLgrW>5!jQ3 zV`ZjrWy5Redf)_WeXZgMe{EAB zI-!-x+sOIM4dUVR@I?NaU-2;bFPkhH2xBAfvJW)_z+H6?MBVIw zlP)6EUgEi_(c#CSr5cG3H+&_>YA<2T&NfhSv*j`XzBIGy8@)E=B#iX@ByRS){Ii!0 zL38RX-f!nry3l1B{^hMAmr~lO=OfNNG$IbAWCAZ}!F#YYi^jx-IrMFfJk@d6O2mJb(uMYblXe5q3T66`yZX8Em1cUm9c4*hp0Y~0Mz>!T0 z!P1;TB_VHo9&nuAv&+MI?SJ4#;Zd#^ZGY&;-@k4E(|FBr-q+YmxFb@HE22Y!`&n` znEzY@1fOK%sz1AkI!8#4eOO8E-Ps728~gBF zhVP%J<{Wn;<@sJzcNC*n&xYaJ^$)1hs55E#dkEIt>oD7-Cr&R0wBfnyHn7FDk6HcU zG8h!hg1Ihh_=a4baIaSg$DLB)jjd9qD^(ddxikwFO^auSf;>=Bcm^foCg>fc3IloT z@VbNqU!7w#?mc-G-BLt(erF;uMMfO+oVM?w2tOIeqb-Znrg&;ky$jja; zL%)f7g8i5Gr*hdIvE6i3MTh6+_Yv-0OUHb(wz`E* zJSfP2iBG>&fUHYD$$gdwRqt0Y&j!Sq2Zu$Wt=bmu-G4>)sm0U2ZF8_|wI(dgzKI#R z`*G-0ET-Lb0_(QVG|(~~9yp#soue@rC@e#+Sq(#oVFpJ3UWwrcFT?g@i_!P&CKz;B z2%5cb=#6=2KwaMe|J3WEmxU28ZNCNNw#|j!{B@iY;6J8z>Kc-zb;=}V%6*y_v5iFd z_K<)(_QdwGI(SM1u_AU{r^(v1E&^nCfA{u}*!ti`_5xp3F0V-Ey(&>_C zz(8{z8t>(v{Tt^QY zLHz9Ggx8#oLuvF!l3#EDr+8YE6*Fb{Njl}&GxDx(`@X|)*L5F;eJF$%O%G|ahBTDE zxB_(Dd9)5!0?mz;r`C2v5IC=lpeqd(qLjI#LG}_iZ4L^CejQ^dTZKb1KhFzybz- z_Rx$~>KOHpb4OnHhqZz-c%9oLF9;l_X`UZsqy5c<5?lUtzdS!3O{b}r&SgfFy40??FJ5k8O!Chv!(fQHP=Cirv-as z=JOB7al5pq&1AR#a*}yEimIKH=dE~go1U2CPxUXqAgWwG%;Vt<;y3>zegAbo=JtwE zw})`CH_;O?)yD(ud&1zK z#x8jGGZ7Y4FM%zct63BNByc(K3z=!ZsragPsGqTy+qIuDi#`7Wl`LY&UsqW=|5hyQ zXltO^o?>`^-b_69>^4qWn+!Dzb-?@I+!89C9mu^lNxqMP zD&1Hn2jx-bxL~#}hL&(W@q7a|-&z+=J?1hg+AUD#^%~l34Qb(~3)t{ji4u)eR9Nwk z^;{+k@se^F)cG53oCw3_8OhYHMuL~d-Gy!+et-j#2f%2LBlf4e!Z5E04m${v`%e<# ze!CiJ9d?6{zTt4=YzA9(eJTA^@PqXG>GA_6v6$nY!uUzoBE9vH$&-u6qgPn6bK`Te zE-;ih{5KOMTuZPZ(id_znsGh<>*)5Id+#Ka!>^P?*f=-^Q_jvu*+mRDvrXjxSbP=z zBp*;AyZcnjFc{86Se0q^%sdp%k#c4H~a!ttdaps zu7h+t{TC^{)lSs+1%Y$e0W{pK#rv&3MAi$Y(*pGf(zrRAo-z@IwL=6IGcV##=QHF` zcLeMXsigKxZScU`UF5*12o_iP(eGM(aIcoD1WrAW2lc;CsD(&5d=KV) z+;MNrbTY!wDk}^1Qu3(St_a4Ya~|1VyAG=oPNQhVM~*ce0^84XT@DLj{tNJ?`{qSJ zK=l@QBGZb3MyWLRautop+J}0{N?4`-mnw%Cq61Tfk@8WDNSz8~+^vQWVg~#tB8f!A zUB@7?rJiVyBTSPCtA zpXme%Z+beZm075zjpYwy8N)M~L@=j{>@?p1o4(D*sa7HQY3@3Z9a#avEfx5EvH&kY zX)~^@RG>?ff??kt4OA`MNACQ136)Dn>C-q#-if>GpzQ7y#(iV}=VTkuutlzL)ag8W zWz7XEj+4aS@iZ_nnd)sdK z-tY$g`)9_#ZIXcx{P{4eSPFc?)u8pd7X5QmkQ)EdKyCkVV%&I}wAVC~{VzA;gO&tp z9vBKl`Yz*OFagD?ir7Wb)n-NgIViJCjw!yeo|w-$Mf|!K(@ilaNk(J|P9YR}b3W2| z#ct-e@N6*Jrw_@^u8?1=0MBE1WY$GrtWiHhum79~nu%-qwI{1!woM-0aAp*hgID9f zLe2pp;S0OZ?q@p_>}b8uIBR)S8J&OSbDUvSUh(ouTsT_?(!XazVenpD`Oy+TMGI4v zet&FotfX&s?!kG{VtD58jxN3M8zPPvQFGz7xZ$Kf7$^UM-`x47cI6bd9jK?B4`$FO zr@qrq>d9og@J;5rVLomX>cSWN&t?^q_QS##rYP&GLp=RPNyI!evh#Qj`&&ksw|39S_u=C%c|*0_FI7F#Izc^Op|OuF*ESW0yOWpZtwV6K|ra z8rL;6xJ3Nq-jXcurC{$)(Ns^F7eeZ&j}(7UFBD&8#KK}`Jqc61OawYMVTwUI8jS!7zSl%o<7gak zv1h;W@8F_UxpZ=`GU|E#qL~64!8qUp=&RmizZTqsobAduFFu-?aM+W%`E-n)bulC& z`#SKlzW{FF7&61n-b8?TL$uxuLhppFc*-#oj{VhSeH;WpZJ>b|X_zyuN+I}hybi-d z^x;Wf2yT3PiTsu=g^Gg-IK1;TIL-?~0V#W!Y8izsaoxDm-whW$oCP6X@hBX$8fN4U zk(ZaI@M?lhSksoBFwu1~uV~UFo@H?`WV1^6=T8}|c22^i7Cw>N#qBc8+u3=s@v!>P zWx9D#9Q|$yvQ8te5HimUs#Y)N+#(?u#O2XH*~Y_=pB0ElsjynzHy~H(Cf3Om8GCN6 zWTOL4!eX^|jQB}+(A#UtySPpkgYXwgZfRm3st*#QYxZQ)``gUoHCeSA1|E?;(YE#f zEtKKCT3AR9J`#o%jyrJ4r5|)u#E=vhCcv{#i{Z3UD#<(jh-8*r0e!W8lCOImP9-cO zxu1`+lY2vOY5xe>cq59r%T9&j)7NSD@^QLpnlxI!Z?C`qJRjz-lfZz!0ityA1QAMG zh8xz*2FWu;v~2Y#3IC^WW?Vi1Z@Blp)Eq^$yH^SG|9L{Mt{!+CVDQWYZyXBsV(bSz zp+M4|#vn51$wmNaB*aTrTY8QzCFXhS^d+PGm0T(3Yl5rse)} zly9C5%SGlxuxv1W_1TCzZfK)d8qScfcZJCg(hIYT!szYvCYWNdggnXp0`@7tNNPkQ zm(5!ODSbQ|R5ukLlyic70VY{?9s=4d46J)R0t^Qy?T^mRBl_6^z0$MeMl{Th zVHS8BL1O9)bguZyn5|NVa{FxH3I3qFBwXQ&ts;D1=0Q_e{-9sdh4?**d$9TP51P~+ z3FS3T*lm216^;IbV>6n;aEAwUJl+Y~RavO^F1b!|S-e?<#67rGDhS;Y(fB!FCMbM1 zVQ2XyqN|NOlcq8qBl#zZ)&2cgCbS-#1C_BRAPVyAig8U`En8ZW3z30oSi36{?f=sP zQK_YT8~uD!_gg7krmq{+^aSD2_+FbabsjGjsfycTky8#0D0^lZpNBTiZ{NcbKBpuBbV0F zt;bvz!Ig!+9HbJ0*NnW@Jo~&B}rLr5D z-*=PQ{xXiKQgH>>$DW}>{Q|(>T!NwBbZ~jEJT4iLK%G4=h)}sBUEtRZdhQdUF#0L{ z>&b$nD_=9>Ca>YwfFpM2m%sowJ1YE^<|`DmkgYs_((&{ym1THzg+d(utx`jM13l7z zBLwngWclhlWHBK!h)I31kJzmbhw+*UoY;MiKCmhv&q*2Q0i!5d*MV*O-xB+|rSxpf zb9%u(54Jzfg%001Smj*+Lbj45=6pY0>ah{+!g|p0pFW5+o8Z@!EGW=)gM>#{z~9@f zu0d3pchXghxKFqTk6+E=c%7Gsj8+%KPk8*Y#NBQG(z!y zHPGYu%Vbb+j7RN%VquW+5`yyt%#KNf`RQ4PSL#C$}g4 zCa1KHP_K(gv_AU}2)SjV^6L^DOOC=hp9*k!(oE>NJ%#7O@j>vFJ`_0*nCeD7Aqyph z;drhGeDbg$-V;vKJGXj>vi=M@7}*NVVyEe)NH1`Lwea%Wa?mwBPhbCe&hmBd(C$qW zQ7)0s?Ef*H?z!}ee2GZ}k_niw|1YurvmPHhZGjwZ8C2IYfeTwWzSH^FWY@q_Xbh}p z*3B{{1E+oP7S~_)cy)^n_@)hRtNu~B&zZQWF&a-Dngmy^{*YM)R^&(PV>Ya24pvx) zvQNKoJInYnl2GlAA|Ac0W7JcepMR7(${K@k+9xXaMh&z!nd5o$FK2=Ci(m9f)gYC;7e|k29wIqb;Z(^f z2D7uL}h-QhM7p8Pp)low&ZS2>nh+uwy#>MM!le|cyh9uL=@Y%o2@n6IXvfxq~R zXhq_7QwQs4GG~Vo1kL_TRbNOzkv+#{o8Q5CY3`%Fp*EMxX&_cP`|xwoeB9#vn#^dw zLsGuyLhHm`ptEizeQLOd3KX`{(tK~$$Y&jDgsbxWR?4A+wk^~3Q-=3am%#DjMBJiZ z0LF*A!SSD5{lVfax_Vm}HcDOq73n*)LErC0S>rL4X}eekN{UzD&+cG)fXf<%hE&1J@w?=js1320S4exezNR&IEAY&4F@DtD zk9V{dz&rW5@NSte@fR*aqr*P%Y0Y|iePu=mBIho}XjpF+eoOuzaO09Bs}- zeSQy3_mSa;yP9x&>MNvvs1(b*vj~5tCpq)v3v+pBR{d>t6aJ-Lb)k2h=&_#`Xt+9mbOl`>gPQ*85k$?FYxt^OKPbY6H zs@xP|j|%C)!s((Y8lA%B`tHDy1|ANKJc9MLk7%Rg6{OD3Syh|6h?76Sx9A4i&WM2h zlCSVGVFzr!=Znf?SLlUA8P5^CW&k>E=o zuOt>5pMi?KC+?}#g=n`c9NYRNEYx*?i+-o6zr!eX_Gaj-L;Xy%!U1Bz^%1SSgK_GX zIDEDHATFsjA|I_@l2^L@7^^5sEyC--Km8)Q&8(pLn;bAX?J`;QeihH*WhvKPb})14 zaKbxx!-&#{b5MNmEY3Mr3cZh2@m{J1MwcC9tE@Su`0{hOd#5q|8J~m-ndWq{lpx&p zc}1lQ+i9fQ2P((yqFoEpnKzMy{$3YHUpLO8RmXEktN%L^oIeU11El%&5l+A~>p^AU z5e(Y*nTfu6nT!;;;_^d-ux$QJ)PA}X2jeSIQ8jn7c!(kQ9;;(#A0_i9A zQ9SXLhMZU8T!%LaY}TMsyPaXP*>TdZpFvh%k7Zos)NqTo6m-hpql>~lv2~^?(SxMXO%Z5uDNXKC=36IZV!y2&D11E!_~#K- zR(_5LU;UtpO7iUdbDW=jfeAeutcIbll29$am%Qe!#Wh~M0^wz$>G}D{p{a-_PoIb*K9jHK^FTr^8zo+cjZ7v5nI)ks|X+=u)4x`as zE7TqpgzGUu_-uJ3Y(KJ){7~^SJ0#PGpBq|KO= zEJWbW{Xr0ko{1V$+-oOHQiXMQ6Ud&eJJHEio6ZZ?L<|?>x9{k|XZf>eT1PG|+B^-C zWCi#cE5+g5k{VD**97|qr=X-NmScuJ#I?m1WLn%``bOjyiM)CqX6{ww?K1Er??-iD zaQ-Q(pP7PP)$1@nSc*5zAQLAK#-V|VDo^Xxb@E26mZ+|K4KD-lqQ_N^&yZ;aBV%s3 zDXobN=?}72ew?pr8kZ9~xfU4nJ@nbxjV$pqg=_of;cKHZxFlu*lOzGedpxjtiZpMw zi#K+US5UWVefFI~2^1X*V?DzE(JAXrfQ`gTx*#wQY}IGteH#sW>^;X?I+4sW0cPME zma z_f$*q!LSL4U=p4-nqB*)|0m4ZuE=<9AH#sE0L+az0iXT4h(`V``r*Y!=$yv!2@FIr zo7?qGFYXu7Xv+v!HiLH160D18X*v(_OD?nUfexQ4%3|o$aF|c0$Z>)(L3e^^R7qABRSjlMt)43DXyQfU4$3SQ>T)QkUyM*%}+z zUPsukTa2J{Js)Rf%)wmsNMiA0E6j?u!q(45u!!q~tZY)mCw?bk#o;jU%SwP23wwwO zT}Jc2aM|TU7s$uShDg5ukD>F9tFaB^cw5p=JM^YPqDZ^vzD^QR6eS`fWn@GeLPmQi z4J}GTMSIEYJoj}9Q6VH`6j>!BMMmg-{_pcSe{|0C-1l|;e&26A@o<>Hvv~dxQ-_+c zl%GK+>wHA>Ge2pTun;MoKV4ux!xGbXeI?5z!=SF#of%{QlC_GDY+fAvN-IOE8+=-} zfW9`D1yc3Gms2vyk3y~|SYd@t6C_As>P9g61Q)9H z@ml&MywzKdldqQ1&T$1ap}v`_l1==kFX^nKwhtT`iH6m?yHLB+53MxjfO=sE2{jG{ zhXjs;>GOzs4rbHzjc4H9vg@$^+7Pik@Q#*M_Y>di%|tpu6<#y{=;UP;q-XmRu;g~I zapRxBlN-A5XLko2g9!L#<_nF+RuJMk4xY6g2M4{6ux(otms@;?(Pg`FZ@dUvJiW_0 z=Pm>5$viUW$%BU2UPqSY!ou`hBp!cNPapGzal^8$xTeDa+S<0mVRu(JvM~`Bk8Fh* zV{UNcR0A!Pnv36UFH#rzxx_-t7Zxxv#KB7#?qBLAvid%tmSjUW%b8=>lnRvZ`$xB$ zA{)Br1ZwdNaaVRb%8wNgnG7rR`z?%r_f(MWHRjmN^^ZkI7en*snefB*Ac**%fd?Kl zxxdNedg1k8Xj@219Gt10fPoEP{!*7EMa+q-fT}q?tQy$`TW^LlMUC99EcY-~d7VLr zw9|?5_H3FqIT~7T2SeCy6R3IPj$W$I>D%Hm{;Mtf@ZY#0YW3dp^;-)uJ z>m%Uh%o>i#|BC$mFOm#h86g{z4q@Pr8nU&@4)<_-q>ztOK;=#zzkaup;KPAuWMe9>eB(|&~G zoEc7VY;qr(F1^F$t}|^6nI^n)SA)1Mo5FKJYh29D-tvnxL8FF-Hk2i%0?=?OUKFaZ{hWrI%D zOB#1EgsQcU(E9LW&?0_`(1a+!u|)U2|bm!&eyoz|C)e4Zynv;{}bJ zr~U77Gh}Ywq&s}7Fyfv7+Q~=yG4~|Bc%q$^RX)p1vAqra7A_C@v_Xaf_ZN(P$sJ%OOl14 zSFzYe+gw(Vs@j7?W4Yi^wVKYiFhPyg$MMaZedMI9DBMoxIIw@qP+Z!K_uDQQtu;JR zA@m%55hsd0w`VcGR+qC*>QP`S^OzC4YXWvQC5-*AL*SyO3z8F>$)w*i$vL~19J9?C z6Mx2ItNdzQG}9T>({#w`rLs7U+Y$fR?11ORKjXoF? zW=L}%TyTuU!bLuqdnFw6yK-=&MHM_J>LCA*^N`<5$2=_)!LWi4-R(CGPTy5TH|1JX zExCxBIWEn`F&#WtGyt#D(YiP3BIx>mWoEsThp2mg5M6zX+D|FQ1}Sxr{1O4TV`gLK ziWbQD6M}zq&QSlOS7H1C6M@icAzG9;frRy>($i@k=ziY{lx@X$>1Se5>u@AH&_77e z{oVu?P9aRxd>0x#F@|$bCXj#1FWIU?M@co8ZQHNBpS=BS1?jg$d12yv;h(!1JZZJz z<{&P3YjFscnqQ;!Q#hA)x)v6AAj;W#q1_cJ(l_%8RrP#G{<##>!+TWm=ie%ju~Wvt z1&J{E(=ThGL+4O}D%iTY+Gg6e={T{x z72dzTNaV#AGY1Y9lCxnq*~gPP@BAbu*mKqj-%RpgN{i2d`HV_3`^*<=R4oEQt!;!w zW8N(f6W+YT+fcOPfz32&Lu^lqz$><@Q13c{-21YYImtJ|uj{uG=Q(e%4Ekwr)idIC zJq-q~4b#ZFMfBv#NRpGW7tSXZ;jD)y^kV9B)=+dmh~HP>b^Mr*Q<(;~=kHsN^Qc2# zJZ>RN=YK@ALsmSOMH*&b3OVm zTVSF=vzIlaj5jyu^&2Hay?l(B7Q%W9JK++uTxzuJ3MM`@V;jH(H|rjPJl%9A)qWg& zxx0WwUrgY?-J$~lw~C>1(SKkbt^!eU@uXny6D%B@#7j4rC}7B9*c^TWUNo*{q(tVS ziHZRaM#}K5_#0v|QpeW4_JNQUy$}_&7cINY;pF_?_@~qrwK_OIy77IEpL`HY`s0Ys z!E&yXu#kDCRYf%fGG($X$s1rf8d_yT`>6632NRaXier`u$TXbd&Q%HF~c57CtZU#~JTi32$&bHM6Tmy<6pIJCep; zn>8DLRU9D)rA;yEQ8Sp_ngEVfOQ@gaCnA$0pgG*m@`7vxZ4zm;xqns%J^eXH?}6Dc zoZnBy>hfWgZXaDX@g*v462e`|JLp1rdz!m$h%QdqOigC3!09EjT$9C(s5q9w#YzvD z5?aYk-IcLwD#!m;j)GM=xzJn~2|hgvC=S}VZN#6N1vF4mYj6D6*oi@A&0r`wX5)I( zg3CMRVN#Yht0u@NZ+C=Yt)?R^*m9G6+~7wJcWHoUiYNS&$cLjsx5z6qaqOJ_jOAyn zh1wN%IHRTsUoI+#HHvIix0^L~Tj!J(bnBc31 zc=r)^zHh9<722}U;j@Q=l>q-~-KX_0=iuwtlcBmb5-xErQxM;U19E3+M%q;p`7Z$@ ztgXSl#2fZys*=-=u^7XVOmsSNF^3b;T%eFWJ{PUpJ-)MUf*WR7rbTO ztP2K}FOShBvlo9#OJcp26HUCol+N-`02hB-qNuq5E>D{aZKIdjX@$dty)#BgZ!Xzn z6h{AyJhutFV+J9QS)6$JEjTXlrF&N2hS{;t;Ow+Qd3R^v~1m4I`C6zOlfVmBe#||e`$)nkD)u5Rb z{v;-a;=z@3+H zRqZ018@2-R3Zm)to3J_60_C5C!a$W1%x$1V#a@FBCGt^!rYLW)>MsplmkPF56)@}1 zd5refg>Q5EF-7|{%Ctq|VWCG5|Lz8{|89vPpM}86P>71EY+=rbu4OljoP($L%ZQ)m z5Ar>y7pg~e$nNdeV5FcB3ZKkH`+_)Vy3j+``i|0|&4uWq(u|A3UNIYA^^v!KJBj4* zMxIz=4Y(?whA+~KaEG-lxd5T~*+5G0aexo;y3w#S&X1OQJ|*@GJ3w||GFIoG#Un00 zoFixecYb*Q=N2O9StQa;GWTg*;!8aL(-Q->)KX2^V|Y0~3Ke(HgTf(o6crLj)udkf z-|cd|t=z}%e`QJivR~4#k57Vwy$p(8XQ6tMJvIM#7ANfRfXv@zB!}A|=-V^v1tPoILFrxF;C1pZaf6 zqaEUK&~5{EO^t(^#W8g1z#!ewCjkGzS2k0JH{z^}Ao4TyAm`sGf|FBEaeLi3S~D2T z+UXCoHTnz5G7n8ilRCo9|0i$^`*E1FiN#HhMRb1h99Hc}Ify(|z`|X6v|_m&Z{@ao zG=U^S_lZpqoAs2OEc?sXICYs$O`Q*CRhOXYye0H-STl&nx#67rYU(C)lNnC7g`e#U zNQcu5kTW}n#$*U>M<-%gasnecYY~X=By6!FP~H1kt<(Eg6q z;WP7)O4pOaUS(M3`<&685`?aXlBnJ%#}mo%#u1A~+;H#*O(C zww2l*sDO%pf63cxNuXMEoLc-OWcA2CwC(>wgBzupPhVC*)ln_>f%iH{-`9k`MNL#8 zYa!>3m<;N2>7d?ulZr_b1xme-cIgo2iDH zGY;u>a(j3~4E7%+<`w}s%|!wRTrX3FGjUMdeT6J{mJ{eJ{-$RyU1AJGML^AEKXIZ4 zpnqy15s^L#q2JFyz_oBX=h*~U{E&eyPOea_&F!G&)bOO26v}K z+xwJJENlrlWH{rYL%k?bWCVv>w81eVn}2j41IH&{XJ3Z3fZ2dHnC&oxcY75D{v&&! zKx7RZyP8EEqa5JjuR+LA{tsu0DS_6sKj85_6y@I=Vat6khp_4yr1+aL9{b9$`q&$O z-l8we*UE4BbGVw0aXn?_!ajP=;vbn>P)mK{w$ewx%|YGnEotDV;eKmFC>OfGZuT3( z>9&Qqs4WKe|6GonoZ?7xVhnV)nS`e9@(HaWg0wedq&%n&%)BVt0CpfJ5<}Wl3nv@1}MsLjwZi< zcipvI>`#q09P2)WA zS`iMx1**6-;{p*@nJL)y)&eFB24H-LHe7x)2QmXKVUcYwT{}+`ex^JnD`%et<;RQJ zIe(4GkA0jEaBl_EpsYd!o1S`O4-U77ap;@? zAN8vXQY}t!KJ|65rITZ|)$t)|a}@@Uy5Z~-m9S@fF-cnPiO=M^(Ms?Dn0MS>w89X! zRh!|4`?tY)rZ{=PyMYoS@ zJ=_Q?C1K!nO&Ddf&#^u7Yr!$q7_KMJ!Q$TKpg%(x!V3_-`SajSLKOZqm-CNo;*M^!k6O_+o6mzVtWegJw$7`VT8&fs%CN&1TGPr zQ=ZEJiQGa-{~IvPyA|jERAg*xKhVolGHHL_REY1&g@SQm*nNG8_13mEAp27sEH)Yv z*|AuReK8lJ3#JQHq7rDZLNpw{J_n4+Gvb#u5pGyU(}HapG?Q{2>lSHjda)Vz>T82x z_AmJ6e1&@K73Ek3vVzWiMc~lgfgkiH@??@1L*VL6Tw_&*8OI+(dDBt|53nRjst*{+ zM#4@j2!cy4YFOO*fFAo8j&V(Q_`E(Zkn)%hwj6UzGgK9}T26s&zn8F=^PiHs*mRT& zbH%|MVw|rb0BUXbk|>2m;5^^}r{gN{-2z>#Nw1`mJ<>S){Z1UYe-cgmIvLmdQn2oJ zCX~I5VzidrK(OQsAhl(zyZv1#ULy>7C99!!&JSX^ z`VuR0DT_vpb&~xDQdqAp5!4H4A;p{rDcoHha*ECA6d8HkJn1t1?w|yWP%-KBF2nRg zQdoNZ3zK8FfV96E#{;?BG^hRq?B6<$_s%eKd}pRMl>*l z0f;#k$~x-iAmjMVMr@%L9v;@SAz#nYZ1v;N%D+tBjC(__*9OCdbT?eWy^EJf`vQw| zQ8XhR+H%u?J*7l-{tJh((a%uQDoe8`v{My(VbIanz>N|cN&7AVv79R{*fsAJ9cS^2 znGky%O!G@He1#n7J@aQb2F!uE?vr^(j3fk^cl3z7zW_V4G;sYqS@^!{3T7|#!RdB- zXx#gej=lO#+FMv^ktP9O`(~2D=hFE1UIm?7%XKzSjN@focES}(1@wLqOR_c{#qlft z;16jp+VMG=u4y%(XLIBsz_=63Gzq*mk*B&>uF}PN`5cR9z96bdimcGkhj?3g2;Qj+ zE{PH-#${orEpnn4ckCg%ZKTj}+6tOdwGiSa)sqn2$pYQ;a@bt#%3kRIhZiDT@Z7nn zG}V2GzEe0&Bt`luUHOOnQf$Ube-V_htl(U6y0E@QndkaD2CgPYkv&l*Fm~(~*)1r7 zfCmX2zvCyVxfYG7lk%)PhGk*GM-TAp-Hol*d1(Cd5=4CvW=fh?5HEvBCii|KF{W`$ zctIr`>2t#GUSW8_H;&k3*U+pLim+Vp9{c9k&~8s+4cnNU#Xjs! z(1qfSyNKkiZ%nb)5_H&M3T8nWH1)$fvgS`FEw~v3pOlxuv?mX!_7wPE8MNMM~11n=o2{Q_;&@W0P>jT7h= zZ)>cGwa0jm&op9s1C#X25F#_<;D9Iy?r;ojEAC4isx5;9f0CiJw1VpiM_}yhaf0Rf zzZk2YEo9}C&nTQBL`F=1G6nzI@WZM+@F1V*6Zcd!U$PqYSG^zxmzvP-^(W$bJRiDl zsKX~O8BErk0;XK&ZE#631{Tc23)3C3S}Kzc99ajuA2(4E(up@+@=^1 zF${#Mz>6tf;GZf3Q%MzWxu_1uq}t#V|0y^-7t=70>-f>45(K{`Nn^}iVo|*ttOB%o zcenB}_)Id$=@#HAw>7XsWCM(Iy#p244Wj?e#EsvV;hc^vEKzi)HJ-Q7rQ->1SF+;H z!2LMgzL(i?QW$3)N(VZFk16hMIRE}fD*ij1PO}!rn`LsKrQLv4bG7m1En7VDaz2Px z>O-tAcfVBef?wSw%=C6mY*#vi<6o9Kgpvi3kT59R)Y6FDGf?fd{E_g z5-ky5f~osN@qMQp+1cL{ zn~0jT7eKV{Y<#npOUi8xCnsx9!n~|9s2AaQub0eW;mSM^@%v5OR)peIne}ktuLdTF zJ|?`r|47y_AK8i|xH}zq9^CMe?wO1Q?dJHHp5{6gZ|P~Rhx8N20^HNG2OWM^(%T+W z;bL1kRQGcpm?U3P;IjZ$9Xb!*K9%@O;w@^gJb<#-Vu(aDgEhxjl7%Y_A@lkzbZ`vA zYaC}xA$lgxC^Ci0JxhVDb)m# z2{$0LOr1CEzLHnaH$rMJ%i*a&l=!95{ zvzYIB3X^B~VU)o`Y|@D#`_efV^r$3VIsXF**?k!zXIEm^>nu3=sh{}~C`(F@l!0UZ zM4VsqhPv+c#4obewAAq|Q9AIQo;%)*8ohI|=*bco^(!UHlH;)J=L`5&E{|KcCgPsi z8*#{L7%Cg(F>p+s?&ExJE!@83^`B1CtM7rlof;(Rej1%r_6nAS-lb>ntwsG}SG;T% zjfz~ytHW~(bf3*ed5Q0IYDFWB|Ex_1)p__kfd$-Gls)m7zpELy}C?RRR92IQY-A9`4QA0LPcQuq(c% zuwoSpsaV${tf`#{vr{ZtnaYEZ@=c!|&~Jys)?aDPqP_6GV?Ir@mBWvfT&78AGtAEx z;bog^viqHsP{GF<`d`cg(fc3R7rXLl{R?CKxTX@cb+`^0KNfyZ?4jQ@9+Fy)#Zwa> z%cPnJQ-h-CPz62j4lS-t(Z$wS7r?rmVr2K;H4Xj{|=1yi3d}M3}Eq;($>iP8K zlUX2k&X$$tT&Kxm3-LyZakLzWdR!krb4f zO+Y>4Ibr6jvZs}oV&Ly^(wyvu;WM6+n^(=zuk0-OWt%~4er>V2s{R-!PpF}H3$9?E zP$2f0G4#n-Lt<_<9d?dyf{pb$Tx_wYeh$as@<0nZ^uD0Uv$n(a z!Zo;MN*@tvz0SF(ibz4Rn4rEdhNi;8n{N9e8IzJJ1w&co<-6&kodd{!4V@Q(4}+ zqo}BNo#gF*PsqUnl|q5GA}LINJ@$u&{%O#c)rYHj=i%^XA%SaIKN|Mj zXFg_3AqTkZi^jk({pDIqw6{D(jmtMUXKoQ4=y^oTgx-T(TtEJ9$V0kr6MTALgX8}_ zrxT+y@aghKQZl`YNZgbm=z5b)$#(x)4kS3eMj&@?-=F0nw$} z?9^|GaOiadQNMi(ms~$YCBGbnrsxW|*L@!BGo2uNyfh~GJ!euE=3tJ~3Od_f7mhDm z1N!5aLQOy__H&NZA%kr0$#2Zfufc=YVrCry>Zcpm`Liu z=WJh?GPV<(FRccJ-knULPc2kB@26S+I^e6cKlIL)hXt?Y(RkcAxG_EpoIN&cBFu$_VcLx`^O~AI}?|mX=7i>*3h$c zqZs{nC23!S*f70_Sgx3b+xt_2Y>1{0k2Sz|sSo_2YX2?YB{G}fG4WGKTpbJWg*b626-SbJa64+s3q6Q^)C0& zC)~WQ%yT?@GI;qFa62ys zd%JXq#^Pmg@46Y)-J!$_SA0a@tgM40Bm;{$)@8;KZHP5;zz->=sC_{N4e!QtxrY$& z&CUnQoR^?2Iv@WW%cdvnr@*4qtH^b8Bj~%8#y0u8;F0A5XrMuu@M0;fx6Ou!MaM~q z@(BHOs2LN^>7x6^AoTn;gH6cY4}IxtNcwwgJbo$^S6tbLr6C2hZ$&p88#N}48}H*4 zNg)t7oyaIFSJ8IWIiNLxV`t1zfoz@u44A6%w)$G34Bw3YnK7Nq8ppDi-`plUW~+1G zmrHO^$_<1gy{LppJy@&8(s2&4*liX|$`8g8&p#dzbUViS#Nq<->Df3za+)3dExdrE zIg7wy+73{b7vUX}zk&nydL${OpPpZ`1rwD#=)++%QuV=-kVDW?tc zjUDU(Pp*6UOJDH)#UEUN5$u!Fi^OT$0ut7jMTfW<%zy76Ql;~!L35lwY-_y({L2o4 zh6AUGrQ85nbG(*B^taJ9!x{ znC$Khp&~|bBbN`l^JN5QrjNn;(^_E0&9f}0PZDHF#G=B70LZ$09lSdJV_L$?Fv&^+ zyrx@FVP{cLljibzGlFe)cS=Y*)(wZYB=2p|Gn8E> zN~W0qy%TVr0A_y)#z}3nf*eozX zc7YhVT*3A3kGvqy(o>l9ANml<_=0#rJ}facF|iJQmVBq1 zU$ugn_%RavEQdAlv84S&Cs65j0~K4FPgU+cfRdQ;Wd7hZ%rX^$d&=#kT0sN6WS)VT zwHV*u7PaAanaKf4grCYL#t* zoD|?@o?GdKZ47F3#NdGy6g_U-qbmQ&a=E7hI%)m_P*h^Ux9B??^e!I`J=ez3jWe;G zRKk9fnPl(IeQ2{siZo1>6&Qu~pxgWna6h>aa2_WfT+6zS;1*opRl$Aqa0 z_nhO!n{aG&VT?AOOd}q}kRRcdEN{pVuBXO;^}K9$eSZu4Ed)VX4t_cnODbS5!-;)9!S=8?6Z zb#UK!D@-jn;AQG&KzU;UWC#RQcFrV10^;ewjV9)6iVb#loWZH3jN@`6Z=Z4;&3AQFH%|#}L{yQvDes8o(=Zfu zc48epq*11q9H(N)fJGkT8IqLDlRwQ;PqMjlMMo}2Rn10G=ZaR^IOa(_Ppa^4*K+Ju5dqvD?Z7v7oTtG3E8l=)QGC5wMnc>( zVfk4xT)J2bwiR0AqS8$4^0-Hi$ICFhC1YS8qRwm9Ou_X|XCUS2JsRb6h8Yla($%Fg z^pj*D=jLjr>vQ$MNT&m>)UKi44qr?(+Yk0bD~a3>DR2qu}Ab43Jv6jtE^=N8Yh0+*F(olVz?_sd=jSpfr=89QS~| z!Z}7pxh_V1+KEsm2D7;5!s?h+9N$R;vsT#92Quwsa_My9d|8#(y4)Ra1r^Y} z`H^U9@r1R%x*Tssp2Ofpo8a#kZ*bW&l}?#;jSfHYz_tnr!Ady?s^iZwO57v`H{a(p zsD&dqacs7@$!ff`RsI;TT$8ReR20O!h`|0(Z#o$Dj@;Rj3T;x0>B}9tBz~X*P)`^O z$F<{`N7vy}Xer>s^)zT-9GofRc*xgh@MM0KgX+Byu*jW3R?}ZJyyGDD1uej{xyphi z*UHJ$S(zBwTLc5$ZuF7H8B{zV3x5iZ^14eoN0%+fP8dE0D*YpLz4uAj8E%gBeGCNX zTmbR+To3%830z-$7F*^?z=X{cP&LjBO8+aS24AP+$}gPTW_vuczbetubp^aI2*)d% zbvXa!V>s|46qh@%!XrKTsBAwAn1e_@X>8)0fi1N5%4ce^NEQz9u43zdI$+kkii~Dv zv1$RmWc`$Lu)#HioOe)V`s!@xGR^7Gcru;_7CnFy2l&K@}-9>g4nf96MRl79z)y8CwejpH-^8gmEZvKCS# z^b$UD`MV7YCkVT38XVyson@Lbq^hP4A8qPmO&6w6gT!^5bG?L!UK+6}X-k7gQ5jYd zkGY&xDc2YC)@PmiyP@ns2P%7NphKn#ep$zdXCwoDj5~>geL8e@PXOu2-VSxkd)O1> zRYCM)0d{4o!`9geXmlrq^$&AE-pjezU3#8x|2zfSOajPY+%s%*5nxQt3s~GNgd6j6 zv1v8X*@pXIdx1Pk?=!|Na`W)cI5|PE-6}TQ;xyT`RTILFpM>u*Vi^4}0@P2hhu^El z2^1gPBl%x8V)mvU5~!5Kb&;h&*kU^(lO$B6a3zgZA}EtTom z^dG!A_{hfM^-`E=ybaE5sU^LuCZdn^1iah)(Pm7=7h2vS`fmMBwQAPD1n+n>+p?aV zl@-Q=5^rJ2oA>-X{CVsGrEHEBXo=09X=pZ}Nhieb#rN-w$dBs@wEbNSCO!TSc7)eq zfs8n=AMl3rzTq&#eh(Ah!6$YK^Wf_QSs3%%g}uqMaqfxlWY+nel-7$p&wm)Nw7+w_fm8#8#Y(aMq7;Cbg5xUF@O%;4^A zVM*7aB~_G{w0aj=Vw;5P$Cp8QR0C$}w8C39miWCD=4quka*o$Qa&cZhGsEB-^(+(- zOkLm)M~2SB$3S7;H_J}CX{8a#e^P{--D0_pJLfDt@e{Ksmx1P<*@r^Paod3|!XA51 zno><@W(E@XzS&^xluC+rFT~!X>15{2Y;yd!JucSrC$Xtr=sU6;41*%*Ho-f3!8wmk zIv0*%R0&h#4&Vm!@g#MQ;Co^%j>& zmEy5QvoM~^$EnE_!1|q$(0^?fosnpb-vp7cZSw&PK75p#m&QS#ya?APdXCrjRD#Mw z8$A2uC<*u5VKeI>LJZvkkB`PO-kJH3G~O5;CB(=pj!83h-Z>25sS;Kw1h1`{fkXI* zd@_r`M$?;+)E~>Hj?=)^LIrTWuM_=-dQih=F6P%f16nl+OKR2v?<=3b@Ru3A>oyK0 zV)l}R-rKn3OEy>-gyNzH^H5msDCQnaC;0jiD}UM+4LzTb=IbTQp!#w$s8q=DI$koj zmnFl^Z~AzzWIxk8a2&hScY#v`_YJu_Oj5=Sh;UXIT#qY6<)znXLXH(IT9!j6?Xd!B zWhum;xvk*g}gsEW!9U|ha9cRaHHZZ9a(q@^gVVmGlDYd;ZZH@x#)t-?iFA@ zc!2C2%7^!E&Cr%~8nxy85E(t3DHII?;S(S-Uj@43#tD>Pek8WX!ePpke)f4_7kQwb z2I7PDTpuuvi7<$x`s3&Dbj{<4TD=hZN~iM`?#+Z#9|Y{^C_~m*hLf(pd{kE8xU;UO z$SnR|vUsg2ERNSFLyhOiQBNJ>Zg7-z_NAa}%Q3_{1JroB2EWVA1Ccr|hm|YI+pHKw zOXpWYYSF zdAOFBiQ1=k(6ob#sJ1{FuKkRs`}gs1>i8_w*3Bj|XYydWq@uv;<^-@DTLzQD>rv{V z9lE5Sgo3$wv^qu_-Rv@uzP82T&?_Xk&Vp7u3Zc37QQWzV^K`G$z+D|{IF6wdWnW~X zv&jN@$6Q9kw7r;9A&Uo&_<)D45QsTgz>WcNj89Ua)NwMl->qk^6hFpwN0iaYXccib zoQp?fAJI#@x%tdoDeyWtnWu534N^C9E-G@K-aYr5(c}1a;_X-2gIl@2ufchGw0#+f zxgSOMNt=nqP$VwsI!e0p@?m9k9CG+FHf?ByIPr!L1YoZf@ zr#66%+JO*j>j=eN31B%@h4)jQ4}H`0A@SxY_a3=R941YNW_f!&{jv!@WJRF5K?2^a z_J*@!Z&D?$(YQ7v>(r2-J7>AzCx%64WLx#C^ zgKX~qPw*&WugzOsA)cdjJNfhID^3v-=S_D`qJEXPV3B7uNd8_$)aJ|s>1!oe7V8A% zTjI$!Z9_qoqBsn_R}dH)3Sift9dK#yT6i*jBkY{`8fPB5M;*vncI#LzoXK~EQXfk^p zT;R{9hfP#Oj&{iPZM#bEA{$V_4k$b&hzNvpphasDs}{@j_W z<#04EfBGC2Y;z!{eJuSz&qLGkqx9xDf#16B?^gdq~PB&#R*8(;G|0Bm<(-5IX1+$r_cfDYpPa=GkPo$4V z!-#zl*K4b(g4U#^=&rpN*`~K(cjF4ZeBnHP>)|}(bN-OF9$|sr=bI4rw;$bCUTmoK z9*@nZt?{ay2R7o65 ztKd~1OWM|2(b>Od)3u&6;2hU&3|(A|-;A@5*A< zdm|XGhb@&wr^)UpBcZ@@!@?z4l-x*9==iu?zrf_d? zjDDQN{V$S2K`c(;2t=0H?fez11`yowozYM{{UvOM+Dl_kZAKX#0r&sHeiFWf}8tEm5 z4*H5byIUvWoYgaBbK&)bz?^ zx6?Va-QF10mp#E^pZUa~uNq$YJtT#Hx5JdF8l;hx6!>LK2k(<*OnaySk+a-D4CgN) zyNYsf#!eO|F^wo}^Z>=nkK)44dK4%{a(tX#D!H4}!9MRNi8~c|hdOGhZl5->*qemF zxgEEVGJyT|rpZ&Dyx)wdqsItbAh_PQt{7LYLZbnUhgzsY<&vW3!me^!)Iu^N*1=Fvf$GCG*Z|h zgZ*z=Qh&i1{q=s3i*H2X@k1w$(=`q*bQr?Kuq9;Lihl0UsDM`{zl79m6U@J@13%_f zgQaH}JmvOxtCPclu&bE-?zhCuSA-{c*vidO$|3s9W0F*hL%d)(S+^3s+9HA3c^M{ck|l4;xs|1#i>^e%-RTX&5{$YHlk_%fF??Is>rm*g^BklS|3RY-~)eF{g75$lEQ!HRg)&meIkshxxdBWEAO< z`9Ml0V{={%X#drtZaSB6icB6pIbTM$eq4jGkIg`>CYbFp1oZFSYyQBVN*miv)u8LP7(Pcbc(5GP+gn0{6Q$9PxzBr5BaXz;%ZTc)uqK(K(8?shTid$|+>kij%CgQVDG}*8x5rwRvBah$mnbbJ#YX zEabXyyO({Zy3>Y9QD+dH{_P&xUsNR%;$5iQc||yPpo09~I0+0+dPChF23r@1@>Z2M zGSXk_C}VDfb-_!>+W1M^)qR7H+pPjr$#|4bk$tScv?!4cg9jK>ZX6j5;I-GlTs> zdd&}vtXvMxrP2b;Jz4aYi8j3V7N)EIr|3NVseIo!ZlsXCMJSO~ics;~*P$V4N>f`Y zX-H@&+1av3WJiQZM$U6zr-+I&ic+Gjp{YUj&F}gB2afYP&vW0`_4&Ntm-fP|Y5|ui z(IB6Tqy<_P-`TO{3V5-<31Yef&^1dL`=y0>$80p1Vgm!}xJ3=p$sDZzw}GyjT!hXZ zPV5P{i)Gk-GFPnZpR8pdc)fC#V)m(kObM{x?r-JS8U2@=y)!0CK6 z*I9PK4TI%q86k~pq+-c0TT>Vdn2u*0{qbb3p+LI1jC?y1Morg!CJj%*=oBOJi9{w&_^t)d%zw29eJEL>l38LEOEF;dzT|0++1y&`&G zDR&mx=&f{@*G9Bmn+zX3a^R!CFSOJ|!X)*n__25$m}_1lf!?=>t~Rol&C}t}KLwPT zy_~J9@q|;{bHk-V9@I`R0v&MyX0OO0YJZZTWxfeaSDJ3~_4{GYizElX*L1+W$?M^B zaXB^hzCh>Bw#F}yy=a=;7&|J*_3b@$&|Rey3=cN2P9x=X>!Jp>tcuH^ZSh4J6EA8o zHv}(Q|7Aq*UAx#uMfQ{n~K=#iVEk4hLS z`dI2TY`R{AO~ScwIx>+gJtzk4(IUKmvdba#uQ@LCxq*S(^YIwZ0roCY!{^RHAbmhY zkoqhhZI-vw17Ug3Og--_Uj_`?y>If^ zV^3zGYR7kKC>043-Y@8e|tmezBu+&{T;eXasjzB#{&1AyTwkt^&6&bh{HF%ZN!G#8MRkYcowDu zm&@hBYlza&ekok#c@`I+iD<}`x`+3p5|op8Bvjwt85?0dZTHUuz}! zllTdHMuou7NEfh11{)oPF}!Uf?zU6FmFrzV{@FNK^*WUK`|$vVicH7mfiL8}%Vt!` z)1(iVUu5dW%;}seDO8DF0#6P{Ffv1yuxw@}=P4x|cU}h*xbCa-*LvoJ)jp7276odT zUc;TAA4u8bLUxArX7uIm!kZuKL;nO-8<7(Wa79--gkRiBzW%(D1G#hMr#$3!*?}!NtchZb814d;&CH* zS5(2;CD*V^?m6@P{?UR*%$XPFXj~D2cIEQaKj}898~cFoKSoh)SWOqW zsl$Jdrh(Y1HxMmthgZi+P&Slv`54Y7e)Ur^yDXdORcfT$mG2R0rw~-nnIQN+IfAVH zDTh7NgisI@gg;!4k|TRYu_;d(zb$5XQ;fvvyj`(0!dQqmw#f)}P9DUdnWCt0KL{6G zX@$wr^8o&CM8oY<;oQ&vsCc6)#NY8py-91}f?5b@tQbLI-Z)-SmoEkfe!}Q=lI*T0 z7tmpyI0=5w^_fls-7?ZZ<_7lA0k<#o`EDb@iN~B9T1NnDH7m*aRguhdt}8o!#Rqzd z>re%4Re^aL735-Y8~c~LuT4693CBNehoxtx!rh+D;3aIu76i#hsvjR9j%BIv*>- z%II5bXXgG5Mc#dbK#c1<39Ww(NLQja*tOWAYvNoun12>k?Kt;FcQjOYeTI`6bE(B= zUod_<2V6Z(sCM`fY+17o-4EZOR$U2nyG1lCOnXlA9#-J}sq1n421{_;U;>{{=A+%b zdbs?q3tO{XAWG2#S~&k^@Xcx9S@wgSO%T(0U5sawJ?t}9LWSq2z;5dwB2g`aVs}hY zq3HlgNSGi{6M9Ov|F}m_S?`1wXCaDj!FaH#fKYSi_D>i|~-bc7(vMhEl z7Zq%uYJnr_ld(>A30T}KBAiMYF8^A{al>?Z29{o!trCTXre?UZt%SV#b{-;>N`TjO z5C*-%@KAji*|A#~Y?d~n*<@#WWqvBiK1(HwIlfEl{)=RhX&wbnQz-c3MEB31!ONS~ z2zzH|!EG}U2$+^jFO)8$8?Tw8CgtIiMFuEQF+#=bj*?=-N91j&E86ZDB>q>F@rC*g zShl2wx;7lcn#cs)m@h@z|F+@%u3{+g4kG1-4cNcPimuk(0oN{{qgrCEpzdyo8K&3q zsq8RSGrULMZ+V3U=C!cy6UQFX`$QHgbLa0XSD77+og^?#7)vWt=@;vCSd>}8Wg32i zjf^vFTKxvxV$NZCe+6qX`yk0wNT%1hJJt?;C61obPSw1H@R4#X^WfWK%5E*ksp&6? z%?U1aY!DVR`_3}amPP~vAU*cWA^{?|B& zImczH2G`TGTW-Pm+lu^eiVftZQ8+eqHIt?r+3;t#7Tve|B4jIXMGbBip!a4G-rnLQ4NSs)1BN8#|L<)C+N z0sZmmJVxuW_)jSc3VgRywO5F_VJ)=w^&D6(Yy^xGmk*q6NS%KslCf+{f#cXDkcDyV zhbyaar&I{)FaAx_y^65JLWMd_o6igLSK!5^Jf@S~-+|^yO^~kEAgddr$opTf$z=;& z-uQdfa46$8o%^2&v%wp}cr|U8zk`3KJfxQP;n2F=080P-qkF%4 z<9pLPw76OpYJ!i_zuSv!97Z{o!z6bQlDo_PiOOde3*4-gV_rb-$DKIzHvx3Z-Qo0o z6`ot|ai-?yS6qI}2ZaZ+*r;EjoNp@|brnQm&z+aJBj65x>)H(q@7mySCFi#olofn$ z+>9yn7UQk-a(HxXh)8yQpu+8%lGMBai!CKtM_C5PkG2QGZ4b zzrO_+woHbj!qTvWuPaDBcb$m;7QzghC%B-p7RP7GQHQxjtmW?xa_+r7JlEBM4^hV` zTCAoGzBBQ!)+anvB!n^M!>F7jMgw=5;zYM#XpJyJX)kqwTlWCRB{;?$m)7R8liV54 zw25xNb^*S!F<|bn1+A*fV1alq{jR}rLTAa5gUw6mmaJKzcfJgpx79$Yy|mzgg(_MF z=|P9n1cABZZm6zv#~%yF^Y*o*;lQnYyzb)4W#YoYQL!CLJ7R#I5*BQFmw^$&x8O=| zGK9`|BQlTV1kciP$gM&#p4sYHynb~JoN1Th88?KXkjHGYWyKV%_fMdW8gsC*WHP3W zGljs=9GI~*9)gEsVcy9IcD~L8+}_`fANoFU%wUQx!vfe_yA_T%zbAWdpT~TrnntV* zBYqPyVWY=yuvPtxmFv98&7-%eV4&0{MCUvM=lk*FRyV;VE;p+A@;iIaNfE=PWASM6 z6Lx6kAv``k7N+h<#oKin)O15BCMt9LPJw_8Fsj1*XW#fqhvtw}|5&;$yAx${!tmz6 zY}5^DWA4r};5aPrka(qI%cCt2^EU>22k&yVH=qAd3qK2{;t5+#!I9QJI3fR*%IMlap8PCWdhIT(*;@sjDqP0B%aX{ltWxvV%QX33$6iHx9CTNVuaQ(=ag9oN^GjGlTexb1i~M*dy{ zyw&?*R`U{Y;2+{#nmQz+E}l)@kw=$ki-6{a&s5^4Kd}}}!*@9|$>aM1M*F8IZ?jSv z-bgpWq=nyMVtpBr-XG6;^KjOlA$05xaa1+~T+nmJjX0 zlF6L1BEpM4{2~lH3ya~f*CDv!A&vK2zA$p7x&q#ZhnV^&nq(Ph?HO6i#Q?t0MTwF4L$L+K zSG3WtUT&^As|2RxkFeH%uEGiBL{b%foLT)b7ne1<(3}}^oP*~GTuo5IZiP_D*<-*Y z$d8g<6)n_=t78{5f2T(;$G{E&p_g^mV6|F13OzE1uMP#|*i8q@uH$A@Nu4nLogU== zS&I@+^2i|I+Q9k@YXCq2Xr z|8q3DD;eAD0$>W)|M~Sv9oMuZz|0@Fn1et1VX2!5>^|8<>PAvXp7%yDscDVJuSYq-P(j%&g(+wRG{MDUqv;9ZZ6AZ{hT~%0= zZwmV>PQdHtwV?bff@8NS!et9?M`}Lrn$T5S;-9~P_wZu{Q3?!$Ip7AXx>y|kq5_d` z?NG;L7tQdN7fAeEin%h|V1daZm_Ktled(Kse`lA#?|voXaEu|3UP+g>*)Zu7^H zG8^Fg%z#JM)zr~tFL}KG8u6bQMua2J(Or`lLAk6d<}E5^52Q6f*7^Tvg!*atTWtjX z$(@kr6M;qeod?ZkId1I|_3fK^u} z;-(Qr+;QzKd^VI}dJpB$woS3N?of%^rpw)6p!=va&MzRL+tJjq~&55=R7l?v~HZl82&{&`~Jt|-Xg$nlOY3{oRA1;{#j zl7v}@u#e2DNy}~_98SDL>I_Rk>6Ri=d62{>E{E)M!IpW{nqsNG^pon_E_@&Id_HMY(}L^g zEYV!G0d0hDpx`B!N$u1SoN}Lon>|iI-}99~)B9+D*BF)K81ya*2kEn19_IM;6UR3_ zj7mrjhH5W|ze`d8>nD<^Ga=0SnSl`aX%Bu8ohYzzOoJ)KGBjmm6HdPS7}QN;aJ30g z%a$TI{wN7n?2Cr`BN<%xP#W4q;$X_-6zX0#403}Dt&g0&!la~hnYz z%1Jixq~$q8XO=SWJo4ePI>&kCW;{>AI%$ttGkJcq0!y+MGn+m)lHM&V@j{RcWS54r z_ixEzC7;0uoA%O*>08jP&L74+<4L)&D#XnH#zg5(#>sbjsPE#*Xr&uYx?;=(6CTU( zn$(NHd!`6XT4yO}-Yx>$u4@T)IxzSxXC}Pb-3f^)6$ZImdfmKkGcIh|l-W!O9~Nf@l?PrgVQTTnyd;SwoTJ)QLKh z`}GK{ui{@bz=H}7TCVaqv^$x*s*;rhJ^;=jcsG3t@;W*yfYq; zJ3Pa_^l7kg=`x!9tO*AUw8+|b1-PC!5qybQgL{<^z0+>W>oiw^EW1jaT-b{8)ukw? z%7VzWQxGS56Aq5`f^)qtkxmnZC-QTlCE1hM1iQeig=wg*nTrJ;p~OGvEGFHPhp{tU z=VB8}o*D9qU#zU)_i-a!x^FpbczYQe#)rX^do}n&tc404$t0osZeiF{Nr9|o9cW1i zaOm|$us0Ot_U&?P(nUquqftQ*KWTzBbRUF&-_NigH<6?VONh>I36veaiz1%G#JYMH zsXj5AeA%1_TP`QiXM0qr!3+(a``@kn!iOE~IS)#B3um2&@<<7~LNY{E(+GL%I(WzjK_1#=AJz#SGSeI0MPrNR@ny zq4t;u>U>=Qmfll=Ik} z526q5#N|8ABD15OE%2JadzivyWwi&$%5)JjwU^RoSptqn&ize2M!bNHpJ4aOiOgyD zbn2CDLbAW;v-fZpnf>`G{#VgM$~yY-?k8@qpzs6wvKZit6yf5rm*lAKFa`}-5DlRp zY|Q8BFnQWP(keSfrz@n;X8T5bar_dk{1d=V7o)V$^%eCu9A$kB9PpjxE70#3h1kdt z)Vh3!c$zriHRCHJA^Qz|S^E(RZjQ%cg>?{9#`TiiWCYd6v*?jmR@i7+1j47HNOR?4 zoN}Rtj(3-2f`hn!@S_4);kgP7X9DoaHl}yc5)9cRA{bZFg7@#wgB5{+B295 zi1oj@bA5INtHouqf6FH_GgY)czLt_Azu|2o7(e*_V% zBGs*rV2*PL{(=tb6ubuBiC=}C5nJKqz9ZDY?L1AAp3Jkk^NyRRaUIa9?fiKiZKUC7 zIPlY4;9hngZ0Sb&^`;({E1!Yh4N)+Sgg|9`11$RJPfvS9W56#@C>{=jL$NMw;o)#J z9Sg*pQ*Pq8{k^2qIh|kk$pu#U2!k{K4ES%oOOl>wz_ZT-v~ki$TC#9DJ+Y#X@A32) z>c%PZP4eEM^X#2?e6};B4jcfZmMK^|kB5(DoyTV<+$jFu4APP%C{Gy9e|8d-Z<+Ff z-7b;*6OY;6egi0~li@hXIgq{KKAdnC6Y!T0pczEN<MD_V=LEB?|+oeuad z+8Xr<*K;~3&6ZA{DNt>g4K5r@%V^^Wytlee>xxW4b{7RF&p5o?JwimqWCbOCcR~0+ z%JJ!I*{c%AQ07t?S^U_89`&6M@vqj?QEOLV!t~hie=I5J>O&LVyYP0uB--`f!9JBB zI>VQ9d>ZQEI;}vu;uhxs9&CVbmrlai{8VcAWeO722wL$%7vBr}Ab)^+7jeGlf%BV* zXqYgMcd~-jSKWi|>#cF+hj)0VItRa;RN|fJc4o!3I+)!p?dYB&OmnkukllAP;qNxi z0kFxIm3!p`_0bMCl1p`Y!cU(N8!;bv9TR~CFYRI5CLO-BAPjGW{Dbo%br5|_inx`g z!Iz{7V4-gT)+;SQI6{w~-+vMdh8N(mGn+uSK!{i1_ZW;tf^b9g9jap<13|0A@z`%Z zE<78Fr##<7%bern`H{8w;N$>t+xv;nTNQ^I1sW*hm`eh$djrk=NKZsIFi)JSK{8DR z{;5ae`Bm|7AR#pjE z$kRtJdJf(PJfj1pcd5gIBjDfm1j19A=|W{GGTNU)7j#z87!hH?=!p_CCB%de)L~{@6HQvKg;H8)iT~l>{;lzJtDP0+ z|2PTnwu|%9uk=D>VJGoU9iV%Ubuhsme&GH5BdSXbqL@`P(KlF#Y5Ot?*+`H)!AALd8#S zM3K1%(atT5Q*Q;M@%I**QnwCIbuPe~dIBFZ)u_h&43vaR)^nc3ljHHr$yt%NaJyay z#_X<;2`2U!{d*sg4~!Vu(bQC{+ZxM0T|NwV-(CG7ba2>0zL(!9xu z&=T(ny>}C++Ae$YienVa`WlU^)ZS2~*%JiaD|f@`+)^|>b_YwgPJpzqA^JM)4a|1A zLuZZugTLw)z@4wGqv$-rvd&yK+@HYN^g5kR|qmmJ;#kaIQ1keaUun5IOkZat|`PE-vuEn!r|XY zJ*i$R567Qo!yau1xo8mHG$Hg zxI7;mH8qLj=oy?b@)6stbRgF`9Czz4A<|JTOo_E9O7zW#${p3@PuU&nxcw5e~uO0;A@futDwLnK;)0~ETVz!Y?z7KGY zYPjsa1;jn&&~9c0HRGP4Le=+}BkUViTdjp{6+Mn$UtR|G8OO%f*+oR`y5L3oc=%k= zKn~Bm20u8K`$yg7DADEtMxt66*waPdsaRso*%h>B*EM#}?9C{%GLd<|Xd&<>Te3w* zT}jyUFbr8T3H1H!$u3c4Yu9dTmEcQAIc#TSPa1Yy@ELs_;G zspIy1UICm-@b4u2RT52BtNb7`&RS4=?;7)$AZO`uQUZWd2_tE&^EAYJ&je`HL!C2UTXJjC%%Ywgt)7r7^ct$f9?ix zjyGwHNeX1V|5ZTfPCj+NybJ15p1qguXf#VW0LVIH4^BfeW)p#GQEh+SZpy zZEeEW?giBTtUQnRU?QzQybH7&8)$C30xmmUMP-J*v1_^W*rQkK!0WZZ{pa*?>Xi-n zuXYk7osQwS%(Lk_&rkf0ceS8vdINuJp28hE$=u$53${(pgG#^4C^I*g{O7eA+i#}8 z_zkK-sV1n2?bm2O#OA(rl zD?+!STft@ep!hXR)BZ;^rba@joPbqo3&W|e^6`RCGmVzLK{U_D!i9OyY0%CM*e`RD zemHl9TF*U&nOn;+)yNBqB|=G;pFEi6dg6TdP?}r388?-P;PJoXz!Uf35hD{pjGiek zZGA1ag?E61AEIbyB7&kWj~|dkOjg!_OKmPbn&?1OH`c=p&+8<8{xsZau#r{JLG7@d-5F_8qs%o5AIU zd!T8r4h2%gf@#DZ-rDDUN3)c(AHsLTq3r|(1PVDl5)c=-mf zpN#RXLl|G}$wO+~cZI(`Z81(wYQ>R9N9f|Y{x~Dr5^GJp*f%R9V5P@Z8YsMo*LWZw zgb2Wt?4#(#)`F-{K6>s(JY1#??uHj}>E5fTl30k^>N4j;4cJ3CrepIL6y-kOV|^`h;TxYQ zcupt1O5Y$;E0~)zxIq1%G_*M#2@IyPNo`+@1CAgL6N_*y}B%+g%NgPv>|so2%&o`VnrF z=A%Z$WQAH*bH!K$gb zkYOmqyLC33hKc^cp9;p1_q!XDB873Zy@=*()`HE9Xygl@B4(o2tbKDjJ!dKpCxyeA z7~hRN^Xx^W?{o>BzG5L$HCGFEv0+?SL|m}dr;7=Ay`9V6A7|d${U#rG7{h6kN@5-{ zNSFDsSo_G1ne;FM2mT}z?`J_|e@!p_s`U*Y>8z)Ia%Jp=%B9@%{WGnb`G_9+nh&y} z8I)Num%2BL3qB8Z;+9?sh%`n#E?N(73Z4?5Q=N2aY9ZX%>xi-6Q{l$VCI~Hb!9`g- z?6SU$r?-s5oX+vUwo5@|Tm)&?jfe8tlgPflV3?I4i=HD~Mly6U{p@ytW6R9ou2GXA zerySpVu9uEq<8^}+P85tdE2#%_~N8uP>pwe>EruhdfLrw=i7ci%ZEd1{Ai zuZu&*=N;s_cM&z)_W*|WxZwr&_b4e53lonh)7OCp_+fktamxIHb(L`(kNgwVuago? z()?v}U(t>kls1Eu%_=xs^*qPUW)OJ~KuNG0oO9OU7n^Amg}R7Dvo!CV$V?pg8b(u; zYN*OvTeN+9pJg2r$@LSV=zdxO^ZR4KU3(%NY)%4|vkPh3JI+@2%?I zsC|+J5^rR|`dJ6-8aGIL)-_=@$K|_eejej)OJHE}BiQQW!Av@!2=DIx2caLOL1nHj zdDuRcmt9>(ufEX6#%~X4tl=M4_e?C7Eh#6?OLx*?*-HMeQv)63_lf z7zw!>3yXSJkPUYEFyW>vmPa3j)I2HNXIcY?&Rl|zL+{9kW0d`4SAgNO&X6f#(_ruG z2T&_O^!%lOyrD!`^710&Z;%vxVLI^ZArTB-uR&!RV;L~h2F>u-NUt$wIpzk6Xfn@%$ zlP|jZ7C^wlR3?kdtcBh@3h5cbcyiGuYo1xvA6Meu;dk$lyW3wtam=XQZ(e!3Zg=G{RmlzfV6Kq*yEmlViw_X|4x zCLEjZie5hzaGY=hn0Bs$o^TV4-zXvYDWpJ_oH_?v`#4tO_$jC&k%>Rk|ARUCA8=oX zIOc1mTi-I_Lqvx#^TR|NoZBuDbu*T&4GO}MNNk2Un1*|F|4}monI?hJat_eVAAm4w5wubhA!3`SFn3 zY*nT|jx-jc4_WC-ImH{p)R2(m+wmD4)%!ID%{4+WbSxGVM%HZ zIdEeM8&al?e`BY@L5|@eyX-V#mU`HjoJQd)Wc`UK$`9Sa4|DoDeRZzEMDrjCi1ivr#qTI~~RHsXr zUbQPHFO|hHJl6^x?;l|E<6hD2!liIXdjYfT@>(h$DMb?&c(K7t%fWc8jybchfEs++ z$DJj-xqIa;vc+yM^}9KqZzGY-Gesx&$ec~my>!JqsAE!I+Jrx`Pa~$N1EWld_H;{2i)`88z+Crh3VM_ zwDFH9-uIh}GXIJ5ln&aX$V^M9Ke7+b-L6CJ%!gD^=?ERqy>an`GIY3-P4yS~5z`CT z;L~JV&RuyImT+FT)6+9h*DC|6i}6Lc}-=1VSbl7<#gi_sRn*tlJWxKBdRWZ;gEiYsCD$}D($ZW+gA zGzG`UXPJTASoWC2OnN@+F}am5k0$5Bx!fKPkD1R#(NIh9opG9xd^S?qUV^MoGjsQB2dMv^jN@a^ZRSL&0^qpnt|RMLEg;HCHr{sre_aEbeF^yB%^ zJU9z)eqMop2ji(acw^si08Xg7O@p`@T=U~1c$*+Z%F|`g>3uR5J?caYi7*JbH66Jq zFwrd71nFnLG45#+RJ*PiZl!EspU?OXL6*PRq?RZUS*!qS?-oIF-4ZYx=ZKY)93Vux z88XW`j@+ka{wVjGKK4`%@B1cEUNgro9s9vA=3wA9_v68+=M?rzyJ4~6R&1U!8*{h3 zBHB~tfI(0-Rq072??i2Ia#uV)9-oLFN@vk6a4RYFkml{Y7DJES>Y=JzYng#-V>JKG z6Z*Qh6&!0l;6%OwQOHA@(_0AvZKL#RPzJinerNUO)M4|<1hTbq3Vm?0m9`u)C;Tr+ zQmpH#z20ibnpg_|{Zys&zb&vU*HVytv7Vj5le6)g(E}Em61=4qHaI~e5A`P)!6beG zSQKc$xAF@R-+l>Hw+pbfdltleZKsLG8?p2RpI%RQ!Ln2>`nOpME%qEFqTUABDSwtN zdM(d6KwdIF=Jqh*zngfiTpqMXUJ}=*5sbwRhCTY>GX`FoBk)HlkU9DnGJRxVymmeP zur--+a*Sj7j3vrBl)$5obY|$D7{tkPeaB<3u)VqkB7-8}cdW5s{QNI;#7+WFUO7uW zw@V9#j-3KAnI3-c@h$LbM=}?x`j2#t@^CES1{j~U#i70wc(5%MFLYQ#mX!zW{xyb) z`u|9<;d(r|^FGO!=_gf3R*?n^OC0Ly$4RSXadnm({<-~)7Wf)5|EbvHPVXSP@@^cs zU@hG{wGnH@;$gwW*Kl~M4a9UxkZyG)Ja$u<{zyu}(<>{$VsRJQ{h@_Dz`e5@=eXma z=0?`jGzdF)1;Vpg&l#78bMWn@6vC8Cag2elRR66akUVoV6eln$bb+yo*bZrt9RDE7 z6b8plz$)`xn$q4!e(mGjD1LIZ_N^?qKU;~JDj95P@^${KDgJPxR1_aC*B~-KY{6rK zEfF8Drye;R-`y>Kd)55TA!)vrn;9>Y5FK#E%iW>XuXua5cP~-Wc ze~TRbgnMA-t!8@n#D5G}9i%Ib3y7RgIf|qvfOm=m=VR?5`(9qhjF4pJ>&_B5lx6{E z@{VC)kvLE8M-Yg7O~N@P!EpGK5C*vPpl3n{NqdmY=fY9s`W;8izVMtb=kkVvsGlUM zO9{r3Wq4ad4#Cfs=XB>(XS^}f8U`Seh>b~cJU%_aylosWc!x9baT+2Wi9OW8_B+x4 zH;Fed;s;KpoA7k(I@n+On)cm{!sE$jsO!Q&c&H(T5;Et((UgyUvwz^O%>yi7notYx zXN+|A3^aZCl^NWgg&Dz(u%=px=WmouM7r|mr@=!wnjnv&L!TjcZW&Yfsf_#1w8)07 z&*+yuhA7K%_6qOVvMmErbVOJdm<~QBTsTj=)m(9D+C})#b&4u=4$^-yp&+|&j9M%Z z;W_O7%^WFN1NP$1G)}35#0=U%RfQ(apO6Ub$z>2xcZly^vK~cld6MaV%5Y`MFGvuV z;C#z@_(H}T<3s8|qW=cFeqSqD_k0~GP>_JSOWPrj>&Z91-A8|@yJG6bZ}7@UnBZxS zb=3{*#OLkwT&NLaAia#~bCQGfTxr3F2XPpeAVzsR_F;N}sGw<@8Hi>W+uUDm#FnNF zk>4AxFu{Jx7$>l#Jnef_bgDPZf6mQegTIhA$K~igv!Bcr8Kq(s3()2JbNarHK)}Z@ z#H&e-o58yf({uLhZrNTk{?2Dq4Vi)u+RE{&v;=G(%q9;K${==_wK4p@2-SF3(fVI9 zxUAI0ZCrlo_hOENyPy_E{luu*4H?k<%>%W?Ux=+|7=96#;Z;mu$j$1n!rABXDBNKN zM)zGn!=0k;nsG!ud=0P57+|r_D)=X*2<~m+P&;cYrlp-BrTXtMYG*U9K|#|OyL7*v@h(jXfq~Q8DGIya7ZF(cdxEd7D`J6xA!h%mc z_EZqB->RJ7+#3H4Y{iW^^~8SI3j1stX`9$xaIo&Am#ouZr9GcEoZN)BZyqIWCZV+A zelLcJ3JH4Nuj;M>N*iiRwcu)JLq)7i{No+ zH(fpHD4xFk2o7lq;pW~x>TCTL3U_YBFDnWmbK7D1>2WOty(`3ViPRESmKdQNAT;U-m8da3CShVKgCxF{S;K4T@QW=IL9hW*08@$L{VwUR14UyiPW zt#s!q4c^WJdJz9G;4LoZET^dCU%wo)CyL-Lo)@+h-<-+QQR$ZB!*8 z125el1+&|!Y~-_c*hfM+7W_9Td%7QDrs<)#ZVgz4PNf+xF7WAWIPTm#8SIu276M7 z;|!EKcoRY{MZz|JbAjR84`gDv1Nc@{aPxxO2>&k8gwR;XPpe?}l-Z%`J58R&k2tRX z@)a+Uy%`+%P9TQhulj#PH?ylTXz|vtwJsdKd6KO`#U+mpfgHRE!NKO8lInj z0E0Ll!D|%gfU-!`^t1F4?y+q7Z9>Ns#2E~cyIORnpv1|$^*+#;6 z=C?Zdtjc3vmyY9oy($C#2jqB@4_e|2<}=p3Nri}0=kZUTDEym#5=O-iVHX$FfBJ)E z)O)Jnab-4_9ZJKf7X{dqR*dOO9uVf}cWN%zOqZ<*#C7Xa@SDXtTK)YZtWrJ;OEyH4 z;_!<&l-~%0Es=QDZU?qc`9>C(jN-huetQ4K3JiBEA|7|=VA-!O$SwR$PE7E?`}Q^H zmS#(@?DoM^`y){ES~||NleQ^|Q{Y|FbBFg@mE?&@3O$?u7_u@fL4WfzCg^+>Fy#$w zckK&Gue6ehHx6LC*9=hpBP`g=WwrfVi&3@P6#l4)QsNdxnj9>o^8rwEY)) z_`nuW>}jJ{qssB2L_h7*`bkV{lJWef`{csv2D-I)Eq44j3&St#0i$#Tw~{m9^+AhH zxIK+I7$pf4wEn8! zpAN?wgh_DV&>40!;|G7c#00^095?WmE1rr{f-<8*a8M0}+_dF*ZJ8S$wGO0~6SAW{0G(KS5*$T|EQtzRut>2#dv9BcgX`R z;Pxyp$ivb|uKL2<`{&5F4aTVUQWHuZOhjcHCEk10JnJu3nT*Wi&3Gng0WI-=g0;7|!G-z| zOzJ&}#S46y%@2>FclH`CGoQsu-ye_1bY_74Xc-jLXhL>eAuT^D!%TKu3qpGF&}+EM9b-(}9Nx}q1#9TbQ})+5lK zzZCtN?%}E%+aYjEJ1j4qkCLY&@xcrScapTL37?Ih=V13341k<{IDXr@*&RfMnTd{P7Dhm|mEK{4GhV1zGL+$3il za?uHa-&>Q9VG&Ji718DyJ-tpsf0|<|-#4(DjI_sOT3C%-WkNfCJL-T~@&rqgCdh$Usq2dU+6Z_IrC6f`)d zru7p)wC7#NmA)Lu`*|qdH4x%SPD+5ARtxdhr5rqCDn#$Mo#a@)Y4r2wIPxpwEcons zLe)bbLRqU0S(0`c{ll*E*UxZA53ct(dRIWW*9mD14}$$-zv+PHb(*af#8^zppdLE= zNrd(l;+;MdY982t{?KuftFne1YHWuB|7TRrBN+G8^U>>43RTAhSfhLXc_`&`#KT8AlE0Tz(XDMfy1B+9+teIsp ze%UI=b28)FusNY5qSyeQo&U_=yTwlMIw}V`Y7}5^c6>w1_8uxYJqZkCZ^Dvg{vdN% z91nWUg(EV7RDQ)EvrImlc;wpCs|gOcOA*#ERA$13Ymj!DH>X|9V(4|iR1{At%jnk zAx1gpzK&C-6s8O_p^POp*(ysS^ge&Xb3dQ^y06dg_x;xW*a-pAP2e2PK+Aqd{G{;# za%7djjWFj`53*gstlhY2K#6)Cs33ih*MOsAHeDAO1WlYQGB#yQEuIxJz8jaJYm9^x z6e&uxAHNcds`ep1)PmJ7rt#HbKQg14hu>P}(qXem2rT{4Mm zI*DZ`>awh8W65%(z~mv!0?z6i0ss@!3ff{nkMr3ztE0#UVT*cM(dX zj-sli9jMx#gB2PKy&pJ19JTUDhNC_PM*JlyUchDfH)}}5x8G8Mc|E>1^CP#obEQfA zexi6L93~(A%GTDe!_9T7uvcp<6Udt(6@>Lw+MR?Y*-c`5mM7x1beMTp76~3Z{=#l>d?Sl2zoPb>(H^Z@vt#C>ImG3k!K& zPsVY%-Ahp4Q3DxIlc~a)3i7@2XW)M{Kw(J>J!2RTZ!~TaH-mxddD)Ys#!MC8$NUNB zJpZL8E>a>>-;cWNJO9{ymZK453qyA@q2rY$u3hN8#d7>7JU+y71j_R1bxnnFmz}4c{MfgU~fh&G~X}L|E+`2cL~r}zJll7=|;N_$Rz&Bsnlf9 z48yva55>V%rYZScTenXXNW zhRrc9;M8>t9F9#9No6RyAGd}#>?q!@Vo8IRmk_?83Y?$PmAbGj8XrA<$o?cRJsfQd zaSQLlm-rKGN5>i$rYlNgomMmH?Q*bbS3AqT&Z0@0OYqExefXd?9U`kvP&?ID@}IaC z*Ot}Lf>We=tVkQ}of1fPjIU%SMS=Hda}|y7tAtj4S8-K~5cd}zpqC%bg<{uQuwnNw zB=;uWTG=IbtT~SB_CBD4L*-EF!@BBce6Y6YNBV+2-_-0mIqR1Mb+_|r`n9v%?GYTF z_J|K=tjvXqzJ7XdGY{@KB_ZdCA!ysDlWx@%NZuUE^!zdj9_O85uZk+HD&PXusiL>X z5*gmK9s5lIn3#IBscJ#~CqZ?oFq9ad9;dIGE`Z0HRGNCp1K+%Dq^IBIfQz0AsfdW6 z)ZG@gt2hvWFb+FsMp69yk8FMW4owMa~<5%@+Gb| z^Tb!1dl`Gp5y|K=Q#_CxO276AAX@q**fL%!8SV1N4xLewHZL2V-7o@i#S=+WO+T3> z`5GLxbTPQvg6i7%;nGMEk-syFf|GyK6#SDovozVmAyo|4&@a zOM`?XAxu$4CLPoK8D1TfGN-G(VRCmFRR82cTi-?C)#-HTD0@SU)Na7t{S{>U@Js5} z9LBt1*MM#Z)WGz=ZJ2ZG0||WC4GyJsC}bJV#>0)2rVS8>!z&?!V@c9_4&kG7Ig+og z@i9+vg6NGRX8q;@9ox4^cSctd_aYhG3*tbkcBiC!8HcwpQ$>2RahM8DHWHoSV(jx! z;tiDU!MPtsNaJWNrB}wuiKs|iPgn-a+A6jeSV*rvFk~#9xKyT6OSG=nz|(<5e9}>c z_EW92q{9J(#FhH?2S6G-SJf<7jplM;5P!uHZ|__{^RvfJ zE2Saws*u8Q!DA=fYaAQ(zutgl2hDR82L3^av7Qd!859<6t378OR}T_C5CgAEy80 zdm!fyn>P+4yf)nk*wDWSe16&hvkKD4>hD?iJl_H{Rq`d%Jbetf+eGGsS4hU{#bCQ_ z32dlYf*wZykfo;aIA33bLI`DC;yUOzswLiRSsxU-TH&5m;rPD%3fq@ACQnEmRW>V>^!924*CPdF4e~rg zHzPW+X$;aY&XUf*;m$Z|9fk{TRGq!#!!RLBA*G~2Y1BUz|H&%rwE{TB) z0g1p@N}+~UJz|~3-k@v663wqYA+v;e%J6h#pgQBgn)>;}cItD+!wcU(I# z-~CzluKjL~aKFFdnEyJ*IGl0LnR`EL?er0IyJ`JGXwa3t+Uzyd{I+xY5H1#Rf&IIO!!xXySz9Fs3;6zs8aZJf=1u4&7 zAIdjjFSET_4+0wLNFF611l`1zWkigo-88q-9-j~4s-+w7_ z_lt;C_4A!20Kf050nFYuu9SIt6iwg!p6Od*ErG^gy(smzVj4KJ-~pvhGl`aYZe#}e zKOz8k?o96pnB9J-zY=J2t}J~i{+X$uzcyh0`+<~d>PN=*^v*=?-2;v$>F(Td6??br zdc|J28~(k6y>M4db%k*$H-Wuymkk;DhkNv_d>Vis?tb5VsNnR`WCX?DhD=&JI)}T69{+MdG-Q7>nqXTo4xLc)~O#p7U(HS++CFdrBA6~P& zaLQQ(zD=n}>s#Jo;Li2bjp_QOCxIWcb7^4K@@$N4&>aOYC^^HP7EjkGU(swd?o%3S zcWf48cBdJ(gusUA1=Oh7VFunsGg4|m+!g$@Y9P}3GlA3(cmCntRys4SbB7Vz(N-( z%~B6a8Frkha=Rc!q_093)2^f^>p~c~dyUDd0eHh^`7+|(UpOs&86T z78ILBAatb*CFgdYF^j;_S_PS;+@&uxB+y`6NlMp!95cIa0s(lzw7nkm;a(wa;EKzt ziF+CQJfANUfVoP(VDD_>Bhc;%r&hm6>h7)=XLtdoW$6= zb)sILtr@tN+x2F|J<7HfT|9G}fxF7WqvT%j76bPQr&?5WRv)_U`jnY4bQA$gcfYYc z31n>8kiF$c-6tUKMV?O_($!Bv;PCp9%#xbD4fn}gk;?4O{BbzDPjybI0r04+{)gJ7%bf2(4M*#ly<);&X7r1mh zN_`G>VK3Z6YWXu0-~3GgZmaRDnM*by1a22u!oWLXUkVMtU1mvf4J|S1AH-R3h^3s7r57gw~UJ7nd#<4%O?Yfrv_PzG9$yXuoK1mJc! zdr!d&#@&x&zD#OKK-{H&E~cT2b}|(Uv|}&a=W=YN;aMV>`2#)4_IUwzm)$j!K>QhZ zdKPh#DY|k!IVgAb_WYPp13RadrIK6xn9a2^YhdZc$?Oi<{8aV4wSoZL<@O$+z2`G% zU{#8?f4Dsd6s0IT4{BF(4+D3r?Wr^XFBr9_E}7lMd*;)C*$wZu!1?Tj+v?gWM%;~D z^HZV13#htVdJTB{?xD2}Y&0+@_jR(``hpSnnU5Q3h;>hPyH8A~f!$#RNZc_g$Iz>& z@63GPDatl{H-Uk+BMtYBDf6g8v97B4Wg877<_jrOAjDAquVe;P68c6p$G?9CGGyOfM1NW$M zO=+w{MF;;+#|Ruq@mm47L7>ClL~h5>Le!+n9j0c}cmm5OOl9DI(7#^2?~G z>vY%6S_8gQBG_BhaXK}(+QaVnG(FjCcCY!~m_Wg=6R5dwdJR~6>hJXl^^>Ce!J70%rI2+?N#GVEUPjj9Yyx zDp%554Rv%s1djb&Ljdj{UmvL#oet27={K27IihG!%a)SHQe?8?nd6>Y3U|vA+%s;UW=3=jqw*8`(V@`U1h2T^ zA3dm(vc9>MzGXQ@^0D+)jR^`2JSlP1OasL!*7sd_>KNF?EX+PyVqR^A>iyfha0$3o^}MJzdQEp$!;_#5I6c)8u-X< z52L@GopNZ>z-VxBONYWQ4czH&RV5vY1`a6Gfsqbfn{hMcOPPYba6jn1h{mP8V{|C` zw`Z~5)Nb_xf)}8J%QtI9mF?$Ic$Nh;@O?URTXKmpH}LS3PYA$|4lNM1n=!i&l*`Wj ziw-UEbxtBT`nUDOT@3uv-<1aUp-w+F?$CnGPbG3&m3c@&+|t0}mIjXboF`EO`yF-X z1`Z@|0@A?nADHLFzzfi!yF-T&+yEWArR+ua!hO9}f|3S)ooXoo+m&^>z5lC$$LuYv z0dbGDD^2KMY2aPfn+U*-23_jyP8kQ>WZ<9DrD385E*l?7KwTND%nh8ePfBusvo}!# ziyQq5#&*A^#H}^8VlUhwjb16~Z*jwWXm@u;8W`Rw8NM@c19T`r1KatvXTH`LPK(^0 zFmZKK|Iwjvqk%z&D?6y@?!(NmEA0s+*TCZLn{FF*d~=wQ4jp%)4}pUVyD??oTv9!5 z{dWVK-T$kBYt{@Sc)?#YK2ysp2@L#2oLm#R(ZFy6bg*=2QVo3KXlrh7>2J#h{?gc< zoGKOP_O7{fK_Yjj{vQdPONgbm`n5jk?;$I$5I_fu8x4&1t``%){k_ws4`seGfkFRT zHZZ&Z9a`e1Ex`@S4J=ND7F=R4+|r>#GS{c^eXFwbu#k&0a<2 z+EALv1J63Yhd`}23Q*nY&WE@(ZH8tMpEB`;f&e6uG>`h!kz6+d80$c zz2wyz^0uADUbqj=Sj<@V_qC-1lI&14@XS=r4EOfGyAvp0rY_aIP><|;Wi~og8o1o3 z-UP3>_f?-y0B&?>{U+;~_Bk?ZAUU@*F#JVM&tU$({Efg&`%#G+IQ_*T1f+pSKd*0e zDBRf`9gGHkX*G;MouHERd}$t|Lq~oMq?LaA8F8CC)a7Uj4IIg^iRkhs>RY-1UGeEf zts;IfNx7v%rGdpQ9V-1TZs}0V2DWt9>t>tCJ$v_S0+m|Fs^l8@THyl(#Jw=(T*{a+ zi19cvJIMwv^vK0%;MVpO-!4SKCM|s(!e1Nu2cAn z(llU0!DJg)+%HO45wL9FlE1zY5cm6=D+s{t*scY^3u@MKW;guO!1+2iFgoNbY$fm&=Cb0aBKN=Vv{3vHIBMl69%BAy|63yot4gAD9W0Z8L*}Z#75CJqW+WTiO zI|9KKZ!#VuAntZnfdmq!v}44L4n5v1ld5SlMXc z<&JBO20p)SBOUZ{r}TE)xqs2XX7{s-mk5~MLw8i6z=X0CFs3ad4Lo#mUILa4T<^;= zLVu%y&2GyMh5PE@G2FoD;1U~~F=$`_FB%y1@a@G7YIeK4{>Lp1jQ)muk97jOZR^ja z&*#=SB-OybJ>d~pFNER(7%r#tY-SXJx2h3an}tFu6wv* za|JiN;MLnW1^2s-UAaT0fi2zW(8=|RE1QpA1dg^J!2K=m&#~`ROt0|-#ElN!Hds-b z6D4U*x5`Ya?XmPDOI{6J{8o}c)6>)09p;cx18Cq|&pOhvnE6Hndv#F+;FSj6_xm(~ z(<=@$Xy6SQY8wp<_wx(O82I5HdiN=V1_rZcrO<%6fnTg{rvYi;fi1^qAi8`m?e5|` z1f+pGzTB2<120JMA&_g`Ek@i{#a5FvFj~~?mi~^pT2!HdlXFXlK2PIBKpGegj{Xkn zdP|ubIKtnX;05Slc)_Hl*4)3+z^QI|IKcg7vloGZ!v@jdiq$lL{ziksJ@0A;4Me}` zOku%in3;KljShvo?KK|;Zcyv4ew|zAz2`;+x>Q+5U~`T&4BP|1&m#ag`d8d#&WA+7 zeR9R3B;Do)?oxRL-56Y310g+*5|9RVetg<+ONYY0vDI%S9U7LkGrQsMmHP}cYgZ_{ zA1-}D03CXESq`It=S3`|F-2yPrQ6)VaJO!uMQuK}-)P_!{qu2yiaXu1-vsJk^fKI2 z`rjpBc30E?ZqnbKipCL$TbzNcYxQ8pm3m14ezYhW6u=GqzB$o-yTa^71D_~3k-g$> zb7iBN-7j2;JJ;n?Bpo{c@gf3`&-k(z?oxA?867Haa|7Renoa{B&h0SV(!ifwqg3g^ zwgmhp#4|-Mt)@F?x-vx%E&s#4(Py(iN*kZ8;;#EO9UX}Itu7av!k9aBa8Gv{dMq>b9i#VaKsbQ| z#Rm}FFY@j&`rF*VW_O(RXo4H;yA*A7Xy=3z1QzGdNxm)TGgCj>DNA>$=%)m-wCl<= z2);xB{hM3^U%M5`4GcH9*EyQbb?>Hu+VkTGz-@ob*>G=YYEOmct)j-`J5U?@pG4)Qzh2?o)d@ zaAp}J?kSb`6Bu_VmO+DN@K2!u>F)~bdnamOc!6byN&^>JxRn6B=+K(E(rMt}qay^+ zp)2N;Vz0yH=LFz4yIbr$K>!VWEhLz6>f~y4sHGeID-9exO#j`jV|G`sd7eOS-xWp! zi(5MM?7sa3#9g}Jbi-YENI4Cl!O_2tbtW)q;O|-c(%GyV8F7zD--f`azvr+Q?hP;X z`vw2@cTx?E4tA~FkAl(+SF=i7An;^oClWUrxafFy?q4+UzLaUSdy{<)cff*S^fTLW z2JRsew;+77D8x6duPYr^%bx212TqQIh?)dq$l{9eZ@O%W!ZurHW zx5vqP-%hPjoga)MAa3;cB>k)dK!1x{8d%(Q`q^q=j9nbf%k`X*27Yq2B%yz$ft$tN zBY+OBG_foLcf)+;2@MRg*0iTOO=1`h;!A~o$Yhe1UmLjEHW%7a$%Y$P z+-UHO3$sw`+%FioLEyutbo#<_1`P_}UR?JkBMpoWUQvI||7>8m(ZHQQ4rbQaXavx| z;vW5?5COCM{o_3Z-kqAk-uC6wX#if(cF$Jo?K+JqySFbjb2!12y!TVt=F?kJr}W2( ziTYbQRQkJ5jY|sN<)F%822JZgrC4nO2eHn3=k9TA*+-P86cE43K*eh=7(1qF8 zC~>1h3wV8GRvyptKiy52ZX^&{y%V*v>B)%uP|e3G#&(-(mA(dDj9$)cxjBP?xGfu4 z+~`pE)N7e9`FC=MN&`F8wx%2z?kjOi1JCZ=j2n1q+l2(W7RgRYxut=d+q!UjqrayV z+RM}$+MoMd8W`^8Cu}t7&}joZ5|9QC$?r;4XH=(Nc3DUoI68AWEwn)cGI!|kOdkpC zFEE~3X8ovgt!bvhoZabQx+~1}J4dMc%Ee6Dt@$+2^-FQ`P+5)sMu)yRHJIkawxxwz zhf++PXa?>J*Hyha+FvfZxff5V- z2wt;WI@EdUXo~sv=1|tNy9p%Mz~X+`x(K0xH(l&%bST_SJ7j0XEe(7zRcNve40n%Z zHyF78tAXL|cU>{QKX;Jbp)?w3IAJ9>aQ|9<1k4Q#H|QO`B~b&TgL@5KXt*sK7#(bX zaFLP*{^Z|>0Q}OS;&z;yLj!PUE}K&WR?|)Bg;OPx)72I7i&Sfv$(xLe-69H-9@u$}s?zp3W5%5!k2>lDMrCU05(C%{F!Io}m z;OLD@{%GJ_^=!C9#Vs9*{uOt_RG#dHf4*-Qs&IY|V{Tw^qeFA$Dnd2dk7Lll@S5Gy z!1tZIDrw*;dZ&ncY4pKF4ZO6>H6;xUx8wX3%-G>sG%%^S2f5wd!g%#gp@CfX9k{>a zTAd_dZeaM$4GcGc7obBs1eVc&*)1Ik|NnBsFYcT}%4h&BI=FaK!)?vj0z(;&D z(2CbL6*|;QpMe2zgWFf@IP@QNQ~_yVv-?Qu(%&Itft@v z%N%Nv*)0uxZ%bwkh#L)ju-5NLpHu0m&VcOHxArBb(Xi|!?jHvV5=g3nJ9Tg&(Emnv zLjMA|^UVupj%6#S0d%Oit8dyuD<7xOK)_TR0%%~krGabZT%V{z^A)|VLbhL2<_0#q zrGYDd`ilVkX7}T$O$5yD4JRHD=(%MsH)wM1a|Io!eZ7gau2y;t9C#Em}Mn3(_qYnIQtmh@!z$em%5HP#Dl+(|6=vUy=RSO_- zf3I_!0Nm(MxX13bCh5?zD*`DX^IFF2h8MIy>q?>ND-b&P;)eX{`s}mpg&Q3@<7df8 zc%?((USDaK(V=il1EYT}8yIeB;C+3+E9p?QsC4L?BXbF?j6KKPEV7M&tLGMqA9vMo z2bMlYK>GXdy-EXN4jTy^b4o`8>$l_nwQS%uDas_-z~Y|RKaPMjaLD!x?1sPDv@J^9 zt|=?h{2cko(%rM_69VwNw7g^V_b;2Jl=4%U(V^xB4yw78QeWH6UU5qU!(VoiK2OoK zH}!L09aUy>PgTp~D1nqSPcu1k+$13Gm(S9$8~$b;KQiKeSg()<+RPtJ#kQ;_aZ3X? z{}_;{f#F7jN&}nSGsoI!KpJ@c&LsqP7fr8#xX1a-BOvZN`k8ou1_sGB@bgYz2#6aE zE)ATVyQbd){r~>P6!ObSy&n`e8o1HOzU=)kw{)nu(ZLgX7iY?hPfww(Z!j-C_a3%-xs%bRA(!#@!$voXkc_`R{dHis4{#%6E!=6 z(7)2a2|oJ#osM<4joiOz;8A_OnXZ$klevL6G|8@krHw9-bZFKeF5JK;?k-_3+(|Vs zyZ{}H{_T+?lLmtAhZFeqr3tq;8o08@D2iyllaU4%H(J!v{dnPA0@9(uMMG)Wrg26C zpKb1&sDZ_e4h2OD_%QPwo6w5y+1cy2<_>|X0mZ0Z=yoLyyx_rM0zIqf-(xySxxdZw zCUB(xAR6(sE{)7OgQ+@pE)B?8NCWT=ocU*mrs=8AO`6=!nJRJrqJbyoNv#2KPYD@9 z(xKA8mTveHmR2KlsJN4BV7NzA-$P^VGE=hy-Uq=!=~?FGR5^aYec?1JQ;X_G_bhygp4NOHt~Qu zd@qHz{m2;t@S5G`1{U|z=FtR#8*gKhbE83lxUGFAk=w^*%-Ai~%F_MIwx9+wK5t0X zwCjobTRPOTfziRm^>dXWuHTh3@W3pd?1ftz*zE4zd!f;x2ladOWA@x}5clv&-t2~7 zI#k@%1C}RhV7Qkz9;Hf`XiWh94Lo|L(LmZNj|iZHQ>OJ{EZyb~MFYc+1{Jqu1DEf1 zh)UhL#Q4lBV0380#nbiBzuv?1X~6834)qIkq>PWl7-?W1y9^qD8x0Eg=Pk#X95)-% z$rAeSuYda+9oi-3EvBY_GsAtf&06XmWupPO(V!sviJ3-!qeI0l9V%}7#rnB@-5vWW z&~UHznnJ)f%?ifSjsAt#>>fOJlQO&EH#hK#_0^3AZk)O=d3lawhUO~8ZupM}4N~R~ z&A9OyfwMi2($#(U8OP3g_v(1|^#7xQn>T;?M+09j9jcDk^y2`wNT)M*oU?+u}zGL=2B{03k*D5E$Te zQk~A5Q9IFCrNux#MRd#$;>;Wu|^q0AcynBC}KFk?^(grGS zZ|QGw@6hL&uX^8L#=Xk@?=(^%jq%xTbf`42xZywgw|;I>N8FJsZd2sI-i$Qx(8$fS z;&2uXEVaKvATX*4HC=W^Ndt=;9V!iMc1r`Jy{D*+47}D?Mics%y}BDM3V%}W+w+&w z?!r$UzGu3esDZ0gxvPNnnZg>Fy}T*+HyRj-JG|TwCGM!5yOg-i{XHymTe`6SKGQPy za{9PsxqeRa2qPV8Zs5VCw-FHcq<)9Ff6<}~8lF;@ijDuHL#2VypiNi$NAk) z(k%^)_J&s)c=+||8juD?|0dVKkAD`@02&maf2D!p1$8P6poEx$RAqyQk`5I&I&@0P zt?Y(h+=Ys5rilBOqRbtN4o3gJ*q2HJmTu`#G%%13wQS&&`k7I9#SQRjuj0Ug!U=_7@Sjs$JRED01yE1S~ho(vK zMS0C{ABhIFbjN*5p#gC_=W{k1c;kz21YUmXLg-&}1EWO~dOlR?T2<8GU+fmn)cLf9 zfVju*aV1drYy(<5Y^TwoXyDmCcGS+T4pX{NK}yQKtj`?7{b0Q>H!$2EKBgzQ(ZS-b z?sH9_X}U&n*XPkft4tb@28R2~lI$AzP-+IdlWX7#r!r86`l}c;a9qo@hoyl>9xX=z z4czHTHfBff&a^9KVGX32_KE;H7#&)_%y#D8y%UEf#_MgR<6yOcMh_W6DGR07K(2=m zDQ!XhKDFM#;d7O0+s}`rL(#xsmhxbB&YnjB8_!VYQYW~Bhc4S1^|{6|0u%Jlt>yMD z*bBFN;U(nPx3tl~aA$vZhB>o3qXyuX28KI-f&NO|(RKf6P;@Bz8}1jyy=iCcDhB-v z-~}#i^mDy>1OGf8&UAihtpRlK#tM#qxb2?J`=f!!%=$tg-;W^fUvmQ|q(k9G1A{LgtuzonE{=LGXlgWYh0eJ&urxuxephK+k`26PPhV=@$C(*+ zq$#)e;6CvLl5>|{@LeV6?ptIq0kaz|Dh*s>%sU5Z;LY~c|L9P0XSMq2kX(l@iE3sv z@Xe`iG;om!;Svlux}3CaU00(-S^i{?q72Q58tqg z-8BauBXGy2386#5tGG^#xTS#)7OrCS_mR7672N31Ill@qOB(GaAnuFq88ra^x`%6+ z8IyVu+yLGT*VAeM-U9kPv}sj;FvWW1q}a{*Dea;t1|14cE-XQ4;2O3Y61mqrzfU0g zYB+7|ah1f421bK|uIJ}55z(%cChb(iU9w3Pqk-W^i=GZ>n8@Ag$8!R3m-o3y+2$Q& z(7%>$_}?tCA+uW=xQVy7f*WMpYEAe1IQ`MUa0k0DX3)Umh8IYOF5fzuKw!pUMu$c_ zR#GFczGNzFyGX#?z!`J*RF)lz1|B^7AOSR}*)0vcc~&GHd|bwGw<^=0z2*jfv?Y`P z8aOF;q2^Bsm>bx&aS)+F0o=fGOc6EEB^!aAnN|_pXi#&9!VfnHnp95%1*cwOcTx>3 z?t8f_YT(+tqXfk5v5IKihF8q)PW|Z8+CXM!h6n<1=X5^FxQ0w5kPx1hz2Y8kGmP8Y zvcHGta3k=CyUqq`uG8~nr)1q}^IRt&Zs}0CLC!sc)S88j6&h3;7##}Y_t??QI46qe zID*17A9o=Z^-iH1Czsp>SIT>HGIA+|r>n2hP_&Bj!_)Bd%23ekmjF1H0}K z5H~H{Mf-gEl4S$mxwDu68rbaKVf}^RHaGByQ9}|nFk004bTl(E`a!*&Ay!f7P;m!` zJyY;Hp4i8rgQbBVcG;)I?K^A)fdjSIQ^T3pnD~Z46q~(w18KI;pH8&vPm8?j?3PwQJuvsJD%C~h+MuQYJgo&j`c zZYS~_Igo;DIB3A!!0`5nxzAWOFx>GmHUw`{?)z=mCF`!|)RFraEs73J%8mXuyR**d zNLR1d(*Qd3Y2{7o_PGfWJjZ2PR*NF5IB#P)oOTXk-1i&#w9Z zfDQ$t+!j(ze|NHU&ngl^V0D?BMu);LZuD*Ni2GEPs&r(1Meg5sbzTtY zzHGPAp_Xo|8i7>aaU%C`e6ha>!24!XC-#av*TiT7@Ja(;DEExO01tiltj-Iorljp! zz$E3qbFDl9Y2bjBHQ5cnxTS&NpE0p9BksxVE~+fC+qpxi>+fKoZH1H&sr}SS9yxrNGz`ZX-rS4fr zW%9YMYUSLnUx(aIN4tb2*}#QomeBwj7@$Ex^?{$2xq;VRvev-7J2`0b!>h{Nz_}M5 zAYj{9)4;Wj)|5#*$-tdd1Easi-TmGxB^?U)=Iq~;!=34>)Uf>u4J>YS@VYYdiPD7_ z4Q%O_2A(}2fy@o;ez2_u(7>RM{c5IZo5zM54IFl*EY;psHfsH=zazn|bfHFniyQvu zZZV8yhr$o{XAfuQ`H`VY+=JR}Cm?R=&=wU+Y5?vRt2|VfI<+a_4bjTr3(SjiH`K_3 zUDT~vYgDEl*|~p{YT%rU^*wS`Iki zeCq5P!S3QE+8SwbaG%UDj7iFk28P?*z}bcsqJ8gA9{fJ`4FR~P zKg`0^&i!0z+)VqD3Cv;4*|#GYZ!9_Pv6{=8~AdO2LwvxI>%nmGzB!^(`PMNy3xRY zof<~sMgt#PpHl;HPk3C6LLwS4(xGtYNOzbib*v%*>2GmM1B*NR%s2v`6{3s|y%Ls{ z!20)^k_Hy{Yp+uT(7^DEd)+4o!z~@UJlvo9U0SaI8d%)u(5AVss?-B&X~67`tWuUh z^ydI}!#}_9D8}5tEjG6%058b8YdIrs%MLwUZ9BzRzC@E3#B+y=TN?OxTRQaY zhm}b-a7E3N%605S18fGY4czTZ1=?4vHhB)rsyQd*VqBtc)3X>?$`|sGMwU;l0eGcDrGW>z-6Q~ac*79p zsBZuPwCJg4L%D(BNB_1hl2!xTdWWi|B?8rj_A>}ry3xR9cbWnE?D@a_T`E^&4T$^d zs3m{6H&n~5ft68L=w=EB?q6}|t$aaBlP{Nt7ehTF13E#1<<@c!s|oR-v0uYsEzy09DlZEoP_Vfr2slUq8p&dP9F zb}H22q5fJAcF^ajbbc+XN}p>7G1A{wp?gWQEz1om?&$t2$m~v|??`X{JOg8PqeFka zjbj>=-eWW{+~4;5D`{YO&F)-V)+X7&@B%b&jQc;d&bpq?JfFjOL_5>VV{-^zOLx_{ za^!xf5@U9k8=IB;R~i@{Y}wzdzPi$d23|}+tyamq?TXV&or84`8V!sN1qJkL>=!2m z(D~XgnTWWJw9R{FBKO)?cL`()yG3LCDlukvgP-kG^^dRg+0Osp!06!J74gjwP(7=ZK-v++iD})xFEk%QNj9}2f>PvnN zNCUSRF@XRYbk*+S8i4!$_5$QSxys=$Ggs2WdE5D%43f`HYmr=KS@!Y@W2DZ<&odEpeMt_$pw1CDf zpUnM>2DWZ`TK$+dkN~`Ua&0miIL-87`V50USESRhL46H)*DXMYAEsr{p=NjA3q=Wt z+uXqLTDo8L&&2&J4GcH<+HED-XS>Rn-E&j_CICO&=wC49)O7}K^e?D2>M?@`Uh?3R z+Fjeq;c%frQJ?$NRq&eK-jPM9X7w-XgzbI;;&w0fn!v5GXW0w)3-@xgy;^!g1A~qg zDp20%%b8CrrqP&@z6|>J)|^93tNweHWdoNlI)xT~y2JS8I8DIZp>@0GAmH3bsh!co z2}FF{!bpd@Hgr$qPF*RC`!{OJRilBI?H)h?{ag3xJ?2W+N_1pVOyrc6b_xvInw8rd z{zuXN1mNyG_O7~Fb}a!*_x*4WDph|tH!wOhDYrvWS3-jVagTYQnfn(lS}JxV!3{R6 z`s{@}eFc|9?z_XP6F>vQYw4B-UevJ+mGisBph3l5xYKL`X16r(Q@gPQf|jl!|21n! z8hBcf2zrvfKB0lf>CZfo27dLb9f2Ya!D?Exz7zf5{ziv_wQc7T+|t0}u2EwFS)Y8& zB-Np4(d68d6uJ_z~1i2F!0(mk|!O6u)%mx15;!DQ9APHGKo_Mb%{gHvBZhk~(nuQ1Y~aA%w8qdcm+ z5|9Q)2ak4HOam|OVx+%A@|ETOMFX4NC(A|}?!VKd(|}idUz+@QD0`(t(ZS-js`FBv zaC();v{Z|^?5YlKUn`Qu*=>TNXeldY}k z_0mC9;8P^idsaPm!#_(uJ0@=Do*vZv*h9wB4L=%K-00s*XRR~Dss5Ee{>^YUVM;+7eW$Tn~(wUwO{X&P{ zZgfZ!5JG(dA{h7|o&KTH-VP&BV1PgMx{^u*@SEMz!0>zJvFG-d{ziv-drqYbE>TQ| z%1ziCJNqdCxL4Irr2%pG%H2`li_($3H(hoU5H}k5tNv^lP`XDv1AmImnbq|rT?jbo zpX2b}8?eIYQ21N8wxcf5lh_M4I#k?fU?A=uZ35T}x4FM9-A#thHQbZW==)*!?`OCpbR-ULz-O)I)-F5gXMs};+|t0} z4h+9Wz_Njpb9a4Li>g)eVayHOs=zq{;tmLFO=kD6-Qk8iVs|N(v0VNraZ3aH*-aww zVRvOl8n{5-8wAX5=}%F&`egnxqnBmJ!LfT_{+rz zphMB$@Mbx9huL>B7rCvts>Iz&KXV3F`z0u8;Q4AMd*Mch&KVx5;I(v1hnn5y2L95d zVAR>+FAO(2c=qgxs?O-I$}VR!?%zFEZ8U%eZa8l?0r>q(w4)6xPct79Qfk1tMSAYv z|7!ymEHRRn9cV<(vocXk|9B?i?LYmC4t9?5p?>j)n4O1G5<0l$z#4QU?@GEj_8KD% zeB<4D0^fVYG0!%=b?EVAw`x41Jps!Geztoj0cqfD{f-ephXOP(fL|IIZs|~;q4x<4 zm~@=I(xGuHcPyjbb%8ds8s_&T) zH~M$RJSQsNaUAzAyyr{4VMhF{r~$Zv+3h&fk>Cc>z;OQz7)<-quVKb^D@LB4vluim zK>tbucPR5(p@B=ktxGQ}<>3CcbYCqrozUL^4GJz@8A|Y*8yFqzz3nIS#diXIYgHqW zd&c9;8kk8}2#7nW4wVKzIAk#Sj~vB_TN=1oY+3Hmn>lSYV0KG~-nIWmz|wu;%w1*c zR6NNB9=>%s0ra=H_c*^)<^~?Kyka8vme>da8JFq1VgGGlao5>cQs1}j%xrGsWHj)V zjG45R^XgNcll_@aU23xz?r)0+sgic*4<2flM+4HpVa>~EAh`Beg$4%gqH3@g?s)@C zGb={lA}}FqUiM0dN(1|sJ3?l+bZE^E(~Slew=}T0uOD5&{fh>kP`L)#k4Ucpw;fLi zh#L(I#J#kUzDpu+1EYb_p?3mH)3i5R7&LHF{XPBtHUi;w?=sTg(8KrZFd(^ zW;Z&t^S3uff1iK5htR;?=j-#8xdX^r-^clXbsr5slc>K>9{sJPfoq?RGaC5k+gt=M zIMT8dS)D$^>(~qTrUHL4;{Md(41xBK z>ySsS>>BgoARe>5=M(!k<= z{Pa8laif8ga@YKFK;MZIqrju7Aw~n6-R1Us(zgc%HGuY>-m4aa{yurEkOtsKi=sot z?YU+?ZLK<(t_>K@{94tI`?qone*$P=8@Jiqzm^R=Y4Sm%L&cr{$OIDil@ktzJFH|0 z4M+pSYw4aAKbwHLfg{@fA^>+Er>#Zl_`xB_*n zH9&!POB)e*eeDH<27bTonL>w(TRJql!!TMAzL7x#Kbo0d1Jb~U+N37nStf)*{{}v} z%}lG~sD9~lnw6eRpz(G0GSa}}POgD>ZI339>ckMEfz9rH?jf{vZfXrk18@DX&u|B> zolnWRA0G9um$8}t+|GaddvNRHMt|RZbA-L(HaGCituqMTVFgRF8 ze@2~7`}&WWOuK@N2F@S+of{Z#FsPM&?M_D;IOX9K1UKmEG>979h)C3-Xy7I#2NL|^ zmJZ$Wx+gVtzQp{OdtZmPMgs?&Ppg4KtpgHuXi{!;DBKmgk7jmwU*`6PU)(9veIn2x zp_~Se|16@8HJ{BLiWdF9xF?QiM(A(L20q$cf4;8C4S%Vx`89wJwRBG#5iLrR=V@_$>ixV6*%Dmxlx_-6ygNxox zv-NX4d&LbuTJ)aVYC?aD8~wX9?K7s!sZs=YiS$DZ_kT6;!S(vJ<|N!LhF7QNk>N~o z4ZOF>T*`9sH3R?mOdDy&GHZhS*3Oywy^QfpQVkq(om0TflSk17YXdI zx}SkxIu!l;++N9?6quQvs*eeIrrClUL8yo!%cfMY~8EIf~*UK}P(7#~Itw)TwCv5GM$c+X*`sE4( ze{v1nuX+J0y6e6}xA|TK#C>GnUP^PpiBemwq7|=FYXB{JuCe}Xs(;-*Q=cIKw`Bv1 z`@b6aah`pu(WFu|qIn4o{FxTc0(>SL8$*gp=ocU6#;Vtcc11PDg9mBVJ@YtaDf|G+)LcvN5Tv8+jvlo;``aXy!1)};$D#T9yf5; z<~cPWZs~8c8~($8rPBcXCx7Kp{oBSXxY>X85Vg|@DCc2xDBKz5JJ8+o&Dje#8aN?h zH#cy>AGt}~(%&xS_1%7^4n+eW{IZie->RemH0WH1lmwnO_GaJ(Ni{J1bMMtLIyAWk z&b}fyy_-}fky{#A+?8DZaUVT$n83^2|Fkz69BwfF>N|&|8o0^UQW{9EfgOf6CV&Qh zb7?jSg+yVTyzMhGH~MpFuP?u(0J3l6n%Be1)LB;*Q8WnS9ha;E~}Uitp*Y(Tl^`5{svZ&MM)YsgZ&Z$-8*?OX18=`&6=es z#kix4H1M~$6$H!;3^zLTZNnUl*)0w1q~EKO1~$8;fzjT>ZcH)y`&i>}_M$_xZVpm; z#?+vYN$y66hHack;Cq`aiQKPzHX98Lcdc@l8F8aU>pA5})ZbeAKmzc?3pRWYRdCy1 zXi0lroVY=yzr~&L(l!EaksdT**mXwwd!t7S!z~RwWud;;Wc@$H_Z&c~TxJcpPW=b8 zC>j`SpIDjDz~V*&w{Ee38~E>qo!JXF`d8d&U;uZ6uSXcT0o)}L9y0&SJ$TFlcDuS2 z<_?7yNCP+e*^kiQWxhFbdl$I0jJ>jb*OQC3iw5-TpCZ_vjvfmu5Hf+%M z{-c4yg=+6%dS4hvuX6Yq4ZQYE3yS?YTXj;MXmEWm?q9TMX73S312?!g z*J$7k>0Jl}{YXJCuT`enukSEf`=!tTI(X*D+7umT$5=LS{}M}8XTLcL-se}+X&~os zeLnPGx4D7g6}L37xkJTW_u2xZzokR-Mzu)P-^Xvek#m@b(V^nrd~uaNbr$E=0NgExjHhmI6@`DQt~UJo z!7RG#qr5Zu5)gOn;?o4sp?wZ4r5!yp8*Yb;ohT-BD#2^nz&D-s-*`F$>&#)q4KFxa zOg|S<|4^j3D_B1y(7#?Bg9f&AxA&~1g2vvClm>>sO%=^>qrJ@y4EKQSdzeytDvI#}HBqe0;|H?Y|ae-lT2H}B>v z%G|&nvDO-}bbEWwp}MV}G3E}17hH?m8u|U_X(b)HYgwS-4jx*aCXC3UfwcPTg9a`Z zzgGb?s5J10SKsJwm#&E#c=7nm+`yLZ_lG^XgSXbSCQ!YXr-}%9O91ZpH3(sqfu`9FL%z;?n)ZCp&upL!07LG;hngD#f=93-qDXqs)22e zrbyJGXy6T#L&)5~e+ABP5VyI3eIt$#KnKGsZgj9TaF3Sj30S((p}%*WBq04gdh8oz z>An#ZL|{>u4kR6#<+FIGa+?Pe5I6eQvVp~o7A+8%hZ0uBC{Xb0 zBLe79c%?%v-DqI5TN?Q6%l-r+rypgcLyZPLv6)WkJj=6&`}=nzKkiUzU~#(?drQEw zfj?YXMnL-8+`z4E@)NLh|LVJy0K5a&r_n&?M~#%Yr9;oI-@*MWZglX{`8OH#H@s_7 zgfTzw)g&-FsvzA9x~1T~l&>(zx&CzSbCGwiV^q0 zXXhyP+ivdP+XMe5Anq1lI?&>q_DQ;ZN3SBw4u$`5`!h`6bNbms-3{QC4t?EY3juhO za`&-XOJG_H{ob_h2LAf9XF-7{-PB)4+f!2RE1^RYxutShgNxcB6q^)1EUL z*zC4!V6(e>kw^m4q5sP*4eZtCA^m+P{uyQftZ|^nFfUu2*8_aK@bx>ek%cZ%^fNYJj?ndO&WSZWiM5i){QKo z0k}V9-eUCy9EfwC-ST?Y@%h`_L{)-ck*=wHhQ zhCAz1D+SJvs+cItpRb@b*V~jv(k~c;ZK`;Ej9h2-y79gQgIU_ z4P5N(2?FR)(D9@%p?}Q{oRk|4D(=#$P7vt4yN=PoYqRbnARUVS1>>?EXW*agnL-2N z9?|hL0l1TE;7(rC72M!mf?;5r8*TE2IIl+uXo#H^^L+ zKq}`YOi~SeEodgSKBG6yza5JH?O&@mQ|a|XHLmvx0_Xian1*N8DRGbb>PhHOyMUdE z`g_WSPwG>H%G9CfEoMN>O9Jq(T$Y+_bDdB_a&91Cc1r`pj|Sb}<^lmUD46j77`w}` zEY|kz!wM#-*kX$vsLM{~91~H*?(XhxL_txp69w!>MX>>~u*L3H?C$2hj&pg=e;8ps z?}y{#v;DTmo&_+m%?fAO5wrAEg?|{tuK#AI(SG9ICtd@ii)~+=h5ZWyOWQu= z6g3(-kR1vGYb86xF>v6>sf5L6;N*dq34=v@_Kng`zFuk=IMZZxo|FGh-i!JRwKVT@ zuzz9E+PT~D(1t_LWlGHcH5+)({=syzz$%`#UEy&OUD};$1rX+ZtQ^mA@f*TmQS^u8 zeIKWN>-Zq5U*$Y^6Ka>aa4X#${D|jMB|X8w7b>QwNM9Qrd%AcDVQ3F4=^lP~;#I=R_wXj#7|25x69aqa zn_;x~Myhuk@=f7o^S@7+w7Yd%YP9!9&t(6?qSp3$`|RYW-bs-*EGq3wHk&muuwU^i zItGir$ybs}`Q{)ou(aV|bTON*Il_H2JCV6v+0lc1JnE9|um(IB6hmM99n@!@x|=kb z7hk*i*Rv7#oL&=FKiG{Y4z1zhPva1g< zyc6?UWKnkwue;5Q%6>wd*QFd`((W_o9KD~^m!`F`)v@^6VqkOoeBYxk@GsWDDMP&N zk_|nLHXJMl-k+&=IJ(&DLhFq-{EIcMKA&ebaF!lF2z&3O&f)*#&_d6mC|zuA9Wxu) zIoB4#hJLZvF=>DKzD*l(^#NgM!`~RXV&JN_3*#6V4qlLa0o_smeZ=Bxht~Se{)I)Y zZ5S91HMg&{Y(Z}6a!`}Y#dS>DleS)`4rN*r{EOB4vYl294dub0W``!}A57><+w4#n zxOhNSHgH%9NA@o)T57wkjwPP@%xJ%Ne!>1l`%0?8M!Rlv_5PePC>CFP-|}_j;~dH} zx5dD{MlPp~2h0D}jy#!N$I!*PgdV12yJpb4pHt|J$4GLu_cIJ!ZrnwB*zY|rK8K=j zKeQ7qcwUw#4z0B72)EI{+{%~z3yVq{4o279wi@_gOB`YHlZF;I`}f z#WC>EtIm4u0&XO282DcEhuWAgoe1{EzV1m$b%RdvzW13+Sci<&4FlKiex0!W>a(2~ z_3XVkG^}za9TNi|zr98?8yM|LIU@{*qCMiEE1`|8tk;6uw^qN^ny>A~U9?}mF8Ejb zc;!SoW^HF&s_wB-tJD6q3nm7>axN#C+b}R3+InJV4a<6TzjkKvbi<*~3ePqiYBum0 zeJn})zRfx|s2F(Y@lA$-wSC`d#fgnPpObwxI1~m)SK4CWB_5kxMweCJul(`1xh)1B zxHz$n1*-oaw(1>faVXl|>s8~4zs>EOQ=+*2eT#b5L9MK74W6{cq3GXuq|P1xV_-OV za%WG1fu()>j+2f_8wOs#qABm~Ie)^ccedfxvd>5zx}2e2#T##HbxhiUvB?QrR(v5(+QTa?(1vIJ zs1@@_Mi>2`^9EM>qG1=ZJk-R%y_c`lzIV>c{*BMTb$*^DY+Ph_4SV%v1Yxbh-3^B> zKBmr=F&Vf|kUOE>cF1QfPs`LgCI)_0#D!Xi_T#~!XgAO8pkr2li$n7@KTBBOy|Z{_ z-lsR(*T#=E+GpD~r7w-{#xbz8#i3`<&(_ezU{Ptqz*(x~;x#{ip0G}}k8u}mF>qM^ zw3NKM&O;kpvu`dB?U)a9$n5WBbyxgl;BAv8xUKrTci!hso;{b)ADu>> zN%zO!Q9d63Y2be61G(*7dI)W;vP`SCKUUi@D3y+Fadct>hpij06}y^R^VzXillJ9c zFM@xi4U1L@s7^Cmf8!PQ9Y<(e4Sck91H<2F&$t;yhtu65z344UoaUj?ULEfCmx1Bm z_zW!VF&$Ft*!2yI2onQ~zs0~d$vdz?t?d`uxbH+Hk0};ZSMMn0bubBS&zA_;m0gUfDO^>`-$X_Qu4(dmCn>F;BxZG4QOE#|TTFdl7fhE}3Vw7CLSc zVSQI@B^VfU*wtEtf#FbWYNF3P^ra00W0z+pr+F0?X%mV&kr;UHPA|ghse8jPX~Vyb z&d#C~i8k;ytXOKa#i4EcY}CZS=C;|u-m@y|Sf_u~x$S9d^3ZqVuWt8-FK1}^e+0b#W=PNPI^=F)(Mi~e$`lhX$7!lBX@hl+ul z%&bB1ui3z!T`DGM;H`&eb648)R<0#X4E*TnHug8#W&?}AclA9_7`l}v)+RBqTPKaM zmFXSAb9;@_UiWced&9v64mamrqAA**eKFeX(-p|Q%jNLpzl!VF)WPQnL;KBxS3I<_ zv(MGAu%Y}MyGeak)7;81L2ilStDY#x;w zGlZmVcBr%++pnbDW0&yE29~xMc-eIa9kUu3ZL@*VF6Yyq+u>c+JG5CY@yu<9evb%C zs11Xc^`2!ISlSC*4^hCLVD_)oz}^{y2onRF+sD#)uzz9Tt5u@O{`_u&f6WGVRCfif zxmuFa`lxp!EC#l#l~PB$lUE@77Y0r_FN8dPp5mdqb*Q=vRSgEdQ6jN!*MTVW<^Jqn z7`WThAYOcJIMls>I;&01+TPUvG4;#;THEU9`&U~GENwUx?OdnR8ttDyRuVQpB82i> zOr&G*ui3!<&Q*16gj+3oTFahZHQi6>VlZ(17U9~?66)_#0tR+#??`An*_F~UI1~oP z5^BT1n6;gxpPk^%si_17}cw zC(P~QJ*N@|16$j*Y&*p<@WlMnXz3jFyv3?(yoB1YXeYO}Y*0A#_QA8^FfiKK$)eYI z=zh;LgSWqP8Xe2+y@%jXw6X7v-AN2A?cePx>KF|A_~s3sYZ^Bl`+Pr^y1&_C7})z^ z6k%fEtf@A$f#G1Z#lYrv>Zr_w6&#s_+i>WJI!WoPc11I{$9LIFSbXimXFE~R8TWY7 z7Kfre^XERJ{iF9*!g5Y2p`qKZ{370j2b0*qN!*i=_xjDeJI}Vcbh>m)OSdb6Fc>(? zmm@qlv}LUz&D;*nIF!r=&f5GWVd&fR&cCAq-s;`%*yE*^SG4#cuOV&jY_Wg!0jm!~Zv|-?O|ENE2wfV#5C1_xCJJt57 z)GzZOHn6!}zGI-#HX9gSF)-Q~{5#@M;lJ8p&F4{HB(rux1a3!t&Q zyc5T0kAE#7>|4Mb_AdO1q& zJ$TaY@8{`aZ7)~v9bhAh=FqWB7p0y1FW4_MU zcw2U@CQRDrNBdKvv}tv0yn7GBz~*+{u$5HrJWlL)i6-46%QnSH+}@ZX0~o{i8> z9g&L%|32)yfoC=_+GYcr{f+kPk<)n(u1+A#w&gve-6Qi07rUYP2@{8!4ZQxE6a92l z_wEf@V6-oeengmi@kKmy`$vUB)bXZ0UAr5|L)+|7w6XpvFY(~egxb+-IUIf$iH63~F_#7#I$ox}rSo%9MlpeYwxO z^ztELV&KNdmyx**izW~E(z?tVMp(oHb$^92aKRCkY55LMYWp;rXKlwE%%D$9dWtY~ zM>oFAgF~(D1yzn{Ut%wjZ{jDsoy%^}8Has5STy;xtWE~}Z_V&HL2ZFTHwi#&$E?N=?NPASHaIJExkmh4biG@-V~fN|_# zICRytDC$-AAnDG_xeJ4ef%ny(#`YdG<`hYL;Da$VdB*|X%@3~$llJ4j4m!GN3x4IL z%-e;qeqQQ4tqeKB(6zSTdz~h1NS>VRUokK&+W7c5LK}mD(T-{Ii6?FN7hMbnM!RIj zTskHO9+@E#Ep8adb2-wK9lCSu0`8){=Xf5I1DOnF>nR-48y7r^{$dy`LA0I zhr+*B1H<0|dQo<0Prn@}{G^uQvXLtgbBvf8!GYmK%z6m8e4iFBUD!04OXsp?KA_!rxERNc|0R>*G& z4a}(S)iwD$=8k%P^Vv_HxsCqZp_fS7>r#8h+kX3{nvR(rinepr<~(V`pcwjMU~?M| zhC|QP8ch}MsPhj07`VXUjhflOC!hVFfu)^(xcZ**kH2AH41LF|h1kFG893La<#cpe z2=7((9fbWa1J|rGn+<%Y=ncZWpLHO#v02S3a2IWte{`c=zkWI$GaDG~EI<2Dn^TRs zYi*ki41=SK%?=&F-8^Gc>R8KF>Yinjfp6R!L~A3zYnkpY(F!JZ)Un4Evhc*;7akoY z3X@{n0z(V~xAU$<*elmC-r$bYsNnK%8YTwLG{BDDIxphE zzjHjV@Ziu-{d>kS@S7r zEj!Z7ttoWu;evxkyT;9*nzd~;Fxq0^&nMSu>$ZR39h=$H@VB&^ydK8>P3*9oFtnrd zl#bK>JmmyoaB#cM?=^9#U6}@P4E!SH1Hu|_ILSl%T&Kk@@GsV_@q5iJQ+IX0YIj1{ z+U{~`Jp1>&OJW^6+^;@&(S}8{d$weIe;E0mf_rAyu`N}Pv45@YS;ewZ&&aCWl{WfT z1H;~!I1~n!Hu~sdFenThUmFg-Sa$;tU2MtdNKAx21Z*9EbTr&29ay??>uS4z-VLQP%*IC zp-~?hJnk?$*h|Vd_T!4_1xPj>SEKzXj=_Dd~_Yd!0@ltz|y`yyDNns zkKl>FA8gr1hhG%eF|?N!zOH@k`-3NKyOSFzN#GIQg6um8d;P9IZ+hkK$E0Veo}5uJYht z4F1L9Yojj?&6D+$7N3D@l@26vXoGTx|7yd)$5JQPF>~9#d@NybXrb4m$aaV)HNHNT zj_zN~>$2q{VXIHv;SF+K@|S_nmH!>5Z8q?Nb^h#cX^-EslR8%?I<)2&cctBKMOqz$ zMH6b<7FN%H{qgs%T_fql`z3@n1_MVloldI*d;h0_XD7PKZS+^wJ3yOPsIx5pw1*V8 z(}N59(BoGncw%65u|@lRc$v4Rqg3Uq)0W^_Janave!K=QSf9}Dem1k7^^hCcpYb#d zj4lR?>e?vwui3zGXtmInyzLw8bPR2)L;IJ!#clLs(`}-S%YAvX7q_CL-+OSod>-}l z*yQi3BU%^+K5}wCVQ6Q`HGy(pO~?MVwnuI$ZL~Ah{6HAm7`i8u{i9=#dYvG&v5xj3 zhC|_BF)%FZSmqFS(MDGcJaFMrO$=PJUNd_9Es|Ou{=nPqy_36WpRRn6o;rr`%x$wn z#ow^#*h!Pv-(ukT;{()Lw(4B5d;^U3-Aq{xf5V~XwrfB2j-N6xcA&&8qiuGmwCkud z-^9RZC-U6Kv$h>S1Z(0@w6ACLB6P9ejnvrzYUoP)z$hD?r~2rc+v8duq!`;Cg!ZZE z&g|gx6RR5SEh{<_{EPkL(UT`_ap<8Ai^#XtXKmTu@r1#^!^48Ld)IrDwEgRO6AT)k zf%iJMRp(M^G+dqEj%kkVDJocKvwKm5NgMvf%4V#iV`AX97bgsor7aGX_J@KK33JHzK#MMKW3XfuR^=55Zi2}4>Qhjx=_X?gE_}=qEgqaO2ZE>jh`_qgugqho7;4*hp>6p1)=E7u} z<*z)b1_N&iyTQxa!$!w`J3CU5$inn0*K&eGKW~iY!NEp*{abpa1_$@-yq9+SK7Z<-lff@T?yU0whws|p9LH3R9#*Wx_c96;KkQA8yH>J8%cCb+HI%ICAYmv zbPR3mZV7uGgM%yOnHQ&xKKzR|Cheau`w_PLp@W{bTV=w`Z8%igFz~W-t;pOK16$ix z1H+RM21R?qkgvSRN(HD`>*P9C{-{s*)2$(ff$yC9 zWjJ*D(+ z+L>c#sNd!4(9Ya#xf@@5*X^P7_H}0}JT;S!CEY&F1#K~KiF*^-zt;AdJu}JvYi=DA zhoXPAiU&DVSj-ax_xAKAtlq}&+Jxb)2}2iKl{naFm+H1qn|DH;+yBSk(uRZ029B>? zV(0pQ_6hZDOK^8JhU-57;QLIi`uB!xaL#mmF8prS`FM_{B_#X zGn#^D2Jq0ueh&4cqc@f2Ohd&V9L={8G9K|{GHSDnl{quu@;|!(Jq~}KhMtYFkvZfjpHR`U|2MH z`6d+MRE_9cexp5ek5xk(Z}|!JocSMr!@p(& zljk1pqCKSX+Bofs)zldmYSk*-=Sf=}Dh8IeI27$u-5hi*=I~C#q4Bi`tO+IzZ43r} zy!<0~^FBl!0ui zy0iK_y5$M4pK}yp@wFek{pnJruq$EW&it6)42(%T)BDUi z9Gdy(FU{J{f4C!I9sf8K?Su?0?GNc(scg(vp4Gr2%BswMrj{d%aFgWi*9ob|28M&vcTB8fS8t4?R6U&kGBEmZ zFuKw(mGRAWNd+=hX%Qn}t~Xphm)@x;K=wi@_JqN$XrZtpn$E>_ut5=T$h z&USi0n7gTc?c`|6?lDD!f6WGlgFU9yr_5d3Qt;lpJZX!+;m{=^vv{piwWG9--n&sfH`;V^k+xG%E5a5nRi96(<$pbayV4$YCM9>R?XR~6YgPkCPVQtlRN9H0 zOH-{!HI4TEO&bgY$JcI9whq-+&ongKoR?R^cBK|p=(W~ceRm9lV(%8VV*gI*;YHZ# zi*3o=Zg*lV70uy6i>IpRdHy)G@AQ6z_SgIVaSYt%oF8E@@Y5#+xt(KS1YuRCdehlu zh1tJi;9?yw5{9lAc*o7`H2Yv@dcCp_PaJA)H(H*GvXz_}$H3pel+iJ9XvIBKxf@>_ z{zdndo?6GG?WpcJ!_cpvB&}g!`1kjRE4*4c^Rs_p;6b??)1!3zT;gksfot9l*ei4E*?N z3o7_Ht&Vlvzmc%T9t#Ktep0Hmj={hI+g4MP3br&&y$6rM!E3seq11X4o@blQgjI{4 zPBq?Cino34TLyX3zY+H6S|!84w&{D*{N+=5N6Kd+X~V!RGhZZh#lW>6#u5g9TMhhrYFF;Y z*IqH8Hh0CL@frB)7-jeSQw;;7Z8os9+tyT{gZ+nr-yJEaW8zSqim2b(im<)W|8l1A zUj{}S1{DLNi@~9*?)nf`$bXk+=h%@BrVrr-)@(}c+trL?;Dp*@V6?@+p&ohJp|B|0 z*wC$qcvIa{bNf_*0qkEk@Siq2R5^HN*-1Q)O!g5$i}!0m?shsHdVJ3e_HVb^w+ZXj zdXsi`xdXz&_2<;Aa~Iopnl$(+wgZk`^$!bKlWdy z&CYv_2Lq#vt?YALgTLWlY5$jj(GJ+Bey3M$3!a?>g z`sOwqEC#M~qX2zbQr2j9{IrU@eOLFO)M*y+cHJsYJ;$Ecw!c|PSeN{1cXZE< z&uZY~{;vsxL9za+Ja~;>=c7{@x>8=pO}y2Y^XM457#xar{-*xCzA3y3i?981_(N_x zR5%*P-`4hylgp`2-D>Lj;p`gPPaSsiqzwm~4J_>;LzETO#K8I#jqbel)W&9YAhglN z;Lv74>I`hPdR328zhk#~=wh!9R-@MY@AIT>HE`&i%sM6pwziKa-Aq`nimNDtZ7A>D zh(h%B=@`SI=C=2K7lJ`CX~UrvW}f1qf1`CaHmJ14z{_Ko6IT4j4W7AOuhV_PmL9*r zGaLBniIap$d#`#QY<}fXp1J+Xw;#>AIiK5R0~g!yg)lf&+G5}-4OVbh+ExQ+xaO{7 z-regHW^TVsJy*NZD3~y5PhR_gFgUp1hVk5$w$;Gu;uCggfO_`QY~bTV@3McbZTJ^k z)bSDTzYIJi-&S(7Uq$y?f2}%ld{e@v*j1y#Np$uv+NtUU8xFM^7!Lk^^{s|gs+pC$ zaA=3r>2%E87Kd&rsQzB7E+!6r_wfW9SR5+;Hn%S%^ECXu!_Hk3hhCYHiqOWSU53)> zn9Ij@)Y{3G?TtPh`f#O2n6-WCst;jjpPl0U6Hu8A3WuVNp=)lN4V*`PK8Q*Cd1nu9 zqi;6wxfxH`z}LsrAWX|OE{;RdH@8Rm9?(kn`broq8a{Ie4{ftUj}K6P2HQLG&=!Bc zu3W<~u(ZD?awn{pde6>k;2L*x5C;EZ<~AI<$$lqhEbTyGMG zqMzi_G+xFAX}AlA?i;w6x29Vn9gEGEmb(%2PZNgr%Pj7+tiwpdz|yv zkKxefU?UoR3%&qU32^X`-_B~Shk(u(1DxE@piX*6VW=?bfXQ2=D4+pCb=flF&Oy! zuQ^5=2L4}dr;>q$!J^$8rQ)u+jegg;;SuXY=WF87F3%=w)^>RR^V~+i*|~W<7#M?r zu^LrI@P2M6%MKL-qrG-UA%cIgk7YOWYTO!5@UPjxWy*vQwqfWnIy*M0j-d^E-)S)4 zaH!kz zp^1T|J#kYYVRtH4WP8KGXRC(u&_@@8MX%JY8j&;01r1$mTMP_;@6I+ij)Bo`(W}2< z;QnW}P@5znJha8YN3*sw+AydX80{*v7qWk0Q8+ZbReh>id^@3w!N85Sf7h&Sbj85% zx4A9;hC#7cMf>oiy|8yh?#9%m#LLA3z_!wI}}v_Bv*5-#@uO zPCH{gb?%p?U4F_-E$MV`%DJGaj-g$7O97(|13ylDh$rou+oA~TR{FZp?)bg|!NBk@ zhPD_OU2*7zp(7|Ne@hw?I+_jYzcAEj2W8$$Sk7sly!<03811URs?*o(>KU1_Idlx| zZYk|_EYP=$Hl_AUO$-c&wyT<1$DXceXS6F1z3^AtH~)UZ;81A?wMngGuxPG>9#qQ3 zHBK82mUePImEL6cjyMLE_8WT#!r)NsvriG)zFa-)p}rf#vX9+v7})V(eoB-7n`UmK zi;Y`#k~ea8O`6z2=T$p5f~1XpsuFfII$|OFcURN*8kVO+lLXr^D0cf<3LT5jz_ruN zH`;Kh|6rYmc6#O&kGDM|?Ey^;3&O47#xc3qeJSyX@3lSqRVkM@KT(hq`0OaJ#M2T4 zdz&392L7)$9E!EcTf}Hbbg5*t53ViwS9{)?+3GvcBsAf~HJ&)s+_oAR26xDun)fUH z1MT6PY~0;d$UTlj_x9~=_&c(CA~x`gzP|~(lyNhmEe1wk+6(h0BDW<4$ZB91Jef^j zqb&|C_wLwV21Z*9oHggNzuIO4&&#@lF#EnsdCl)_COEWCRrPaC4Gu=v->r#`1tb|u z)^=n-67p}})-dqiB@YQ*EPc7%yi~S+Z0|iIwovwlFL?>I;ZW?PXB5xeM&IecG~Sbp z?dfsn{X8)++7IrkXGhee4FkiVXk+j%mLXsw?b&fUeAws^!hF2CaM#?<*r7Z%vd_;J z?cQKFVdz`i;!t#9Pz+sZqhG0C3i3%3%|jdhMOO^$`=T6S!#ub00`7VdcBlFQ9@-5q z4I>zQ>ApAGe;K${gOar5?F|hE#U?iXtx5YtrSaSre`k)q!d-69-$ldJ#G%rLgV9F! zW%71}InGQ)IjVHx!N6G5wT3)66x|b-3+vdKRa0s5y;r<8R7iby^RGkE76YSeZjZ7% ztYL01VzlWm2C+dCa_E@PEeS*apA~f|O{0lMyYCjwXv3n?j%>My{wa2Z4f_0DULAvh zOO&3#gF`X2v-~{Ei_gH)hC#obEvI9j{gd&m28KoJ)pXZjV7H4mjdq)v`E(2pM*qy! z)^yGNE#)oxj)%S&7!HoDS)TptP%Nd6ncEw?t<=m04jSi2n6zPFwATjQ(W2GgZ)wB8 z=)$1pwix(R^j0=F9143&`_t_Jb*@4HJu99l_!qB#lUavHW3B~r>;W3V&JzC!GwhmkLIC$ zCjAHAyz%o~<_t^329@^R&NB$hT=cI~*1Ck8gR)0KazNm~qTZeLHml(6DgN*VsvnoZN51?|;RFR!Iz zFmTT5FDYAxKJ?>2T78&0`x6rbN2Y6`W8%=5{()M{UH*hU+PZ}b-iqMCpfz&uF&yfY zv=;s9rtTV0d!M2c6_1`|7rVVeidB3hVK zN4xapP3oDRExfgQf9{_+{EDz4UqgB5{;zhgC*QSi#l{j0ioxC(+AoIM>KNKEDB4~3 zH=xq_5Ao2&{>d4vS=(aZ#3geQHn_?xO$^-S*8%NV=Rw+#9}CnS8w-qfaNVj@^mRRg zf2D0UaI)#anzZ3i4DGHVTL?SVdloI&dygJPYR>m+R$IJQ$G!=ch{9Ogxsx!pc{S{-Ygat)0w zwv_y;2J+CCwitM0K|8|C27a(Ok&czyY{xs@{yJe+1CKwljxe)OEo+ByT*H``i1H{HnqJio@qSQ&cEXr&wgMdcIXf9ON61HY|2i8 ze=%vpp%@H|i9>IF@Zz@kyWzz8e>pVt*+s&fGA`tyee#}-j+qU7u<+72?fOmEknOX7 zw|C7<>g?EzoJQ~CiGjm9rq;2TDzn+3Rs&nx_0?JP((ZiviQ#XwVc^rZBY9|xfotEG zW3x2Y_t!YHw+x4zSqa#(2+--G&mG<+dH2IUG?Unixp76Q(<3iNP|IVpS{8} z8yM|gDZjb6XI;l#w4ExIrUKjAQ;h0jr9KqqNxNCpCQ8-oJ`Zj9``nD9JTb7e#i7#P zAF+%u-;Gfk28W`Jjjyqq-p>ru%6_}375!X@oYj5pSc{5D4S$>4>)J0RIMis*|JR}A z+AktZ+VC$X?Q8!yQ>TLydFZ2yJ$F~1S!TA=F?8cIaKp~e30)Wz?X*9p(#_k;*uOBa zw996=LfF2Tn><+bs`~TCq`k4=UG=m4E_coCZN9sVwqwOnhJn%kb+%*#+G1d|#lWu% z25K;!{4bJPvy2a6m2X% z17E-E&0VyA`4-nPap;WhAx0Ypo_pX7Vabc!)TBMFVG12Xd&QAqMOPdO125}Vo}}HFF0z5YwL3sq)1*syi(+;YHf2r&!=ang zp4TQ!IzSluW22&ZSLbJB|B8XlZL@*V&hA)K8~-CYy?NqG((dH5iGkr?vw@qoD@aGZwp3}J=q_Pm;EXRkX~~^m8s_}w z5@9g#sS~$(H!{2@Y=`q6-pGa7{xYzZ{0d=W;ATOEbPNu4eej6_f>w}&x@#CS8~C+L zAR818jjz4npXP)~yI^qFfBmZrJhXdSHYgnGa$_lP&$^McVbU|rY+yK4+C^%tqUaxa zbqsBrns<2cccPiQdEp<@>6o;|z~=V1L{3H<4t>2jmyX4hSLafw)k&59F9Vy~u&A_a zMx@rP?JI>V6AUVC7&v3wiG-n@Cd@-QXFMBN+PCJupusVZxxK1tAu84Q7%%X{X~OK* zFJ*h1{oUqUUc%tef=BoB#&0f7zr*)XnO#SC@Ne0NS9wFqc@YK!V`5-wqkr7aE#9^m zINMEo9m`;oh-YpG<{QFovw^K`zf#o+^UV=R%}2idci+~~{L}lnU1ND=HmKR5tJP<| z+ahz5wLPm`IjZP2gIDLR7g-H#Q#^@|y?a@LW-ZP^o|#u_U-~TONqc{qWP~})T1(%a zPW!7Z2L4`TsbSzQHUShiX%zbx7R{QxppJ=w;b3WJ^3F}KI>l;e!=P#WLV0j-|J}K0 zx|_yr7!+$;>lV*!V6-u6J&gueJHZnJOIr+#Hta19jdro4A?p_Mqzwm4JOA&7+%>n$ z-2X%v42*>wA3+hb{WWRlx!HyN`@?S?VQ7nii`@@3+Tu|3<1=vowr@1-;CBbAmuVCG zSK4;7MzTX;Q5dw_jmz|4`zIk7_)?MpdRl2c z4{bO!a!7Ux?l*)!MjqhZOTLS+k3RG7`W)_^Mr|k&FwU4R}ofc?^5YUX-2CmWH#b}E|o19H%wBgY88Pxr0CWo30j5Z7`?PBFO|DQvZfzj=q zF`JH|Z*FIMH=oG$Emb~tDvp64F9;%Z<7?+Uy^ApTyF*|(4Q(-SoHi_~`qG9)Q#~F+ ztIv<1QPm#vq>aASz&{qYQTKt~*TkWf4<6ty+Dj_l()R7k7-2SWgGuQqdBvwZ82Iz0 zPV~@k5!)MWaj3L=XTD%Kv}KO*go%OC&R(`sgt-li+8kR-?UQ}dFtdTjmwly4d(XQN zdNlTu1_OW0JDDeK7#tQgx1ZinpU0~0dNzu;?eHYRp6*xgQ>cl7(H4hR9dTQW&%hM9 zo2Gw#&673^Dh5V7*#!08>K_AJ+g67r?;C75RNCUuimxWe@wd6{cG{0HX}|bpN2hK3 zX;_VAo7vwvKK~-Da;3_M8Q9#m8o27&p;R!UIwhZ8f%0xt@B6F4;P<*_V$y!* z`oTpEY;KD~VPLdj;4H3V4Tqwiv}7~F%x(W6TL^p9HyzEHx7{#s+w>Q>yEM^m5{GtA zvWX3h{+oBtHOy+@e(Syx1_RIjvYc1(w;z2O(}vrrZmOr;)H3y&#}0)>(H4iIi`C3C zoXl;X{Z9ycE58O zbSBsSIBln}#5x8CquaWcqmDi7p?=<|)$y25xz;YEQrZ(Z@AEQ}_OZ3W>|bm9Ovc)m*0Jlqo zr3_k14SL(r@aW%$ftyf`zYIL<&TjR;*9itLF?I|O4*k$%1N#>Se$qP$CCh(My`%N7 zfrFZSi(_E>ZN~`fxvMV?nN^J7P%NQ#-TEo0Rm%VkT^JObGO3)7{b=dPZS?Eh8%6Lh z+QWk1@^US_r-fZS5y#(Vhnfw1y6d&S9NH}LZNgml1W|_t8+pf1gyprJ%3ZXRJ&WK;TO101 zH@Q|TfoMstt+;6-h|8^_=A8Q9O|5Md47I@6Xlqj_O-)@h>)E~atU z!g>GIhJ(?@%x!Tf3_SbDex7U4E;^NRqT%l%Lw6G<28M&(T2G{V(UpvLhvB|#P&gF+ zU7unk9TOW#n6#}1Mti`g2`))L-3*s@iN?8&wm8(G ze`*~|s4WIYyLb9Bbn#iN27~UM{gAh0%|XN8r#dxI=V3LVy;B;~rq5nTYcM8yREiJ`o;A>^o-x)O+6q9!L zTtQ?u@S~kQb}}F-TK-YNgu&nQTFy26ZEe>d(uXi)HMpX z^p7@F<3|G>gMraMH@y+%`PhvL-rdM+-glqolQM~pnH~D&@p#(dw}W>*`3FtfnL|?Q z7#w;mO9Sqr4FjW%!NBg`u5sGIWwx?`YuU{*+OTMR?T?R>YG~hzI>DPCewi?H`~0Lm zT7&5g*uQ22mn=AwFflN?<~I5>qe>7AiuqnHreiQDcDAE>?x)dBP1-TH)ZaCA9|~5l ze|{aCJaso=Rs*-35lfh~;m}l7Q|Q=R=Lz6{nHZ5qMd z8D(?oSlGGYnz;>&jxBM8mv!JmLK{0bpdN2Wc?Zh7Z8i^WacKTAS?K8KHM~vhDzZZ# zX8Em2dwgttLK~B|82Cx&Wo%$;8~p|+)Mv+PbJce*nB&+D+=juWU1m+n2y44rr>+_d zjG>JkJim~4d~<-|Z!z%VpaN`QI9MEtZk;S8bxhhY==$CLGE)GT4>`-ZoLt$WZJHwJur0reC?X^Yo>6o-j#%?hjDs6FS%>%y)Gq<~(&l#r; zf3KZX)i5yHMZe}Dty&ll2F1>wTS?Mh_gSa%K^b){_xd_KIJ8{HIfj9yU1GyF3Uryk zJJYcMo$I`bXEm^Y`qPAs*cPdwEe@47`o)rT;>Fh%ht8g`iUu98$Ob;xH?wXwu(VUF zb5YFxMtA&#`#cyphl{O_!M|n$qi;2E@tO99ztJ9BpjQO^i}t0}5rl2{7{CUFL&d;l zwey6ZWwpYL~Qtz+eq-k}T+{iwsGM7%zAHmEbGHy92*-e(R`s(Nu8 z3Iivf@RPDWij32Sfin%f$(s=D&jyBr(Z;e>YDm^L96Wuiqha77ZK_a@{uy)(U2FT$ zk`G3^q^~d8+?vE&`+5+)JDE(!QmpJjF>ibF`ZiGC6}ITeLthL$V0gKB4J>V^oR!sQ zU+Uf?ioUu1LA{4&ZNs6fU&Zpo-{Mef`$4vpba(bx z?xG!8CPqW|ZetrAgGJH4kR-8=iGdrpY(xu(MQJcF7Q3Pb*|_v)drP|^ssCo3KW_N@ z`l&F&Jd<`{gTkR`W3XuA%Wv7C(uPAZb6X6&a^eI{9NJ>Xz_j>-rwE;b7$ z41H@m`eX!QxgT$0hr*)L7Kh$VWJ8}%rl9ZJO6wRLEdI_qd{MCxvTb;9L!_X-%GH)-h?Pt~yM|tOjniwV%;$dC8BO4p-;-nhcy!d;f~FMde8{Y0lLzl*|4O?J*l;7wuBd-fxCPxMQe|&)38sgixGCQ z=|I|gb%i$R+D@bGelwAd!J#xdmeNAcXhA0{li&ti5c+Tu`Ye{H^8- z5_YJx8-FWowBgX;J)Yb}yJM8Pf7VUi+t;glIJ#fGU-PU6hJVvU2O9={;og)6pJ>Sj zj;}2aMZ0rgeo8l@EE~Au{rQ9?E$w8qZx3ioAwlzvwivkJ%@cnact)MRWLqMPCkCF< z<~Ctg1Lw)+PnbjR%Z7o`u6d;*ug$#4hC|<$SQp2@_a9w0918!g?Rk+WZ8+Frei;&n zO4}~U6fzsw+!lw1<=jh4H%&3x+j}-M3=IF8+a(I+)G_pvuaBg*bvLtv&F!jXVhD3h z+ecd!5%Qk~etPmex6wbQ?qAOvGo4qY`AWjr!S4=e_p%3R(nc2(1H+;tiuW`eiuV1A z*R)EX7SpN4s|Qzd;)#JVA5x@U8<| zd)&!*J_eR$ID zpRXo~fzcI*ih#~a&dAGu8MvZDRy{@95VE#m;K(ftXiRKhYPWC`?@FF? z>d){Toe2#jX^Vl)ZFEZ<@#eM|_`lld!=V#&PaYf^8?=mSJ|FW}yTZbwgtc`U$o3Wk z4}CM%FmTtMK7>7K(SWW^i{W*5NTy?vX$lZlq}&W1x|r9JMx_aL(NGXw&;@ z^y_&x_OIE%!R|iVe;N4d)J&A`%uXH*e4~gf!N1te_LFE&+iKMOqDFOgsecF6%m!{9 zeu1zvKXMxeZcz3F6}TDAJG!?w<=S>jgF#zoJsrp21$%`Omad$=jy>}{V;Fc~|2Ayk z;p$m_3|%<1N`_>5^*gC~((W~`w&74~8wNh>=*MmJ2aTCceS1&jZbEG_FuHov&pd1U z`N<%5b}!ft{AB(;SMq^6J`dB@7Oh zw$;Gb_eT;Y4ju5K4@GazVmMUVex19~mU|IA_&2_`IJExsS6XhnhlDL|{f(Ed&`v6u zcAR10Mjujf*V=|b#lTOBWhdAhGq>M=UryM8YfA_QjnBa8hdJoxHXJ%bz1xqO9SR30 zeSJe~QP7LfHXC?p{=9_Ms&_=|)_#HJyemMnwhIN!By6R_0>i*)H?y(R3RGxH7}^et zow;vq!=fG&cJZ7uRgKrcDRTsHyYSt^(*SsVky!NDmDkY}d7JZZzgogR5<<~AJqz1QM@XKI`MEp0FV=NkMC z0}pjL#q0ekM%(z=jaSV58evw4HvI904SdC62VoU<#`4Tz!(eK(Xz0rn4tIaJP$H3LEdr{P}6TC!M2Wx0! z;Zyn%CJuEiwwKTqhu-Q`fzX|`Z4uAh9+dM8CCgcr?$_@! z)*J0RSr*ZtRSkJ18)ehX21XkOmbMu9off0Ppjdi!pUcXM>fE7#1-u;R>T6q} zrKOs>fG~&MZ+P3jHX(GefQWev~T7KfS*T((sJx2xQ1 z7vb#g#{PvvuZ2(IHXPhL%vHzGg+tMv82g;})%^=$O|#Wv|DyeJppA|d+c}*+^mC!b zx$~2>#lU&%Ehn^HLe|lC4|PYdn)n-Saj3NCUVp8Lfu%j=ldX=$XW*voW*G+VnRGE_ zF5}OGf#>e8qkg^)kJG;4tKPMJF_$N87}&1*GTy>`tF-{nw$v=;P9D1A&~#5qXzpE4 z7zVCz^&=hZSxCn=+85^qXH@4OG!NqqKdkQNX)&GGv}}9YaBKxn3>4 zchtRZW4H3G2G)PoBInr6hQG%v*NK6HZrV~|r=J=OjBRSRPP-5_=|9^ru(_Sj<$Ho{ zF);d5w=|;zeQWd3ov?O3PYhgQyOWN=!D8TR{dUJO@X~Sa>|Zf3+O7lD*|Me7I}a&u z^UMZ@gC90s#5?J~hOk}L`_WB5&;Li+Sw?lWb$#1L5xctsyPGw)9_;S!?(RZS5U>CR zMMXetMa5RYE==t1?(TTkZ{E)RZ2sc8@At#?%`q;=@Eq9J-fPWCiL%XSJo@O_*P4zo ztr=-x^e;ezqJMi$dC4>mzexZsT5v~i8a5}V=|+nl?YfgbO{32mIl7RWfFlxD?^x|0dEu-Mac~ScZxv$?5OE{@UxN*jpv+-n)f)W-~}PN^P>6` zjFbj0wXToZz;I_6<<3|;RNO6xxDdD+FR?;{!kgnjFGk!cPluT9r6t}v!3~mpjv?UK zK%1JI(yI1TWa1VT+pNw2FY$4Znx-W0IEssDQ0| zMaz8z;I+DGW?ls^cvLEc;GVp45!1vi2Z2*VXQ_N=+_-<+EZV%G~w+(R5Q z5Zo!BxN-lYfrBsIQsTapU!QUQ-N60Ax6{d$Vcg#ncj$YC+KmPtd+nm>j=GhT!0xg0 z;&h`$UB2yNZqA=zHt^zO{i#)nh6Fbn7+BqJ#|4`WTs&qu0db>&`$yTacR<7z0`T7m z==(ya9bPr=k?nPpuxrMe{wEKhjzcAXS<}G zLz^>JF@UW*V3?1dckN>~@Z6_m4FEUz=@`#+d;Z$bZuqklZB6&H*QB5d1|{i`HL8rm zW&-c?_?d3BXxHRZl(^BNp9jrn(4w18Uj7fdfjdTIRO0rvcTs3ykahcF25xEK`d;G* zI3#rD21SQg1fRN-N1f+q*z4O8v0@A?qMtvlJ4n_kf|DvDQe>bq(^ut0y@){r7l{gFhIf8T?g7)x4u#k1ZniI! zJ2Z9uX=aC}j31@$^}FxXcz0(~%fC|B<5>+*oufsODlPMw`g6Z#j7xs#NP$MtA^Kt_UBI@Bn= zN4-c;f`Byey^&R^e3eCvxY578?a5fH##(Lm1PVX7+m>u+$ndh#RSm6>#AjC z@2#);OqE952^Q8NbSUWSvD9qfk(ZJi;O5)Hbb8r51`WJ(#6p7m)#$ZMT<-lJR7aW0r&@1*Da_)hyDyd&Pa!5inp0Sk@G$O zXkhr=o(|ylj;n#gSNBypQm!B%?xr735s(J{|8+|P-%7EQfcKnWv%k^6&yI#LXy5@k z?F_Kpc>_1_?3lX*#O=~r@1@cWoFmys=8oeo0_f0u@pBj;#r=%T^(xKC){O=Q71kv% zfNcZAEgdRubTGUC9V~8Z16$qu_m(t3A-%f|4GN0bEo1M$x!2v(J4Ao?ccnglga$_g zpG>m9n)J7OtIh<(ZQH=&Rx|I@iTMZFjRpnMz?-9!=^b~;C~)>kg$4#_PyjE0_idG4 z%yi>|TIrO*0OPK?(&Dn2sbbAsW&_vrZBAf#2QNn4b?tYM^N$To(fNB6Iuz{qc!eps zpgsX{ONWkk%p9lN+Q37W*Wms|i|!d3ti&x1>}Tg=y31z@CSY}YXPQEwdzZxAzgD-y zsps6GXwjptZe{})zjU5}xTQl+J$I!x4%5vJofEi%ex{$!?Je$*4e<T^5;NPmm_d7>T^-ENH8z;Ig|81A!EhSQp>{i4v`?M~hxaSt~Z zlh3vNjJVOkna1y6uQaf@(Z8U_s6bUPK!2~)ffLoAK}WKEVp^#+RD8h(=KNj<0~G$yQqMMD%3K{@k!n^vs?edO zhW=pCz?(0(p-#JxP_pbErW*|k;C9)O%mDC9e=n@mwOaB_dY-ZdUaQ+Ec7?#f^!pgU zCO6fzdO^z8y~0KBp-NKQbT_!{Pe9ygU~zZ$_aPt+Ebg;@dT#uUvCNj*E!hjVbST_* zr;DldwT=k3S%lhFXu!0-m{SjioV7VY$Gi;@n7yKtlU z23XWKl)k%FHr;g>RUlw>5AK@Q0Mfv4&#L*AvAU&!PhJgH;+75-x7ro@hugireov}F zi^83#w*EHp*pCtS*bBM1LD9hC-m?93#B5F-<1?hp{Sx9>)Mk7Ogky?NRdcKfG^X8^Qlo1(7V zp|)=6&^3+P(%;%mgy3HUxB7}JqQg9_o5Za7&JKA8~y7!a}krZ{rW%L;j^}yZZvSVL{}L! zaL#_U48R?%y>S03Je%s}+rx}$yo`V}aI!wR4Unip1SP&xgh7XnULC>oT(_D48Wg~7 zZD4V)U$(|{ONXL?<8qHVv!8&tPkxS|l*PyW;YI@kaa$XBc*tM^@PZoI0tsHLyMXs7 zZcudSyE28$4h{Hpf-aA*WWXzKG;qx%ubrerSJkdSpw?==PfcSy-)c7S>)xdZpuOP* zgQn?o>zaO>W|G;Vk8l0az~WA{t4*v1PI>Z@5_iT`c?k4af0(hlr+Hr^@atGKBMl69 zssv&G*TCAH-XR?|D1L!K2cv=E1=6A4GYus0_|Po{Y~4fk{$XI>suz3Xaz7eSmfi4& zcUnro>P81o?VX-FEG$Y9IaV?7?<_Qtsj(st(aV8MofRo5%Z~MoZ3B-#v6uT74cws5 zBI;alHB%~JA^~w99}upjfon_~KmZ*IH~JTdyZzk=vw<51og?seQ$Mpq(ZJR9Yvl2S{RT}VG%(!O4jq>Ct=Yg0+Lj?uu=i_~ z#eJ^XzzIgBBk_Wc<~+{vRm5_qKE zJN0?hSR! zCf}LqcFQSk&Ho?`yyN;7r-WmU5a@qsDxrU^?%tic(2xE-s8Y36W&>xvu-0_9Ea=Hz zaeFMzZvgmD=F@Y^f4ilDJ&LR#P&r*4n)r6U*}%^WtYEjbfowh4C4h3+7H>sQm z{VVP+^$t?zq_d%?>R^dqD`etUyXU5iqcc)m4Ls+^Mzg;?s?0YV z*y=u*`5u8ppV~4%3&kVX)s5LJ9f}459wC5#*1{OCO zxbB20gbqgkf_8bm%?9pv%z+-{-o=z`*Fc|(Z$Q=tp6IuWK#H30NE*0DxmIQar^}*u zGQSy3G1HEk4U7)mQt6J_q2)H+Ca}cYp0PHtxVzeF4s5RXy7sHpE2mr0$-k+?$q%HQ=s=6 z3ZC~dRs*l-?nAkb-D1RjzHv6w-7j8kg4^1__o@UC=sIZ@rCuLtcBs{D?a(sYT}(Ip z(xGTz_|d`9$Imk8U}<2u4^`dDZumXyyEE`ghoZgTrfSNhZK>x&mkf>7z;I8hKPqy~ zX}z;uBW~%?B$IcTZf|v)KycIf)Ubam1vl6TL&Xg*Km!jQ62KHI zep&DLxXkT6^h!1Z4cxlRU9*AV2C3KVb+Wppf$wI0O91X=&+`}{OOE*5zt<0)B9Ld% zT5e!;u&-`VP&fT0CGJlpTuIz{UgR)<=L0{wpSmWqaAc^{oG&MwDoia$z}8*))+*C2 z4ZJ+;3<0=flK(@Ws+Kn0c9UKzX<)d=yzN218aR^GEe-7ce6@;xl9zIq8Ng)u-J$4T zc!6zyi~H?fJu6y!fpqBA?v2d;ZrZOZ0c!*A%^uGHXwimeT^MvQ{Nf%ss4KbTzrid` zxSY_y0R0Q#1-1K4?_>`*i? z8Wg~N)-{mb@NdZJXLcz3|BJi8q)Y_Rq3}wFN&_caJkfMZhe`vl-`$c*wfexc*_l;I z0}seppX~a^H$Zi_{`%)pe>%1)uL0K0slwb^Su$1wCpz8RbV~!n{mOm-Jsh_&Rs&bk zXBU9DuN~<@TMms>@LJvF9Q1w@P21vE>Dry+_RWU` z(pU5&abGwzo+9hl4jI}V>AfCg^b%_GWx;5Gu%!1`?!iTg~?073&V znxp42h0BGP+larVoYHeVLy#)<`1_sih(!l885=I!U zbu7va?Bm#!T%*cxgGvKeUAL6LjvUd9wSnuWPhDs5G#xdqLW71R9(Rr525n8o=72VU=SDgbur;QYQMQ#ElMp@};B_ z_lh3=1f+o*yzgi>aH-^zxq;iY@gPv#D}wo7+~{AB?LbjR8u-hv#57@Xv;uvGT~;gf zcT90h1EYfZoE_%?HK;8zAnKCV#5J3N08@OTiLF~1<(VzhC={e(5;nZmu zxF6-8P1XiR2g8j94t%*uEh$@ofVD&WPtPA~&<=b15injXX3)Uk-`vuna7zQ%8#amFoO#BS3|dFv#IN)Q5cdr_OKa1dr*;l` zxP#%f?NGR-f%^x4QjM#-QU8b~6z&$u!2RiHQUi$FX_$-YKEHlD0dc4Mw1WT|6u{ki zgBLfbt-I*%qTJr_qeI~a)VmzzI5nR8SKMgeXD<>MKpI%wXz(t*4=P)C#%=3J+-Tq? z-7hONFuY)JZa=F3Dn3aAONYV@(7?cbWfgWyhe`u)$~}}D^vcXY0?#Td?q4);$M5%O z&BRNz{q}wZ{?@=*TQ{ZKk4`bx2A*BDE_>nbP^Rl24ICatrdv96{JM_Zp>U&t`#dU7 z*Zh`q|H3~xq#(C9I(WaFo10XH?IFuC7M=?`&Syc`S{udFF^lZ^~%oe z4Zk!nywag?19b4XH<#6SC;bjz_wUZ&?TpoJZQysgClY{nVrgXnY2ds+@)G(NtQfe6 zz~34;-~2A@Er0Mi0W_$%x6f~20BK-!X!NK+2JU{lQc@S&^|g9b)_ zgITX#NILXmSeTR54S%+G2?N?2Hx$G zgoe%Yr>d1w#&Xx`6iEOLUaCre`o6t6v$JDix;eNJHS_FBc}4`V7yWB(;9{NXkazag zO5EoPg%Ys3(Z2xhM3sUV&)#ndh}+ts@QYg-_)*BTDCto9w>b#Bb>FPepx;YvAisKB z7<8!gce#!F_rq^D8d%)Yz=Pi$B_QtQX;K>C@ZG{RVbqE^8yMbHUxqSqxurwl2Iyev zZ)=B&d+{!P-ce)ghF|*oL%&c0w;e{4bISncezKbc8ao#@J5=20?_o36a)-w34kIA$ zvJ+ntK>vb4C1)`OE_)D2`Jysa&%4iTV844a3G8lmo`K)RF{J?(*P3R!SNFL>01a&G zUZUp&NQc6W1|FZ+};+AgPb6P>w%(ZNX?+~y7)^`Ja$ zA5@!N*(m-o(77dsrcV(~bUy7X)P}LQezrE?kY( zjRuAr9SZErxhZMjeKqsPYG83o1JCT+lDM@+s_~n#7jE=#Ca-gh^tZT|hw43|e{s7l zDNbN+wtRoM(V!sd)a>+Zw5RC~KG20;T{*@`hi=-if@){#&R9DXZtz{Dj@6-o6NiDd#w$O4lQ~)iuUzOZ2@RcmW#NXUlE|9V+gIqkIX7 z8x1V({FzP?IJ+;KIq z)qN(@ZT&6oHuo370Q*!0Oil?*-Hm{Q@4m!Oz*N`?1taALtnclHNgED!$=x<>B?Jw zxNRHQ>PCxN-RNMe8-5?p59)7jYXifbK94^m4V*cJzOQL%;9B-cDDs;#w>R8B=j>zP z^;tid(!|?M#lL$q!KacMfabf}-lXBcC z%x?JSt=`0xPdu31BU~8!ou?_rdlomSxV?9_G~Lz)?vw z^1a%SK?65WRhE+Wo5#fEMgu#h+M-$(%uQwQ_F(+0EoTPOzsW)2%v+b`}YT%1dgr9K ztNL(zqk}uFX~3X?Yc|}*EK230;_uNrlE&XN-DqHOuWEiw^}W58fHd%VSN-?Zs5A?s z;EwA3n&~^FKNYGO!3;V*i~Cm^*w*b=<}CrQ{2uIvA6|g|wKg!^G3nD8K-^6nTnWVG z-u*F}0NlUQHYYSN2uv5BUiPl5#ElMx9}V2S&{4*=fnVOaXSz3RxuVd(;?7m6E1`cu ztv5-@V_Q}B!Yv&t?md$WQ@$Egqolv#F4{69w`hT7@eCjxDh)hw#8;ZIs3dK=vqSk* z{^=wQ46iisoQ@d?4GK4is5ruG;JP=R>1?-uDB|5b#;2a4&twEMXm50=ty?-&+>h=y zQPRMZUnVhttsDM1t_zs1C58~#>OGhdHyRi;Y&njs4IH#<8MO|sMaLI9lDI1kd_ut5 zz~ZjgYm2hi@8vH}+p}Xr_*4?VyQ zj1GNY;ER*E(V^1ca6dU8$w+^T`*f}U^sl&+_TNO{UJG|d-00vJm(MYAxkuJpNI)9+ z-SE=%?OPVAQD&;LHt-eqN(7`sXSZp`4U87GbxQ;9FVmg9+221Qa4z99h5nTWMu);} z+rV=#d~}iyMFXdur0+9p;&MxWqk)0AOAl^Bhn;J&7w$G0hOoDAgq~lgy#O6*b=x+u zxX(87C4deEU%e*~cv9grleeDGa#gzwL>cpOJRWGLFpCx+tyw1{3!x(qe1`8eRy6?vqRxV1HYaz zgW$Gp;6gJC7yxcGFj#ao32knWktq{+i2&Tz2KJfVhQNcwp3L&SUQxCU-1F5e0vYW4 zbAyT-4GP4K4h4$`jirxc{QhvaiRbf2hoXVu{*`$vBMn^iP_z>o_-;op%B1w&N$|UY zcO~r2UfTw?x}*1xCm;>{H#hp%*1g2;2?2EI(*)s!{*?yqF~^I*os6DpM`;HGNCTsT zyRJw>=wHx$dqpJ;e0=tH0-IiCWe$$Ntp0h`p7NII&va^bTiG_S)r|%gcllk7NZiuE zIewHN=dxu?_p}5r2;4sKj)5EfYfN=!4z}_%8+b`$eU{Cpf$w+!M!>d#x0D=1z}nx^ zq2Hc2BsbRs?6tblpg`Qc9~3kIIv8%-1{OCuIPBwgvw^eT3MR0B^G9{C{w(faaZ887 ze|hCf?%+N>l2F_G6Pf7u?-d$U+(|v6sYlc89E~RyP`WqZ&dV7Cu(fhE=7T z`W-y_H+11_v%ldz9DOI28~xj|%H%&9`0TER zHvhYUeQ!^u^0zh+`WFQ6KOd`s3pLpst3yvZ#5b%Riv9(2U86|c=x=G@ydCcmNI58} z0n%XNB9EvmieuWmH(c$c%x##H{)Zr5t2 z@0cJu6^OBMlsUVXE5qG7lxsvyyq7e#RdS z{BLfwsMquiG~a#=p}(a=hkRW~#c$^{K>KekRbS5~3U2f-fWOknp@jamx?5eHLN0GR z#Om+0N$wD6b9f~8FFLeQwxk9a=sT3%@QeFZfjob>?O(4};)WNTZgrL^SvfP^4ZNeo z4S$^-JyiUf2WiQ)_e_SQ(@nQ@DBNI3+Hpi%f|&eiqf}Uk-b<^I2JSoaq=G*%dn*EH zU~$*#S(ZSNmN{wY$Qfn>Tixi;1!XTV;(pzJAVuZd%)ni&>vHa2v}og$de)&$1J}%< z?}KYxa)qnA1GB1Ri*vCT?&xI0qQos7iUyrp>N6wmQt!(Xu)6pTsQ`FaX?WU~w-ir_VrX|ETkOxPQm&%w+&^&;Qaw0cl`|pt2CGlF}dmQ32pPwqnvA}L|NVF-%I{(W`~~d){Vfal35vX?{u4~ zq=9FCt;BxmP-)=S9Y@iQHW|2o(W3BzxEdH8ylQ3@14si`856?p4rgAeE1eS%NS!jA ztR0F5PP*3RuMJ%FM*;(6_*yhp0|(Z+O+Y$S+|r?Nhu@z@J2p*Z(4ld;(Z8T$_6Ll| z`Rhs=*y`>)W{26pwr(^q8eH7cp;q_PwtDA>MjCkiLVef#x4U@!W(Js6o~UTG?9?r= zF{y;DnR)Ns6x_h0YCT$%zA;^Dk`92*&NXB!znpu!Y=u2y5)z=N+x5%@Rv zjg4;V;>gql&TYM~tnOwdl2Ee@%NTLzxVx5SR9wMcs~Zj6di*0L{Vi@ZFgX4uA3fQy zK%E*oLOC_4KmhKvZ;~4z*~}{h(B9I(;_h>0KII-UgQi|cX`n@I8@TNG?F6b6>1sCc zp$9t@ywbqYM;53Ny)qgA9on>~o|$Iju3R$QbV~!nJ$m=jC|kEQu+`n5XgGmuk%K7V z^8a(Afo-<>dDfiIICscvn(he9I_yw5*}0SadhP>EL> zlqn#!0i=OHy+0b&Z0}TR`}G-<@o-)`^K>$U2DZ9)tQZr^?Ue35fp~}RsN!=Q{MB7z zPCvS|I8Q8hznaGg*DeMf3Npm^RpOQo-P0|afVicB(V-t& z#1I%iTF?0T?T)K~U9LD25Vy5M#ht}ZzaFoF2|lK^e=c)x;x$J5#_XFYAOT7)xe=U z$pF&8R<|_prp;@q^Wf}pHZb}(?Wmy)8W>D0d!9iDi(4A_(y1>5>_eweo@{zIrS9OX z3BwsQD9BW#=N}FHdBG3@=lzRO-D{Z*@Z?qiRdahlC5PoTz_?yN2%v*QdKWPOcc|{* zlsmf9ha6Q24Gec;L+?r}@kGHb9XfVVcXp2rTurV=QX4=T_*1`p1`zk+e9hSne?>j> zSlsRP?z?x{tA5Xl20k>{gUT)SVqOI`jOCUF{+qjuq3@6VZs6Ke_7P}wV?UF^ zX9_oPifTm&4ctiY(;T6{6G?~OTeXZkRNQFM_^XE#8WbU(t_y5YanahIB~`l><$d#6pr{VNS@>$Yv+c>2!2^fy{` z&LBI=vVKc7G;q2)#SL*whfY43@s9@1Ob!OHx-%Y|X*TfiRW0a=%PvM57+x^BS_pM% zaezUKqJj7Bsm<<;x813WeqI*$fc^WGZGVd!4GJDUTuEELz%(il;%?6hK7I(|HGnBP~-@m(2t$x}e1jM~(=_3Ntp{>XC zq1~JBD0C?LSKQVPjmzCQgWhMau{Ln2qy1^)9Ums5Lm~FU?cLguvZr3gUR!s9KBoxW z994qyCws$K-3uSyAb=K?4t-iNw*k<>(!iN}mNx(z819^l^?o$XDVL-MK#Pv{dPksa zs{P!+akwc|wC-%9$fW2@JpSFcT1H+95?H_L?W81*DZXPxp*l|&5vqP;7EN4eX73xy zSH_1MIN_`)B@GO>G_aFHMgmrM!;k-v^fx*bZZt5w;@6``(2Mxc6BBYfE)b_rk6^oXH@QCq=9`q|Hpmc`c%p_Y7#B0 z+KR>+o@N8D?fa75=umN&PCU+Zqeb6Uc4A!nej)&`M}{?wxF4ozOx6zlp1ddZ-{8qe zhjuzJi-0sR+z*`gDcc5yA6{@ReJG`w(22cpKTCXESsNH$t9#gq4&0#V&=$8laeKor z?tyj3(8FKe4BTjM$6wc(Zy8(&WZXTAy>P$RbLa0lRHKG1JQ?ZGj3xA+(_HW7$o&hi z)!lGI2LjT-b*{9~4OX9#4)yub&~#fn^kHZ{_QG9Nt>OOd+v1klz~XN1e3d}Ow}-ex zKTXI(6_Up@zy-T*rh9pni%L3F+-Ts@Z_@wKz*#nxrgt7c6sWZKECIMdkL?xA2DZA_ zo||npFx+V1iD`P#-RP;R@rzc}u}@wDSQ{Ab$4x6RTX&YHcolLQphT{O1{zr05gP{4 znb(QgoA=Os0@9(Qs*k0=HSp7=DGea*rS+o-pnn!oQG^D({~f#ioDscr#hRr9K= z34HzMEs6X2+9R>tF1|e|-1U%pdLx?w3OsIZb|~DR9`v9=!)7vYO9NL-J(to}_B7q? zKFwxtXP0>d#GR@9Y69>w6UNbVP5p~2m~^AhI>qJgRq-4FY2ZxdLb!oDuh>ffE$Y4b zBopG~N|BYq)yHXV3EWC|O3!6;A<*hw!~fdA)(%ZKWh8;LSvJzhj;RfR26pb-pS|KP zZ8wgDW@Lj zy~q##aQhzDvju+lHyRjT5LW|#S-+0JiMzqHFwt8EEsFj|1OGSoP`_~cHEJ~__qwP6 z+-P7Baa=doUmDoWV=;T-4!x-7_5F62&vK2<x;b+LqeX4qNj`qz{ti_2Y1@Sn1UD#mdm-I;I-BM$xvidg=OU{c4SfFXL2mDd zPDcsAKcjOqX0x*=fzLlO8311JEB7)2wbRTYc!6~2wu|$~!_AYua9bM~e)R8!)Cml6 z!!Pd84t`Xy>sESF_YUKeD9Uud%I8MAu4HAexZ%Gr*E5z|I@Gp-7xZgmx-Wajm>r4+ z2DRE3_`?lAPfR5Sh(=FDFG z^EF?6^*6UPaKrDF35>atf%_K?4EKvX_LRfNml5~C^oNwVZ5!C?o__ZlfqA8~Drw*} zPxg><9;RnrwB!CohtA2R?`qvkL!rB~n;qJuULVsf9eS%k00G+uMuS@$_~y!sl)O+% z14KG+G2POk9dczc0NgGgUARLZY&jguz0mi8dgX6tHt;QdW(aQE2JVzA+h5(%p*{zr z$<~bq1qE|#Bgcm?8FcWN$o~MpG%(!h{70K^G_dzJ{X071IP=fLk+iY(5!I_tGs;zT z26yOE-_d4&pTEDBz_XIYxPPUAt?u@r%5(=l+e!fbSDT&5f9Ppd-qVBN1-nBlneH_g z)~NkYdUO9u1H(P7Q8hw?f=T;>V!6?vz%Agks=OvS!42;H2rwJCaLRM)&G6j%jN@`{ zP;}_hfTavNv`gk(%-xiOOg9=hWtJwiviNz^jRr3E?z;l$U|To*n-c4v#}+pl82p=C z8aQD$e*$nH7`cSq@!vcnAPpRrwFiNi%MG}HrGe+U>iwM>_`@pAsFGyW+-g17yAhbR zY$2h40s7b4z~V-Of*yViX~Fd1I2+jNwl=W16Mi_Qq(kA&HG3a3pyn28u{)fxy3wE= z^jUXX_k;a@1kk@AbEaPk4QkuKHP7gIM8Erc%A(Dt+wGBOoNjbzmMd==al?-eo?BVp zRXdo^0O(-!@8@bkjJVOEvq!FD`i@*f9Z#%cq(iIqYfo^4Dm#}jK`kb6|61K?x-_91 zyYx<8jeq5~|LR7E!ka1kYX*MlQ250y9ol_mG=bXvy<#6O#)AgKk4ZJ`)G{c$<)O?jY z4X(C^y;irifxAv$7OR2n?B*+g2CaWRh#cBKV$i@Dstl!=I@##Z)h>*%q#oo|@Gw(g%^?Efc0RP2$_&3l zh5S<+!0MiIB7jPDzQ&+`U83U~;A`{`a=&;eI4;17w@7_+KhQg*lW9G2hxjRvlAFd=QacZ8Yb>_J8D zj^Yko-RC8hDdI(ioSHBd13t#t-*GjtxY45U0yJ>r3T>j&`TV2c6*v6w0%>4zzuMG- z8yIfze(f3t4P5l&b*4hu-e!kd8yN1DX%cY%qC>Yi+*Z@>ZBgIH)+UfspY=Yx{jnPP zcATpGYL#l82K81z~bIfF{jy~=wGnfdiSnXy=ugl>f|5CTOOe0U9h_NF9RT zGEUVxP=}dG3@~o%NCG=AZDGRGZ6okgKWine6+l-GEM-ni?M9$kvq1G?{TBkC6NJ#! zCozn;>-$cjnJM*qb)UeowINjM&Ri#do4>E8!t`nr-2D6@~VK3aH5)5X#l&nFC+Rj$r+y_vp z6F-@!HwvrPKROXe_syt6TNXN}wlh}u`{3l;T*Z=9=-w&@?tM)kGVqG~Q}$KVy8KIKi}xD(xbznTZ{m12hr_~5lo)Ty9hWR`>Mp9?^hes9X`{OyqC115w#xDuysic0Ke7!rtK{P z@Ry#t(R5#Ewn3#BIXlwzgg)1xNt3@CV|8~~nBM@0mc3Fth7O4gi?~bx-T~8+7{Kc8 zm!lK4@NhK1k@8Vgw){P&d20PlPP@0hbfm@wH>hQE780;^_uXYr6{5#5;-2o?kzUTr z$zHf0HJL$kMx`^rXrl#nXjg*yo4ZNY#uVM&ow2%?KCMZ=oEI_hf-RLdG52;2q8lS0 zGH@sKU(JkuUCDHxKRk}Wgxo#~Tt0r6K%V*R0_W3o7KnuTiG+)m{09h&|W6GS%OW=N*LrUD|RvV_fP}4^0`p$g>=1%^? zzzfDibX0qq4xucSvKRpF#h;VwZ{jahra*TBssG7ffVkZEPU^crnqz*=sX(*q4BWXU zIWl2Cle5?A9&~Q6TB7uwiln&>AnuAY;u+)g*}{$2Uo*kEeNDH=fl>yTx4N&spX13i zdv=yU$Mqdd_kl4FRYcQ~)Yf|`QsT}Q^@Bhj_wMvFDDKa0pN%GWnMSR_WCT-?nelF%QW0dBeU2UpsW4* zKitidc+sh-vjq3POBa|FT^8u?NDE@Q9Udw=xb8kvH|JCmcMoGe0VDIISnl-QGLqFj z_rP)j!*Xw<1as^R;Q4MoyU(AW{f9gI=>`PgwYopvSwoEv&e8uKeH6Tr`u|nnxh9xO zbxln(N8MF<`+X&_Nzd0F+-a&3cY*I!4FLCG?_+f8<1IB}oI#+O@1<%*>;F`s{LnlE zLcM*-t@;A$(IS90UAoCQEKO@{p5n}iJ0!(%%9OT@0j%z0n_UT{FIkAhT}jX9hP!f` zVy0WsR00LhjaC`2?xXhs*BH0~-0@PSG_3B+)%5%vedg^z$aT|wap!qD*Vdn64qa#9 zj`r_Hxned_wsY|fP`&7KN?LCRQ?>AF0&%$?fU6ohQ+-ORfsQ3y$wO;1s>q->JwX zJp)t&@4+N#4e;_^YO1sDAOkPx>#$2*_Q^o-4mrJo>6ylhs#RLahB0yUFTaddMQmW;1`nHGApn1%KC2D3dMHZwJfYD# z;XZ;Jtnj_VB&z2};CZTQdOvt>wQtxP0yPE)5&Yt=G+fVQ*4Vngj6P3bO2h^yai>W& zi2%If4sCvzK=b0;|8V!Ej+E+hDraj;YJu z#BDB-xEu5;OJ^3RX0NTg{mvKyT@T!+1fAwGM%PsAeck?+zN>YMO6R*w8Oxod2JiKI zD9xMu;mk45>g04$;8_cw z5*QeBnAzRv9D%0o1~J|Td(qn7HyAW<;JUO1K!<*w|CH)EO=G?`u;UIretsxT*YC2V zf#|o~c{*Cyem3R58pveWHBAAy zTW;N<--{Ghv-+Km5Vy5MTNU3&0RD-a&#~7?T*LrYH#)TMxMiw+o5chY%$T6;3hgCO zu0l8ie~mYRDpC4y25#D;@0e`5pp2-sl+x znpMT8sxEaBnhh-Os1hd${MtN>`xkD2{snMLhgutWO4sk)zwrJyH(K=jtcTp*=x_H{ z6}W$`Zfl34gW>jFJU2rbORmZ(QzMUG(>1jr6xi zoetc;yPpN zj%=gPlhIqVL&c2_o!e3GHPw{5Ta|f~=c|4`{HpQ~d%;Xt+k*hy;8n7Joc_&S;c*NB zbZFld`fR7h>b5rU#LqL>jRpnq`X66IU}&+a3|cf@zjZ2UmW~9XbGD)qcPB6(>Qv$W zl?Hycu0o>LGem^A{Ek1XFvAXS31;=)W6{QlIzqvO)+)UuK zYa{MZwCJI}Cz!+=w-G>xiW?2Qu-IACEe(tgg&R~3eXR~&(6h~cH*ld#-t?x8o-?nJ z2F|-tKPUWl@2csd#tb=3KpNQUp7)}iKC{)1vc~_Y;0CMb4JY(3So1subx3?d6|jHD zNQc7zY4QeAojhZ8==c0Su{zY&jsDK2J7i@9)G|-RNJiYLhp$ z_RV7eY2c4PN71A6Oayt8=!x)bggIr>2GP^B^mWhi{M3!xY5D3?pnY4 zQIRrN70B!vNkIA=9h&Y$8b;jGz&-{1OgH-1+Q3$KaR15N-*BTvr9;uc;9=#3jJQA5 zS3@{5ZQus^?+~zcONVazxsThsTIN3KU5XP_d*cr!9V%{VV5__7#A*aLs98HJeN7P0IB`1*6J8@e z!Hxcv1`e>RZvbiFaRpDC4Gb^vxtPXm;E#J}ReM_SGl?4=x^rkT0&o|0);lnC18@E8 z70X?sSquSj*GxOjN!;jQG%(ztSe+K6>gYT98tG6paH&$hPH=;Bliaw0tGr6Z4U7&J zcdI@b46yXlHOg0PDSNx>-MQeS?=%9B-wle@-&INk5rA7d)at$vd|COHJfq+Rvx@4w zs2X^|&Hk>G^rh|&8#ny6?#6*Z1oqTwNQc(nV&Kl&zlQ0yHt^cy#|fZ;`^U3quQV{c zU{IF%G-ymB+L-0l@y(cEM6X~x1p#@fJE z_qYU=$u7f6MjH5^SEmRxIlF}-3w9;Afw+fcoBc-vui8B`Rs)MW+de%TL}T0E&&CAM z%U(-OcX(buZeXjsL8hAo$~`^JbhzPQcBsSjT?+j>Z}T+9+Q1iG_4n`P2@L>ukxO?O z^e+%M{O|%aaNw#*3|ds&sg^${fCfF;;w&Q#EbhpzITQ#A^kT$~4z;>%8~D?MX|(9Y zQQFh^JB4REY`UdG|K?7zB#8l9mv2w#P=E#n?KXU6;6Al$7jybzQEqQ*f42)<#SJX( zk^9`$?TmT3y`{g=;P*3l(TN6|8P7YJN!$-;hhnd8P;nRbpHIoUE~lQgb}+w|t~DDN z9o+r%WV##RP2!dYj^|@<0O`;%>F${gY;{YAX1unatPSiDK2P88`qM2PI%)kO0tq{= zqcIn+5<0Yg;x633;vVYxlz_E?FGpvisL7|DtPN~+qk(%-Uhdyq{pS+cKVvG@jM>S+ zAD8>;PPbV7ZFQr8!NHx~DfE?>*}$uB4W&u?eF6yG7)49wpEMg-+-PudqeH=o1P7R5 znR63>yZ73}W&@YnTAaMzcroZ;c*PBW$hXP#Z*FPewq;5yYXe)|RjSQab6xa1THT?| zGCI(#uNfG)Z5z1m?Bw*h+;RpDTxHsEg$CZn%qT5H8WzfH$yT4+@U9nIq0~~o( zLZN|yxF_{?Bk;CcU6KY)bTPF7(7|x`&Y#EtaHB=hzgBm)Ga&@5ZnS967ju=kZ5#My z{c{AwEe$O0as4Jy;{uzNxZwro3alnj^mt9~UwFUHxyY>Oo4^2YyEu884GedS#19#C zu(;!DV0gg{?_%`y)l*gTVz{av@Od+$BaD z7=Cz5Wqr>0?!nu$(6WYp>So1Ag$A{D=+B-W+`nkxPOSo* ztPR}5@2S3D@szf;NN)hR!THOF)u1i2%>HhXY@ZYQ+uFcY)14-8u$MlEtC0@v=;mhj z_xE$%RB-OS3>p|nho0_Jfq=O0?<-DMI`}ffPxVpjl8>gKo^$As{Z{6Gaic@wpW1g0 zQ#taA(}kO>*lTs$N9E@Zl?L`4ax7Md+Pa%Nwo}rfZElUG+|MhU9oj!^4EHbG*+O2Z zH7ybwz~$X|ZcudS^COp(%ig2}#67l>zJIB)bxQ;LH2bDNym&KAck{e~^rh(n(~S=G zp=HeUf=9{fUYa$N0nnkP>OW9}Mg-W<8sC5JX8ef;-6}Pp4 z;eR!>J;4p^0#;JWy3NVzM*mvf@WU4Sr7w14x-Y0rLtbU(2EO0AchvBj`w3VZI5N_a){eZ$nW)}3S?oR4r5$@ae9eES_ODaE{|H1g~`H(t_Cy05?Db16%j3y~|BETJ(8yy|YUr z?m`Qr2~;5mdRL?fxfj3Bz@2;0Eas`+wfD2*W3z$9y+-e4vu$AXFMt;f45Wd@-DOx) zZcum~D}7)_`GuM8$qfb)K!=JOe(6wjaF!h9|8Q^hSg+5utmh6*xhays>x~BYuQc%c zIT@5Ru+{CnK%ev1Sl#enYci4+d3%}e)VmWKz;|>xO53|XZ9ch!`Cr`9q0+#MmOmtb z1`k_)&*}U6G~BU`=#Y(s z_LX|uwX1W|5+(+QgO7KP;E6-81(zXgNjr6Kvf9f<>uFW>9o$9Rb96gG7Y@ZnKG?xC zx9en!C5-)@DNgfSbVRdsC>#s}W6~CfN_+kiTOC9HYiLexqi@-EoKur9I8@r=&_A`| zP_&zrFCSCQKO5T{{a5qn(zh=CN!l=|r9*={KBlIVe)8a8X`>&VCmW4a@AzU>bFb8v zxPKuG4&M1sZywq!zjvZlb8Pk;S>QvM7_+3m3GQ63)!LQVuQN*#Gt$CeIU>K#u35}75bsUp%=Se=B};7i;K>fzeO)$%e$Cz-z9NP`c%My%x#}WiF7Q@nlLsn zx>)|jo!GyysI8exw-^|0*c*dG&299>q0)xI z(fw1qN}WaISN27Mc1QKOEG!yS%|C&GciwZMd}T)Q(Dq2&pPG-?*uP?62fO4t1_Mv< zSj?L~I9_wQdY-VaW%UFGE|g<7!M_-~(l#5oa?d5&^Rh*ZHVnM>$#DvtHk(3nrPVPQ z*jjtoj5wq1w%kL@dFO!PZ*vQL zT4o&2JJIYJVZ+k<(Ab$5c<}E+r(8M)2cvB^@c4W02@?aG+m`-Dd-km5JQ%q0Kc0VW z?;Mu(|JnrxvqNFgXAzrtmhE#}o71(SA-wW?mZ|%mm(igS>JC`7de;vVhW>~h0}O}e zyFZcOZ|rBb((K<#^@9kD$a#kyDh4*Uv$h&Q82pPa_TH%>wd$|#>ru1ThJ(%Rn}q@l zhoZgCD{lgaq6>!}8QP7a+Bi|^3bT2ys_S&>)I1&>8l0m#PulQzV2=rOG~lk~mZheE7;8!uH>7LFTsEz(r4$ zw%Ue8(f%(3!=XRge$u23hj#26s!4lIi2B?q?PzM)cQhRw=&obES2z>8nAyN(hK^%< zn;k0tu6WL!@&vZmPL;}&z`!vZ=F_ZOvv@v7`;a&kT`XmWCp>Axz>yxsY0AdsT8ZY} z>7nyi-u3Ox=}JgM0)N-vsGO*VHY^%nZL#Z~S5pZ?SK8vxEJM|uiY5a~yVdyFY;UwZ zmPOL+#p*M!NV^2>b9WDEnJ-1Me_>H+f7!5zuv62n@WjBY^|OST+c2mYIA@}!)TfR* z`&JDWZQjbpXv3gpht7Rfjm+)jGh7V=qutISosKQee}FJ)pKcgH!{Y383~g*su3B2D z@>ex!i-DIrUm_SB-Hk2>cyO>dbhvkzhOV?vjXX@4W&87He{yT-Pv*8b6z!gkjuR#Z zK7XW;jy5cMu2u)5yaKQpIM18@%NwF zWwu?Xx!LdY?lzuFn6y*JmY^4{x*F}$QC+x=e$fxJ3OM`qD67`SDIoH_=F?s%3`$A(q9qt3Zm&P#Q}pRoGP)VoV+=wbl_qj(>m%p>ev z`KB>85!a$E4LrJ9J;MH9+Zkh$=$N@J21dK&t}HqR2WL2{?om)f8w(r%gv7vTuZ#Gu z^|>2L7z~`=Jc88aVRZVZvOxsrS#+j=wErv|-?U>6h`Wwf|;d%QhVPw(}C67+BikP)h@&4~JHs znT|KJdS>>o7`S`!v4n|%gN6mt)&`kqUF}ZnU$cQz_dZV8pA5X|iLDNQXPLH9OLn>` zbt@W~puMnI4Z_60(tg`-4vkr*p3hK&LD6p0D!GomTHJ`DU!Ufo?VocGI}{Fve=&41 zm(8xj~rt z`@h;^U}<|MFHF)7%DJ4oSKh8;1DpMgHulPHBh5*dj`GY5*Q8x1*KYQ&82I!92m0Q? zk&cciN!^|=EqEk@ElnBfY+p-;c5_cPSc#b)<^ z%G#V_kCTm>3v+Sk!D_%l7=L>uBTtKpq@w*@l6ejqh)?VbL#HQt22R z92tL+U{K3;Zl?{uIkZ&1H<}n2T`@5FXuG6oq0Z)AudNR)5eKA!C@ZL>pTGrQ>+9NMaLN*#lL zv7EOSvO|}p-%J<`jIB>SoV#e74Gafcww+yl2>tt`*6}vIoMjmJe`$+DLp!b{Y|*KO z?C%|Q%2Lw~*LgmhUFqSXytIDL9_o`veebW9r`K#=*To|ev@H$XBK{R&FfjFh#)E-7 zU3O1kV0N%-7x8$cg+{i~G4$b3Y+9lUzqMiDYCXF09tW)_%xqw3zxiUTW9UoUKG7h; z(8a2LRDV{Kfu;Q?1N()JC(P2oaYfe|4vi?9l?`0e{Ssj?a1MPa-6_1paOkQT+X?IC zt?pP*dt63+mQZaNU7zN|vu0q+wip-&6@SB_FXr#!!Qi>awBUVRT+(R6-yK|+8tt9_ z>TF*%v@H!R{uTrGncM9*1J5btK^a4z@}xbX{XoJ-=LuH7&xPy+BZAzW&d`0 z^pNrnNULMgUhmzGs^qh$>W+yha@G|M?QHpy=$NIyrTybxH63#}R)M>RG8`w&vJL-Q zYo9-~%`kA2O*^Rc#cte&L#6H8ab;CF)IQ=Mug{R$6xyv0ncL_~+w4#{7zTb{=aTlU zsxM*I3@mMDx6=s>Ob-{cfu()E(J;fIFtA^XL^S7pN*yyB*nRO5!r))*{(V2*=GLBu zznfQ8pIfU<-RjH^{c+_gVd8JJ!}8Cf5;onaW|emIVX&=^!NFo+X{YJsOqnZ&8V*H! zn@b>1+TZHg>6kba?X>ag`@}Dgd1%+H-;F}@2XPnexF%zH(th`54`G%D?lHNhj={m= z&>L-2>e!>{W9jK@2OX1k?%RoUOxkHLO*0%C-S`1vXnSV6z`NL`9e2f{W&=xmi~T#z zvR(B41)~iEe|OG6=!$`1P-(k0x79JU8)gf2mG+L9@&toQ+w4#ncyIQ1yi*x$bPNvO z>#N=YQEg28-StFA5(C4bXkVSsnf;6I_!gykXWf&~sY2&@3(}S1wlxDUOSDcChe}%v z{Itko_Ad;)puau`LKYvDuBJJ*%Fxy4zwmPaN7J-DJZ0&KyV) z_2%+mP-(;8Q$~BRy_4Thu47{0ZLN+GR*ZJ=GUu#9n6xK1`%IWPRN5Kpg%Kw0hxt?M z82V^qd$Q-^tu3_LFfiI;;1i9`{?)*iZ831p;H!icel?Ju*rX$A*E=_fFc{Q5=@Fi} z-M#2w!{650aA@JuHF)ChcF~D+%xqw^#lQiXs?pKYwb`MtsJSf$hC`dzu+=fgCuLfzie4KP;h%fnSEyBN$X1y6;IQ9a|ODS`&xn9^HWAoo2Cr%?9pJWinyjXFHIz z4<3F%82S&Z+OxgUA5>x}eI2?+D>LSv*6*AfVO3@ou-ZQ9l*KUcOnMSyt?iODirZnW z*K21}%%c7tE4V8LMjIRdx*JWb_g!0GYcXNwHu{AJE#=MWwwW-r#lUm2^`OdHc?v52 z@7~52GaMTJzAs5z94c)X6kTlT>H_qAVICc8?l9Ld@Ybd;2or~*Z8os9V`}H4&ok!n z#K34<8hHDGK*H7pe&C^-plvd+WqZ`u!A2Vfj=emSFflOt)(kvs@e1|q$W>m7`5{Kz zCFUYw-3qC5pWhcG_}9|FaB%6Rt?B)+alCQu{0T$1;J&_#5yUBAYYICR37Ifg@} zZ8q@Qp2>Ag9E$$XSRbA^RN8sJ%^^(Muy=y?p(%fCPs*^1FgUdG_eng1{njld7}V0CW&^{ZSccalwLcm-JP++qyXO(k8@PIt z=F=gECJvph{`*RM&8SY4y?}F!xt--cI-!lBEA71Rv+I5HM;YyHAKDPQaOlJ3 zId~fi?V-}GW@_SZa~pk216#Jmz{RtSp%sx~^!=5(uX@iWk~aF+U*FPTP|V!c7KCYN zi$lMhK4TcTVZ(=HJ82^o821lP47{zNH~ZIYV6@XmW;NO{@Ns1x%-n{7ZI9UK*oH~P zX?zL?wm15tUJm-twip=gN<=&{@VaB}g#9lDmNxoTnwMk$!lIQAMH&W9RIL#kc>ejy zH1$vb+Z+9+j|Om89E!fQtr@uLizEpQoWI9U;vG*;g;O6j+GYbU&vutE_!n&q{>8p* z_cRQA`g?71*mxqQK#_X%>7p-vSgY~U96w2zKH?-jY(9wBv`=*^UU?Jmt66|y~8UyHc5lSs_vqbL!Uiw4r=XujNE`|WOZ$H@ zFf3{|FdSOMwE}n176TWZ*wJvPw8xAsLrpU-=AkPNwM$p`uLjm0O<;fbZGQf@_KH;5 zbxa%@dNMhg+oxY%B}^QO{@)C|rG8Vw619D$tqDv=Xk%z&a41%_=XkPgZ|Zu0u#h$C z52G@uWg7;@uAP3R^|xP6m^gIT_Bz}hJuHO%3x|G4x0@#pmG*%NZsa|G3a{4X5tMoL zYxXZ3D(ycRICc9#?wZ@rhb|#3{FIHp%sC6svMmOlbYYV#+LyxSuz}HrMbTb0w&ee0 z;DNUyDPUnzn%d~AhORhN+VHnE1AkWU@a>q{fE{XSU|1CX{+of}Z?uD|1yHq({yb?X zIW?PFrf8}S?q0`eUmkPYFtBC&-4u0Ri5j|?*}xG46C3_MXWy7stMi6@=d9-?>rz_B z&@VA==5Gc@9|lGndl5H{9G{(u-VuIU{Vs5t9V%@Y7&9Aq<)W*a7?`H+B&_QC!Zh+t z8ItzAVD(J5l{UH<42&%rFqAfC8p&O0ho?G9?vXQimIi+3d4OJz9?FyUov2X4THaD; zcKtH&+I#A_4V(R%+u%J^CfQ-$-Tk*TF)+GV-pOxyVqmoUjoHHOnu!Loe_>H{v3l*M z^2ET>7Kfsbb`R&AG~a(04-UnoJ@0lVs#AXUZ*6ojbj|J44?B{LZ3qv27!;fDwm*S^ zyY(Ea#XId+9^0S5z-WISUqHv;V6?F;qb5?+XZ7B_TFFDJdE(H86h?h!1duoseUFW< z3EDSG2Wt;&wxwgs0(jqMC(|+Ucg0iF36r+jz)c+E2t#{K_9Z-XyXx?5Mmsd;8^Y|8 z@1%UbKY0NQqpY^Yz|#KFQJp9L%irQqX~V!i(;W58J5La{?Za4lG$>p{8_VP}g1cyM z@@}Z1Ee0<6b}`L**NO)Nk9!cnn|Wv|VRkn@YJW3uuKOc3wBb;+#lX!rB;_vJX@a0N9;bOm201zU{G=Bxm(o=lP28M&B z4U10y{DAEZ180l5&y#jzeFb4+VD#Z%a~lqow%Nen_qR{b4)B>rjhbZ9F)=XO2P#I8 zwm8^mkLh2Q4Q$yi_WrDfRa{b)mM$1hPQ!Nb#G%#KI{R*VVZK zYGU9TKfh?0*}&J!jijq~H#8U+v+o#2&T1dYt5fu-(H{B5k!DwF!$bSW z2OAwj7rWc705vWe#51?MteDFNg@OC^f5D4QrMd3&E=n86R^hHVbo`4s3EJhHH)~>G zIJ8!Y5>zHlu!M|9T_f^-db-EEI?FE5T2y0j5r-rVyU5ZYQoka#d5LLBaJR( z@~0$y>rhB#bvLaV`U`5m)yll}*Wh1E1G^;d$Nq(ZLmHpwZn6i-bj;kI_p{&b5o?19 zLx1nUIXp2i+Q<5a80~>WCKHxieQtv749)hhf0ctvZacyThJ(??+Bbi~lXg&{s)m6> z?9OP?-W=;?w0GQ7_a>;p!6lPd(&6AfeNOYlz}XtkA{QcYRHD)(3fppy z2M70Q701hxaRrSmUz_5G)gT!7bMJ$Of!!vn?}F4Cue70ef#3e047_&xK*AGx9ChS~|-n`ziod`oar&BAM`^ulUDI_&H*)%W=yfplxR)3o>VbU($ z=bI~rwiwv5{owX1!q8uuM?D`fA*+rp{I1SiQiDUYBrB|A=x2HRgC`CxpE{V}Uu@I4 zL{#4PyLSH7XH6WscU}W-S5IN1V-MU9(Yt$fXnx82nzXea7YO@XyH{C1&9a?4Or86+ z%Z>dj29AE~X&4yoH^W+!x!tGjLAGemfIM`2O-Am<=D1DRz>#w`OdLAp#RbAX6^+#D zrcuuYx!M0_V6(r`#?q@hgfX(x|vVE;XVGiiQ8}}y4DQ5zUgG{{><=>F!aU1 za4-y9B6T}@zwDHDB7JGXKI|+`*RQ(s?iWl?2YMaS(1yRwZ5Y^pbs8Nrx4j-*Ak3v! zdn)^~CwI{nhoXBkb{VC})szaZKc!)t#{9b!;gMR8w}%LWMf*QZLvU#0*um^y7`XJA zdm0QXZTR|fsxw+KrW@=3!M9y-Wfv#~)3J&>qS?PN@Yj$Lnz>yt z;wG(iFQsEk+Gpl2+Tu`Y!@%9&PcaO9KRmyVeZM@8;9u?MM&94rvtK;>&7so1KcqQf zFsQVXD(hmSy^`pd7}#1{96I$ucf+A(1EW3qWl9}`!NuQ8!!pvjR9ARtkFlS{v(`@4 zT0I|ZVc^`Grm}x64P3xJpN_%7@UOJt;J`&kcn+m&=@|N}GWVv<7nbtY?a4>?SCvxd z1I*$%G*{1|s+rqaFBH(w#&$Iv#SX67X^XmV{xnH@miGv5ub6a^um*3JX)v&sW(rAr ztvZjP%jaI2WgGoxzGpOPn;n{U^JlI7kIIBqj9sg_4ozY>w0!m!grSXf)Z0>>jjgGa zy$=s2@l(nfNeH)dVN)#QPz@g}hL$7AoNJSs3-zU{z;J8;#6gEG-j*ZD@t49v+ zWwc>XYYvsRI5ctNab&xwIbHB7qGM(Q`_xwNGyU>+H}#CBv|-@F3%wGw#lYq7t>vz@ zc5u!Ku1A80vAxkZw`Zp-sbg@k7`V!&-Gs$CkD|-FCKI~Y4N z{Qs_7&+*(wKWUvly!w-8XqdFk2F@3?g$;`KsLSUF2FAppULL~@hYo69Ie~#&PrFK( zw0C=tA}mX#0=$(T*R+BKrtog}yGWR{&!$~V82pP_Ynu)HWa9ujFnc2J%1q^7v`q${ z=NicE*LhnKy5@GfVIv7EeX0WuZf?h2vw;_GJwSs7ozh@n7!)%b7;Wrt28Kn^7KggE zZlqx$>N!|+u|X9N^2}}Rxvopw-?k-T`PMoc25yzQu_g{R8@R=%@l+s-6QPT3E8E0q z4+=Wv3jd0M7cCiNw4E!AWdp;(XxEK6Nf^4~Q1r{yd!l{Woi;|=z24m)=;4GemZfuy(Z0T-0KKa8 zL=yu`TMR7iKN;9)D+j}%l|xT(dvmd7v^e%4ul(E0RHRsX%F;u9-mKaf42m6nK80Xl zEUn!N9@^qivw>fns9`wt5q&2N4xTqAiH@NSe`j8Bgm*NHosNlt>s4~32`jh#v0dj| zJYi_B98-{Yqt$VmdBlT?y;kRD|MIuB_LlVp*ub6D&lfRpTz+4|e7^4Btv}L&j!jLj zW2MzQ%VOaEE20t@ICM->9fL*1z+L-S(Y}<*r(3!odG@UrCm2 z7#K@mSKTFNrCs9u2QB>zH?q0biDot$M>$i^=ap^gMKO2p@x-CMo_PIc;JT^Rd5UUc zV7s20Vc-`d3lWC4?c8LPtc?p@>06aoq)0uQ{_9Jv*&=za@au;oD22Qlio3IRJyCyJj->Ct#(rqFYobN<1s2Di9v-%mP z_V8XXJJ?zq29-AYZM*j|4E%0SHLC`O!NuRJrW_^gM~@BMM*l#t`e&NjY3>x)u*FM9 zxK0Wl^Kz8|M-BxJ!Gj%c#1BfoF!6G7S8s z)g!{BT{3wPp^Hs8S)RLaXqZoJb)Rz%9lLerg7&923=V%|6+Aq7<+`+@nRyQXyI*bi zSK2Ue>-aGB^DBs+7O%%cJ95Bw5(7*7Nww#M!M|n$uSzzHu+leoXkuXW#i6_WLJ7O@ zZW7xY{Ui1Ia2IWl?CPDsU+rS8g1L>p*}&4y-l#RzNV}J3HgG-PFv8F;`Z$}8p)YMX zIP!*i&PA<(gC7qTee2VQ``tgO`^P)Q@;-Q~zkiiM#lQ#Oq|veY_qQ5tG4Mgx*My;c zr=^e4HX9fYw$>iI?jm6@sI=i=X=m{nO6InuL!~`yVgR?%NB8~b?>up6hPLeq+cV}L z-s=IixQq5C_0Br>InIyJ7KaW$*NlGd&Pn}C9_CrLS3PY&=wfdo)n{L7b|KII*dFOT zg|K6vv(Ze~Exa9B^XnMe7Zc?sY5Og>Ntm=9A8prQ;QkKkSzfiOdEaY~PWustt~eBZ zacIG3MGOO@Tk}99uWxK1VbZ3~nFt2{RP+Mf>!R*9`_(o(^zQw9>U^z)4n=!y%o@Yr z8+NZV+Tu_#uw^^4BTRfx@+-QyG6!*bpK0b3JmT?Kc9c#-7Or({)K^i z1s&wUqGkh2`{RidgdLink(VPhJ$;xRPVleUz-Yt3Xv4o4+AA|=COGuJ+EcEKBh2hj z7#QuQ4RiBc2PEb;`ep;S$$3MAfniW-zs|grFtopR-^F{kJKlAFz#$ETe?Rx>N!Z9| z7kOwuOcKrh7KcuFQH(P8?LuDTY;>%5b@e-;a%l6+zBKV?Il4A}g=RMJ>6E_QMH?1v zm7=7ptA9_|Pmd}P=KC>@_j08lo!Pv{XusQ_aT|SUCwsk_Fmv0Z*=TlX=pOZsmYTF- z;FrqM7`o!n^DARw#K4wq^lwH?rdc14Y01{CBKKXZ*uOBawBg@n{<(C_+zvRuoX(Dk z<4Jpy%L&5Jruc9k+MRzU(Xm@acM=AF+sxj@llI2DQG~(3o4=jmNjqhUIyzRgQY=Mx zETm(n3*S}ug5ISOor0-(>rLE68wQp(3~t$mf2Dn9`cT4R<8ta4{QIU%VI6~mM@1|r zX~UtG?d!W|aU1=vRqIl=9-+LL=RFB4)GZm+tG1)4v*6H@9lSzXAu`3w^bhwHaoOM;{oj7WDx@>r^^td-FU-7 z!sZV;qltmhPCp|Fp^GJ2TZ|U&^rh7|tLfO%I)iEb?$w0$mfE(wzZv*=^ku?eVDw9! zY(op;-MRaE&I`ic^;UNys6`)JzA(iQ_RxqFi^7}(r~gAc!NWB7Ygnt25OVksVOreXh#XaCM=mqo`G zJ^y!OwmIn-9J;c#3mbHoeJUMuJG_f3R8)5o{xa}tb$1T7FFJ@P25xPaLN97Rl(6_r zr+BFxH`A_SGb!=0ZM-{gPHWN@hia{wvwzW!^xw=A1EXDg(y2eT#i7ju)3AYW?3_%~ zmxS`rhJU4<_(=vG69W(0bCIx3BZ^Yy>i$OC(!ehkKBMwUoOSHbfZH1UZ8orF+tR?W zsI+U3?9T?aY>Pwl-EU3sFJ?1;I+@$zP_(hFUu)3Iy7hQBj(*V6MR#KZhx?Q!tn|}x zUf5_)LRSntzSu#+{#l=dc5b#c{0)aro?)wFeY@E3st<2V@1wf1z0tps+@0!tEKBe= z+IQ92v)F{rm3VYeJ*TM*Y;KzkEbTVK-D1+;s1%bv$6CUywao@bx7WBCJhMa5KK{80 zExPGX(tcNSAO&q1#6w#QJa=~os@v0thj!92JG4A&zVo(~*R)lIkGiIQx|%SvfwvxC zT-90|U1`I>U#CYAR=V8+Zs+OfM!o9p;i2tXa2XE{7KftWY|}BV)2tZ64rNHJW8&|P zb$e;z(7Sh>=**H}UgncmW5mGMMor_cw8f#l7d<3wkmJk*?X$7!GjO#&qo>og)aea} zO4~h0Yr~`;?OI5OOUj`|5I4U(8exzA4Wr01#nl|W&`h^tG**q z4h?yJz-YsuSo#e*J$%@SyJ*9pSkJ6ZMq3=Zbi@Zu+Lw2!_cneR_->`1go(dD=6I^^ zo_-#a|Cv4ywPSyI2+U-k~6th3b}iE3s8*N#6zn&&|t+V`SL>lhro_eyZg z@S%CR{bkxw!r;)%^}8DmMf*qGQlkxrqKlO(dxkggpFKuf90~)YedBQmi9^lpitHZa;3H*VvhZ#FR6*s6ec z|4tbgUF=2N1n!y*?E5{R(T2aZEv+d{+(sS@T>jfm!=W(nut9~5wm4J_T)s&=!lXU6 z>RiI&TmH~s;P`JZcoHn+cYN~Gq=Ux;!tVlb601`sWmUW zi|5dKtKm>-r|qJvdq(ool`7ZRzi49v@+KpjhXZ+*ZCEsO%5dJ7&WUtP+K*0*r#*Kn zau@B$cN3{i{vdX!*}$RmP7r2x=(@d8+O#uXniv@U>jx84)VZ3x^L5@5CI*&vfPGDZ zgXgL5QFMe_`N!fzve0HVj-oEv~ zn+=@%T!jSfl{P0RQI9bCv9rJ7&^3!&Q&fvhyd3G<{pL{g;ZSoM{{858ohJsaHfaL; zTO4Z5z<+B`zp~)BcDJF^|7c+J#lWjuIVUi%wYE4E{#~BTn^&aeBf`+GI<2W;;KmC_ z5%wnopU7UpXv3jT+8y8x?b4M>I-KEM37JYm)LFF{+WkD#bJc2aF#6I)H$=T#j={gu z-ZNe2zS+R&URXDTCkB>w?gHLMd-bMCv?w%+cd5_X1npZxb=rO7FfaL&e~fme+6xHl zm8&bE4TD-5SlWp@RiJ{Kms9UlTX|yOhLr{r+AwhLh%5AP?k8Tz?b9@S;s%0&;cple z+kJQiPui^u`msSX(*?qEr_XN~_+hWI2@Kry+cUz<28O}Q=2o9On%X_XUUFL;YT1T^ z#i8)8wC^}wAhUttU@@??VQ?|<)P*ioq2UZ|^Rotop^L%6(r(?n4^^x%g$Dy;()PK3 znlLf2WqW>5N?N`>oCp76FerAx_KY_9&U!5{eIoX+H3O%19Yn`NqIhNl!=c5dU*maI zK2DfJrYJUWxnv^<{>3)lvf=&7z~=UnWD96)=qX;Cn3;sZz&T3S*Rjrn&rxan3q17g z_mnV_=T`C}xj=`e) z^?SV4Yp!$G++MI+-6N}3=<7C~I27&M`5f7xa47ng1`bKOjk>$qlar$_&t|Cl_fnJg zM9;LkxebTHpk@QZ;Fj&TEw>RS2Clq6uhsU@GZnd;M+-Cz?3(!%p^Nnonn75ZU5nYk z^{4FTz8Dw|-Pto2<#0W$!J%v4X4EmXN0(a2yRx}C`Mln$VJTmni;kRDRznx-GIot- zZdW^-M#qMX*vDP8Blb=ubTM&gf$V{VnGG!M+sbabZ4yEkvu0rDTGg~J2ip*qBYPq} zX;5nJq74U^yHG)$Z|uhFmn5l<-R$bXllH|4$#o0{ZQpV&?{eimgo#68U`v0)z?N&7bc-g;vVG;&Y4xt&X%dJ2R~rV!U|=l$nZvvn6UwM_x$kQ;)?}wrHz)JV?eiUT z>*b$08V>zYI+(lWHVn*D{{9g2@A3sWQqKL=c+wUFOFQj?t+e1$6M}!G4Fk9DXGgm( z^(VB=21Z*P>g-yX?1y=2HYcMA69dEF^X(T?!}1Zlr*^Xv7R5N^r(cZX5y?17E=v0qnIu>xexZzOr(G~-r&6AyAP_)esg}*Nk zs80K~^yMzvaOfg;Co;FuPahn>2DR3tY_!F|X^XE<&@R?4fE@~pu1!3W#!h$Q zHVoX^F@=t`Us#Fm-g7qE^E|!~28+%PJi{{^82(1vZJl~gN6p;s{(Tc+a4-ytE>?8# zc$!sr7|+};nru2@y~?Fw|C-xyXlVKv-h(BB4TpM-UT3t$z{^&Ia~JJC_lI)3>i8>! z!Jy*MQO)|(^Hk#uhoW73UjR=WxXt4E%C;XbcQGdf#03FD&}m=9}i; ze-=r*a0-7aa54pbIMIqHZ85O4PqiOqI1~mRT|X!N7%|^y!=lo@)G&%3{W!q0Y#;e# zOBlLhVBZS!2onRh8nK_S2Mujve69{Bb32K?nk)?**km_h@UOI64S!3RWA^b{OqcOm z`-VLe7#I$IR4)D5AZi_>uU8tBn zx653*V%5OXhJhbAInsgY9y}NryAauhU{DP0dVZ&Q6?YvaEZs?a9ZTPHfnnfsIa27D z>($mYcG(l2_}gsY)n%s>W;QVT=$5&?oQLkVDcgBsV04r3jWgOK=g%OldVDsL_J(~Y zjdn$U_1v4Xx4C_B&o08uZ8+4mP*|Kf(5W{PqysY8SaW9C@7OTu%w9O8c_Vl=28oJ`p@lGSSYi|E|xJjK${E1iY zjXz~q=W&Qb(T0JOHn_tR1D|esSQ7)A{hj!FMjaCap9r2z82SMrPk4=9dqnSY2+{JE zT~C;_+ja>hOxjCdPE63YX5b{$g~Y(pZq{T2J6IfAc;q&tU9zsPhIa6^X@q&Kw$ZUh zt!#8LaQ)3!2s=Dz8i|47V6#KTz-5l@ay@+8i!lH2uRJ(d+JQH0bxa((^1MHHkHpNP zaEHP=CT(#j+J1%Xb!_FPo!VhHXU*Ie1K-SES-a$Qk1(`H_AISq;nyz`X4!^;(Kol# zB|F9jmG;LIB@?t?+ifAt(KX62@D`skG$+j>?xGC?Tec4*4`lzs!02Md_l)M{c{iAT zEV;lF1Go0=L8IcU(XN$Kc!OFlq^nuhQ7bzq9h;XaA5R<#|LSQ58wQR&JDIS^tGVfD z+Sb1rIO+K~!d#Zl=FM+&(^U-oVrFq2leWiECvL;Qm}MIdz1DOYx2+i%{f=8xvc1Kj zXn(76jR*gl4Scy@3(7TD-SzNg8pR*+*RZ`2hv-hCC+uHXG$=sbYpf=1^rby@{(Hh; zaKCOVd0sv(41cfAdYTOk2V1u5rXBv9L;uu{?Wkc>lGmEj5;e3llI}vZwQmN7V&nMbwOM8 zwn>6E92$}&osQXF2qO$#tm#x=y7GJ$x8cxwwyy{~du$~S{zZGvDLWlov}_VJOF5oi zM!B(plXO()L8ze(2S=1C%gfj$A6MHt#`J}=;z{XK8^Qo?dKSV;E=sdF<&r_ixd z9vSJ|vgtIr@*tx3H zgrRLVu-(fc+%>oJ#i!84z_94EjB(ngG>z$Geoq|}1G~j9(DuK!;Vuj+ZTn}ZHMiSS zv^)*VQ_58-bPVkl`POLC76YRnSJ_j8fzibVo;ynz+FfqWp&<7czqQZ4o=5wW<{-0y zKNXxy{TkI~hr+Y}PF>odK8ya?P>;~?loq6R5HZaWj1h|_K}34U1~yeS9IafKN;AuT?iGp zeU&F|Sk$H29G<0tSKfZ0!NAgnf#Y0W@udCK$yUe2z-X^~*NpuOhYog_!-GMk9edM< zFtppO8Nd#OMd5F3ca{M(u)F&IPwh&-=!6D7nOkqAwyonNP1@cMf+$6!6gnmjMY}`c zt_ci0Ie7$k(H4iIi%raVfS1No{XcJNPiQ>T)iCg{c8(H72?jLs-~To8BV#@ zZlymN7zVErKbge9(-*`N7Q0~#8yF6i_Kw-72s5{LcuuA66%Mey%?AFG%8q<;=HU(4 zbd@kMaF>!bwc}a{VK6W@wRtv8+N}hoqb=W!8iP&icD;!sNiXUnyQ+w0Z2@RkPdG3=p+Ic`_?gs7R@aOm>`=XpP_ z2U7N*7kM2!r6!L_Z+Jh~yw-f)JN(hWA3AL%EL=SghnWo=yvvV<7hcERmTpcumg?f$ zXfg1(cz>#=&LPF5y|zR#qb&v=Q_PPIDh7V4Z=jm7uQbbcwMr%E;DE2xaYuF?LmM-< zV~e-cV&jrg-?U`3#i2oaGU+fdx|VG*aE}gi34?#JX4_*lbW1%=q+`;yeYr}VZTNo% zE;jWjVU7JO@Dg7v%LcV<54`n7OVwZlVX14^;8hCiL!Uhs@z9RmzJfP+KTV6}!J*Rrn?sxTX-)UeIO%N=FaH@+{kMX#S1&>1D=OJoha%slc2m zhC^TE?La=~m++c%6=C&9Z4i*EO+l_~x zWe1DDE!!|S42r?P*4kZ{dK(U{Gp?rLQ2Vtb2rJvcPYYObg)s3qy3!t0sTE;+n>HeH z%}6WrPp9zOK|E>CNav-cZq|vgfGr()b6&McVBi~3mo+i4r}~+JJ&2fOv|(^DaH)PC zgyl>>n1^f#l6?hrKR@`D95!r5dc@i9^@-YhXC^ zf`>-S_vE2;wQML+=G?T)wiI{8p=e{RQg71MUs^y|qa$&=4e{4C%l4>|r3{CnEe^G8 zKP$D0uogwylXH_K02V5(fWbB_jiQV&KIqql|Xi+bh_j z-=pj){N6^*vTbSL!u?lJ|9Ne>4gX?GnrLKhi-FDUZFx?RZyq}xL%-6z4LlgwzHmlz z@%yR8yYwaOPX=y!(4E`pOS`_)E`q_I@2rx*z>~AoCHS}2kQelIL2dnF^JLtHf6;DJ zTYYAs1_zrRYHq{8!(Vjap$&s#pOUEOvs4#*wYLSqzu3x=v9wfuH)5^b|EfP>O>UJm z+WljL6SU#bHf;k5t7jX_%iA{t4Ggf+q#fD0w2oOi6z$ZX)R}v$LI@7UTB^UNF>4M* z8-sywkJ`f%he|uWOBGr&yc~7h5Xk#e8(p)3(T0D&7u2n`zc{;c*IL`sq0*k%YdBr; z&?&A`G97#6)|}dAX~+H*1CQMvLzuMD58d;DCkFnu_oG(y(G|jA;6^L1)3w``bj-3{ ztZi9xeCnXyJBZ?W>{?0K{#2{993vJQZ8%igFz{5zy1X`dGw9gm8$&6sXarB%!DaJs zdqMGMgu%a9R(0+fx-ck)wxxm5#-hH@VFQ;f9Y&ZK7=39kZrjIb!@-LJziG~kg9y7@ zYaB&pQ1?Eo?L0e6LmQL!n(#KiwQCGH|8G~dn^zjiU2}WLurcgkIJEq|B06^F=P~MW zdJeDT!&8L8q1eLX>b=Z4IytP!KsD-a)LNDD<86(tp1{E9VlXI{Wylc2z2(98^0Rvu0p8SlX9f<8bkI98@x26A}X-%XL~k?=^xA36f!l1TN#^#-def@Te0f)s zcHf2RbDJaTaIeC_ls>3G&)gP==BrwZUJlGi=IVP3g8YYAP;w%NcpN*_yLU}?K{I8PYb^P>~d;Q}E9|6-e3b)ggm`%uZ4>AVkb zljvBBPGel94Tr+umG6Df-a9QI%+kPUmu(wDi3+Lby4GCb!J^XM(#nzMKk(s68~#PR zwZ}D{w9nnoX*d+^w7G(LmIf~Nx&xgbWKZHy%l3qit0<{!OA?2o@4T@ful)7}zZux} z%rf$CvX=)3uk;>kwT&(eYTJ6R(Vp*WqhpoJRpkY@@FPsxsbXUY`_kzt{a1TJ#chO% zf#;liPT2nW>(_3#T@FH_DPz#Ee3{zAFX_$MP0Z=n9bu2 z^rrV#?xJ14t9mz8`B&OwlJ+s$<<_|v?d?aGv4P>>mHiuY7wrnM-!!y)9h|1U@Arc+ zv?tp583vYi)j1V(EV%Dm!@%e-dc2o+;B;Qfyk;m52JV;4ll{9m|3kyTJu47lFmS0V z-FX$Jz2Pp}Vqp74C%B(_$W+3twX^tz)7}T_o@X^!^nrUCbq;+R9qnEdn*7#=Md4q{ zf18Is+SuO=T)e|J!UjBF$rFc4dqc-Xlq9=@j0ar=UVE>Cog`9&_NV5qv|&(JyA3>PPuy~eFc?_ca4@>5I;wN>)sj`tN$-CKkV9Aq z@9yVrM!QPn6neb03)Q#v=b??&n)rj-U3;p9Txm?+9n~3lYSM;*f3`XAYHpXC9j3WF zRp+;=U8wK%Tf1xM48pRe^`oEqL_!yXzomUW_b9^976YRz25uANpZXEFA#rGZy9a?~+&#i38?o}_9k4<=~CqNO|B<<0PM(BWTmJIkiUI~9mWH)aj&stjyT;6vFch`G{vVURG9gU0A zzy^_qfz9n{Sr(AA#lWd5Eg-DloP2ChIJDoy`&y7s>u52sN2W3{mIg-Knt{<40}njE zi7*&6YM{C|Pc2VRbzbW)fA6{BLmp0(cQqY)pD^Q;;8THUpTIku_A z{xuu;Pi^$4B@W}Q%C?v=YwaOZbHS< ztcvHsz`p%H5+?1_9rqH}K5`1@p}9 zEmvJ*qz!|6<}1lvv~zD6LkoM)5K?V7buJ06oopIEB^VbX>{VQ=i|OlPBgznr?i z#Y+3+*oCxj*LixmiA(^udihgmuf*pNB5?vR_ZKX5f>yo1z~lYQb%B=-w^aqS40SUor5-gQE-skL)vm zFtdTBU4D5mZ64f}@{BsEp$mullv96Jatvet!od4y*wdvlCtT59@4VhHusGDS=qC;S z#o%vi?KMmH5e5VAXcI{2Vx3O*VTZz^(jL8ivC%%9BPXqERGtpr2(fBlbGt}!b^b!- zr38bDL(iS`=B~8Gq3D|1xjgTZ_pRQ9HUxA17mGJUDGVv=s&o4TT5E{ zDPht^9}aC-Z9dXc`nkF4>IP_HLP=bLmbKC4tI9S>( zpV{b`T^)56>@NemEwH7QkJPgcYA`Ui#b++1j)>>=a;!&1bx&@a4g6#C1Hxe7MP9Dd zv-WJBW&6khUxI+tZwGjt}CQ{oS+E62sr-wiuYagXm(>o#bJ2)bRI{8!c#Xr_?%z_I{s+JanbK z*K2~S7&s=2dOtu7eK-_D7jt!4VK_AVHCyTsV@qW;XY%u%XBZf5F|fJayGD#AZL>qo z2F}s$E@6kKWOS8wwnBNSwQU!k*}!mc=n|gAgW?L6+H?ejCS28Wv4 z%YIh*tqqIrd|#REjlMYa)SKDl+2%b@46GeLV6-314Wv?2xAM?O8*4v$i6#c_pJa?- z;D6p#Crljb)a*QA;!uYi5rm;{Zo|Mm(~c&zF*x{3^NB|LZw6i#r9PLdTlF^sTejB* z?B}*M1EURpi-GGpOr;;&{?EW2-~FGzz20t6{|z>d_QB zw$Zmb?YaGi7m`c;{c$adckk{F!eG#Vbo+TzJ*OB3e)9ST6`!o$-BYV~-d4xNp=i4; zzCsf!FXA=~JS+J-9vmudI9S?Y`Wh;9`UuamZE0Y%lh{7w*=@+6W72j_eOHTlF*Sih zzxOXg4aNkpy~Uwo;08JRQ)hKPu(aXtOC?Wg;!tVBzgFW;pyuKhNEq7UP_(fp{#gwJ zkId4A9olA6C}GmpbF|g&m7YbI*`aW-IP_r_7d9{)EDk-sGM=zc>O4|R+T!oyM{ZNv zRGTyyG)dxEp0wfLf-|O5+@ohabGvt*9n|(m1sy~Ga^k6knGG!MDw7%zmaU3EulMe( zgf3RlWjmSM@Hdt_<2KFQ_G?&7`{cZt&^5PVP-$l?=}*PiWuaST%CJM19J)-{AWv^9 zFeQM@25x*OiH@Pa^6hu6&-6y@UpREeQuTXP%i?rzd%)syKMEV^Pzdp0oInAxE&?*_4dVNtZvH5+(P zoisYO*(;ek+b9_u_+#J3WdAKOccp!z$SlIdz|w|)r+ELnMYpH?u?_!X8yX+xeQOi1 zNxR?}SAu`Bk{;^)bG0E+(+CdEk@B43P_uz;AAdIt3ur{5>1k zKJggBK2&j|S<4#nUbKiKF>uV89`rJ_4#B|EE`MqtVdnO=@NmN5?`wBkSam22ocY!v zO`jG`n6xb&3XA@KoZV$W7VG-9aS=qt?!fNuR^}SJJD1&En9B|fLPU{JF|biAL~O#q z?r!WByX(ErYkAEcMp%3Q-w)^KW3RoI!tZ%z?pqvsqQ3(>GyraHQ^f6&PIcI=wkV+FXW+% zwaQURoAUXT7CknNj-|S?mV6Ix*62diR~o z?MLJCv4PR9)~vXW!NF*^4Ri}nsO_9}0&UE@m506#h+7 z1Do5APPEj-p_5u{By7iSFCGlsy6zqx`ep;qn!1GB=!=0@U#-mDlGP9V(SGN&h%j;J zo7T?_0}rn|le-DEKNfZ;EPBXg-s$@*wM;%fnwvv5!ov&RnzijV4kVXxi!V4JMnuZPT#2fO)gQ~v_}p|I$Ki!OvNHgbHR;ZSqCe#2rqCJt@#V1l}% zZ>d(HR0v^S?(W=08xD=HjjpvlL>ovjFlKJUqVK2I;#u3`P-%ztyhWH8`1ry#T77lj zMM4IiQsF#dW%idd9Qr9;F~Y>a;?N1pRuTpSW776Zie7`fme|@Y_O}Qe@$o4UD!!4L^&H2-x<9sM=kb{Xx8o&yOJhxWX(n7i~((d%QqK-v)W#x&#lXUjb z(8a`|(*D$Ay3sDQ=7*L#bRA(cN~_-^eJ=4}V05uuU;H%;-MMp;=$QZcX=H7Sf#Fau z`=dN*w@BhmpC-p>Xk*dsa#89joBo+J6cN9_1R8#i>?uNcZD9O zjeh$6+cclNnc2UvXrru&b*$=upWH64-l>B@1HhFl+Z@FFX;zz>Ju9`N4{R;z|{f+j4@pDKFjJD%}7d&+R)1KzF z?6sZ^oGq)mlR|YdF>qjHV?q}b153M$e{7ug;w$}WbiSNAhAt)sR_9_wNIQ9zXiW@^ zHVmA2%AD}B8T~cesF8#P*3t-V7#NdwrK2qgL%aRgJR}Y^w+E!X5XZnb3+-qB!oc<^ z0!iAHPV}N}+1%N{6HckSGt`#7`J|y8U2`@M?JbU($)(q#h-3RUCTQR^X?xM}8ygLW z!oaOoS7(R9qTf!f<-wtwYBwerc){8age~mkOT{|WB&&hHS9LZVI`;h}3do;W$6#RW z?KXFH&*FC8o@O_Uwm1}BZ06k)>|eA;w@9L6Uwn5Gw&Y+HDmJJauc^BK??-zNUR0%V z+@79l24T`}vLt}8zdIk~1?Tc7wBgW@g6}nH!@rp(UFS6&(3~!uRlf)PZYNrQo-nlG zP^WZ1c`z`#*yUTIiYomov!XF2)90ND28mp zNA99sKId`5VBqf!s&N~A@pt5*d^9g_VS<0L6)xU9G4R9r#|g8x(Z%NN?Zh*;(f3vE zeHL?;2Lq!G2hSXQQNz#;`kqV2q`j|yA{{%G;~*OtT`};F%1y}C?k`%lcPiT(4wkmr zpt+6ZMFcLupn9Jl@JaZfU<#szYOxoLi?I8^9 zJa27uIQ0I0^&Yv)Ri3nA;5zr8YSQ*Ow2AiYnN8?o;!v~`j|Ga813}scWM7-U^rCTp}P7`^tXZY zHc@w8sje9K-XsSd`?)tGl`Q_uXb;%5i*`G;*2KVQ*Dm!-JJ!`+69ZfQ-PJXfj-~3= zLn}OEn}#lCHZUA&HZa<7DB2jhSf;hEnm80)%xvHbN4{!zI!-0~yfb*x76Ze-@4s&6 zi9_Qv@WrwLgk61_M#nO`6r{8bJq-hgmAtAQe;97Ge?84jX!{n$faW`uXc{pM&E4UyA`_{M`syrv|-T<*;~-d&FScsdKM515B4G7x$2&r-~L`Pa~(a1OM{3VS}36`#Y~CEd5UxHmEo>S@O=bwTSwxY3XHN zeC>@HiWqG;v`WrQIwlTZ;FV>ouU& zBWIJ_g*|Z$T;@w4)jF@fXIB#g$JZ7E!{Fl3#nVR7rX>Ds;AXLR2-}`Nn)e~yQNm#0 z_=UPdRCUFnAOD(8OMQOuA}2(WUZ^V_ZQ7H}?GAZD!;>fO!(DNx)xc<*4J_?j zG3p%j-v&k-22ZGMcIf(hS!wc+C%gv3e5r2XX@T*;JN&|Mp%|PzJ|YHU}?j@SlggdJQ(;z?Q6VyZ3b}{ zZ87koo;$P+>AVPogX>S8wGW#%)Gxx^jwzo;$Iw1_aSsm$PBL&DRqhtVTfBZCb)ET? z7q)XPVQnfMr;TA}cw*ocJvOp|;b5~v+qleD=ZvMJ^sjw1vw@2&zDk(Yz$K&F(zOp= zb?mvv7NZRVOIsXTsM<2ZDr&XkH89#a8in!VGjMM8eKIBn&NpXCoHqL6(0YSj5GHLg zu(ZXYy}#F|W0U7;f3?o6W9W;4r_LUuV-xNzBn<8HKW5YGp8eUtd#_EQ+xLbN9Go|% zIJY}JNv30H-<@^qe=@MN%?6fsbp17i!N93o&7@4#=5QMh-IVtW4{e`?>e=$&ZFDi; zbb+*UQYcRhJa%CHI0pWELl9x+w)h*}xhvHB0BUB3=FDNo{)K@zUv%fT+23MdI28TZ zwWE3Y3wIz)3@q&}$<^mPYQ5Tcuz{Z!+-Vrt-2N-yJhHaYztOFUmPb9ehaGs{js1=G zt0wC;F|f4nhvp_sYp|Dx?ornZyrs(n$!g%2r|%Nx9r}#WcRO*4cWg^q!eC%&i-D82 z_^J&`Rg3)#i>680m~4wp*U&wi{2LE_I27#+Bhu&?+ExRP^4QJof&((dX^TVa+>fT+ zU6;ji=)o>M=xNP+awItG7Z<~I7fb9mEy|C}_VTScP{hbC6f-%ESpmm}Oo8~&YGz@N9b z?>$WnENvH;NOJy|hRp5Qg)0aX18+Uoi@RuxLsLc_Bn<64sj{l?uWAvx7z}E5DEf~} zAK{6Ck9d@&2G8d3?mq5M)ykyPvi0)huDR_yW1-%Dfu zX()9HS<0(X$xVGf`k(fb+^01RZ7kYzF)zOMxe-;n_$Y`eNX&b-l=^apTA+QU)A|^sw)nSuf6eXa&CX^U6ZWsTvrDCVc-`X-MQU+;Cl8i+TY(l)?m=O z`{u@Jqc81#or|mQ+;;KAz&~EPQ|bKQdHedzpi{?I&_(rqAQ^{eVwd`Cej*J0t7rcXpWUIJ6AXOi^<<-+c>8n0#K33=CCXy7dxfsh z#G&yS*xYVC<)qxixL_-(uqAdnK* znmE*Bn;RQAUGdjO+c(-lZ*?&h&uZY7RgTdV+grSts5_d~z*YJMvw_iuLD7|V)ntBz zNjsw0ST-=)Ffh92HY|GJ$$o-^_w?^d*0$NeA0}QR41IBEz}pLi!NAgH1E0A-jnv>@ zY(UaTUavYo2@?ZLJKy2n6fmkKJxb@so6tzzZ`pjiHa*!1!q63m#@8OJ_xq25f494q z&8lP8HvC&)>vf)O10TW?Ma(hUuqfK_w>Y%rzK4Vr3_VXTHw3eR;b7Q1(VhUqzzy0t z=$N!W@1H}9e5#RK)(YhG;1bW=4!LlGFz0OJD9_62G^CX;Z8>t8C+)m#UlJzmbb%cS zn_IS4yzP^ht`HVAp_$=OX?qn~PD^{=<4OB#))Sf-SlT{4)H76S()P43<`*vZ47}m#4(?jp>!(a-f8RMX(rDLJr_E!RZ(kq`{WXswc<92vzg&*+mU-)1d~K_N z^Y1RDW3e|D8wQSWTWmNK2F*X~BM$~XKj$a!uW#GPCVLFIjTxY0{TkFI3SL(k?!_bQ}X~?`KktXT3-qI>GfkVbX?y(Z*ollG&E=X6Npxi9^M}%}-w^3|%Z! zPiI=P>5P{D)I`E=yz({L=wkUZtM4ww-@n`NuNb(pKAs*7SYQ|!eY1gs2HEKt42j8A28yOCTfw3Xc+cnJU@Be0C_#2xw zL)}lThW7Mdzu2LvH{T-+4u*fx?HKcdH@EdA!l>$YYTx0mh824rL0CctzVqg;li9%M zYPDmBN_%jh%SJm*iL`MHjDCD=`{3(@i9@G8SwtraR-}=`-3)(E%ji#-*}&3HyEK+C zv|(U$m(ncWH2cehEz4O(eJ>WxySn}gVHKMWV*e&&VDz<=%Xrc@8+d*mcQz;-+9d26 z?^LH?!=ciy>|5I~u(aRy2{hU;ux+eIyaq-e{xuu8Qq|>zq1!ygsW|QBO&xTs>4o=% zncLMOq6tGA8}PlkVc_b{y9qNJ7zV{sG!N!&*c2B2!DkO)@Gshq$U{M`I|KSNY+BIw? zZ~L2)bni_RFITo{1Ova`tv(AJlvKyiemyFfx1w|?VPar&`)U3hkz!!9VNh$^zk-bp z1FxOp$1}HEJfHDL`(25}3AW)-3U{T_yC@wMwsO-j3C9l0w8UURJgIk(S9 z{ywR63~j4J(KWaGhVQ4t6B^L_kukja85>I^G2Y42a#hp-=mi~iAugI9fgqhZw+dTaJw zHjx-OHr;;0=)h{aIjpf^U~^j>3IjK5c21Kv3=D&s9r|p^BEr@mchoUBczw6o+LsgR zJ_I$iv91}$b647_`_4An+QR~RkuMhsllJK$6RF4|b#9+S9UX&ztp>i^8!@wBYRs+Mo2^kn|aj4nAwtHg;leRcCAp@h`q*6hnozZzY zjhVQZvVLCAn{)i8_HPEx>h)F=e@okH;3HR@*}t%;`1_7)6~fT&{rUtC-Qg407;X3$ zt6p?7PyB5)@QpQp#WC>gf{})S&25i;`Dth24cbr}Z^H69A2Qlv;5@(5>&qk05e5S% z-Voumwa-lYIPisG-~m@|83x|f1|H&#G&T4*W1t9mP(m*Oxohmbn5;C7&!b%CLKe&%K0jE z^2gu2gba+fi&G#E?XX9$dFXGO;6X<-PG$p-2;4w_k7@jefzzGdM7#S(^2DL`$<#B5zx`cG z)3}SahhHGiY~U8!Kkc4Wl(2rak`fGjlh#th>S2aMdyd{ot7d)SnGHPIZWdwEhCvIp zSiwUZ2Ckp&Kkdo4&kzO!qdo0zOWxQO1F8MzOS~HM!s8eiZL33JU}?X$_aV$|U^uvR zuMF&8Sai>UG2BJ_{Lr10ERnNe;P~2N;Lpux{?YDvwhCdfE-AQ+_RB(ZsnU~^yyE>T z>R3Vs-c~rd(G~;4!Fks?lhwfYQ(hqK?cC2iI9S?$J)dA0*xH7HYpXvyR(~IxScNdQ zs4}qchirs7Kl-jo8xCE#{SPj5dZghAuYw&|cnOJMU@UGY4yVo}|<s9@$}j=vnq69Ydgw}jBf61%lz|4JJM-uE*L`?u)rP{Lx5srQyY z9ps6Ddz@HA*tE-&>1HMMcc+^88wNJFgF6Kh7L#ZMMby8{^X~7-?F{ph>Xypb51H z7kfk)_kXv=z-hO+(2ybR*}pKbORc56LRb8#mwgr;LmLL}V7t(8s2I3Z{i?L2>qg$n zom&itZhhoN2XEZaq+P&$DRmjXfhXXreq<)4&#lTmQH)}ahgF~@7r&H)y(JShiOJ#3qn+=S1pZVSC>5U3JtAQt_ zI79C$-_~4GMiI8A#W`NH3+f(;{v9Z>I`3BuoYFasVPI*)zXP*9;U#2XX`2lU2cz93 zU#wF?ZL@*r?DincY+yJTeV-IPso1l{8vKowE$nI-_(P?Ibgo!w!{1BQIWt)Ljyk<4 zA3~G1ROc1hSdrRv@6F2;>qFLd>T&A{6Ne^Enq0>+*Idc%73%#xzncqr(^ljsbTM)0 z5}PgDHMiklbggalFRrOiPm1oy&GO24E@*YcYG{IzAHR9IH{9Y z90LzJSCWoJ*%$`?TRks(CX*}8cpJ+5{&EIkFmUnM$-FHayAlkHq5V418lJSx1~#|< zI^aj68=WHMZ>_^ zLMPJIXj>gCH03y9VqkQ!v+wSZ9$knHimutf(iQ`+*4wZ{VNqwN&ph-u_<0h#Vqotn zDG5VY3~X+19DbfKIJB!@G+|}~znY$k9qRkg)$n(G?Su^67(9pjYZ0Xk}0gZA=V&p<87(sI=kl zN}geV7#QtA>5|aVRI%FZS-IjExWtH~gu%fusJVUPf@ZYiGw_N@i@9IG^_qs64LqW8 zRl@Es%+EvHX74nk4Tnm*_NNVm{a*}>_M)V_xZA>QK4EoU&!BuyKJv^CJruNzF!aU1 z54x-K?tU8>?cq7^YgPjnZnuUovw_o&j3x{Y4s=~eFlhSAAr!lL{=c@Hzl+q`jyb5Y zLzP9PjqZt{vQ%rjy^b||{+cSUT)|zm%?6hC%H%;>xr5sYlQ#NeI;`fwzu5D6$!YAY z$J(uxV`yFVk396xyN@O~wEu^<+Wbu(aoQ(3Z`NQ?G4Qva{Rn%~pf|nTltzPrrQP&n zW?E6^kzru;^B1+Jb@w{*N(@xz@2E+8#T+;8E?)D7Fto+rVqj@|JZM6g)uC{3!(1gP zDog1&?NO!nQTCg8|7gRZ=wkUB%;hfHSN~2;v56M*q%8*iw|45RdAV&Hb61@e?@s7S zTMV4FT;+c?Ftx8t*x<(%Xh_9zY;Uw-V77wt_;TzTTqsmGJ);?VfoW&^i;kH2YT!oZ3S@ zL!>5cIM{Hg$=`$adJy({`84jLy==@^9vpnQ?M`)$+)VZ_4BRiX9}fmj9CM$Cw#_RC z9jma{k%#ub8QA;TQcBV05?Kw5HvEf88+|eG{vrpoDMM!wwtHZ5Dw4hZAMLCTTjR80 zU`z~bZHq(gPv0}z-P=bI{3`}-GW@ZIc6<(nfiKpd#H)I}7A^73Ndvlfq#>69#`vyHMjVBo2+wz;JN!e3y7=zf8Ydn^iNN(SFd@QO96# zv|->$AN;k`rIM4my<}}s_P00`1~#|*3YJXJ?g?brw4_W5C(@n z+pv$MEe1v#1`gQ0i}(3t2sKsb0b%nah8X@H88OZ<@VZLwnzYeBeqEhK^}Fr)pfy!> z^W>S^13w3|z0Lma6%j<3wEJ(|LIabibKca@9x}SS*7SI4I$a^Ny1Q~S@7DK-a18#% zmiJuFgG0@2G4SY$8Fd)g=EM{p9Qw0}7kAMXhaUG^WwhbYo=sdempXY!42*u)pVIc0#_SK=*D$o- zoLOkJS0pPGRW69d-_T}~MKRs*B& zP^|>-FT2G0t1b4tgxZr6Z6ho`154Y>_Z(p`u(aV{Y+LwLwl@syHKZ&LeRCTQ-8`%x zl?nZeN{>_LpZqqkwCmkoXgE~--Th~z7J0n^cctyK>7&*l$VU6SW*M#6kCKG>gm>ei zZ8os~?*AAVZ5Xso;C`e1y|RztP#E~~fEb<_xQk5zIuNpk_kD~%VRjQz=-A*zi?y$Z zHxl+M$V*$hsn{RwI?FZ@wx;wnZD8&IZliy_;z#X89$TY5y46&6DEd|0&$7SYc3(#r z94rQwHXMqs7#MAF=!Ig*bxhi=>vtx!vG6`_M!Vznu7pY3@z_;vH=R>T$Ivbw>&@+H zZL;ZDdz)jW?a?d4sDwICMkOaRdXS4F^jb-GFE6 zd_py8PkpqCPQO=o+Z9ZrV-MUb^P~*}W8J^>r5QVHDBq^^M*H)%0~*?~)75#0YF%Eb z?>*G~vYqE8_enuZZQklBTqRznn#Ow0;qc&*7`8aLgvW;kD zS9Led`5+#;Vqj@I@5x2oPdo7@-FZ(K+HmODUanfy;su1|Yx#`V#y%%Ky!To&x0_r~ zM`(|2YolZD-5i{nPqK;AHXC@be;6Cs+7^de4J_@OWt-80_Jz2=W87k@=d+y$16R+K zNyp0Mx=+HHRYv%S+iNULM8D7x694O@6CN;wExY(LsH+TuPtxW=yC;hthx4D z69Z>)9!1R^$J5@@iF7PJ14mtQrD{1Fl52s@JU6#c!Vb9A)2i(}#0G|g&qo*4Xm33_ z?Xgp1HSEm$8-%SI(%W$8uyrTHt!;6rxeWsskE%!y>wM*^JoL>5KJNOLj;%Q4LYO$z+U{0;7I$IbbsqB!1D~uuDNftz{SGHA zzBUYuiNB@&YHO5MW$|>Q4gZ=A9GD~r^;uYe(4N{SX`FWT0S(pj#=Ur3H%`&8Zn*=s zWif$T+Wj2}Yk27p5AE$k>uBwZ)u6|o(|Eg{m8SjpSUOo0a(?uToRfeqN^>bcE=JtT6>RI0yAG+(- zfCqnjCr_ed>2q~547^~_S;9(`Zcfp|SMbEZch&DC<^3a^9$fb%Y+3KB6mzK^4+f4} zzJSJ6I?w*Cy`q4Q!NHRvr}9P=T0j^KEN!zx#ozF6dhk*Jvd#KGW=8*D=}y z?l+(r^K99`@Gq9@LTxSSeH-qgEe8JBdCLXkRU)o-0*5`ffe1 z{e|^}pfO^8Ii{rI^Y;?E z7%Uo)J1rX&ZLDd>`BeLv7X_}5;T;QJX80QhmNp#vWcWKF`~kb%dSbSH5r42o@Tnu`bj{$C7SZsAEVev2|&0ST-Fq8#u&2tBz%9<3-q~QKNa{?;PrTA9Sq-MjH-3zBbG-aKX^$ zByAWJT`bp{)Z8_<;n0NI6H8Vm3~kKX7JsAtqJf_}59B$o(ExYC&_3At5D#t4YT&L; zeuTYDRhh;lzs37dU%fAz|DJj@u`6K#!TSvZkMzhC$H3cKPNckhGSEoRZ9F*CCV#sK zvqR%E@VaZ+;yBc9T~Qs|TD}BznE05tJF_dd7hjHM|B8WaSKpw$-_+0DcnoZ9*X(K^+zz<4riCo^4V7#VS2M!-Ipx zz*8N%>KH7FHVlk*|71VZqfItC7GJwk=Iv}?Yg-(O{@~RuX<^O$l;dEi(LOv*ofq`m z-{$s@MyUvcLosQKfs-FUMLq+1>lhpypF^en;B9xpZmM$*umz{HvVqZtf3ZuAOVhWE zJ9(4aZ6<8|hL8je{NLJPrREccE*xrZ!@yYcn7O=5E*l8ze#(=(*0wk_dFz{+7&w=A z1liGNp4Gt8&aa-i6a!ar*g(yf9MuwPn+;sKaCTapzLYlM>q)}U4@jo|u2h>^sT#qd zXeV_lrek8@sYkpC+c#C9pu<^0^Qp*m!uujsukrd8>*peZHvD*d+6LnJ5f{h{={#8!@$_f zysHQ+yK64*O^fD)HMdj$p4H$`w6AAz}~Ck>_SOOxr?kB_OfC&kpW_T{?qtOg#M z@^7tVOul_+i-BhhRd)xgp&L6bla9f_aA*Oa{Bhbdy4dSj(4#Q+FAOYgvw^4CHD-HH zXtK}nx7ENerv2kzI2Z=Dwqf80%RSh@Homjt82Cz;L9}~LMjf*ncuuF*gxLmq^3s1; zPT1QNg=qb!0N%Fjb~*-wVq)OjDLb-%_b&Hl|1L^fSjWV`i*EYR;+SGaJK64;>W;p) z)NfW8uX@}4gjw5gXhLl`wB-73gtpbdxkFsTm*;jRbg_w7lTbjLbcREvEe=I{V6({t zf5&Iwaz5^aIlE?I|Dye@XD~HipM$!uYGfGL-mkijJ!qPYY`gBJGTScl9A?kw_OPp zn+@F8e?DPW17}_DNDbXS@}w;W?(irzowGm16Mw^@Xiq<)-v3q`G;oPwU}?KIQg>}A z1D^~^86K6PR79w4Wy7Ij;5lbB!ZP(l#5ol2f8^a~u5y4cGF_ z2Hsrp9POUboF@jJnsy%b85GPzTOW9rm%Z^^ZliBCFxpsjtE3ba@QMe6|DAI$&)gP= zzFUwHapbw8g+?hf2HWmcxYk-YTK~ z4$ZE^pjL-U+qq74qir_umU>=0)!Dxv z>{76Q(SPW5!%5nw6CEThAp;+5Hk>dRSlZ~0>OY4KT7S|a>4&1m(x>~90-(5DfG_Ue#tnzXG3?vV5aVdzenFq;R1nhlJ8s#?#r zpjx9eX~V(h_NK0WM%(JpBl8OD7}{n7qr2*zdj3I83~X(~zv~LNrfLrJdFWzKYW~vJ zp4vz5DWiGfP-zd?A4Zt8%SK0%)xg#^3>>+v5jor)#k01z)C|(TeO#xZeL1%OAMHcm zJ`yJFz)e#KT}%ut{)T}cd2My-mTD$pFz}$V8z{WBPB8HF(>VwRe(FD+2Zy2!hX#CI zK%F)(qo?)Mon>m5dui%<-OoH2xJ&k6+L%0?XZH7y*G~z9L%T$;;{_#eWjGXFX&Vmh zHIrn?`Cmyk-#=U;7UOhdm}YHEAFIw3;yV zPaMyoW9ByeYc}v>^&LHy)8&lTtk_4R{ViK*n)2R-&SX!iW8%=5HerOZzkj!3;Mnm~ zxGM&hcGO$-x%;aTJap%*uw#3}!LaDKMk{zzrpD028s^}z$J=hJ(H z{bAtkmua#Z3~pohhU#f)bgW_jUED_BY+&>gY7e{UNMnmEV~4&A*g}mm-_eGt&#N&Q zT-xpK71J?vF&H>|VO#E^Z8mV9XD#9w_|oo+gay{=Lv<&*8wN%jgMmBzxXK1bw@JyR zJaMSB$KF0ln0K1DPU6rk$8F;H8*QtBr49dLGdk{~V|FumO?=dyqQBdDAFA_nO$N@m zeimVHXo@qJcxD5e9eT;3DqY%|Ugwz%9CkjZjwRHFL$8hA8ppuvl0BvD_wVw|?FuO> z=~#*ER|yk;!=cjNov+Idl{OrlBv}ET7+CJbCD1Rs&COrS2i=t?uGfllG;_o+JjAw!`L7!@v~>Wgrax#ro?F2nNPl zc9}pGTNS1ai`}^k|6=HFYNrgLCI&XQVc_Jp&Gw-^EW_WtU0Y`nCI;R-_cUQ1EBDc- znUl#|y(^7b9lCahzv0lxz?3>R@MSVRWrG01;LzX(n|UxWCI;>l;!CiowJipo`7D^Q zgbbXgSB3w%UH?NqN_nXk@A_&xbq~ZpZJ$nF8VuaA{4w6?>n`kXYx{MP$6EFZ>c2&` za=oXkvuugB%}YZ0K2|jxdZqs~ia4z9#`^8hBKGC}F|fs$Jn7O0}z zZCF$sTD$pR?wZ@~-tP!Qf0p{4qj~n^Iwl5=?l6+FESN}_dkiMDS3XXrW9VX|=5=8M zi$lMS-e(xt+}>M!0^N8wi}!c+=9IM43GSlpX17r@x5dC{ql*n5y3=SMtd^4^52UBh z)iYA;^8mxZ($+@yC(LZ%%1MJX$F8La>vUt4W_9TKA$B@8zOMr>XA^hQGY@l`^r#BA z^)iWcEbXtkgx$%|liTR`p1YSfAmR#P=q^6GhV6Z%R}LK;I#`{rs}`c(NyfzAW&@ks zFmUF=-?ditJm})Uj5-DbJ9iA@-A^B?iGk6Vc9EUWHMB8l!=h-5L+4LvU^r9^oOSOm z!VcM#Co%BR3hK_3-)&e_+CC>58V0_3z?W*jpHF(*WP~>MZw5BEi|llztOv3a42-U| zjlLMz#btqpE_S5)TkWIUI>N5aiy)iPH+W)T^wavU=fT0B!!PsT?<{xyc`a(KB+P8! zqvv-~{?38C;wOd?ws-6atwX1M8vKjR>@$ntP|Vu?JNszDq`j!?Oj_yGRco8EvR30j zsyOXR>JCn6!=kTaoVY6nUf*FcwJouPx4oRYn?udq);b0f27|V0S=Df;o@94;n|AZH z_EBzx)jC&!Qq*3>gMp{67({4eIXBN@hr-`5=)bj{b98k26g!prpMA+oT|}L|qn6mU zlhKAlQwks$x@Cm zI240{=j3TheL6<*9yv$S+e1TX@y1V@IP~4!0J65lq1N_|l$mu5T^QKhzPQkjFlqn& zBY-Zy^5U-5q0)v!f2Fv}yVh@!Hv3s7!{6diyPOjVleW9IN;CU=L=K(&JFVg^ny-Fl zsIIiBYEJbtD`5kh+x4^ER_F8Grt+s2)7O|KJor}(4F6&|KNU0#ysdpsqaE_&3SmjI zouRO^GbnOMDjmyn_Bi`j4190y3Bs1%yU(jrE0!>{#lYzMcqh`QCO=M?wEGU2!tH7% z1HVxJykcN;J2(Uo@i_0&2Bhu+RL zn}Scc#%tgl!As&87!Jjxy-uAWB?i9MG&}oyyqgbU;!xPzY+!TyLRK3cs~7u^!OaFX zw=3i?#$B{w;5oOR7zW;%ekL6svO6M|ID(y|B>yX*NF)6QTDXJ%;n~&C!x$Uua z2KyHd_1iF#4Gafwb(}ztr{>bJP~YL~P#9DUJnH0g!tQ-`GuoLW)ZJlf(nfz^^BaWq zNOM+WhboIMNn4m_Zi~O+UrgFp^S?CO=)>RUcA|{gbxhiAlY0}k{~>V~?byWmXjbmz zI`-7Vn`*7@$qpTGbOwn--%P5+U9`KEpH1juFevud$LYLd16~mZgEn_})G_h5)uBbE zG^T1<7aMJHXz{BD2$S|*I_NZe(*X@#tm*F21OrQ392#HSJ2r?gX}{YTL)hpx)SC6JF=m!cC2=0 zdi1m?eM;7nyV6Eq+S44TQ63j{|EuyZ*1Ukaw?oa^o|3DfhIW$@2dGiy^}Jp=&(QwT z=XquWSB-i}7!2I^XjPhFGmHoSVoPeQ)Y6`vNoE5#pXo&9W=!RYfpy!tge_R|&(O|d zzd(b5Q=bnp+MSxKvoxMR;svRnN$rCsP(wc(9lH}yi+pCcRR5p!CFinhc@1v{#%UMM zG%vw694rP7x?GFSb{oNMap;W+)s6Oc+cWh2_T&g@i$f2#xkDKGXm<#T>&26hP^Nmzfoy_%ji zx4J*Wmxnei3Ik)}P#73{ePIBdKiH9HcIZHxr-X^W6Eg6;_O?1UrA!d@XfTc^Z831> zeN*GK;m{sufAG+5^?6hr15116ylI44+puVpsk=zpVqo;0uN>#~X!U`x8R1_HhoWn4 zx3h627_`mX>^e4f@>Ifpe6=I^H$DSPJKdB#IwtKwTA6=se`@PY^U}Z5JUo33hsM{Q zx<6c#_RIZuwOcO>5SA#39eIX$^Q3JxaO3xjX!VENn$^HJYzyj`xotJ@YTJ}-P_sj= z1}-royN>n!;6rsLhw{t@hJURFmNqQf>yo<9OYMJcJIzvO6sf`A=608@dk7N)|61ot zr}u@^rcwhs++rFE?$c{_4@ z83s<&ZfzWg!oZu-`WbC;C>$&XexJD)!N98?BqemsZ5UMi{qd0cv!(oNZFe5Ag)nPd z9QwG)2Ex$Ja9!P(t(LD=5YKAhn?VZ*8`UJ1hyLAViP*qsNB`W#gMk}tSwh%>>*)=L zHji#W7}~|`OX(Qex0d(Rq+MxGa~(rFAj4)J{C&u+AHl%VHX9fQm3GgF!a9bwPthZq z7+Bh0ONSV382m$xj~WI8OMB_&X+|4eZ1v_Mas2%u;xS=G3f-pmc40hei-FG;{-ue5 zA9NcJV z_MzR$S{rR~XnbukFdQoFLF(KgY(h+N?V)`LVbX3NKAtdfXeQ5%PB1Wr?&bqyc~%2o zZ?=LkShR5Aa%45|+YzmF4Bd+D7W4K^P~U~99p0LO_Ed4Ffn(?Mq#gMx6C2cQ;Lz*W zY54pl?C-%x`;hGgb#{u{-xKN@ZS=+8@UOJZ29|c%h$Ymi+2RBpYHf!&+ZzUMIYd2| zr`oM9ujd8Us7KhUPtB-*WKk)3NfyG8t|3i-o9jyp=)CZE9J+Y~T&$lM@_@p?zw~6z-yJHn2;L36%Hz zBn@-_agVTnb12#)s0~jHd_Kh*!Wvz8s=c~XP{)S)Zs+#sBDOlVeo8)`xebT<4IM}) z_RRdB+GT3%u3!XrW8{ohl5UrKMc8heqGKO1oCy<)uEdnl0*nI1J`=@l`wIr_#17r zfxULOHVlluw9N(}BE4+e*Stp+x?;qNIU zziR&%0~d};%>ESvFL~31JWDz1n6&p!Kfql$)NkBzHZUAqAWd27Gd`5(y~<5%Gi({# z8+|cw?Gj_D^+m5T$k0ryvE@9VhHy25@u+dA7cX*(yqMV*tV^AnYUrQJ?__Kl%! zb?Ca~ooH-<`ShZ8D9>)ZBe{0!sfk0)27c6L2w`oa>*~_}7V3SP8&=vzHPQH>b zX@^vA`A0kFIWH=c_zv&Is2yrmX@<=++TzgW`L+Z~?JoKPk~SQQ!QVZ9-v7hjE=T<|?-{){Y5$vn z#i7!Mfx{M_=k-fBgo=H9LPfjTv43IFQTKAPgMHh%a2x&c?fcQ|hATA~7;El!Vo z0smqlj^*MQIKKAwFJCq6*3i9#NxO2t`G!Nqz;#1ixI0U^qg9`264qmfojTR76Q?oj> z-n>U7?bZj%5*B{rE)V@eQ}gIp#RIzugF|6&X=h1)N)v}({SmI&J%}Vs+G~9G7!HlE zjsE7Eu;Rq`8KL#_#17TgAWKh7qo|GZkr8UpwnE!j$izt zncL!TwEdE0CJY9~^6%(IXirFQLvSc222STXgS%+AyS$3Nub#^jhyI&^;o!8l97!*n zl$Pw+p~1k?PIJJ99MT1o7+Bh71EYu4+VwY+7+Cy`_G#)%=_adl`_;Z3 zn@;G%pih6^;h_zO4jr;igMY0CUb9Z!U!&$+u?8C$4$c0!91m@}xq{H4-G<%cIrI)xV_P(fR3R(qRunk)HLDTwYGCy%}&*Rw$hRf8^LY#pB>Fg zoyR5OZjZ@!dW63{4}G(N(Z*n4w7)ejOVZ9e<)G2tH$JtF`KQT19klU07!*rgArIB6 zKY@qt_QE3#1Do49Y*uPw;E=n$C}d)FUaFS$2>bR|6c1gjtNQs3hoUP6M!TnndM8Cq z3@q&`Q5E8}Lv4Cd(%_jqtAP`07kb*6umX=O(eYaubWGY;va0W=f49ZJt0Tt{He=c- zI?!LIwR>t4y4E%fJalXfZ;*2p!r))5f29TVp#FaLFATi+u8Yw=)aMEX*Q-qzB5(8H zP%$vN?bJKQV&IvjmykFV22MKUk!E#hg%`C5D^A;Zo|WDaCjP$qc@y_TB1Uu9+7<)D zp=dYoNTOrrwm8(<76VHg4n_N;_eet5FYqm|QF$*dRjQR*sgN>+<@Xpx@fld!846CZ!{3ivMFqsf z?(SA>MbQWAoxgFM>%Z9IbI$wW{(N5-Uhci`wdNS}jX%4uUYjV=a?f#?OXmx1Wt1Bo z+&26gb3URZf%r>V2n`A{y2<~O$CfZps@^1E+Q0#evy=4=cLog%j14?<=P-f(tvxEM z24)2=p_@*A)W~tG-l6k1Y!ROe=ZG`9w{5l*%8d@~*zszb?wu`15ct+i_TrvXOt^O> zfw9ZpiH1kV>TYx}+(7lW>d@7*M^W8CH=!k$qZ9qsFzupNk#fUdrfjkpmlQ;x-_He< z(yS-#TAb{J4mG+bKfX!;ZgePs8~yvY20mCx-hm-Og95lc653PSb>o?JZm+q4(V@zH z!y|-1EngqXTzU*mS!vE*xT{RJ)ZOS%Q@3dYm#QAEyH$t6Z`#1&RvQFRZgi-}8+k{a z1pe50i6U~hKLKBt#<>_^SQ({_lQN4lTecdgS23}6<#9p|aSI?(>mA?to22L6Oli*bitlZD)Hs=0C z1H%o_z^X&vEb?NvX#*>_P4`|jqjCfTHyRjp%D;vCdtAgiI$)Dq1I7k6|8kH(wdx1i zUnEOe0kRF4Eh73R6KG#o?us^PV4sJ(2z1XdmXzDHf#Fsi3h$;-RT|vfw6(Jy(!K8ZFCPk7f1jtsv0;sYO536%}#V> zw|7i>4WNOSjIz_+H_c)Rs0NOf&%MFzfOuhSVDxuGIe&XS(32Y&9UOPDD|?lD{^5b# z!06yXwyut?GAt*c8rbjdDDjWGFSE^dx_B5=g?u$%y@9_L@2fYka-&1xHFhYxpy6!! z9O~vd#^_$S(~P~QZgeR4K5@+-4XoU%L;qU?8{KH&56i+Bm(Ax1pn<^`XFG~+Ta<=r zTNtCe?T7sIw+4Rntp$Mwi;pt>*UEb{WqTVN7~ZtpGnX%2I zdVhc2d7tJ_I>e;qMu&ne6XfoP-|jo<)=;v1mZ#k4P!K3*dQ=1F%{JqY{x)|%BG92d z;_ec>Mz`N=(mT}Hz{(9jyvhx~YGCEw-7B8J%J>y}17C3c5EI$4D*?Ezf+LtK{Xz-2 z?4Q65s`^`XXynFi1af4uXR;l$C-7=ucjjH-F#8hedybg-@^1v-RqiSaNO!-;F;Z{fCU0kO1H%gvkIDNO#}C(FMdfVyyzv)@g#UDgJ}Nx}B>jOW#OZv^%2)jue@jW&{7KQH>iI9enlEWdf>0 zd**J$e&t33ul1ZNfN6)?&+%n1-2XUlNaZ&6cbA2=>FVG{jA~$XXj<+HvyVC&8+i4% z2m%FeZcf#}a0AuA0k2ER-x8genUyT`21WpSWDNX*F;)d3UjC1D`j0LSXCJuLAu$aaO8bFhmT%vOml9(Rmest(|BT8tPmHQVB98qu{^S#7B1gxhV(Hj^Y zdTHc#W>pV2su?qf@rw`BJJi^~70zy?Ohe`|7i_wxa<@vpsk_HK3MZi43!3cxk5{_? zt$`12+(oADJ(<4}XmfNcd!r5r3IZ;~fY&A=>H!b(l%U=kf{z}vbz>kT|R*DUtJjRsY2^e@Oa zWCr`!s@$2&#R=tB z9f}54?)-fP?b<8vk~TDO#rt+zUoVYu2r5etBF8XrU#qr>W=(p={jECG)Q$f3x!Bcd zNuId`MqBjZ_J$uV3V*lTdFfi9hblMx%02eLO)+%WJ_1n%%P>dF+z`o@ zGIx4@Hcmb zQ27qZel4>&G=sR|xlFX(VMD;^-r^l8;zQ#ydQqhXUFlFr zA12Sh8w75|yVA0+Z=L?uz}d@JB!C81?%l_FQk~N4nRgd8_QG9daVG}e|J7~%Jp;`T zy2Th9_?}y)KN|Q;a~B%4c#TkQ)xgibxae*)@P(8MVyEQ<5xUrhz~bJcX-|){%(=pm zdIKBX8*}%jn{%fzr*a%1fCg9njShwTxN8qO+vW-bf3{^B*?O-R@G5u6&h`XM-RaiW z(%mm>c@XGs?#`fp0lc2)<$R!|dU{`i7r5=nK}NT+Ltma>LZK&pMW!bW*{eGAn|4B= zLjl}qV4&QpflI{grPM@us~ z9nTY}(#V?ZvwsmI+PDxH-~GC1oTr4NX#=0PT(JM^;6t3Nta zxzlRki2id4s0M~R`++Uo-tc~EZ_mITHa9)fbZ7<*!2jRemuGqs@Z5co``hMwQtVsL zR|HJmYpZ9_0Q~4*IzcfF2h2#CBj80GGArZu}w8`#u+ zppb#25*2%)=YFQ8hT zS}=wEPdWkBz>i8q)1Z96n3F;A;?az01Uxpp7HH7Fx#3592fIfxs)6AiZ?=z8x|gFQ z=>;)|vTNYxw_X%8+>3$N=vEC3w`l|4%4efDaMrV}go}KJ36$H|z{=e?Xe0sURvij| z-Wzfc?g{x^Skm{T+|ez8|L9~vDLF!!hpoQ~V05>CT9&9@<*qzEp9WL|H=cKbfa>q-eFt-gqJalRuV>J}%3aMd zKfNq&!|tvf5(yaHszZx+4iIpw4sCSFQz*A;VC8@r-8sMe`{dN61R{#>5O8N-d6&Sh zuR*%IPo*~$bblQg8+d+!h8j=}+~}=*4m0!(^J&8>0>%ceC%^0aHdsjQ`g!OL-2IR} z%`)H2phLmF{T=Ah8jYsrJ_rRrflB{#I^d11tB?Z}KiA+2D=NEhm@8wi&1mA}LczTV&u_g>2> zdWR16FR6hG^10d5K85Lu?>VO4_R`$HPut2lvYlbfrOjS+G2dyX&AhdavCm3qz}Ub> z_vszO2>!n{uyQZY<)6x}Ius48+}X1|BLM%T)elIyjSbvxYMWFI+~u~*9}VoEJv&7f z&ZL2zQTqsPba1*wlL;NF+`HQQl4H{e1>wq0;_;xKGuJ*Bco9 z3zR$g!R=HXsu~zxVC>MH@h91xUe0I&xWR@jp9Q>N(PK|~*LWzC6jhnv2J?f<=^dK9 zpfDBQo2bB{XJ{>#8^}J%}ifK*5E+|`q(-U&Dg-)yV#6W1Hax_{`hdys%#TXkHZgjA6znn8qch~t@Uw60fRFK{1U*J5X zFl~8VliAVHMek6!y>jiPU)Pp0OI+m~@9zeN-{@BT?U2%r(7(n8zR@t00K5Pls@yd% zZ`C{0eM1}>8@TU5xuZdLF#K?5t}-W81Fz3mhgzJk&Nw|O}))U1G)y zfA+%N@p&l${4;)H;5IfeI`~7eHRPN0dOzIH_J3fMTQx8m6x{@ zJ$disB5(5Cx0W(izR4ulZOI*q22MX~r7-q)$;h1Sg*%_@QULeeOUcZ$6CJp{jSZ~a zlLtN{kd_;MctQ4MXPFV*29v|SGSuO5DBa7~f#6Pd5cE=W*4?Y!^62h}f~(|r=c-f< zylZ|e0p%XHIAh$VrUzoj`gqB?Q!ffy)sx;lZ=pA^sarL0(W-R`zQFSWpUYrM z%Z&yWF|O>6nKF#Ms)1iS?BxdT>|#sT4i%?^)@_)Tek}>0MbWQ<109HUb}KtYY9+4U7&oZQ#;1-33q`Iy(0T0+0HvOXWT_II9K{4xAMW z&nF1$EzP)rd$>f9&kWK#H1qc}x;x0RgWjQVhkjl0e+_&rj=e^=YTyYS!w9GjRc>@} z=?m!@^f%o7!?vb!s|Gf@r>@`5?yV_X38)4>RMnhv^q2Qmm1@iF4Zo?on9q?^4eU~W zrryAdXXMlXT6DwnZA_;prKyNpalJ#~{(0Jwy>}j^(}3zwG%(zt(1fWB`WwLeH#a&o zEjPSNrghid!!~-+#JmMGVCpt@sKdnoZeX9NQ3Nti8qBQj+g%)acagxqHSpX0A;Rro zqJZ1jp~}6W!wS8D_cr(A2DYsImOxr=)uG!n9T09iJFpua+8|>gr~lT#)2<}y{r%zd z;#B>8z-0mfy!zTT^2@tKeqUzfom_@PN0mu(+cG2;7gyfdvgc-G>amj8u+VI5DoTPMg966W&YN{ z9egY34ZLh|8Ja|SX!7Cxy8F_OP&)TezN40?28J76fCg6X=lROg3He?XT#&nGP2Hvq zoZRI&x9I3BO9;T7IP($%Z(8o54b8L(k-pS#!YPqfhoXbw?(Wc)vi^KVxsv5xT#4m* zA42~Ec#ZDbOv`8I#j=n>O&}0ygZ0 zd-*VbLW3GR6z&V(vuL39#kuT-JMr)&dKc4+REMI06I?gy4P5w69HE0v8`$Cd1_Dpw zb~>pJg*PoX8rbOmXJiC5%O1@b-RRI+i#n!q-}%Rj97Zqyqk-WzHt?pQ9t6f8Y9l-k zUy=7IU!gJYJ*Y^}`^?wS9n{)p0R#8gPe=3)g%_ZIn_u^3;8h*kGiRee4FNa-&0m(Y^$!4>TeGx4E1FhgZ3c4QzCyy#X2+)bdG3p;m(! z^mmPgrFHk^g=Gm0Zdizn4ZPkVn+7gkGuO`5Od^|7#p&jVV9_-1V*<*3~++3gA+q8kYufB)9Np(pIPf6>5mYvmMZ zQ1I&L9p>K}`1-eo1foBerh`t7dVi}9wTZYUjP4hkP7*M?*_%O!o({CufU$v<+dkY@ zZ{Ww#-T!D{qq}H)90BEy9lVf$YT*CouC^tD8pWOvs)6m+52T0XBlHGNe|{D>sA}MR z?H&?{zv#|hxK#tgt2)%!z=xV-*8n>7%E5;Mpo8I79r~n(jRuTv^e@=eX`9}_%Khg2 zFaqdcw5Ub2neIjd1D|a<$>>Ihf_}@_QP$`_f4I-xvZ3qU!WlC;m)7t^B%}I!+{r`& z$_?*sxf2$ke@{mbrdBJr(!_akRz#v2cx;9Q_9}OX?REkUoyRk`4!k3v+{er_XaN3U zhb^dV*Z%B<+aqouGhkRz-K`qf)U7(Sg82;sXkfc5S+#!s&6qFm7PA*_)!)iJwrdM+ z&}ReB67X=|DdJAZ^CS|uf&cRLPRgx1bk?)`j>mjTXaIiYMh6?+=wP%rX#GPz50D+& zw!u`Yea=VDJ8ox`8x3qf{UBp(VAY|@eWUL;q1=W0TqOW+sf#tK;MFSh@QK{b^t*vQ zL@T|4?cdMR-Q&-`BJk6sf#I)t?iZsPxSE-b23kY}kb6K*y@5v*j3p=ePU*(DVCKKM zN9U3Av=Zf39jY4GeAxlrz3=u;0?M7!)kkk&cun2K+m59(1-$8&?Ka9i?kr>Rt}Atj zIm0OT_g^mvC^s6||MPqCeD*Lx0|V8eXy7Glo-@Y&{`RwcEE>37cUS6M*NZ+*31&C^ z%KfHxyzZW4UXhk{u;B(xnf#f+tHthOP5q4o;0A$R^Xu-4;dyj--}>vgf6>6ru5I83 zh8tv+zhQG#apnfKa;>WYxQz`Q(om#ws}6-54czq3X2#{%DtV@KmEOSc8r`aa*HoHJ zKs7M>SGm!l&Mk^+0R0U&Fm2#0x9n26MQGT&F#*-U7PjN`28MU%stvk3bHCo) zzp8uLc0lyP!jp#%;3Z|?L}a&iBnMXN5jNNbmz(dT_|&+?c*DbUGZk9O{o23X z*K6b@V19co8QrUf$er^OO47IYXBg#fYCe^K(Ou|A1PyY&%FH{mi;jIeN=CPBZOc^d zFJ*fXm^N*;oCEZrMhC7i#cFONc!LKXW|X^g%n$;Wmo_lLNBUC5TzkdVm=FS{?hdt2 z5s2P+k>CdH+Q@s@AG=Zc^cxwoy2~lN=hjs2mFaiT=BcNcEv2s!2+JowL!^8EsYs?w zXfVwy--RkB=hcA!!L4-kVO3h5ZLg?Sb3S|FF0>|wCZ@kkBd7jkOx=wG%r!70VLR>J zUx)tYPVz6J0r=s*ZkdU_Mt5+l^py8nWk;V~!)f8Cjeodr?+&3n;aQkco_k2SPlX?* z0_RuL+EUM%txwWZ(ep2uLuVI~azAYDO8{=rDz}x^v`;j7WVX}5(Y^htV6k!ZT>jPo zkK4W=&^=QG!JRnXhU!)FC%6|i&!GWRw?(<_soe1AT(ymXyT^_mw6^#&`d{7FUFDhC zE}Iy*fpSkgcZkZ#xhnu~JBxkHvnLJ&uDtH7yZbj@C<+}K%5L~Cb(8NC^W+qFv*s4I z0gHs|lyn;KdbmOqJNbiva=Sj1^JEgrlU@VxPI-HifqSxN5#8O#>JTw68&DsKSC3NS z*6Lt-)9o6wrOXa0?fjWm*SXDHTh@`3`}oHy7idc zdU-g#<~O_&d*ROEwVzg3{V7b{H_haINRoNq*VEipUD(^VhgIar0^4FKcS!pGO05KVF!V^38fKlzUdA zoK*atGXwYfn$b+{$ukM${V-90*8T_O{>X#0;7x4}9DBBje)RZ4Yn=K~cXv0Y`1cb8 zGR^KoZEwzGlsoZFT?(Be&rnNF|A=?mx?~vv5gWre#d{0ouGDr5ff4!4Xjc<=#?eaN zY4O|bTF{l0Ob9)Zus>Gj8=d0?Hk*A)Y{+ zR`-Q+cez@Vz44va&`@Vf4ZsWDP2EfXyeOoBNJo1D5qGPIjbrZ&EXzHZg z?$IJmcbTPM#GU710^XMW5*YZG&l^uoGZxUm-4&~7Q>6g*!re7t3zKojyxFVV6U^e}{@jxcyx?}8>Qt_JH{A`t za-Yl5jKIN8pBUxN`N5yE1?ATO+?UTpF>se#mt6yJgX061Ge&o%#j7dw)ofa4H;);& zcoc!&Uslt}D!Z6f(_AUzng4Uw8GMqe1e~UX6V~j7`_+>s|tIf2q)q_PV=LT$2OLjlLPQJFX>|Zl}^~Gbg%J;^11k`*8aZ zTJr0RfY)WIlLltl@1Yk7w%Yau^7rj4`TJG^?^^j>0A#tmoRY^iWnR@dOkhcDGy^w? zIzNE^<_?_viNLf$z1ThDbC!Q~ciuH9m3#e!l?1lg++l1FXVAcmklR%6agu-=BtCIv z?q?cI1MS<6+FQuH&swFZWHI?(5%*)(u!S_q{Z z``?xFtvRLkoOqulR?ZKa^f-Dvq_S4O$v1>QF1`BhTGHkusShj^_SAaGj|wI+emUWJMGwA-pQ>RIABv& z4RoyjA6jhQnyP`(qIbKDr_Ke#8P&i+*KW$+VL3F=q4OEq*e=5#4ScPZweCiTeu~Me zfq!$?%ehswtU8|?7;bbZ7&O{S15@v8A)wsx5ogH3=BiNrZEWBH#rNtBtlX+Y@7O=1 z!H>q%`XhEUI6OrR%Uy#T7#$4%-|v9Li~2Oe(y%$X-&CbOnSkC31iZ1VC7D$ zf#F4mf~vb*2yQem8r0aKa0Aa3yU2FJa%y1vS-`FOdrz1B1XO>cfh*@6LsR4A^HK@i zw|c*$t)(+)KsB(P^Ag=1I?hM$P`HalnrQ$X46kxqWSc`>_goPEj>P>7ujl8a~%~2vqcDa!GiSJ^#+DNOFu6fnUs?nH_xT__v6w<2n{}G z!4yVys869x8mKU5iQb_-^FB@0-)L~^si|H8{OY_ch(#DocWnF-SDDAfmxm<+`yN!+vyz&zjFKEEluceke0iZ&w2uA zZ&Nq=yK3)uVxyejt^Irwcj)t1FA3~x`H?A?w*djwz-UkaF96lMbkphcx=U7W@Azq32%x`>4Lo}4Wddkm)!%T>X}>V8>8pTPqkD<$V_@or|N9d^ zD%WyTss?sQlxM6Z%5B=f@S3^VX`n**2?DBtlP*`2&(CWz8CqD9au?faK>+;=tY6A` z|Na>@fDT3jcfVeRy>L%1)P+%QV*?xA1DjfEVEg$v8ZdYZ<1WvGgXBD=4M)kM6Es-18)ZJO$u>jD)e{-Y1(V+nD zD0gcO7~N=KV0XQm?p7UIaZO%&;o(ZFBiy-x(W2;IqZ;x)YOd*Ha0Li zSoJp=_+azw8o0g4hEWY%u|#XKX!AP8w1Ff0%_5MN`_old`c>jBqx#!=XIld3&~w!< zGicy@{dWA-U3+CGS{JoM7~Oqhnz6UZ!e0c?prGEg>~nh@4s05_mr+ zPIvFE97{EppJ#SI+`|o=rP)0KXyDQE+%-D1^5v5P4XPS=)y4$&st$#_y{!%12>mQF z$EFZa{cX{20(+Gket1;_!$0EdP8wW)5qpj9AV(%PFKLTs^q|?CVx?ctQ7tA{q>ZCe! z!xMSeihDW@phYV>JQbJ29BEanzSOz(T4wx`MdIm=7f!R&_oQmIFEEV;#S=h(E4OKf zuDDi)c7-*Gg&UYQ@TKs;RBm)A$n_wT?neItmynZxxY45ZHprPiiK*K%#fLI=f62TM z&j`SuFw~bm-`UQfe~k?c_wIa+=BDyu`C~OX-=%6*4xk zN4gvuXz(nAK-ueVw0q}rMm2E8*k=Tc4V>+thXit#_F|^L_oRr|vdPnMqebCHgQn%q zW3iGO6dii%$VdvETZRfxvDN@ubg+D%d1Y5rss{dfzXZixZNmhL0_=8>_Z_1{!K;(! z_5MCo^eDUGZ&xaa8#wM#W&-Y+#_8_4;g@3~s}%XejRyYQ;0~i281Alp+A%}tx{%S` z>DCDX@Pa%w=CT)V^e>3Jyo;H+Ue0@si4a+C<`a89)fcLPLwg;h*Y76AX1leKfJ^Vy zjB4P2&IORwyBh?zv4QU{@1Lqe6N)Y*^e1z|_5Q^fv+#J3M0H2JnIvBlfZv?nXxjP^t2s zdVf21TuBcfr7-B=56(U5wPP@&-20E0r^dhB>7P878bF8s(6e<83qm_sjHE z^#(?NcPe~D7#sNQs?`M0q3{~r^(J~`S68+a>EZVFl}J;uh9*EwU%E*Lh+8`)P7g`^!g{GIlLVA|U_@^MXkg_wHgIgGtK6Y8_pT-YuhCs4Iy1ZB zR}GB*R&Le6bw9r+(5Ko{?(ZFg?FGCUQ|9Rn{G;zi?r-?vHFal|`;?Nci!$)msx^yz zD#^J(3EX)f1~QJ@XH&@s|A+$#!2%6zbfbgMpUBJ@-G152lIqZsm+KHPHZa_6Cb=a;85>&hM zB1Uy6{GZo{Gw`BARRg!J;z00%nDQst-7jk-yG1&44X6f&druYrIJg14VEwTOX2gv^ zy+f6IeT=Q{ZaXQG0Q??ZyV1;pa#mlyPx+?h)&RU9dmj%nx{V!*2JRYPj4?K_(Y@^6 zGH&1**%ynp!`2c|4IC`@?V*3+-dbXz?nVcz4vl)dg22}tOH%c>X@{bNOHUX}zhswz z9>LZAXyBxep}M=e*(FiBZ_`p*H(7>fCS0&{>x#%0Wx9U*% zt%gl!O#2&dFe3jX%09+X@6dCjb_?bHMMVfqoxe(N;5|ihYQUy!IZZV%yr5lJXKvsR zr%Px+xjR|N-`J7@(+deu;bSoOFB;hBZj@shp@D(X4gdK#Z!)?AE6bfQl7>0ln3_j> zv0u6CWo%7g(3PT0=r(t;dBJ%`^>=(k9ZEN>Kfw!P*W{p__m_(l??A@1fmat9O2-?8 zu@~;1hs_CIfDZL}^juW2uxIZ^*Wm;T#}pyep{jw4c;%#C<##e@;7ZeK=pEW-{+2Ww z*rri^0>14&Fz(ME6Mz?FD-^;ViUxi^bTPZF`dMgO-e+e_-JW-n3H)0FkJ@La0d#1S z4)%Yz>+N_e8dkb{Ks7MjbryzEnHwL{+I*x(ssbX(Yb zBw%#+dbN@O8hF~Fk$-h}NVp`9*j3>E{aXXW-}J&3-EC}Oz=_tYEs{h$#9I<0UM!R;FnPz`)#_CW%wfh{eK5J&ZfmMf2>?ZdFNIKje$_>1yHnAHGo-1z%Gd<-J0k{t|^ryIU zIrI*#JE|^$cXw;k+Lh@wFucG_x}EgJX`JWaKis=FbkG}ExmABB4Qb3Bn%VOU0r-_0 zUSNK78N1)@yG8(Rbf|JS?q#6?^L}nreTBSJOExHIyRt5KXpLhB3GDcFk||SA?$?uE zG;oPeKiLcSl}J|_Iixo8tbhxlLE#3(!9`qtc&g)4UrcV}VVDvXg_{Wu$d$D8fKN?uM|JMdKy3xNz zw`yQZ&&DwmXWkH9JGjeT0`4^9?iGSNf7gt0>lD8^~d#4=H!0FZb%9 zzm0Cw27X>_F9CR$k9o$RLl3rJM?doiQppvCG=K(v+}%TS8(Dbj%(znpu+~39q&X(dvpm3qysod}y-L`J|>HMyajOx&JF^34i zZR}8sSLai?zwfO><5GxJhmK5qKw!}E5NdS(DdTx9n$W-i{f!OquSc!M~`=uU{5 z&u-PBe{<(>=}c9-7t#RSrX8vpSh-JlE+?QG_(Hga29nJ`69|zzD`xnHGRln>MFaZ= zwB-IxERBL5WLE*8d$lrIOd@$@$VQkFmRk* zkdlM_2;QV>&lzI_$A2D4%B?yS4GfkXc;tls4Jj`F1`?Me*{FGjxdI)k+#7m_61>V? z?Qv!ez>Nk4@GG~mfom0ePN40Z4cy-FqebsJZxt`DU5Q19D)-?Ug){*7`t~0f)xb9n zw-TyDvoENufh`wGG48{NEbEOSV*{gqmAlrS)l|}^X_^fTKRQ&o(W0hqV*{JI2hVPq zs)1)DjV1v9qHl$1@$Byc?yXNcFsgxXcfCmf?qz#IxV_=-G+`@)1_p4CckyCsZSSH1 zbg=oiPBb+3s_vd!LEbaGGlvGsJjlpiG%)zp%!}P<;4@QJG3amf@3&Qc1fH)uMpJIz zqxvH)HPFE99<{m@Lg-&G_Qx6q9a^ycB`WE0m!>t>G|<@L1^u;wKPFK|$w!Oh;<4=s z5f)HM187jyz@?h*b%J|rdk=1JbnsNqc}#~3*Tlxo>j=brpUj|xgO)#H;0DG9eqXdG z?R>kNc@pGHJKBdc_4d{#)uHhBwr@;mV0hC#muJ)^PRC2=9hz-ULG~KmXi()=9f}6d zdo@I$fdTy2D;6O1Z?x|N#^{Duxr=8Qma0Ql1H%nWJG6ZMtpt=?b?7v?I{^*+JVzL_ z%-c(Mn>O&7cXbFD8@RjKN*XnKJL8QH!%?%+Br>Henw z^sljjBkTJJ|3Qz1>QL3d-ho9mfCdGR7B=JdHg)gp)17*b8OkVktD)(r;OMawnah{p z%{VqxZ{U?pv(vy&Wf`+BTVjpw)pEx>Fm>lJ-#`cRE@j%Kl%?qd0-0PbCg|=G17{IP zvbZPEp#Xm6zW@C?0kgJ+nV&xnr)ps3cJ!)D8Osi(f=}$3VGN0~_7u-?C~zxmAaro)t&H)QuL+`)!%X z{40|N-h7kqw-TB$)7ny*4o z03D3}&Rd{3DYt6isa8=0;7_Z8d#{{BUzgp}`&+pmcQ5Q%^}+$YflFGJPqTrGTzf(w zuu34+ZzNJRuySX$Y{~tbRs+LrY~a?ped)(dKgQUh@S8TU(QRzt)&KONw;?_ZI#f0A zz`=4h#-fQZHgNqa(+T+PoXi~xclRUmvt6S4yYa*aJx5>GBpxg_aTpdFgmz;x<#V;g;RtE2B+kmV9LGzn0&8Zx;mp8 z7;e>}%H3YR5$m11p^VukO3%0e`sBp{juoy$YwHneBA9 zX#*>_>QFQ=yi*6%)Ih86TL`EIMhDwO>|@|A)u|oLbt*{--&^VZT}-|Q1Ij&ZmM@`! zugrYQsQzx+J&H0Mxh|BuZ0>Uc4g9~j(cjh%%cyN|DR#rZ^YdiAfzhEiGp5r(u7Dc4 zyTIWcWOk!2S%=GcAqiUa%)x22ccnj>cIfbsxq1VCtDlc{AAcc$U4S>c(ZQ-iW8Qe_ z?vt6G>Fx~ndALK-q9uMcr)u%RsoaI`bfh1_d;V~r-o7!F`_-T4x;XaFs$-1AFKW%p~d z?ew<>PKvFlyNwN8^5kUp!mT3N1+-R?u>6z*EQl5)DU32yM6R!TA?FMWTP*RBm*rYGCD79qRkE6YaYw-zQ0~4-ca7JM-zy zUvO$%5)RqNgIV7Ax2cv=EPH5eZ`xh-*dQTbMtr{3^V~2hof1E(<+hB_C z+?G)d+-H6VT6ll1-l6crtK6!A;Z_~$x1+cQ%3Hk=Ne^}t*m%}iluf^bfM>lAOe6AR zuX3YBjSXBsR}ul$z-wv{P5bgv{96Mnw`yRxpUf%6?#PALbhqkIV*@9y&PD-Fezd$m zTlT`O8W{ciw+42OPoOW$k1^|Cg>nDFA7M710!DWc0B$g8Gy}Kl(238+ zI)%J^EP9kFL9xzr8P%c228P$v9ez`uF{rtQX;mOVgpD-Qz|F*`1nLjo%>9c7c5)rS z?rs$_>2B4bX}MJc+Z<{^z}Ud>8r`+!{#jG^6^li>JD>cw|M~thQ=`FRnv!X!Q10kA zEeWUwKG-3V!02q-8Dj&#o|{(#szcGhaD!@|Q6MgwnO{frqLc}sWSYjBE=mT5$) zLyd0uP2H-2Tg$UBrtSqE3kh_|S4(#{m=?xv^f!Qe(OENYV7OC?$LQ|W_x2Ge+ar*M zow~q;R^3BQ=cc>~YZ!Rl58q(WqVR%7XR>IZru8sd7pw0<P&DvFn;$|oFuM&6Y;=3ws77c|pxobV<*p}5r3V)oV*@Mq6oO} z7ONWAr|yna4ZI>D{~rx}sYPD`szW<{3MJq#=iW@+F@x4P?Y)$fK=Vnf#H5xh2wdF~ zE>r_gskf9qR_sZtf$uLVq=6P+ZxU!*@3^DtZ=27vQn}HhaHE4=YMSdE`oA_X+|HXz zl4@X6_u;P>#H_I&W8no`?0QhYLW@#0aK%{@{=XZzVT%y<8r_wmZ8V@dH0rn?p+iB! za2s~_jff?n8rZyW5CJr}X#-CWJV~IAwcN!y;;~Q-4EKUpRk(pS+kGLR+=Conas$IX zckN0>HL%U~m+V#ztlVheGclu5HL!9QZ@rIza=Wz&r)5>MYv}KB;Vujs7+!`Z3)R5z z8{O}VIO`qy-Et9qYt@RB8~(FSub3HHJl#HGs{y!6O<|67Wu&bd-VH zY`&-NPP7lvJGA|k%o;Gd(V@woCJ|YzOS6IDRt@YH@J^JldPD&3$RRc~^hlKMetW(j zyXRf4tbw%Lw+i*4NAp4$xDRD@)7{1fUf)&DbQl^K9je@DVCN<+*$qFuz_)83Qto`C zGRnRGa-K&vXq_@Q7^53r)uBCWT;v8$XyVEp8WD6xcbg45%nfYpP`E*koVmz(k)0LsbJS zcX-W71dI*5I#%ur{@uXJy>5)T2L9%zz)=KD8`#|Wy6#pTT0Hq!njQLm#5Dq{flGcm zAXbZCx>hq-~_Hf>W0>O6_S!}4;jSyDZu8@(Fb zRs-lz-@m#e280t3RR@uB7btL*fYFTx zt+TkQ1}bEgcmGJXm$!1-+3qRq9vqc0{13!4;L2I>Q8i4z5vDJEi=W4V2kN!pjs}417 z;PatL1a6!zL!m+ch%B2%6Hsnr121bILqNIFqHqJds}8hzODv-rc)-~sRJLZjG~MV> z<<48^KDCTqO(`oHFt$ru{n5b6eaY{=-oVBVHFcvy;r=;P?w*wVNJtQ#F{ea|yn9bI zFuWkG4!sm~SZ`o-D1aNp|MX9@f#;bm_@jZ-ckt9Z^uXI9+W*qPaDQzbl&XQzp@*N3 zqeSn@Owyy4sTw$M$1Zw@ss>i>S(Y{$+({1`(2MiA^aif6qXorhN~Zy|=NXuF(F3%o-@)@r^Kbr+f=f)xcrT&a(T&onQi!w)@etmEDLN zc;GhyZz1{q51@aSy-U>Hs)1AP#R{W4VCWP z_8!ab5i6YJTx$ULuW17-w`$<4C)yJF7btg!VV4EG4Huee;MS6@?7luk{yvZ>w`yQ? zDBP+;;Rfj7XJf?E8{L~XEv0a4`Rrd3^EA8et{(I>u5za5?1ek6 z296qGsk>DJD>wY`8r^8%yDL)&w6sdl8(6vFpYx(Nt(@&faD$QAGm^1^refQga!qd8ssLk?~O?{a51N18bE{l%J)H!+g@kT!Egh+Y`L8_ z-|E6{_;=f^qwke`^$vx*N2cbf8hG-zd30w=dA&ocCchw%mKz;x>h>LRNPwxy?*tkc zbh;KSs>KXS<<6DjovMM`Pm_BZO1h_NVC6p2>Y?~s1EYh{zo6WLEE+(IqCt%v3V+xQ zM;g1LKVw$4f(GDK?iY?j2)wF0mr3&cC4h48&N`eb4RB#z*D6Hde{pv?Q;M8D>M)f% z-XY~K=iw&MzoUG*Qtqp>sKdp-+mn*i2?M>I{4cs_iMrb?|0D8f@LFuF8zOpV+Ly}xxWsk> zXkfSj8W{aMGcugXKOzq|sB(9$yPJHjwh|kTUW!$2d$-&gI1%=cn#sM~0A5hJptS~6 z13w)0K_q>j#Qke*V038k_zCn$-7EM3SU}R1I7l19}Qf-Z(C+aPY(iUV1WJw%8d?g@gSq# zz;L(wJcyQL?a8PH?$!C7fY+~<3zL?+wpWxeHn4K54pr`>Z5=71(-ggdeI3?P?4X?t zI&_?a{0<9Buc-!B9Xe`V1r5y0+M0|FT+?zNnYz*7u>-BRz2O%QYiQcMmNX^vb#XPK zlu!-qbFH85ZZ`QP0l07eJVU_LZQ8(a53=gY%((FXD7)*ZtkU=W`>3dh-HD=OcYw`4 zx2@RSg`JpSjRJ~_0ipsXDj1+*2Pj|{7It^HVxo>d*KvO4+`r8&I^So_I{urr-m})Q zl-GUleO=XPR)l(A{a*uTe>I8Top{P~oimQGt?T}`YpIJ+#JGmM{Ox~g(*C>W0ZrPo zTRV`~?4>++hX67gIMuXGY+z}JXfq9mqW`9Mh|#v5JBu*1VNeY12kPtuEcSXw>ff%D}pNXrw;5)3@G`3hcz?XKKK z+jT-$o`0nigo#71Th}L>F7tS11EXE}!W3?|b_gQO+&;TP-ASzci(MVJTSFTT?c#ck zu$r5X@zlp%+^zC#40ok{AYvV1(uRMRUZ2golq!KRIP}uH9~%6NwMg$wH&YcQbGvt+ zNhAigY?~dbSGr4B?nZl^q#abrf!5r2AQ%)wU)uTaY%vUsuBAiKmA2Wycjq?M9yd-+ z$+cn8!QB=Sx|RkmKYBJ{=$Z|j>P-f=x7pw896aglmEshVatNh+z4HcPmIf|xU!A%3ufHwZF!21>MRm;i zsXhC9QP9i+mo4ry(7Zee?y+jp|GAcwkzbSztroJkCPCGiYl;!qeEbC|B)%~lRB zHo{dab8#tQeg}^k?V_$133FSk?!i;LP^k(}9C|6JE1{d_@BT&`78L_;zv9nbw5z>Y z!As#Zm9YC|JlUXdsJV^4{Y5YCn%g@&c@ZY|y7}^*Niapu7z{#iZ$e4$L z3kYj<_8sqnmWMiP-FcR6F>t$@F@%YM>v_*H3~XDbJ;A`3v|(UO+AuI?*@lD9uAamG zg+;rmcdf953u{T*wJuocn6$6eT1Hq4mq?zp7E(XHNm z2Tu%K@c3fxqD?{7XjQlVB<;LS!U#iG42-_(sRHzH^ln}~b?2}cm>q2W%5Z40S`U&K zSlS25?jsBa?!4{;&(grsesc7b(aw0+9_s@rdR5W zldp^B@s`JRp*!t%Q_rI6?$9D>b z69xxwDYudu^*F;T>N1kBx~a)9Fxv4mp7YQb14quiN|-n_{&O(F!067g-oz7sn++^& zbj84ZCOMKr*}^&&A7Dczmd#Oj_T8s9m;W-_ot&Eeu?>UgoHfvBAIdYGs(n{~2mI@A zIP|gGQJ&erPZLsd7wr%0qo_vX1PvQetvl^=w9+v+c-(~zv@d=?5B|l@PIKa&=oaEM z|KTnY1EVbtwKOo=SWKl0gf@mQwqpK#dfn!y1_MhQ298)g*=WPRVqiFUSl^6fZr?0& z*JxWBxP4d-fy_z z7+vgHo!W+h;b8a|lQ#MjTcy`AIC%Ds4ctY$Z=@e(ud`Y_A+$)#YF&GppfA}zO z#f`p%pCOTRb>a+6!DA4FgLX21Xl$fk)I`&RrOEwZm23@7i!E+WNDd zyqYc^gh|`iv80Z{p_mvL_J%>RM+Z*OxAaTMS3Tc>c0l4}_OGyousZ0BMnzWZsy-AoD_+tMlTG2b%2)k0a932^$LC4@=7*q_Ld+9yG zmaj~qWA0XE$uDywZO^STbTd|+d1*4Rv|&)pcj9xNwBcV24uyZkz|!_xdWtYHFuHK4 zw8f#8?QnN>4~V+65(c$w$8;@CH=R>(_i9~l!tAUw>DbQgy9k3rrQP8hQH3V9WH#_+ z^*x%jyA|$|#K3TH)%%Yonho=Ddckw7VQyq`|-#42+?T z(O>G0=YI_>4$WhqlWw`#>KGiHT>E5gFYQ&Px7xg6FA1xjb~w*#X&Z99Y|n#1F=;n_ z|Zgkx$S;*2XzRE;lZF7{5yD7D0k6raQd_+25$BFZ^EQ~ zZN^j@l;$XRtIwZD7~1FVujj$RFzAQwPs#gr6&|a>awwwozI=_bJ)^?iF-aq83(MErFgg2cF?O_-gZA{w5q6X*~ z3~bqcutePvs*E`}%S@gaxXs7KN!lqEopVC>K*p!Ms>6KPzwF>5VMZGUUevn-`9{X` z%x$xQJ?AZ_iQ{t9>V!qSiGEph?8I^hLK};^en8vVYCfUu8(k>bwiwt!-ERd0o7?cO z7+4 z;VXIPXLlg%P0O3SzFnRZW^TWAUrU(T-(TVuYG`9QZaEnSUYAp2hoUbI?RIO;Vr3 zVPaskANs0i@l+Q>_q6S09{SRTL#G!_XUVPfDD>N{;L>T@}EXpLnj>Gj6lN!qywA0kW)T;%#i!eC%&!@xObsWVa3 z`n{;AW9Z)s^ksX)!3!fM(~fh;c$q#GH4I#I@jhtbK z)k|t%X^+Y1K_#Es7zRFh)YWL44UD!Jc-^W!hC@F;n3lxA=wf1EukWdA!=V`bi{;p9 z$3r(fhZhfBY~<^ZShIo0mw3$v9`|uQVZI5ExIJb@6CE=fIL5saVMQ(lY7_KhhJn#G zI}{deeJ{1q-d?;9Exa(6mz;rTlzKxL+Ob~VByF>S(G>%u4Fi`><43t>eC45kG~^s_ z{CJYX( zs{T9PIdsx0X$>gNJ$oHOFRo zfz9nctFCI+b?e5O+hXAOQ>~~?J4ebrz=N_6J8l>_ZjlZ97ZzPQ`7U9W2DYnml}0)4 z)zEgg=|e#dXL#aJbo)HKuDLigCoFEzBc3=E25zeSyQIM^Ht?oR34|rrwluJ`(NC@| z4*gv_=kD4XhW6d%Idu%}k^YSd4jvwvmh8WH@}ynhV;Es~uJ(xeoq-G0DoeY9&ePby z+q~V!wrbeX&zlMUjTu%^zrV3QHF;8j4JvI|^vjxwH1^6I&3f=Wt;;MMHn2l{AHp)F zKBKM3kSn%iy)gD~at4M&&29UO>d)0W2|PI1vMmOdc26ykFto*?E%w>y8^1-;^LxX{ z+>Y|zN|+e9-ji^`n&qj^Gq>M*+;!T0c|AK625#luiWhJ+m5!|(5J(u>_iwi`+J&!V z)v@sGN7%sMUN0x?Pi=8%TmOcHiGiDRJxf@E`fd|_%eL9Tr|#v^vE**dRH)}iPwXt*bdztP@OXr<9E+3*8l=>K2ZV&ER%`qJF2n|WpfkMP%ZENdzC z9-UfE+mpQ9hg#FE8;8|9su^?)7M1p*nd)36<=>xWAM$dQy+p^o*8S1I(iQ{%Rii3d zwjHLH(lK$Uxh?*Ne_K>~#zPd0RVOkEmNw@1Ty=JwEY zeuTlmtwy!r_BfZUP801;5SC$+mtkNST-wi56{BL^ck#r)M+dG?*1#S+gSczyP-zE@ znNBVHTIpC;=TJ@B_jfHe44h_755oLHxAT%~TRIe73=Xzz!=Vo^sCWGG2Xb2+TIz8R z!rrwkNoTCXc{e3A9{{1fl&o4bki}tKQ51x1@acGLrwuXWI zP8TEpp9OTRTa3Tq(EHvc4Tml*cZ13#7E$*UPUYnrwVAMX=@zkp4=$ZbnAyM!PpNnP z)hrE+_WaSOw3HE*36u7e{iBTbU-vhYSM&p(I27$=gKOxRw2#|cQOQ}KHEdOY`W{Ic z6wA}`wD#lgVbs$lhn~i58J+y{k_U@^OBcW^Mr3?K(>i{-4^D4%ar?Bb#@kniJYlGj;ACcA?cc!=avOn-bRS zagJZw+2&qk|B8Xp7Kfg!7@$=>a$VbU_`3#&{utDShb{((Vqf}(@vhD&%H5KQs|bU^ z#i4ro2*O~|XA3hCx|lc=27cP6i_zXT$elVawBn_Y3RU;KgmQa)!-?9&PPw=%4nXN5i@wwKAm%&CI)UWej|1LdXndtFrK?ZKV{G{7!+Hp zy)z6vs=*?o-Q8z8Vac`8HMikkO9Q8Pw$5n7znHZ1gYg+ZT=2dfl5(C4*FI>N}fhSF?!w!W-BgWS@419iaIUPg0@2ENS zdGA#o+6k*`>sXm~rS)=$UFk=*dAw(ttaMD;z1E*6O#D4R(^a`O4Cx65HMh+UmG+gG<8-vbdhVhv2A1}MH)l05Ff3{|Fxu5$j%9nB z+b}5F*!b3Vv?;e$5`W(wIEb*EmAh~|-_c0Iqz#K&{meuzaig?*dkX59I28R%HQ({f z28Kb~4U{UWvxc<7&ec~7%!i-G$@&SwLo zjV(yGgzhzoBXqGtyWQBJaHzE5Uoo&{8xEEBgdJhD>Er_*47}=fIvtaCjjz231}=Z= zq&9L-IL&xkSjQ|K8eTc2-YmZ}4_&i?!_~8dmIf}=f$R6SX++Mmh$AV)-i+VTVe4p!(eqllI1?-kN1QqQQQ`#K5D5J|--OXDaf!SDV{g zJNKv9A7ymxckRNXCeYy`_h@kckGu`N%aTjV{=6Z64isK}ktPOqpZ`!312>EdA@~=Q z_W6AAY~ac@8af>>lEY|EO5dES#S|nM7;F1Im?v%YVPJ76`tenQwYA;{D0Ovp$Do=x z6n%3W21Qre$JRX4&>nd@4ILdiPD||E$S`pBnh!N;TRK$QJ30+ZVqkL{1}=5d_ZI`t zOId`nH@U-eX&uAuiwg!4CI)Wk=1cJJpA4Ke&o2YBsV8g(bH`g-!jW!l{VKpyw zT~@*@9UAg14Z**d|ILx?UokM+7hASB99kh&$zKfY5|%(140<*9B_1q#s@67M`W6=m z`>%GFs=GE^(zdVPIElYuV05vf1!oiHtnJ}lYZyT2Vr4g0qn>T5(TQ$zdD1>m zW*WEKuIWRVI8@p<2CSe5Lx<=X+AuKY6XT#Qd3;K1Qhg&~uloD3f29roV(_=L6YK8L z#G&Y7W8crg9aVY$ajhPfh@UIy7W20<327`7hl0wJOM;DvW)3Ns5zIS4- z|Fv9Oe$$UI7#KqvOLaU8cT>NgOW4Ku7L>i)Y@@ww=nOh|bQ-rU4Lta-$C|laq;@uf zfwB4JZbXk6sQ#PP(1n3NuPCZx>n8uu(4ACv56`lVeyVyw8Vvl+t23Rg9jtvkbx(8b z)sjXyrP8tX@ezhYbHuNq@I2ReF!1PXg>`Ifn^#n7nVzhH?>AdVSi-muyiuu!lK-k5 znizQ4i17r6Vns4UY4ajoHEEw}cp=%g7#Lk_sr3dbyEi}k*KA;EPhIUn;pLvt$_#0A ztWudWhC`!^B@hM&Uw?Ovhb~sQ$sxnQ1yd>~S{S(fnnc3PZI4ma$@*dq9_($|J}_z_ zVeofy?eEjod)3O`=Jw}L>kI=ooV?tr_5}y-qCL9(44$uBFy*cFk{7V>Ghx<8+VaGq zFFJ1{Y;eR{f`PHu@7M9r4eGa)2Lm6=x{QZ5cBO0+9@-e}Ee=ht{d`~;#dqpw7+Bi( z)O~g^Fbs-isH@JvuM)srG4K_2$K>MP6}0|;&m&CQaA>=8?|9Nq&Y{xIxOE0$>+S~d zVBmfe%NcDkFbs~iICT8&72JhEu|rKR5ZcuTX*wnjO|CsMM|Z-c{qV~)!qA36F|&ca z$~#iicJqxk9Qxr+L+(l&7PV~W&+|>g%myxeKZTAJoRyx}vvf_u;81kiKTyxwD1Sc) zj^Lqv+G-hzL(#4@aPDsn9P=>!Zw+kOE)v?vFmTn5A2qah)()f|DHidrWI3l@ovXfs z`Pbj*ih*mdKStk=)=y&KzOB-aCNW(#L^Mu;=}_rU1{!m<@T&y#kKxvw;H zTO2wl|4Dj2rf`xr9J(RP1;Wt3UbY8?`nE~Zt`N7Mu!2e z^jS48nwR>mmg(mYqg}rA0n#Vh5xSV!z*O)YVQAmac8GVP@dmQ;p2-XUHj}UgeFqxt zKN;A*O&T2&1EY(z$u*5e+G5~}*QRKBPc|_eD(y@5 z@0^y#Z#5ihX<%vhn>96wfz9n&!{ce|-b~bc&0Ze*gLh}rF*p?KlcJB&epvN78yp5U zx1Zf`qbY;^c~=tp8wQp(47^6Y%aZ^6MjpDD*}z%%w@J3`uAcJ|1H-?V-f0j!6y43^ zpYzZ^d#1V3zP@%aUCca_x7u-$CT$qltH|CYZ8+50ei{!3#s&=W;9Yf3r(tw*>p_W4ffaMF4~h)Cu-=L+c7KW)0ELq zG%;}8=u3pb!Dyd9orCx4q53{XEybgm?BAv?o9TCLG4S5`K9siQHw_bqS{nF#%0$9o zZ)tnf+dy_5&S~a$D)qfG7QJ&DZ(8Q7gw?;)_kU}8&#A$pcN&K7VCRcGy{Ti2v=2-> z5Mws5v=7dXp{LDV30*i8?Ytv$(qC(ruz!obj3LZg{a%m0w8fz?@QA=qy!boSj5Zwl zs@4o19E!F$6b42Y`|9~v!^{RAU3?pLsP~D7cF61ZylD}(bf;=hP1VNsWH zF+8+KUK+)-H1OHd{xtdfXRUX~D}s6ahn8MJkMgXi)D9Zk8~t9>?ivP0yJPbJ zD!OD7&!^Ej!VCke_ED_<0GgS%zlK>F7+teNVbNh(vL|VypWqrwm>9TxmLZz7JKfqs zl|P^4NjvdFcIt3@DlfVAz{<*<76#5%Mt$a__Op%+O{&_F9SR3aTMP_~YQ59xSa|ct zge5#0OP}pxd1BxO;hP8>Ikq{iDR^14+gzW}#l)diN7P~io7?3s);8KzM$I7XX4T>3 zn_&RWeiciW?XCe0=vdqZ+Fq%gj={j_ih&Qm-$Q6)Atn>^Q*si;cWWT#G@-RWcQPdqVjv&5q`^2Bv**t{6R zR*vmQDYv-rsug~(wXNvB&urkR#FZL%mzk#?)aKyHt_gH z`RI2Beo}Na+xyFY8yypWvw-*iy3&S2Up!gMgM*)6 zUdj7Y8~zmo!{6{PcE+A7(0mnNZvy>645cRgf>mTAST(9PxdcxYoV=-FGRXwl>^Jha8Yr%(BD+uN-dcQ5qJqhrY#IJq_q zik;a1O*6NL_sGxwg@MiO6lr{owiwtqPZb?YuKhcQZa>yollH0Wt4IutuDLA^MHjm` z^AitkI8@qo)cdEtsUGv-&_5X%78L`-q0)v!+kBYEn^J5x+Z+8n`+X>H$EDou>{M6B z(8l^!S9s7&x)ZF@i%QOL_2`ymY2T533UlD(!Pk z0|mTfq6^2nj=@AIEF6DI9~y@yaK=Oanl=%Z`dwlr{d^&X4cr0YDiV+xkg zu|*O4XpW03`xothMydP211oVCZSl9X(T9QUuC(7S+$; zM}IOfx)?0#c4`uxtGt<)e|>uD=rotRXv5y(P;+~InR?WIK{k?h+hTj^Q<;?Nqq7SgBBp@u`ze!98fz7V&Ew6|+kGPfhuy_#kNkDqafu$Ymn zjrMfcEZV2uRoS5MuVov3v{R`wWHEEQ|Ku>j&~8w_2^$y=^;^_egMsr-|3=vF3|#Y> zH(|}|j-jO$ckvcxQ|~L~Tu)dL^-tD%%`|Dl!L7MW?CJCMI++W9e--yLe%*?YGwnkk9r)lZ`dxwz_!nx(}tki zWNF~w6zd7AYBitEjl9GAz9E6IvX{s3#K7iup2&V|QFMz(z53s#hfrF-8a#75U&Skw zsqh?L#erqn-X1Of;qLF+B|h(@!<9V^f5X644{k9G3@) zMms|%AHvXvfrno2V>lEBpFN{5p)2i=1=kYqz8$SkzlirV<6Q0gaCHxN_x(IEaL|z5 zTJ(|k+R>j@+=YL!Wno@q{pJ7Vi9<7Vxj>k-UsRl-Nqh2#Qig%Wq0)|yQ+M5|NgD=7SK8l)U5KfWP(mxw zBrp3H21Zxf^J{bGv+) zKX=8zpQ^28f1}+s%W=b@e)`ZP1|C=~Ev?y}jqPpOp1L5!X!pJNnF=%yF&z5p@ciEz zc-!b$!eCIdfzigq->uKiB@F&OKYt*v;K!QuWQiT2jfG8Iu35Ilz^hOHLm2!!Vtra2 zGdmRR?_mXW%xvIEQHMz!YW6p}Sf3+SbZ|mSYIWo)4Xap%QuX!aRo8kE1_MhQ4wZK7 z^1Ft=m$y{kft%V*bIdUuD(#m(UbNI}wKmX4ou#f;aQ|@4+=+p8lf!)UbAiincLOI=g@PNOs&JgbNbKX6?or;FgSFT-yuyL z+UrT8hBfiJ?F55j=;xVrS(A3JO)u2lnJ=hw=pLJCgrSRxzmsd54Lsr8 z6~flNzoJRI&-Ge_y*uQ>ORio1eGQ{64iy9Y`>SUZ+6>^qz}WmA&OEfSFL|zW7wwD_ z)ZKS#FtD`qd3=ls{7^*4@+7Q}fq}6CwH+yo?MiJ=nmU9@yYZ`>8n*UzEm~ErH9Hg* zMcZy%dmUTRtR7)#UpP>kC+!-C){sr*hr9!A(s5VX;?P@nvgv1ro+bKD1CNVI&mTmOmU$cRwJ^gep9b10Y({QL5*rr0YBnF;r)0@&STWJ{hRI!DG z!Qk-sly5bt`~XLu*}&+ELt)@_wY=D&=5}DnQNqUDJ;{?c3>@iokkDS-c_c5}>PaL9 zPOaTE;3=J6WW`i_ZbfT5PBv_TMUdghAsw&N_)kOu7*Ql@bV@5)6~|hxQq7o!##QC z_UcNjxQlin^==o2c4R+)y7@7f2Ydg{-?rqGeNYcg2E} zgpC~hn1^=iT7d+AOM7llTOEUe{V%I$2G#5?P36I$*tj*F30*962wShEwaRqu)^Kd+1P4mi$kTI zJ4X~@(q8s*mxjThj(JA#k~8qOyXwqp)x`?aYJx+}ZCDiTEV(?WRk}o;v|ktan=onj zpPoX;j?c?VbTgQj$xpo-qh>a6m3OYRslj0$9EvXXCb5)`iGk5BpN**cep?+we`8Qd z!=d*RA_;?mrMbVyT4*e@vJ)X2J4P0)XH+L=DB{!+Fp&y@es!+t;Dei`~jxDoF z!+Vgv8?_s-hX)7uP=CgYfs<>u3|7xwtBHX_#;9i%mA~^m@Z;IXUe&~*w<2Z`wk7Ni z&$2z|)Y&9$O9QKOe(3e46}+CA+Hep9yXLkS_|geGYV~k7PYgWQ{s3XweK%5Q zef8{>GVsMo6G$A|yvuFE%m$7e??Y?7((2fun`>g>(4Iaocw%73o}&r#T^GRnlY!Cw zQ#<^}ezvzbv|QXO!=chnQz5PX)IS>!4wkmrz*9Ge{^D;q6b2WEjyN$;?1u4F>Gq+*ztGlN0q@DReRVvaZi0z$mb0A^jP_#?FTA0MZ8}dz~mk)Q) zvECPWopTOm|B8XFJ!X(zy&doF3>(9tYkczkV&HeF7ZLV8p)vc{Y~a$4Td2*h%SLA73CL>e7)9r2p5?_CG-U|`F3v7OWCMi6OJujJD)O9O{Y9!imY)mfhZ z8hFN&lyv;Y6s>cg-I_QQ7Hzs{Fwe66VoPHh+u{EixW?oAg#Ep3D<$5s)iG%wnBztH zv#&M`oW4$75(A?T|CTNHg7;+SdO{cLcUHasqzrm1(`b74-jBEAVq3z@Z8+5Bb*Ch4 zaVQ*&HU8(r*kxsrxM(ViVRpD-90Lw|Pt^_sNBz%hs35(Wdm&h>W^16#HW zbVy;eEgdQberBca22@?ACEK|RgJKR&pEVfRd)@{f3~br9H1O6+U4Jofc)7#B7#I#l z7xT+Jo!jD2w99OE|HZ(UZkD2f+C*N1ip>cACH1b)`x~99@3L(?^fQet!S;rO#i91r zBM3X3t{<;p^+3Y5d|Mb>+NyM{v^z9a@4Y9}ZhQMQVUB0+6WUpF9OFgZ*kH6{pX8x{ zujP5EPrfA#eQDp>dPBpc-TqQ)LObzgIzks~a!8%Ys#ap1m5#x{<~AH!x?eFJ6NjSP zqmd&WzoO1HQWFEG8h4&fx);~56E!?|VqiG5{mFSe^c&A;^h;YD3jY>gm0C}(ZRt>R z`$yyn+FxWkxz<0zGq=;FjUudmLV$KNEG2dGu%mT{3-LS}-!uFTi=rK{D}b=OgJU%q z^mhiXcW*kOYuPqCRNB4Mq#(56Pz?Rise7?Q(Z%4^4!tR#q>Vld z?A{CSE?)h`z@=7N=`Kx9YnBFHsGbKEhd$Y1qhn}qds`%lft!yhK!eifQ zhC`EUZ(2Hs&>mlD4$a=?Oabpwvc2KpOA`a{*n3}Fw*Mnx;?Req)cr+jFZL9t^P_AGhr+-|0$b}? zp;7VdUl_PnUUxRIv|(WQ*Lr?14+ieI zJS@jnO6PruhxUq9pQwKkb>>)j@NW$~wI6AB=55m~9qM~&o8i!yVs{CvvM!7!MyWG0 z{`L3o+6U&=p{*^fbgaXp7liGNcH@0hzkgdgRNC&9vg?=_czHv69dmSlZ?w_hmGeFi z4%R31VFOQ6&wRtb>BCO`(uRQxyx+#NY(GwQikxSSA#-~{z(_K;Q;t7D*wJ36HMFxu zeddWn(cYfv3NNAUR>EN5Fo$rSv|-?g&Kmm{20p#6IJeOcXg81zY`<8&7o=7K_3S1;E91#)Hpy1WBdu-rFSM#^zkjcD~o2ce_`N3 z70T0*n^D{~x5c4>ovP89zG-RRKP!0s?pLLjk*|4XhejQWGz^SB+A!$1?`wI|UbDX! zVN+87)XEMEbjliBLdV3R-3A{p3|uEece>H}i}qh_ap+3>$?Q-uu(VSIduv$vVFL(@ zn^~2YTpI>XwV@qSynTBfLl;thkjc#^j|H8ll8*O7_ zdo?7?-0o9v60O<0izf!Qd!U}JSDP_Br;eEo{JXZk%$_cO>d5|`zxp6qH(s5jZRybX z@3%CxEe&kh&YJ!Mz3Uvr`?fX}8}#m!BZOHx6b6>|`F6c%hQ~ynW!op?Cc?zP8y~*= z#lYxVIy9T-X}Y)gE6=j+8Z?t;KHfp%P_*lAu+_02#a%TRICs!?9@;Q)fr855YQ;M~ z)E0awMA+{PY;IQz{Gn}kwAHcS85rG~gY0;4sI=iw%xqvd)Z9+a!2U;H6ZX4y#U?We z_7;De+oz)15@y*J1F!fwF^Pej4GSXd>*7>8_GZ+;XmM!d<^_cHo!pQI1EXEMdqZmJ z*N!?K4Cle3_1x!DW3Qpyrp@+LC$T+G4D5X_H<{aTD7p?OUK;IGc8d)IXL^@f$KcSD zX)5Vhj^K*CXQQVj+lGOq-C|ZaZQt~O7r#@Tfv+YG6@R0Rh2@(mnvCX|OZ9EzcRDL41DNi1|3`Vbpv6^ z8Q9!DSn@Pso3=$5?PE0}>28a>JZT5b@-Q5V?($drc;`B(&yCdJP-*{{ft~IJuzz7- zX``RxZXJSw1E(!^>VAGf%*1K(;ywLME2!nso76VIL{M~zljbUK;JMigG9vmzN z7JtLQImnlHYD^1ikoqw1&hlU?G4=xweRJFFZ&>uv@G?AcsQCNZxs*oxYHnAf{nuPK zLKlNW(H8@wZ*Ie)(?h-4p)fF(@a{aJiw$|TohNM=c*zDY-pj<bxXO z+Ay%R{TGd61EW2{WhGAx99pn4chR0%yc#dX$qj@JDCI^TT?^}&7}z_<4#HZgI{|JE zSxzvhv|Z=yrcI?6P$%nAylyo&5;kXIoF)cFAMO72^6Hr5)a8U-D3nphqz#Kod)Ufv zgh_ju$92Nc#?Y1azK6bsLoM6z_vCjMwcoYRUwh+ZHt?69yR zJDmLs1D9G~m|#$IJFMSI!V0F$%>IRe(H4Kt8Cry}rw!BV7%Xb-9ioZ9Z`}4|hwi%B zj=N}Y-dc*_UrZ}~g(n8K$u^x0e8c$+VL6Me<%xk?6wF2+(l6%0z~ztG>6jQ84t<`n zqv237aH<^B*uZe;pV~XsJGqwa-#Jv;VH01e=a*iwfxA1WG1@Tjr^H)4bg?;|ta%w1 zhO>d;;84d3wBS%msd%kpe4Ej~7r{cUOBF2Qjm4n-T?hABOG&x?+w zC)CksAD{W0Floc0=wfCAf6kdEN!x5-`-AH!D)&;JxgF8`a?BJTb$-pi21eU|t{?Zi z?YpB%+wAW)ty~C`_Q#&x34=kgy>90;X_vpgoyx_{=6RMXsP44?s?F;5S-W|6e{H+e zMaXR6h0RhYF>pHfiGN0;qh^P+8^ z(ge+(KGe;@gF`Vfu;xC1RoWCn&n?Xz>^B^nLg;Udj6ET~A=X^B`;=)|Q?Cz_30qeKqNt+g`v-$pQuRqk3#NR_F ztM5_&ZC7$uKgR{ zq-{3v@7geM+NrM8=y`gIzIjhGJJh{EgeGmXffsgYpTwar=jUL1!@$-9+VRW=UbS$Q z;m}4~FSCKau6O3{se+M&NxNl7FT&g+9`pXoz|TA@Q0p!_Z(jAmzZlrE{pI*{dOmn8 zRdU-*RoQW;1PMe4Fh}M$f;v+u-U+9V{j-Y?M7WajP|hW z$0=79JD&I(?LKn`(ZEAvcK z4uyluecMVly>9XH2A^O97l}Pdm=?Q+H}#OO;n3D!uNe*<@#%yn?P2dL(A~6Cd9XJo z243s-Hw|s6&MQ=Vo^wtT16#Jm-)M_N#lV(r^kHu?Fr`~bnAyN+w|w)E2aBTrJBMae z_rJu49py<|99nKqCcW*xHpH4S%EiJBOlg>F?he82$459`K|MhenQG@k@KW zduPIOy*c>XcFB(iXz8p9yal7u#yUJ2t~oznL3VYg84eYHS664#%-mIv2Lof$Zr50S zFQ(SydmE~GZ82|(&ARB9+tTV-`1-39c&rK)>ga74IIdzl!cNy}&$BDOkDi4-BC~<@ zx^rpbls-HdI4;#I9{h_X=TP)>dKPh#HXQtgW%l|qQ{r&APvAxkBHNTx<;HJ3( z4FebMXRTvq14s71Ub~6aV#3fqAK}4su6sl?`}^kKz666}<~AIBIi*oi2#G(hjusAJKVJl7A@UNwTx2LqxF){Fg zqv>@F?bd_)5!zUfW98W11GhR-pPsvn_BgMC)VcX{o*20I`qX+<@r#6QQSU!H_4}ed z{qdQwoK0=m-f-~m+8&b+a2tIw@P!kL2#ed1LC3}}aUyg3O}Qh4?w{ICnyWJ-!mIPd z->~RgH*XqZrT% zHYG~yly#yuZa^=>c6;Wb+bycn?QG|GJ#MP^wA94FQBiw;G4LSUQyO-mVgp(dw4c|+ zxi5VQxt7Gh1MY+x2F`eAD`A!f{<3^DVONga(YlTrqAdzk=gAKUC$oW_mdDbarn{)x zKk7LXwQ#3ILL0OFd_%izThj^c0uMb1Yv?qH(8g@m_oO}U2Y8;&F@(Xt%NER{;sfUL zwx{$}|KEKHZTQ!J78L z)IoIZ(NS(EXW;b9%NY($u5D@Hdj*#h`fakyn@s9w4O0fbUSK{| zkDW>jX7A*oT_IaB9WxtvV`y$2TX^lfX4wwuHi0lW6#g~0;b8RZwNFRu*F58)Ee=In z9D2Y0X_9t{h%$ylr7aG%d)kS_z_pKtX}PZN*USdaxVwtsZ*i!!wHAGic7R`c9YY^& zacEHOaq69QzKKnoPmo?@+3^!a43ehIP_WFf;x7nr7xi??X0^VQ;dB!9fN^w z`m9plAKI#CXl-?;94iS1&hXHWhc@PVD3}@q@8C81QJJQ9D8L5p|M93M?fZ@L{L+3A zl$G`_E<-Rd_NR7hb>7jvh>g4pX;Tq~uDOjaR;N=-THR|ruVni*gjuPx`-j||LvJ5U z< z&)n{J{W@XjyE~}gr%ml^AN`EBr9)xhuPxHBz0K`DA12W2ps_|<3@q)oOCr^o+L1JF zb_93PMt9iaKz8UZtB-{Jmw^lJ{+lM>OdQ(MF^!H%yMKXa zTIu4Mb?kTTB0sY07#u7Pg@Mt&OJk|Gx2@)Xr72<2@xyq3YQw+x4qNG%wBb;jfSVfZ zjfsJ!Ju>|{4eb=iv+5Wu3IpFsr@m)agF~?yZTHflQgsb~n+<%cZh}^|Q9+|^HgMWO z(S-G!;%&6yVE7yD0gcpW>i>s!h5`-fOA7UKswQnQ@Y~kKX-$F;&un06k9fa=uxsw_ zq~zLtkqx zf2uog{xvY#-X&Wb?RL|5kw^Y$UTpRn+ShYOxsARUICao8_V2!qrwJ2>qU~yTmJJLC z-#k&09eSoqAHv{ZI23JdTR$58WH>vt-l`4MahI+`Ecb-PO-mr%3 zUrPfIJExwzQ|(6W?Wtd>OFS`f8rv&`^`e(XJ5A^;sv`!^JC2hHn(Bm!6h=%!0z2B`crNlL)*8`b1FVXJ^!aB z?Mb#DG;MWm!up@cK`zb@G%;|+{M897P~DdXR;@rVa4GvtItGVMultsl>&azm@N%wU z;4|tSrYX<8DPiC<-t~a%hC>~TyO2Znk~(&zYz$pYdxY}$zQ@Z^@HnL(_EHPfHfV>{ zdxndie4{lDqDWt(o{dm#_%}HNqy5OmllQgal|5)<=wdZ0#2N;ccFhGtsKCLLI)?7l zYFBxNf&Xp8z*x@+Pu@U#rzHN~kiDQ`;O?F&bnIKx8QPCorMcTR_5)#Q_e?PiY;HGw zyYrX!hzwf{153NpmFzl(J`B9Eg^iAhfu;TEt23d!=Bg8S(S}14;xp(N3|uwiNgmo5 z41BV{0-mLTJFM$R(jMF?Sc8G3Ee_q<##-<6IhwFHc2+vJpkOdz(iVr#d3TE2FmP1H zs^qktlC;IZQLXkkp^dF*oPj3}&2wm~VcY7OhRpqkC|61tDR|KP>tzNR(JabKN>bf1!I!@vpQnW^~UDuzR)edb;+ z!hGrup$t}cd0Rgm(6A%gZNktsJ9N73G^0I!mp6COK2V|x8`SL3N`bA((!g#7ClZFP zI27#>i&N{z9Q_DGxAfRbI%aN*L(#>)y`4k0KECwmoS;cMmTiRmaZrcJ0L%;9*Ds-Vvw1&1A*eYMRI+Ht`oc8s3xgT$e~Yl}mh7dxk+dvQ%LFJ1rrgl!0_MkTiO;K9IW)#quL_?zze z(nqWQMjKsA13xYuK-jKHQ)y!FC|=y;izMxlv6IN`(7iWbb9-#wv4ov!vyJ^LZTmj0 zv?6w$2}2u$f$h!=HQLkE{fwB~gZAuSSXA29*T$05z-`p9PZVW3on6Poz-VVFUWU6- z{~RL>_QsBet}zVUG;t;^t=66ggQC5-TmUUwX{%$FZR)a)FrQ1FzqG4$-AEX^*kN~T z?xHOQmNxvmT-|Yvz0Ose{oCvONP0ipUdPb3bf_2@?f6*(XjSaWBnF;RJe06K{-r26 z1AlAdL(RPlvAxah5f!2}b9Pp3SW6cj+fzW!kvcXp?vvrr3fbEb z7Wz>=Bd3NgmYjjn4k-4&Hu~tsjaPS`tBJoi6mLeOY;J4P{?V!iUHn+>m-dmWDRgYp zr6EQ;IRnGsncieJ9E$#k8>M(Rvbqu0>&0*yzb2CohobHFWCLMzsGZ?&O9P`__1iXD ze80~FxiWf?@y0py(M!Q6X>g-=j1EY(H zfp?ZtXJeFTpkrD^bw7~ucgZX%bj-3X4n-erY?}8~+J7mO#K7oUw#C4w);}~Hihi@G z=p=3USK7|;!G!gCyO$^J5h>HFGxO5xCr%$Ev|&+c=bqwV82E^%I#XF0cvqL_JZZ0f z@}4j;FdUluT97ti-V03}I_~6Y!lVs{I(2-nncL`MH%c|)eT%C4OB?-dJ?`;fV00}F zJbk!Mm}NUtPiHo8wZ$h0tMf6I7rCJt9dW)*{j4<7R2!QVgAJz#%J z+oEe(6|-`lPT0xKt~`&nO9&H(qWwDDS2wV<=Z@=4=%&?nO^V?*42*W<%l=f=(M-Xl zJ?s57!o;DbZFI5Nor`q?U;3ckjq{Iz*AIyL!@%fba4_15opPy|Ut1@|XkgQJ&v%^& z1~qkP;e^~Oc5PDtVbX4Bd7i|;pC?ZwY>U?ba^4)z`*I{qk@l-L+u6V99|>>98&FF7 z9K4@14-Wlb+Dn`J5xU~gJGmdRL&d<-hC>gP-$dwQn=|&NazVApdxA3$ZLC$)6CV1j zTJ50bmIrt+aOc*}ytuVKgl>%E0bXit7!)fsB9fP!-GzLc6eMr2p1h3_(-pLjv>B^n znWLih_V9N@sK(>H+|3=Jon@kJU)?M`v@vOaSz3s&i_b^$`t-8pZd&bU$!m238{1;w zMR}}r1Dm#CPz(kR*;9~4tg55E_vyt$KQ#l}#l2QKX1Yh17#I%T-o}HMmVw8)K2{2z zXiA4%e)8%TygI$@0Z6?v|-?J zJrD8n4#}iq;?U2rS*WJ9_Kbx#b;M0Fw$YciI22uDTO5kMICR(G{xtbwLALk5wNJjx zo1%?Ac~qp=YO<1=fd@6dOjuZ(7CdRsS2E~rqeIVoxM|;mY~)?=98cKQ-`+g5v0^7q z@!;TRlg=ukwzet!-TlIG!u0mkFbdPwGskq^)toWPfyuK8Gi}46n6yiWjADbrp`)^Q z(c7@-+^$iI7`WHMmF!<>!@*lZw6j$IXz&C1#vO&L2D6C@N!k@5#3+xWj4P1Vs zb`HEYX~UszBlhza&s#|C>)oLYtF*g?wZXsA&J~r!7DXFtkz+LveY9av%-Dv3F)^^T zD^Kv&4J>Uq6m6q{OKzS=m>Af<_sTyUI%E0?y}i(GJz-*Cv|&&z{-qxe?IwQtcoUv% zBh1vm4L)w7S_g8d*uNP#e#IrimQCNnU9_)F%c5chzHU-X+v3nt`HvEYw$Z>or9H{m zetUf}VK8vR*I#&W@J#pq+(rAdW=t4(YSrp``+P=g-J$0nFC)yf{nqc8-WG>u9k!0r z?c72h(dH_4t>z}Sx3pp4ZhNd%?Cq}kv|@Hgx>dar`!{pWAB0K!K*dXhl`OV~V&*jG z!N3^Wn5lugjVhR;ZE9d?n-BS%qAd<>xir0siGk7XSI3Fl;!wx8XBD5_G3;L$*e2is zFEs;4xW^DC21XZK6xW{;g0ypVw58RCLz~_5Dt?=w|xzk!Rf_n#M*ArNXEG;*}}oK^WTDxsJ1S12@&)@j$zl z?*m?12G0BGJAKj4rNiLR1iOMf_`6N3=l`|ca?4EaRygEA*yq2F^Wacvi-Fc1V(rTA0aD%d($wqBze&pQ?@uG>Y5xi`Ls*=&6=%Z_D;Lm-3XlF`yWP77u*L^*& z@yRi?eYEzwi?*NDdy$#7_B-N@Jv7D9QpM0VH89%ZP-7eZe!Q$yiZ%=^ZOioo2}`YQ zbf~m#H-r#o^!JyitMxYgTg&+;4;FP8yPJaJd`TQS#^o^^xPpy?5)s&${Cmvf4SkwO znCt0PJYyRU76YT*w#YcjR_=^)&2BScja$0&;9t}B`V~nj3_QkCyDwMUU(LdJy&Tt( zMYlIRX-BlbPZ%8B?%GJboxyzuw;%Uxz+KZe`Y>?rbKMnF1Lsx3lm!VF*r9bNT_)^& z`#0=RkG^L~3=IG7%IC=w1D7pSTE*@c9l-t-1H-|gN=6lPs_~Q@lef{KA09k0@cFVc zsHe|dlD0VXe`&*@(tcKCF1N*@skOzxqvF@-21XkW^>`DY`&%4Z$>%L$?hCYYF|>(8 zt;`m)y?f;~SFxpY)AOWlG;o0$*0j`V6iHhg3WK{kuhHA+|9D-4Qfr@h^N=v~(Jt!m zM5b-CVOIzS4xZ752LofB^EKq{e%+P*+xOK0!g_n;WdFjV=wf+C{&3c?c%mnM|&m<{vGgFQ63EJSmV;c^QxObUnQLUAVW&2rx_cqg5 zI$pq+C+*sSrT=JqoV`mJ`ae9Z3I4^TU87(bMGQQ0RVMXw(Tcp0jxW+|i-FOHMa95F z->)JJ4*uSHJ$KQDMQ6A6(c8(lN7Jr0A9>4usJelT?Wig%sOCVGCbX=}{{8zIfh_eprWcR}Ad(Yztv6GL)jw+Y!92?g8ADcJs&ngq{AP{Vru< z;A~&C@0PU%o!qJ$xLBQd!lbP{FGg6=Ho;_BvXF|QFYWq!r|a!%leGIzwD(#tSQG|E zR}8%MX(kn0G17{cR=fN2@w!77Mej|~woTWPtk&jLG58l7U8ES#*oJ}IJ6%Y#4Fj7y zcB9QLC&rD;G>5QWH(XK}7;SU4JXv+0LKgOkJkxg7g9{0Rf3aiFuPgZ+RubCSxUf-F ze(sh({M|af9u;!0$z8M$WxmF382HhbrBq{&4K;|*O?T{e>g|9wJ9US43d_k|=a3zQ z`M0giYf#|?g-y86vmL124X3p+ICyNM9E7gZ#cw?HyGL8982Zn%jOIP@8BQP7Aa0+z zvXuRsnt_dN_}8=ze{VSB%L{ay!hLBcFA3M%Ft}+O2FAp|FQ&MrYT%vr+1cLcANKjG zG=JqvSe-8ARSXtI8wSSE#lEguO5>B}^NbEHsoll!u6#T@H0F7C_V26>X9$CVF{4A{ zYi}kP82eHri2ZA9!{6diG4QQ-?NtnYW835Pf7)W;?6KDg`(NAjroJJ}sa^*1uld<7 ztv20UZzl#u7weuYif3z~y=$r&T-tk|AJHB9W7j9bA_^>{mKnl%ciyP%Ut@dHj>n1^ zIMaO14ccyMzXRUwx>-rhp~iOQC2jw1H053uKRm}ZzbKpBgTcYe_>#>#lXF$73a1X_?5$XdRa+(9$$0t|E2xz z&;vsI-1K;!u?>f!i@~AN)(!lRztR4Wfp2Nw$KE0_FdUpuiPIhWEqxiPIddpI?U+Pp zuYP}1k@jR)E86F|oBeAvaC*xrY*08<+C#tkQ>l$5R1608dAE_fXtyZ0Oo4x~hZVKw z=l=0`y?}3otvo)Q9r{iCHwc4+_kPL6ZS-MpY}lM%3jAv{FdS@bf6Ja;tv+f$`4xH3 z%eHGP)id+tp^dG}w4J+Xzuh=9MSJ`Q?T#&Nd1qCiqx*aE&^0=AXYLUs1|IA9S%HDk zHEkDOe3~%y(=ssnFmS_ag;fk~-@dJAo3euU;OmnVZCF&=aOjzvwR8io&wGL}SXA0g ztxqUui-C>)Ui9Ll0*6Yw;HmeDI23)fvD6G)f5tO<6L^}}?a5*8O55IQ0oe>pN0ldq z^JdQNM&%zQ^I%aJ6cYoV`dxuswev8f{Vhi*VITW?@zQ1OmBQb~_MKY6bZ1*W6>E5+ zFXbAZN5z72=T>1+_&2q7#=hAI1|Iln_#XyF8x}>sd{Pt-4pm=iXRFWf;n;y;u=%1y!!`yAz6@q0}RLyD`I_}kd-e&K@lJH>?*?HUv7lCd4$ zYaV6dG)pOZw7{goqGmy`~J&#!cuFCfu#+DTD!aP{6CB%>z^B`QN{iA zzZ%%@`eu?g`qCBy*KkZCO#J=(hA&w(xX(-S4^{ zlXP@T3FDpJ(~-`Oc&K34nw8})+FRVO^5D?4+HY3*(vnLNyhE7^tD`cWCJYYFUjCYb zF4n!BE5V^y$1N-McKyLldb?w=H3jtA%k zZ830K?bjYlbpuQL{J^ecUA_SYbX`mEFS!@%W!4WMMVQ@m|%6LfzY z4Ge!{19H?SV|!hTS%is0rET;#{3~r36oY{=7!>}+4qkskCwpX2O%0qcCQ|9;sy#cR z4F=Bnz>0@%Y6gZwr?+lTz3Nn8hvtchBTU*bD2BEe80}K7+V6YX(7*O2yNcbZtWekL z+P$%pl6Yd^BUu7cIJ9yDQq4qt(4%rSOF|f3U&B@LN6$48<+o>VCLoeBnQO<4+qk;t@crd8* zyxlzXGi&Edz@kQn9xGpiFlpDFG+A$NS#3?2u`LdTK`}9K;i3ge+G1d7!=m9$JEmy6 z4sXC+v>)ZI#QqfnJ2t+)A6q}bL;GymgI3zO(b|!Nb$?4caYWYG&t+B-W;8JRGh2A* z{uTr0dNxsaXvjnx!Y*B_!)@<^W-0~)PcyH`-AwMQ=w-)ayyu@TkyEGqyttvaVh`kb zMi?C0%jOMld8zS)WoYnFF*UHXohQuF9g23#PS;7=rUo{)VNnot(#&*YsQncTL+yhe{g` z?ph%$8yH29Cb; zf-v-rZ5R}jwir17o3(_&!9CL_*!50!Bg}rj53f&oZ^FEHaj0p#xP2&L((dqi zDD61v!CPLyOue^$Ar-Z2pkhyd)ghz5(Z=#Oa8a;h$+zrQmi(Zdb!4t$rUve<{dvP+ z;A3Z!d1&{vwb32AY`_M>OxrLpw$>(^XKG+LSlT5A7f>rNDU;i<%|J`EB?Yd6DI zZ;!i_o(-IH&tbx<9IMY0hx$$MAuO`pPu}Y%UkLO0YYf$MS-~6CSi8flc?WuSyAuxv z-gu({6${dSKh-7%F0i)}`!_8Em;LNUJsh&C82TT5=kTO`q^Ku%jcxcB>t{KfH~7R* z!dial#*_B)BsaR^=*dgVz|wv-qaT|ap?a~yUYuPp7ah?jBVF8=G62{dLI0nnt^Msj?|u+jbwYH z4~xQ~(NnGx{EG!7X!n0FKFKRy_$Xm3OSth)o_3^p<7%^kjShAC=uD61_a^VX14-Hi zhn^=42F{r43J+~K7+q9E!F$6nz*N zZTQzALq}eXslHUBdk8s|pGZ%l=JBqyvLW|@fjqQf(Pqsi@WjA1-)Q$GzOd(RYHj<8 zfqGl~U9)0qf`5$$?%dW&H*ntD(S-GC_ER}9|2AQ0!@ouYqy7GKQ5qLikap93-lj>% z2nI$MgMn`yw53SrMQIus?P_0N5C)5)4FgNtcxc0+|JEM3|1Ec=-G1OlrTXAsgrSSUqDw~nQjBdeFf1zVsmFr}6Ne^#bS11w z4`<%^&t*~=cwL8Uge_Y9L&3arq~|W$8ME1_7}~ICtJhn3@OSIN^V#2M_j_KC?7zu}tc7&mQM7swYgMX!MG;lz{EGmXJ7SwAw4{Zz% zcB+$G#e#cj&rfMv_0EqM*W(IdD|gqkH5&L`(W$zD(KZ@5*RM^4!NAgvSkQ_v699()Qo)N|~;D zv46$Dkyhr^XG$Tu8!;(`f#G1+l@EC1Bd^lrrk=b!*)r3?i*3o+o=~Qn-p;rEBw^@_ zLt)_W0jqgp;BA3hDfwGAZpR*|p&sv1n-`k39yPzeI7M3wjJ7xw{vB|5B@cb?F0P8S zjRwwmKDUaY5C5VoZJXH*RAW2cj&q9npfd{m8{OzX23|Y-7-7$6RjM?*`|q~n1+7#MB;H^q5&N(&m|yn+Y+)-F&<#U5pRs7QNS$NPk# zjiFoY;y}XChkr}W+|K*$zg2hW5VwjdCT(%3w9{|0R53BIwBcYeu(azZ)urFo&v~ti zXH_vcbl{SGJoJqQmiCq6o@DCp*(1x6Y5QTFg1W!OzzdpWu{%_?8e!tl)Y@X;{Ih-# zR_WzsUWT2U2%DIpG!I>@rS?wMr5D!;s}Pif3bfkB+Y{P@9U4~JT*bPr_a#i)ORpSd z|B8X9*c>Gc{e$KSwwFgPAS`S~HSVJAo$;LFlvIR%W!l7pL$R3Ey?AKfZN8nvz^3h^ z{;rg@|4?#I2v)?vXRr8j7wwMLIcUtfZFcphY$8k?I(s%qV(4N|s;^hx2el*&ZR|^YC|#P|OvQZH6;bzCho;&-GO_@TO9gV(5@71aVQL&z5j5^mOPYK zb;4rGQ?w}$4lNTqfERn_w*rHjw$UHo{WMi`zrjPh+`5*88QbWmX5jFAL4?7fXd4Y& z-v7OVuC&pge8z^CFY1x*P#75f7iaGB&=v#NIeaXIfj5nQL0GxU=~YbHZiC9`?Vv72 z$SK_w9vs~3+%jJNLRS>5->0p5TO2CwPk#Q~hC?ydvd#aeW(;tpye~W?9 zUs%SCw)MWQn6{^no|mHias5ofVBiwvZ}8w>qk)r3d$57~J&h-9%Iu}|_Nq4zZKHuL zsx~LAZI7aVI8+Q=XpZ*Ggl6E74mnk9vEoTs;ioxOObq;M$U4HD<{jn1q4wXjpGn#r zeYN*%`)L1C@obHcy?#&(q2hZv6 z$!qax82w+{*@qX_KBMl0{TUM)L^u@sF8x5RcUQ5D^4n-FZm3H$}3sN|A%uNdwlXm3{+PjBZ8-qbTy%us8 z?RU|i6lqWX9HB^ip7kPX9XXq4Y>R=>@7BYI2LmTA+rpDJ9GoYo_TH^#P@{p-#-82J z$Zfk5zm$Y=%?W#RZ#ac&w%_NymX~+`VtPK~hEjRnY2|Ha?QBfVq3yc&qfLQp*r0G| zA*=GbL)+BquKU|dyGvKv8;ZFQW;E~{hpcSS^LMTgHlU+3JJi@7^Qayzyl72kNwv5w z1{QzU{8>ZyHypY!Pjx~UgMTq&d%^NNDt5F)juh>AJ7WlggR89wY-;spD-qMb5@4^PQm~e!!#$WQ- zNqb?EuihRwK8`Tc_Ta&bb%%<9YdmN|8P3+`HVl06cVFG1ReZj(fziD@HGuv5ylg%d z%f74ytzL4Khc+huF7G#m`qvBNiGkIp1N1fwJgmMIja{3MqBdPuTE94=h(pD|(uPA# z+c2=SC(PYPeiOg*uI5OmVrYv)(MNmhw}HHIW6N`UgIyoO%DgkD*`s&LYY5%3*WUio?rMKlZ||u2S;_zSqpi`QFmRx{jOX07u-=aIT&x=y zT^JZke3)6q)<>?O>BBOsFmU!k8B`2?M~ho294ZFR_R%6$14~;R3Ik8GBPvT(dFI7i zr`a|-H2vyTgo(d@e}6^Tu6BNkv|;e-*9+?og@LoWYj-98<8O4aT3t)17%YnZ!{R;c z#J~?TKU7Q&EbUXiE2&gTXPUJlvx-Fpy|pV~Z$?=5LAiKh;4SNOaT|R&*tug)_OG$s zu}C>`99@R}n?d{T1WU`nFt|7rZ8&)6gTd@ySQHM$GSv^^^*xba#X5akpc{Bxd;noZ zGN~jEg@L6#B=cA@H82eB?5CXrXYjYQJH$UB%+$bXwZ);*uKYETBGybKbg>$D_p(F9 zz;Gzq7#zI(`D4ZJ*c8H~{VE`V$Zv2&uC~vUpH{KTS}7$FO^P9HW6ktaMPj3 zQWzL*%+$cJsMV}c#n^_wr&KaivGVJZ6log`yz9tx!ld0UB!RH-ldjY?DZ7f98d%!J zFU(~FqupqQcE*o3%bhDo3@q)}RX1zr1#hNRD^{mz;B_(Axr=sky->Z~V3M`!xOo|2 zFfbgNxzia6IdGdN4n^B&VE7l4cGcOd=$6$0`tjWL4}YWmu#Y2m(asoJj_QSvBV)Vu z?;Yr&vD4Zq*g^;wLEL}-EBYg-4#%?rv%0pWmDsA`|%XMv5igpd} zpD7GHtIu+7U-5ZI*uF|fW5uCptNmw@_YQCRYi%&^%#TxqN&Dma|Fp%S=$@@WD%L~$ z!SW)kHC>I{Kxms9c#n1moV4LkX^TURZ5SBa+U$U4(EB`71ILCeP0>CvDV8wwr9CUS zu=>7h7Zq(x{M~K#F2ba}cjOwv#NX2HT>7a}Ba0PP45*_Ucv19wCC@nR-coJwFNUrd zxY>w()NAn(lD2p0b+m0xFz-ZvSHfW6^1d^9X6yIHnh#z>82pPReYusw!0#Ho*9|;X zyZZ(+HE{9ZdxT9Jr`o{q{paVKTV~4_`-^XrK#GzAO z^<#sk)h^jPk}&vJ+V#FDO2m$Qgk=w%NiWJJvcJ(@-+Uq&4cyqrT*Xo|FxtsILwV<7 z+zC^^T5JEk_IJOk2Y1mvZ1<1{hhoy6dcu?2=!=29uT|CkEo~V1!NEK#2LEDh&wk^f zFYWT}GZFlYRb5+zXWDKZS4np$`bK|`wmeALwENwxa^+L8m&ZoYScm_#msK69I~08w zID0jPXKcg3m~+MJiZ~Qqqk-p6wbLDnE(QY|+v3oFGw|1|6KMal^3+}3#glgOYAa=i z_BjjowbKse%D1|Np&Oj;2@eh?bu$lbOdKk0qk%1whNUnt+GZ7+P?!Dhc?*h~(YVPz zJkvHDI=x{Py?xMqA7L=KsezLsx3htLLiZ6isj8dyj>2YM=?|WS&3>?7F}Ba$-bEPt zuqX^XD#=c%W?zQTE@#<>o(;{+lQs;D_OBkldFYz9a|UVWQETnSt9J0DJ)len_Ad-9 zZKHv$evc+>N!y;}KX?bN{dJKCgJLx@XQm^TYxVZ5n7MS*;duXUhqLLyc`Qu(VrGizaMp9y5Z0u}&Y|^tREVO%y-n zPOe^rO`EFSGp8*z153MSVrllTse#3zwLXtlF)=V4ij`ax#WS{xv}j9ZM&(s8F>v7h z4k-*AoFfPO7X~)AQ!}t>yKf_(6zysU2M`Rr*mpY5*oHx|ryXyT7#J261CQ|8MD^Ee zpMTdWq+;B!TbN4wlW1+!VII1vwM`8y?S0qNsTjJZ27WVY zcnSlfjiH-bd)u!7!b%+q=ZS%*TWln(@qH(D=$_DmWS1^bk@gMJ-fJ@Px3RtMfw_vk zIiZ~upiK-sbX__XgM&@mIio$qV?wurQn;KZ!F!0(s=DhISMQA|w8$9?I3ofd#fu()uR5=xM)$U%L7?!{jhZYMS zn4*ooO~ysa(ZEiz#Tz%({axVP1;Wk;#43qOC}GC7(V^q#2N4GUN*n%8tqq5Ig*D@O z6pvJV&wDE3&^&o#3G-SN%@c>B?eHN>s{S^%(O-4;i-N(RSk~koba?p!9@^i_U*@4} zZ1?$)nGI~(7KbM9+eX-sV;dE0u%orIe0wDo+n(S@*yNq*c+ytiRngmVS4Qe>IJB>0 zeKs&04F6&tWf$+^HMl8zLnWks!cT}swaFtjl-aBA&r z&l=NK|Dsf_pY~3qwi^?=>IQbW@1gq}7X3AN1WybsZ87lbH}!Rgp6=R-Ud-vk`%-ri zVYO}_=lS+rOPJBXXs_+uNpFio(ZyiVG8^-e*uQY-usU9}AmkFSuWwm;kz+n@lani9o;K4d=jSZE2^ZE8mZ8QV-N0ju{vyoS zMqk=uU~y<#ZTS0J?0v$dJ$&;}!r)M>=U(mK7;SqN)nEflJKLjb1bbr_oRfG)hf2Fy zmyKjT_M1{VdtYi7RZzw3pH|X7>n+J`qk+*C0~_0=Ce&erih(^!6jCubG}ZRd<%I6S z7a=@jd+)4mG-av>{hNVJ9SZ*zaz4QO;Wt;s&~E>J5wGtcZ^F)K-6O3I@T3g`Z@zMv zC+#k;qiNjXiYk`<>vlFU9BeV6wPHL*d{6?OqY=WXVz#JG?xv(4_lHU#qQz z1zc-MMH zk8WVJ+gGTS!obG%t`W|JT^v}Fn&kdV_qVibt@xzzC|7v7(9}}Q@G&XpPg08d^KK`Y*FE{9~ zx6zmOu67HkqUM-+OAphD<=VN(|FqxO+|%y0e$QJ|>LiVQWTs+bV6+{>oRrc{C(xXC zyC`|GnTo-|)kd9E&=vzX)_w+xfnygvQ808(+vvlgeJz7|=o;H%;5~nBvJ(TFwl^>R zMsI4?*W2RIxIP2PbBQ~zQP&)7P&l-}lHUsadqF!h4BHcak|zdUxKDeBT${ATq3G8< zk(=sn^Wee2Xp4cX&OAUE`h(VN;+Yyatu`#$J)Iv(``pG5+7xkvhyI6nSE_AMR&T?= zhsKAda46af;)edwev?-_1FP*aUM`17MGTx!=NMtqMjr+?wu2&i(Sa|%yjMOW*uSvo zt&q1=Bj;bL`1@_P33R_&E-I1`!4m@;+nFm>)Z4dLjiGg`dz0Vqm{r z4XF6|2Hah&y#uW%kvz2FP_#2zA5gI18siC*wm5Y62z$EcT0*;D){Q3yMi+yBjRt<$ zWhY?)+F5I#n(gHo+Z*pq<2D@nr1Mc)VQn;IB>V>_R(g^IzV+Zu=J4n_aAjk~garn@5T zd?!y647_Y*6T-f)Z_ZtD=z}p`2tyl7ELf9T?`p66+cl>(VQW_R)CZ)vcF#MgynSMi+xaGdR@K z+v3pF+Iz>{rU5fcs92HcQ+m6scCHgv>q_ku{x)^!?TwqrtM5SeuNb(o$6G42y{L*w zTO1mgw3zCbE}&wb$G+=rap;D-2f2%OotHyN96C3#?H>k48x9r&SA6+aF}5F-NvC3H zTcyjWV#YT5MgyZAmM0@ssS?kV_O%NA*}rwpt)*eVcjyL2yYHCKcCB0+DZk?G)2c(- zbMM;3p=ei{lYzTvj}1Len9<*2V04ST2-MqR;C9d75C(^KxPFrdgFlbk#p~R-AEnlA zHaV8i#)?KRAZ+oYDRe%j4CTKV&O0=zAMNQJY`3q(WNw=p*w~Ie_=vEk!yOc3yX>oD zgcUe#&)c4`jnKws+zuzBLzCK+)g6lVr5$i}wUSW6 zhOlQ7!^qUYy?R%qtpm)+<;nsDYi+-aFc{ou;5%2!v4J=CvLkG_OBuTTL%XZspSGuk z_FaV5#ZCN!#J82f^Q&wPyt$U0=yt@}Lf3$;HEX_m#*wqyX3$|RQVA6j0(wi{x_x+`lbpxk&-b$FX%RIGKUbfz(z`y-$ z<9K^cUf0_&u=|5?O8H~0G>87(e)cF96z@^+ZOYJwR16lqwts($_QLtT z+8N*BDIALS&)0(p-EvR=9{TXN>-~T~42*V3?XwIx82|KtT3ff}e%^z~p%uY2_3=tSHs*r=0<# zZN+yta=YY0XX`KH`JAszXv4t9c9jkh^eMf$ZeVF2cF_K88QL(gv`^M8m7*;MmUj5k z;ROFmyYsF*+Gpu04Scd`dKGOkFbuxU;vNs}mEZRAQgdi(1|Hm1`%X)n7}$PKLH4h- zFP`(#4UG1|R%5x1zV*@&y$u7KP0FrfskMy`E#}pVw(oT3?x`&o2{Ss>HM9d2N*7OP zKOek~_b@V^F!bSHw?zwR+wH?VV;cr;)u&LJ2B!UOxs85m?Vj4_cW`L!)eWe=TRZ9& zGMu|;Kj`YgLtolmpH`#W+09hU)W9P?bs$U}S}408^&Ra>4xfv$LE+Gl_e}>@Jr?Knff%c^|C+w-M(S_6b4Rc5}_LyU1PgZmsRv))Fw9Y zu{{gvWl&ePx2b{AhCz)EMH}0@CYb#T1Hb(+f!p6Yog>WHHX67^SM7J80_S;RV6?G$ zlaDKyICR?-PwpDqh344P@$?szLf==?f^mL4wBcWL!!O?B4UX6TjBBeL;GV+3rtL+A z7ZKL1cU_*b4gZ=CKS0fPq*JjBZH6iJ9NJTrvh(!zVKYD4674{Vi_KLGeQBp=V7qZ0 z34?#J#qYNAj1JAUY%b-$o2(eyuj3=x!8HSY2@{959Gg*Z|H|2h`qphs>x-4p{e7>q zGi{i=fQPP&O;&a3{Wu~VaL=*7cPJnJ&9gsvDEU1Pglw_cR{ZU%0{ zztV<*6L-duv&f(NdM*_+HSnk`#|eXf zv1$!Hbcc@lF^c|*jp98n5k(jby!mim6_Yj$+%f90Zs41BG&B6;Zx~eCVqlk^F9?H0 zgWX%x_Mr|a;)#LL7KfUt8B`4YziR$a#K7GWv@?XXNm~p&<9ZglVjWLt!@$P2bKe3~ zzi7B3?M$~42{Rh_+oLXjw8g;Et{FvyiGiUKI6*su{IFewov|$r z&D7n7hIX$)jq6AAF6A9ai}H@5W7@gvaHzCR4V>rRY;KR5`zpq?UFWqUiGh1xsiMN6 z{p&2|9qY1Bk+ycOC>vPX?$zDdztTn@7KKA?5?@o!6}eSx&-m|znHtz$`|f#m!-3>x z6~>dc82EjVHAUrgz z`(SNB5l@u?ht4a~7Kff6`HgyZc+8V_hJ+%Npt(Z~j5Zc9*;$Ft>#B4pJ%Al*Y`Y&i zLB$?^;u#GLhqhidn}%Qb!h6%uTQ{(=z2{+i?f#N%lsR}6&+?NWVeqdQcv+w0gc%Kt zt{52oqMAuDbWPjh(08gMiGd?K#*)#%)k+d)Fy2h7!w1#HZoT`mT926 zIptA{k9bB{v023^C^9E6qE2ZQ%XBu94P5VM6*{qAdne!XJ}>#layIasiv?5+29BH4 zn97E`^X6wcNm%JT>FL_8U_}fJhgRAcqx`0avB$l`2%Fcs6v3e4Q1N%KA|nWcfibkl ztShNvu&A`fz`Fw{({1M^yiSfy*r0Iey9+~j4S%elz_s6b(vG`8DcVK@?>}Ei#l)e; z_6qH;j#IuBb%z?;6P_O@4DFF&t=XZ*c8hvjW6||_-ke}iY-o<$Dg15P&N|eELj7MW zPd4Tx%xK{L`?e7FHrA87Xv4tLhJ*WTs6j{j?V(EEgLp8g82Dq;Oe(h1v85sgZk0EY zFgO@(53}RE;8kns!0W->KOUG-#n4`mm`%m%Mut+E^6!~9wtXWE8?cXXYs%+cs0S z53yq4uMYck10TEAhtS1fPz>!&4T@8A=9&b5Pdasz*WyqU!dmV-!|ODBCmT3NwFlaJ zVr%qv>B~I{21fhIkn=qF7hSB%)@a_lp?e8~MbWLAC!AL+c?la74wZI}(zb+k?{bcZ zHViCn^o{)``>(qj}O6hoUe3mbTTW z^eTq_%BCN9(uRL~HTL0|8o1)^HGdd*U|~fy@Jhbz6ZqIEoa1sA=ggM+Ik(4tyiHikp;ail&1O3E{tnORP-%}JUMf`sOZ#f+f@JSsU2i`++J!DI zTEYGm13US5S26Vemv;ZPqY2#~HG_FD@U@59{jb_!U=02h1CI`$LD;{womQPE%a`(W^e6bA0pXDR!4X2rj| zskQqKU7^gKutPU+iE{a&`t~t|7O0PL&c;m4wd%9A(sjJs@;_igG$@Q zGLf*JuMa8cih-9L{iwI$Pz-Hs_KYY+9BORmO!z_GcS`66hC|WTk#i8g|?y!uz zXb)OZkB2rKdNQ%Piou}Lj^DX~u(7|Bcy*Z1p{h8c&FfjVv z)U1EB(T7FRg+rwc2cwONLyhe>y*IPJD^xA2VlGF@P~g>bu`NfoNnzkO&cE5f6`uyt zU7L-R(RT)g6lV+}RUJ+NK5;f19?^ ze_%b8Xnb{U8x8zqxAt$YdtVavK2KNnFWNuDuPCXt;ZUQ2 z18VOj3~l(=)WD`~82s7PY%11qq@^lt7`WWqr94lcGm1F$kj++#Rc7)`+v3nkqZSet z{cXMO?-JVgbvueo<{fWdR>fdoV|(lkf5MFIn539g4Lmc4cBi?v4^9aLgBsgL1EY(r z%wAl@jBWJGI-052*^M`8MUSsaSpEf+)O`^TZR|{5?PrL=-=^*Vi-F$g5KN3}NEXs*Y}CmRL-I zzq3Et&wCd#i~Vcb7Kf&HGh=(Bk9N%=PIlOvS@~29U1`I>L(Z({iGj1UEUjW_+h&|X zQOmpQ?Srnr2or}6-M*G$?%3-7MjM;9peL0MNT*@}Gq01h#lTzo6sOtapYzZ+ZKEsg z8yzDFORb%$*Gj?~wyQ&TW@b_`v@^`jrebKrp%deLbOX0&GD&ZXLt)^rGlG@6&Shy{ z!en0URzujKN6uDOG2ixHgo%Nr4TDNMx#}#votlBsb~=57w{~<7!q9fEaGZxex~A>n zd;4n7IJt9s!uv$Rj0QfCe3WA6SgY8x{ub=->7|$I26h=Wld@c1$rA&kJ#YRdvg!1j z+wNaf1zS1pFJ;R9bA)~T>oRZp(dSB$PD}QiwnMM)BxAcp*JAY74KD@lW#&(LFsNxe z;}Sm_I`JkYN2XWBz)g?upkXiPao5-uhwjQ-kl^3T?S}B;sve5l6Ri;TXzgPj+MlDe z=R^%{Qv;(7hnlwCXDueP>8o^y-raRnk+!Kri><0g7z{ku=_9XAXO++v16$5mO_(?o z26k=h&h5H>k%WC|=g%{3$JWS0o3+pI`omP8v1K(fVirn&?=AjLLPyQ9o8xhfiFto?4 z-OrP@(ZJGfzAU$jNgEDsQpKLqE$XlQxAwVbdkI4u2F6Yo-<-n0BduN$W^BX3r(-uO zrUt&!s;%7$TMq>e?Go0RunldS(WRhA1Opc>wUA2r`zpQiH{dSX#k4ag(`v)OcP<9- zTDZGV#{9n&%+$c1Wvi>$Y4>x4!N8Qaw2GmP73>kst2#bGfkQF0F&Ow-tw;s4Z>Qaj zUU56`$dfg6VPwf{FiNg#BKSg%0-nt=z2`qe%OF*|roGw}E%3LJ0-_#Xj$?tos`d{r!0+Z)Yh#T30ch zZeVG{!2ZRw`%<-;kAJTOjGC{&pcvYojy+Ti?b8+Q2?ib<>&AmYvDKe8(5dk6%D)*H zZBqlo!O|Z0)}Pv0tK1a>OM80yXo@bKjase=!R5Km>TMQhVn2i!kd+Gij zdDDebGqBfh2SOLKIvc_>I@EDcG+|CvpYrCqUnESaewrr+zPZ7U{R;z2`+fQSga!Jo zpyV$qZ%4`Dc4A<(e_P#Ap4mJk41LqKI28R_BQNn%Yo8c0iLmsoU-9CuY0uYaU94t7 z?RhM12h>ZveDOnQ%Y<@lP|Ks)Rjl-@aa1DWq+)cawEb^;>g};dwcmv;mk|7my^e9_ zWg3yiPTG50ou#(p+mqk-4}Y}9q2$&(P4{g|cX>vXlduFkl{oB2<{~rb(S$z+UTM&}Mz|tQ6=u)cfp!aTsNgMu_ zcI2sR77FV*qW?p2xv~qWc{yQe8CcqID7qL799RAbui*Zgl)-F&s%>#7x}Us%^0u5gsfa_5SBcTv z=!=2H-=+o*c+gyLi$l@IVBneaFY+8_`;fFV)pAVLz-WK0Vnv;LR@5Deezpy{DA&V| zB<&NoKCpq&HZ`!Xc@%ez?W|GmxT}iYs@cbWbQv-jP zGD$bEw0q<@Pnfi??+zq%x&4oU&t2L>7#xbO(ZFcKq4PTK;Pp4#P8ckjvF=d?{&i^? z#uEca|2j&Tw2cle7Sn=$*IuHCfsJib11HWe!fkP=u|4=mYsx)uv4S=X{JK#s6@!1% zGH~%1euS0ZSRroPl?s&Or-h1{SF@q$Nh5h;;P@S_*rC#{zGWX_-N&8b*}SMt;&0P7 z96E5)Vcs#X@!G-Pqqz%*VuRg+Q?$Pg&8A{vV9RyA2!n$Q^(@IQtXSNb%Y`bPZs<;0a0~_0>2KHX|&dw?-hyq7t zS246bRP-z#5(eA|7{EK-d zhHzIL>iEQ;yJ-KLf#KkN+H==v8x8DqARFbF`h#a|m&;s!r#A_Yv)dBOTM{UZ;OGYJ-~Vu8yF5A6jC8Y8wSPD#@d}(O44qU^$}sl zHu`hgh4aLrXm2^!kj@XDm%_m48ru~u6v7gZtmaAk)v+^n=whEocA&i(y|`=Y(CclA zDrp%QZESJQgSvs;zfaVjcgsuB85?jHZ8#K*T~u9n=<39qius!5ghezRma2gRw_32h z(f>CCx6z&#!_fY{Du;^obsa}F)>qcs8GmQf+x7cZ<*u~L{VJkjZwCewHfKp!LL2*U z2A1|ZmqXMkGM|c}UCI8QQlN$#rB8m%Ga48Up3*T{Y0>C|BJD3`IoZFkXv?+Rc*b^} zCgv&(J}FrH-9R(2=M!6=f94frY>R<+mHbQ?`hl-P$;&m0hjzD-r4ht1aHV;##zw1tzv|-@Enfs9Fy1th%^x5zzY@0aZX)l)$#;Z>-WpAlOYixkZE9dx^l8PmdfRB=6@$y$ zp_|1`J8RhD2+wF>X^VlSee0z^eLeSyx2{(&vMVxxQZq2x&XF#(`l}nSq+P2xqk%8x zZETlX+c8`_i>pF}A_hjk;Im>pW83-2Lq!~FH1M%G75*^rl8WDBE&c2X2FB(FH&U{V zJwmP_|1mJS7z~V|zxT!l?N0B%+mE(qP@Tr);u+gU13Ns}rnd`U*-2UAO2p%Wj{LAqH*m85A;Jn?uFn32fp0g6rD5+YtC$!#^z#KaFdTgO zXI(Zh9Q^ruRTT?fnuixsb_DfR7SJ;P>%0x?Y$$Vy?|R$2#sv0ntFQA!leX;;OV!4&vI>V{xxKVAL$#re)#&+E!E*f`K^WSF z%HH6?z(1B~&*N!B8_U+oo4aT`HmamzV&LcYSyb!DcM1&r<+w8$+u~5PXJ77S_lqJG zEU;fu?nXyuR55A8z!)5gdDYs?i&(aTUX?DV{I@px6B_iRZM9D5{uYOp+dh-vUoo(> z*Zw}ESk>K0Sbp1lDrVZ=d!iplJKylZmln;D9~FxQ)Kiz_ykf>D3O$$tdeOW-i9A?T+PZ_Vdt}HVi6lI2i5HGnJBYYzkWS4~WI3TLZCF$c{CV9nDm?!xPul6m&!%Z}i)v@?2lB+gXp2LQ2A1}^!*yxg zp+p}1D{VM5eHA~#(rOzGEDoKh%qQ%SyEDD%n~Uv@zDH06-QSNEZ6eIrHac|d#CqIC z`>^kO1v}oyjIb~Jw(1UTTJ#xVXrE|ymp9Sw(UhP!j4|wO1az5 zrbE-eDpn=6v+q)Ar)FTZF{6RY*PcWU)1UC*(9YWX3(}td&7QE6)5>ud?cCZud1By@ z&t@ui`rb~OdwMs`ta^pSq0>4nPhsG9VO!Y0Vqh2?{;t+x3LCiOqP!|rzQZlT^0!Rj zcGxGbDCM*^N;o$kHkL=jP|R@4eU@j*w_|_E_C*w)_Ybe-WFj>YHc`F+VJn2 zLs`_v+xHT-e5&?tz1B6h*H6hoW!{JLjO{kPD$(O}i+R$9Lq{gm*Bxp!aF(C>RZI*l z?efo#5{5P$YCAhKU1$=-J5c@sg*9%dVq)OB9{uUOe>@NUms47^f6=aQ=0vr>{^FrM zp_DDvDCtC|ZA;e$+TW{o+(r9#pD?|RJ`9>#`_+MAdK+ELXkckS`x&T+L(vz9qKn17 zUP{k*RZ!8zio7zXm;vQT9BOLdu}+N%?StPY(yFXpyn+KKYUhRgZD1FVgM^7grEN5D zu8+?2SFj6N=J4gV)yuhrRd2FIF}95kZ9M2MVF@Ajx`E+P4DJ4tT65RfZdE-O+Z$~$ z@Z!ADgrNZkXgl~4gX>_m61HOrysjdm{p}CR5&1kH!sr& z!oqKN;h7q^iMdOvZ5Z6NotA;&U|O@7yT*2=wr2=KyO!#u8+hQDvV^X4?c2Otv-&DV zhb~Y5|K@0~n_LFQus$%l-N^k=&MiC+F3omed`lj z`-Ys0V0`E-@cbVj{%QWz9)!=f?*-!s$vk^lA2=XK6L?NP#O`HX0uCVDT{O`iguk4! tf!mGT2hMeRWe>vJo=vy^y@=WVpLz`#OWY2|X*a0<3$ho44VU%X0|0wMWjX)= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/model.onnx new file mode 100644 index 000000000..82f9379d2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/model.onnx @@ -0,0 +1,23 @@ + backend-test:à +< +xyz"MaxPool* + kernel_shape@@ * +pads@@@@ ,test_maxpool_with_argmax_2d_precomputed_padsZ +x + + + + +b +y + + + + +b +z + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb22a530a3c2daa0e26f9a6e3308004798ca90e8 GIT binary patch literal 115 zcmWN=p%H*E5Jka%f|-*kffDF|1c{;q1O*_Gkw_#m5{X1cQU;~)W_I1&yzwU3VB5Gz hxtA2d%)-i#N>X6Uj*$~*uFTwd@MPh|n-44B^aIW{6QBS9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fd51891613091b69a3e894ef0df3dd496372f351 GIT binary patch literal 115 zcmd;Jn+a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_pads/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..07a2b6f2dc24f2893c333eeb0db8809525ab23ab GIT binary patch literal 216 zcmd;JE@p00F#Enhysp2o)EC(!w}sF{rpWl$O9jQ(GMXV`l^s literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/model.onnx new file mode 100644 index 000000000..27682bcb2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/model.onnx @@ -0,0 +1,24 @@ + backend-test:Û +Q +xyz"MaxPool* + kernel_shape@@ * + storage_order * +strides@@ /test_maxpool_with_argmax_2d_precomputed_stridesZ +x + + + + +b +y + + + + +b +z + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bb22a530a3c2daa0e26f9a6e3308004798ca90e8 GIT binary patch literal 115 zcmWN=p%H*E5Jka%f|-*kffDF|1c{;q1O*_Gkw_#m5{X1cQU;~)W_I1&yzwU3VB5Gz hxtA2d%)-i#N>X6Uj*$~*uFTwd@MPh|n-44B^aIW{6QBS9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5570ba5b841f41326f3dc9dfcc941734a7feaaff GIT binary patch literal 31 kcmd;J;K0Bj;K;zx0mL&L0W!}7VE_OC literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxpool_with_argmax_2d_precomputed_strides/test_data_set_0/output_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e0fe8526aff7de1eebbb3d50196829f1c22fd729 GIT binary patch literal 47 hcmd;J$L+5y!7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..a0a2f9dea2c4b45f241a58737c94a22fc5d14fbf GIT binary patch literal 52 kcmd;J5ny-X$uBJ_C@qOE&PXgs^-^GDfB+cH3gyFS0Q9*A2><{9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_with_output_shape/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..5d2d8b63a88e2197e4e1b2325317169f79d399c2 GIT binary patch literal 115 ocmd;JPx# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/model.onnx new file mode 100644 index 000000000..963594634 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/model.onnx @@ -0,0 +1,24 @@ + backend-test:Æ +? +xT +xIy" MaxUnpool* + kernel_shape@@ * +strides@@ *test_maxunpool_export_without_output_shapeZ +xT + + + + +Z +xI + + + + +b +y + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6298c08ea7e98987dee78f38b8773879d4438b93 GIT binary patch literal 32 kcmd;J$L+5y!7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_maxunpool_export_without_output_shape/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..846f12439291f83f0902cd0953aecf4870484fb4 GIT binary patch literal 79 jcmd;J7tOVKs literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/model.onnx new file mode 100644 index 000000000..9b467b411 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/model.onnx @@ -0,0 +1,11 @@ + backend-test:Y + +data_0result"Meantest_mean_one_inputZ +data_0 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..20406f1dc46bcce42b98bda21f213d959289ec04 GIT binary patch literal 26 ccmd;J7GQK@OGzwAj5qM&VPJ4@V1NJz066*sqyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mean_one_input/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf4d7ffcfdacdd20cddceab74a940cc9ab131001 GIT binary patch literal 26 ccmd;J7GQK@D@rXc%_;HXVPJ4@V1NJz06=U68UO$Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/model.onnx new file mode 100644 index 000000000..d9f2c5a8d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/model.onnx @@ -0,0 +1,16 @@ + backend-test:x + +data_0 +data_1result"Meantest_mean_two_inputsZ +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..20406f1dc46bcce42b98bda21f213d959289ec04 GIT binary patch literal 26 ccmd;J7GQK@OGzwAj5qM&VPJ4@V1NJz066*sqyPW_ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e6c4d118d7b1a92baa67e80234bbf349e722a062 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qY+VPI&mXJBw}0MZTsKR^WJ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mean_two_inputs/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7ad6136e6957c4613decb732c48ae43107703037 GIT binary patch literal 26 fcmd;J7GQK@D@rXc%_;HXVPIfzU|=|452PFbL?;Cq literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_example/model.onnx new file mode 100644 index 000000000..04b6c80f5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_example/model.onnx @@ -0,0 +1,21 @@ + backend-test:‘ +% +data_0 +data_1 +data_2result"Mintest_min_exampleZ +data_0 + + +Z +data_1 + + +Z +data_2 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6b1c568f05ba00c536af1dbeab6b908f90d007a4 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qM&VPJ4@U;q*f3=Q@GJ2?bn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e411be9680e872bd654dd1e5ae799963e5edbb98 GIT binary patch literal 26 dcmd;J7GQK@OGzwAj5qY+VPI&m2Vw^h1^__71tb6f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/input_2.pb new file mode 100644 index 0000000000000000000000000000000000000000..da03dc8ce1497a90f669acafe1f586724605d353 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qS)VPIfzU|?7P#0(4oJ6Hq; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fe406eee51f84d18343b7ce68238abfc33691971 GIT binary patch literal 26 fcmd;J7GQK@D@rXc%_;HXVPI&mXJBA(0AdCJL*oQl literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_float16/model.onnx new file mode 100644 index 000000000..34db144c8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_float16/model.onnx @@ -0,0 +1,19 @@ + backend-test:s + +data_0 +data_1result"Mintest_min_float16Z +data_0 + + + +Z +data_1 + + + +b +result + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_float16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..560f20f37ad536cb5a5c6278b71316af5c49ad0d GIT binary patch literal 20 bcmd;J7T|JXOGzwAj5qLNV{l?{V6XuIC07Hb literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_float16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0ebf1b00432909cf922237bbb01f3f51127a8f82 GIT binary patch literal 20 bcmd;J7T|JXOGzwAj5qXRW3XXxVQ>KeB~}Bh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_float16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f0e54246bf25f45676119f4abd8a0125a40e2e13 GIT binary patch literal 20 bcmd;J7T|JXD@rXc%_;F>W3XXxV6XuIDdz+g literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_float32/model.onnx new file mode 100644 index 000000000..2d997033c --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_float32/model.onnx @@ -0,0 +1,16 @@ + backend-test:s + +data_0 +data_1result"Mintest_min_float32Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_float32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6b1c568f05ba00c536af1dbeab6b908f90d007a4 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qM&VPJ4@U;q*f3=Q@GJ2?bn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_float32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e411be9680e872bd654dd1e5ae799963e5edbb98 GIT binary patch literal 26 dcmd;J7GQK@OGzwAj5qY+VPI&m2Vw^h1^__71tb6f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_float32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3df9a38731ced63293970993e1617fd3839e52e8 GIT binary patch literal 26 ecmd;J7GQK@D@rXc%_;HXVPI&mXJBA(0MP(NA_W)# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_float64/model.onnx new file mode 100644 index 000000000..08db1c5ff --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_float64/model.onnx @@ -0,0 +1,16 @@ + backend-test:s + +data_0 +data_1result"Mintest_min_float64Z +data_0 + +  +Z +data_1 + +  +b +result + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_float64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..fffda548211a6019ad9fa8dc657ca03ba114257e GIT binary patch literal 38 gcmd;J7T|VbOGzwAj5qL-U;qOS2MEmor9apM0AgbVu>b%7 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_float64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..3bc19186080156b9efa933bd5ed9f74ccf9847f9 GIT binary patch literal 38 fcmd;J7T|VbOGzwAj5qX>U;u*;_7GaY0Y(D=ah?Rq literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_float64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_float64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..98fc1974a9835610ab58896a7ff343dbe00eca66 GIT binary patch literal 38 fcmd;J7T|VbD@rXc%_;GcU;u*;_7IxE0mcUaf1Cym literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_int16/model.onnx new file mode 100644 index 000000000..504aa5250 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_int16/model.onnx @@ -0,0 +1,16 @@ + backend-test:q + +data_0 +data_1result"Mintest_min_int16Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f4d132951402e4744451b34f39f56b96be8df1d1 GIT binary patch literal 20 bcmd;J7GQN^OGzwAj5qLNV`gAtU}OLQBG>}x literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d800761087c1745239dc94fda9b817fe1593c863 GIT binary patch literal 20 Zcmd;J7GQN^OGzwAj5qXRV`N|fLI5J;0_*?) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f0d23fb9d01ecd774cfafd9a12e9c3e8e6151fe4 GIT binary patch literal 20 bcmd;J7GQN^D@rXc%_;F>V`N}rU}OLQCwc>1 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_int32/model.onnx new file mode 100644 index 000000000..f97ce48cf --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_int32/model.onnx @@ -0,0 +1,16 @@ + backend-test:q + +data_0 +data_1result"Mintest_min_int32Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..136f93fa62e908c938a139eccaad882e1d85a692 GIT binary patch literal 26 ecmd;J7GQH?OGzwAj5qM&VP;@pU;<)BAO-+5r2_8& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d0c6f07990a072dce4a41d7354f28376baff0014 GIT binary patch literal 26 bcmd;J7GQH?OGzwAj5qY+VPs%nV1Z%)G`Iru literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e9ae1d84550cb874eaad7a104b624df2f8f086bf GIT binary patch literal 26 dcmd;J7GQH?D@rXc%_;HXVPs%nU;<(g4FEg;17iRH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_int64/model.onnx new file mode 100644 index 000000000..502e33a77 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_int64/model.onnx @@ -0,0 +1,16 @@ + backend-test:q + +data_0 +data_1result"Mintest_min_int64Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..09588d06e9c75b8fd374d133c5fade204d9ab414 GIT binary patch literal 38 dcmd;J7GQT`OGzwAj5qL-U}k^-CMeAar2$zO0{j2~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c5db1a476e52ed2357b5df916af390b019481599 GIT binary patch literal 38 bcmd;J7GQT`OGzwAj5qX>U}S&*7Bm_FSvvy& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..875ced6bc23241b109fa7a742bd4399356534942 GIT binary patch literal 38 dcmd;J7GQT`D@rXc%_;GcU}S&*CMXT#0{~^>18@KU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int8/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_int8/model.onnx new file mode 100644 index 000000000..8a4158884 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_int8/model.onnx @@ -0,0 +1,16 @@ + backend-test:p + +data_0 +data_1result"Min test_min_int8Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/input_0.pb new file mode 100644 index 000000000..33768d3cb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +Bdata_0J \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/input_1.pb new file mode 100644 index 000000000..26608b19b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +Bdata_1J \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/output_0.pb new file mode 100644 index 000000000..56666abe8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_int8/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BresultJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_one_input/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_one_input/model.onnx new file mode 100644 index 000000000..7e2eb7231 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_one_input/model.onnx @@ -0,0 +1,11 @@ + backend-test:W + +data_0result"Mintest_min_one_inputZ +data_0 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_one_input/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_one_input/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6b1c568f05ba00c536af1dbeab6b908f90d007a4 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qM&VPJ4@U;q*f3=Q@GJ2?bn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_one_input/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_one_input/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..0e49b0c7e907ec550f99340a965d439610708c1b GIT binary patch literal 26 fcmd;J7GQK@D@rXc%_;HXVPJ4@U;q*f3=Q@GLaPMX literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/model.onnx new file mode 100644 index 000000000..f7f7d0ec2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/model.onnx @@ -0,0 +1,16 @@ + backend-test:v + +data_0 +data_1result"Mintest_min_two_inputsZ +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6b1c568f05ba00c536af1dbeab6b908f90d007a4 GIT binary patch literal 26 fcmd;J7GQK@OGzwAj5qM&VPJ4@U;q*f3=Q@GJ2?bn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..e411be9680e872bd654dd1e5ae799963e5edbb98 GIT binary patch literal 26 dcmd;J7GQK@OGzwAj5qY+VPI&m2Vw^h1^__71tb6f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_two_inputs/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3df9a38731ced63293970993e1617fd3839e52e8 GIT binary patch literal 26 ecmd;J7GQK@D@rXc%_;HXVPI&mXJBA(0MP(NA_W)# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_uint16/model.onnx new file mode 100644 index 000000000..b525b4c24 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_uint16/model.onnx @@ -0,0 +1,16 @@ + backend-test:r + +data_0 +data_1result"Mintest_min_uint16Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..e0f4892347944b81da8c3db6ca274ced72ef5a94 GIT binary patch literal 20 bcmd;J7GQB=OGzwAj5qLNV`gAtU}OLQBF6&f literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..04f20f0f0768a707a682cebf1c71a9b62ccc3a31 GIT binary patch literal 20 Zcmd;J7GQB=OGzwAj5qXRV`N|fLI5Jt0_y+( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..df02e202d0a2b43de1ce1bf14d59098d7338f94d GIT binary patch literal 20 bcmd;J7GQB=D@rXc%_;F>V`N}rU}OLQCusv) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_uint32/model.onnx new file mode 100644 index 000000000..6c2d76dd8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_uint32/model.onnx @@ -0,0 +1,16 @@ + backend-test:r + +data_0 +data_1result"Mintest_min_uint32Z +data_0 + +  +Z +data_1 + +  +b +result + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..3320c87965d818acf237e36470ed1283350512a0 GIT binary patch literal 26 ecmd;J7T|GWOGzwAj5qM&VP;@pU;<)BAO-+6F9P)d literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..d4f4b39f38b7ed52194b47a016d740b0666eefaa GIT binary patch literal 26 bcmd;J7T|GWOGzwAj5qY+VPs%nV1Z%)H9`XU literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..65fd206698422715defd4aa620683ba4f09024ec GIT binary patch literal 26 dcmd;J7T|GWD@rXc%_;HXVPs%nU;<(g4FEie18D#N literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_uint64/model.onnx new file mode 100644 index 000000000..1c7e143e4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_uint64/model.onnx @@ -0,0 +1,16 @@ + backend-test:r + +data_0 +data_1result"Mintest_min_uint64Z +data_0 + +  +Z +data_1 + +  +b +result + +  +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7925e46d9fcf048989c650a8a2c1e18ba920e174 GIT binary patch literal 38 dcmd;J7T|SaOGzwAj5qL-U}k^-CMeAar2$#$0|Ed5 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..5c4afccbded99b31dde452bfec098327d94cfa52 GIT binary patch literal 38 bcmd;J7T|SaOGzwAj5qX>U}S&*7Bm_FS`7mR literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..dd299620cd2bb42672bd92a947aaefab60e858e1 GIT binary patch literal 38 dcmd;J7T|SaD@rXc%_;GcU}S&*CMXT#0{~{U19kua literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/model.onnx new file mode 100644 index 000000000..a23f02e63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/model.onnx @@ -0,0 +1,16 @@ + backend-test:q + +data_0 +data_1result"Mintest_min_uint8Z +data_0 + + +Z +data_1 + + +b +result + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/input_0.pb new file mode 100644 index 000000000..3cae306a4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +Bdata_0J \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/input_1.pb new file mode 100644 index 000000000..3fd882d37 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +Bdata_1J \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/output_0.pb new file mode 100644 index 000000000..df3ec96c3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_min_uint8/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BresultJ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/model.onnx new file mode 100644 index 000000000..5cf0aa3b3 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/model.onnx @@ -0,0 +1,18 @@ + backend-test:g + +x +yz"Modtest_mod_broadcastZ +x + + + +Z +y + + +b +z + + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..63db997f2643dd15fc540aa1f9a426aa1486ca81 GIT binary patch literal 133 zcmWN=$q|Au002OeNDLl`%B5&CKB*|>yF0Tbl~~##|3cksLok{=*qS|B>^yn);?>@p TgLfZ39i5zATz&a=^W)b)8D;}% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..6e299f92dea709dd374a149b6d3218e70458f8d3 GIT binary patch literal 13 Ucmd;J6ku~=tn^}GXJB9e00{yCF#rGn literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_broadcast/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4a2cb529c96faafa528f7070617626bab1390da3 GIT binary patch literal 133 pcmd;J=3wGr6<~8>tn#X000KrJW&&bnAZ7t#Rv=~rVi2H}902G20u2BF literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/model.onnx new file mode 100644 index 000000000..15a1e3f9d --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/model.onnx @@ -0,0 +1,17 @@ + backend-test:e + +x +yz"Mod* +fmod test_mod_int64_fmodZ +x + + +Z +y + + +b +z + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..7c7887f4d4b2c3c653e3817cae7d04d0f2c503af GIT binary patch literal 57 icmd;J6JU2@tnf1U^B)4(86bcaO0z)epHO)YC?5a~V-Z>a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..eb8b6e017935ae75e80e77187eec035f37ebac88 GIT binary patch literal 57 icmd;J6JU2@tn@NqVt|0Z{~>?_%Kr!DGeh~TP#ORYei2&$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_int64_fmod/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6299985a6f1f2df922c46684f9fa065377218a20 GIT binary patch literal 57 fcmd;J6JU2@tnxBofC5G+%?cBM(*L1=8OjF$s)q?) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/model.onnx new file mode 100644 index 000000000..03fa86146 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/model.onnx @@ -0,0 +1,20 @@ + backend-test:m + +x +yz"Mod* +fmod test_mod_mixed_sign_float16Z +x + + + +Z +y + + + +b +z + + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..00344a59157805383f1d63127e5d9bcdaa1b8ee8 GIT binary patch literal 21 ccmd;J6X0@UtnlLTJ!0(6;OgsQe4N1p04y#9-2eap literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0a417c09ceff0d20ec9b88ed21d5af770d03fb8f GIT binary patch literal 21 ccmd;J6X0@Utn}hBb~t;8!Nd5#StkZp05WR@%m4rY literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..bf93e49d210f7b713267e5e561e94ab8a812f30a GIT binary patch literal 21 ccmd;J6X0@Utn%V%SeIbN;M$; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/model.onnx new file mode 100644 index 000000000..1e61f440b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/model.onnx @@ -0,0 +1,17 @@ + backend-test:m + +x +yz"Mod* +fmod test_mod_mixed_sign_float32Z +x + + +Z +y + + +b +z + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..327456fb2229b15bb0284b0b752b1f66730f3f00 GIT binary patch literal 33 mcmd;J6JT^=tniYUHM8?TTG}%Q28IO=K(+&reSm?1!4UwifD1YR literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..c701f04255a2b8c90477686019c7df2faf617151 GIT binary patch literal 33 mcmd;J6JT^=tn`vdOJj4GH8b)60|SF2kbMBic3@yw-~a%IR|y*c literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d6c064b6808da798f82c999b94b93883de18cb68 GIT binary patch literal 33 mcmd;J6JT^=tn!jzID2OAfiq|97#J2f0NJ)c_C5v%2L}MU6AX6% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/model.onnx new file mode 100644 index 000000000..2b392f270 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/model.onnx @@ -0,0 +1,17 @@ + backend-test:m + +x +yz"Mod* +fmod test_mod_mixed_sign_float64Z +x + +  +Z +y + +  +b +z + +  +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..6381f6fded3b99c247a50447131ba748e506e5e9 GIT binary patch literal 57 ocmd;J6X14Ytne~01_QwZXU~9ui~|E0h&VvS9iZX|AmR!R0M14bV*mgE literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_float64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..59f28eae90cf8989d94862ec59b2278df0dcc39a GIT binary patch literal 57 ocmd;J6X14Ytn@NCdjtnlLb^Pio8m4Suf=YI|c05Kf}KmY&$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..f0f16f43672aa7a63f5a6ae49b528328355540da GIT binary patch literal 21 ccmd;J6JT{>tn}hxV)*-?gW=zQW(HOU05K*7K>z>% literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..80ac5b12d21f69569ea90f0839daabbb49bc249a GIT binary patch literal 21 ccmd;J6JT{>tn%VvVEFf+m4ShQiGi5`045j%J^%m! literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int32/model.onnx new file mode 100644 index 000000000..098d80ef8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int32/model.onnx @@ -0,0 +1,16 @@ + backend-test:^ + +x +yz"Modtest_mod_mixed_sign_int32Z +x + + +Z +y + + +b +z + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..646a577416964ff2cc5f6fafeaf668916e06a0e4 GIT binary patch literal 33 jcmd;J6JT>a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..eb8b6e017935ae75e80e77187eec035f37ebac88 GIT binary patch literal 57 icmd;J6JU2@tn@NqVt|0Z{~>?_%Kr!DGeh~TP#ORYei2&$ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int64/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int64/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..99c107e718bb9c2fc43bf9b182aed53851ad7984 GIT binary patch literal 57 gcmd;J6JU2@tnxBofP#PjA%GPo0Hv9rG&7V20BNQPUH||9 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/model.onnx new file mode 100644 index 000000000..d15d9b1e4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/model.onnx @@ -0,0 +1,16 @@ + backend-test:] + +x +yz"Modtest_mod_mixed_sign_int8Z +x + + +Z +y + + +b +z + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/input_0.pb new file mode 100644 index 000000000..06afc2e22 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJüù \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/input_1.pb new file mode 100644 index 000000000..8db801619 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJýþ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_mixed_sign_int8/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..129a893b2229db20fb5f0fd0e543121d5aa9703a GIT binary patch literal 15 Wcmd;J6JT~?tny-G_{Yk?#0&rsgaS7J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/model.onnx new file mode 100644 index 000000000..87a2fac04 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/model.onnx @@ -0,0 +1,16 @@ + backend-test:T + +x +yz"Modtest_mod_uint16Z +x + + +Z +y + + +b +z + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..ebeefafac98fa926f5fb106af7471e6a3ec9b7e6 GIT binary patch literal 15 Wcmd;J7GQB=tngxEVPI!qWdHyRfdM-J literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..1aacd1c70a476a69e5aaa29c4d0f8a57eb6a2be5 GIT binary patch literal 15 Wcmd;J7GQB=tn^}IVqj+AU;qFMbOAX4 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint16/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..2397054539f36d380f8a7f1cfd6c6f370c62302b GIT binary patch literal 15 Wcmd;J7GQB=tny-GU|?imWdHyRV*xV& literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/model.onnx new file mode 100644 index 000000000..df074b48f --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/model.onnx @@ -0,0 +1,16 @@ + backend-test:T + +x +yz"Modtest_mod_uint32Z +x + +  +Z +y + +  +b +z + +  +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..d04eb642d708900059b92405af243c5376d0d4d2 GIT binary patch literal 21 Zcmd;J7T|GWtnlJtVPIfj2Vzzr1^^SE0Z9M= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..ecd08b25b3c352baf37d0ac65463207c5ee3704e GIT binary patch literal 21 Zcmd;J7T|GWtn}hxVqjok24W5%1^^R+0Y?A; literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint32/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..f1e7b2d2d9279311e1ba8e2bfa35c59b621c3d2e GIT binary patch literal 21 Xcmd;J7T|GWtn%Vv00KrJW(8sZ6I}s8 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/model.onnx new file mode 100644 index 000000000..9125564be --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/model.onnx @@ -0,0 +1,16 @@ + backend-test:T + +x +yz"Modtest_mod_uint64Z +x + +  +Z +y + +  +b +z + +  +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4333af7002c9fae14b63dcf318924d81473a652d GIT binary patch literal 33 Ycmd;J7T|SatniXxVSoU3D9s9`0VELtRsaA1 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mod_uint64/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..39e586b6bb12a74ac47e7deccf84529e0b1e70c2 GIT binary patch literal 33 Ycmd;J7T|Satn`v#Vt@ctny-JU}OaV2e$z( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_momentum/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..674a5faec93209cc1c971452ed160a7d119e099b GIT binary patch literal 333 zcmd;J7vf1uOwLZtOVKS!EiSQ|!^Ab2k&7{ii!p?YF@lTHor^I{h&3WUFST5VH4H>4 zaroxvrskED=4$bCu_opeWF(3j8yDLzU}V(d<6=olElCtTd*+NSh%d~=lAE8Bs>D%T zl9-p0Sd_AWky%TMOCT@5C^tSiKQ%2aGdUAzmT10EvlUQ-l|*8uUVdI)gFH<6_}p6k-5zLckn$Acr65ZXqr%4xkJR7ZV2) hNWdLkAPiX`Ntg@jLnLh=L9l<3RXWLV;dG$@BLMe_O#A=< literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d0483cc61 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BRJÍÌÌ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..54656de61df113af74638d4e31110b7cb8c8c9f0 GIT binary patch literal 15 QcmWe&cVZ0j;$VOR01J-+0RR91 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_2.pb new file mode 100644 index 000000000..15244fd4b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BXJš™™?333@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..439d577ffbbfb621346b9f41aca167107861274a GIT binary patch literal 17 Ycmd;J5@2*R`|I;j`!g`}B4txtODa-Y zr8_iouD}vSl}Aaz)@z<{HOnr@hpz_smz2AO5bthTu{X}PuB<2*Ts)JD=KoRNJsstn zO!6{gPe*DSG6oYPa?qHCHWOv6WiZJwIVPI&m2LKBq0rda? literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..eb51654d455357db15a81c2fc6a46a89d28f47b2 GIT binary patch literal 18 Zcmd;J5@2*ayRs1VPI(34*&}q0%QOH literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_5.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_5.pb new file mode 100644 index 0000000000000000000000000000000000000000..62e5b3a8f7515918af3f49d0b6536a2fcea0da0b GIT binary patch literal 18 Zcmd;J5@2*@-XybVPIfz000T20cHRI literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_7.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/input_7.pb new file mode 100644 index 0000000000000000000000000000000000000000..cb33a3de6635f4b8e576e11be4af29c88323dfdf GIT binary patch literal 18 Xcmd;J5@2*<@-Xt^U|?u)0AhOp6S@Mc literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_0.pb new file mode 100644 index 000000000..27ed979d5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BX1_newJ5ïh? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_1.pb new file mode 100644 index 000000000..bb3ee0eef --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_1.pb @@ -0,0 +1 @@ +BX2_newJ^K8?q @ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_2.pb new file mode 100644 index 000000000..b3cf24e55 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_2.pb @@ -0,0 +1 @@ +BV1_newJï§f? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_3.pb new file mode 100644 index 000000000..84f477966 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_momentum_multiple/test_data_set_0/output_3.pb @@ -0,0 +1 @@ +BV2_newJ•C3@nÀ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mul/model.onnx new file mode 100644 index 000000000..12eddd8f5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mul/model.onnx @@ -0,0 +1,19 @@ + backend-test:e + +x +yz"Multest_mulZ +x + + + +Z +y + + + +b +z + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/input_1.pb new file mode 100644 index 000000000..1424d7297 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJð^&,¿Z¸¾[*P¿ÔöÜ¿3¯5>;¶Í¾WªÐ¿Ìñì>µDh¿²ÄT=®¥:?>âב?Æž¿¹ÿÍ>·O/¿ì^¿~/¿ÐƒŸ¾¡ f=¡#•¿‘œf?Okî>¢£Ä¿ ¾?¬ò?@â–?7>8¾l‰¿Fø†?5mξyœ? FU>z?¨u¶>ûá4?G,õ>ÑÍ> ñ?^ƒ¬¿AŸ¢¿b*x?è(–¿”Èø?ÞÅÓ¾3Y?¿÷"ö?‚½?, ï?‹òg?Iy\¿}ô?½7‰¾ÈmM?r?÷º¾N4?½l? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/output_0.pb new file mode 100644 index 000000000..2c2b54e46 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mul/test_data_set_0/output_0.pb @@ -0,0 +1,3 @@ +BzJð8×—¿³T¾L½K¿”wÀ.§©>¢ É>&@Æ¿ús½ºË¿=ˆ¹®<&×= @>ü]?xÚ¾æÞ6>Öüi¾yˆ¦¿=6ó=ÁǽÌ|D½`>@e»?!Î>Qð‘?ž0X@Þw0À[ï\=ó =½Ò¿°QÆ?Õá½X°ì>[W=¾tž÷¿nëý½$?â=W¦Sÿ<á>MSÀ—~÷;Ãû¯>£ +=¾ @½´oǾƒF«¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/model.onnx new file mode 100644 index 000000000..00d063f19 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/model.onnx @@ -0,0 +1,18 @@ + backend-test:c + +x +yz"Multest_mul_bcastZ +x + + + +Z +y + + +b +z + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/input_1.pb new file mode 100644 index 000000000..dcbe531c4 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/input_1.pb @@ -0,0 +1 @@ +ByJ^&,¿Z¸¾[*P¿ÔöÜ¿3¯5> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/output_0.pb new file mode 100644 index 000000000..966fee747 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mul_bcast/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +BzJð8×—¿³T¾L½K¿”wÀ.§©>ÿ<(?'箾 ü=v6>Ü2•=l`ƽÜ¿øk¿(W¾9I¡=šÄe¾ÿ… ¿ÔÓ*>~Z +¿-¾™¿Û? ¦p¾ò3¿ìý£?0Î>o^z?¤Ç†¼aÜ>;X)ÀÒz…>¹dÕ½™; ¾kÎ8?°×Z@?×|½ÚR×½W|â¾@Kz¿³++?Ú±[½‚4?Ø´?à—±?—†WÀ1¹½1Ô–>í æ>½Ø!¿ŠN2@9›½Š'?bs¾ù©Ô>Op@BÙ£»}y“¾|ìüWÛ{¾—)Œ?σ½ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mul_example/model.onnx new file mode 100644 index 000000000..8f8bed98b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mul_example/model.onnx @@ -0,0 +1,16 @@ + backend-test:U + +x +yz"Multest_mul_exampleZ +x + + +Z +y + + +b +z + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mul_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..62e4e87e30c2908b48e0e912c49f073faf7953fd GIT binary patch literal 21 acmd;J7GQK@tnlJtU}&&sU|?_nA_o8)lme{) literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul_example/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_mul_example/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..a760307aaa9d741605ce33d06bfeb54d3669be86 GIT binary patch literal 21 acmd;J7GQK@tn}hxU}$h)U|0ae2OIz(Yy-~# literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mul_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mul_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..132af70732c919349edf5281c6cae4ffb1a0744b GIT binary patch literal 21 ccmd;J7GQK@tn%VvU}$h)U{G*mV3^O#D321iVbEmYt~MH^a!palmtY?;W_ZW7S#6-9r_PrW;OA0-OP} T2Uud{WtYoP(we(dQ*GUTv|y_;lL{d#?g&%>R3u_)UalEt literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mvn/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mvn/model.onnx new file mode 100644 index 000000000..54494cb76 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mvn/model.onnx @@ -0,0 +1,15 @@ + backend-test:g +! +XY"MeanVarianceNormalizationtest_mvnZ +X + + + + +b +Y + + + + +B diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mvn/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mvn/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb4a0b06b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mvn/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ +BXJlNX??šo=¦èî<Á>‚Š?9žK?2îp?ldt?š5>ç€ì>t”‡>¸,?øjˆ<[î?Ìl?Uäx?¹õ=W¾Ó>B¶i?â?š½Q?]HI?î¨ñ=©F1?³‹ +?íÞ™= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mvn/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mvn/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b8725733a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mvn/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJlëd­?á;©>:ÅÅ¿r÷š¿d¿ú™>DüÂ>6nQ?çÐ[?:“¿#rc½vyH¿E3U?>  ¿¼·,?ÿUD?§Pi?à»Ò¿ñ¤o¾²úÍ?ÛÛ>Ö2¥?¦Ï—?úðm¿­º“=msþÛÔã¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..88223e3294cfec33b07891437d1fb72b60c42fa5 GIT binary patch literal 1663 zcmbu9&q~8U5XQ4j#4r@Bi+J&tV?pqy_>WZEW2LkrX+f85c7t*f3K}jw7yw6znopejaL!qfkku9s4*`iRMaI*I+5*gH%@S3UMsMFx&~T z;GFKE^rIvggleHYiypRe`5q9D?qFWTEIyWrYq%xXoRDRBCV*Ck zLR9G?rlW?(l2OWIDIBvEUc)_^!YNqD0j7{&bvzL$CWFMmycv#v$NWkFhkLG%%%5Yz zt>A2B9kY}6;TAXOnF!s+47zh#cdX7R)^PXn*U;;No3O{SFWdTL@InCF1{85ATEoC= z#i1{gWNNB8MzbaaJR-m1HwY+R3ME~~tOprg{bT>Vjofb6Va+DA0wvr0aY%m}>@Er( Hl`8NKh|gf{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..eb4a0b06b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/input_0.pb @@ -0,0 +1,2 @@ +BXJlNX??šo=¦èî<Á>‚Š?9žK?2îp?ldt?š5>ç€ì>t”‡>¸,?øjˆ<[î?Ìl?Uäx?¹õ=W¾Ó>B¶i?â?š½Q?]HI?î¨ñ=©F1?³‹ +?íÞ™= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..b8725733a --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_mvn_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BYJlëd­?á;©>:ÅÅ¿r÷š¿d¿ú™>DüÂ>6nQ?çÐ[?:“¿#rc½vyH¿E3U?>  ¿¼·,?ÿUD?§Pi?à»Ò¿ñ¤o¾²úÍ?ÛÛ>Ö2¥?¦Ï—?úðm¿­º“=msþÛÔã¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_neg/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_neg/model.onnx new file mode 100644 index 000000000..26bf4ade7 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_neg/model.onnx @@ -0,0 +1,13 @@ + backend-test:I + +xy"Negtest_negZ +x + + + +b +y + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_neg/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_neg/test_data_set_0/input_0.pb new file mode 100644 index 000000000..bae0ffd63 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_neg/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BxJðxÌá?háÌ>“Žz?Ëj@$ ï?â.z¿ÿ8s?bý¾hdÓ½ø9Ò>(€>¢%º?^ÓB?À0ù= Bã>]ת>ü=¿?R¾iJ >¦Z¿/d#ÀŒS'?±K]?‡þ=¿©C@¨(º¿Hm;= ­?¾2Ä?ó¼?Šª>…žÁ>íEc¿½Šý¿‹!²¾ò >*z?•ç™?³OƾmÇš¾ü6†¿&õ¿gÚ¿³ù?‘x¿FKྙ[ ¿œ G?4”ο—ØY¾L=e¿Æ> Ä¿õ—¿kÞæ¼QNÛ>.:ˆ=™Ýš>ïb"¿6¹¹¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_neg/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_neg/test_data_set_0/output_0.pb new file mode 100644 index 000000000..7eddb2758 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_neg/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +ByJðxÌá¿há̾“Žz¿ËjÀ$ ï¿â.z?ÿ8s¿bý>hdÓ=ø9Ò¾(€¾¢%º¿^ÓB¿À0ù½ Bã¾]ת¾ü=¿¿R>iJ ¾¦Z?/d#@ŒS'¿±K]¿‡þ=?©CÀ¨(º?Hm;½ ­?>2Ŀ󼿊ª¾…žÁ¾íEc?½Šý?‹!²>ò ¾*z¿•癿³OÆ>mÇš>ü6†?&õ?gÚ?³ù¿‘x?FKà>™[ ?œ G¿4”Î?—ØY>L=e?ƾ Ä?õ—?kÞæ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_neg_example/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_neg_example/model.onnx new file mode 100644 index 000000000..e65786e29 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_neg_example/model.onnx @@ -0,0 +1,11 @@ + backend-test:A + +xy"Negtest_neg_exampleZ +x + + +b +y + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_neg_example/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_neg_example/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..a24b07662fb1808f13baff3e153c62b9e51659b4 GIT binary patch literal 17 Ycmd;J5@2*@~ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_neg_example/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_neg_example/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1232f9a9e8802d3ff2a19822d40c1d23161e0c7c GIT binary patch literal 17 Ycmd;J5@2*4 zaroxvrskED=4$bCu_opeWF(3j8yDLzU}V(d<6=olElCt*U}ymIg}GRA^HWllIP!pI zrxxXxEnsBUlHwA`%P-1}PtH$GOUq2o1eztvbzRv8Xn>VOVy0exUS5S>K~ZX1W@@=! zNl{{EUS?jpkQm5$K>H!)#OFfY5XB92tPmR)3kRbR1Bep>=CA`f{6G%~adB|~WmveF jIG8{J?&tzx$O1{iTu`qfX#)v@J&vr>NrnrjQw10Sj`mL{ literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_0.pb new file mode 100644 index 000000000..d0483cc61 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BRJÍÌÌ= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..54656de61df113af74638d4e31110b7cb8c8c9f0 GIT binary patch literal 15 QcmWe&cVZ0j;$VOR01J-+0RR91 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_2.pb new file mode 100644 index 000000000..15244fd4b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BXJš™™?333@ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_3.pb b/third_party/onnx/onnx/backend/test/data/node/test_nesterov_momentum/test_data_set_0/input_3.pb new file mode 100644 index 0000000000000000000000000000000000000000..439d577ffbbfb621346b9f41aca167107861274a GIT binary patch literal 17 Ycmd;J5@2*QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..61a5b90534100d05a57fe2c835bc6513528a368f GIT binary patch literal 38 dcmd;J7GQT`D@iO$Pc8A1U}S&*7AVaOr2%7J16%+A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC/test_data_set_0/output_0.pb new file mode 100644 index 000000000..390025f31 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJ ¦7¿rRľçól¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e672a8bd4b129bd0a98557dceefa5108d5194879 GIT binary patch literal 1453 zcmb_cv2MaJ6s$u++y|n_tyJcWkveo`sZ@$8RS_Lf7nal{4~R%@N*sjv5T*|NN`I!` zQ755nba4hte$Uq3>HN-=vi6imOBC^)!c6t|Ets+42Y{u7TA27WIb)O1z!Z}CN!GBV+7*ZYiJ+f z#{!diKA}N9=`#{jg;vt#^b?%` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..16567c328 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJ<  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘= \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..61a5b90534100d05a57fe2c835bc6513528a368f GIT binary patch literal 38 dcmd;J7GQT`D@iO$Pc8A1U}S&*7AVaOr2%7J16%+A literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..390025f31 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NC_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJ ¦7¿rRľçól¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4f6137dafcf754c6ce56d5c0eb8b1990d81dfe42 GIT binary patch literal 185 zcmdYxO({(-$;{7FV#!TS%v-?7EF=grFg`CQ2c$jT z&pE{~N*ZdkkPw#u2cr-V7ZV3F5VHa?Q%VjPh literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/input_0.pb new file mode 100644 index 000000000..91bd67770 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..8f1eef3454c447edf88b903b92b57011011ae3d3 GIT binary patch literal 64 mcmd;J=3o+FcVa6^EJ{x;@iJg$fB+cH1m&|pX&4{MWdH!Xumgku literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ab2f5e6a2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJ»¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..719ace1063c2786357534176618df009b3c916a5 GIT binary patch literal 1664 zcmb`Hziz@X5XN!%=UyX<+y%8;#z-Al*;+(dQlu7jVTnw94JpB)#6gIsVd$&$Df$H6 z`UrIhu+haCEahbTeqYY_9i_~k@?efq+$l^|@5hE28;&sKDq5qLgkChqIGQDi@RBt3 z^FzLj<2VmSebM!Cv*c2s@ZT~Ss3?&^BK4Uqt`dj#^KUMddkyt9k27?el(ZWzsq9D% zLiSh!DUtXOh~%ItyEg*y4W{Q9%^uk^J_$4wUxlc^9L78&y{9)R1UVP4GX2O9w+LSZ z>XBS#3Q9$=XCuLTMZRvj8LoVcae-1ft>Hc%6k+OKLXB^tw4=*y!Hz)rNW*?SnnE~L zT@CoPz^uPd`JgOE8VV|`tqoUJo>B_l6~d{H<0wG*CWgw2lIx6Rn0R31i9(A0x90fZ z-FGM_Bdg`P9e6>J1^9$qx>rEwh)WSI(vF_Z7P~n==_j{`5yBX>DPcBPw5nHKFKf~{ cjzQJ}n>HCe>{`QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..8f1eef3454c447edf88b903b92b57011011ae3d3 GIT binary patch literal 64 mcmd;J=3o+FcVa6^EJ{x;@iJg$fB+cH1m&|pX&4{MWdH!Xumgku literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ab2f5e6a2 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJ»¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1da310f0dbc507ca001e1a2ea2ec5ddde9a8962d GIT binary patch literal 209 zcmX|*u?~VT6h&Pq+k9U7o7_#(Cjit%&!4!=$?#^Fpi_ns?+ z4D+nGq0u{sjXS&~D~KH4rIq|(?L z6&a1MCF>a9#xSi>w}m5XHvSzm(=kuRgGHID8a7pW(tAa8UjLL*!dx&J0vBFS(8JHm a|B(nnF_Gez@;rj?H8}>qZ;g(8KKlTvoi&UA literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/input_0.pb new file mode 100644 index 000000000..91bd67770 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0025f55b9ef21ba519deacd2a4a28b7cf71e608f GIT binary patch literal 64 lcmd;J=3o+FcVa6^EJ{x;@iJg!fB<=c(D+a;0|2{F1A+hm literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/output_0.pb new file mode 100644 index 000000000..99215cae6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJ"Ð ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..12715a249bb2eb068df79a5b7eb8c135caab035b GIT binary patch literal 4701 zcmcIo&ubGw6z*&`&E{F!FoFcc%i<~Ep&%Z55lo9eNUJuMLJtm;>}xt^Gn-~+YwW3i zN{`~ns~3+7f=B-Xj~={w)7jl5YSmVlNnjyEHuHV+-uK@7c7uQ}b$GXrGP9u#) zp-&%dVUKHZgsr645`B!tL6StRL@Act#AF=D*XlRC!8Zc)fr2?` z(Z1#fT=m29#$n21_~6;sbhaPNOI_|&_1IQbdc>vLPey}D8K|(ldw?T^j|9p>4pR;8 zG3XOp+Bq|3=AhxqFvbB&9WLL^*BixBH7tS`TUPQ zcXB)HbMHNHdK_@y?_5WPZrbMWIf~wao=mZ6XZu3zi>PQ5M)~%7&z`C5pK)?RsVoj` zT=qGVmlo)Rv_pj4kIy8 zbz@>YcuQQz)Y?-1RyypW1H5zQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0025f55b9ef21ba519deacd2a4a28b7cf71e608f GIT binary patch literal 64 lcmd;J=3o+FcVa6^EJ{x;@iJg!fB<=c(D+a;0|2{F1A+hm literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..99215cae6 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_ii_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJ"Ð ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..52c2f55b1cfa7dd8ca34d74cb35a00d9d9cfcf29 GIT binary patch literal 269 zcmX|6L2kk@5UfK;-Bko=#eu3laRZ41SB~@=@qk>cfLCUPu~A}Lp2I7-Qiq1FG+Jp# zvoj+l=G$s_Ag33Bny|VFu+V3BItR!?RU3-?huG``rq(yj^nF973j9rlHw7Qa^4@!0 zL~8yCIUDC|QtUKcCimxvt4QW!c&kaDcY(c|rbnvWRrGMy+A3#l`&@0l^is8y`tww- zGgHjvM;8ncMp9r7iR?x6BeHVxjEe)vQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..936a645875f20ac55d2ab2ebc1bd19f7185bb5e7 GIT binary patch literal 161 xcmd;J=3oï×Ý>5A?eÍÊ>Æbe? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ba805e464 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJI¤â¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4df302ec2d0b935c5f1feb91c055a94fa09700ed GIT binary patch literal 5957 zcmds5zi-n(6z(}r;y$XjIuMEklgCIP6(NR>l!~QvAVP>raJs}V=@I*!#^(~cz{e*t26M#7S%T%61IzW2U+KkRvYp(}es)WH>liCI0k z3eOoAn>dh0?czo}*ib_Z)pi^Q8*!3|>{mjEVVEs8*Mb!hq156Ds=>B>Q0x;*37m|i z4loe?RQHUEbuZR-?;eh0-&@N*OKsZcp}s4_6x&UYEjQY1ZlAgEj6Wi@AlCRB16XFj z9)Cb$fSh3RE9~Yfn__=r&@gg5Km&9}@PLHhEao`@fBv3Mc2dMWgqMsDNHB9*sez8i zD3n#)YNZIxkx5MzrMbc$`D@Hh>}-V>DjPQ*?UFlJ3pdw(dNC-|j2-~$-RsuteP#b^o_H@0T zFO&8;aOFfLEt~uuc)>W5nDVpF5&bZh=14iZSe7HO<%s$2oV~Js;|=LCsfH$07g(N< z1nw*iiP_01Pt0cq{{o(f~{ zR6T?*cFxGhw#rgJO=DBco<;6A7>)c!p7`O_|BzR!@)}WPJ{=yhQs&Zk4pG%O3zVo6 z&1QPuB`HY9SoqCOF-pI6h;mS#q-~C%bQR6SJvBYmxyS5uI&;XKM%#fyR!N*_W~pQ8K>Ug7 zN76W2bfUK56ie=A0`+UR)GojF_wS##E)^3l=V0Fg@&$0bn!W4xZfv#6m#use7Q80+ hil>dO3uSx60X)0U&GvK`VQLL;fNQ^-yXh=1{Qw}U02lxO literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_0.pb new file mode 100644 index 000000000..ecdd53bbb --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJè  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ>Õs‡>.4F?‰Œé>ã„?í™<\?N²?cï?y™q?Æ‹.?k¸>§Âß>õ—2?ü®v=9±*?ì®+?‡nW>A>Ó¡>L8º>jø?aà>}?ßüÐ=ÊãU>R.%>2'?p¯>IÀî>´Jz>ìÈ">] â=7(?Õ >ãLI>ŒÉ¼>,R? ÝÆ=ƒV?>ÏÄ=?ùy? óï> z?(×?a@=?aƒ =Ì>)ö=°Ÿ—>…'ó=±Î¢>GÔ>Ã_ƒ=ÚE1?Ë ?"á‡>–ó?âcÀ=;q?[æm? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..936a645875f20ac55d2ab2ebc1bd19f7185bb5e7 GIT binary patch literal 161 xcmd;J=3oï×Ý>5A?eÍÊ>Æbe? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..ba805e464 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_mean_weight_negative_ii_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJI¤â¾ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7d16e9f2a281c6ba4b0af49b6137080cf9b7d0e1 GIT binary patch literal 222 zcmX|*y$*sv5QODV&kaGcp}^QtnpoIcYD;(k8p6*8F5sPkLtn?Y@wGe@Ehd}n?`HsX;>Ie!I|i~3D1&Cb27X91fLn`g2^l`N6SpZUq5=_vK6w~ aHPhg~2!LtMo|wXe&pup&t$&NN>2Kb36*oWt literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_0.pb new file mode 100644 index 000000000..91bd67770 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_0.pb @@ -0,0 +1 @@ +BinputJx  ?¦7?³N?w} ?HéØ>QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..8f1eef3454c447edf88b903b92b57011011ae3d3 GIT binary patch literal 64 mcmd;J=3o+FcVa6^EJ{x;@iJg$fB+cH1m&|pX&4{MWdH!Xumgku literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_2.pb new file mode 100644 index 000000000..64acbc99b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJí™<\?N²?cï?y™q? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a6fd09257 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJ럿 \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..863856b13c43e0b7a6ffbdee20b9ed4b5cb29dc1 GIT binary patch literal 2641 zcmd5;v2NQi5Dg_+X0C=~uo(<=szw1FvSw^rw1Z=yH3Ae~1Vy~sgk{RLNXN);F&Vm)l57Jl&}KOU9SDdL$#-|}-J>`coy#X;H{QQI<)yDA9SISCiqHJV~xlO{ONn^&-_0W%AkT%&0hx01J)(z+)Aj67MPS(lwTUgKD3$8tN;9(4@-= z8X&_IBZ}yEd^O=khZnm1ViB(q9vHNgURVSBKoXxQ!mr~?oJyy-OfbheY7=$e)$_N_ zw2YrYkgiqPcT{+A$6#;BGy>lCl#F~=BDnE^q%U^I0&!o{gxC0lYg^*uC^PbG}8wDaijBTAd$$j;*<;4{R9RP(a$E^`lluzl3{f}+O1 z^;q&$BKMRWI55~x4kDE<QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..8f1eef3454c447edf88b903b92b57011011ae3d3 GIT binary patch literal 64 mcmd;J=3o+FcVa6^EJ{x;@iJg$fB+cH1m&|pX&4{MWdH!Xumgku literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..64acbc99b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJí™<\?N²?cï?y™q? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..a6fd09257 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJ럿 \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d405d7db065030726dd5cafa97ab0acc0d623c79 GIT binary patch literal 246 zcmX|*!EVAZ5JYQ}1a}odv~U1%F4lg{gpa2?O`<1 zj%Md6h54~=&g9HXpgz2Q3uqu^_i+u7g}Sp8{YGq00h8AE{dRpITL=E6(%X{H)bh!D zQ^shwfSj%K9cgxkzE0Vq1xTW1UJK)c5OTS)Q5Mo*S{;8x!Q~b wh)^hjIY>2$N~2`8`s2bGQY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0025f55b9ef21ba519deacd2a4a28b7cf71e608f GIT binary patch literal 64 lcmd;J=3o+FcVa6^EJ{x;@iJg!fB<=c(D+a;0|2{F1A+hm literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/input_2.pb new file mode 100644 index 000000000..64acbc99b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJí™<\?N²?cï?y™q? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/output_0.pb new file mode 100644 index 000000000..79596bce5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJz( ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3a91a654077e53adb15ba58c9fe7ad5233a2fbe4 GIT binary patch literal 5189 zcmdT|J#Q015Y3&>_GO5YXhFyl-H8HOqKJejQYJ(cnDAjB5D=@2Z{nb zM~hT;Qfcnq!z>N_)#7_7b@Mb-2VtCJv+g^KwWc$(?|87wZjxfA68`|{6p%5yMg$oS zQT-0BzU++9-aAm!Vb(>#d@1l&L#3Ou;Oewd z-*;Si<$_g2ut#390+NKP7gX1F^Du^QE?I#nwgt;{v_`}GL^RY{DAjhFCF3koL3LvX zGlVY=RE6y48mvLFheU@M*~yJ28_PMyn4r|b{MFHVtz4?+De%IfPz|FuE<9r!MA$z? zoNvczsDCNhXD3n)M#`PQn=zk4TE7!>*w#_NW_%bD1>m^g^C_(-bpGJLzX2rc)Fv&Y zku>8ecvAtY9&oxd(08(AMwWSH8ddroi9@s$MM1S4iw?p^)5ew!zs0IarP$-iWL!2i zCjFpR)=c>Nzf>rDz918)qi*I)ldAO6C9AQ=!H~5|#R$jl5EbkLmIn3qc#eARl4W{X z;7nf9I)G}_8kv{N(hp{2nY!Qw-8gp$1FQs(-5{bw88A~vE7$WFj8;=`OlzsilVJ8X zMtKL@dD2_}zlYe5M4}p|!E@oWW69rCt@wcyF;~@G?q*~1UW(1boL^`D_+NMP%tY!LfN!4jif6XwVT8|W M;F;fMR@}vfADtS$QY%?n à>~®J?¨e?^k?çól?Z{‘=Ùp²= ¡¥<“&U?H5G?¹^?»†z?¨•L?Gì>ÃÐG?Ý9ò=ÝÑ#?4Ë>ÒÕq?Ú—?’NÔ> \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..0025f55b9ef21ba519deacd2a4a28b7cf71e608f GIT binary patch literal 64 lcmd;J=3o+FcVa6^EJ{x;@iJg!fB<=c(D+a;0|2{F1A+hm literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..64acbc99b --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJí™<\?N²?cï?y™q? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..79596bce5 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1_weight_ii_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJz( ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/model.onnx new file mode 100644 index 000000000..d75415b33 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/model.onnx @@ -0,0 +1,21 @@ + backend-test:¸ +F +input +targetloss"NegativeLogLikelihoodLoss* + reduction"none test_nllloss_NCd1d2Z +input + + + + +Z +target + + + +b +loss + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c16e700ed71be7000c0e6f548661588382495808 GIT binary patch literal 449 zcmV;y0Y3f+0|*8P1`q*41Z;0}b4suSPO==o3omls7aW<^_Mcg zJWFK1nzDAka#F;;ey&Qt+C?$Hb*xUm=ksj8mh%O_i`*o?v5GRkmOLB3qu4mVJIh_a z$GdsIIAJ%xNx<&Dl84*Aso*-lvA-|AG|Ljc($#UlVudZg1-qBLJ@6*K;o{uBiHzyK zKyV zqT|cHF9b)w1r%t%$p1*cGgCdkd>E#^`}%^t$;b}?m`K_y>BkR`BD_VG17*A+mSF(TQ%1pp4et_EJem9cQYa%-}_ZJD^f`G@GfZW=ScFy%GBk4+uF z8R?b2;Ky~o#=zCShz@waY5st|ERpKIy-F9qWWjg8%g?^P2!rgsZe$a`%NQm?*`2 zDoMhuDU@*>XGy=yJNz=l<%~&=JbX-Lq=k}^lBR2gbLG3;?3+m)9D%)Haf*TC60Z@E zy*E+^LGLPIDTzB!Btvo9Es0`FO#Y%cS0tx=5NK#NAESmUaI{}i^Y-5qqWt{_nY^Tk zD}+x1wve+_L&Xp}C@DHu6`B*A;5@__pHXW6;5N^1iZltDP-jb#oSL;;@J`@Aprx;K zV-xPz%ue9jg0lC%oe0&rw6v(g@WzDIO{!@19nO7w5Q_-mm6TRjEZ@wm#@zL6p6?6_ zL(=xH$8~tVb}K!BW0z15EVpLDHqppp*xtN6l!E6vw6*TYtD`f>X?czOu3cN+;SWBv BDO3Oe literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..c16e700ed71be7000c0e6f548661588382495808 GIT binary patch literal 449 zcmV;y0Y3f+0|*8P1`q*41Z;0}b4suSPO==o3omls7aW<^_Mcg zJWFK1nzDAka#F;;ey&Qt+C?$Hb*xUm=ksj8mh%O_i`*o?v5GRkmOLB3qu4mVJIh_a z$GdsIIAJ%xNx<&Dl84*Aso*-lvA-|AG|Ljc($#UlVudZg1-qBLJ@6*K;o{uBiHzyK zKyV zqT|cHF9b)w1r%t%$p1*cGgCdkd>E#^`}%^t$;b}?m`K_y>BkR`BD_VG17*A+mSF(TQ%1pp4et_EJem9cQYa%-}_ZJD^f`G@GfZW=ScFy%GBk4+uF z8R?b2;Ky~o#=zCShz@waY5st|ERpKIy-F9qWWjg8%g?^P2!rgsZe$a`%NVqv@nYV^R>Z}(dh@+` zoQvp?9nWag%wg$PZw7m4lDXa-gf1&IIuYcyEGNS)>des{Q>#-tV@@Y)Ra!;U9z>*# zEl`qC_#Cho^QH;33skqGBWotX1vB$vzL?ivq{;KTQ*JkEp_bBE`9RVqC;x`51xd6U s|JH~;B%FyDJnmOCE5e%H=)Y4y%v&P*U3}9+2fph?2tj2x)?VEG04R1r3jhEB literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/output_0.pb new file mode 100644 index 000000000..1af101da9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJƒ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e3d7ca53c07ef16e1249bff498f453aee778a4c7 GIT binary patch literal 6146 zcmc&&PiqrV5bxV;lFeA!@RZVnAnY+9QW23}1Z(k9doYO5%VV3JCeQ4?O?Thcw5NjD zqke^c2gQ>IJ$m#Dh$k-|y!ZipyPKq1|5Su|4J>5YO=f=celzo%@jO1i9rT8%!mAoH zz53-E95IfY*blVa!;PfBA%_^rL6U?UNtTJ?Euo?)DsDE{!jFbgvOmxw#W3$_ znJ5uspoEkH$D=@n7>b=-l}~z!GXHRZY2tfp#rHtz&PAy21yPQjrpMZi4x2k>E<9sA zBzGiH_!mD|;m0B4g3ym(jM<-DXs)u-g-;9`I!ODdf!Y=Rm=NoX4HX!_^-yKIIpP7r zbH-yr%N6ZpUnMCDX&5;^E9M^@uow!Pws=Y&=pw&Gb;v^Rk1+IW-FzFqGOIX8gg8%8 z*>FnVyy3fRL8dz`aCEZVJZ28Ocfh(AU^kISt79BwL%+Vhn+FlRu8~&1!W5iCYFJH) zh%hB|8mMe1N#jZ8XMX+B08@mg4%DR@4;&pgNZU6xj;D%%&dW(>4y|dRSV2)W5gH+`*Vg6fo|toJdrdw+d82%~ Sy#S>byaBHH_1qn&z4#sO9X~7p literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..1af101da9 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_no_weight_reduction_mean_ii_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJƒ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..78407a9561def633db9d34da4c26d5cf055b3f1e GIT binary patch literal 210 zcmdYxO({(-$;{7FV#!TS%v-?7ETjZ7Fg`CQ2c$jT z&pE{~#V8)GE*_*TN*-#LkQkQ;2cwVx7ZV3F5VHa?8wf|qz+EB4CBVTh!~<0UmQCX0 S0=rF!jf(}So56`mfFA%C2Q_H` literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0fd331f83 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJx ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..ec9cfb12de00bc1cbd6c454d91db3ac13df2f5a6 GIT binary patch literal 1995 zcmchY&rZTX5XRX;p^gN|Y77SxlOAh4;L)SRctH*j|AfReOLv5ZvPE`F5Z}RP@F9Ex z6MYq5!)*)PG%;yCOww(4_xJ5i=NrqS)gkjHDENs&sm|W&@I>#rIAY3QU?&`P{0RpB zI1G6wl+ukSxgrRHc+hS07C&|8$Rkhrp>U_jgp11=6CAnw5Q*fq7Ye;-h4aw1+VL|J z%Gm>R!GZ{#ibWb_hZJ5(36}IW4|FK-7cz;-lJ>GCvn9%(pp`R{KtBnT6`PMxK@N0! zpY4gZc}*qTJJ&)!Mu;nfF9N17W|4w?nRJ-#krK_W{@2GicQL>z3T4+Wlkr75l+G@c z*wU9xoiYR73H*bGtjl0it=ul^3xtm%WL#%k0OaN!SxZh`Nn1m18|Rb77U#Cv4}1^d z#mHKFnn#Vu#gJ~Yt=?3uzK%+N?L*Iy6M~jvm<_$S)!~(Hb50$s3F3_VQ`ywb%b>@9 z=#7J;wPDf&*tZC6fMFGNm^#XF3=TJ~fl_E#6DCyOObE8rJ1_HL> AN&o-= literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..0fd331f83 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_mean_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJx ¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..aabd4ce6eb0a4e78f4e29cfa8bf08efd9f66b3cf GIT binary patch literal 208 zcmd69+R8vjQ<22uI1l-5|szz`-uW162W*P2%GM RyG)3Uiv_5g!HG$L9{`UBG|K=0 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/output_0.pb new file mode 100644 index 000000000..e2e31eb34 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJZk \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..ae39a14c90b3ce019faf51fe3baba8f894953b6b GIT binary patch literal 1975 zcmcJQ%}xR_5Xb5AwTuKvHHL$U$sRZHfJcrJn-vr9OSjGx+MN($;K&fI+Kk^wy9tOBTp`6BD>fdIrbWfnf*1l}( za9OY;kiP`O@Bfgb+$rkYgIy8K=GSq5$g5%)7MztLT@doxHcXE`Qp$CD20|?rS<)c^zXOU^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..e2e31eb34 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_reduction_sum_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJZk \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/model.onnx new file mode 100644 index 000000000..edad33f00 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/model.onnx @@ -0,0 +1,26 @@ + backend-test:â +N +input +target +weightloss"NegativeLogLikelihoodLoss* + reduction"none test_nllloss_NCd1d2_with_weightZ +input + + + + +Z +target + + + +Z +weight + + +b +loss + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6d74ae437 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJúY?`¼o?×p?ÎW=K¡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..49a0351073734dc5a0fcb778a5b78c2c2e1909fc GIT binary patch literal 449 zcmV;y0Y3f+0|*8P1`q*41Z;0}b4suS#k~^0e%{u;6b!V!8p5K!_c(~Y7~+4tNIxgP z2QUS{sq7EG`4MHln0@TNYQ`qNIdS&BK0OM*$_f0wRe=hx6dNoxYVE^6GqX*>kK z*5nkwGleX_GnL=I{BF3sMb_TF7?IJvyGN_Na~2K1(mo@(PKjyu@ajc`he*nb59+xVkM(l$!HYrs^#>#D834Z_*Js`}8rUgg-nC{Gi= zj^lg0xML5#nv}D=1YT*s-k5Q|@YsmHS%S5O&)%iKA#(MMMN4Cnb4*e=FRZ8mN38GHzz!jlJm z6nzpm*|wmdc-Vl4fehK%@0-7GeV;C0NAWF6zNau#haUlqXy+VzkrE?prM;H8#YFVe zl(*6>W5ppRlO!pe^JBix57=0!J{zOx^%cX(Ad(z8yUAs&L@MJ{>WBv%rlEgad`D6> z*Ptllt zE#@-sr6C(Gc4T&+BR(L!6KDuI$Q4uwNSVcCO14aobsvWe6TCyI!j;p~KQV6BTmmPW zh-_20sRl0uswQA{;%6(#!@8~;JlDbIKFx23YSh6hStB}n`K!6Lg0}5*9yZ#Eh!KY1 z8Zn)z1iiAj2UDFkix9eI0pPJ_wNhqSbWZnC*z zsIY#PCv^9(Pjz=^s^xS8)_p<)sQGnm4Q*~=-R=1#QV4vHE>BOGzw5Jkr2xK;cZ%5S QEhxFrB7%I4II0D!pEZ0QLjV8( literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6d74ae437 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJúY?`¼o?×p?ÎW=K¡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_expanded/test_data_set_0/output_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..49a0351073734dc5a0fcb778a5b78c2c2e1909fc GIT binary patch literal 449 zcmV;y0Y3f+0|*8P1`q*41Z;0}b4suS#k~^0e%{u;6b!V!8p5K!_c(~Y7~+4tNIxgP z2QUS{sq7EG`4MHln0@TNYQ`qNIdS&BK0OM*$_f0wRe=hx6dNoxYVE^6GqX*>kK z*5nkwGleX_GnL=I{BF3sMb_TF7?IJvyGN_Na~2K1(mo@(PKjyu@ajc`he*nb59+xVkM(l$!HYrs^#>#D834Z_*Js`}8rUgg-nC{Gi= zj^lg0xML5#nv}D=1YT*s-k5Q|@YsmHS%UuWLsSsA(C^JQ-PE@JV7@0Y1 zo91^ejA+(2t;lOCQX2Re7A}JGqi;epj~SpIrWDxJUNW?|&RY$^uNF%{oq9 or^stR`87j?g!M4~UVPm2-xq*6KJ@Hi0Ppq~LFjg^Z95sh0MH<pET3 literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6d74ae437 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJúY?`¼o?×p?ÎW=K¡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/output_0.pb new file mode 100644 index 000000000..20aaf18c8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +BlossJN© +¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..961900b1655546271468772aa33e4aa498ab1a24 GIT binary patch literal 3268 zcmdT`!HN_y5Z(0j^kmCrcZiFuAP6}&cvvsO9$m%DxCaL>doc8L%APRY>2W$eJM2Xk zcK^d4@B=*fBO;#s0)If$otXgz6@)Z+2z1g(>b+FetD=NaEXhO)6?cV(I&nP{biEZ7!N2JMlsoWM?$zJEcK0})c6M&q=E64 zz4C`5Sz+}%0D}|K0{B88GRY!C1D=sE<&Wt$5F8c0`%+hLYQ#%~?*#fv&uatS*=O1x z)s~B}2{grpz#I$IhVMUX=TF_Vif=)ftWV3A{71mCl)OLARf=$BHOv)=jh3;@UjnX6k;_0Hxy*wPfzNk!acC+3 z&m!HDsI_}PlzcE=OZ3OUr#Am$7P<-zHt`pOE*@+K^q$u_d?nCK G2R{HHU^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6d74ae437 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJúY?`¼o?×p?ÎW=K¡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..20aaf18c8 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_mean_expanded/test_data_set_0/output_0.pb @@ -0,0 +1,2 @@ +BlossJN© +¿ \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f5dc9a1af6df35f8e12da83eca26db0028c463fe GIT binary patch literal 250 zcmX|*O$x#=5QVM%F%F_-EP@~iE(I65bgA3g1Govb32iVoVp4k@@8(5JTXpdmm^a^> zM+lBCX?Eo$+Ze9R{_VgCd{N#j1A$2&Ik&UsA}vsEPh2bC nDrj_G{CXimNCr6iUUY8sZwo*y?=|dY3~hG|z_YvFp&w2@EC)aj literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6d74ae437 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJúY?`¼o?×p?ÎW=K¡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d2bfdf265 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJÏ0  \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e32aac19a8c74aef779d2d7d2062088c55f3d390 GIT binary patch literal 2683 zcmdT`F>Bl~7>#^BpYk;%hkBF@g@Q*zhji$Wu_0u+X6Vr+P=wF=au#RH*OQza8A>7T z|LCvCkYCcFV}3>om94uQ3hhvkp@YDZCEk0|_nt&4+nc7@9F=%!P@Ch25qu#mJI7gS zCW@M$fu1k)qMXCe} zep#z_G^>uLS%U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..7a4d9cddb48f3cc7d844b62893da61bb7ce8a2e1 GIT binary patch literal 883 zcmajaF%H5&5JOQQXxWl8QF03kM2~Xd9EF0s=1Yh)U-o!Bo4L#}$Mtd>>*M`;uJ>&m z58v;+vpDU>vQxgfYJ2VF>oc$BqdoV3<^R3I9yYJvU2Kk)FYWPZd$f1>KlA$4^7_qD rPw#Xtr$-+7a-}|b^gfis=6c7RZ_j;NznnSBwa*;e(>@yQp*!UV&5Z>I literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6d74ae437 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJúY?`¼o?×p?ÎW=K¡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d2bfdf265 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJÏ0  \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..227b2f66b1edc6876793f0bf2ce66901b4d16efe GIT binary patch literal 274 zcmX|6O>4qH5H%mB+ac626|qndJQfPAM~`|9{s1pa;trd^bXSs1?a%Rl_Tt8`!(-sR zdGqE8foWOn_GHwjqt-3|11Mq0=FmAvT+wLq^GK{KhjDG&cK)^@T{!-w-0Gb7RC8sm z%DwdQ3Mp%28UU(E>ntf82Y^7r1o71Y*w( IR$(?e1NeVOc>n+a literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..b16c52b5b52ffff5ce5f9caad3bc474f48cfba05 GIT binary patch literal 883 zcmZ|JF%H5&5JOQQXxWl8QF03kM2~V{jzY7q`BKvSc*geZ+~%0$etV4l_5Hl}=Wm?W zcl8rqmfjZ6*&j){_L}RnuQo?H_mBL2kDMMktY1Gr)<^S~a^|!g?H%4}-+48^etXo@ qJKgi?;YV}6QXfBhAM#;+y<=}K=RU2U&mQ^OXOHb^AB}S8PWcDQEd>Su literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6d74ae437 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJúY?`¼o?×p?ÎW=K¡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d97cebfae --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJbÚ¿Á \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..47e43070ba9d40234cb62bb1d52d00af386b859b GIT binary patch literal 5764 zcmds5KX21O6z@4s;ykK0I;yGz5|YOVh9ZR2j#L#(=|F^#x*XT|B{{`Dr@nI=x-sxa zVt|j(uK^1KLSkU#6ELwL#5dqM(EctCxE6=FlMZ&o2xBo!(`YAEiWP4$8OL$4+1-lPqZ{l<=pj2oF&Ju=VU+i@ zNF`Hw!h~Qr8FLw7#QM1`AM{db{^A(3Gz_+idoFe7GSm-woMWdMkanX(7EXu{PYFf) zNK%RC03ijC$Amt#34~8j{S8BNlav@f6KH6j4N!x1EOca3+c_gDb;8ztsSa|)V}zH4 zN}Hl9?umg+Gi1Wha&nH@OAdbWz@;&q3Zu%ttqVVA)j>1;XpB)<>*o9Low(KXz^10B z2yKX^Z`}<2Ev|H@1)fgVnkU4Aj~=*(0gnC2ZlFxK8in=kgPh0kre-$~7P8RB{nb61$5QZ!Lys5&XR4n za4x19RM<>_zv&bq>Ixxs;4WnBuoJU^SxhuyT1e_X4(MX{I+o0YcKx* D3?j0Q literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..1a71820b36a1975cdfa96cecb1c5fcf20bc15a86 GIT binary patch literal 2180 zcmWO6izC+e0tWDs_r*a=#9_lCN^T>U^!~oj6Ro*KvxXwHS1ftmg^^3SZm}Yv%UUNY za>{KbtqW>vN?NsASv9(>#jHA0TbGrc&mZy8oTMq!lxxbTO!ShiPE1Z;6?nnS5x>?t&E!&U%}P1 zQaHH0$Ir@#akog1dcSXz!cEP%xcx1zd}PY3Z7Doc=0KHRCmK!-;%Tij|8C9@9&NKZ z+HA|x#HH|*spE(I-SD6LHR7J>QCTqrJ$Wt%|Gp^B-3`VP2P?ekJd?>S>*3q|5QqG- zG1_Z^2%S5^T{eqX^L268-xuX)k7K9Z5^CK#BQ_O=5Z`|z_&kfcV~?P&o6T9*OsJeM zs4RS2=%25^PMbeP>#kZ9&m0qN7wX_`as{VX6pEh~I3!{2@D5E1hv%#6tfVJi641<24Cf zALPOftJOr!-dS)pHmB#e`n2DkhJCY=IA~`|g}D}&svFUJcpg2E>_Xk$KKR@YfpR|( zeJX`>J`_}$zJzix7LybO_`4-R+)(|Dj{04wT;R;s*dAz%xI^3aoMiv?XQE})o=^N9 zz%xRN^UGuSQ%Npi5{bMn8#-Msfv??u$;8TwegpMT27iOG9fqv!3gQ#>>D2mo1rO<# zvLQ0k~Fm;Z*4F z2(#LVb?%1TV->-&LyyJNRCV5xG+YgUBA>Wq0<348i3D_i0R z8Dj^RNwvLg5bZ{=3th`6qfaoc={2$rS@l_03qk2Vk zXE^8UWpTmtbjl23`Pa<%IAL=Wa{j$fjI6(ivlkL@tw{qJKZc3VyFDn)Q%Jq&P?8<0>hhvUU4VX4}VFqaZ|l?|ix zHwP9NI5Wzo5@(A~p+4UOW2A0aHwN?>zcZai?^@C2`V?_E;wCaH)cDX#izkvC zs6Txp$A^v319Ay zrR|wOmJ3Vdj=#;S@jmQJS|@r;1|U+4P!$%+q&Q7+FF&0R{x}TZx(k9 zb?dQgjvQO&ER-}0N5#<~Gv0{J;{4KFZb-U>l3UieS8T}ut(W-IHTtF#y?w$y7bt41+r^G>^T4gl(O;X%WP_bMdrEmBhEM ziI|?!j=j4BY3rNAPbYuE_NG znb*^V|5nFyxI3KLN!}vq)_M%7?!nsoN0F*(hi0arvzr5Jg3S5OFRm=Q_5mi3HDjKc zJwKhMWR8P2)lOF6QOjRa-E~(6*-e!CzCQ`yOB&37Bc8wc91#bueUEIr@1(2-4e literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_1.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_1.pb new file mode 100644 index 0000000000000000000000000000000000000000..b16c52b5b52ffff5ce5f9caad3bc474f48cfba05 GIT binary patch literal 883 zcmZ|JF%H5&5JOQQXxWl8QF03kM2~V{jzY7q`BKvSc*geZ+~%0$etV4l_5Hl}=Wm?W zcl8rqmfjZ6*&j){_L}RnuQo?H_mBL2kDMMktY1Gr)<^S~a^|!g?H%4}-+48^etXo@ qJKgi?;YV}6QXfBhAM#;+y<=}K=RU2U&mQ^OXOHb^AB}S8PWcDQEd>Su literal 0 HcmV?d00001 diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_2.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_2.pb new file mode 100644 index 000000000..6d74ae437 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/input_2.pb @@ -0,0 +1 @@ +BweightJúY?`¼o?×p?ÎW=K¡? \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/output_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/output_0.pb new file mode 100644 index 000000000..d97cebfae --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2_with_weight_reduction_sum_ii_expanded/test_data_set_0/output_0.pb @@ -0,0 +1 @@ +BlossJbÚ¿Á \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/model.onnx b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/model.onnx new file mode 100644 index 000000000..6deb40d83 --- /dev/null +++ b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/model.onnx @@ -0,0 +1,25 @@ + backend-test:ÿ +d +input +targetloss"NegativeLogLikelihoodLoss* + ignore_indexûÿÿÿÿÿÿÿÿ * + reduction"none 0test_nllloss_NCd1d2d3_none_no_weight_negative_iiZ# +input + + + + + +Z +target + + + + +b +loss + + + + +B \ No newline at end of file diff --git a/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_0.pb b/third_party/onnx/onnx/backend/test/data/node/test_nllloss_NCd1d2d3_none_no_weight_negative_ii/test_data_set_0/input_0.pb new file mode 100644 index 0000000000000000000000000000000000000000..4563573203536ddb3d191686b2ea99fce42746bf GIT binary patch literal 10822 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